1 poin oleh GN⁺ 2025-04-12 | 7 komentar | Bagikan ke WhatsApp
  • 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

 
bbulbum 2025-04-14

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.

 
kandk 2025-04-14

Dulu rasanya ini sering dipakai, tapi kenapa sekarang jadi terlupakan?

 
bbulbum 2025-04-14

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.

 
kandk 2025-04-14

Aha, belakangan ini sepertinya kalau bukan pengguna berat, orang jadi cenderung memilih Ubuntu yang bisa dipakai baik untuk server maupun desktop!

 
bbulbum 2025-04-14

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!

 
kandk 2025-04-14

Terima kasih haha
Mendengar Fedora jadi mengingatkan saya pada kenangan lama

 
GN⁺ 2025-04-12
Komentar Hacker News
  • Teman yang ditemui sepanjang perjalanan adalah harta yang sesungguhnya
  • Saya ingin melihat lebih banyak biner yang ditautkan secara statis. Misalnya, Python adalah mimpi buruk untuk dipasang dan digunakan
  • Senang melihat mereka juga ikut serta dalam proyek ini
  • Paket Haskell saat ini tidak dapat direproduksi ketika dikompilasi dengan banyak thread. Namun, saya rasa ini bukan masalah besar. Kompiler gcc tidak mendukung kompilasi multi-thread. Dalam bahasa C, paralelisme berasal dari mengompilasi beberapa unit translasi secara paralel
  • Saya kagum melihat kemajuan ini. Salut untuk semua orang yang telah berupaya
  • Sebagai berita terkait, pada bulan Maret ada kabar bahwa image live Debian bookworm telah menjadi sepenuhnya dapat direproduksi
  • Sebagai pengguna Fedora, saya penasaran apa manfaat nyata yang saya dapatkan dari ini. Saya paham untuk build yang tertutup, tetapi saya ingin tahu mengapa ini diperlukan
  • Reproducibility bertentangan dengan profile-guided optimization, terutama jika melibatkan networking dan I/O lain yang tidak konsisten
  • Ya! Saya ingin lebih banyak alat bersifat deterministik. Yang paling atas dalam daftar keinginan saya adalah konfigurasi Proxmox