1 पॉइंट द्वारा GN⁺ 2025-04-12 | 7 टिप्पणियां | WhatsApp पर शेयर करें
  • Fedora, Fedora 43 में पूरे पैकेज सेट के 99% को reproducible बनाने के लिए बदलाव आगे बढ़ा रहा है
  • मौजूदा infrastructure सुधारों के ज़रिए 90% तक पहुँचा जा चुका है, और बाकी के लिए packager को इन्हें bug के रूप में पहचानकर ठीक करने के लिए प्रेरित करने की योजना है
  • लक्ष्य security को मज़बूत करना और package quality को बेहतर बनाना है, और इसके लिए स्वतंत्र verification tool rebuilderd भी लाने की तैयारी है

ओपन सोर्स builds की reproducibility का अवलोकन

  • ओपन सोर्स software की security मज़बूत करने और integrity verify करने के लिए 'reproducible builds' का महत्व बढ़ रहा है
  • reproducible build ऐसा build है जिसमें एक ही source code, build environment और build command के आधार पर कोई भी व्यक्ति एक जैसा result तैयार कर सके
  • Debian इस क्षेत्र में 10 साल से अधिक आगे है, और अब उसकी आधिकारिक live CD भी reproducible तरीके से बनाई जा सकती है
  • Fedora ने reproducible builds पर काम हाल में शुरू किया है, लेकिन Fedora 43 development cycle में पूरे पैकेजों के 99% को reproducible बनाने के प्रस्ताव पर विचार कर रहा है

Fedora और Debian के बीच अंतर

  • Debian स्थानीय रूप से build किए गए package upload करने की अनुमति देता है, इसलिए reliability कम हो सकती है
  • Fedora सभी packages को केंद्रीय, सख्ती से नियंत्रित infrastructure में build करता है
  • Fedora dist-git नाम के Git repository में source और hash जानकारी शामिल रखता है, जिससे package tracking आसान हो जाती है

reproducible builds के लिए Fedora की अपनी परिभाषा

  • Fedora, Debian से अलग परिभाषा इस्तेमाल करता है
    • signature और कुछ metadata को छोड़कर, RPM file के वास्तविक content payload पर फोकस किया जाता है
  • इसकी वजह RPM format की विशेषताएँ, signature का तरीका, और build time (BUILDTIME) तथा build host (BUILDHOST) जैसी जानकारी का शामिल होना है
  • openSUSE, BUILDHOST को reproducible पर सेट करके इसका समाधान कर रहा है

reproducible builds की दिशा में Fedora की तकनीकी प्रगति

  • Fedora 38 से SOURCE_DATE_EPOCH का उपयोग करके files के modification time को स्थिर करने वाला बदलाव लागू किया गया
  • Fedora 41 में add-determinism नाम का Rust-आधारित tool लाया गया, जो build हुई files के metadata को standardize करता है
  • Debian strip-nondeterminism नाम की Perl library का उपयोग करता है, लेकिन Fedora ने Perl dependency से बचने के लिए अपना अलग tool चुना
  • अब तक लगभग 90% packages में reproducibility हासिल की जा चुकी है

आगे की योजना

  • बचे हुए 9% के लिए योजना है कि packager reproducibility की समस्या को bug मानें और उसे ठीक करें
  • fedora-repro-build utility दी जाएगी ताकि स्थानीय स्तर पर Koji build की reproducibility test की जा सके
  • rebuilderd नाम की स्वतंत्र verification system को सार्वजनिक रूप से चलाने की योजना है, जो package metadata का विश्लेषण करके और rebuild के ज़रिए reproducibility verify करेगी
  • rebuilderd, diffoscope के माध्यम से differences report भी बना सकती है

packaging guidelines और quality improvement

  • Fedora की packaging guidelines को अपडेट करके यह जोड़ा जाएगा कि "जहाँ संभव हो, build reproducible होना चाहिए"
  • reproducible builds सिर्फ security ही नहीं, package quality सुधारने में भी मदद करती हैं
    • उदाहरण: अगर architecture-independent package में hardware dependency मिलती है, तो यह bug होने की संभावना है

non-reproducible exception cases

  • Haskell, multi-threaded build के दौरान reproducible नहीं है, और इसे ठीक करने का काम जारी है
  • Go में debug file .gdb_index स्थिर नहीं रहती, इसलिए reproducibility नहीं मिलती, और अभी इसका समाधान नहीं है
  • Linux kernel module signing में अस्थायी key का उपयोग होता है, और इससे संबंधित patch प्रस्तावित किया गया है

