1 puan yazan GN⁺ 2025-04-12 | 7 yorum | WhatsApp'ta paylaş
  • Fedora, tüm paketlerin %99’unu yeniden üretilebilir hale getirmek için Fedora 43’te bir değişikliği hayata geçirmeyi planlıyor
  • Mevcut altyapı iyileştirmeleriyle %90 seviyesine ulaşıldı; kalan kısmın ise paketleyiciler tarafından bir hata olarak görülüp çözülmesi teşvik edilecek
  • Hedef; güvenliği güçlendirmek ve paket kalitesini artırmak, ayrıca bağımsız doğrulama aracı rebuilderd de devreye alınacak

Açık kaynak derlemelerde yeniden üretilebilirlik (Reproducible Builds) genel bakış

  • Açık kaynak yazılımların güvenliğini artırmak ve bütünlüğünü doğrulamak için 'yeniden üretilebilir derlemeler' giderek daha önemli hale geliyor
  • Yeniden üretilebilir derleme, aynı kaynak kodu, derleme ortamı ve derleme komutlarıyla herkesin aynı çıktıyı üretebildiği derlemedir
  • Debian bu alanda 10 yılı aşkın süredir önde ve artık resmî live CD’lerini de yeniden üretilebilir şekilde oluşturabiliyor
  • Fedora yeniden üretilebilir derlemeler konusunda çalışmaya yakın zamanda başlamış olsa da, Fedora 43 geliştirme döngüsünde tüm paketlerin %99’unu yeniden üretilebilir hale getirme önerisini değerlendiriyor

Fedora ve Debian arasındaki farklar

  • Debian, yerelde derlenmiş paketlerin yüklenmesine izin verdiği için güvenilirlik daha düşük olabilir
  • Fedora, tüm paketleri merkezî ve sıkı biçimde kontrol edilen bir altyapıda derliyor
  • Fedora, dist-git adlı Git deposunda kaynak ve hash bilgilerini de tuttuğundan paket takibini kolaylaştırıyor

Fedora’ya özgü yeniden üretilebilir derleme tanımı

  • Fedora, Debian’dan farklı bir tanım kullanıyor
    • İmza (signature) ve bazı meta verileri dışarıda bırakıp RPM dosyasının gerçek içeriğine (payload) odaklanıyor
  • Bunun nedeni RPM formatının özellikleri, imzalama yöntemi ve derleme zamanı (BUILDTIME) ile derleme ana makinesi (BUILDHOST) gibi bilgilerin dosyada yer alması
  • openSUSE, BUILDHOST değerini reproducible yaparak bunu çözüyor

Fedora’nın yeniden üretilebilir derlemelere yönelik teknik ilerleyişi

  • Fedora 38’den itibaren SOURCE_DATE_EPOCH kullanılarak dosyaların değişiklik zamanını sabitleyen bir değişiklik uygulandı
  • Fedora 41’de, derlenmiş dosyaların meta verilerini standartlaştırmak için Rust tabanlı add-determinism aracı devreye alındı
  • Debian, strip-nondeterminism adlı Perl kütüphanesini kullanıyor; Fedora ise Perl bağımlılığından kaçınmak için kendi aracını tercih etti
  • Şu ana kadar paketlerde yaklaşık %90 yeniden üretilebilirlik sağlandı

Sonraki planlar

  • Kalan %9 için, paketleyicilerin yeniden üretilemeyen sorunları hata olarak görüp düzeltmeleri teşvik edilecek
  • fedora-repro-build yardımcı programı sağlanarak yerelde Koji derlemelerinin yeniden üretilebilir olup olmadığı test edilebilecek
  • rebuilderd adlı bağımsız doğrulama sistemi kamuya açık biçimde işletilecek; bu sistem paket meta verilerini analiz edip yeniden derleme yoluyla yeniden üretilebilirliği doğrulayacak
  • rebuilderd, diffoscope aracılığıyla fark raporları da üretebiliyor

Paketleme yönergeleri ve kalite artışı

  • Fedora’nın paketleme yönergeleri, “mümkünse yeniden üretilebilir şekilde derlenmeli” biçiminde güncellenecek
  • Yeniden üretilebilir derlemeler yalnızca güvenliğe değil, paket kalitesinin artmasına da katkı sağlıyor
    • Örneğin: mimariden bağımsız bir pakette donanım bağımlılığı bulunursa bu muhtemelen bir hatadır

Yeniden üretilemeyen istisna örnekleri

  • Haskell, çok iş parçacıklı derlemelerde yeniden üretilemiyor; düzeltme çalışmaları sürüyor
  • Go, debug dosyası .gdb_index tutarlı olmadığı için yeniden üretilemiyor; henüz bir çözüm yok
  • Linux çekirdek modülü imzalamada geçici anahtar kullanılıyor; buna ilişkin bir yama önerildi

