概要

kdesrc-buildスクリプトは、KDEソフトウェアの開発環境の構築と維持のプロセスを合理化するものである。

これは、KDEソフトウェアのソースコードリポジトリからソースコードをダウンロードして、そのソースコードをビルドおよびインストールするプロセスを自動化する。


Perlのインストール

もし、必要となるPerlのバージョンより古い場合は、インストール - Perlのページにアクセスして、Perlをビルドおよびインストールする。

KDEソフトウェアのビルドに必要なPerlモジュールをインストールする。

perl cpan IO::Socket::SSL YAML::XS YAML::PP YAML::Syck URI::Escape



KDEソフトウェアのインストール

KDEソフトウェアのビルドに必要な依存関係のライブラリをインストールする。

sudo zypper install libxslt-devel libxml2-devel polkit-devel wayland-devel wayland-protocols-devel \
                    xcb-util-keysyms-devel xcb-util-wm-devel libplist-devel libimobiledevice-devel libonig4 \
                    phonon4qt5-devel libcanberra-devel lmdb lmdb-devel breezy libattr-devel giflib-devel libjpeg8-devel libjpeg62 \
                    qrencode-devel zxing-cpp-devel libdmtx-devel libSM-devel php7-phpunit8 NetworkManager-devel \
                    kwidgetsaddons-devel \
                    libqt5-qttools-devel libqt5-qtbase-devel libqt5-qtbase-common-devel libqt5-qtdeclarative-devel \
                    libQt5QuickControls2-devel libQt5QuickTemplates2-devel libQt5QuickTemplates2-devel libqt5-qtdoc-devel \
                    libqt5-qtlocation-devel libqt5-qtlocation-private-headers-devel libqt5-qtremoteobjects-devel \
                    libqt5-qtstyleplugins-devel libqt5-qtxmlpatterns-devel libqt5-qtscxml-devel libqt5-qtsvg-devel \
                    libqt5-qtscript-devel libqt5-qtx11extras-devel libqt5-qtwebview-devel libqt5-qtwayland-devel \
                    libqt5-qtmultimedia-devel libqt5-qtmultimedia-private-headers-devel libQt5Charts5-devel \
                    libexiv2-devel libpoppler-devel libpoppler-qt5-devel typelib-1_0-Poppler-0_18 libepub-devel mobipocket-devel \
                    ffmpeg-4-libavcodec-devel ffmpeg-4-libavdevice-devel ffmpeg-4-libavfilter-devel ffmpeg-4-libavformat-devel \
                    ffmpeg-4-libavresample-devel ffmpeg-4-libavutil-devel ffmpeg-4-libpostproc-devel ffmpeg-4-libswresample-devel \
                    ffmpeg-4-libswscale-devel ffmpeg-4-private-devel \
                    systemd-devel  # SUSE 15.4の場合
                    libudev-devel  # SUSE 15.3以前の場合


KDEソフトウェアをビルドするためのツールであるkdesrc-buildをダウンロードする。

git clone https://invent.kde.org/sdk/kdesrc-build.git
cd kdesrc-build


まず、kdesrc-buildが正常に実行できるかどうかを確認する。

./kdesrc-build --version


kdesrc-buildを設定する。
これは、ビルドおよびインストールするKDEソフトウェアのディレクトリの設定、および、ビルドするソフトウェア・ライブラリの設定を行うためのものである。
この設定は、~/.config/kdesrc-buildrcファイルに保存される。

./kdesrc-build-setup


次に、KDEプロジェクトと依存関係データをダウンロードする。
これは、KDEソフトウェアのソースリポジトリとその依存関係を記述した情報をダウンロードして、kdesrc-buildが何をビルドすればよいかを判断するために行う。

kdesrc-buildは、これらの情報を自動的に管理するが、このステップを実行することにより、
kdesrc-buildがKDEソフトウェアのソースリポジトリに正しく到達できることを確認して、--pretendオプションでより正確な出力を提供できるようにする。

./kdesrc-build --metadata-only


次に、kdesrc-buildのテスト実行を行う。 これは、kdesrc-buildの実行に必要なファイル(cmake、git、make等)がインストールされているかどうかを確認する。

./kdesrc-build --pretend


KDEソフトウェアの依存関係およびKDEソフトウェアをビルドおよびインストールする。
stop-on-failureオプションは、ビルドに失敗した時、依存関係が無い場合にkdesrc-buildを停止させるオプションである。
このオプションを設定しない場合、kdesrc-buildのビルドに失敗しても、全てのモジュールをビルドしようとする。

export CC=<GCC 8以降のgccファイルのパス>; export CXX=<GCC 8以降のg++ファイルのパス>; \
./kdesrc-build --stop-on-failure <KDEソフトウェア名>

