- 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
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.
Eskiden bunu sık kullanıyor gibiydik, ama neden bugünlerde unutuldu acaba?
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.
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!
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!
Teşekkürler hehe
Fedora deyince aklıma eski anılar geliyor
Hacker News yorumu
gccderleyicisi çoklu thread derlemeyi desteklemiyor. C dilinde paralellik, birden fazla çeviri birimini paralel olarak derlemekten geliyor