20230718 08h40m25s grim

Mengatasi FTBFS pada Pembangunan Paket Distro Debian dan Ubuntu.

Selama beberapa hari yang lalu, lebih tepatnya 2 hari, saya mengulik tentang pembangunan paket pada distro Debian dan Ubuntu. Saya menemukan adanya fenomena FTBFS dari sebuah komentar dari forum matrix ubuntu, yang memiliki kepanjangan Fails To Build From Source. Fenomena FTBFS terjadi ketika sebuah paket gagal / fail dibangun (build) dari kode sumber (from source). Saya mengalaminya pada paket sway. Sedianya saya ingin membahas pembangunan paket sway pada bahasan kemarin, hanya saja karena adanya FTBFS jadi saya urungkan. Beruntungnya saya berhasil menangani FTBFS pada pembangunan paket sway pada distro Debian dan Ubuntu. Berikut ini adalah sedikit pengalaman saya tentang hal itu.

20230718 08h40m25s grim

Penjelasan singkat tentang FTBFS dari Debian wiki.

FTBFS yang saya alami, apa penyebabnya ?

FTBFS berkaitan dengan beberapa hal, salah satunya proses kompilasi. Proses kompilasi sendiri bisa gagal disebabkan oleh hal-hal berikut.

  1. Dependensi yang tidak terpenuhi.
  2. Kode yang sudah cocok dengan dependensi.
  3. Error Compiler.
  4. Dan lain-lain.

Untuk kasus yang saya alami, saya pikir penyebabnya adalah nomor 3. Saya bisa berkata seperti itu karena penyelesaian yang saya lakukan adalah menyesuaikan compiler agar bisa berjalan dan berhasil untuk membangun paket sway.

Bagaimana bisa diatasi ?

Jujur, ketika menemukan cara untuk mengatasi FTBFS pada pembangunan paket sway, saya hanya beruntung. Bermula dari kegabutan saat malam hari, saya iseng browsing cara mengatasi kegagalan saat kompilasi paket sway. Error yang saya temukan sebagai berikut.

../sway/ipc-json.c:840:17: error: enumeration value ‘LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM’ \
not handled in switch [-Werror=switch]Code language: C++ (cpp)

Saya hanya mengambil inti dari error tersebut yaitu

enumeration value ... not handled in switch Code language: C++ (cpp)

Setelah browsing dan mencoba beberapa percobaan, akhirnya saya menemukan penyelesaian yang tepat. Pembahasannya bisa dilihat pada laman ini. Di laman itu dijelaskan cara men-disable enumeration value … not hanled in switch, walaupun sebenarnya ditujukkan untuk kode c++, ternyata ada yang memberikan alternatif untuk GCC dan ternyata berhasil digunakan !

Apa yang diubah supaya paket sway bisa dibangun ?

Melihat pada error saat membangun paket sway, yaitu

../sway/ipc-json.c:840:17: error: enumeration value ‘LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM’ \
not handled in switch [-Werror=switch]Code language: C++ (cpp)

Saya memodifikasi dan mengubah berkas “sway/ipc-json.c” dan langsung menuju baris 840, di mana sumber error berada. Saya langsung menambahkan 2 baris kode yang saya ambil dari laman ini (sudah saya sebutkan sebelumnya) dan melakukan pembangunan ulang paket.

// kode yang saya tambahkan

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wswitch"Code language: C++ (cpp)
20230718 08h27m18s grim

2 baris kode yang saya tambahkan.

Saya membangun ulang paket sway dengan perintah berikut dan akhirnya paket sway berhasil dibangun.

$ sudo dpkg-buildpackage -us -uc -dCode language: Shell Session (shell)

Lalu ?

Setelah menemukan penyelesaian, saya tidak menyimpannya sendiri. Sedapat mungkin perlu saya bagikan atau informasikan, supaya bisa dikonfirmasi dan jika memang reproducible, bisa diterapkan secepatnya. Sebelum menemukan penyelesaian, saya membuat laporan bug ke laman bug launchpad , tautan post-nya bisa dilihat di sini. Saya melampirkan solusi yang saya dapatkan di sana.

Penutup.

Demikian tadi, pengalaman yang saya alami ketika mencoba mengatasi FTBFS saat membangun paket. Semoga bisa menjadi ilmu baru yang bisa berguna, khususnya bagi saya pribadi. Terima kasih dan sampai berjumpa pada bahasan selanjutnya !

Artikel Terkait

Leave a Reply

Your email address will not be published. Required fields are marked *