GNOME/Compile/40.3
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
$ 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 ...