# Dolphinをビルドおよびインストールする場合
export CC=<GCC 8以降のgccファイルのパス>; export CXX=<GCC 8以降のg++ファイルのパス>; \
./kdesrc-build --stop-on-failure dolphin

# KDE Plasmaデスクトップをビルドおよびインストールする場合
export CC=<GCC 8以降のgccファイルのパス>; export CXX=<GCC 8以降のg++ファイルのパス>; \
./kdesrc-build --include-dependencies plasma-desktop 


ビルドされた各ライブラリや各ソフトウェアにおいて、kdesrc-buildは以下のステップを実行する。

  • ソースコードのダウンロードおよび最新版へのアップデート
  • ビルドシステムの設定、および、必要に応じてソースコードの設定
  • 各ライブラリや各ソフトウェアのビルド
  • 各ライブラリや各ソフトウェアのインストール


KDEソフトウェアのビルドの詳細を知りたい場合は、KDEの公式Webサイトを参照すること。


KDE PlasmaとKDE Plasmaシェルのビルド

KDE Plasmaは、ソフトウェアを実行するための環境である。
KDE Plasmaは、壁紙、ソフトウェアランチャー、ウィジェットを含むデスクトップの提供、通知の表示、有線および無線ネットワークの管理、オペレーティングシステムレベルのタスクの管理を行う。

KDE Plasmaの新バージョンは年に3回リリースされており、PC向けのKDE Plasma Desktop、モバイル向けのKDE Plasma Mobile、TV向けのKDE Plasma Bigscreen等のシェルが存在する。
これらのシェルは、ウィンドウマネージャ、ネットワークスタック、基本的なグラフィカルコンポーネント等、共通のコンポーネントを共有している。

まず、KDE Plasmaを構築には、以下に示すソフトウェアをビルドする。

./kdesrc-build --include-dependencies \
     plasma-workspace plasma-framework plasma-integration bluedevil powerdevil plasma-nm plasma-pa plasma-thunderbolt plasma-vault \
     plasma-firewall plasma-workspace-wallpapers kdeplasma-addons krunner milou kwin kscreen sddm-kcm plymouth-kcm breeze discover \
     print-manager plasma-sdk kaccounts-integration kaccounts-providers kdeconnect-kde plasma-browser-integration \
     xdg-desktop-portal-kde kde-gtk-config khotkeys kgamma5 breeze-gtk drkonqi


KDE Plasmaシェルと関連するソフトウェアをビルドする。

./kdesrc-build --include-dependencies plasma-desktop systemsettings ksysguard plasma-disks plasma-systemmonitor ksystemstats kinfocenter kmenuedit


ビルドしたKDE Plasmaに翻訳を取り込む場合は、plasma-workspaceプロジェクトにおいて、
ccmakeコマンドに-DKDE_L10N_SYNC_TRANSLATIONS=trueオプションを付加して、ビルドする必要がある。

これを行うには、plasma-workspaceのビルドディレクトリ(/<KDEソフトウェアの作業ディレクトリ>/build/plasma-workspace)に移動して、plasma-workspaceプロジェクトを再構築する。

ccmake -DKDE_L10N_SYNC_TRANSLATIONS=true .


ビルドしたKDE PlasmaセッションをSDDMのログイン画面からアクセスできるようにするには、ビルドしたDBusソフトウェアをシステムパスから見える場所にコピーする必要がある。

/<KDEソフトウェアの作業ディレクトリ>/build/plasma/plasma-workspace/login-sessions/install-sessions.sh


※注意
SELinuxは、ビルドしたDBusサービスの動作を妨害する可能性がある。
SELinuxの無効化を知りたい場合は、https://www.tecmint.com/disable-selinux-in-centos-rhel-fedora/ を参照すること。

PCをログアウトまたは再起動することにより、SDDMのログイン画面(Breeze SDDMテーマを使用している場合は、画面左下隅)から新しいKDE Plasmaセッションが選択できる。

また、ビルドしたKDE Plasmaを、以下に示すように動作確認することもできる。

source /<KDEソフトウェアの作業ディレクトリ>/build/plasma-desktop/prefix.sh
/<KDEソフトウェアの作業ディレクトリ>/usr/bin/plasmashell --replace



単一プロジェクトでの繰り返し行うビルド

あるプロジェクトで作業をしていて、その変更を確認するためにプロジェクトを再構築する場合、スタック全体ではなく該当プロジェクトのみを再構築することにより、時間を節約することができる。
これは、--no-srcオプションおよび--no-include-dependenciesplasma-desktopオプションを付加することにより、
全てのプロジェクトではなく、そのプロジェクトのみをリビルドすることができる。

./kdesrc-build --no-src --no-include-dependencies plasma-desktop