Kodi 21.0 x11版ビルド手順整理

前準備

OSインストール直後はディスク容量に空きが少ない場合、gpartedをインストールして、パーテション拡張しておく。

sudo apt install gparted

swapファイル確認。

swapon --show

100MBなので、拡大

swap停止
sudo dphys-swapfile swapoff
設定ファイル変更
sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=100
100=100MB なので、数値を変更

めんどいので、2000に設定

swapファイルを再作成
sudo dphys-swapfile setup
作成したswap機能を有効化
sudo dphys-swapfile swapon
再起動
sudo reboot

確認

sudo swapon --show

 

必要なパッケージのインストール

2024/06/11 重複パッケージ整理修正

sudo apt update
sudo apt -y upgrade

sudo apt install -y autoconf automake autopoint autotools-dev \
build-essential cmake cmake-doc cpp curl default-jre default-libmysqlclient-dev \
flatbuffers-compiler flatbuffers-compiler-dev g++ gawk gcc gdc generate-ninja \
gettext gperf libaacs0 libasound2-dev libass-dev libavahi-client-dev \
libavahi-common-dev libbluetooth-dev libbluray-dev libboost-python1.81.0 \
libboost-python1.81-dev libbz2-dev libcdio++-dev libcdio-dev libcec-dev \
libcrossguid-dev libcurl4-gnutls-dev libcurl4-openssl-dev libcwiid-dev libdbus-1-dev \
libdisplay-info1 libdisplay-info-bin libdisplay-info-dev libdrm-dev libegl1-mesa-dev \
libenca-dev libffi-dev libflac-dev libfmt-dev libfontconfig-dev libfreetype6-dev \
libfribidi-dev libfstrcmp-dev libgcrypt-dev libgif-dev libgles2-mesa-dev libglew-dev \
libglu1-mesa-dev libgnutls28-dev libgpg-error-dev libgtest-dev libiso9660-dev \
libjpeg-dev liblcms2-dev liblirc-dev libltdl-dev liblzo2-dev libmicrohttpd-dev \
libncurses5-dev libnfs-dev libogg-dev libomxil-bellagio-dev libp8-platform-dev \
libpcre3-dev libplist-dev libpng-dev libpugixml1v5 libpugixml-dev libpulse-dev \
libreadline-dev libshairplay-dev libsmbclient-dev libspdlog-dev libsqlite3-dev \
libssl-dev libtag1-dev libtiff5-dev libtinyxml2-dev libtinyxml-dev libtool libudev-dev \
libunistring-dev libva-dev libvdpau-dev libvorbis-dev libwayland-egl1-mesa \
libxkbcommon-dev libxmu-dev libxrandr-dev libxslt1-dev libxt-dev lsb-release make \
mesa-utils mesa-utils-bin meson nasm ninja-build pkg-config pugixml-doc \
python3-bluez python3-dev python3-gattlib python3-minimal python3-pil \
python3-simplejson rapidjson-dev scons software-properties-common swig unzip \
uuid-dev waylandpp-dev wayland-protocols wipe yasm zip zlib1g zlib1g-dev

 

ホームディレクトリを起点にする。

cd $HOME

gitから、必要なファイル取得(ホームディレクトリ配下にkodiフォルダを作成してgit cloneしている。)

git clone -b Omega https://github.com/xbmc/xbmc kodi

*Omegaの部分を変更すると、異なるバージョンをビルド可能。

ビルド前にMakefileファイルの修正が必要。

各内容の

BASE_URL := http://mirrors.kodi・・・

BASE_URL := https://mirrors.kodi・・・

httpをhttpsにするだけ。

一応.orgでバックアップ作成

cp kodi/tools/depends/target/crossguid/Makefile kodi/tools/depends/target/crossguid/Makefile.org

cp kodi/tools/depends/target/flatbuffers/Makefile kodi/tools/depends/target/flatbuffers/Makefile.org

cp kodi/tools/depends/target/fmt/Makefile kodi/tools/depends/target/fmt/Makefile.org

cp kodi/tools/depends/target/spdlog/Makefile kodi/tools/depends/target/spdlog/Makefile.org

cp kodi/tools/depends/target/wayland-protocols/Makefile kodi/tools/depends/target/wayland-protocols/Makefile.org

cp kodi/tools/depends/target/waylandpp/Makefile kodi/tools/depends/target/waylandpp/Makefile.org

 

httpをhttpsに置き換え

sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/crossguid/Makefile

sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/flatbuffers/Makefile

sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/fmt/Makefile

sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/spdlog/Makefile

sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/wayland-protocols/Makefile

sudo sed -i -e s/http:i/https:/g kodi/tools/depends/target/waylandpp/Makefile

 

作業用ディレクトリに移動し各ブロック毎のビルドを実行。

cd $HOME/kodi

sudo make -C tools/depends/target/crossguid PREFIX=/usr/local

sudo make -C tools/depends/target/flatbuffers PREFIX=/usr/local

sudo make -C tools/depends/target/fmt PREFIX=/usr/local

sudo make -C tools/depends/target/spdlog PREFIX=/usr/local

sudo make -C tools/depends/target/wayland-protocols PREFIX=/usr/local

sudo make -C tools/depends/target/waylandpp PREFIX=/usr/local

 

ホームディレクトリ配下に本体ビルド用ディレクトリ作成し、x11用のビルドコンフィグ作成。

mkdir $HOME/kodi-build

cd $HOME/kodi-build

cmake ../kodi -DCMAKE_INSTALL_PREFIX=/usr/local -DCORE_PLATFORM_NAME=x11 -DAPP_RENDER_SYSTEM=gl

 

ビルド実行

cmake --build . -- VERBOSE=1 -j$(getconf _NPROCESSORS_ONLN)

完了後

./kodi-x11

で実行できるが、RDPリモートデスクトップでは正常に表示できないVNCは正常なのでリモートでプレイリストの編集が可能になった。 

sudo make install

で通常の様に、インストール。

GUIメニューに表示されない場合、通常の apt install kodi でリポジトリのkodiをインストール後に sudo make install を実行すればメニューから実行可能なので現在の音楽再生環境のkodiサーバとの置き換えが可能なはず。

 

 

次は別システムでもインストール可能なdebパッケージを作成したい。

gitで、debを検索。

github.com

git clone --branch 21.0-Omega https://github.com/xbmc/xbmc.git
mkdir kodi-build
cd kodi-build
cmake ../xbmc-21.0-Omega/ -DVERBOSE=1 -DUSE_LTO=4 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/kodi -DENABLE_AIRTUNES=ON -DENABLE_ALSA=ON -DENABLE_AVAHI=ON -DENABLE_DBUS=ON -DENABLE_EGL=ON -DENABLE_EVENTCLIENTS=ON -DENABLE_INTERNAL_DAV1D=ON -DENABLE_INTERNAL_FFMPEG=ON -DENABLE_INTERNAL_CROSSGUID=OFF -DENABLE_INTERNAL_RapidJSON=OFF -DENABLE_MICROHTTPD=ON -DENABLE_MYSQLCLIENT=ON -DENABLE_NFS=ON -DENABLE_PULSEAUDIO=ON -DENABLE_SMBCLIENT=ON -DENABLE_UDEV=ON -DENABLE_UPNP=ON -DENABLE_VAAPI=ON -DENABLE_VDPAU=ON -DENABLE_XSLT=ON -DENABLE_LIRCCLIENT=ON -DAPP_RENDER_SYSTEM=gl -DCPACK_GENERATOR=DEB

 

 

らしいので、これで可能かと思ったがNG

cmake ../kodi -DVERBOSE=1 -DUSE_LTO=4 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/kodi -DENABLE_AIRTUNES=ON -DENABLE_ALSA=ON -DENABLE_AVAHI=ON -DENABLE_DBUS=ON -DENABLE_EGL=ON -DENABLE_EVENTCLIENTS=ON -DENABLE_INTERNAL_DAV1D=ON -DENABLE_INTERNAL_FFMPEG=ON -DENABLE_INTERNAL_CROSSGUID=OFF -DENABLE_INTERNAL_RapidJSON=OFF -DENABLE_MICROHTTPD=ON -DENABLE_MYSQLCLIENT=ON -DENABLE_NFS=ON -DENABLE_PULSEAUDIO=ON -DENABLE_SMBCLIENT=ON -DENABLE_UDEV=ON -DENABLE_UPNP=ON -DENABLE_VAAPI=ON -DENABLE_VDPAU=ON -DENABLE_XSLT=ON -DENABLE_LIRCCLIENT=ON -DAPP_RENDER_SYSTEM=gl -DCPACK_GENERATOR=DEB

 

2024/06/05 追記

ビルドでエラーが発生するようになった。

バックアップしていたソースで実施、OKならソース改変による問題(エラーメッセージから、レトロプレイヤー関連)と思われるので確認作業実施。

結果NG、同じと思われるエラーで停止なのでどこかの手順かインストールしたパッケージの問題?