Im Vorfeld der Debconf 17 liefert das Reproducible-Builds-Projekt neue Zahlen, um den eigenen Fortschritt zu messen. Demnach lassen sich auf bestimmten Plattformen 94 Prozent der Pakete reproduzierbar bauen.
Debian-Nutzer installieren ihre Software in der Regel über binäre Debian-Pakete und nicht direkt aus dem Quellcode, was ohne größere Umstände klappt, weil das Paketsystem Abhängigkeiten auflöst und das langwierige Bauen aus dem Quellcode weg fällt. Es ist die Aufgabe der Debian-Entwickler und -Maintainer, diese vorgefertigten Debian-Pakete aus dem Quellcode der jeweiligen Software zu bauen.
Bislang lässt sich allerdings nur schwer feststellen, ob ein Binärpaket tatsächlich aus dem angegebenen Quellcode übersetzt wurde. Im Buildprozess stecken nämlich einige dynamische Elemente, die sich mit jedem Build ändern und die reproduzierbare Ergebnisse unmöglich machen. Schmuggelt also jemand bösartigen Code in den Buildprozess ein, fällt dies bei den fertigen Binärpaketen nicht auf.
Das Reproducible-Builds-Projekt will das nicht nur für Debian ändern. Es gestaltet den Buildprozess gleichförmig genug, um später anhand der Checksumme einer Binärdatei festzustellen, ob diese tatsächlich bit-identisch mit dem zugrundeliegenden Quellcode ist. Die Idee geht bereits zurück auf das Jahr 2007. Ab 2013, auch im Zuge der Snowden-Enthüllungen, nahm das Reproducible-Builds-Projekt an Fahrt auf, vor allem die Tor- und Bitcoin-Entwickler zeigten für ihre Software Interesse. Die Core Infrastructure Initiative (CII) der Linux-Foundation, aber auch Profitbricks und Codethink, unterstützen das Vorhaben dabei finanziell.
Mittlerweile kann es laut einer aktuellen Ankündigung einige Erfolge vorweisen: Nicht nur haben sich diverse andere Projekte vom Sinn des Ganzen überzeugen lassen, etwa Arch Linux, Fedora, Open Suse, Lede, Tails, Free BSD und Net BSD. Auch die Upstream-Projekte nehmen die Reproduzierbarkeit in ihre Buildüberlegungen auf, schreibt Debian-Entwickler Mattia Rizzolo in einer Mail auf Debians Developer-Announce-Liste. Es hat sicher geholfen, dass die Macher das Reproducible-Builds-Projekt und die dazugehörigen Tools und die Webseite so distributionsunabhängig wie möglich gestalten.
Zugleich liefert der Entwickler für Debian aktuelle Zahlen und Schaubilder: Demnach lassen sich auf der “amd64”-Plattform 94 Prozent der Pakete für Debian 9 (Stretch) reproduzierbar übersetzen. Das sind immerhin 23347 Pakete. Während sich 95 Pakete überhaupt nicht bauen lassen, schlägt die Reproduzierbarkeit noch bei 1319 Paketen fehl. Dank der verlinkten Daten auf der Webseite lässt sich für die meisten Pakete auch im Detail ermitteln, warum das so ist. Schuld sind häufig in den Prozess eingebaute Zeitstempel, die jeden Build ungewollt verändern. In vielen Fällen gibt es bereits Bugreports, in einigen gibt es auch Patches, die darauf warten, dass die Maintainer sie einbauen.
Auch für die anderen Plattformen sehen die Zahlen für Debian 9 gut aus. Auf der “i386”-Plattform sind 91 Prozent der Pakete reproduzierbar, auf “arm64” gar 93 Prozent. Bei “armhf” sind es immerhin rund 91 Prozent. Auch für Buster, die nächste Debian-Version, sehen die Zahlen ähnlich aus. Auf der Debconf 2017 dürften das Thema und die darauf basierenden Tools, etwa Diffoscope, Debrepro und Reprotest, eine Rolle spielen. Unter anderem ist ein Vortrag zu alternativen Möglichkeiten für das im Buildprozess zentrale “.buildinfo”-File geplant, denn hier ergeben sich nun auch neue Möglichkeiten, etwa für die Qualitätssicherung.






I found dffoscope quite useful. Thanks to the en team for good tools!