GNOME/Compile/40.3

From i14i
Jump to navigation Jump to search

Untuk memeriksa hasil terjemahan suatu aplikas GNOME, salah satu cara adalah dengan mengcompile aplikasi tersebut setelah terjemahan terbarunya kita pasang. GNOME memiliki aplikasi jhbuild untuk membantu kita melakukan compile.

Langkah-langkah build ini diadopsi dari https://www.if-not-true-then-false.com/2021/debian-ubuntu-jhbuild-gnome/

JHBuild step-by-step

install Ubuntu Hirsute (21.04)

pastikan bahwa Anda memiliki free space di disk paling tidak 40 GB.

$ lxc launch ubuntu:21.04 gubu
$ lxc exec gubu bash
... di dalam VM ...
$ su - ubuntu

install JHBuild

$ mkdir .config
$ sudo apt install git make autoconf automake gettext yelp-tools autopoint gcc pkg-config 
$ git clone https://gitlab.gnome.org/GNOME/jhbuild.git
$ cd jhbuild
$ ./autogen.sh
$ make; make install
$ echo 'PATH=$PATH:~/.local/bin' >> ~/.bashrc
... logout dari VM lalu login lagi ...

periksa kelengkapan paket memakai JHBuild

... dependensi sanitycheck ...
$ sudo apt install python3-distutils libtool docbook-xsl flex bison apt-file
$ jhbuild sanitycheck
$ sudo apt-file update
... persiapan compile di-background ... 
$ sudo apt-get install screen links
... pasang paket-paket yang diperlukan ...
$ jhbuild sysdeps --install
... atau eksplisit pasang dari daftar berikut ...
$ sudo apt install libxslt1-dev libxml2-dev libpython3-dev libffi-dev zlib1g-dev \
libgl-dev libxext-dev libxrender-dev libx11-dev libxft-dev libicu-dev libpcre3-dev \
libegl-dev libxcursor-dev libdbus-1-dev libxtst-dev libxi-dev libpng-dev libunistring-dev \ 
libxkbcommon-x11-dev libxkbcommon-dev libwayland-dev libgraphviz-dev libfontconfig-dev \
libldap2-dev libespeak-dev libsystemd-dev libcanberra-gtk-dev libnss3-dev libfreetype-dev \
libplymouth-dev libarchive-dev libsqlite3-dev libproxy-dev libgnutls28-dev \
libp11-kit-dev uuid-dev liblcms2-dev libusb-1.0-0-dev libxkbfile-dev libmpc-dev libmpfr-dev \
libxrandr-dev libudev-dev libseccomp-dev libexif-dev libx11-xcb-dev libdrm-dev \
libxcomposite-dev libxcb-dri2-0-dev libgbm-dev check libevdev-dev libunwind-dev \
libmtdev-dev libhunspell-dev libavahi-gobject-dev libdbus-glib-1-dev libflac-dev \
libvpx-dev libxinerama-dev libtag1-dev libwavpack-dev libv4l-dev libpulse-dev libgles-dev \
libxdamage-dev libxt-dev libavfilter-dev libavformat-dev libavcodec-dev libavutil-dev \
libcanberra-gtk3-dev libndp-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev \
libdb5.3-dev libcap-dev libegl1-mesa-dev libpwquality-dev libsmbclient-dev libtasn1-6-dev \
libkyotocabinet-dev libanthy-dev libhangul-dev libxklavier-dev libsm-dev xtrans-dev \
liboauth-dev libnspr4-dev libx11-dev libxfixes-dev libxi-dev libstartup-notification0-dev \
libxcb-randr0-dev libxcb-res0-dev libasound2-dev libbluetooth-dev libsbc-dev libfuse-dev \
libbluray-dev libimobiledevice-dev libnfs-dev libplist-dev libudisks2-dev libmagic-dev \
libcdio-paranoia-dev libgphoto2-dev libmtp-dev libdotconf-dev libsndfile1-dev \
libpoppler-glib-dev libexempi-dev nettle-dev nettle-dev libdmapsharing-3.0-dev \
libvorbis-dev libraw-dev valgrind libelf-dev libmusicbrainz5-dev libsane-dev libdvdread-dev \
libusb-1.0-0-dev libvirt-dev libssl-dev libopus-dev libusbredirhost-dev intltool ninja-build \
ragel libcups2-dev doxygen xmlto cargo valac-bin gperf libstemmer-dev libsasl2-dev \
cmake argyll docbook-utils ruby yasm texinfo asciidoc-base help2man libgpgme-dev \
libexpat1-dev libpam0g-dev libyaml-dev libtiff-dev ppp-dev python3-toml python3-typogrify \
libvulkan-dev libhyphen-dev libgcrypt20-dev libwebp-dev libreadline-dev libiw-dev \
libkrb5-dev python3-pip librust-cargo-dev docbook-xsl-ns sqlite3 libnvidia-egl-wayland-dev \
libfuse3-dev libges-1.0-dev zsh sassc highlight spamassassin libgtkspell3-3-dev python-jinja2 \
python3-dbusmock liblua5.3-dev libgfbgraph-0.2-dev libflatpak-dev libefiboot-dev \
libefivar-dev gnutls-bin libtss2-dev mingw-w64-tools gnu-efi libsmbios-dev liblmdb-dev graphviz 
$ sudo apt install libportal-dev xserver-xorg-input-wacom xwayland libxml-parser-perl \
libsecret-1-dev python-is-python3 libnm-dev libnma-dev ppp-dev ppp
... update moduleset dari inttf ...
$ cd ~/jhbuild/modulesets
$ git clone https://[email protected]/inttf/inttf-jhbuild-gnome.git
... salin template konfigurasi jhbuild ...
$ cp ~/jhbuild/examples/sample.jhbuildrc ~/.config/jhbuildrc
... edit isi konfigurasi jhbuild agar memakai inttf ...
moduleset = 'inttf-jhbuild-gnome/inttf-gnome-40.3.modules'
modules = ['meta-inttf-gnome']
use_local_modulesets = True

