Ορισμός: Reproducible builds
Είναι η διαδικασία με την οποία παράγουμε τον δυαδικό κώδικα για ένα εκτελέσιμο απο τον πηγαίο κώδικα με τέτοιο τρόπο ώστε ο κώδικας σε επίπεδο 0 και 1 ένα να είναι ντετερμινιστικός. Δηλαδή αν δυο διαφορετικοί άνθρωποι φτιάξουν ένα εκτελέσιμο αυτό να είναι ακριβώς ίδιο.
Πιθανά να νομίζετε πως αυτό είναι προφανές ότι συμβαίνει. Στην πραγματικότητα όμως δεν είναι καθόλου προφανές ή εύκολο.
Γιατί τα θέλουμε
Αν ο πηγαίος κώδικας είναι ελεγμένος και υπογραμμένος ψηφιακά, θα πάρουμε εγγυημένα ακριβώς αυτό που λέει ο κώδικας ότι κάνει. Κάποιος κακόβουλος που κάνει πακετάρισμα (ή απλά αμελής και η ασφάλεια του υπολογιστή του έχει παραβιαστεί) δεν θα εισάγει “παράπλευρες λειτουργίες” μέσα στον κώδικα.
Πιθανό σενάριο: Μια υπηρεσία με τρία γράμματα αντικαθιστά κάποιες στατικές βιβλιοθήκες στον σερβερ που φτιάχνει τα πακέτα στο Debian. Αυτό θα γίνει εύκολα αντιληπτό καθώς το πακέτο θα χτιστεί σε πολλές μηχανές και σέρβερς και μπορεί να ελεγχθεί ακόμα και από ένα τελικό χρήστη.
Debian Reproducible Builds
Μια σειρά απο διαδικασίες και υποδομές που να εγγυούνται πως η πλειοψηφία των πακέτων έχουν αυτό το χαρακτηριστικό. Είναι κατά την γνώμη μου ένα από τα ποιο σημαντικά projects του Debian.
Στην εικόνα βλέπουμε την εξέλιξη του project. Σήμερα η “αναπαραξιμότητα” είναι ένα σημαντικό χαρακτηριστικό και πολλές άλλες διανομές το προσπαθούν.
Για όποιον θέλει να μάθει περισσότερα