Linphone-SDK Ubuntu 22.04 Dockerイメージの作成とアプリのビルド(IPv6対応)

Linphone-Desktopのビルド

ホストマシンの環境に依存しないAppImageフォーマットでアプリを作成します。

Appimageの起動にlibfuse2ライブラリが必要です。
Ubuntu22.04以降ではデフォルトでlibfuse2がインストールされていないため、インストールします。

$ sudo apt install libfuse2

Linphone-SDKコンテナの起動

上記投稿記事のイメージからコンテナを起動します。FUSE を使用するための管理者権限オプションを付与する必要があります。

$ docker run --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined --name linphone-sdk -v $PWD:/home/bc -it gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu:22.04

AppImages require FUSE version 2 to run. Filesystem in Userspace (FUSE) is a system that lets non-root users mount filesystems.

linphone-sdk コンテナ内で以下のコマンドを実行

$ pip install pystache six
$ eval "$(qtchooser -print-env)"
$ export Qt5_DIR=${QTLIBDIR}/cmake/Qt5
$ export PATH=${QTTOOLDIR}:$PATH

ビルドに必要な追加パッケージをインストール

$ sudo apt install wget fuse libfuse2
$ sudo apt install qml-module-qt-labs-folderlistmodel qml-module-qt-labs-platform qml-module-qt-labs-settings qml-module-qtgraphicaleffects qml-module-qtqml qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qtquick-privatewidgets qml-module-qtquick-shapes qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2

qml-module については、以下のLinphone Desktop バグレポートも参照して下さい。
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=978108

Qtドキュメント
https://doc.qt.io/

QML Modules
QML Modules | Qt QML 5.15.16

Qt Product Map

Qtオープンソース

ターミナルまたはスクリプトによりインストール

$ sudo apt install -y qtcreator qtbase5-dev qt5-qmake cmake

ソースのダウンロード・Makeファイルの作成・ビルド

AppImageパッケージを出力するため -DENABLE_APP_PACKAGING=YES を指定

$ git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive
$ cd linphone-desktop
$ mkdir build
$ cd build
$ cmake .. -DENABLE_APP_PACKAGING=YES -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ cmake --build . --target install --parallel 10 --config RelWithDebInfo

RelWithDebInfo

以下のディレクトリ・ファイル名でAppImageが作成されます。
実行権は付与されているので、これを任意の場所へ移動してダブルクリックして起動します。
build/OUTPUT/Packages/Linphone-5.1.0-alpha.40+e198f5f7.AppImage

シェルから起動することで各種ログを確認することが出来ます。

$ ./Linphone-5.1.0-alpha.40+e198f5f7.AppImage

下記も参照して下さい。