pasang dependensi

... llvm ...
# echo 'deb http://apt.llvm.org/hirsute/ llvm-toolchain-hirsute main' > /etc/apt/sources.list.d/llvm.list
# wget -O- https://apt.llvm.org/llvm-snapshot.gpg.key |gpg --dearmor > /etc/apt/trusted.gpg.d/llvm.gpg
# apt update
# apt install clang-format clang-tidy clang-tools clang clangd \
libc++-dev libc++1 libc++abi-dev libc++abi1 liblldb-dev libclang-dev \
libclang1 libllvm-ocaml-dev libomp-dev libomp5 lld llvm-dev \
llvm-runtime llvm python-clang liblmdb-dev
... unicode ...
# mkdir -p /usr/share/unicode
# cd /usr/share/unicode
# wget https://www.unicode.org/Public/UNIDATA/NamesList.txt https://www.unicode.org/Public/UNIDATA/Blocks.txt
... Debian experimental repo ...
# echo "deb-src http://deb.debian.org/debian/ experimental main" >> /etc/apt/sources.list.d/debian.list
# apt-key --keyring /etc/apt/trusted.gpg.d/debian.gpg adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
# apt update
# apt build-dep libpolkit-gobject-1-dev
$ cd ~
$ mkdir polkit
$ cd polkit
$ apt-get source --compile libpolkit-gobject-1-dev
$ sudo dpkg -i *.deb
... cantarell fonts ...
# pip3 install -r https://gitlab.gnome.org/GNOME/cantarell-fonts/-/raw/v0.301/requirements.txt

coba build

... verifikasi dependensi jhbuild ...
$ jhbuild sysdeps
... download repositori gnome ...
$ jhbuild update
... persiapan build ...
$ screen -S build
... build tanpa download repositori. bila ingin repositori dimutakhirkan, hapus opsi -n ...
$ jhbuild tinderbox -n -o log
^a^a^d
$ links log/index.html
... ^r untuk refresh, q untuk keluar, tunggu beberapa lama sampai proses build selesai ...

Bugfix Spesifik Ubuntu Hirsute