Patching Source Code Saat Install Aplikasi di Gentoo. Oke ini adalah tutorial sederhana bagaimana cara melakukan patching ketika terdapat kesalahan di source code saat kita ingin menginstall aplikasi.
Seperti yang saya alami, saya menemukan error dan gagal compile ketika ingin menginstall paket serf-1.3.9.sudo emerge --ask net-libs/serf
Dan errornya adalah:
........ >>> Compiling source in /var/tmp/portage/net-libs/serf-1.3.9/work/serf-1.3.9 ... scons -j4 PREFIX=/usr LIBDIR=/usr/lib64 APR=SYSROOT='' /usr/bin/apr-1-config APU=SYSROOT='' /usr/bin/apu-1-config BUILD_STATIC=no AR=x86_64-pc-linux-gnu-ar RANLIB=x86_64-pc-linux-gnu-ranlib CC=x86_64-pc-linux-gnu-gcc CPPFLAGS= CFLAGS=-march=broadwell -O2 -pipe LINKFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed scons: Reading SConscript files ... File "/var/tmp/portage/net-libs/serf-1.3.9/work/serf-1.3.9/SConstruct", line 189 print 'Warning: Used unknown variables:', ', '.join(unknown.keys()) ^ SyntaxError: invalid syntax * ERROR: net-libs/serf-1.3.9::net-kit failed (compile phase): * escons failed. * * Call stack: * ebuild.sh, line 93: Called src_compile * environment, line 2501: Called escons * environment, line 984: Called die * The specific snippet of code: * die "escons failed." ...........Berikut screenshotnya:
cd /var/tmp/portage/net-libs/serf-1.3.9/work/serf-1.3.9/
cp SConstruct SConstruct-fixed
nano SConstruct-fixed
Jika sudah, kita generate file patchnya. Masih di direktori yang sama, jalankan command diff.
diff -Naur SConstruct SConstruct-fixed > fixed.patch
Selanjutnya kita buat direktori untuk meletakkan file patchnya. Lokasinya ada di /etc/portage/patches/[kategori]/[nama paket]. Karena serf-1.3.9 ada di kategori net-libs, maka direktori fullnya adalah
/etc/portage/patches/net-libs/serf-1.3.9/
Kita pindahkan file fixed.patch kesana.
Cek patch menggunakan ebuild.
Sekarang kita test install lagi.
sudo emerge --ask net-libs/serf
Sukses.
Oke mungkin sekian tutorial singkat kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.
Jangan sampai lewatkan update terbaru dari LinuxSec, berlangganan memalui email sekarang.