community feedback

  • Fedora infrastructure team ने rebuilderd की location और maintenance को लेकर सवाल उठाए
  • यह भी चर्चा हुई कि क्या rebuilderd को Koji में integrate किया जा सकता है
  • कुछ लोगों का मानना है कि स्वतंत्र verification के लिए Koji से अलग system का उपयोग बेहतर होगा
  • कुछ ने rebuilderd की जगह Copr के उपयोग का सुझाव भी दिया
  • कुल मिलाकर, Fedora के मौजूदा tools के साथ integration बढ़ाने वाली दिशा को प्राथमिकता दी जा रही है

आगे की प्रक्रिया

  • FESCo(Fedora Engineering Steering Committee) को proposal ticket जमा किया जाएगा
  • मंज़ूरी मिलने पर Fedora 43 की अक्टूबर release target तक implementation का काम तेज़ किया जाएगा
  • अंतिम उपयोगकर्ताओं को शायद बड़ा अंतर महसूस न हो, लेकिन supply chain security के लिहाज़ से यह बहुत मूल्यवान बदलाव है

7 टिप्पणियां

 
bbulbum 2025-04-14

Fedora टीम हमेशा हैरान करती है, और ऐसा लगता है कि उसके ज़्यादातर फ़ैसले सही दिशा में आगे बढ़ने के लिए होते हैं। हर बार योगदान देने वाले सभी लोगों का मैं आभार मानते हुए इसका उपयोग करता हूँ।

 
kandk 2025-04-14

लगता है पहले इसका काफ़ी इस्तेमाल होता था, लेकिन आजकल इसे क्यों भुला दिया गया है?

 
bbulbum 2025-04-14

Linux community में यह अब भी Linux desktop उपयोग के लिए बहुत लोकप्रिय है.
यह server उपयोग के लिए बनी distribution नहीं है, इसलिए हमारे देश में, जहाँ Linux desktop ज़्यादा सक्रिय नहीं है, लगता है इसकी पहचान उतनी ज़्यादा नहीं है.

 
kandk 2025-04-14

आह, लगता है कि आजकल अगर कोई heavy user नहीं है, तो वह ऐसा Ubuntu चुनता है जिसे server और desktop दोनों के लिए इस्तेमाल किया जा सके!

 
bbulbum 2025-04-14

लिनक्स की बात देखकर खुशी हुई, इसलिए एक बात जोड़ रहा/रही हूँ.. hehe
Ubuntu में snap आने के बाद desktop पक्ष में लोगों की राय काफ़ी गिर गई थी.. Unity DE भी लोगों को बहुत बँटा-बँटा सा पसंद आया.. और release cycle बहुत लंबा होने की वजह से नए drivers का support भी ठीक से नहीं मिलता..
अगर आप desktop Linux पर विचार कर रहे हैं, तो मैं सच में Fedora recommend करता/करती हूँ.
Fedora काफ़ी हद तक stock के करीब Gnome इस्तेमाल करता है, और Gnome के हाल के updates भी बहुत बढ़िया रहे हैं, इसलिए यह मुझे सच में बहुत संतोषजनक लगता है!

 
kandk 2025-04-14

धन्यवाद हाहा
Fedora का नाम सुनते ही पुरानी यादें ताज़ा हो जाती हैं

 
GN⁺ 2025-04-12
Hacker News टिप्पणियाँ
  • रास्ते में मिले दोस्त ही असली खजाना होते हैं
  • मैं और ज़्यादा statically linked binaries देखना चाहता हूँ। उदाहरण के लिए, Python को install करके उस पर काम करना किसी दुःस्वप्न जैसा है
  • अच्छा लगा कि वे भी इस प्रोजेक्ट में शामिल हैं
  • Haskell पैकेज इस समय कई threads के साथ compile करने पर reproducible नहीं हैं। लेकिन मुझे नहीं लगता कि यह कोई बड़ी समस्या है। gcc compiler multi-threaded compilation को support नहीं करता। C language में parallelism कई translation units को parallel में compile करने से आता है
  • यह प्रगति देखकर हैरानी होती है। इस पर मेहनत करने वाले सभी लोगों को साधुवाद
  • संबंधित खबर यह है कि मार्च में Debian bookworm live images पूरी तरह reproducible हो गई थीं
  • Fedora user होने के नाते, मैं सोच रहा हूँ कि इससे मुझे वास्तव में क्या मिलेगा। बंद build systems के लिए तो समझ में आता है, लेकिन इसकी ज़रूरत क्यों है, यह जानना चाहता हूँ
  • reproducibility, profile-guided optimization के साथ टकराती है, खासकर जब उसमें networking और अन्य non-deterministic IO शामिल हों
  • हाँ! मैं चाहता हूँ कि और ज़्यादा tools deterministic हों। मेरी wish list में सबसे ऊपर Proxmox configuration है