Keine blinden Passagiere
Die Urheber von Software meinen es häufig gut mit ihren Benutzern und packen in ihren Programmquelltext ein »debian«
-Verzeichnis, mit dem Endanwender dann schnell und leicht zu einem ».deb«
-Paket kommen. Für Debian-Entwickler war das ärgerlich: Mit dem zuvor schon beschriebenen Diff-Verfahrens war es nicht sinnvoll möglich, Files im Debian-Ordner zu entfernen, »dpkg-source«
hat fehlende Dateien beim Erstellen des ».diff«
-File einfach ignoriert. Das Resultat war, dass selbst nach dem Erstellen des Pakets durch einen Debian-Entwickler im »debian«
-Verzeichnis oft noch Altlasten des gleichen Ordners vom Programmautor vorhanden waren.
Deb-Source 3.0 löst das Problem: Erkennt »dpkg-source«
im Tarball der originalen Quellen ein Debian-Verzeichnis, löscht es den Ordner, und zwar bevor es die Debian-Änderungen auf den Quelltext anwendet. Wer Pakete gebaut hat, in denen er sich auf vorhandene Files in »debian«
verlässt, muss beim Umstieg auf Deb-Source 3 Anpassungen vornehmen.
Problemfall Patches
Die Vorgehensweise, damit »dpkg-source«
die Bestimmungen von Deb-Source 3 für ein Paket einsetzt, ist einfach: Es genügt, »3.0 (quilt)«
in das File »debian/source/format«
zu schreiben, fertig. Zumindest in der Theorie, denn wer im Paket Patches verwendet, muss Umbauarbeiten auf sich nehmen.
Für das Sourceformat 3.0 sind zwei Namen im Umlauf, auf der einen Seite "3.0 (native)" und auf der anderen "3.0 (quilt)". Letzteres hat das Patchsystem Quilt implementiert, eine wichtige Neuerung in Source 3.0 (Abbildung 1).
Unter Debian-Entwicklern ist es verpönt, Veränderungen außerhalb des Debian-Ordners einfach in das ».diff«
-File zu übernehmen. Die herrschende Auffassung lautetet, dass das ».diff.gz«
-File nur und ausschließlich Veränderungen in »debian/«
vornehmen darf. Wer diesem ungeschriebenen Gesetz folgte, stand aber vor einem Problem: Wie ist mit unvermeidbaren Änderungen im Quelltext umzugehen? Viele Autoren verwenden zum Beispiel für ihre Software hartkodierte Pfade. Wenn diese nicht dem Filesystem Hierarchy Standard (FHS) entsprechen, muss ein Debian-Entwickler die Pfade ändern, wenn er nicht gegen die Debian-Policy [2] verstoßen will. Abhilfe schafft nur eine Lösung, bei der im Debian-Ordner Patches liegen, die während des Bauvorgangs quasi on the Fly auf den Quelltext angewendet werden.
Allerdings wäre es mühsam, für jedes einzelne Paket die Logik, die ein solches System braucht, separat zu implementieren. So kursierten bereits fertige Lösungen: Dpatch [3] war eine davon, »dbs«
hatte ebenso eine eigene Patchlogik, aber die bekannteste Lösung der letzten Jahre heißt Quilt [4]. All diese Systeme beruhen auf dem Prinzip, dass im »debian/patches«
-Ordner Diff-Dateien liegen, die beim Bauen des Pakets dynamisch angewendet und beim Aufrufen des »clean«
-Target in »debian/rules«
wieder entfernt werden. Für jedes einzelne System waren dabei in »debian/rules«
andere Einstellungen zu treffen.
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 4 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





