- Fedora sedang mendorong perubahan di Fedora 43 untuk membuat 99% dari seluruh paket dapat direproduksi
- Perbaikan infrastruktur yang ada telah mencapai 90%, dan sisanya akan diarahkan agar para package maintainer mengenalinya sebagai bug dan memperbaikinya
- Tujuannya adalah memperkuat keamanan dan meningkatkan kualitas paket, serta berencana memperkenalkan alat verifikasi independen
rebuilderd
Gambaran umum reproducible builds pada build open source
- Untuk memperkuat keamanan perangkat lunak open source dan memverifikasi integritasnya, 'reproducible builds' menjadi semakin penting
- Reproducible build adalah build yang memungkinkan siapa pun menghasilkan artefak yang sama melalui source code, lingkungan build, dan perintah build yang sama
- Debian telah unggul di bidang ini selama lebih dari 10 tahun, dan kini bahkan dapat membuat live CD resminya secara reproducible
- Fedora baru belakangan ini mulai mengerjakan reproducible builds, tetapi sedang meninjau proposal untuk membuat 99% dari seluruh paket dapat direproduksi dalam siklus pengembangan Fedora 43
Perbedaan Fedora dan Debian
- Debian mengizinkan unggahan paket yang dibangun secara lokal sehingga tingkat kepercayaannya bisa lebih rendah
- Fedora membangun semua paket secara terpusat dalam infrastruktur yang dikendalikan dengan ketat
- Fedora memudahkan pelacakan paket dengan menyertakan source dan informasi hash di repositori Git bernama
dist-git
Definisi reproducible build ala Fedora
- Fedora menggunakan definisi yang berbeda dari Debian
- Mengabaikan signature dan sebagian metadata, lalu berfokus pada konten aktual (payload) dari file RPM
- Alasannya adalah karena karakteristik format RPM dan metode penandatanganannya, serta karena ada informasi seperti waktu build (BUILDTIME) dan host build (BUILDHOST) yang ikut disertakan
- openSUSE menyelesaikan ini dengan menetapkan BUILDHOST ke
reproducible
Kemajuan teknis Fedora menuju reproducible builds
- Sejak Fedora 38, perubahan yang menggunakan
SOURCE_DATE_EPOCH telah diterapkan untuk menetapkan waktu modifikasi file secara tetap
- Di Fedora 41, diperkenalkan alat berbasis Rust bernama
add-determinism untuk menstandarkan metadata file hasil build
- Debian menggunakan pustaka Perl bernama
strip-nondeterminism, tetapi Fedora memilih alatnya sendiri untuk menghindari ketergantungan pada Perl
- Hingga saat ini, reproducibility untuk sekitar 90% paket telah tercapai
Rencana ke depan
- Untuk 9% yang tersisa, para package maintainer akan diarahkan agar menganggap masalah yang tidak dapat direproduksi sebagai bug dan memperbaikinya
- Utilitas
fedora-repro-build akan disediakan agar pengujian apakah build Koji dapat direproduksi bisa dilakukan secara lokal
- Sistem verifikasi independen bernama
rebuilderd akan dioperasikan secara publik; sistem ini menganalisis metadata paket dan memverifikasi reproducibility melalui rebuild
rebuilderd dapat menghasilkan laporan perbedaan melalui diffoscope
Pedoman packaging dan peningkatan kualitas
- Pedoman packaging Fedora akan diperbarui menjadi “harus dibangun secara reproducible bila memungkinkan”
- Reproducible builds berkontribusi bukan hanya pada keamanan, tetapi juga pada peningkatan kualitas paket
- Contoh: jika ditemukan ketergantungan perangkat keras pada paket yang independen terhadap arsitektur, itu kemungkinan merupakan bug
Kasus pengecualian yang tidak dapat direproduksi
- Haskell tidak dapat direproduksi saat build multithread, dan pekerjaan perbaikannya sedang berlangsung
- Go tidak dapat direproduksi karena file debug
.gdb_index tidak konsisten, dan belum ada solusinya
- Penandatanganan modul kernel Linux menggunakan kunci sementara, dan patch terkait telah diusulkan
Umpan balik komunitas
- Tim infrastruktur Fedora mengajukan pertanyaan tentang lokasi dan pemeliharaan rebuilderd
- Ada juga diskusi mengenai apakah rebuilderd dapat diintegrasikan ke Koji
- Ada pula pendapat bahwa untuk verifikasi independen, lebih baik menggunakan sistem di luar Koji
- Sebagian pihak juga mengusulkan pemanfaatan Copr sebagai pengganti rebuilderd
- Secara umum, arah yang lebih disukai adalah meningkatkan integrasi dengan alat Fedora yang sudah ada
Prosedur selanjutnya
- Tiket proposal akan diajukan ke FESCo (Fedora Engineering Steering Committee)
- Jika disetujui, pekerjaan implementasi akan dipercepat secara penuh hingga target rilis Fedora 43 pada bulan Oktober
- Pengguna akhir mungkin tidak akan merasakan banyak perbedaan, tetapi ini adalah perubahan yang sangat bernilai dari sisi keamanan rantai pasok
7 komentar
Tim Fedora selalu terasa mengagumkan, dan sebagian besar keputusannya tampak berkembang ke arah yang tepat. Saya menggunakannya dengan rasa terima kasih kepada semua orang yang selalu berkontribusi setiap saat.
Dulu rasanya ini sering dipakai, tapi kenapa sekarang jadi terlupakan?
Meski begitu, distro ini masih sangat populer di komunitas Linux untuk penggunaan desktop Linux.
Karena bukan distro yang ditujukan untuk server, tampaknya distro ini tidak terlalu dikenal di negara kita, tempat desktop Linux tidak begitu aktif.
Aha, belakangan ini sepertinya kalau bukan pengguna berat, orang jadi cenderung memilih Ubuntu yang bisa dipakai baik untuk server maupun desktop!
Entah kenapa, senang melihat topik tentang Linux jadi saya ikut menambahkan komentar.. hehe
Sejak Ubuntu memperkenalkan snap, sentimen pengguna di kubu desktop sempat jatuh bebas.. lalu DE Unity juga sangat memecah selera.. siklus rilisnya juga terlalu panjang sehingga dukungan driver terbaru pun kurang baik..
Kalau Anda sedang mempertimbangkan Linux desktop, saya benar-benar merekomendasikan Fedora.
Fedora menggunakan Gnome yang dekat dengan versi murni, dan update Gnome belakangan ini juga sangat mantap jadi saya benar-benar puas!
Terima kasih haha
Mendengar Fedora jadi mengingatkan saya pada kenangan lama
Komentar Hacker News