概要
kdesrc-buildスクリプトは、KDEソフトウェアの開発環境の構築と維持のプロセスを合理化するものである。
これは、KDEソフトウェアのソースコードリポジトリからソースコードをダウンロードして、そのソースコードをビルドおよびインストールするプロセスを自動化する。
- KDE Frameworkの公式ダウンロードサイト
- Plasmaの公式ダウンロードサイト
Perlのインストール
もし、必要となるPerlのバージョンより古い場合は、インストール - Perlのページにアクセスして、Perlをビルドおよびインストールする。
まず、KDEソフトウェアのビルドに必要なPerlモジュールをインストールする。
perl cpan IO::Socket::SSL YAML::XS YAML::PP YAML::Syck URI::Escape JSON LWP Net::SSLeay XML::Parser
必要ならば、環境変数PATH
およびPERL5LIB
を設定する。
export PATH="/<Perlのインストールディレクトリ>/bin:$PATH" PERL_LIBDIR="/<Perlのインストールディレクトリ>/lib/perl5" export PERL5LIB="${PERL_LIBDIR}/site_perl/<バージョン>/x86_64-linux:${PERL_LIBDIR}/site_perl/<バージョン>:${PERL_LIBDIR}/<バージョン>/x86_64-linux:${PERL_LIBDIR}/<バージョン>:${PERL_LIBDIR}/site_perl:${PERL5LIB}"
libAppImageライブラリのインストール
KDEソフトウェアのビルドには、libAppImageライブラリが必要である。
SUSEでは、パッケージ管理システムからlibAppImageライブラリは提供されていないため、ソースコードからビルドしてインストールする必要がある。
まず、libAppImageライブラリのビルドに必要な依存関係のライブラリをインストールする。
sudo zypper install automake cmake libtool cairo-devel fuse-devel librsvg-devel libarchive-devel
次に、libAppImageライブラリのソースココードをダウンロードする。
git clone https://github.com/AppImage/libappimage --recursive cd libappimage
libAppImageライブラリをビルドおよびインストールする。
mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=<libAppImageライブラリのインストールディレクトリ> -DBUILD_TESTING:bool=False .. make -j $(nproc) make install
~/.profileファイル等に、環境変数LD_LIBRARY_PATH
およびCPPFLAGS
を追記する。
vi ~/.profile
# ~/.profileファイル export LD_LIBRARY_PATH="/<libAppImageライブラリのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH" export CPPFLAGS="-L/<libAppImageライブラリのインストールディレクトリ>/include ${CPPFLAGS}"
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 libgpgmepp-devel \ kwidgetsaddons-devel libqgpgme-devel qca-qt5-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-qtwayland-private-headers-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をダウンロードする。
または、kdesrc-buildのGithubにアクセスして、任意のバージョンのkdesrc-buildをダウンロードする。
git clone https://invent.kde.org/sdk/kdesrc-build.git cd kdesrc-build
次に、~/.bashrcファイルや~/.zshrcファイルにおいて、kdesrc-buildに関する設定を行う。
vi ~/.bashrc または vi ~/.zshrc
# ~/.bashrcファイル または ~/.zshrcファイル export PATH="<kde-buildのディレクトリ>:$PATH"
※注意
Zshを使用しており、kdesrc-buildの初期設定時に自動補完をyesにした場合、以下に示す設定を~/.zshrcファイルに追記する。
autoload -U +X compinit && compinit autoload -U +X bashcompinit && bashcompinit
まず、kdesrc-buildが正常に実行できるかどうかを確認する。
kdesrc-buildファイルおよびkdesrc-build-setupファイルを実行する前に、
kdesrc-buildディレクトリにあるmodulesディレクトリを環境変数PERL5LIB
に追加する必要がある。
cd kdesrc-build export PERL5LIB=$PWD/modules:$PERL5LIB ./kdesrc-build --version
kdesrc-buildを設定する。
これは、ビルドおよびインストールするKDEソフトウェアのディレクトリの設定、および、ビルドするソフトウェア・ライブラリの設定を行うためのものである。
この設定は、~/.config/kdesrc-buildrcファイルに保存される。
./kdesrc-build --initial-setup
kdesrc-buildの設定を対話式に行う場合は、kdesrc-build-setup
ファイルを実行する。
ただし、--initial-setup
オプションとは異なり、ソフトウェアをコンパイルするためのパッケージは各ディストリビューションからインストールされないので、自身で行う必要がある。
./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 knewstuff kcmutils 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のビルドに必要な依存関係のライブラリをインストールする。
sudo zypper install libnl3-devel libpcap-devel libcap-devel libsensors4-devel pipewire-devel xcb-util-cursor-devel liblcms2-devel \ intltool sassc libsass-devel pixmap gtk2-engines-devel gdk-pixbuf-xlib-devel python3-pycairo-devel \ xcb-proto-devel xcb-util-devel xcb-util-xrm-devel xcb-util-errors-devel ModemManager-devel \ libqt5-qtwebengine-devel libqt5-qtwebengine-private-headers-devel libqt5-qtwebchannel-devel libqaccessibilityclient-qt5-devel \ libqt5-qtsensors-devel libsignon-qt5-devel libaccounts-qt5-devel kqtquickcharts libqalculate-devel libAppStreamQt-devel iso-codes-devel \ appmenu-gtk3-module libappmenu-gtk3-parser-devel \ typelib-1_0-DbusmenuGtk3-0_4 wayland-devel wayland-protocols-devel \ wayland-amdgpu-devel wayland-protocols-amdgpu-devel
KDE Plasmaと関連するソフトウェアをビルドする。
export CC=<GCC 8以降のgccファイルのパス>; export CXX=<GCC 8以降のg++ファイルのパス>; \ ./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シェルと関連するソフトウェアをビルドする。
export CC=<GCC 8以降のgccファイルのパス>; export CXX=<GCC 8以降のg++ファイルのパス>; \ ./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プロジェクトを再構築する。
cd /<KDEソフトウェアの作業ディレクトリ>/build/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
再ビルドの方法
1つまたは複数のKDEソフトウェアがビルドに失敗した場合、kdesrc-build
コマンドを実行して再ビルドを行う手順を示す。
- 方法 1
- 失敗したモジュールを最初から再ビルドする。
./kdesrc-build --refresh-build <ビルドに失敗したKDEソフトウェア名>
- 方法 2
- 時間を節約して失敗したKDEソフトウェアからビルドを再開する。
./kdesrc-build --resume-from <失敗したKDEソフトウェア名>
- 方法 3
- KDEビルドサーバにアクセスして、現在壊れているモジュールのリストを確認する。
kdesrc-buildのアンインストール方法
以下に示すディレクトリおよびファイルを削除する。
rm -r <kdesrc-buildのディレクトリ> \ <KDEソフトウェアの作業ディレクトリ> \ ~/.kdesrc-buildrc ~/.config/kdesrc-buildrc ~/.config/kde-env-master.sh \ ~/.config/fish/functions/kdesrc-build.fish # Fishを使用している場合