Topluluk geri bildirimi

  • Fedora altyapı ekibinde, rebuilderd’nin konumu ve bakımıyla ilgili sorular gündeme geldi
  • rebuilderd’nin Koji’ye entegre edilip edilemeyeceği de tartışılıyor
  • Bağımsız doğrulama için Koji dışındaki bir sistemin tercih edilmesi gerektiğini savunan görüşler de var
  • Bazıları rebuilderd yerine Copr kullanımını da öneriyor
  • Genel olarak mevcut Fedora araçlarıyla entegrasyonu artıran bir yaklaşım tercih ediliyor

Sonraki süreç

  • FESCo (Fedora Engineering Steering Committee) için bir öneri bileti sunulacak
  • Onaylanırsa, Fedora 43’ün Ekim ayındaki hedef sürümüne kadar uygulama çalışmaları hızlandırılacak
  • Son kullanıcılar büyük bir fark hissetmeyebilir, ancak tedarik zinciri güvenliği açısından bu çok değerli bir değişiklik

7 yorum

 
bbulbum 2025-04-14

Fedora ekibi her zaman etkileyici geliyor ve kararlarının çoğu doğru yönde ilerlemeye çalıştıkları hissini veriyor. Her seferinde katkıda bulunan herkese minnet duyarak kullanıyorum.

 
kandk 2025-04-14

Eskiden bunu sık kullanıyor gibiydik, ama neden bugünlerde unutuldu acaba?

 
bbulbum 2025-04-14

Linux topluluğunda hâlâ Linux masaüstü için çok yüksek bir popülerliğe sahip.
Sunucu amaçlı bir dağıtım olmadığı için, Linux masaüstünün çok yaygın olmadığı ülkemizde çok da yüksek bir bilinirliğe sahip değil gibi görünüyor.

 
kandk 2025-04-14

Aha, görünüşe göre artık ağır kullanıcı değilseniz, hem sunucu hem de masaüstünde kullanılabilen Ubuntu'yu seçiyorsunuz gibi görünüyor!

 
bbulbum 2025-04-14

Linux hakkında bir şeyler görmek hoşuma gittiği için ben de bir şeyler ekleyeyim.. hehe
Ubuntu, snap'in kullanılmaya başlanmasından sonra masaüstü tarafında kullanıcı gözünde ciddi itibar kaybetti.. Unity DE de çok keskin biçimde seveni ve sevmeyeni olan bir yapıya sahipti.. dağıtım döngüsü de fazla uzun olduğu için en yeni sürücü desteği de pek iyi olmuyor..
Masaüstü Linux düşünüyorsanız gerçekten Fedora'yı tavsiye ederim.
Fedora, stock sürüme yakın bir Gnome kullanıyor; Gnome da son güncellemelerle oldukça güçlendiği için ben gerçekten çok memnunum!

 
kandk 2025-04-14

Teşekkürler hehe
Fedora deyince aklıma eski anılar geliyor

 
GN⁺ 2025-04-12
Hacker News yorumu
  • Yolda tanıştığın arkadaş gerçek hazinedir
  • Daha fazla statik olarak linklenmiş ikili dosya görmek isterdim. Örneğin, Python'ı kurmak ve onunla çalışmak tam bir kâbus
  • Onların da bu projeye katkıda bulunduğunu görmek güzel
  • Haskell paketleri şu anda birden fazla thread ile derlendiğinde yeniden üretilebilir değil. Ama bunun büyük bir sorun olduğunu sanmıyorum. gcc derleyicisi çoklu thread derlemeyi desteklemiyor. C dilinde paralellik, birden fazla çeviri birimini paralel olarak derlemekten geliyor
  • Bu ilerlemeyi görmek şaşırtıcı. Emek veren herkese alkış
  • İlgili bir haber olarak, Mart ayında Debian bookworm canlı imajlarının tamamen yeniden üretilebilir hale geldiği duyurulmuştu
  • Bir Fedora kullanıcısı olarak bunun bana pratikte ne sağladığını merak ediyorum. Kapalı build'ler için mantığını anlıyorum ama neden gerekli olduğunu merak ediyorum
  • Yeniden üretilebilirlik, profile-guided optimization ile çelişiyor. Özellikle ağ iletişimi ve tutarsız diğer I/O işlemleri söz konusu olduğunda
  • Evet! Daha fazla aracın deterministik olmasını istiyorum. İstek listemin en üstünde Proxmox yapılandırması var