GNOME/BuildStream

From i14i
Jump to navigation Jump to search

Membangun GNOME Memakai BuildStream https://wiki.gnome.org/Newcomers/BuildSystemComponent

Memulai

Kebutuhan

Ruang disk paling tidak 20 GB

Pasang BuildStream

Acuan: https://buildstream.gitlab.io/buildstream/install.html

Untuk Debian Buster/Sid, pasang paket dasar:

sudo apt-get install python3-dev python3-pip git python3-gi gir1.2-ostree-1.0 ostree bubblewrap python3-ruamel.yaml fuse libfuse2

Pasang juga paket-paket berikut:

sudo apt install build-essential autoconf libtool pkg-config python3-dev

Bila memakai VM lxc, siapkan agar VM bisa memakai fuse, dengan menambahkan baris berikut pada berkas config VM lxc di VM host:

#fuse
lxc.cgroup.devices.allow = c 10:229 rwm

Lalu jalankan juga di VM lxc

$ sudo cp -a /dev /dev.old
$ sudo apt-get install sshfs
$ sudo cp -a /dev.old/* /dev/
$ sudo mknod /dev/fuse c 10 229
$ sudo addgroup --system fuse
$ sudo chgrp fuse /dev/fuse
$ sudo chmod g+w /dev/fuse
$ sudo usermod -G fuse `whoami`

Pasang dengan pip:

git clone https://gitlab.com/BuildStream/buildstream.git
cd buildstream
pip3 install --user -e .

Sesuaikan path, jalankan yang berikut, dan tambahkan juga di ~/.bashrc:

export PATH=${PATH}:~/.local/bin

Bash completion, pasang yang berikut di ~/.bash_completion:

# BuildStream bash completion scriptlet.
#
# On systems which use the bash-completion module for
# completion discovery with bash, this can be installed at:
#
#   pkg-config --variable=completionsdir bash-completion
#
# If BuildStream is not installed system wide, you can
# simply source this script to enable completions or append
# this script to your ~/.bash_completion file.
#
_bst_completion() {
    local IFS=$'
'
    COMPREPLY=( $( env COMP_WORDS="${COMP_WORDS[*]}" \
                   COMP_CWORD=$COMP_CWORD \
                   _BST_COMPLETION=complete $1 ) )
    return 0
}

complete -F _bst_completion -o nospace bst;

Atur BuildStream

Buat berkas .config/buildstream.conf yang berisi:

# This configuration reduces the amount of necessary rebuilds
projects:
  gnome:
    strict: False

# This configuration lets you control the number of allowed parallel builds
scheduler:
  builders: 2

Membangun GNOME

Unduh Proyek GNOME

Build pertama

Ambil metadata build terakhir

Menjalankan perangkat lunak yang dibangun memakai BuildStream

Mengembangkan

Memutakhirkan satu modul

Bila Ada yang Salah

Langkah Selanjutnya