Episode ini membuka dunia build system Void: menyiapkan xbps-src dengan binary-bootstrap, membangun paket dari template lewat xbps-src pkg, memahami struktur template void-packages, serta cara menginstall paket lokal dan berkontribusi ke repositori.

Void tidak hanya mengonsumsi paket — ia juga memberi kalian kendali penuh untuk membangun paket sendiri. Episode 15 membahas xbps-src, build system Void yang bekerja bersama repositori template void-packages. Dengan ini, kalian bisa menyusun paket dari source, menginstal paket yang belum ada di repositori biner, bahkan berkontribusi ke ekosistem Void.
xbps-src adalah salah satu pembeda terbesar Void. Ia menyediakan environment build yang bersih dan terisolasi, jadi paket yang dibangun selalu konsisten dan bisa diulang.
Mari siapkan lingkungan build kita.
Langkah pertama adalah mengklon repositori template:
git clone https://github.com/void-linux/void-packages.git
cd void-packagesvoid-packages berisi ribuan template paket yang siap dibangun. Struktur utamanya:
srcpkgs/<nama>/template : definisi build tiap paket
common/ : helper dan fungsi build
xbps-src : skrip utama build systemSebelum build pertama, jalankan bootstrap untuk menyiapkan environment yang dibutuhkan:
./xbps-src binary-bootstrapPerintah ./xbps-src binary-bootstrap mengunduh toolchain dan paket dasar ke masterdir. Bootstrap ini dilakukan satu kali, kecuali masterdir dihapus.
Untuk membangun sebuah paket dari template:
./xbps-src pkg wgetPerintah ./xbps-src pkg wget membangun paket wget beserta dependensinya ke direktori hostdir/binpkgs. Hasilnya adalah paket biner yang bisa diinstall.
Gunakan -j untuk paralel build dan -C untuk membersihkan masterdir:
./xbps-src -j$(nproc) -C pkg wgetBersihkan hasil build yang tidak terpakai dengan:
./xbps-src cleanTemplate adalah skrip shell berisi metadata dan fungsi build. Contoh template sederhana:
pkgname=hello
version=2.12
revision=1
short_desc="Hello world example package"
maintainer="Arman Dwi Pangestu <arman@example.com>"
license="GPL-3.0-or-later"
homepage="https://www.gnu.org/software/hello"
distfiles="https://ftp.gnu.org/gnu/hello/hello-${version}.tar.gz"
checksum=cb62a6187a6e50a0e8a0d0b1f0b1b0b1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c
do_configure() {
./configure --prefix=/usr
}Variabel kunci dalam template adalah pkgname, version, short_desc, license, distfiles, dan checksum.
Dependensi dibedakan menjadi depends, makedepends, dan hostmakedepends:
depends : runtime
makedepends : build time
hostmakedepends : tool yang berjalan di host saat cross-compileSebagai contoh, paket C membutuhkan gcc di makedepends, sementara libfoo di depends.
Paket hasil build di hostdir/binpkgs bisa diinstall dengan XBPS:
./xbps-src install helloPerintah ./xbps-src install hello mem-build lalu menginstall paket ke sistem Void aktif. Cara ini berguna untuk menguji paket sebelum dikirim ke repositori.
Jika kalian ingin paket kalian masuk repositori resmi, ikuti panduan kontribusi di CONTRIBUTING.md. Prosesnya secara umum:
./xbps-src pkg hello
./xbps-src chroot lintSetelah semua cek lulus, buat Pull Request di repositori void-linux/void-packages. Reviewer komunitas akan memeriksa template dan hasil build kalian.
Episode 15 membuka dunia build system Void: menyiapkan xbps-src dengan binary-bootstrap, membangun paket dari template dengan xbps-src pkg, memahami struktur template seperti pkgname dan checksum, menginstall paket lokal, dan jalur berkontribusi ke void-packages.
Inti yang harus dibawa pulang:
void-packages adalah repositori template paket Void../xbps-src binary-bootstrap menyiapkan environment build../xbps-src pkg <nama> membangun paket beserta dependensi.pkgname, version, distfiles, dan checksum../xbps-src install.Di episode 16 selanjutnya kita akan membahas backup, restore, dan update — mencadangkan data dengan rsync, memanfaatkan snapshot Btrfs, melacak perubahan konfigurasi dengan etckeeper, serta prosedur upgrade aman dan recovery dari ISO rescue.