Home

Debian-Leitfaden für Neue Paketbetreuer

image

Contents

1. Mittel komplexe Pakete einfaches Bin rpaket arch any ELF Bin rprogramme kompiliert aus Sprachen wie C und C mehrere Bin rpakete arch any all Pakete f r ELF Bin rprogramme Dokumentation Quelle der Originalautoren ist weder im Format tar gz noch im Format tar bz2 die Quellen der Originalautoren enthalten Inhalte die nicht verteilt werden d rfen Hochkomplexe Pakete Interpretermodulpakete die von anderen Paketen verwandt werden generische ELF Bibliothekspakete die von anderen Paketen verwandt werden mehrere Bin rpakete darunter ein ELF Bibliothekspaket Quellpakete mit mehreren Quellen von Originalautoren Kernelmodul Pakete Kernel Patch Pakete jedes Paket mit nicht trivialen Betreuerskripten Paketieren von hochkomplexen Paketen ist nicht zu schwer erfordert aber ein bisschen mehr Wissen Sie sollten spezielle Hilfe stellungen f r jede komplexe Funktionalit t erbitten Beispielsweise haben einige Sprachen ihre eigenen Unter Richtliniendokumente Debian Leitfaden f r Neue Paketbetreuer 9 63 e Perl Richtlinien http www debian org doc packaging manuals perl policy e Python Richtlinien http www debian org doc packaging manuals python policy e Java Richtlinien http www debian org doc packaging manuals java policy Es gibt einen alten lateinischen Spruch fabricando fit faber bung macht den Meister Es wird nachdr cklich empfohlen zu ben und mit allen Schr
2. 3 Dies ersetzt den veralteten Befehl dh_movefiles 1 der durch die Datei files konfiguriert wurde Debian Leitfaden f r Neue Paketbetreuer 36 63 sollten zun chst berpr fen ob es nicht ein spezielleres Werkzeug gibt das verwendet werden kann Beispielsweise sollten Dokumente in der Datei docs stehen und nicht in dieser hier Diese Datei install enth lt pro Zeile eine zu installierende Datei zun chst den Namen der Datei relativ zum obersten Ver zeichnis des Paketbaus dann ein Leerzeichen und zuletzt das Installationsverzeichnis relativ zum Install Verzeichnis Ein Bei spiel wo dies benutzt werden kann ist eine Bin rdatei src bar die nicht installiert wurde Die Datei install k nnte so aussehen sre bar usr bin Wenn dieses Paket installiert ist bedeutet dies dass es einen ausf hrbaren Befehl usr bin bar geben wird Alternativ kann die Datei install nur den Dateinamen ohne Installationsverzeichnis enthalten wenn sich der relative Ver zeichnispfad nicht ndert Dieses Format wird blicherweise f r gro e Pakete benutzt die das Ergebnis des Baus auf mehrere Bin rpakete verteilen Daf r verwenden diese Paket 1 install Paket 2 install usw Der Befehl dh_install f llt darauf zur ck im Verzeichnis debian tmp nach Dateien zu suchen wenn er sie im aktuellen Verzeichnis nicht findet oder wo auch immer Sie das Programm mit sourcedir angewiesen haben zu suchen 5 12 paket info Falls Ihr Paket info
3. 51 51 52 52 53 54 54 56 56 57 57 Debian Leitfaden f r Neue Paketbetreuer 1 63 Kapitel 1 Einstieg aber richtig Dieses Dokument versucht einem typischen Debian Benutzer und zuk nftigen Entwickler in einer verst ndlichen Sprache die Technik der Paketerstellung f r Debian beizubringen begleitet von funktionierenden Beispielen Ein altes lateinisches Sprichwort lautet Longum iter est per praecepta breve et efficax per exempla Es ist ein langer Weg mit Regeln aber ein kurzer und effizienter mit Beispielen Dieses Dokument wurde f r die Debian Ver ffentlichung Jessie aktualisiert Eines der Dinge die Debian zu einer hervorragenden Distribution machen ist das Paket System Obwohl massenhaft Software im Debian Format vorhanden ist muss man manchmal auch Software installieren die nicht in diesem Format vorliegt Sie fragen sich vermutlich wie man eigene Pakete erstellt und vielleicht meinen Sie es sei eine sehr komplizierte Aufgabe Nun wenn Sie ein absoluter Linux Neuling sind dann ist es wirklich schwierig aber als Anf nger w rden Sie dieses Dokument jetzt nicht lesen Sie sollten schon ein wenig Kenntnisse ber die Unix Programmierung mitbringen aber Sie brauchen ganz sicher kein Guru zu sein Eines ist wohl sicher um Debian Pakete richtig zu bauen und zu warten brauchen Sie viel Zeit Sch tzen Sie das nicht falsch ein damit unser System funktioniert muss der Betreuer sowohl technisch kompe
4. Die Quelle muss dem Filesystem Hierarchy Standard FHS folgen Programme die GNU autoconf einsetzen folgen automatisch den GNU Konventionen so dass sie trivial zu paketieren sind Auf Grund dieser Tatsache und weiterer Heuristik wird gesch tzt dass das Paket debhelper f r ungef hr 90 aller Pakete richtig funktionieren wird ohne dass irgendwelche tiefgreifenden nderungen an deren Build System vorgenommen werden m ssen Daher ist das Paketieren nicht so kompliziert wie es zun chst aussieht Falls Sie nderungen an dem Makefile vornehmen m ssen sollten Sie vorsichtig sein dass die Variable DESTDIR un terst tzt wird Obwohl sie standardm ig nicht gesetzt ist wird die Variable DESTDIR jedem Dateipfad vorangestellt der f r die Programminstallation verwendet wird Das Skript f r das Paketieren setzt DESTDIR auf das tempor re Verzeichnis Bei einem Quellpaket das ein einzelnes Bin rpaket erstellt wird das tempor re Verzeichnis das vom Befehl dh_auto_install benutzt wird auf debian Paket gesetzt Alles was im tempor ren Verzeichnis enthalten ist wird auf dem System eines 1 Das Verzeichnis debian patches sollte inzwischen existieren wenn Sie dh_make wie vorher beschrieben ausgef hrt haben In diesem Beispiel wird es sicherheitshalber erstellt nur f r den Fall dass Sie ein existierendes Paket aktualisieren Lesen Sie GNU Coding Standards 7 2 4 DESTDIR Support for Staged Installs http www gnu or
5. Diese Mailingliste ist f r den Anf n ger debian devel lists debian org Mailingliste http lists debian org debian devel Diese Mailingliste ist f r den Experten IRC http www debian org support irc wie debian mentors Teams konzentrieren sich auf bestimmte Paketgruppen Vollst ndige Liste unter https wiki debian org Teams https wiki debian org Teams Sprachspezifische Mailinglisten wie debian devel french italian portuguese spanish Olists debian org oder debian devel debian or Vollst ndige Listen unter https lists debian org devel html https lists debian org devel html und https lists debian org users html https lists debian org users html Die erfahreneren Debian Entwickler werden Ihnen gerne helfen falls Sie nach den verlangten Recherchen Ihre Frage vern nftig formulieren Wenn Sie einen Fehlerbericht erhalten ja tats chliche Fehlerberichte ist es Zeit f r Sie tiefer in die Debian Fehlerdatenbank http www debian org Bugs einzusteigen und die dort vorhandene Dokumentation zu lesen damit Sie mit den Berichten effi zient umgehen k nnen Ich empfehle dringend die Debian Entwicklerreferenz 5 8 Handling bugs http www debian org doc manuals developers reference pkgs html bug handling zu lesen Selbst wenn alles gut funktioniert hat ist es jetzt an der Zeit mit dem Beten anzufangen Warum Weil in wenigen Stunden oder Tagen Benutzer berall auf der Welt Ihr Paket ver
6. Erstellen Sie dynamisch durch Hinzuf gen eines Skripts im Ziel override_dh_auto_configureindebian rules Dateien wie debian foo links aus debian foo links in override_dh_auto_configure dh_auto_configure sed s DEB_HOST_MULTIARCH DEB_HOST_MULTIARCH g debian foo links in gt debian foo links Bitte stellen Sie sicher dass das Laufzeitbibliothekspaket nur die erwarteten Dateien enth lt und dass Ihr dev Paket noch funk tioniert Alle Dateien die simultan in das Multiarch Paket in den gleichen Dateipfad installiert werden sollten exakt den gleichen Inhalt ha ben Sie m ssen vorsichtig mit Unterschieden sein die durch die generierte Byte Reihenfolge und den Kompressionsalgorithmus sind A 5 Natives Debian Paket Falls ein Paket nur f r Debian oder m glicherweise nur f r lokale Benutzung betreut wird kann seine Quellen alle Dateien aus debian enthalten Es gibt zwei M glichkeiten es zu paketieren Sie k nnen einen Tarball der Originalautoren erstellen bei dem Sie die debian Dateien ausschlie en und es als nicht natives Debian Paket wie in Abschnitt 2 1 paketieren Dies ist die normale Art zu der einige Leute raten Die Alternative ist der Arbeitsablauf des nativen Debian Pakets Erstellen Sie ein natives Debian Quellpaket im Format 3 0 native mit einer einzelnen komprimierten Tar Datei in der alle Dateien enthalten sind Paket_Version tar gz Paket_Version dsc Bauen Sie Debian Bin rpakete
7. Seiten hat sollten Sie diese mit dh_installinfo 1 installieren indem Sie sie in einer Datei Paket info auflisten 5 13 Paket links Falls Sie zus tzliche symbolische Links in den Paketbauverzeichnissen als Paketbetreuer erstellen m ssen sollten Sie mit dh_link 1 installieren indem Sie deren komplette Pfade der Quell und Zieldateien in einer Datei Paket links auff hren 5 14 fraket source lintian overrides Falls die Debian Richtlinien eine Ausnahme von einer Regel erlauben erzeugt lintian eventuell eine falsche Meldung Wenn dies der Fall ist k nnen Sie Paket lintian overrides oder source lintian overrides benutzen um die Mel dung zu unterdr cken Bitte lesen Sie das Benutzerhandbuch von Lintian usr share doc lintian lintian html index html und missbrauchen Sie diesen Mechanismus nicht Paket lintian overrides ist f r das Bin rpaket Paket und wird als usr share lintian overrides Paket vom Befehl dh_lintian installiert source lintian overrides ist f r das Quellpaket Diese Datei wird nicht installiert 5 15 manpage Ihr e Programm e sollte n eine Handbuchseite haben Ist keine vorhanden sollten Sie sie erstellen Der Befehl dh_make erzeugt einige Vorlagendateien f r Handbuchseiten Diese m ssen f r jeden Befehl kopiert und bearbeitet werden dem eine Handbuchseite fehlt Bitte l schen Sie alle nicht benutzten Vorlagen Debian Leitfaden f r Neue Paketbetreuer 37163 5 15 1 manpage 1 ex Ha
8. Sie m ssen Zugriff auf die neueste Sid Umgebung haben damit Sie Pakete korrekt f r Sid bauen k nnen Allerdings kann es in Sid immer wieder mal Probleme geben so dass Sie wahrscheinlich nicht Ihr gesamtes System umstellen wollen Das Paket pbuilder bietet einen Ausweg f r diese Situation Es kann vorkommen dass Sie Ihre Pakete f r Stable aktualisieren m ssen nachdem sie ver ffentlicht worden sind beispiels weise ber stable proposed updates stable updates usw In einem solchen Fall sollten Sie Ihre Pakete z gig aktualisieren die Ausrede dass Sie ein Sid System verwenden ist nicht akzeptabel Das Paket pbuilder kann Ihnen dabei helfen auf nahezu jede Debian basierte Distribution derselben Architektur zuzugreifen Siehe http www netfort gr jp dancer software pbuilder html pdebuild 1 pbuilderrc 5 und pbuilder 8 6 5 Der Befehl git buildpackage und hnliche Falls der Autor des urspr nglichen Programms ein Quelltext Verwaltungsprogramm VCS zur Betreuung des Codes einsetzt sollten Sie dar ber nachdenken dies ebenfalls zu tun Damit wird das Zusammenf hren und Herauspicken von Patches des Originalautors wesentlich einfacher Es gibt verschiedene Pakete die spezialisierte Wrapper Skripte enthalten die das Bauen eines Debian Pakets mit dem jeweiligen VCS erleichtern e git buildpackage Eine Suite zur Unterst tzung von Debian Paketen in Git Depots e svn buildpackage Hilfsprogramme zur Betreuung von Debian Paketen
9. 1foo2 g Makefile dquilt refresh dquilt header e Patch beschreiben HAARAA Debian Leitfaden f r Neue Paketbetreuer 19 63 Kapitel 4 Ben tigte Dateien im Verzeichnis debian Im Quellverzeichnis des Programms gibt es ein neues Unterverzeichnis das debian hei t In diesem Verzeichnis sind einige Da teien die wir ndern m ssen um die Eigenschaften des Pakets anzupassen Die wichtigsten davon sind control changelog copyright und rules die f r jedes Paket ben tigt werden 4 1 control Diese Datei enth lt verschiedene Werte die dpkg dselect apt get apt cache aptitude und andere Paketverwaltungswerkzeu ge verwenden um das Paket zu verwalten Sie wird in dem Debian Policy Manual Kapitel 5 Control files and their fields http www debian org doc debian policy ch controlfields html festgelegt Dies ist die Datei control die dh_make f r uns erstellt hat 1 Source gentoo Section unknown Priority extra Maintainer Josip Rodin lt joy mg debian org gt Build Depends debhelper gt 9 Standards Version 3 9 4 Homepage lt URL der Originalautoren einf gen falls relevant gt ooONOOUIRPWMN 9 Package gentoo 10 Architecture any 11 Depends shlibs Depends misc Depends 12 Description lt bis zu 60 Zeichen Beschreibung einf gen gt 13 lt lange Beschreibung einf gen mit Leerzeichen einger ckt gt Die Zeilennummerierung habe ich hinzugef gt Die Zeilen 1 7 sind die Ste
10. r strikt niedriger niedriger oder gleich genau gleich h her oder gleich und strikt h her Ein Beispiel Depends foo gt 1 2 libbari 1 3 4 Conflicts baz Recommends libbaz4 gt gt 4 0 7 Suggests quux Replaces quux lt lt 5 quux foo lt 7 6 Die letzte Funktionalit t ber die Sie Bescheid wissen m ssen ist shlibs Depends per1l Depends misc Depends usw dh_shlibdeps 1 berechnet die Abh ngigkeiten von gemeinsam benutzten Bibliotheken f r Bin rpakete Es erstellt eine Liste von ELF Programmen und gemeinsam benutzten Bibliotheken die es f r jedes Bin rpaket gefunden hat Diese Liste wird zur Ersetzung von shlibs Depends verwandt dh_perl 1 berechnet Perl Abh ngigkeiten Es erstellt f r jedes Bin rpaket eine Liste von Abh ngigkeiten von perloder perl api Diese Liste wird zur Ersetzung von perl Depends verwandt Einige debhelper Befehle k nnen dazu f hren dass das erstellte Paket von einigen zus tzlichen Paketen abh ngt Alle diese Befehle erstellen eine Liste von ben tigten Paketen f r jedes Bin rpaket Diese Liste wird zur Ersetzung von misc Depen ds verwandt dh_gencontrol 1 erstellt f r jedes Bin rpaket DEBIAN control und ersetzt dabei shlibs Depends per1l Dep ends misc Depends usw Debian Leitfaden f r Neue Paketbetreuer 23 63 Nach all diesen Erkl rungen k nnen wir das Feld Depends aber exakt so belassen wie es jetzt ist und eine weitere
11. sed i e s usr local lib usr lib g find type f name c h Falls Sie stattdessen jede Ersetzung best tigen m chten kann dies wie folgt interaktiv durchgef hrt werden vim argdo s usr local lib usr lib gce update q find type f name c h Als n chstes sollten Sie das install Ziel suchen suchen Sie nach der Zeile die mit install beginnt das funktioniert b licherweise und alle Verweise auf Verzeichnisse umbenennen die nicht denen entsprechen die Sie am Anfang der Makefile definiert haben Urspr nglich sah das install Ziel von gentoo wie folgt aus install gentoo target install gentoo BIN install icons ICONS install gentoorc example HOME gentoorc 4 Dies ist nur ein Beispiel wie ein Makefile aussehen sollte Falls die Makefile Datei durch den Befehl configure erstellt wird ist die richtige Vor gehensweise um diese Art Makefile zu korrigieren configure durch den Befehl dh_auto_configure aufrufen zu lassen Dabei kommen die voreingestellten Optionen zum Tragen einschlie lich der Option prefix usr Debian Leitfaden f r Neue Paketbetreuer 17163 Wir beheben diesen Fehler der Originalautoren und speichern es mit dem Befehl dquilt als debian patches install patch dquilt new install patch dquilt add Makefile Wir ndern dies f r das Debian Paket im Editor wie folgt install gentoo target install d BIN ICONS DESTDIR etc
12. Build System Sie erkennen solche Quellen an der Datei CMakeLists txt 2 6 Name und Version des Pakets Falls die Quellen der Originalautoren als gentoo 0 9 12 tar gz existieren k nnen Sie gentoo als Quell Paketnamen und 0 9 12 als die Versionsnummer der Originalautoren verwenden Diese werden in der Datei debian changelog verwandt die auch sp ter in Abschnitt 4 3 beschrieben wird Obwohl dieser einfache Ansatz meistens funktioniert k nnte es sein dass Sie den Paketnamen und die Versionsnummer der Originalautoren durch Umbenennen der Originalquellen anpassen m ssen damit dies den Debian Richtlinien und bestehenden Konventionen gen gt Sie m ssen den Paketnamen so w hlen dass er nur aus Kleinbuchstaben a z Ziffern 0 9 Plus und Minus Zeichen und Punkten besteht Er muss mindestens zwei Zeichen lang sein mit einem alphanumerischen Zeichen beginnen und darf mit keinem existierenden bereinstimmen Es empfiehlt sich die L nge unter 31 Zeichen zu halten Falls die Originalautoren einen generischen Ausdruck wie test suite f r den Namen verwenden ist es eine gute Idee es umzubenennen um den Inhalt explizit zu identifizieren und den Namensraum sauber zu halten Sie sollten die Versionsnummer der Originalautoren so w hlen dass sie nur aus alphanumerischen Zeichen 0 9A Za Z Pluszeichen Tilden und Satzpunkten besteht Sie muss mit einer Ziffer 0 9 beginnen Es ist eine gute Idee die L
13. DEP 3 Patch Tagging Guidelines http dep debian net deps dep3 hinzuf gen dquilt refresh dquilt header e Patch beschreiben 3 3 Installation von Dateien in ihr Zielverzeichnis Die meisten Programme Dritter installieren sich in die Verzeichnishierachie usr local Unter Debian ist diese f r die private Benutzung durch den Systemadministrator reserviert daher d rfen Pakete Verzeichnisse wie usr local bin nicht ver wenden sondern sollten stattdessen Systemverzeichnisse wie usr bin verwenden und dem Filesystem Hierarchy Standard http www debian org doc packaging manuals fhs fhs 2 3 html FHS folgen Normalerweise wird make 1 benutzt um das Programm automatisch zu bauen Der Aufruf von make install installiert das Programm dann direkt in das Ziel gem dem install Ziel der Makefile Damit Debian vorab erstellte installierbare Pakete bereitstellen kann ver ndert es das Bausystem um Programme in ein Dateisystem Abbild welches unter einem tempo r ren Verzeichnis erstellt wurde anstatt an das tats chliche Ziel zu installieren Diese beiden Unterschiede zwischen einerseits der normalen Programminstallation und andererseits dem Paketieren f r Debian k nnen vom Paket Debhelper transparent adressiert werden Es benutzt dazu die Befehle dh_auto_configure und dh_auto_install sofern die folgenden Bedingungen erf llt sind e Das Makefile muss den GNU Konventionen folgen und die Variable DESTDIR unterst tzen
14. Sie die Quellen des Originalautors verfolgen und einen weiteren Zweig z B blicherweise master f r Git in dem Sie das Debian Paket verfolgen F r letzteres wollen Sie sicherlich die unver nderten Ursprungsquellen zusammen mit Ihren debian Dateien f r das Paketieren haben um das Zusammenf hren von neuen Ursprungsquellen zu vereinfachen Nachdem Sie ein Paket gebaut haben bleiben die Patches im Quelltext normalerweise erhalten Sie m ssen sie manuell entfernen indem Sie dquilt pop a aufrufen bevor Sie in den master Zweig einchecken k nnen Sie k nnen dies automatisieren indem Sie die optionale Datei debian source local options hinzuf gen und dort unapply patches hinein schreiben Diese Datei wird nicht in das erzeugte Quellpaket aufgenommen und ver ndert nur das lokale Bauverhalten Diese Datei kann auch abort on upstream changes enthalten siehe dpkg source 1 7 Siehe DebSrc3 0 http wiki debian org Projects DebSrc3 0 f r eine Zusammenfassung zum Wechsel auf die neue Quellformate 3 0 quilt und 3 O native 8 Tats chlich unterst tzt dieses neue Format sogar mehrere urspr ngliche Tarb lle und mehr Kompressionsmethoden Dies w rde in diesem Dokument aber zu weit f hren Debian Leitfaden f r Neue Paketbetreuer 41 63 unapply patches abort on upstream changes 5 25 source local options Die automatisch erstellten Dateien im Quellbaum k nnen f r das Paketieren recht st rend wirken da sie un
15. Sie k nnen wie folgt eine neue Debian Revision des Pakets erstellen e Falls dies als neuer Patch aufgezeichnet werden soll f hren Sie das Folgende aus dquilt new Fehlernummer patch um den Patch Namen zu setzen dquilt add defekte_Datei um die zu korrigierende Datei anzugeben Korrigieren Sie das Problem in den Paketquellen f r den Fehler der Originalautoren dquilt refresh um es in Fehlernummer patch aufzuzeichnen dquilt header e um seine Beschreibung hinzuzuf gen Falls hiermit ein existierender Patch aktualisiert wird f hren Sie das Folgende durch dquilt pop foo patch um den existierenden foo patch aufzurufen Korrektur des Problems in der alten foo patch dquilt refresh um foo patch zu aktualisieren dquilt header e um seine Beschreibung zu aktualisieren while dquilt push do dquilt refresh done um alle Patches anzuwenden und dabei fuzz Unsch rfe zu ent fernen F gen Sie eine neue Revision an den Anfang der Datei changelog hinzu beispielsweise mit dch i oder explizit mit dch v Version Revision und f gen Sie dann die Kommentare mit ihrem Lieblingseditor ein F gen Sie eine kurze Beschreibung des Fehler und der L sung in dem Changelog Eintrag hinzu gefolgt von Closes 654321 Auf diese Art wird der Fehlerbericht automatisch von der Archivierungswartungssoftware in dem Moment in dem Ihr Paket im Archiv akzeptiert wird geschlossen e Wiederholen Sie die obigen Schritte um weitere Fehler zu be
16. Versionen lter als einen bestimmten Wert zutrifft Die L sung besteht blicherweise darin h hergradige Paketverwaltungswerkzeuge zu verwenden um ein Upgrade der aufgef hrten Pakete durchzuf hren e Provides F r einige Paketarten mit mehreren Alternativen wurden virtuelle Namen definiert Die vollst ndige Liste dieser virtuellen Pa kete finden Sie in der Datei virtual package names list txt gz http www debian org doc packaging manuals virtual package names list txt Benutzen Sie dies wenn Ihr Paket die Funktionalit t eines existierenden virtuellen Pakets bietet e Replaces Benutzen Sie dies wenn Ihr Paket Dateien eines anderen Pakets berschreibt oder ein anderes Paket vollst ndig ersetzt wird zusammen mit Conflicts benutzt Dateien der genannten Pakete werden mit den Dateien aus Ihrem Paket berschrieben All diese Felder haben eine einheitliche Syntax Es ist jeweils eine durch Kommata getrennte Liste der Paketnamen Diese Paket namen k nnen auch aus einer Liste von alternativen Paketnamen bestehen die durch senkrechte Striche pipe Zeichen getrennt werden Die Anwendung der Felder kann auf bestimmte Versionen eines genannten Pakets beschr nkt werden Die Einschr nkung jedes einzelnen Pakets wird in Klammern nach seinem Namen aufgef hrt und sollte einen Vergleich aus der folgenden Liste enthalten gefolgt von einem Versionsnummernwert Die erlaubten Vergleiche sind lt lt lt gt und gt gt f
17. Zeile dahinter einf gen in der Suggests file steht weil gentoo einige Funktionen des Pakets file nutzen kann Zeile 9 ist die Homepage URL Nehmen wir an diese sei http www obsession se gentoo Zeile 12 enth lt eine Kurzbeschreibung Terminals sind typischerweise 80 Zeichen breit also sollte die Kurzbeschreibung nicht l nger als etwa 60 Zeichen sein Ich ndere esin fully GUI configurable two pane X file manager In die Zeile 13 kommt eine ausf hrliche Beschreibung Sie sollte aus einem kleinen Text bestehen der mehr ber das Paket verr t Die erste Spalte jeder Zeile muss leer sein Es d rfen keine leeren Zeilen vorkommen Sie k nnen aber welche simulieren indem Sie einen einzelnen Punkt in die Zeile einsetzen Es darf nach der ausf hrlichen Beschreibung auch nicht mehr als eine Leerzeile vorkommen Wir k nnen zwischen die Zeilen 6 und 7 die Felder Vcs einf gen um das Versionskontrollsystem VCS zu dokumentieren Wir nehmen an dass das Paket gentoo sein VCS im Git Service von Debian Alioth unter git git debian org git collab maint gentoo git hat Zum Schluss ist dies die aktualisierte Datei control 1 Source gentoo 2 Section x11 3 Priority optional 4 Maintainer Josip Rodin lt joy mg debian org gt 5 Build Depends debhelper gt 9 xlibs dev libgtk1 2 dev libglib1 2 dev 6 Standards Version 3 9 4 7 Ves Git git git debian org git collab maint gentoo git 8 Ves browser http g
18. als 24 Zeichen 12 Falls Sie Debian Entwicklerreferenz 5 1 Neue Pakete http www debian org doc developers reference pkgs html newpackage folgen wird der ITP Prozess normalerweise solche Dinge abfangen 13 Diese strengere Regel sollte Ihnen helfen verwirrende Namen zu vermeiden 14 Die Standardversionsfeldl nge von aptitude betr gt 10 Die Debian Revision mit einleitendem Bindestrich verwendet typischerweise 2 Zeichen F r mehr als 80 der Pakete ist die Versionsnummer der Originalautoren weniger als 8 Zeichen lang und die Debian Revision weniger als 2 Zeichen F r mehr als 90 der Pakete ist die Versionsnummer der Originalautoren weniger als 10 Zeichen lang und die Debian Revision weniger als 3 Zeichen 15 Versionsnummer k nnen die Versionsnummer der Originalautoren Version die Debian Revision Revision oder die Version Version Revision sein Lesen Sie Abschnitt 8 1 um zu erfahren wie die Debian Revision erh ht wird Debian Leitfaden f r Neue Paketbetreuer 12 63 Es gibt besondere Regeln f r Punkt Plus und Tilde Zeichen wie folgt 0 0 lt 0 5 lt 0 10 lt 0 99 lt 1 lt 1 0 rc1 lt 1 0 lt 1 0 b1 lt 1 0 nmu1 lt 1 1 lt 2 0 Ein schwieriger Fall tritt auf wenn die Originalautoren gentoo 0 9 12 ReleaseCandidate 99 tar gzals Vorabver ffentlichung von gentoo 0 9 12 tar gz ver ffentlichen Sie m ssen sicherstellen dass das Upgrade korrekt funktioniert indem Sie die Quellen der Originalautoren in gentoo 0
19. debhelper Systems und des Quellformats 3 O auszunutzen Falls Sie aus irgend einem Grund gel schte Schablonendateien erneut erstellen m ssen k nnen Sie dh_make mit der Option addmissing in dem gleichen Debian Quellverzeichnis aufrufen Danach bearbeiten Sie diesen geeignet e Falls das Paket noch nicht aktualisiert wurde um die v7 dh Syntax von debhelper f r die Datei debian rules zu verwenden aktualisieren Sie es um dh zu verwenden Aktualisieren Sie die Datei debian control entsprechend e Falls Sie die mit dem Makefile Einschlussmechanismus des Common Debian Build System cdbs erzeugte Datei rules in die dh Syntax umwandeln wollen schauen Sie sich die folgenden Informationen an um seine DEB_ Konfigurationsvariablen zu verstehen 4 Falls der Befehl uscan die aktualisierten Quellen herunterl dt aber nicht den Befehl uupdate ausf hrt sollten Sie die Datei debian watch korrigieren um debian uupdate am Ende der URL zu haben gt Falls Ihr Sponsor oder andere Betreuer dem Aktualisieren des Paketierungsstils widersprechen argumentieren Sie nicht Es gibt wichtigere Dinge zu erledigen Debian Leitfaden f r Neue Paketbetreuer 54163 lokale Kopie von usr share doc cdbs cdbs doc pdf gz The Common Debian Build System CDBS FOSDEM 2009 http meetings archive debian net pub debian meetings 2009 fosdem slides The_Common_Debian_Build_System_CDBS Falls Sie ein 1 0 Quellpaket ohne die Datei foo diff
20. dh_ Befehle die vom neuen dh Befehl aufgerufen werden k nnen durch entsprechende Konfigurationsdateien im debian Verzeichnis angepasst werden Siehe Kapitel 5 sowie die Handbuchseite jedes Befehls f r Anpassungen dieser Funktionalit ten Es kann n tig sein ber dh aufgerufene dh_ Befehle mit zus tzlichen Argumenten oder zus tzliche Befehle mit ihnen aus zuf hren oder sie ganz auszulassen In solchen F llen k nnen Sie ein override_dh_foo Ziel mit der entsprechenden Regel in der Datei rules erstellen das ein override_dh_foo Ziel f r den Befehl dh_foo definiert den Sie ndern wollen Im Grunde bedeutet das nur f hre stattdessen mich aus Y Bitte beachten Sie dass die dh_auto_ Befehle dazu neigen mehr als die in dieser stark vereinfachten Erkl rung dargestellten T tigkeiten zu erledigen um Randf lle zu ber cksichtigen Es ist keine gute Idee override_dh_ Ziele zu verwenden um die vereinfachten quivalenten Befehle als Ersatz zu verwenden au er beim Ziel override_dh_auto_clean da damit solche pfiffigen debhelper Funktionalit ten umgangen werden Falls Sie beispielsweise mittels der Autotools Systemkonfigurationsdaten des aktuellen gentoo Pakets im Verzeichnis etc gentoo statt des normalen Verzeichnisses etc speichern wollen k nnen Sie das Vorgabeargument sysconfig etc im Befehl dh_auto_configure an den Befehl configure durch das Folgende au er Kraft setzten 25 Falls Sie unter Lenny das Verhalten eines
21. e Bei allen Paketen die auf den Befehl dh in der Datei debian rules zugreifen m ssen Sie debhelper gt 9 in das Feld Build Depends eintragen um die Debian Richtlinien f r das Ziel clean zu erf llen Quellpakete die bin re Paketemit Architecture any erstellen werden vom automatischen Bausystem Autobuilder neu gebaut Da w hrend dieser Autobuilder Prozedur nur die in Build Depends aufgef hrten Pakete vor der Ausf hrung von debian rules build installiert werden siehe Abschnitt 6 2 muss das Feld Build Depends praktisch alle erfor derlichen Pakete auflisten Das Feld Build Depends Indep wird daher selten benutzt e Quellpakete die nur bin re Pakete mit Architecture all erstellen k nnen im Feld Build Depends Indep alle erforderlichen Pakete auflisten es sei denn diese sind bereits im Feld Build Depends aufgef hrt um die Debian Richtlinie f r das Ziel clean zu erf llen Wenn Sie sich nicht sicher sind welches von beiden Sie benutzen sollten verwenden Sie das Feld Build Depends um auf der sicheren Seite zu sein Um herauszufinden welche Pakete Ihr Paket zum Bauen ben tigt f hren Sie diesen Befehl aus dpkg depcheck d configure Um die genauen Build Abh ngigkeiten f r usr bin foo manuell herauszufinden f hren Sie objdump p usr bin foo grep NEEDED aus Rufen Sie dann f r jede aufgelistete Bibliothek beispielsweise libfoo so 6 diesen Befehl auf 2 Lesen Sie das Debian Policy
22. gz haben k nnen Sie sie auf das neuere Quellformat 3 0 nat ive umstellen indem Sie debian source format mit 3 0 native erstellen Der Rest der Dateien debian kann einfach so kopiert werden Falls Sie ein 1 0 Quellpaket mit der Datei foo diff gz haben k nnen Sie es in das neuere Quellformat 3 0 quilt umwandeln indem Sie die Datei debian source format mit3 0 quilt erstellen Der Rest der Dateien debian kann einfach so kopiert werden Importieren Sie die Datei gross diff die vom Befehl filterdiff z x debian foo diff gz gt gross diff erstellt wurde in Ihr quilt System falls notwendig Falls es mit einem anderen Patch System wie dpatch dbs oder cdbs mit p p1 oder p2 paktiert war wandeln Sie es in quilt unter Verwendung von deb3 unter http bugs debian org 581186 um Falls es mit dem Befehl dh mit der Option with quilt oder mit den Befehlen dh_quilt_patch und dh_quilt_unpatch paketiert wurde entfernen Sie diese und sorgen Sie daf r dass das neuere Format 3 0 quilt verwandt wird Sie sollten die DEP Debian Enhancement Proposals http dep debian net pr fen und akzeptierte ACCEPTED Vorschl ge umsetzen Sie m ssen auch andere in Abschnitt 8 3 beschriebene Aufgaben erledigen 8 5 UTF 8 Umstellung Falls die Dokumente der Originalautoren in alten Kodierungsschemata vorliegen ist es eine gute Idee sie in UTF 8 umzuwandeln Verwenden Sie iconv 1 f r die Konvertierung reiner Textda
23. install gentoo BIN install m644 icons ICONS install m644 gentoorc example DESTDIR etc gentoorc Sie haben bemerkt dass jetzt der Befehl install d vor den anderen Befehlen in dieser Regel steht Das urspr ngliche Makefile hatte das nicht weil normalerweise usr local bin und andere Verzeichnisse schon auf dem System vorhan den sind wenn Sie make install aufrufen Weil wir aber in unseren frisch erstellten Verzeichnisbaum installieren m ssen wir jedes einzelne dieser Verzeichnisse anlegen Wir k nnen am Ende der Regel noch weitere Dinge einf gen wie beispielsweise die Installation zus tzlicher Dokumentation die die Originalautoren manchmal weglassen install d DESTDIR usr share doc gentoo html cp a docs DESTDIR usr share doc gentoo html berpr fen Sie sorgf ltig und falls alles in Ordnung ist bitten Sie dquilt den Patch zu erstellen und die Datei debian patches install patch neu zu erstellen F gen Sie au erdem noch eine Beschreibung hinzu dquilt refresh dquilt header e Patch beschreiben Jetzt haben Sie eine Reihenfolge von Patches 1 Die Fehlerkorrektur der originalen Quellen debian patches fix gentoo target patch 2 Die Debian spezifische nderung f r s Paketieren debian patches install patch Wann immer Sie nderungen machen die nicht spezifisch f r das Debian Paket sind so wie debian patches fix gentoo tar patch sollten Sie diese dem Betreuer des Originalprogramms
24. mit Subversion e cvs buildpackage Eine Sammlung von Skripten f r Debian Pakete in CVS Quelltextb umen Die Verwendung von git buildpackage ist bei Debian Entwicklern recht beliebt um Debian Pakete mit dem Git Server auf alioth debian org http alioth debian org zu verwalten Dieses Paket bietet viele Befehle um Paketierungsaktivit ten zu automatisieren e git import dsc 1 Import eines bestehenden Debian Pakets in ein Git Depot e git import orig 1 Import eines neuen Tars der Originalautoren in ein Git Depot e git dch 1 Erstellung des Debian Changelogs aus Git Commit Nachrichten e git buildpackage 1 Bau von Debian Paketen aus einem Git Depot e git pbuilder 1 Bau von Debian Paketen aus einem Git Depot mit pbuilder cowbuilder Diese Befehle verwenden drei Zweige um die Paktierungsaktivit ten nachzuverfolgen e main f r den Debian Paketierungsquellbaum e upstream f r den Quellbaum der Originalautoren e pristine tar f r Tarb lle der Originalautoren die mit der Option pristine tar erstellt wurden Sie k nnen git buildpackage mit gbp conf konfigurieren Lesen Sie gbp conf 5 8 Es gibt f r Aktualisierungen Ihrer Stable Pakete einige Einschr nkungen 9 Lesen Sie Version control systems http www debian org doc manuals debian reference ch10 _version_control_systems f r mehr Informationen 10 Das Dokument Debian wiki Alioth http wiki debian org Alioth dokumentiert wie der Dienst alioth
25. nge falls m glich innerhalb von 8 Zeichen zu halten Falls die Originalautoren kein normales Versionierungsschema wie 2 30 32 sondern eine Art von Datum wie 11Apr29 ei nen zuf lligen Kodenamen oder einen VCS Hashwert als Teil der Version verwenden stellen Sie sicher dass sie das von der Version der Originalautoren entfernen Diese Informationen k nnen in der Datei debian changelog festgehalten werden Falls Sie eine Versionsnummer erfinden m ssen vewrenden Sie das Format YYYYMMDD wie 20110429 als Versionsnummer der Originalautoren Das stellt sicher dass dpkg neuere Versionen korrekt als Upgrades interpretiert Falls Sie in der Zukunft reibungslose berg nge zu dem normalen Versionsschemata wie O 1 sicherstellen m ssen verwenden Sie das stattdessen das Format 0 YYMMDD wie 0 110429 als Versionsnummer der Originalautoren Versionsnummern k nnen mit dpkg 1 wie folgt verglichen werden dpkg compare versions Ver1 Op Ver2 Die Versionsvergleichsregeln k nnen wie folgt zusammengefasst werden e Zeichenketten werden von Anfang bis Ende verglichen e Buchstaben sind gr er als Ziffern Zahlen werden als Ganzzahlen verglichen Buchstaben werden in ASCII Sortierreihenfolge verglichen 10 Sje k nnen dies automatisieren indem Sie das Paket dh autoreconf installieren Lesen Sie Abschnitt 4 4 3 H Die Standardpaketnamenfeldl nge von aptitude betr gt 30 F r mehr als 90 der Pakete ist die L nge des Namens weniger
26. semi offiziell Debian Wiki HelpDebian http wiki debian org HelpDebian erg nzend Debian New Member site https nm debian org offiziell Debian Mentors FAQ http wiki debian org DebianMentorsFag erg nzend Debian Leitfaden f r Neue Paketbetreuer 3 63 1 2 Programme die zum Entwickeln notwendig sind Bevor Sie loslegen k nnen m ssen Sie sicherstellen dass einige zus tzliche Pakete richtig installiert sind die f r die Entwicklung ben tigt werden Beachten Sie dass die Liste keine Pakete enth lt die als essential oder required markiert sind wir gehen davon aus dass Sie diese schon installiert haben Die folgenden Pakete sind in der Standardinstallation von Debian enthalten also werden Sie sie vermutlich schon haben und zus tzliche Pakete von denen diese abh ngen Sie sollten dies dennoch mit aptitude show Paket oder dpkg s Paket berpr fen Das wichtigste Paket dass auf Ihrem Entwicklungssystem installiert werden sollte ist das Paket build essential Wenn Sie es installieren wird es andere Pakete hinterherziehen pull in die f r eine grundlegende Build Umgebung notwendig sind F r manche Arten von Paketen ist das alles was Sie ben tigen Es gibt allerdings noch eine weitere Sammlung von Paketen die obwohl sie nicht essenziell f r jede Paketerstellung sind sinnvoll installiert werden k nnen oder sogar von Ihrem Paket ben tigt werden e autoconf automake und autotools d
27. sind Es wird von dh_installinit 1 in das tempor re Verzeichnis installiert Die Datei Paket default wird als etc default Paket installiert Diese Datei legt Voreinstellungen fest die vom Init Skript eingelesen werden Diese Datei package default wird meistens zur Deaktivierung der Ausf hrung eines Daemons oder zur Einstellung einiger voreingestellter Schalter oder Zeit berschreitungen verwandt Falls in Ihrem init Skript bestimmte einstellbare Funktionen sind k nnen Sie diese in der Datei package default statt im init Skript selbst einstellen Falls Ihr Programm der Originalautoren eine Datei f r ein Init Skript bereitstellt k nnen Sie dies entweder benutzten oder ein eigenes erstellen Falls Sie das mitgelieferte init Skript nicht verwenden erstellen Sie ein neues in Paket init Falls das von den Originalautoren mitgelieferte Init Skript aber gut aussieht und an der richtigen Stelle installiert wird m ssen Sie trotzdem die symbolischen Links f r rc erzeugen Daf r m ssen Sie dh_installinit in der Datei rules mit den folgenden Zeilen ber schreiben override_dh_installinit dh_installinit onlyscripts Falls Sie das nicht ben tigen l schen Sie die Dateien 5 11 install Falls es Dateien gibt die in Ihr Paket installiert werden m ssen die aber vom Standardaufruf make install nicht erfasst werden schreiben Sie diese Dateinamen und Ziele in die Datei install Sie werden dann von dh_install 1 installiert Sie
28. um kompatibel zu der Verwendung von dash als System Shell zu bleiben Debian Leitfaden f r Neue Paketbetreuer 40 63 watch control file for uscan version 3 http sf net gentoo gentoo tar gz debian uupdate Normalerweise w rde mit einer watch Datei die URL unter http sf net gentoo heruntergeladen und nach Links im Format lt a href gt durchsucht Der Basisname nur der Teil nach dem letzten jeder verlinkten URL wird mit dem regul ren Perl Ausdruck siehe perlre 1 gentoo tar gz verglichen Von allen Dateien auf die der Ausdruck passt wird die Datei mit der h chsten Versionsnummer heruntergeladen Das Programm uupdate wird dann ausgef hrt um daraus den aktualisierten Quelltextbaum zu erzeugen Dies stimmt zwar f r andere Websites doch das Herunterladen von SourceForge unter http sf net ist eine Ausnahme Wenn die Datei watch eine URL enth lt auf die der regul re Perl Ausdruck http sf net passt wird diese vom Programm uscan durch http qga debian org watch sf php ersetzt und erst dann die nachfolgenden Regeln angewendet Die URL Umleitungsfunktion unter http qa debian org ist entwickelt worden um einen stabilen Umleitungsservice f r jedes watch Muster der Form http sf net Projekt tar Name tar gZ in der Datei watch bereitzustellen Hierdurch wird das Problem gel st dass SourceForge URLs regelm ig ge ndert werden Falls die Originalautoren eine krypto
29. und info automake Der zweite Schritt im Arbeitsablauf der Autotools ist blicherweise dass der Benutzer diese verteilten Quellen erh lt und configure amp amp make inden Quellen aufruft um das Programm zu einem ausf hrbaren Bin rdatei Befehl zu kompilieren Makefile in gt Makefile gt make gt binary src Makefile in gt configure gt src Makefile config h in gt config h config status config guess 8 Viele moderne Programme kommen mit einem Skript configure das bei der Ausf hrung eine f r Ihr System angepasstes Makefile erstellt 9 Autotools ist zu umfangreich um in dieser Anleitung ber cksichtigt zu werden Dieser Abschnitt dient nur der Bereitstellung von Schl sselw rtern und Referenzen Falls Sie sie ben tigen stellen Sie sicher dass Sie das Autotools Tutorial http www Irde epita fr adl autotools html und die lokale Kopie der usr share doc autotools dev README Debian gz lesen Debian Leitfaden f r Neue Paketbetreuer 11 63 Sie k nnen in der Datei Makefile viele Dinge ndern beispielsweise k nnen Sie den voreingestellten Installationsort f r Dateien ndern idem Sie die Befehlszeilenoption configure prefix usr benutzen Obwohl es nicht erforderlich ist kann die Aktualisierung der Datei configure und anderer Dateien mittels autoreconf i f die Kompatibilit t der Quellen verbessern 1 CMake ist ein alternatives
30. verk rzt In der richtigen rules Datei sind die f hrenden Leerzeichen Tabulatoren Sie sind wahrscheinlich mit hnlichen Zeilen wie der Zeile 1 aus Shell oder Perl Skripten vertraut Sie teilt dem Betriebssystem mit dass das Skript mit usr bin make verarbeitet werden soll In Zeile 4 kann der Kommentar entfernt werden damit die Variable DH_VERBOSE auf 1 gesetzt wird Dann gibt der Befehl dh aus welche dh_ Befehle er ausf hrt Sie k nnen hier auch eine Zeile export DH_OPTIONS v hinzuf gen Dann gibt jeder dh_ Befehl aus welche Befehle von jedem dh_ Befehl ausgef hrt werden Das hilft Ihnen dabei zu verstehen was genau hinter den Kulissen dieser einfachen rules Datei passiert So k nnen Sie Probleme besser finden Das neue dh ist als ein zentraler Bestandteil der debhelper Werkzeuge entwickelt worden und versteckt nichts vor Ihnen In den Zeilen 20 und 21 wird die gesamte Arbeit mit einer impliziten Regel die die Muster Regel verwendet erledigt Das Prozentzeichen steht f r ein beliebiges Ziel das dann lediglich ein Programm aufruft n mlich dh mit dem Namen des Ziels 16 Der Befehl dh ist ein Skript das abh ngig vom bergebenen Argument die entsprechenden Sequenzen von dh_ Programmen ausf hrt 17 e debian rules clean ruft dh clean auf das wiederum das Folgende ausf hrt dh_testdir dh_auto_clean dh_clean e debian rules build ruft dh build auf das wiederum das Folgende ausf hrt dh_testdir d
31. werden dass der Name des Pakets als Pr fix vor den Namen der Konfigurationsdatei gestellt wird Beispiele sind Paket 1 install Paket 2 install usw 5 1 README Debian Alle zus tzlichen Details oder Unterschiede zwischen dem urspr nglichen Paket und Ihrer Debian Version sollten hier dokumen tiert werden dh_make erstellt eine Standardvorlage die so aussieht 1 In diesem Kapitel werden zur Vereinfachung Dateien im Verzeichnis debian ohne das einleitende debian referenziert wann immer die Bedeutung eindeutig ist Debian Leitfaden f r Neue Paketbetreuer 33 63 gentoo for Debian lt possible notes regarding this package if none delete this file gt Josip Rodin lt joy mg debian org gt Wed 11 Nov 1998 21 02 14 0100 Falls Sie nichts zu dokumentieren haben l schen Sie diese Datei Siehe dh_installdocs 1 5 2 compat Die Datei compat legt die debhelper Kompatibilit tsstufe fest Derzeit sollten Sie debhelper V9 verwenden indem Sie folgendes ausf hren echo 9 gt debian compat 5 3 conffiles Eine der rgerlichsten Sachen bei Software ist es wenn Sie richtig viel Zeit und M he in die Konfiguration eines Programms investieren und schon das n chste Upgrade alle Ihre nderungen zunichte macht Debian l st dieses Problem indem diese Kon figurationsdateien als Conffiles markiert werden Wenn Sie ein Upgrade eines Pakets durchf hren werden werden Sie gefragt ob Sie Ihre alte Konfigurationsdateie
32. 1 fiir uns in das tempor re Verzeichnis in stalliert Standardm ig schlie t das alle Dateien im obersten Verzeichnis des Quellcodes ein die da hei en BUGS README TODO usw F r gentoo werden noch weitere Dateien hinzugef gt Debian Leitfaden f r Neue Paketbetreuer 35 63 BUGS CONFIG CHANGES CREDITS NEWS README README gtkrc TODO 5 8 emacsen Falls Ihr Paket Emacs Dateien bereitstellt die w hrend der Installation des Pakets kompiliert werden k nnen Sie diese Dateien daf r nutzen Sie werden durch dh_installemacsen 1 ins tempor re Verzeichnis installiert Falls Sie dies nicht ben tigen l schen Sie die Dateien 5 9 Paket examples Der Befehl dh_installexamples 1 installiert die in dieser Datei aufgelisteten Dateien und Verzeichnisse als Beispieldateien 5 10 paket init und raket default Falls Ihr Paket einen Daemon enth lt der beim Hochfahren des Systems gestartet werden muss haben Sie offensichtlich meine anf ngliche Empfehlung missachtet stimmt s Die Datei Paket init wird als Skript etc init d Paket installiert das den Daemon startet und beendet Die Vorlage mit einem sehr allgemeinen Grundger st wird als init d ex vom Befehl dh_make bereitgestellt Sie m ssen sie umbenennen und wahrscheinlich viel anpassen Gleichzeitig m ssen Sie darauf achten dass die Kopfzeilen konform zur Linux Standard Base http www linuxfoundation org collaborate workgroups lsb LSB
33. 3 changelog Dies ist eine zwingend vorgeschriebene Datei deren Format in den Debian Policy Manual Kapitel 4 4 debian changelog http www debian org doc debian policy ch source html s dpkgchangelog beschrieben wird Dieses Format ben tigen dpkg und andere Programme um die Versionsnummer Revision Distribution und die Dringlichkeit Ihres Pakets zu bestimmen F r Sie ist die Datei ebenfalls wichtig weil es sinnvoll ist alle von Ihnen vorgenommenen nderungen zu dokumentieren Damit k nnen Leute die Ihr Paket herunterladen einfacher herausfinden ob es Probleme mit dem Paket gibt die sie kennen sollten Diese Datei wird im Bin rpaket als usr share doc gentoo changelog Debian gz gespeichert dh_make hat eine Standardvorlage erstellt die so aussieht Debian Leitfaden f r Neue Paketbetreuer 25 63 gentoo 0 9 12 1 unstable urgency low Initial release Closes nnnn lt nnnn ist die Fehlernummer Ihres ITP gt 1 2 3 4 5 Josip Rodin lt joy mg debian org gt Mon 22 Mar 2010 00 37 31 0100 6 Die Zeilennummerierung habe ich hinzugef gt In der Zeile 1 stehen der Paketname die Version die Distribution und die Dringlichkeit Der Name muss mit dem Namen des Quellpakets bereinstimmen die Distribution sollte unstable sein und die Dringlichkeit sollte nicht auf etwas h heres als Low ge ndert werden Zeilen 3 5 sind ein Protokolleintrag in denen Sie die in dieser Paketrevision gemachten nderungen dokume
34. 9 12 rc99 tar gz umbenennen 2 7 Einrichten von dh_make Richten Sie die Umgebungsvariablen DEBEMAIL und DEBFULLNAME in der Shell ein damit verschiedene Debian Wartungswerkzeu Ihre E Mail Adresse und Ihren Namen f r Pakete verwenden k nnen cat gt gt bashrc lt lt EOF DEBEMAIL Ihre E Mail Adresse example org DEBFULLNAME Vorname Nachname export DEBEMAIL DEBFULLNAME EOF bashrc 2 8 Das erste nicht native Debian Paket Normale Debian Pakete sind nicht native Debian Pakete die aus Quellen von Originalautoren erzeugt werden Falls Sie ein nicht natives Debian Paket von den Quellen der Originalautoren gentoo 0 9 12 tar gz erstellen wollen k nnen sie ein erstes nicht natives Debian Paket daf r mittels des Befehl dh_make wie folgt erstellen cd gentoo wget http example org gentoo 0 9 12 tar gz tar xvzf gentoo 0 9 12 tar gz cd gentoo 0 9 12 dh_make f gentoo 0 9 12 tar gz NANA Nat rlich ersetzen Sie den Dateinamen mit dem Namen Ihres urspr nglichen Quellcode Archivs Siehe dh_make 8 f r Details Sie sollten irgendeine Ausgabe sehen die Sie fragt welche Art Paket Sie erstellen wollen Gentoo ist ein single binary package es wird nur ein Bin rpaket d h eine deb Datei erstellt also w hlen Sie die erste Option mit der s Taste berpr fen nochmal die Informationen auf dem Bildschirm und best tigen mit EINGABE 18 Dieser Aufruf von dh_make erstellt eine Kopie des
35. BED BEE de oie a dr a a lets dedo ds de dp decia rida do 34 po MACS abanico A tana aa aaa 35 59 Pakot examples coooconsr conan a a a a a a a 35 5 10 Paket init und Parket defa lE 22 24 HR RR a a a sa 35 511 Install 2 242 048 da Brei da a A 35 IE Pa a a a ea a ee ak Klee ee alien a a ren rn Beten dag BER den a A Aida a ee 36 Sid Pakets LINKS o ne A ea sa ara Din 36 5 14 Paket source lintian overrides e 36 Al Map ee A A ie De ES A aa 36 ls MANAGE LB BE EEE ah 37 3132 manpage Sql EX aan id a ed 37 5 153 manpage XUL orire 2 ao dna aa aa e a a ae langer 37 SAG Paket MANDATOS oos a rade ac a ee a ee 38 ALT MEMO osere a a e e a ea a a ee a 38 5 18 NEWS 2 0 0 8 a a Be ne an 39 II PASE DEE I TNSE FM nen a A e AA ERA 39 520 Pakets SUMBDES iia ersehen eher 39 SE TODO AI en ee 39 EI REN O a a ee ee ee ee end 39 5 23 SOUrCE TOrMAE urn nn ae mann 40 5 23 source local options lt lt a a ea Er a ea u u 40 525 SUECO LOCA DRE LITE socias oa en na a ud a 41 Dl En se dd AS Biden 32 danke gan ar acc dar dd ee BE den ade dt a tee 41 6 Bau des Pakets 42 GL Kompletter Ne JB oa 20 20 aa aan ee a a a a ah 42 6 Autobuilder ceas ses seen Ba a ee ar en 43 Ga DerBeichl debuilld soso 3 2 Eh a mn aa sea ne a RA I Bene a 44 64 Das Paket pbullder 22 2 3 corro wenn ana naar ren 45 6 5 Der Befehl git buildpackage und hnliche e 46 GE Schueller Nouba oo iaa a a a a a a A a a 47 67 Beiehkbiar rc
36. C angesehen wird Lassen Sie uns das Paket pbuilder folgenderma en anpassen e Machen Sie das Verzeichnis var cache pbuilder result f r Ihr Benutzerkonto schreibbar Erstellen Sie ein Verzeichnis z B var cache pbuilder hooks das ebenfalls f r den Benutzer schreibbar ist so dass Hook Skripts dort abgelegt werden k nnen e Konfigurieren Sie die Datei pbuilderrc oder etc pbuilderrc so dass sie folgendes enth lt AUTO_DEBSIGN AUTO_DEBSIGN no HOOKDIR var cache pbuilder hooks Lassen Sie uns zuerst das lokale pbuilder chroot System wie folgt initialisieren sudo pbuilder create Falls Sie ein Quellpaket schon komplett fertiggestellt haben f hren Sie die folgenden Befehle in dem Verzeichnis aus in dem die Dateien foo orig tar gz foo debian tar gz und foo dsc liegen um das lokale pbuilder chroot System zu aktualisieren und Bin rpakete darin zu bauen sudo pbuilder update sudo pbuilder build foo_Version dsc Die neu erstellten Pakete ohne GPG Signaturen werden unter var cache pbuilder result mit einem nicht root Eigent mer abgelegt Die GPG Unterschriften f r die Dateien dsc und changes k nnen wie folgt erstellt werden cd var cache pbuilder result debsign foo_Version_Arch changes Falls Sie bereits ein aktualisiertes Quellverzeichnis haben ohne dass die dazu passenden Quellpakete erstellt wurden f hren Sie stattdessen die folgenden Befehle in dem Quellverzeichnis aus in dem das
37. Debian Chroot Umgebungswerkzeuges pdebuild pbuilder dpkg buildpackage in der Chroot bauen cowbuilder Ausf hrung von pbuilder beschleunigen git pbuilder die einfach zu benutzende Syntax f r pdebuild von gbp buildpackage verwandt e gbp Debian Quellen in einem Git Depot verwalten gbp buildpackage pbuilder dpkg buildpackage gbp Obwohl die Verwendung von abstrakteren Befehlen wie gbp buildpackage und pbuilder eine perfekte Paketbauumgebung sicherstellen ist es essenziell zu verstehen wie die systemnahen Befehle wie debian rules und dpkg buildpackage un ter ihnen ausgef hrt werden Building Debian Packages with git buildpackage usr share doc git buildpackage manual html gbp html debian packages in git https honk sigxcpu org piki development debian_packages_in_git Using Git for Debian Packaging http www eyrie org eagle notes debian git html git dpm Debian packages in Git manager http git dpm alioth debian org e Using TopGit to generate quilt series for Debian packaging http git debian org p collab maint topgit git a blob_plain f debian HOWTO tg2quilt hb HEAD 13 Umgebungsvariablen die normalerweise auf vern nftige Werte gesetzt sind werden bei dieser Methode nicht eingerichtet Erstellen Sie niemals echte Pakete die hochgeladen werden sollen mit dieser schnellen Methode Debian Leitfaden f r Neue Paketbetreuer 48 63 Kapitel 7 Uberprifen des Pa
38. Debian Leitfaden f r Neue Paketbetreuer Debian Leitfaden f r Neue Paketbetreuer Debian Leitfaden f r Neue Paketbetreuer Copyright 1998 2002 Josip Rodin Copyright 2005 2015 Osamu Aoki Copyright 2010 Craig Small Copyright 2010 Rapha l Hertzog Dieses Dokument darf gem der Bedingungen der GNU General Public License Version 2 oder neuer verwendet werden Diesem Dokument liegen die Beispiele der folgenden zwei Dokumente zu Grunde e Making a Debian Package AKA the Debmake Manual Copyright 1997 Jaldhar Vyas The New Maintainer s Debian Packaging Howto Copyright 1997 Will Lowe Debian Leitfaden f r Neue Paketbetreuer MITWIRKENDE TITEL Debian Leitfaden f r Neue Paketbetreuer AKTION NAME DATUM UNTERSCHRIFT VERFASST Josip Rodin 9 Juni 2015 DURCH Osamu Aoki Helge Kreutzmann Tobias Quathamer Erik Schanze und Eduard Bloch Deutsche 9 Juni 2015 Ubersetzung Deutsche 9 Juni 2015 Ubersetzung Deutsche 9 Juni 2015 Ubersetzung Deutsche 9 Juni 2015 Ubersetzung VERSIONSGESCHICHTE NUMMER DATUM BESCHREIBUNG NAME Debian Leitfaden f r Neue Paketbetreuer Inhaltsverzeichnis 1 Einstieg aber richtig 11 Soziale Dynamik von Debian lt o sir von sa ae an Bi ar an a a ai 1 2 Programme die zum Entwickeln notwendig sind CC aoaaa 1 3 Dokumentation die zum Entwickeln gebraucht wird 2 2 22mm nen
39. Fehlersuche zu helfen e 0 f r au er Kraft gesetzt eine Meldung die durch Dateien lintian overrides au er Kraft gesetzt von der Option show overrides aber angezeigt wurde Wenn Sie Warnungen sehen passen Sie Ihr Paket an um diese zu vermeiden oder berpr fen Sie dass die Warnungen unberechtigt sind Falls Sie unberechtigt sind legen Sie Dateien lintian overrides wie in Abschnitt 5 14 beschrieben an Beachten Sie dass Sie das Paket mit dpkg buildpackage bauen und lintian in einem Befehl darauf anwenden k nnen falls Sie debuild 1 oder pdebuild 1 verwenden 1 Sie m ssen die Option i I show overrides von lintian angeben falls Sie etc devscripts conf oder devscripts wie in Abschnitt 6 3 beschrieben angepasst haben Debian Leitfaden f r Neue Paketbetreuer 50 63 7 5 Der Befehl debc Sie k nnen Dateien im bin ren Debian Paket mit dem Befehl debc 1 auflisten debc package changes 7 6 Der Befehl debdiff Sie k nnen Dateiinhalte in zwei Debian Quellpaketen mit dem Befehl debdiff 1 vergleichen debdiff altes Paket dsc neues Paket dsc Sie k nnen Dateilisten in zwei Gruppen von bin ren Debian Paketen mit dem Befehl debdiff 1 vergleichen debdiff altes Paket changes neues Paket changes Sie sind n tzlich um zu identifizieren wass in den Quellpaketen ge ndert wurde und auf unbeabsichtigte nderungen beim Aktualisieren der Bin rpakete zu pr fen wie versehentlich fehlplatzierte ode
40. Manual Kapitel 2 4 Sections http www debian org doc debian policy ch archive html s subsections und Liste der Ab schnitte in sid http packages debian org unstable 3 Lesen Sie das Debian Policy Manual Kapitel 2 5 Priorities http www debian org doc debian policy ch archive html s priorities Lesen Sie das Debian Policy Manual Kapitel 7 7 Relationships between source and binary packages Build Depends Build Depends Indep Build Conflicts Build Conflicts Indep http www debian org doc debian policy ch relationships html s sourcebinarydeps 5 Diese etwas merkw rdige Situation ist eine Besonderheit die in dem Debian Policy Manual Fu note 55 http www debian org doc debian policy footnotes html tf55 sehr gut dokumentiert ist Es liegt nicht an der Verwendung des Befehls dh in der Datei debian rules sondern daran wie das Programm dpkg buildpackage arbeitet Dieselbe Situation gilt auch f r das auto build system von Ubuntu https bugs launchpad net launchpad buildd bug 238141 Debian Leitfaden f r Neue Paketbetreuer 21 63 dpkg S libfoo so 6 Dann nehmen Sie einfach die Entwicklerversion dev jedes Pakets als einen Build Depends Eintrag Falls Sie daf r Idd benutzen werden auch indirekt abh ngende Bibliotheken aufgelistet und berfl ssige Bauabh ngigkeiten geliefert Gentoo ben tigt noch xlibs dev 1ibgtk1 2 dev und libglib1 2 dev um gebaut werden zu k nnen deshalb h n gen wir d
41. Sicherheitsprobleme und Betreuungssorgen zum Debian System hinzuf gen Das Programm sollte gut dokumentiert und der Quellcode verst ndlich d h nicht verschleiert sein Sie sollten den oder die Autoren des Programms kontaktieren und sicherstellen dass sie mit dem Paketieren einverstanden und Debian wohlgesonnen sind Es ist wichtig dass die Autoren auch sp ter im Fall von Problemen ber das Programm befragt werden k nnen Versuchen Sie also nicht aufgegebene Programme zu paketieren Das Programm sollte sicherlich nicht als setuid root laufen oder noch besser es sollte f r die Ausf hrung berhaupt keine setuid oder setgid Rechte brauchen Das Programm sollte kein Daemon sein oder in die Verzeichnisse sbin installiert werden und auch keinen Port als Root ffnen Nat rlich ist der zuletzt aufgef hrt Punkte eher eine Sicherheitsma nahme und sollte Sie vor tobenden Benutzern sch tzen falls Ihr setuid Daemon irgendetwas Schlimmes anstellt Wenn Sie mehr Erfahrungen im Erstellen von Paketen gesammelt haben k nnen Sie sich auch solche Software paketieren Als neuer Betreuer wird Ihnen empfohlen Erfahrung im Paketieren einfacher Pakete zu sammeln und Ihnen abgeraten kompli zierte Pakete zu erstellen Einfache Pakete einfaches Bin rpaket arch all Sammlung von Daten wie Hintergrundgraphiken einfaches Bin rpaket arch all in interpretierten Sprachen wie POSIX Shell geschriebene Programme
42. T_PATCHES then falls in Debian Paketbaum mit ungesetztem QUILT_PATCHES QUILT_PATCHES debian patches QUILT_PATCH_OPTS reject format unified QUILT_DIFF_ARGS p ab no timestamps no index color auto QUILT_REFRESH_ARGS p ab no timestamps no index QUILT_COLORS diff_hdr 1 32 diff_add 1 34 diff_rem 1 31 diff_hunk 1 33 diff_ctx 35 diff_cctx 33 if d d debian patches then mkdir d debian patches fi fi Siehe quilt 1 und usr share doc quilt quilt pdf gz f r eine Anleitung wie quilt benutzt wird 3 2 Fehler in den urspr nglichen Quellen korrigieren Nehmen wir an Sie finden den folgenden Fehler in der urspr nglichen Makefile wo statt install gentoo besser install gentoo target stehen sollte install gentoo install gentoo BIN install icons ICONS install gentoorc example HOME gentoorc Debian Leitfaden f r Neue Paketbetreuer 15 63 Wir beheben dies und speichern es mit dem Befehl quilt wie folgt als fix gentoo target patch mkdir debian patches dquilt new fix gentoo target patch dquilt add Makefile Sie k nnen die Datei Makefile wie folgt ndern install gentoo target install gentoo BIN install icons ICONS install gentoorc example HOME gentoorc Jetzt muss dquilt noch mitgeteilt werden dass der Patch erzeugt werden soll so dass die Datei debian patches fix gentoo tat patch erstellt wird Au erdem sollen Sie eine Beschreibung gem
43. Verzeichnis debian enthalten ist sudo pbuilder update pdebuild Sie k nnen sich in der erstellten chroot Umgebung anmelden indem Sie den Befehl pbuilder login save after login verwenden und diese dann so einrichten wie Sie wollen Diese Umgebung kann gespeichert werden indem die Shell Eingabeaufforderung mittels D Steuerung D verlassen wird Die aktuelle Version des Programms lintian kann in der chroot Umgebung ausgef hrt werden indem das Hook Skript var cache pbuilder hooks B90lintian wie folgt eingerichtet wird 7 bin sh set e install_packages apt get y force yes install 5 Weil das Paket pbuilder st ndig weiterentwickelt wird sollten Sie die tats chliche Konfiguration herausfinden indem Sie die aktuelle offizielle Doku mentation durchlesen 6 Lesen Sie http buildd debian org f r weitere Informationen ber das automatische Bauen von Debian Paketen 7 Dies setzt HOOKDIR var cache pbuilder hooks voraus Sie finden viele Beispiele f r Hook Skripte im Verzeichnis usr share doc pbuilder examples Debian Leitfaden f r Neue Paketbetreuer 46 63 install_packages lintian echo lintian output su c lintian i I show overrides tmp buildd changes pbuilder Verwenden Sie diese Version falls Lintian beim Bau nicht fehlschlagen soll su c lintian i I show overrides tmp buildd changes pbuilder echo end of lintian output
44. aden f r Neue Paketbetreuer 58 63 Anhang A Fortgeschrittene Paketierung Es folgen einige Tipps und Verweise f r fortgeschrittene Paketierungsfragen mit denen Sie wahrscheinlich zu tun bekommen werden Es wird Ihnen nachdr cklich empfohlen alle hier vorgeschlagenen Referenzen zu lesen Es k nnte sein dass Sie die durch den Befehl dh_make erstellten Paketierungsvorlagendateien manuell bearbeiten m ssen um Punkte aus diesem Kapitel zu ber cksichtigen Der neuere Befehl debmake sollte diese Punkte besser ber cksichtigen A 1 Laufzeit Bibliothek Bevor Sie Laufzeit Bibliotheken paketieren sollten Sie die folgenden Referenzen im Detail lesen Debian Policy Manual Kapitel 8 Shared libraries http www debian org doc debian policy ch sharedlibs html e Debian Policy Manual Kapitel 9 1 1 File System Structure http www debian org doc debian policy ch opersys html s fhs e Debian Policy Manual Kapitel 10 2 Libraries http www debian org doc debian policy ch files html s libraries Es folgen einige stark vereinfachte Tipps f r den Anfang Laufzeitbibliotheken engl shared libraries sind ELF Objektdateien die bersetzten Code enthalten Laufzeitbibliotheken werden als so Dateien vertrieben d h weder als a noch als 1a Dateien Laufzeitbibliotheken werden haupts chlich benutzt um gemeinsamen Programmcode aus mehreren Programmen mittels des Id Mechanismus gemeinsam zu benutzen Lauf
45. aften des Paketsystems von Debian Pakete k nnen auf verschiedene Arten mit einander in Beziehung stehen Neben Depends h ngt ab von gibt es noch die Beziehungsfelder Recommends empfiehlt Suggests schl gt vor Pre Depends setzt voraus Breaks besch digt Conflicts kollidiert mit Provides ent h lt und Replaces ersetzt Die verschiedenen Paketverwaltungswerkzeuge verhalten sich normalerweise bei der Behandlung dieser Beziehungen gleich wenn nicht wird dies erkl rt siehe dpkg 8 dselect 8 apt 8 aptitude 1 usw Es folgt eine vereinfachte Beschreibung der Paketbeziehungen 7 Depends Das Paket wird erst installiert wenn die hier aufgelisteten Pakete ebenfalls installiert sind Benutzen Sie dies falls ihr Programm ohne ein bestimmtes Paket berhaupt nicht l uft oder schwere Sch den verursacht Recommends Benutzen Sie dies f r Pakete die nicht absolut notwendig sind die aber typischerweise mit Ihrem Programm verwendet werden Wenn ein Benutzer Ihr Programm installiert fragen wahrscheinlich alle Oberfl chen nach ob die empfohlenen Pakete auch installiert werden sollen aptitude und apt get installieren alle empfohlenen Pakete zusammen mit Ihrem Paket aber der Benutzer kann diese Voreinstellung deaktivieren dpkg ignoriert dieses Feld 6 Lesen Sie Debian Policy Manual Kapitel 5 6 8 Architecture http www debian org doc debian policy ch controlfields html s f Architecture f r die genau
46. akets sind von http snapshot debian org http snapshot debian org erh ltlich Die Debian Revision wird von der Version entfernt um das R ckportieren eines Paketes zu erleichtern 1 1 lt lt 1 1 1 bpo70 1 lt lt 1 1 1and1 2 lt lt 1 2 1 bpo70 1 lt lt 1 2 1 Debian Leitfaden f r Neue Paketbetreuer 60 63 dpkg deb x libfoo1_1 1 1 deb libfoo1_1 1 1 dpkg deb x libfoo1_1 2 1 deb libfoo1_1 2 1 gt symbols dpkg gensymbols v1 1 plibfoo1 Plibfoo1_1 1 1 Osymbols dpkg gensymbols v1 2 plibfoo1 Plibfoo1_1 2 1 Osymbols e Bauen Sie mit Werkzeugen wie debuild und pdebuild versuchsweise den Quellbaum Falls das aufgrund fehlender Symbo le usw fehlschl gt gibt es einige r ckw rtsinkompatible ABI nderungen die es notwendig machen den Paketnamen der Laufzeitbibliothek auf etwas wie libfoo1a zu erh hen Sie sollten dann wieder von vorne anfangen cd libfoo 1 3 debuild dpkg gensymbols Warnung einige neue Symbole sind in der Symboldatei aufgetaucht lesen Sie die folgende Diff Ausgabe debian libfoo1 symbols libfoo1_1 3 1_amd64 dpkg gensymbolsFE5gzx 2012 11 11 02 24 53 609667389 0900 00 127 6 127 7 00 foo_get_name Base 1 1 foo_get_longname Base 1 2 foo_get_type Base 1 1 foo_get_longtype Base 1 3 1 foo_get_symbol Base 1 1 foo_get_rank Base 1 1 foo_new Base 1 1 e Falls Sie wie oben den von dpkg gensymbols ausgegebenen Diff sehen extrahieren Sie die korrekte symbols Datei aus dem ers
47. alt der Datei changes um sicherzustellen dass Sie in die korrekte Distribution hochladen die richtigen Fehlerschlie anweisungen im Feld Closes enthalten sind die Felder Maintainer and Changed By passen die Datei GPG unterschrieben ist usw Debian Leitfaden f r Neue Paketbetreuer 56 63 Kapitel 9 Das Paket hochladen Nachdem Sie jetzt das neue Paket intensiv getestet haben m chten Sie es zur gemeinsamen Benutzung in ein ffentliches Archiv hochladen 9 1 In das Debian Archiv hochladen Sobald Sie ein offizieller Entwickler werden t k nnen Sie das Paket in das Debian Archiv hochladen Sie k nnen dies manuell erledigen aber es ist leichter eines der bestehenden automatischen Werkzeuge zu verwenden wie dupload 1 oder dput 1 Wir beschreiben wie es mit dem Befehl dupload gemacht wird Zuerst m ssen Sie die Konfigurationsdatei von dupload einrichten Sie k nnen entweder die systemweite Datei etc dupload conf bearbeiten oder durch Ihre pers nliche Datei dupload conf die wenigen Dinge die Sie ndern m chten ber schreiben Sie k nnen die Handbuchseite dupload conf 5 lesen um zu verstehen was jede dieser Optionen bedeutet Die Option default_host bestimmt welche der Upload Warteschlangen standardm ig benutzt wird anonymous ftp master ist die prim re aber es ist m glich dass Sie eine andere benutzen m chten W hrend Sie mit dem Internet verbunden Sie k nnen Sie Ihr Paket wie folgt h
48. an Projekts mit unbeschr nkten Rechten Pakete in das offizielle Debian Paketarchiv hochzuladen Debian Betreuer Debian Maintainer DM Eine Person die beschr nkte Rechte hat Pakete in das offizielle Debian Paketarchiv hochzuladen Bitte beachten Sie dass Sie nicht ber Nacht offizieller Debian Entwickler Debian Developer DD werden k nnen weil es daf r mehr als nur technische F higkeiten braucht Bitte lassen Sie sich davon nicht entmutigen Wenn Ihr Paket f r andere n tzlich ist k nnen Sie es entweder als Betreuer ber einen Sponsor oder als Debian Betreuer trotzdem hochladen Bitte beachten Sie dass Sie kein neues Paket erstellen m ssen um offizieller Debian Entwickler zu werden Auch Beitr ge zu existierenden Paketen k nnen ein Weg sein offizieller Debian Entwickler zu werden Es gibt viele Pakete die auf einen guten Betreuer warten siehe Abschnitt 2 2 Da in diesem Dokument nur auf technische Aspekte der Paketierung fokussiert wird lesen Sie bitte die folgenden Texte um zu erfahren wie Debian funktioniert und wie Sie daran mitarbeiten k nnen Debian 17 years of Free Software do ocracy and democracy http upsilon cc gt zack talks 2011 20110321 taipei pdf ein f hrenden Folien Wie k nnen Sie Debian helfen http www debian org intro help offiziell Die Debian GNU Linux FAQ Kapitel 13 Zum Debian Projekt beitragen http www debian org doc FAQ ch contributing de html
49. aus den nativen Debian Quellpaketen Paket_Version_Arch deb Falls Sie beispielsweise Quelldateien in mypackage 1 0 ohne die debian Dateien haben k nnen Sie ein natives Debian Paket daf r mittels des Befehl dh_make wie folgt erstellen cd MeinPaket 1 0 dh_make native Dann werden das Verzeichnis debian und seine Inhalte genau wie bei Abschnitt 2 8 erstellt Dies erstellt keinen Tarball da dies ein natives Debian Paket ist Das ist aber auch der einzige Unterschied Der Rest der Paketierungsaktivit ten ist praktisch identisch Nach der Ausf hrung des Befehls dpkg buildpackage werden Sie die folgenden Dateien im bergeordneten Verzeichnis finden e meinpaket_1 0 tar gz Dies ist der Quellcode Tarball der von dem Verzeichnis MeinPaket 1 0 durch den Befehl dpkg source erstellt wurde Seine Endung ist nicht orig tar gz 14 Alternativ k nnen Sie die Argumente libdir prefix 1lib DEB_HOST_MULTIARCH und libexecdir prefix lib DEB_HOST_MULTIARCH zu configure hinzuf gen Beachten Sie dass libexecdir den Standardpfad in den ausf hrbare Programme die von anderen Programmen im Gegensatz zu Benutzern ausgef hrt werden angibt Die Vorgabe von Autotools ist usr libexec die Debian Vorgabe ist allerdings usr 1lib Debian Leitfaden f r Neue Paketbetreuer 63 63 e meinpaket_1 0 dsc Dies ist eine Zusammenfassung der Inhalte des Quellcodes wie in dem nicht nativen Debian Paket Es gibt
50. bedeutende gro e Patch Dateien hervorrufen Es gibt angepasste Module wie dh_autoreconf um dieses Problem zu vereinfachen Dies wird in Abschnitt 4 4 3 beschrieben Sie k nnen dem Optionsargument extend diff ignore von dpkg source 1 einen regul ren Perl Ausdruck bergeben um nderungen die an den automatisch erstellten Dateien beim Erstellen des Quellpakets vorgenommen wurden zu ignorieren Als allgemeine L sung um dieses Problem der automatisch erstellten Dateien zu adressieren k nnen Sie so ein Optionsargument an dpkg source in der Datei source options des Quellpakets speichern Folgendes wird die Erstellung von Patch Dateien f r config sub config guess und Makefile berspringen extend diff ignore A config sub config qguess Makefile 5 26 patches Das alte Quellformat 1 erzeugte eine einzelne gro e diff gz Datei in der sowohl die Paketbetreuungsdateien unter debian als auch Patches f r den Quelltext enthalten waren So ein Paket ist etwas schwierig zu untersuchen und zu verstehen wenn sp ter der Quelltext ge ndert werden soll Das ist nicht so sch n Das neuere Quellformat 3 0 quilt speichert Patches in debian patches Dateien unter Verwendung des Befehls quilt ab Diese Patches sowie andere Paketdaten bleiben alle innerhalb des Verzeichnisses debian und werden als debian tar gz Datei gepackt Da der Befehl dpkg source in 3 0 quilt Quellen die Patch Daten im quilt Format verarbeiten kann oh
51. benennen und sie bearbeiten Dabei verwenden Sie die Informationen aus dem Beispiel und die Dokumentation des Originalautors Sie k nnen auch den Befehl help2man benutzen um eine Handbuchseite aus der Ausgabe des Programms mit den Optionen help und version zu erzeugen 5 15 2 manpage sgml ex Falls Sie es andererseits bevorzugen in SGML anstatt nroff zu schreiben k nnen Sie die Vorlage manpage sgml ex benutzen Dann m ssen Sie Folgendes tun e Benennen Sie die Datei um beispielsweise in gentoo sgml Installieren Sie das Paket docbook to man F gen Sie docbook to man der Zeile Build Depends in der Datei control hinzu e F gen Sie das Target override_dh_auto_build in Ihrer Datei rules hinzu override_dh_auto_build docbook to man debian gentoo sgml gt debian gentoo 1 dh_auto_build 5 15 3 manpage xml ex Falls Sie XML gegen ber SGML bevorzugen k nnen Sie die Vorlage manpage xml ex benutzen Dann m ssen Sie Folgendes tun Umbenennen der Quelldatei in etwas wie gentoo 1 xml e Installieren Sie das Paket docbook xs1 und einen XSLT Prozessor wie xs1tproc empfohlen 4 Beachten Sie dass die Platzhalter Handbuchseite von help2man behaupten wird dass detailliertere Informationen im info System vorhanden seien Falls dem Befehl eine Info Seite fehlt sollten Sie die von help2man erstellte Handbuchseite manuell bearbeiten Debian Leitfaden f r Neue Paketbetreuer 38 63 e F gen Sie doc
52. book xs1 docbook xml und xs1tproc der Zeile Build Depends in der Datei control hinzu e F gen Sie das Target override_dh_auto_build in Ihrer Datei rules hinzu override_dh_auto_build xsltproc nonet param make year ranges 1 param make single year ranges 1 param man charmap use subset o debian http docbook sourceforge net release xsl current manpages docbook xs1 debian gentoo 1 xml dh_auto_build 5 16 Paket manpages Falls Ihr Paket Handbuchseiten hat sollten Sie sie mit dh_installman 1 installieren indem Sie sie in einer Dateie Paket manpages auflisten Um docs gentoo 1 als Handbuchseite f r das Paket gentoo zu installieren erstellen Sie eine Datei gentoo manpages folgenderma en docs gentoo 1 5 17 menu Benutzer des X Window Systems haben normalerweise einen Fenstermanager mit einem Men das konfiguriert werden kann um Programme zu starten Falls sie das Debian Paket menu installiert haben werden Men eintr ge f r die installierten Programme automatisch hinzugef gt Hier ist die Standarddatei menu ex die von dh_make erstellt wurde package gentoo needs X11 text vc wm section Applications see menu manual title gentoo command usr bin gentoo Das erste Feld nach dem Doppelpunkt ist needs und bestimmt welche Art der Benutzerschnittstelle das Programm braucht ndern Sie dies auf eine der aufgef hrten Alternativen beispielsweise text oder X11 Das n chste ist der Abschnitt s
53. debian org http alioth debian org verwandt wird H Die Option pristine tar ruft den Befehl pristine tar auf der eine exakte Kopie des urspr nglichen Tarballs erneut erstellt und dabei nur eine kleine bin re Deltadatei und den Inhalt des Tarballs verwendet der typischerweise im Zweig upstream des VCS gehalten wird 12 Hier sind einige Quellen im Web f r fortgeschrittene Anwender Debian Leitfaden f r Neue Paketbetreuer 47163 6 6 Schneller Neubau Bei einem gro en Paket wollen Sie bestimmt nicht alles nach jeder kleiner nderung in debian rules neu kompilieren F r Testzwecke k nnen Sie folgenderma en eine deb Datei erstellen ohne alle Schritte durchzumachen fakeroot debian rules binary Oder noch einfacher falls Sie nur feststellen wollen ob das Paket gebaut werden kann oder nicht fakeroot debian rules build Wenn Sie mit Ihren Anpassungen fertig sind vergessen Sie nicht das Paket gem der korrekten Prozedur neu zu bauen Sie werden deb Dateien die auf diese Weise gebaut wurden nicht korrekt hochladen k nnen 6 7 Befehlshierarchie Dies ist eine kurze Zusammenfassung wie die vielen Befehle zum Paketbau in der Befehlshierarchie zusammenpassen Es gibt viele Wege das gleiche zu erledigen debian rules Betreuerskript f r den Paketbau dpkg buildpackage Kern des Paketbauwerkzeuges e debuild dpkg buildpackage lintian unter bereinigten Umgebungsvariablen bauen pbuilder Kern des
54. dh_ Skripts ndern wollten mussten Sie die entsprechende Zeile in der Datei rules aufsuchen und dort anpassen Debian Leitfaden f r Neue Paketbetreuer 31 63 override_dh_auto_configure dh_auto_configure sysconfig etc gentoo Die nach dem bergebenen Argumente werden zu den vorgegebenen Argumenten des automatisch ausgef hrten Programms hinzugef gt um sie zu berschreiben Die Benutzung des Befehls dh_auto_configure ist besser als der direkte Aufruf von configure weil in diesem Fall lediglich das Argument sysconfig berschrieben wird und andere sehr wohl beabsichtigte Argumente f r den Befehl configure erhalten bleiben Falls das Makefile in den Quellen von gentoo zum Bauen explizit das Ziel build ben tigt k nnen Sie ein Ziel namens override_dh_auto_build erstellen um dies zu erm glichen override_dh_auto_build dh_auto_build build Hiermit wird sichergestellt dass MAKE mit allen voreingestellten Argumenten des Befehls dh_auto_build plus dem Argu ment build ausgef hrt wird Falls das Makefile in den Quellen von gentoo zum Aufr umen f r das Debianpaket explizit das Ziel packageclean ben tigt statt der Ziele distclean oder clean k nnen Sie ein Ziel namens override_dh_auto_clean erstellen um dies zu nutzen override_dh_auto_clean MAKE packageclean Falls das Makefile in den Quellen von gentoo das Ziel test enth lt das Sie im Paketbau Prozess f r Debian nicht ausf hren wollen
55. dpkg buildpackage 1 verwenden wird um das Paket zu bauen Diese Datei ist in Wirklichkeit ein weiteres Makefile aber anders als die von den Originalautoren mitgelieferten Im Unterschied zu den anderen Dateien im Verzeichnis debian ist diese Datei als ausf hrbar gekennzeichnet 4 4 1 Ziele der Datei rules Jede rules Datei wie jedes andere Makefile besteht aus mehreren Regeln von der jede ein Ziel und eine Ausf hrung definiert Eine neue Regel beginnt mit der Ziel Deklaration in der ersten Spalte Die folgenden Zeilen beginnen mit einem 10 Falls Sie den Befehl dch r zur Durchf hrung dieser letzten nderung verwenden stellen Sie sicher dass Sie die Datei changelog explizit im Editor speichern 11 Sie k nnen das Schreiben von Makefiles von Debian Reference 12 2 Make http www debian org doc manuals debian reference ch12 _make anfangen zu lernen Die komplette Dokumentation ist als http www gnu org software make manual html_node index html oder als das Paket make doc im Archivbereich non free verf gbar Debian Leitfaden f r Neue Paketbetreuer 26 63 Tabulator ASCII 9 nach dem das Rezept zur Durchf hrung des Ziels angegeben wird Leere Zeilen und Zeilen die mit einem Hash anfangen werden als Kommentare behandelt und ignoriert Eine Regel die Sie ausf hren m chten wird durch ihren Zielnamen als Befehlszeilenargument aufgerufen Beispielsweise f hren debian rules buildund fakeroot make f debian rul
56. e daher diese Pfade in Where to put executable commands on make install BIN DESTDIR usr bin Where to put icons on make install ICONS DESTDIR usr share gentoo Der genaue Ort der f r Programme Icons Dokumentation usw verwandt werden sollte ist im Filesystem Hierarchy Standard FHS spezifiziert Sie sollten ihn durchbl ttern und die f r Ihr Paket relevanten Abschnitte lesen Sie sollten also ausf hrbare Befehle in usr bin statt usr local bin installieren die Handbuchseiten in usr share man man1 statt usr local man man1 usw Beachten Sie dass im Makefile von gentoo keine Hand buchseite auftaucht Da die Debian Richtlinien aber verlangen dass jedes Programm eine hat schreiben Sie sp ter eine und installieren sie unter usr share man man1 Manche Programme nutzen dieMakefile Variablen nicht um solche Pfade zu definieren Das bedeutet dass Sie wahrscheinlich die C Quelltexte direkt bearbeiten m ssen damit diese dann die richtigen Pfade benutzen Aber wo soll man suchen und wonach eigentlich genau Sie k nnen dies herausfinden indem Sie folgendes eingeben grep nr include c h e usr local lib Grep durchsucht das Quellverzeichnis rekursiv und gibt Ihnen den Dateinamen und die Zeilennummer f r alle Treffer aus Sie m ssen diese Dateien nun bearbeiten und in den entsprechenden Zeilen usr local lib durch usr lib ersetzen Dies kann wie folgt automatisch erledigt werden
57. e den Befehl file verwenden wenn die Dateierweiterung nicht genug ist 7 Das Programm ist bereits paketiert worden Die aktuelle Version http packages qa debian org g gentoo html verwendet die Autotools als Baustruktur und unterscheidet sich signifikant von den folgenden Beispielen die auf Version 0 9 12 basieren Debian Leitfaden f r Neue Paketbetreuer 10 63 Jetzt haben Sie ein neues Unterverzeichnis namens gentoo 0 9 12 Wechseln Sie dorthin und lesen Sie die mitgelieferte Dokumentation aufmerksam durch Meistens gibt es Dateien mit den Namen README INSTALL 1sm oder html Sie m ssen eine Anleitung finden wie man das Programm kompiliert und installiert meistens wird von einer Installation in das Verzeichnis usr local bin ausgegangen aber das werden Sie nicht machen Mehr dazu sp ter in Abschnitt 3 3 Sie sollten das Paketieren mit einem komplett aufger umten pristine makellosen Quellcode Verzeichnis anfangen oder die Quellen einfach frisch entpacken 2 4 Einfache Bausysteme Einfache Programme enthalten normalerweise eine Makefile Datei und k nnen rein durch den Aufruf von make kompi liert werden Einige von ihnen unterst tzen make check wodurch die mitgelieferten Selbsttests gestartet werden Die Installation in das Zielverzeichnis wird blicherweise mittels make install durchgef hrt Versuchen Sie nun das Programm zu kompilieren und auszuf hren Stellen Sie sicher dass es einwandfrei fu
58. ebian Quellpaketen gebaute Debian Bin rpakete die normale installierbare Paketdateien im deb oder in dem vom Debian Installer verwandten udeb Format sind Paket_Version Revision_Arch deb Bitte beachten Sie dass das Zeichen das Paket und Version trennt von Bindestrich im Tarball Namen zu _ Unterstrich im Debian Paketdateinamen ge ndert wurde Im obigen Dateinamen wird der Paket Teil durch den Paketnamen der Version Teil durch die Version der Originalautoren der Revision Teil durch die Debian Revision und der arch Teil mit der Paketarchitektur wie dies in dem Debian Policy Manual festgelegt ist ersetzt Jeder Schritt dieser bersicht wird in sp teren Abschnitten mit detaillierten Beispielen erkl rt 1 F r die Debian Quellpakete im lteren 1 0 Format wird stattdessen Paket_Version Revision diff gz benutzt Lesen Sie 5 6 1 Source http www debian org doc debian policy ch controlfields html s f Source 5 6 7 Package http www debian org doc debian policy ch controlfields html s f Package und 5 6 12 Version http www debian org doc debian policy ch controlfields html s f Version Die Pa ketarchitektur folgt dem Debian Policy Manual Kapitel 5 6 8 Architecture http www debian org doc debian policy ch controlfields html s f Architecture und wird w hrend des Paketbauprozesses automatisch zugewiesen Debian Leitfaden f r Neue Paketbetreuer 7163 2 2 Ihr Programm ausw h
59. ebian org doc manuals developers reference pkgs html upload 5 Lesen Sie ftp ftp upload debian org pub UploadQueue README Alternativ k nnen Sie den Befehl dcut aus dem Paket dput verwenden Debian Leitfaden f r Neue Paketbetreuer 57163 rm hello_1 0 1_i386 deb mv hello_1 0 1 dsx hello_1 0 1 dsc BEGIN PGP SIGNATURE Version GnuPG v1 4 10 GNU Linux 9 2 Die Datei orig tar gz hochladen Wenn Sie das Paket zum ersten Mal ins Archiv hochladen m ssen Sie auch die urspr ngliche Quelldatei orig tar gz einschlie en Falls die Debian Revisionsnummer dieses Pakets weder 1 noch 0 ist m ssen Sie die Option sa von dpkg buildpackage verwenden F r den Befehl dpkg buildpackage dpkg buildpackage sa F r den Befehl debuild debuild sa F r den Befehl pdebuild pdebuild debbuildopts sa Andererseits wird die Option sd den Ausschluss der urspr nglichen Quelle orig tar gz erzwingen 9 3 bersprungene Uploads Falls Sie mehrere Eintr gen in debian changelog erzeugt haben indem Sie Uploads bersprangen m ssen Sie eine korrekte Datei _ changes erzeugen die s mtliche nderungen seit dem letzten Upload enth lt Dies kann durch Angabe der Option V von dpkg buildpackage mit der Version z B 1 2 erfolgen F r den Befehl dpkg buildpackage dpkg buildpackage v1 2 F r den Befehl debuild debuild v1 2 F r den Befehl pdebuild pdebuild debbuildopts v1 2 Debian Leitf
60. ection in dem der Men und Untermen eintrag sp ter erscheinen soll Das Feld title enth lt den Namen des Programms Dieser kann mit Gro buchstaben beginnen sollte aber kurz gehalten werden Zuletzt das Feld command das den Befehlsaufruf zum Starten des Programms enth lt Lassen Sie uns den Dateinamen in menu und den Men eintrag wie folgt ndern package gentoo needs X11 section Applications Tools title Gentoo command gentoo Sie k nnen noch weitere Felder wie longtitle icon hints usw hinzuf gen Siehe dh_installmenu 1 menufile 5 update menus 1 und The Debian Menu sub policy http www debian org doc packaging manuals menu policy f r weitere Informa tionen 5 Die derzeitige Liste der Abschnitte befindet sich in The Debian Menu sub policy Kapitel 2 1 Preferred menu structure http www debian org doc packaging manuals menu policy ch2 html s2 1 F r squeeze gab es eine gro e Reorganisation der Men struktur Debian Leitfaden f r Neue Paketbetreuer 39 63 5 18 NEWS Der Befehl dh_installchangelogs 1 installiert diese Datei 5 19 post pre inst rm Die Dateien postinst preinst postrm und prerm werden Betreuerskripte engl maintainer scripts genannt Diese Skripte werden f r die Steuerung des Pakets verwendet und von dpkg aufgerufen wenn Ihr Paket installiert aktualisiert oder entfernt wird Als neuer Betreuer sollten Sie das manuelle Bearbeiten dieser Betreuerskripte ver
61. eference den grundlegenden Umgang mit einem Debian System lernen Sie enth lt auch einige Hinweise um etwas ber Unix Programmierung zu lernen Debian Leitfaden f r Neue Paketbetreuer 2163 Freundliche Zusammenarbeit ist die Triebfeder Ihr Beitrag sollte andere nicht zu sehr belasten Ihr Beitrag ist nur wertvoll wenn andere ihn w rdigen e Debian ist keine Schulklasse in der Sie automatisch vom Lehrer Aufmerksamkeit bekommen Sie sollten in der Lage sein viele Sachen selbst zu lernen Aufmerksamkeit von anderen Freiwilligen ist eine sehr knappe Ressource e Debian verbessert sich st ndig Es wird von Ihnen erwartet hochqualitative Pakete zu erstellen Sie sollten sich an nderungen selbst anpassen Es gibt mehrere Arten von Personen die innerhalb von Debian mit verschiedenen Rollen zusammenarbeiten Urspr nglicher Autor upstream author Die Person die das urspr ngliche Programm geschrieben hat Betreuer des Originalprogramms upstream maintainer Die Person die das Programm zurzeit betreut Betreuer maintainer Die Person die ein Debian Paket des Programms erstellt oder betreut Sponsor Eine Person die Betreuern hilft Pakete in das offizielle Debian Paketarchiv hochzuladen nachdem sie den Inhalt berpr ft hat Mentor Eine Person die neuen Betreuern beim Paketieren usw hilft Debian Entwickler Debian Developer DD Ein Mitglied des Debi
62. ehe Abschnitt 4 1 6 3 Der Befehl debuild Sie k nnen den Prozess des Paketbauens rund um die Ausf hrung des Befehls dpkg buildpackage weiter mit dem Befehl debuild automatisieren Siehe debuild 1 Der Befehl dbuild f hrt den Befehl lintian aus um nach dem Bau des Debian Pakets statische Pr fungen durchzuf hren Der Befehl lintian kann mit dem folgenden Eintrag in der devscripts angepasst werden DEBUILD_DPKG_BUILDPACKAGE_OPTS us uc I i DEBUILD_LINTIAN_OPTS i I show overrides Jetzt kann das S ubern des Quellverzeichnisses und Neubauen des Pakets unter Ihrem Benutzerkonto einfach so durchgef hrt werden debuild Sie k nnen das Quellverzeichnis einfach so s ubern debuild clean 4 Im Gegensatz zum pbuilder Paket erzwingt die chroot Umgebung im Paket sbuild die vom Autobuilder System verwendet wird keine Verwendung einer Minimalumgebung Daher k nnen briggebliebene Pakete installiert sein Debian Leitfaden f r Neue Paketbetreuer 45 63 6 4 Das Paket pbuilder Um die Abh ngigkeiten f r den Bau in einer sauberen Umgebung chroot zu berpr fen ist das Paket pbuilder sehr gut geeignet Es stellt sicher dass das Paket aus den Quellen auf einem Sid Autobuilder f r verschiedene Architekturen gebaut werden kann Weiterhin wird hierdurch ein schwerwiegender FTBFS Fehler Fails To Build From Source kann nicht aus den Quellen gebaut werden verhindert der immer als release kritisch R
63. en Details 7 Lesen Sie Debian Policy Manual Kapitel 7 Declaring relationships between packages http www debian org doc debian policy ch relationships html Debian Leitfaden f r Neue Paketbetreuer 22163 e Suggests Benutzen Sie dies f r Pakete die mit Ihrem Programm gut zusammenarbeiten aber absolut nicht notwendig sind Wenn ein Benutzer Ihr Programm installiert werden sie wahrscheinlich nicht gefragt ob die vorgeschlagenen Pakete auch installiert werden sollen aptitude kann so konfiguriert werden dass es vorgeschlagene Pakete zusammen mit Ihrem Paket installiert aber dies ist nicht die Voreinstellung dpkg und apt get ignorieren dieses Feld e Pre Depends Dies ist st rker als Depends Das Paket wird nicht installiert bevor die hier aufgelisteten Pakete fertig installiert und rich tig konfiguriert sind Benutzen Sie dies sehr sparsam und nur nachdem auf der Mailingliste debian devel lists debian org http lists debian org debian devel dar ber diskutiert wurde Lies Verwenden Sie es berhaupt nicht e Conflicts Das Paket wird nicht installiert bevor alle Pakete mit denen es kollidiert entfernt wurden Benutzen Sie dies wenn ihr Pro gramm berhaupt nicht l uft oder schwere Probleme verursacht solange ein bestimmtes Paket installiert ist e Breaks Wenn dieses Paket installiert ist werden alle aufgef hrten Pakete als besch digt markiert Normalerweise gibt ein Eintrag unter Breaks an dass er auf
64. en und neu einpacken Falls die Quellen Ihres Programms Inhalte enthalten die nicht den DFSG gen gen sollten Sie sie auch entpacken um solche Inhalte zu entfernen und mit einer ge nderten Version der Originalautoren die dfsg enh lt neu packen Als Beispiel verwende ich hier ein Programm namens gentoo einen GTK Dateimanager 7 Erstellen Sie ein Unterverzeichnis in Ihrem Home Verzeichnis namens debian oder deb oder irgendetwas das Sie passend finden beispielsweise w re in diesem Fall nur gentoo v llig in Ordnung Kopieren Sie das heruntergeladene Archiv dorthin und entpacken Sie es mit tar xzf gentoo 0 9 12 tar gz Vergewissern Sie sich dass es keine Warnmeldungen beim Entpacken gab nicht mal so genannte irrelevante da die Entpackwerkzeuge anderer Leute diese Anomalien ignorieren oder auch nicht ignorieren k nnten und sie daher beim Entpacken Probleme bekommen k nnten Ihre Shell Befehlszeile k nnte dann wie folgt aussehen mkdir gentoo cd gentoo wget http www example org gentoo 0 9 12 tar gz tar xvzf gentoo 0 9 12 tar gz ls F gentoo 0 9 12 gentoo 0 9 12 tar gz gt Machen Sie sich keine Sorge um das fehlende Makefile Sie k nnen den Befehl hello einfach mittels debhelper wie in Abschnitt 5 11 oder durch Ver nderung der Quellen der Originalautoren installieren indem Sie ein neues Makefile mit dem Ziel install wie in Kapitel 3 hinzuf gen 6 Sie k nnen das Archivformat herausfinden indem Si
65. ernativ kann dies auch zu jedem anderen von Ihnen gew nschten Zeitpunkt stattfinden Die Dateinamen lauten e Paket cron hourly Wird als etc cron hour ly Paket installiert Ausf hrung einmal pro Stunde e Paket cron daily Wird als etc cron daily Paket installiert Ausf hrung einmal pro Tag e Paket cron weekly Wird als etc cron weekly Paket installiert Ausf hrung einmal pro Woche 2 Lesen Sie dpkg 1 und das Debian Policy Manual D 2 5 Conffiles http www debian org doc debian policy ap pkg controlfields html s pkg f Conffiles Debian Leitfaden f r Neue Paketbetreuer 34163 e Paket cron monthly Wird als etc cron monthly Paket installiert Ausf hrung einmal pro Monat e Paket cron d Wirdals etc cron d Paket installiert Ausf hrung zu anderen Zeiten Die meisten dieser Dateien sind Shellskripte Die einzige Ausnahme stellt Paket cron d dar das im Format einer crontab 5 vorliegen muss Es wird keine dedizierte cron Datei f r das Rotieren der Protokolldateien ben tigt Daf r lesen Sie bitte dh_installlogrotate 1 und logrotate 8 5 5 dirs In dieser Datei werden alle Verzeichnisse festgelegt die wir brauchen die aber von der normalen Installationsprozedur make install DESTDIR aufgerufen von dh_auto_install aus irgendwelchen Gr nden nicht erstellt werden Dies bedeutet fast immer dass es ein Problem mit dem Makefile gibt F r Dateien die in der Datei install aufgelistet s
66. es binary die Regeln f r die Ziele build respektive binary aus Es folgt eine vereinfachte Erkl rungen der Ziele e clean Ziel L schen aller kompilierten erzeugten und nicht ben tigten Dateien im Bauverzeichnis erforderlich build Ziel Bauen der Quellen zu kompilierten Programmen und formatierten Dokumenten im Bauverzeichnis erforderlich e build arch Ziel Bauen der Quellen zu kompilierten architekturabh ngigen Programmen im Bauverzeichnis erforderlich e build indep Ziel Bauen der Quellen inarchitekturunabh ngige formatierten Dokumente im Bauverzeichnis erforderlich e install Ziel Installieren der Dateien in einen Verzeichnisbaum unterhalb des Verzeichnisses debian f r jedes Bin rpaket Falls sie festgelegt wurden h ngen binary Ziele effektiv von diesem Ziel ab optional e binary Ziel Erstellen aller Bin rpakete effektiv ist dies die Kombination der binar y arch und binary indep Ziele erforderlich e binary arch Ziel Erstellen Architektur abh ngiger Architecture any Bin rpakete im bergeordneten Verzeichnis erforderlich e binary indep Ziel Erstellen Architektur unabh ngiger Architecture all Bin rpakete im bergeordneten Verzeich nis erforderlich 15 e get orig source Ziel Herunterladen der neuesten Version des Quellpakets von dem Archiv der Originalautoren optio nal Sie sind jetzt wahrscheinlich berw ltigt aber nach der genaueren Betrachtung der Datei rules die uns dh_make als V
67. eses Paket enth lt einige Hilfsprogramme um mit Patches zu arbeiten beispielsweise die Befehle Isdiff interdiff und filterdiff 3 Es gibt auch einige spezialisierte aber hnliche Pakete wie dh make perl dh make php usw Debian Leitfaden f r Neue Paketbetreuer 4163 pbuilder Dieses Paket enth lt Programme um eine chroot Umgebung aufzubauen und zu betreuen Beim Bauen ei nes Debian Pakets in dieser chroot Umgebung wird gepr ft ob die Build Abh ngigkeiten stimmen wodurch FTBFS Fehler Fails To Build From Source kann nicht aus den Quellen gebaut werden verhindert werden siehe pbuilder 8 und pde build 1 perl Perl ist eine der am meisten gebrauchten interpretierten Skriptsprachen auf heutigen Unix hnlichen Systemen oft bezeichnet als Unix Schweizer Offizierskettens ge siehe perl 1 python Python ist eine weitere der am meisten gebrauchten interpretierten Skriptsprachen auf Debian Systemen die bemer kenswerte St rke mit einer sehr klaren Syntax kombiniert siehe python 1 quilt Dieses Paket hilft Ihnen dabei eine gro e Anzahl von Patches zu verwalten indem es die nderungen verfolgt die jeder Patch vornimmt Patches k nnen angewandt entfernt und erneuert werden sowie vieles mehr Lesen Sie quilt 1 und usr share doc quilt quilt pdf gz xutils dev Einige Programme blicherweise die f r X11 erstellten benutzen diese Programme zum Erzeugen von Makefile Dateien aus einer Gruppe vo
68. ev Viele neuere Programme benutzen configure Skripte und Makefile Dateien die mit Hilfe dieser Programme vorproduziert wurden siehe info autoconf info automake Das Paket autotools dev enth lt aktuelle Versionen von bestimmten auto Dateien sowie Informationen ber die beste Art und Weise diese Dateien zu verwenden e dh make und debhelper dh make wird ben tigt um eine Ger st unseres Beispielpakets zu erstellen Es verwendet einige der debhelper Werkzeuge f r die Paketerstellung Sie sind nicht zwingend erforderlich um Pakete zu erstellen aber f r neue Betreuer sehr empfohlen Sie vereinfachen den Einstieg in den ganzen Prozess sehr ebenso die sp tere Kontrolle siehe dh_make 8 debhelper 1 usr share doc debhelper README Das neue debmake kann als Alternative zum Standard dh make verwandt werden Es erledigt mehr und enth lt HTML Dokumentation mit ausf hrlichen Paketierungsbeispielen devscripts Dieses Paket enth lt einige n tzliche Skripte die f r die Betreuer hilfreich sein k nnen aber nicht zum Bauen der Pakete ben tigt werden Die von diesem Paket empfohlenen und vorgeschlagenen Pakete sind ebenfalls einen Blick wert siehe usr share doc devscripts README gz e fakeroot Dieses Hilfsprogramm erm glicht Ihnen die Identit t von root vorzut uschen was f r einige Teile des Build Prozesses ben tigt wird siehe fakeroot 1 e file Dieses n tzliche Programm kann den Typ einer Datei feststel
69. g prep standards html_node DESTDIR html DESTDIR 3 Bei einem Quellpaket das mehrere Bin rpakete erstellt verwendet der Befehl dh_auto_install das tempor re Verzeichnis debian tmp Der Befehl dh_install teilt dann den Inhalt von debian tmp mit Hilfe von debian Paket 1 install und debian Paket 2 install in die tempor ren Verzeichnisse debian Paket 1 und debian Paket 2 auf um daraus die Bin rpakete Paket 1_ deb und Paket 2_ deb zu erstellen Debian Leitfaden f r Neue Paketbetreuer 16 63 Benutzers installiert wenn dieser Ihr Paket installiert Der einzige Unterschied ist dass dpkg die Dateien relativ zum Wurzelver zeichnis statt zu Ihrem Arbeitsverzeichnis installieren wird Vergessen Sie nicht dass Ihr Programm zwar unter debian Paket installiert wird es sich aber trotzdem korrekt verhalten muss wenn es aus dem deb Paket unter dem Wurzelverzeichnis installiert wird Daher d rfen durch das Build System keine fest eingestellten Zeichenketten wie home ich deb Paket Version usr share Paket in Dateien im Paket geschrieben werden Dies ist der relevante Abschnitt aus dem Makefile von gentoo Where to put executable commands on make install BIN usr local bin Where to put icons on make install ICONS usr local share gentoo Sie sehen dass die Dateien unter usr local installiert werden sollen Wie oben erkl rt ist diese Verzeichnis Hierarchie unter Debian f r lokale Benutzung reserviert ndern Si
70. ganisationssystem Weitere Systeme sind u A dpatch dbs und cdbs Viele von diesen Systemen speichern solche Patches in debian patches Dateien ab 10 Falls Sie einen Sponsor darum bitten Ihr Paket hochzuladen ist diese Art der klaren Aufteilung und Dokumentation Ihrer nderungen sehr wichtig um die Durchsicht Ihres Pakets durch den Sponsor zu beschleunigen Debian Leitfaden f r Neue Paketbetreuer 42163 Kapitel 6 Bau des Pakets Nun sollten wir soweit sein das Paket zu bauen 6 1 Kompletter Neu Bau Um ein Paket ordnungsgem komplett neu zu bauen m ssen Sie Folgendes installiert haben Das Paket build essential e die im Feld Build Depends aufgelisteten Pakete siehe Abschnitt 4 1 und e die im Feld Build Depends Indep aufgelisteten Pakete siehe Abschnitt 4 1 Dann f hren Sie den folgenden Befehl im Quellverzeichnis des Programms aus dpkg buildpackage us uc Dies wird alles fiir Sie erledigen um vollst ndige Bin rpakete und Quellpakete zu erstellen Im Einzelnen e Aufr umen des Quellverzeichnisbaums debian rules cleanx Bauen des Quellpakets dpkg source bx Bauen des Programms debian rules build x Bauen der Bin rpakete fakeroot debian rules binaryx Erstellen der Datei dsc Erstellen der Datei changes mittels dpkg genchanges Falls das Ergebnis des Baus den Erwartungen entspricht signieren Sie die Dateien dsc und changes mit Ihrem privaten GPG Schl ssel
71. graphische Signatur des Tarballs bereitstellen wird empfohlen seine Authentizit t mittels der Option pgpsigurlmangle zu pr fen wie dies in uscan 1 beschrieben ist 5 23 source format In der Datei debian source format soll eine einzelne Zeile stehen in der das gew nschte Format f r das Quellpaket angegeben wird lesen Sie dpkg source 1 f r eine ausf hrliche Liste Nach Squeeze sollte dort entweder e 3 0 native f r native Debian Pakete oder e 3 0 quilt f r alles andere stehen Das neuere Quellformat 3 0 quilt zeichnet nderungen in einer Patchserie im Verzeichnis debian patches f r quilt auf Diese nderungen werden dann w hrend des Entpackens des Quellpakets automatisch angewendet Die Debian spezifischen nderungen werden einfach in einem Archiv namens debian tar gz gespeichert das alle Dateien im Verzeichnis debian enth lt Mit diesem neuen Format k nnen bin re Dateien wie PNG Icons vom Paketbetreuer eingebunden werden ohne Tricks anwenden zu m ssen Wenn dpkg source ein Quellpaket im Quellformat 3 0 quilt entpackt werden automatisch alle Patches angewendet die indebian patches series aufgef hrt sind Sie k nnen das Anwenden der Patches nach dem Entpacken verhindern indem Sie die Option skip patches benutzen 5 24 source local options Wenn Sie die Paketierungsarbeiten f r Debian in einem Versionskontrollsystem verwalten wollen erstellen Sie blicherweise ei nen Zweig z B Upstream in dem
72. gt werden und wie ihr jeweiliges Format aussieht Bitte lesen Sie das Debian Policy Manual http www debian org doc devel manuals policy und die Debian Entwicklerreferenz http www debian org doc devel manuals devref f r einen Leitfaden zum Paketieren Der Befehl dh_make erstellt einige Vorlagen f r Konfigurationsdateien im Verzeichnis debian Die meisten sind mit dem Suffix X versehen Andere haben den Namen des Bin rpakets als Pr fix wie beispielsweise Paket Schauen Sie sich alle an Der Befehl dh_make erstellt f r debhelper nicht alle Konfigurationsdateien Falls Sie diese ben tigen m ssen Sie sie mit einem Editor erstellen Falls Sie eine dieser Dateien verwenden m chten oder m ssen machen Sie bitte folgendes Benennen Sie die Vorlagedateien um indem Sie das Suffix ex oder EX entfernen falls vorhanden Benennen Sie die Konfigurationsdateien um so dass sie den tats chlichen Paketnamen anstatt Paket verwenden e Passen Sie die Inhalte der Vorlagedateien Ihren Bed rfnissen an L schen Sie Vorlagedateien die Sie nicht ben tigen e Passen Sie die Datei control an falls notwendig siehe Abschnitt 4 1 e Passen Sie die Datei rules an falls notwendig siehe Abschnitt 4 4 Alle debhelper Konfigurationsdateien ohne ein Paket Pr fix wie beispielsweise die Datei install beziehen sich auf das erste Bin rpaket Wenn es mehrere Bin rpakete gibt k nnen die jeweiligen Konfigurationen dadurch zugeordnet
73. h_auto_configure dh_auto_build dh_auto_test e fakeroot debian rules binary ruft fakeroot dh binary auf das wiederum das Folgende ausf hrt dh_testroot dh_prep dh_installdirs dh_auto_install dh_install dh_installdocs dh_installchangelogs dh_installexamples dh_installman dh_installcatalogs dh_installcron dh_installdebconf dh_installemacsen 16 Dies verwendet die neuen M glichkeiten von debhelper v7 Dessen Designkonzepte werden in Not Your Grandpa s Debhelper http joey kitenet net talks debhelper debhelper slides pdf erkl rt das auf der DebConf9 vom debhelper Betreuer pr sentiert wurde Unter Lenny erzeugte dh_make eine wesentlich kompliziertere Datei rules mit expliziten Regeln und vielen dh_ Skripten die f r jedes aufgef hrt wurden wobei die meisten jetzt unn tig sind und das Alter des Pakets zeigen Der neue dh Befehl ist einfacher und befreit uns von der manuellen Durchf hrung dieser Routinearbeit Sie haben mit den override_dh_ Zielen weiterhin die vollst ndige Kontrolle ber diesen Prozess mit den Zielen override_dh_ Siehe Abschnitt 4 4 3 Es basiert lediglich auf dem Paket debhelper und verschleiert den Prozess des Paketbaus nicht wie dies beim Paket cdbs sein kann 17 Sie k nnen berpr fen welche Sequenzen von dh_ Programmen f r ein bestimmtes Ziel tats chlich aufgerufen werden indem Sie dh no act Ziel oder debian rules no act Ziel ausf hren Dadurch werden die Seque
74. heben w hrend Sie die Debian Datei changelog mit dch aktualisieren e Wiederholen Sie die T tigkeiten aus Abschnitt 6 1 und Kapitel 7 1 Um das Datum in das ben tigte Format zu bekommen verwenden Sie LANG C date R Debian Leitfaden f r Neue Paketbetreuer 52 63 e Sobald Sie zufrieden sind sollten Sie den Wert der Distribution im changelog von UNRELEASED auf den Ziel Distributionswert unstable oder ggf experimental setzen Laden Sie Ihr Paket wie in Kapitel 9 beschrieben hoch Der Unterschied besteht darin dass Sie diesmal das urspr ngliche Quellarchiv nicht beif gen da es sich nicht ge ndert hat und im Debian Archiv bereits existiert Ein schwieriger Fall kann auftreten falls Sie ein lokales Paket erstellen um mit dem Paketieren zu experimentieren bevor Sie die normale Version in das offizielle Archiv hochladen z B 1 0 1 1 F r reibungslosere Upgrades ist es eine gute Idee einen changelog Eintrag mit einer Versionszeichenkette wie1 0 1 1 rc1 zu erstellen Sie k nnen changelog bereinigen indem Sie Ihre lokalen nderungseintr ge in einen einzigen Eintrag f r das offizielle Paket zusammenfassen Lesen Sie Abschnitt 2 6 f r die Reihenfolge von Versionszeichenketten 8 2 berpr fung einer neuen Version der Originalautoren Wenn Sie Pakete f r eine neue Ver ffentlichung der Originalautoren f r das Debian Archiv vorbereiten m ssen Sie zuerst die neue Ver ffentlichung der Originalautoren pr fen Begi
75. hlie en Sie diese Fehler indem Sie Closes Fehler_Nummer hinzuf gen Beschreiben Sie genau die nderungen an der neuen Ver ffentlichung der Originalautoren durch den Betreuer die berichtete Fehler schlie en und schlie en Sie diese Fehler indem Sie Closes Fehler_Nummer hinzuf gen e while dquilt push do dquilt refresh done um alle Patches anzuwenden und gleichzeitig fuzz Unsch rfe zu entfernen Falls das Patchen Zusammenf gen nicht reibungsfrei lief pr fen Sie die Situation Hinweise verbleiben in rej Dateien 2 Falls Sie den Befehl dch r zur Durchf hrung dieser letzten nderung verwenden stellen Sie sicher dass Sie die Datei changelog explizit im Editor speichern 3 Falls ein Paket FOO im alten Format 1 O paketiert ist kann dies stattdessen durch zcat Pfad nach foo_alte_Version diff gz pat ch p1 in der neuen entpackten Quelle durchgef hrt werden Debian Leitfaden f r Neue Paketbetreuer 53 63 Falls ein Patch den Sie an den Quellen angewandt hatten in die Quellen der Originalautoren integriert wurde f hren Sie dquilt delete aus um ihn zu entfernen e Falls ein Patch den Sie auf die Quellen anwandten mit den neuen nderungen in den Quellen der Originalautoren in Konflikt steht wenden Sie dquilt push f an um die alten Patches anzuwenden und R ckweisungen als baz rej zu erzwingen Bearbeiten Sie die Datei baz manuell um den geplanten Effekt von baz rej zu erreichen d
76. hlie id da e dc ee ee ee hr cla da 47 Debian Leitfaden f r Neue Paketbetreuer vi 7 berpr fen des Pakets auf Fehler Fl 7 2 Fe 7 4 pas 7 6 Et 7 8 Merkw rdige nderungen 22 2 corr na rn na an berpr fen einer Paketinstallation eeenn berpr fen der Betreuerskripte eines Pakets 22cm o meer NINE nennen as end aaa Dr ki wien Der Befehl gebe 2 2 20 AAA Bine ps EI te ca Der BeRRl A ee a en a a h aaa n a a ai Der Befehl intendi ociosos ar A e aia e a Der Berhlme 22 a aaea a ie han ba a N a E E E A 8 Aktualisieren des Pakets 8 1 8 2 8 3 8 4 8 5 8 6 Nene Debian Revision lt oso ua aan acnes a Do a ae berpr fung einer neuen Version der Originalautoren 22 o oo oe Neue Version der Originalautoren snara esae e Den Paketstil aktualisieren oo enc ione 0 e a na aa are UTRO paa ae nn A A end Erinnerungen f r die Paketaktualisierung 2 o 9 Das Paket hochladen gi 92 33 Indas Debian Archiy hochladen ceeace 2 4 cocos wen a Ben aa aan Die Datei orig Car UE hodiladen o iia an Ba a aaa an bersprungene Uploads A Fortgeschrittene Paketierung AJI Ad A 3 A A AS Laufzeit Bibliothek aaa 2 005 See aa a A a a e debian Paket symbols verwalten esso Con onen e 2 0 0 0 2 0 a a ee NN Erstellen eines Laufzeitbibliothekspakets 2 2 200m onen Natives DeblanPak a a a a 48 48 48 48 49 50 50 50 50
77. hweis bereit dass diese Dateien tats chlich von Ihnen sind Mit dem folgenden Eintrag in devscripts kann der Befehl debsign dazu veranlasst werden mit Ihrer angegeben geheimen Schl sselkennung zu unterzeichnen was gut f rs Spoonsern ist DEBSIGN_KEYID Ihre_GPG Schl sselkennung Die langen Zahlenreihen in den Dateien dsc und changes sind SHAVSHA256 Pr fsummen der aufgelisteten Dateien Jeder der Ihr Paket herunterl dt kann die enthaltenen Dateien mit shalsum 1 oder sha256sum 1 testen Wenn die Zahlen nicht bereinstimmen wei er die gepr fte Datei ist besch digt oder manipuliert 6 2 Autobuilder Debian unterst tzt viele Portierungen http www debian org ports mit dem Autobuilder Netz http www debian org devel buildd das buildd Daemons auf vielen verschiedenen Rechnerarchitekturen ausf hrt Obwohl Sie dies nicht selbst durchf hren m ssen sollte Ihnen bewusst sein was mit Ihren Paketen passiert Lassen Sie uns einen kurzen Blick darauf werfen wie Ihre Pakete vom Autobuilder Netz f r verschiedene Architekturen neu gebaut werden F r Pakete mit Architecture any f r das Autobuilder System eine Neu bersetzung durch Es stellt folgende Installatio nen sicher 2 Sie k nnen das Anwenden der quilt Patches im 3 0 quilt Quellformat am Ende des Auspackens verhindern indem Sie die Option skip patches benutzen Alternativ k nnen Sie dquilt pop a nach dem normalen Auspacken aufrufen 3 Das
78. ien Beachten Sie dass die Entwicklungspakete einen Symlink f r die zugeh rige Laufzeitbibliothek ohne eine Versionsnummer enthalten sollten Z B usr l1ib x86_64 1linux gnu libfoo so gt l1ibfoo so 1 A 4 Erstellen eines Laufzeitbibliothekspakets Sie k nnen ein Debian Laufzeitbibliothekspaket mit Unterst tzung von Multiarch mit dh 1 wie folgt bauen e debian control aktualisieren Build Depends debhelper gt 9 f r den Quellpaketabschnitt hinzuf gen Pre Depends misc Pre Depends f r jedes Laufzeitbibliothekspaket hinzuf gen F gen Sie den Multi Arch Absatz f r jeden Bin rpaketabschnitt hinzu e debian compat auf 9 setzen Passen Sie die Pfade vom normalen usr lib auf die Multiarch Variante usr 1ib DEB_HOST_MULTIARCH f r alle Paketierungsskripte an Zuerst DEB_HOST_MULTIARCH shell dpkg architecture qDEB_HOST_MULTIARCH in debian rules aufrufen um die Variable DEB_HOST_MULTIARCH zu setzen Ersetzen Sie in debian rules usr 1lib durch usr 1lib DEB_HOST_MULTIARCH 13 Alte Spezialbibliothekspfade wie 1ib32 und 1ib64 werden nicht mehr benutzt Debian Leitfaden f r Neue Paketbetreuer 62 63 Falls configure als Teil des Ziels override_dh_auto_configure in debian rules verwandt wird stellen Sie sicher dass Sie es durch dh_auto_configure ersetzen Ersetzen Sie in debian foo install Dateien alle Vorkommen von usr 1ib durch usr lib
79. iese Aufgabe praktisch sein Falls es Kollisionen gibt k mmern Sie sich um dieses echte Problem indem Sie die Datei umbenennen eine gemeinsame Datei in ein separates Paket verschieben von dem verschiedene Pa kete abh ngen k nnen in Absprache mit den Betreuern anderer betroffener Pakete den Alternatives Mechanismus nutzen siehe update alternatives 1 oder indem Sie eine Conflicts Beziehung in der Datei debian control festlegen 7 3 berpr fen der Betreuerskripte eines Pakets Alle Betreuerskripte das hei t die Dateien preinst prerm postinst und postrm sind schwer korrekt zu schreiben falls Sie nicht vom Programm debhelper automatisch erstellt werden Verwenden Sie sie daher als neuer Betreuer nicht siehe Abschnitt 5 19 Falls das Paket nicht triviale Betreuerskripte verwendet testen Sie nicht nur die Installation sondern auch das Entfernen das vollst ndige Entfernen und den Upgrade Prozess Viele Betreuerskriptfehler zeigen sich wenn Pakete entfernt oder endg ltig entfernt werden Verwenden Sie f r die Tests den Befehl dpkg wie folgt Debian Leitfaden f r Neue Paketbetreuer 49 63 sudo dpkg r gentoo sudo dpkg P gentoo sudo dpkg i gentoo _Version Revision_i386 deb Dies sollte in einem Ablauf wie dem Folgenden passieren Installieren Sie die vorhergehende Version falls notwendig e F hren Sie ein Upgrade von der vorhergehenden Version durch e f hren Sie ein Downgrade auf eine vorherige Version d
80. iese direkt hinter debhelper an Zeile 6 enth lt die Version des Debian Policy Manual http www debian org doc devel manuals policy dessen Standards dieses Paket entspricht also die Version die Sie gelesen haben w hrend Sie Ihr Paket erstellten In Zeile 7 k nnen Sie die URL der Homepage der Originalautoren der Software notieren Zeile 9 enth lt den Namen des Bin rpakets blicherweise ist dies der gleiche Name wie der des Quellpakets aber das muss nicht immer so sein Zeile 10 beschreibt die Architekturen f r die das bin re Paket kompiliert werden kann Dieser Wert ist normalerweise einer der folgenden abh ngig von der Art des bin ren Pakets e Architecture any Das erstellte Bin rpaket ist archiekturabh ngig typischerweise in einer kompilierten Sprache e Architecture all Das erstellte Bin rpaket ist architekturunabh ngig besteht typischerweise aus Text Bilder oder Skripten in einer interpre tierten Sprache Wir belassen Zeile 10 da es in C geschrieben ist dpkg gencontrol 1 wird den geeigneten Architekturwert f r jede Maschine auf der diese Quellen gebaut werden einf gen Falls Ihr Paket unabh ngig von der Architektur funktioniert beispielsweise ein Shell oder Perl Skript oder Dokumentation ndern Sie dies in al1 und lesen Sie sp ter unter Abschnitt 4 4 ber die Benutzung der Regelbinary indep statt binary arch f r den Bau des Pakets Zeile 11 zeigt eine der m chtigsten Eigensch
81. ind m ssen die Verzeichnisse nicht zuerst erstellt werden Siehe Abschnitt 5 11 Am besten ist es wenn Sie zun chst die Installation ausprobieren und diesen Mechanismus nur dann benutzen wenn es dabei Probleme gibt Es gibt keinen einleitenden Schr gstrich bei den Verzeichnisnamen die in der Datei dirs aufgef hrt sind 5 6 Paket doc base Hat Ihr Programm au er Handbuch und Info Seiten noch andere Dokumentation sollten Sie die Datei doc base benutzen um diese zu registrieren damit der Benutzer sie mit Programmen wie dhelp 1 dwww 1 oder doccentral 1 finden kann Das schlie t normalerweise HTML PS und PDF Dateien ein die sich in usr share doc Paketname befinden So sieht die doc base Datei gentoo doc base f r das Paket gentoo aus Document gentoo Title Gentoo Manual Author Emil Brink Abstract This manual describes what Gentoo is and how it can be used Section File Management Format HTML Index usr share doc gentoo html index html Files usr share doc gentoo html html Informationen ber das Format dieser Datei finden Sie in install docs 8 und der Debian Anleitung von doc base in der lokalen Kopie usr share doc doc base doc base html index html die vom Paket doc base bereitgestellt wird F r weitere Details ber das Installieren von zus tzlicher Dokumentation sehen Sie bitte in Abschnitt 3 3 nach 5 7 docs Diese Datei enth lt die Dateinamen der Dokumentationsdateien die dh_installdocs
82. it debian org p collab maint gentoo git 9 Homepage http www obsession se gentoo 10 11 Package gentoo 12 Architecture any 13 Depends shlibs Depends misc Depends 14 Suggests file 15 Description fully GUI configurable two pane X file manager 16 gentoo is a two pane file manager for the X Window System gentoo lets the 17 user do almost all of the configuration and customizing from within the 18 program itself If you still prefer to hand edit configuration files 19 they re fairly easy to work with since they are written in an XML format 20 21 gentoo features a fairly complex and powerful file identification system 22 coupled to an object oriented style system which together give you a lot 23 of control over how files of different types are displayed and acted upon 24 Additionally over a hundred pixmap images are available for use in file 25 type descriptions 26 29 gentoo was written from scratch in ANSI C and it utilizes the GTK toolkit 30 for its interface Die Zeilennummerierung habe ich hinzugef gt 4 2 copyright Diese Datei enth lt Informationen ber das Copyright und die Lizenz der Quellen der Originalautoren Debian Policy Manual Ka pitel 12 5 Copyright information http www debian org doc debian policy ch docs html s copyrightfile gibt den Inhalt vor und DEP 5 Machine parseable debian copyright http dep debian net deps dep5 bietet Hilfestellungen f r ihr Format 8 Die
83. itten der Debian Paketierung mit einfachen Paketen zu spielen w hrend diese Anleitung gelesen wird Ein trivialer Tarball der Originalautoren ist hello sh 1 0 tar gz der einen guten Startpunkt darstellt Er wird wie folgt erstellt mkdir p hello sh hello sh 1 0 cd hello sh hello sh 1 0 cat gt hello lt lt EOF bin sh C 2011 Foo Bar GPL2 echo Hello EOF chmod 755 hello cd tar cvzf hello sh 1 0 tar gz hello sh 1 0 2 3 Besorgen Sie sich das Programm und probieren Sie es aus Als Erstes missen Sie die Originalquellen des Programms finden und herunterladen Wahrscheinlich haben Sie bereits die Quellcode Datei von der Homepage des Autors Quellen freier Unix Programme sind blicherweise im Format tar gzip mit der Erweiterung tar gz im Format tar bzip2 mit der Erweiterung tar bz2 oder im Format tar xz mit der Erweiterung tar xZ Sie enthalten blicherweise ein Verzeichnis das Paket Version genannt ist sowie alle Quellcode Dateien darin Falls die neueste Version der Quellen ber Versionskontrollsysteme wie Git Subversion oder CVS verf gbar ist m ssen Sie sie mit git clone svn CO oder CSV CO herunterladen und dann selbst einen Tarball im Format tar gzip erstellen indem Sie die Option exclude vcs verwenden Kommt der Quellcode in einem anderen Archivtyp daher beispielsweise wenn der Dateiname auf Z oder zip endet sollten Sie ihn auch mit den geeigneten Werkzeugen entpack
84. k nnen Sie ein leeres Ziel namens override_dh_auto_test erstellen um dies zu bergehen override_dh_auto_test Wenn gentoo eine un bliche urspr ngliche Changelog Datei namens FIXES enth lt wird diese standardm ig von dh_installchangele nicht installiert Der Befehl dh_installchangelogs braucht den Namen FIXES als Argument um die Datei zu installieren 7 override_dh_installchangelogs dh_installchangelogs FIXES Wenn Sie den neuen dh Befehl benutzen wird es schwierig die genauen Effekte von expliziten Zielen wie den in Abschnitt 4 4 1 aufgelisteten zu verstehen Eine Ausnahme stellt get orig source dar Bitte beschr nken Sie daher soweit m glich explizite Ziele auf solche mit den Namen override_dh_ sowie vollst ndig davon unabh ngige 26 dh_auto_build ohne Argumente f hrt das erste Ziel in dem Makefile aus 27 Die Dateien debian changelog und debian NEWS werden immer automatisch installiert Das Changelog der Originalautoren wird gefunden indem die Dateinamen in Kleinbuchstaben umgewandelt werden und mit changelog changes changelog txt und changes txt verglichen werden Debian Leitfaden f r Neue Paketbetreuer 32 63 Kapitel 5 Andere Dateien im Verzeichnis debian Um kontrollieren zu k nnen was genau debhelper w hrend des Paketbauens durchf hrt erstellen Sie optionale Konfigurati onsdateien im Verzeichnis debian In diesem Kapitel finden Sie einen berblick dar ber wof r die einzelnen Dateien ben ti
85. keine Debian Revision e meinpaket_1 0_i386 deb Dies ist Ihr komplettes Bin rpaket wie in dem nicht nativen Debian Paket Es gibt keine Debian Revision e meinpaket_1 0_i386 changes Diese Datei beschreibt wie in dem nicht nativen Debian Paket alle nderungen die in der aktuellen Paketversion erfolgten Es gibt keine Debian Revision
86. kets auf Fehler Es gibt einige Techniken die Sie zum berpr fen eines Pakets auf Fehler vor dem Upload in das ffentliche Archiv wissen sollten Es empfiehlt sich auch das Testen auf einem von Ihrer Maschine verschiedenen Rechner auszufiihren Sie m ssen genau auf alle Warnungen und Fehler f r alle hier beschriebenen Tests achten 7 1 Merkw rdige nderungen Falls Sie nach dem Bau Ihres nicht nativen Debian Pakets im Format 3 0 quilt einen neuen automatisch erstellen Patch wie debian changes im Verzeichnis debian patches finden besteht die M glichkeit dass Sie Dateien versehentlich ge ndert haben oder das Bauskript die Quellen der Originalautoren ver ndert hat Falls es Ihr Fehler ist korrigieren Sie ihn Falls er vom Bauskript ausgel st wurde korrigieren Sie das dahinterliegende Problem mit dh autoreconf wie in Abschnitt 4 4 3 oder umgehen Sie das Problem mit source options wie in Abschnitt 5 25 7 2 berpr fen einer Paketinstallation Sie m ssen berpr fen ob Ihr Paket ohne Probleme installiert werden kann Der Befehl debi 1 hilft Ihnen bei der Testinstallation aller erstellten Bin rpakete sudo debi gentoo_0 9 12 1_i386 changes Um Installationsprobleme auf verschiedenen Systemen zu vermeiden m ssen Sie sicherstellen dass es keine Dateinamenskon flikte mit anderen existierenden Paketen gibt wobei Sie die vom Debian Archiv heruntergeladene Datei Contents 1386 ver wenden Der Befehl apt file kann f r d
87. len Sie haben sich wahrscheinlich schon ein Paket ausgesucht das Sie erstellen wollen Zuerst m ssen Sie berpr fen ob das Paket bereits in der Distribution existiert indem Sie das Folgende benutzen e den Befehl aptitude e die Webseite Debian Pakete http www debian org distrib packages e die Webseite Debian Package Tracking System http packages qa debian org common index html Wenn es das Paket schon gibt na dann installieren Sie es Falls es verwaist orphaned wurde wenn als Betreuer Debian QA Group http qa debian org eingetragen ist dann k nnen Sie es bernehmen wenn es noch verf gbar ist Sie k nnen auch ein Paket adoptieren dessen Betreuer einen Request for Adoption RFA geschrieben hat 3 Es gibt mehrere Ressourcen zur Paketeigent merschaft Der Befehl wnpp alert aus dem Paket devscripts Arbeit bed rfende und voraussichtliche Pakete http www debian org devel wnpp Debian Fehlerdatenbank Protokolle Fehler im Pseudo Paket wnpp in unstable http bugs debian org wnpp Debian Pakete die Aufmerksamkeit ben tigen http wnpp debian net Durchsuchen Sie basierend auf Debtags die wnpp Fehler http wnpp by tags debian net Als wichtige Randbemerkung sei darauf hingewiesen dass Debian bereits f r fast alle Arten von Programmen Pakete enth lt und die Anzahl der Pakete im Debian Archiv wesentlich gr er ist als die der Mitwirkenden mit Berechtigung zum Hochladen Daher we
88. len siehe file 1 gfortran Der GNU Fortran 95 Compiler wird ben tigt wenn Ihr Programm in Fortran geschrieben ist siehe gfortran 1 e git Dieses Paket stellt ein beliebtes Versionskontrollsystem zur Verf gung das daf r entworfen wurde bei sehr gro en Pro jekten schnell und effizient zu arbeiten Es wird in vielen hoch angesehenen Open Source Projekten eingesetzt beispielsweise beim Linux Kernel siehe git 1 Git Handbuch usr share doc git doc index htm e gnupg Ein Werkzeug mit dem Sie Pakete digital unterschreiben k nnen Dies ist besonders wichtig wenn Sie das Paket an andere Leute verteilen wollen und das werden Sie sicher wenn Ihre Arbeit in die Debian Distribution aufgenommen wird siehe gpg 1 gpc Der GNU Pascal Compiler wird ben tigt wenn Ihr Programm in Pascal geschrieben ist Erw hnenswert ist an dieser Stelle der Free Pascal Compiler fp compiler der sich daf r ebenfalls gut eignet siehe gpc 1 ppc386 1 e lintian Das ist Debians Paket Pr fer der Sie nach der Paketerstellung ber h ufige Fehler informiert und die gefundenen Fehler erkl rt siehe lintian 1 Lintians Benutzerhandbuch usr share doc lintian lintian html index htm e patch Ein sehr n tzliches Programm das eine Datei mit einer Auflistung der Unterschiede im Dateiinhalt erstellt mit dem Programm diff auf die urspr ngliche Datei anwendet und daraus die neue Version erzeugt siehe patch 1 e patchutils Di
89. lerreferenz http www debian org doc devel manuals devref beschreibt alle Dinge die nicht speziell die technischen Details der Paketerstellung betreffen beispielsweise die Struktur des Archivs wie man Pakete umbenennt aufgibt adoptiert NMUs durchf hrt Fehler verwaltet gute Pakete erstellt wie und wo man ins Archiv hochl dt usw lesen Sie die lokale Kopie usr share doc developers reference developers reference pdf Das Folgende sind wichtige Dokumente die Sie neben diesem Dokument auch lesen sollten Das Autotools Tutorial http www Irde epita fr adl autotools html ist eine sehr gute Einf hrung f r das GNU Build System das als GNU Autotools bekannt ist Die wichtigsten Komponenten sind Autoconf Automake Libtool und Gettext gnu standards Dieses Paket enth lt zwei Teile der Dokumentation des GNU Projekts die GNU Coding Standards http www gnu org prep standards html_node index html und Informationen f r Betreuer von GNU Software http www gnu org prep maintain html_node index html Obwohl Debian nicht verlangt dass diese befolgt werden sind sie trotzdem hilfreich als Richtlinie und sinnvoll lesen Sie die lokalen Kopien von usr share doc gnu standards standards pdf gz und usr share doc gnu standards maintain pdf gz Falls dieses Dokument einem der oben erw hnten Dokumente widerspricht dann haben diese Recht Bitte schreiben Sie einen Fehlerbericht zu dem Paket maint guide Das Folgende ist eine alterna
90. malerweise f r neue Pakete sinnvoll die mit anderen Paketen kollidieren die eine andere Priorit t als extra besitzen Bereich und Priorit t werden von Oberfl chen wie aptitude benutzt um Pakete zu sortieren und Standardparameter auszuw hlen Wenn Sie das Paket f r Debian hochladen k nnen die Werte dieser beiden Felder von den Archivbetreuern berschrieben werden Sie erhalten dann eine Nachricht dar ber per E Mail Da es sich um ein Paket mit normaler Priorit t handelt und es nichts anderes st rt ndern wir die Priorit t auf optional Zeile 4 ist der Name und die E Mail Adresse des Betreuers Sie m ssen sicherstellen dass dieses Feld eine g ltige To Kopfzeile f r eine E Mail enth lt weil nach dem Hochladen die Fehlerdatenbank diesen Eintrag nutzt um die Fehler E Mails an Sie zuzu stellen Benutzen Sie keine Kommata kaufm nnische Und Zeichen amp oder Klammern Zeile 5 enth lt die Liste der Pakete die zum Bauen des Pakets ben tigt werden im Feld Build Depends Sie k nnen hier ebenso das Feld Build Depends Indep in einer zus tzlichen Zeile benutzen Einige Pakete wie gcc und make werden impliziert weil sie vom Paket build essential ben tigt werden Falls Sie andere Werkzeuge zum Bauen Ihres Pakets brauchen m ssen Sie sie zu diesen Feldern hinzuf gen Mehrere Eintr ge werden durch Kommata getrennt mehr ber die Syntax dieser Zeilen finden Sie in den Erl uterungen der bin ren Paketabh ngigkeiten
91. mand daran arbeitet schreiben Sie mit reportbug einen ITP Fehlerbericht Intent To Package Absicht das Paket zu erstellen an das wnpp Pseudopaket Wenn schon jemand an dem Paket arbeitet nehmen Sie mit ihm Verbindung auf wenn es n tig ist Andernfalls finden Sie bestimmt ein anderes interessantes Paket das von niemandem betreut wird 3 Lesen Sie die Debian Entwicklerreferenz 5 9 5 Adoption eines Pakets http www debian org doc manuals developers reference pkgs html adopting 4 Trotzdem gibt es nat rlich immer neue Programme die es wert sind f r Debian paketiert zu werden Debian Leitfaden f r Neue Paketbetreuer 8 63 Die Software muss eine Lizenz haben F r den Bereich main verlangen die Debian Richtlinien dass es die Debian Richtlinien f r Freie Software komplett erf llt DFSG http www debian org social_contract guidelines und kein Paket au erhalb von main ben tigt um zu kompilieren oder ausgef hrt zu werden Dies ist der erw nschte Fall F r den Bereich contr ib muss es zu den DFSG konform sein darf aber ein Paket au erhalb von main f r die Kompilierung oder Ausf hrung erfordern F r den Bereich non free darf es gegen Punkte der DFSG versto en es muss aber verteilbar sein Sind Sie nicht sicher wohin das Paket geh rt schicken Sie den Lizenztext an debian legal lists debian org http lists debian org debian legal und bitten um Rat Das Programm sollte keine
92. meiden da sie problematisch sind F r wei tere Informationen lesen Sie in dem Debian Policy Manual Kapitel 6 Package maintainer scripts and installation procedure http www debian org doc debian policy ch maintainerscripts html und sehen Sie sich die Beispieldateien an die von dh_make erstellt wurden Falls Sie nicht auf mich geh rt haben und eigene Betreuerskripte f r ein Paket erstellt haben m ssen Sie sicherstellen dass Sie sie nicht nur f r den Aufruf mit install und upgrade getestet haben sondern auch f r remove und purge Upgrades auf die neue Version sollen ohne R ckfragen geschehen und keine St rungen oder Unterbrechungen zur Folge haben Benutzer die das Paket verwenden sollen nicht bemerken dass ein Upgrade durchgef hrt wurde Sie sollen nur feststellen dass alte Fehler behoben wurden und das Paket eventuell neue F higkeiten hat Wenn das Upgrade nicht ohne St rung ablaufen kann beispielsweise weil Konfigurationsdateien ber verschiedene Home Verzeichnisse verteilt sind die einen vollkommen anderen Aufbau haben k nnen Sie als letzte M glichkeit f r das Paket eine sichere Voreinstellung w hlen beispielsweise den Service deaktivieren und die von den Richtlinien verlangte ausf hrliche In formation README Debian und NEWS Debian bereitstellen Bel stigen Sie den Benutzer nicht mit debconf Hinweisen die von den Betreuerskripten bei Upgrades angezeigt werden Das Paket ucf stellt eine hnliche Infras
93. mit dem Befehl debsign Sie m ssen Ihre geheime Passphrase zweimal eingeben F r nicht native Debian Pakete z B gentoo werden Sie die folgenden Dateien im bergeordneten Verzeichnis gentoo nach dem Paketbau sehen 1 Dieser GPG Schl ssel muss von einem Debian Entwickler unterschrieben worden sein um mit dem Vertrauensnetz verbunden zu sein und muss im Debian Schl sselring http keyring debian org registriert sein Dies erm glicht es dass Ihre hochgeladenen Pakete im Debian Archiv akzeptiert werden Lesen Sie Creating a new GPG key http keyring debian org creating key html und Debian Wiki on Keysigning http wiki debian org Keysigning Debian Leitfaden f r Neue Paketbetreuer 431 63 e gentoo_0 9 12 orig tar gz Dies ist der urspr ngliche Quelltext Tarball der Originalautoren lediglich umbenannt um dem Debian Standard zu gen gen Beachten Sie dass diese Umbenennung beim initialen Aufruf von dh_make f gentoo 0 9 12 tar gz erfolgt ist e gentoo_0 9 12 1 dsc Dies ist eine Zusammenfassung des Inhalts des Quellcode Pakets Diese Datei wird aus Ihrer Datei control erzeugt und f r das Entpacken des Quellcodes mittels dpkg source 1 ben tigt e gentoo_0 9 12 1 debian tar gz Dieser komprimierte Tarball enth lt die Dateien aus Ihrem debian Verzeichnis Jede einzelne nderung die Sie am urspr ng lichen Code vorgenommen haben wird als quilt Patch in debian patches gespeichert Wenn jemand Ihr Pake
94. n Makro Funktionen siehe imake 1 xmkmf 1 Die kurzen Erkl rungen oben dienen nur dazu Ihnen eine Einf hrung in die verschiedenen Pakete zu geben Bevor Sie weiter machen lesen Sie bitte die Dokumentation jedes relevanten Programms auch die die als Abh ngigkeiten installiert wurden wie make zumindest was die normale Arbeitsweise angeht Das mag Ihnen am Anfang berfl ssig vorkommen aber schon bald werden Sie sehr froh dar ber sein sich schon vorher informiert zu haben Falls Sie sp ter gezielte Fragen haben wird empfohlen die oben erw hnten Dokumente erneut zu lesen 1 3 Dokumentation die zum Entwickeln gebraucht wird Das Folgende sind sehr wichtige Dokumente die Sie neben diesem Dokument auch lesen sollten debian policy Das Debian Policy Manual http www debian org doc devel manuals policy Debian Richtlinien Handbuch beinhalten Beschreibungen der Struktur und des Inhalts des Debian Archivs mehrere Besonderheiten des Betriebssystemde signs den Filesystem Hierarchy Standard http www debian org doc packaging manuals fhs fhs 2 3 html der beschreibt wo jede Datei und jedes Verzeichnis sein sollte usw Das Wichtigste fiir Sie ist dass sie die Anforderungen beschreiben die ein Paket erf llen muss um in die Distribution aufgenommen zu werden lesen Sie die lokalen Kopien usr share doc debian policy policy pdf gz und usr share doc debian policy fhs fhs 2 3 pdf gz developers reference Die Debian Entwick
95. n behalten wollen oder nicht dh_installdeb 1 markiert automatisch alle Dateien im Verzeichnis etc als conffiles Wenn Ihr Programm also nur dort Konfigurationsdateien besitzt m ssen Sie sie nicht in dieser Datei auflisten Bei den meisten Paketarten sollte der einzige Ort an dem sich jemals Conffiles befinden etc sein und daher muss diese Datei nicht existieren Falls Ihr Programm Konfigurationsdateien nutzt diese aber auch selbst bearbeitet ist es das Beste diese nicht als Conffiles zu kennzeichnen weil sonst dpkg den Benutzer jedes Mal auffordert nderungen zu best tigen Falls es f r das Programm das Sie paketieren erforderlich ist dass jeder Benutzer die Konfigurationsdateien im Verzeichnis etc anpassen muss gibt es zwei popul re Arten es so einzurichten dass sie keine Conffiles sind um dpkg ruhig zu stellen Erstellen Sie einen symbolischen Link im Verzeichnis etc der auf eine Datei im Verzeichnis var zeigt Dieser kann von den Betreuerskripten erzeugt werden Erstellen Sie eine Datei die von den Betreuerskripten im Verzeichnis etc erzeugt wird F r weitere Informationen ber die Betreuerskripte lesen Sie Abschnitt 5 19 5 4 Paket CrOn Falls Ihr Paket immer wiederkehrende Aufgaben erledigen muss um korrekt zu arbeiten k nnen Sie diese Dateien benutzen um das einzurichten Sie k nnen regelm ige Aufgaben erstellen die st ndlich t glich w chentlich oder monatlich ausgef hrt werden Alt
96. n org Multiarch Implementation Debian Situation Es verwendet ein Triplet wie 1386 1inux gnu und x86_64 1linux gnu f r den Installationspfad der Laufzeitbibliothe ken Der tats chliche Triplett Pfad wird durch dpkg architecture 1 f r jeden Bau dynamisch in DEB_HOST_MULTIARCH gesetzt Beispielsweise werden die Pfade zu Multiarch Bibliotheken wie folgt ge ndert Alter Pfad 1386 Multiarch Pfad Amd64 Multiarch Pfad 1ib 11b 1386 linux gnu 11b x86_64 linux gnu usr lib usr 1lib i386 linux gnu usr lib x86_64 linux gnu Es gibt einige typische Beispiele fiir Multiarch Paketaufteilungsszenarien eine Bibliotheksquelle libfoo 1 tar gz eine in einer bersetzten Sprache geschriebene Werkzeugquelle bar 1 tar gz eine in einer interpretierten Sprache geschriebene Werkzeugquelle baz 1 tar gz Paket Architecture Multi Arch Paketinhalt libfoo1 any same die Laufzeitbibliothek koinstallierbar libfoo1 dbg any same die Debug Symbole der Laufzeitbibliothek koinstallierbar libfoo dev any same die Laufzeitbibliothek Header Dateien usw koinstallierbar libfoo tools any foreign die Laufzeitunterst tzungsprogramme nicht koinstallierbar libfoo doc all foreign die Dokumentationsdateien der Laufzeitbibliothek bar any foreign die bersetzten Programmdateien nicht koinstallierbar bar doc all foreign die Dokumentationsdateien f r das Programm baz all foreign die interpretierten Programmdate
97. ndbuchseiten werden blicherweise in nroff 1 geschrieben Das Beispiel manpage 1 ex ist auch in nroff geschrieben In der Handbuchseite von man 7 finden Sie eine kurze Erkl rung wie solche Dateien bearbeitet werden k nnen Der endg ltige Name der Handbuchseite sollte den Namen des Programms das dokumentiert wird angeben Deshalb ndern wir den Namen von manpage nach gentoo Der Dateiname muss auch eine 1 als erstes Suffix erhalten was bedeutet dass es sich um eine Handbuchseite f r einen Benutzerbefehl handelt Vergewissern Sie sich dass dieser Abschnitt tats chlich richtig ist Hier ist eine kurze Liste der Abschnitte f r Handbuchseiten Abschnitt Beschreibung Hinweise 1 Dienstprogramme f r Benutzer Ausf hrbare Befehle oder Skripte 2 Systemaufrufe Vom Kernel bereitgestellte Funktionen 3 Bibliotheksfunktionen Funktionen innerhalb Systembibliotheken 4 Besondere Dateien Normalerweise innerhalb von dev 5 Dateiformate Z B Format von etc passwd 6 Spiele Spiele oder andere belanglose Programme 7 Makropakete Wie man Makros 8 Systemadministration Programme die typischerweise nur von Root ausgef hrt werden 9 Kernelroutinen Nicht standardisierte Aufrufe und Interna Also bekommt gentoos Handbuchseite den Namen gentoo 1 Falls es in den urspr nglichen Quellen keine Handbuchseite namens gentoo 1 gibt m ssen Sie diese erstellen indem Sie die Vorlage manpage 1 ex ingentoo 1 um
98. ne auf das Paket quilt zur ckzugreifen wird keine Build Depends f r quilt ben tigt Der Befehl quilt wird in der Handbuchseite von quilt 1 erkl rt Er zeichnet nderungen an den Quellen als Stapel von p1 Patch Dateien im Verzeichnis debian patches auf dadurch bleibt der Quelltextbaum au erhalb des debian Verzeichnisses unangetastet Die Reihenfolge der Patches wird in der Datei debian patches series gespeichert Sie k nnen die Patches leicht anwenden push entfernen pop und aktualisieren F r den Abschnitt Kapitel 3 haben wir drei Patches in debian patches erstellt Da die Debian Patches in debian patches enthalten sind stellen Sie bitte sicher dass der Befehl dquilt korrekt eingerichtet ist so wie in Abschnitt 3 1 beschrieben Wenn sp ter jemand Sie selbst eingeschlossen einen Patch namens foo patch f r die Quellen erstellt ist die Ver nderung eines 3 0 quilt Quellpakets recht einfach dpkg source x gentoo_0 9 12 dsc cd gentoo 0 9 12 dquilt import foo patch dquilt push dquilt refresh dquilt header e Patch beschreiben 100 Die Patches die in dem neuen Quellformat 3 0 quilt gespeichert werden miissen frei von Ungenauigkeiten fuzz sein Sie k nnen dies mit dquilt pop a while dquilt push do dquilt refresh done sicherstellen 9 Es wurden verschiedene Methoden f r die Organisation der Patches in Debian Paketen vorgeschlagen und auch angewendet Das quilt System ist das bevor zugteste Or
99. nen 14 Woman Hilfe bekommen kani gt s o sipoo conoser ar a ea n ni 2 Erste Schritte 2 1 Arbeitsschritte beim Bau von Debian Paketen 2 2 non n oe 22 Ihi Programin w hlen A 2 3 Besorgen Sie sich das Programm und probieren Sie es aus Come 24 Eintache Bansysteme o cca 844 ocn Des na Den ae ea a a 25 Beliebte portable Bausystee once ad da DC a 25 Name m Versi n des Pakels 2 aaa aa aaa aa A RA 2 7 Einrichten von dh make ce saasaa wa a a a a a a na hun 2 8 Das erste nicht native Debian Paket ern 3 Den Quellcode ver ndern gt EMPERO ee na a a AR A A re da 3 2 Fehler in den urspr nglichen Quellen korrigieren onen 3 3 Installation von Dateien in ihr Zielverzeichnis 3A Unterschiedliche Bibliotheken oscars ra a RR E BA 4 Ben tigte Dateien im Verzeichnis debian AL Control soci rs 42 COpyright ecccics sc 43 changelog cesos 44 FOR osos ee 4 4 1 ZielederDateirules 4 4 2 Die vorgegebene Datei rules 4 4 3 Anpassungen der Datei rules 10 10 11 12 12 14 14 14 15 17 Debian Leitfaden f r Neue Paketbetreuer v 5 Andere Dateien im Verzeichnis debian 32 Bl RESOME Debian coc ei 2 na a a nn ra ie 32 GE BONDSE u a ee a a a a a o de e ae A 33 Da TONTTLLOS sorei mire ea A ee ea a a a 33 DA Pakot Cron en e Eu a a a ea na 33 Be MUS ie e EA EA e a a as ea 34 56 Pakets cuina a an A a a AA ei 34
100. nktioniert und nichts anderes w hrend der Installation oder der Ausf hrung kaputt macht Meistens k nnen Sie au erdem make clean oder besser make distclean ausf hren um im Build Verzeichnis auf zur umen Manchmal gibt es sogar ein make uninstall womit alle installierten Dateien gel scht werden k nnen 2 5 Beliebte portable Bausysteme Viele freie Software Programme sind in den Sprachen C oder C geschrieben Die meisten von ihnen verwenden Autotools oder CMake um auf verschiedene Plattformen portierbar zu sein Diese Bauwerkzeuge m ssen zuerst benutzt werden um das Makefile und andere ben tigte Quelldateien zu erzeugen Anschlie end werden solche Programme mit dem blichen make make install gebaut Autotools ist das GNU Buildsystem das aus Autoconf Automake Libtool und gettext besteht Sie erkennen solche Quellen an den Dateien configure ac Makefile am und Makefile in Der erste Schritt im Arbeitsablauf der Autotools ist blicherweise dass der urspr ngliche Autor autoreconf i f im Quellenverzeichnis aufruft und die Quellen dann mit den erzeugten Dateien verteilt configure ac gt autoreconf gt configure Makefile am gt Makefile in src Makefile am gt src Makefile in gt config h in automake aclocal aclocal m4 autoheader Das Bearbeiten der Dateien configure ac und Makef ile am erfordert etwas Wissen ber autoconf und automake Siehe info autoconf
101. nnen Sie damit dass Sie changelog NEWS und welche andere Dokumentation mit der neuen Version ver ffentlicht wurde lesen Sie k nnen dann nderungen zwischen den alten und den neuen Quellen der Originalautoren wie folgt pr fen und dabei nach allem Verd chtigem Ausschau halten diff urN foo alteVersion foo neueVersion nderungen durch Autotools an einigen automatisch erstellten Dateien wie missing aclocal m4 config guess config h in config sub configure depcomp install sh 1tmain sh und Makefile in k nnen ignoriert werden Sie k nnen sie vor der Ausf hrung von diff in den Quellen f r die Pr fung l schen 8 3 Neue Version der Originalautoren Falls ein Paket Foo korrekt im neueren Format 3 0 native oder3 0 quilt paketiert ist besteht das Paketieren einer neuen Version der Originalautoren im wesentlichen im Verschieben des alten Verzeichnisses debian in die neuen Quellen Dies kann durch Ausf hrung von tar xvzf Pfad zu foo_alteversion debian tar gz in den entpackten Quellen passieren Nat rlich m ssen Sie einige offensichtliche Hausaufgaben machen Erstellen Sie eine Kopie der Quellen der Originalautoren als foo_neueVersion orig tar gz Datei e Aktualisieren Sie die Debian Datei changelog mit dch v neueversion 1 Fiigen Sie einen Eintrag mit New upstream release hinzu Beschreiben Sie genau die nderungen in der neuen Ver ffentlichung der Originalautoren die berichtete Fehler schlie en und sc
102. ntieren k nnen hier kommen keine nderungen des Originalautors hinein f r diese Zwecke gibt es eine spezielle Datei die von den Originalautoren erstellt wurde und die Sie sp ter als usr share doc gentoo changelog gz installieren werden Wir nehmen an dass die Nummer Ihres ITP Fehlerberichts Intent To Package Absicht ein Paket zu erstellen 12345 lautet Neue Zeilen werden direkt unter der obersten Zeile die mit einem Stern beginnt eingef gt Sie k nnen das mit dch 1 oder per Hand mit einem Texteditor erledigen Um zu verhindern dass ein Paket versehentlich hochgeladen wird bevor es fertig ist empfiehlt es sich den Distributionswert auf den ung ltigen Ausdruck UNRELEASED zu setzen Schlie lich kommen Sie zu einer Datei wie dieser hier 1 gentoo 0 9 12 1 UNRELEASED urgency low 2 3 Initial Release Closes 12345 4 This is my first Debian package 5 Adjusted the Makefile to fix DESTDIR problems 6 7 Josip Rodin lt joy mg debian org gt Mon 22 Mar 2010 00 37 31 0100 8 Die Zeilennummerierung habe ich hinzugef gt Sobald Sie mit allen nderungen zufrieden und sie im changelog dokumentiert haben sollten Sie den Wert der Distribution von UNRELEASED auf den Ziel Distributionswert unstable oder sogar experimental ndern 1 Sie k nnen sp ter mehr ber Aktualisierungen der Datei changelog in Kapitel 8 lesen 4 4 rules Wir werfen nun einen Blick auf die genauen Regeln die
103. nzen nicht ausgef hrt 18 Im folgenden Beispiel wird angenommen dass debian compat einen Wert gleich oder gr er als 9 hat um die Python Unterst tzungsbefehle automa tisch aufzurufen Debian Leitfaden f r Neue Paketbetreuer 28 63 dh_installifupdown dh_installinfo dh_installinit dh_installmenu dh_installmime dh_installmodules dh_installlogcheck dh_installlogrotate dh_installpam dh_installppp dh_installudev dh_installwm dh_installxfonts dh_bugfiles dh_lintian dh_gconf dh_icons dh_perl dh_usrlocal dh_link dh_compress dh_fixperms dh_strip dh_makeshlibs dh_shlibdeps dh_installdeb dh_gencontrol dh_md5sums dh_builddeb e fakeroot debian rules binary arch ruft fakeroot dh binary arch auf das wiederum dieselbe Se quenz ausf hrt wie fakeroot dh binary allerdings wird an jeden Befehl die Option a angeh ngt e fakeroot debian rules binary indep ruft fakeroot dh binary indep auf das wiederum fast die selbe Sequenz ausf hrt wie fakeroot dh binary allerdings wird an jeden Befehl die Option i angeh ngt und die Befehle dh_strip dh_makeshlibs und dh_shlibdeps weggelassen Die Funktion der Befehle dh_ sind gr tenteils aus ihren Namen selbsterkl rend Es gibt einige bemerkenswerte f r die es Sinn ergibt hier unter der Annahme einer typischen Bauumgebung basierend auf einem Makefile eine stark vereinfachte Erl uterung bereitzustellen e dh_auto_clean f hrt normalerwei
104. ochladen dupload gentoo_0 9 12 1_i386 changes dupload pr ft ob die SHA1 SHA256 Dateipr fsummen zu denen in der Datei changes aufgef hrten passen Falls Sie nicht passen wird es Sie warnen dass sie wie in Abschnitt 6 1 beschrieben erneut bauen m ssen so dass es korrekt hochgeladen werden kann Falls Sie auf ein Problem beim Hochladen in ftp ftp upload debian org pub UploadQueue sto en k nnen Sie dies durch ma nuelles Hochladen einer GPG unterschriebenen Datei commands mit ftp korrigieren Beispielsweise mit der hello commands BEGIN PGP SIGNED MESSAGE Hash SHA1 Uploader Foo Bar lt Foo Bar example org gt Commands 1 Siehe Abschnitt 1 1 2 Es gibt ffentlich erreichbare Archive wie http mentors debian net die genauso wie das Debian Archiv funktionieren und einen Upload Bereich f r nicht DDs bereitstellen Sie k nnen ein quivalentes Archiv selbst erstellen indem Sie die unter http wiki debian org HowToSetupADebianRepository aufgef hrten Werkzeuge verwenden Daher ist dieser Abschnitt auch f r nicht DDs n tzlich 3 Das Paket dput scheint mehr Funktionalit ten zu enthalten und beliebter als das Paket dupload zu werden Es verwendet die Datei etc dput f r seine globale Konfiguration und die Datei dput cf f r die benutzerspezifische Konfiguration Es unterst tzt auch standardm ig Ubuntu bezogene Dienste 4 Siehe Debian Entwicklerreferenz 5 6 Ein Paket hochladen http www d
105. orgabe erstellt hat wird alles viel einfacher werden 4 4 2 Die vorgegebene Datei rules Neuere Versionen von dh_make erzeugen als Vorgabe eine sehr einfache doch m chtige Datei rules indem sie den Befehl dh verwenden E usr bin make f See debhelper 7 uncomment to enable output every command that modifies files on the build system DH_VERBOSE 1 see EXAMPLES in dpkg buildflags 1 and read usr share dpkg DPKG_EXPORT_BUILDFLAGS 1 include usr share dpkg default mk OO NO UI PWMN see FEATURE AREAS in dpkg buildflags 1 11 export DEB_BUILD_MAINT_OPTIONS hardening all 13 see ENVIRONMENT in dpkg buildflags 1 14 package maintainers to append CFLAGS 15 export DEB_CFLAGS_MAINT_APPEND Wall pedantic 16 package maintainers to append LDFLAGS 12 Debian Policy Manual Kapitel 4 9 Main building script debian rules http www debian org doc debian policy ch source html s debianrules erkl rt die Details 13 Dieses Ziel wird von dpkg buildpackage wie in Abschnitt 6 1 beschrieben benutzt 14 Dieses Ziel wird von dpkg buildpackage B wie in Abschnitt 6 2 beschrieben benutzt 15 Dieses Ziel wird von dpkg buildpackage A benutzt Debian Leitfaden f r Neue Paketbetreuer 27163 17 export DEB_LDFLAGS_MAINT_APPEND Wl as needed 18 19 main packaging script based on dh7 syntax 20 21 dh 0 Die Zeilennummerierung habe ich hinzugef gt und auch einige Kommentare
106. ort deaktiviert Hiermit werden Python Module mit dem Rahmenwerk python central bearbeitet e Unterst tzung f r den Befehl dh_installtex hinzuf gen Aufnahme des Pakets tex common in Build Depends Verwenden Sie stattdessen dh with tex 0 Hiermit werden Type 1 Schriften Muster f r Silbentrennung und Formate f r TeX registriert e Unterst tzung f r die Befehle dh_quilt_patch und dh_quilt_unpatch hinzuf gen 22 Tats chlich wird nach dem ersten verf gbaren Ziel aus der Liste test oder check in dem Makefile gesucht und dieses ausgef hrt 23 Falls ein Paket die Datei usr share per15 Debian Debhelper Sequence Eigener_Name pm installiert k nnen Sie dessen angepasste Funktion mittels dh with Eigener Name aktivieren 24 Die Benutzung des Befehls dh_python2 wird gegen ber den Befehlen dh_pysupport oder dh_pycentral bevorzugt Verwenden Sie nicht den Befehl dh_python Debian Leitfaden f r Neue Paketbetreuer 30 63 Aufnahme des Pakets quilt in Build Depends Verwenden Sie stattdessen dh 0 with quilt Hiermit werden f r ein Quellpaket im Format 1 0 aus Dateien im Verzeichnis debian patches Patches auf die ur spr nglichen Quellen angewendet und auch wieder r ckg ngig gemacht Dies wird nicht ben tigt falls Sie das neue Quellpaketformat 3 0 quilt benutzen e Unterst tzung f r den Befehl dh_dkms hinzuf gen Aufnahme des Pakets dkms in Build Depends Ve
107. quilt refresh um den Patch zu aktualisieren e Fahren Sie mit while dquilt push do dquilt refresh done wie gewohnt fort Dieser Prozess kann mit dem Befehl uupdate 1 wie folgt automatisiert werden apt get source foo dpkg source info foo wird nach foo AlteVersion extrahiert dpkg source info foo_AlteVersion orig tar gz wird entpackt dpkg source info foo_AlteVersion 1 debian tar gz wird angewandt ls F foo AlteVersion foo_AlteVersion 1 debian tar gz foo_AlteVersion 1 dsc foo_AlteVersion orig tar gz wget http example org foo foo NeueVersion tar gz cd foo AlteVersion uupdate v NeueVersion foo NeueVersion tar gz cd foo NeueVersion while dquilt push do dquilt refresh done dch nderungen dokumentieren MONA ANA Falls Sie eine wie in Abschnitt 5 22 beschriebene Datei debian watch eingerichtet haben k nen Sie den Befehl wget ber springen Sie f hren einfach uscan 1 in dem Verzeichnis Foo alteVersion statt des Befehls uupdate aus Damit wird auto matisch nach den aktualisierten Quellen geschaut sie heruntergeladen und der Befehl uupdate ausgef hrt Sie k nnen diese aktualisierten Quellen ver ffentlichen in dem Sie die Schritte aus Abschnitt 6 1 Kapitel 7 und Kapitel 9 wie derholen 8 4 Den Paketstil aktualisieren Die Aktualisierung des Paketierungsstils ist keine notwendige Aktivit t beim Aktualisieren eines Pakets Allerdings erlaubt dies Ihnen die gesamten M glichkeiten des modernen
108. r debian libfoo1 symbols paketiert worden war erstellen Sie sie als Datei symbols von allen verf gbaren Bin rpaketen des selben Laufzeitbibliotheknamens der den gleichen SONAME der Bibliothek enth lt beispielsweise Version 1 1 1 und 1 2 1 3 Siehe Debian Policy Manual Kapitel 8 1 Run time shared libraries http www debian org doc debian policy ch sharedlibs html s sharedlibs runtime 4 Siehe Debian Policy Manual Kapitel 8 1 1 Idconfig http www debian org doc debian policy ch sharedlibs html s Idconfig 5 Siehe Debian Policy Manual Kapitel 8 3 Static libraries http www debian org doc debian policy ch sharedlibs html s sharedlibs static und Debian Policy Manual Kapitel 8 4 Development files http www debian org doc debian policy ch sharedlibs html s sharedlibs dev 6 Siehe Debian wiki ReleaseGoals LAFileRemoval http wiki debian org ReleaseGoals LAFileRemoval 7 Siehe Debian Wiki Rpathlssue http wiki debian org Rpathlssue 8 R ckw rts inkompatible ABI nderungen verlangen normalerweise von Ihnen dass Sie den SONAME der Bibliothek und des Laufzeitbibliothekspakets auf den neuen ndern 9 F r C Bibliotheken und anderen F llen bei denen das Nachverfolgen individueller Symbole zu schwierig ist folgen Sie stattdessen dem Debian Policy Manual Kapitel 8 6 4 The shlibs system http www debian org doc debian policy ch sharedlibs html s sharedlibs shlibdeps 10 Alle vorhergehenden Versionen eines P
109. r entfernte Dateien 7 7 Der Befehl interdiff Sie k nnen zwei diff gz Dateien mit dem Befehl interdiff 1 vergleichen Dies ist zur berpr fung dass keine unbeabsich tigten nderungen beim Aktualisieren von Paketen im alten 1 0 Quellformat durch den Betreuer an den Quellen vorgenommen wurden n tzlich interdiff z altes Paket diff gz neues Paket diff gz Das neue Quellformat 3 O speichert nderungen in mehreren Patch Dateien wie in Abschnitt 5 26 beschrieben Sie k nnen die nderungen jeder debian patches Datei auch mit interdiff nachverfolgen 7 8 Der Befehl mc Viele dieser Datei berpr fungsoperationen k nnen in einen intuitiven Prozess mit einem Dateimanager wie mc 1 verwandelt werden Er erm glicht es Ihnen nicht nur die Inhalte eines deb Pakets anzuschauen sondern auch die von udeb debian tar gz diff gzund orig tar gz Dateien Schauen Sie nach zus tzlichen nicht ben tigten Dateien oder solche der L nge 0 sowohl im bin ren als auch im Quellpaket Oft werden Programm Reste nicht korrekt bereinigt passen Sie Ihre Datei rules an um dies zu erm glichen Debian Leitfaden f r Neue Paketbetreuer 51 63 Kapitel 8 Aktualisieren des Pakets Nachdem Sie ein Paket ver ffentlichen werden Sie es bald aktualisieren m ssen 8 1 Neue Debian Revision Nehmen wir an dass ein Fehlerbericht f r Ihr Paket unter 654321 eingereicht wurde und er ein Problem beschreibt das Sie l sen k nnen
110. rchitekturunabh ngige Pakete oder mehrere Bi n rpakete verwandt werden kann Das Paket cdbs bietet eine alternative Paketierungs Skriptinfrastruktur zum Befehl dh und wird in diesem Dokument nicht behandelt Debian Leitfaden f r Neue Paketbetreuer 13 63 Bitte beachten Sie zwei entscheidende Merkmale in dem Dateinamen gentoo_0 9 12 orig tar gz Paketname und Version sind durch das Zeichen _ Unterstrich getrennt e Die Zeichenkette orig wurde vor dem tar gz eingef gt Beachten Sie au erdem dass viele Schablonendateien im Quellverzeichnis im Unterverzeichnis debian erstellt werden Diese werden in Kapitel 4 und Kapitel 5 erkl rt Weiterhin sollte Ihnen klar sein dass das Paketieren kein vollautomatischer Prozess sein kann Sie m ssen die urspr nglichen Quellen f r Debian ver ndern siehe Kapitel 3 Danach m ssen Sie die geeigneten Methoden f r den Bau des Debian Paketes verwenden Kapitel 6 sie testen Kapitel 7 und hochladen Kapitel 9 Alle diese Schritte werden erl utert Wenn Sie versehentlich einige der Schablonendateien gel scht haben w hrend Sie sie bearbeitet haben k nnen Sie diese wie derherstellen indem Sie erneut dh_make mit der Option addmissing in einem Debian Quellverzeichnis aufrufen Das Aktualisieren eines existierenden Pakets kann kompliziert werden weil es eventuell ltere Techniken verwendet W hrend Sie die Grundlagen lernen bleiben Sie bei der Erstellung eines neuen Pakets
111. rden Beitr ge zu Paketen die bereits im Archiv enthalten sind von anderen Entwicklern wesentlich mehr gew rdigt und haben bessere Chancen gesponsert zu werden Sie k nnen auf verschiedene Arten beitragen Pakete bernehmen die verwaist wurden aber aktiv benutzt werden e Mitglied in einem Paketierungs Team http wiki debian org Teams werden Fehler von sehr beliebten Paketen sortieren und bewerten Vorbereiten von QA oder NMU Uploads http www debian org doc developers reference pkgs html nmu ga upload Wenn Sie ein Paket bernehmen m chten laden Sie sich das Quell Paket herunter z B mit apt get source Paketname und nehmen Sie es unter die Lupe Leider enth lt dieses Dokument keine umfassende Anleitung zum bernehmen von Paketen Der Vorteil ist dass schon jemand das Paket f r Sie vorbereitet hat und Sie keine Schwierigkeiten haben sollten herauszufinden wie das Paket funktioniert Doch lesen Sie weiter denn viele der folgenden Ratschl ge werden auch f r Sie n tzlich sein Falls das Paket neu ist und Sie es gern in Debian integrieren m chten gehen Sie wie folgt vor e Zuerst sollten Sie sicher sein dass das Programm funktioniert und es bereits einige Zeit ausprobiert haben damit Sie die N tzlichkeit best tigen k nnen e berpr fen Sie auf der Site Arbeit bed rfende und voraussichtliche Pakete http www debian org devel wnpp dass nie mand bereits an diesem Paket arbeitet Falls noch nie
112. rwenden Sie stattdessen dh with dkms Hiermit wird die korrekte Verwendung von DKMS durch die Kernelmodul Pakete sichergestellt Unterst tzung f r die Befehle dh_autotools dev_updateconfig und dh_autotools dev_restoreconfig hinzuf gen Aufnahme des Pakets autotools dev in Build Depends Verwenden Sie stattdessen dh with autotools dev Hiermit werden die Dateien config sub und config guess aktualisiert und wiederhergestellt e Unterst tzung f r den Befehle dh_autoreconf und dh_autoreconf_clean hinzuf gen Aufnahme des Pakets dh autoreconf in Build Depends Verwenden Sie stattdessen dh with autoreconf Hiermit werden die Dateien des GNU Bausystems aktualisiert und nach dem Bau wiederhergestellt Unterst tzung f r den Befehl dh_girepository hinzuf gen Aufnahme des Pakets gobject introspection in Build Depends Verwenden Sie stattdessen dh with gir Das berechnet Abh ngigkeiten f r Pakete die GObject Introspektionsdaten ausliefern und erstellt die Ersetzungsvariable gir Depends f r die Paketabh ngigkeiten e Unterst tzung f r die Vervollst ndigung in der bash hinzuf gen Aufnahme des Pakets bash completion in Build Depends Verwenden Sie stattdessen dh with bash completion Hiermit wird die Vervollst ndigung durch bash unter Verwendung einer Konfigurationsdatei indebian Paket bash complet installiert Viele
113. s gentoo files 5 6 Copyright 1998 2010 Emil Brink lt emil obsession se gt 7 License GPL 2 8 9 Files icons 10 Copyright 1998 Johan Hanson lt johan tiq com gt 11 License GPL 2 13 Files debian 14 Copyright 1998 2010 Josip Rodin lt joy mg debian org gt 15 License GPL 2 16 17 License GPL 2 18 This program is free software you can redistribute it and or modify 19 it under the terms of the GNU General Public License as published by 20 the Free Software Foundation either version 2 of the License or 21 at your option any later version 22 23 This program is distributed in the hope that it will be useful 24 but WITHOUT ANY WARRANTY without even the implied warranty of 25 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the 26 GNU General Public License for more details ZT 28 You should have received a copy of the GNU General Public License along 29 with this program if not write to the Free Software Foundation Inc 30 51 Franklin Street Fifth Floor Boston MA 02110 1301 USA Sl 32 On Debian systems the full text of the GNU General Public 33 License version 2 can be found in the file 34 usr share common licenses GPL 2 Die Zeilennummerierung habe ich hinzugef gt Bitte befolgen Sie das HOWTO das von den FTP Masters zur Verf gung gestellt wird und an debian devel announce geschickt wurde http lists debian org debian devel announce 2006 03 msg00023 html 4
114. se Beschreibungen sind auf Englisch bersetzungen dieser Beschreibungen werden durch das Debian Description Translation Project DDTP http www debian org intl 110n ddtp bereitgestellt 9 Lesen Sie Debian Entwicklerreferenz 6 2 5 Ort des Versionsverwaltungssystems http www debian org doc manuals developers reference best pkging practices html bpp vcs Debian Leitfaden f r Neue Paketbetreuer 24163 Dh_make kann eine Vorlage f r die Datei copyright erzeugen Verwenden Sie hier die Option copyright gp12 um eine Vorlage f r das Paket gentoo zu erhalten das unter GPL 2 ver ffentlicht wurde Sie m ssen hier fehlende Informationen eintragen um die Datei zu vervollst ndigen beispielsweise die Quelle von der Sie das Paket bezogen haben die tats chlichen Copyright Vermerke und die Lizenz Bei den verbreiteten Lizenzen von freier Software GNU GPL 1 GNU GPL 2 GNU GPL 3 LGPL 2 LGPL 2 1 LGPL 3 GNU FDL 1 2 GNU FDL 1 3 Apache 2 0 oder der Artistic license k nnen Sie auf die entsprechende Datei im Verzeichnis usr share common licenses verweisen das auf jedem Debian System existiert Anderenfalls m ssen Sie die vollst ndige Lizenz einf gen Zusammengefasst sollte die Datei copyright von gentoo so aussehen 1 Format Specification http svn debian org wsvn dep web deps dep5 mdwn op file amp rev 135 2 Name gentoo 3 Maintainer Josip Rodin lt joy mg debian org gt 4 Source http sourceforge net project
115. se das Folgende aus wenn ein Makefile existiert und das Ziel distclean enth lt make distclean e dh_auto_configure f hrt normalerweise das Folgende aus wenn die Datei configure existiert Argumente zur besseren Lesbarkeit abgek rzt configure prefix usr sysconfdir etc localstatedir var e dh_auto_build f hrt normalerweise das Folgende aus um das erste Ziel des Makefiles auszuf hren falls dieses existiert make 19 F r die komplette Information dar ber was die ganzen dh_ Skripte genau durchf hren und wie ihre Optionen lauten lesen Sie bitte deren Handbuchseiten und die Dokumentation von debhelper 20 Diese Befehle unterst tzen andere Bauumgebungen wie setup py die durch Ausf hren von dh_auto_build 1list in einem Paketbauverzeichnis aufgelistet werden k nnen 21 Tats chlich wird nach dem ersten verf gbaren Ziel aus der Liste distclean realclean oder clean in dem Makefile gesucht und dieses ausgef hrt Debian Leitfaden f r Neue Paketbetreuer 29 63 e dh_auto_test f hrt normalerweise das Folgende aus falls ein Makefile mit dem Ziel test existiert 2 make test e dh_auto_install f hrt normalerweise das Folgende aus falls ein Makefile mit dem Ziel install existiert Zeile zur bes seren Lesbarkeit umgebrochen make install DESTDIR Pfad zum Paket_Version Revision debian Paket Alle Ziele die den Befehl fakeroot erfordern werden dh_testroot enthalten Falls Sie nicht diesen Befehl ben
116. t von Grund auf neu bauen will kann er daf r einfach die drei oben genannten Dateien verwenden Das Verfahren des Auspackens ist trivial Kopieren Sie einfach die drei Dateien in ein Verzeichnis und f hren Sie dpkg source x gentoo_0 9 12 1 dsc aus e gentoo_0 9 12 1_i386 deb Das ist Ihr fertiges Bin rpaket Sie k nnen es mit dpkg installieren und wieder entfernen wie jedes andere Paket auch e gentoo_0 9 12 1_i386 changes Diese Datei beschreibt alle nderungen in dieser Paket Revision Die Verwaltungsprogramme f r Debians FTP Archive ben ti gen diese Datei zur Installation der Bin r und Quellcodepakete im FTP Archiv Sie wird zum Teil aus den Dateien changelog und dsc erzeugt Wenn Sie weiter an dem Paket arbeiten wird sich sein Verhalten ndern und neue Funktionen werden hinzugef gt Leute die Ihr Paket herunterladen k nnen sich diese Datei ansehen und feststellen was sich ge ndert hat Die Verwaltungsprogram me f r das Debian Archiv werden den Inhalt dieser Datei auch an die Mailingliste debian devel changes lists debian org http lists debian org debian devel changes schicken Die Dateien gentoo_0 9 12 1 dsc und gentoo_0 9 12 1_i386 changes m ssen unter Verwendung des Befehls debsign mit Ihrem privaten GPG Schl ssel der sich im Verzeichnis gnupg befindet signiert werden bevor sie zum Debian FTP Archiv hochgeladen werden Die GPG Signatur stellt unter Verwendung Ihres ffentlichen GPG Schl ssels den Nac
117. tats chliche Autobuilder System besteht aus einem wesentlich komplizierteren Schema als dem hier dargestellten Diese Details f hren aber hier zu weit Debian Leitfaden f r Neue Paketbetreuer 44163 e des Pakets build essential und e der Pakete die im Feld Build Depends siehe Abschnitt 4 1 aufgef hrt sind Dann f hrt es den folgenden Befehl im Quellverzeichnis aus dpkg buildpackage B Hiermit wird alles erledigt um ein architekturabh ngiges Bin rpaket f r eine andere Architektur zu erstellen Im Einzelnen Aufr umen des Quellverzeichnisbaums debian rules cleanx e Bauen des Programms debian rules build e Bauen der architekturabh ngigen Bin rpakete fakeroot debian rules binary arch e Unterschreiben der dsc Quelldatei mit gpg Erstellen und Unterschreiben der f r das Hochladen notwendigen changes Datei mit dpkg genchanges und gpg Das ist der Grund weshalb Sie Ihr Paket auch f r andere Architekturen sehen Obwohl Pakete die im Feld Build Depends Indep aufgef hrt sind installiert sein m ssen wenn wir das Paket bauen siehe Abschnitt 6 1 m ssen diese auf dem Autobuilder System nicht installiert sein weil es nur architekturabh ngige Bin rpakete baut Diese Unterscheidung zwischen dem normalen Bau und der Situation bei dem Autobuilder Ablauf entscheidet dar ber ob Sie solche erforderlichen Pakete im Feld Build Depends oder Build Depends Indep der Datei debian control auflisten si
118. teien iconv f latin1 t utf8 foo_in txt gt foo_out txt e Verwenden Sie w3m 1 zur Umwandlung von HTML Dateien in reine UTF 8 Textdateien Stellen Sie dabei sicher dass sie es unter einer UTF 8 Locale ausf hren LC_ALL en_US UTF 8 w3m o display_charset UTF 8 cols 70 dump no graph T text html lt foo_in html gt foo_out txt 8 6 Erinnerungen f r die Paketaktualisierung Es folgen ein paar Erinnerungen f r die Aktualisierung von Paketen Erhalten Sie alte Eintr ge im changelog klingt offensichtlich aber es gab F llen in denen dch eingegeben wurde wenn dch i h tte verwandt werden sollen Existierende Debian nderungen m ssen neu gepr ft werden schmei en Sie Zeug weg das die Originalautoren eingebaut haben in einer oder der anderen Form und denken Sie daran Zeug zu behalten das noch nicht eingebaut wurde falls es nicht doch berzeugende Gr nde f r die Entfernung gibt Falls nderungen am Bausystem vorgenommen wurden hoffentlich wissen Sie es bei der Pr fung der nderungen der Origi nalautoren aktualisieren Sie debian rules und die Bauabh ngigkeiten in debian control falls notwendig 6 Sie k nnen gross diff in viele kleine inkrementelle Patches mit dem Befehl splitdiff zerteilen Debian Leitfaden f r Neue Paketbetreuer 55 63 e Pr fen Sie die Fehlerdatenbank BTS http www debian org Bugs ob jemand Patches f r derzeit offene Fehler bereitgestellt hat e Pr fen Sie den Inh
119. tellten Bin rpaket der Laufzeitbibliothek Secder dpkg deb R libfoo1_1 3_amd64 deb libfoo1 tmp sed e s 1 3 1 1 3 libfoo1 tmp DEBIAN symbols gt libfoo 1 3 debian libfoo1 symbols Bauen Sie mit Werkzeugen wie debuild und pdebuild Ver ffentlichungspakete cd libfoo 1 3 debuild clean debuild Zus tzlich zu den obigen Beispielen m ssen wir die ABI Kompatibilit t weiter pr fen und die Versionen f r einige Symbole wo notwendig erh hen Obwohl es nur eine nachrangige Referenz ist k nnte Debian wiki UsingSymbolsFiles http wiki debian org UsingSymbolsFiles und die darin verlinkten Webseiten hilfreich sein A 3 Multiarch Die Multiarch Funktionalit t die mit Debian Wheezy eingef hrt wurde unterst tzt die architektur bergreifende Installation von Bin rpaketen insbesondere 1386 lt gt amd64 aber auch andere Kombinationen in dpkg und apt Sie sollten die folgenden Referenzen im Detail lesen H Die Debian Revision wird von der Version entfernt um das R ckportieren eines Paketes zu erleichtern 1 3 lt lt 1 3 1 bpo70 1 lt lt 1 3 1 12 Siehe Debian Policy Manual Kapitel 8 6 2 Shared library ABI changes http www debian org doc debian policy ch sharedlibs html s sharedlibs updates Debian Leitfaden f r Neue Paketbetreuer 61 63 e Ubuntu wiki MultiarchSpec https wiki ubuntu com MultiarchSpec Originalautoren Debian wiki Multiarch Implementation http wiki debia
120. tent sein als auch flei ig und sorgf ltig arbeiten Falls Sie Hilfe beim Erstellen des Pakets brauchen lesen Sie bitte Abschnitt 1 4 Neuere Versionen dieses Dokuments sollten immer online ber http www debian org doc maint guide und in dem Paket maint guide zu finden sein Die bersetzungen sind in Paketen wie beispielsweise maint guide es verf gbar Bitte beachten Sie dass diese Dokumentation etwas veraltet sein kann Da dies eine Anleitung ist wird bei wichtigen Themen jeder Schritt im Detail erkl rt Teile davon m gen Ihnen irrelevant vor kommen Haben Sie Geduld Einige seltene F lle werden bersprungen und stattdessen werden nur Verweise geliefert um dieses Dokument nicht zu kompliziert werden zu lassen 1 1 Soziale Dynamik von Debian Es folgen einige Beobachtungen ber Debians soziale Dynamik Die Darstellung ist mit der Hoffnung verbunden dass es Sie f r Ihre Arbeit mit Debian vorbereiten wird e Wir sind alle Freiwillige Sie k nnen anderen nicht vorgeben was getan werden soll Sie sollten sich selbst f r Ihre T tigkeit motivieren 1 In diesem Dokument wird davon ausgegangen dass Sie ein Jessie System oder ein neueres System verwenden Wenn Sie diesen Text auf einem lteren System auch einem lteren Ubuntu System o lesen m ssen Sie mindestens die zur ckportierten Pakete dpkg und debhelper installieren Sie k nnen aus der Debian Referenz http www debian org doc manuals debian r
121. tive Anleitung die Sie zusammen mit diesem Dokument auch lesen k nnen Debian Paketier Anleitung http www debian org doc packaging manuals packaging tutorial packaging tutorial Debian Leitfaden f r Neue Paketbetreuer 5 63 1 4 Wo man Hilfe bekommen kann Bevor Sie sich entschlie en Ihre Frage an einer ffentlichen Stelle zu stellen lesen Sie bitte die gute Dokumentation e Dateien in usr share doc Paket f r alle einschl gigen Pakete e Inhalte von man Befehl f r alle einschl gigen Pakete e Inhalte von info Befehl f r alle einschl gigen Pakete e Inhalte des Mailinglistenarchivs von debian mentors lists debian org http lists debian org debian mentors Inhalte des Mailinglistenarchivs von debian devel lists debian org http lists debian org debian devel Sie k nnen Websuchmaschinen effizienter benutzen indem Sie bei dem Suchausdruck Angaben wie site lists debian org um den Suchbereich einzuschr nken verwenden Das Erstellen eines kleinen Testpakets ist ein guter Weg um die Details der Paketerstellung zu lernen Das Untersuchen von existierenden gut betreuten Paketen ist die beste Art zu lernen wie andere Leute Pakete machen Falls Sie immer noch Fragen ber das Paketieren haben f r die Sie keine Antworten in der verf gbaren Dokumentation und den Web Ressourcen finden konnten k nnen Sie diese interaktiv stellen debian mentors lists debian org Mailingliste http lists debian org debian mentors
122. truktur wie f r Dateien zur Verf gung die als Conffile gekennzeichnet wurden Damit bleiben von Benutzern durchgef hrte nderungen an Dateien erhalten auch wenn diese Dateien nicht als Conffiles gekennzeich net werden k nnen Beispiele hierf r sind Dateien die von den Betreuerskripten verwaltet werden Hierdurch sollen Probleme in der Behandlung dieser Dateien minimiert werden Diese Betreuerskripte geh ren zu den Errungenschaften von Debian die erkl ren warum jemand Debian verwendet Sie m s sen sehr darauf achten diese Skripte zu einem Grund f r rger werden zu lassen 5 20 Paket symbols Paketierung einer Bibliothek ist f r einen neuen Betreuer nicht leicht und sollte vermieden werden Hat Ihr Paket allerdings Bibliotheken dann sollten Sie eine Datei debian Paket symbols haben Lesen Sie Abschnitt A 2 5 21 TODO Der Befehl dh_installdocs 1 installiert diese Datei 5 22 watch Das Format der Datei watch ist in der Handbuchseite von uscan 1 dokumentiert Die Datei watch konfiguriert das Programm uscan aus dem Paket devscripts um die Seite zu berwachen von der Sie die Originalquellen bezogen haben Dies wird au erdem von dem Dienst Debian External Health Status DEHS http wiki debian org DEHS benutzt Hier sind seine Inhalte Trotz der hier verwendeten Abk rzungssyntax pre post inst rm von bash um die Dateinamen zu bezeichnen sollten Sie reine POSIX Syntax f r diese Betreuerskripte verwenden
123. uerinformationen f r das Quellcode Paket Zeilen 9 13 sind die Steuerinformationen f r das Bin rpaket Zeile 1 ist der Name des Quellcode Pakets Zeile 2 bestimmt den Bereich der Distribution in die das Quellcode Paket geh rt Sie haben bestimmt schon gemerkt dass das Debian Archiv in mehrere Bereiche aufgeteilt ist main freie Software non free nicht wirklich freie Software und contrib freie Software die von non free Software abh ngt Jeder davon ist in Abschnitte eingeteilt die die Pakete in grobe Kategorien sortieren Dementsprechend gibt es admin f r Programme f r Administratoren de vel f r Programmierwerkzeuge doc f r Dokumentation 1ibs f r Programmbibliotheken mail f r E Mail Leseprogramme 1 In diesem Kapitel werden zur Vereinfachung Dateien im Verzeichnis debian ohne das einleitende debian referenziert wann immer die Bedeutung eindeutig ist Debian Leitfaden f r Neue Paketbetreuer 20 63 und Daemons net f r Netzwerk Anwendungen und Daemons X11 f r X11 Programme die nirgendwo anders unterkommen und viele mehr Ver ndern Sie den Bereich also zu x11 das Pr fix main wird impliziert also k nnen wir es weglassen Zeile 3 beschreibt wie wichtig es ist dass der Benutzer das Paket installiert e Die Priorit t optional ist normalerweise f r neue Pakete sinnvoll die nicht mit anderen Paketen der Priorit ten required important oder standard kollidieren Die Priorit t extra ist nor
124. urch optional e entfernen Sie es vollst ndig e Installieren Sie das neue Paket Entfernen Sie es Installieren Sie es wieder e entfernen Sie es vollst ndig Falls dies Ihr erstes Paket ist sollten Sie ein Pseudo Paket mit einer anderen Version erstellen um Ihr Paket vorab zu testen und zuk nftige Probleme zu vermeiden Behalten Sie im Hinterkopf dass die Benutzer ein Upgrade von der Version die in der letzten Debian Ver ffentlichung enthalten war durchf hren werden falls es schon mal ver ffentlicht wurde Denken Sie daran auch Upgrades von dieser Version zu pr fen Obwohl ein Downgrade offiziell nicht unterst tzt wird ist es eine nette Geste dies dennoch zu unterst tzen 7 4 lintian verwenden F hren Sie lintian 1 mit Ihrer Datei changes aus Der Befehl lintian f hrt viele Skripte aus um auf typische Paketierungs fehler zu pr fen lintian i I show overrides gentoo_0 9 12 1_i386 changes Selbstverst ndlich m ssen Sie den Dateinamen mit dem Namen der Datei changes die f r Ihr Paket erstellt wurde ersetzen Die Ausgabe des Befehls lintian verwendet die folgenden Schalter e E f r Fehler eine definitive Verletzung der Richtlinien oder ein Paketierungsfehler e W f r Warnungen eine m gliche Verletzung der Richtlinien oder ein m glicher Paketierungsfehler I f r Information Informationen ber bestimmte Aspekte der Paketierung e N f r Hinweis eine detaillierte Meldung um bei der
125. urspr nglichen Tarballs als gentoo_8 9 12 orig tar gz im ber geordneten Verzeichnis um sp ter die Erstellung eines nicht nativen Debian Quellpakets mit dem Namen debian tar gz zu erm glichen cd gentoo 1s F gentoo 0 9 12 gentoo 0 9 12 tar gz gentoo_0 9 12 orig tar gz 16 Der folgende Text setzt voraus dass Sie Bash als Ihre Login Shell benutzen Falls Sie eine andere Login Shell wie beispielsweise die Z Shell verwenden benutzen Sie die entsprechenden Konfigurationsdateien statt bashrc 17 Wenn die originalen Quellen das Verzeichnis debian und seinen Inhalt enthalten rufen Sie den Befehl dh_make mit der zus tzlichen Option addmi ssing auf Das neue Quellformat 3 0 quilt ist robust genug selbst mit solchen Paketen umzugehen Sie m ssen wahrscheinlich die vom Originalautor bereitgestellten Inhalte f r Ihr Debian Paket aktualisieren 18 Es gibt hier mehrere Auswahlm glichkeiten s f r Single binary package einzelnes Bin rpaket i f r Arch Independent package Architektur unabh ngiges Paket m f r Multiple binary packages mehrere Bin rpakete 1 f r Library package Bibliothekspaket k f r Kernel module packa ge Kernelmodulpaket n f r Kernel patch package Kernelpatch Paket und b f r cdbs Pakete Dieses Dokument konzentriert sich auf den Befehl dh aus dem Paket debhelper um ein einzelnes Bin rpaket zu erstellen aber zeigt auch auf wie es f r a
126. utzen um vorzu geben root zu sein wird er mit einer Fehlermeldung beendet Das Wichtigste was Sie ber die Datei rules wissen m ssen die von dh_make erzeugt wurde ist dass sie lediglich ein Vorschlag ist Sie funktioniert f r die meisten Pakete aber f r etwas kompliziertere Pakete sollten Sie sich nicht scheuen sie f r Ihre Zwecke anzupassen Obwohl install kein erforderliches Ziel ist wird es unterst tzt Fakeroot dh install verh lt sich wie fakero ot dh binary stoppt aber nach dh_fixperms 4 4 3 Anpassungen der Datei rules Es gibt viele Arten die rules Datei anzupassen die den neuen Befehl dh verwendet Der Befehl dh kann wie folgt angepasst werden e Unterst tzung des Befehls dh_python2 hinzuf gen Die beste Wahl f r Python Aufnahme des Pakets python in Build Depends Verwenden Sie stattdessen dh with python2 Hiermit werden Python Module mit dem Rahmenwerk python bearbeitet e Unterst tzung f r den Befehl dh_pysupport hinzuf gen veraltet Aufnahme des Pakets python support in Build Depends Verwenden Sie dh with pysupport Hiermit werden Python Module mit dem Rahmenwerk python support bearbeitet e Unterst tzung f r den Befehl dh_pycentral hinzuf gen veraltet Aufnahme des Pakets python central in Build Depends Verwenden Sie stattdessen dh with python central Hierdurch wird auch der Befehl dh_pysupp
127. was veraltet und nur Sekund rliteratur ist k nnte der Debian Library Packaging Guide http www netfort gr jp dancer column libpkg guide libpkg guide html noch n tzlich sein A 2 debian raket symbols verwalten Wenn Sie eine Laufzeitbibliothek paketieren sollten Sie eine Datei debian Paket symbols erstellen um die minimale Version zu verwalten die jedem Symbol f r riickw rts kompatible ABI nderungen unter dem gleichen SONAME der Bibliothek f r den gleichen Laufzeitbibliotheksnamen zugeordnet ist Sie sollten die folgenden prim ren Referenzen im Detail lesen e Debian Policy Manual Kapitel 8 6 3 The symbols system http www debian org doc debian policy ch sharedlibs html s sharedlibs symbols dh_makeshlibs 1 dpkg gensymbols 1 dpkg shlibdeps 1 deb symbols 5 Es folgt ein grobes Beispiel um das Paket 1ibf001 f r die Version 1 3 der Originalautoren mit der korrekten Datei debian libfoo1 symbols zu erstellen e Bereiten Sie das Ger st des debianisierten Quellbaums mit der Datei der Originalautoren libfoo 1 3 tar gz vor Falls dies das erstmalige Paketieren des Pakets 1ibf001 ist erstellen Sie die Datei debian libfoo1 symbols mit leerem Inhalt Falls die vorherige Version 1 2 der Originalautoren im Paket Llibf001 mit der korrekten debian libfoo1 symbols in seinem Quellpaket paketiert war verwenden sie diese wieder Falls die vorhergehende Version 1 2 der Originalautoren nicht mit de
128. weitere Erkl rungen werden in Kapitel 8 gegeben Bitte beachten Sie dass die Quellen kein in Abschnitt 2 4 und Abschnitt 2 5 beschriebenes Bausystem enthalten m ssen Es k nnte eine reine Sammlung von graphischen Daten usw sein Die Installation der Dateien k nnten rein mit debhelper Konfigurationsdateien wie debian install siehe Abschnitt 5 11 erfolgen Debian Leitfaden f r Neue Paketbetreuer 14 63 Kapitel 3 Den Quellcode ver ndern Bitte beachten Sie dass an dieser Stelle nicht auf alle Details eingegangen wird wie die urspr nglichen Quellen korrigiert werden k nnen aber hier sind ein paar grundlegende Schritte und Probleme auf die man h ufig st t 3 1 Einrichten von quilt Das Programm quilt bietet eine grundlegende Methode um nderungen an den urspr nglichen Quellen f r das Debian Paket aufzuzeichnen Es ist sinnvoll eine leicht ge nderte Voreinstellungen zu verwenden daher sollte ein Alias dquilt f r die Debian Paketierung erstellt werden indem folgendes zur bashrc hinzugef gt wird dabei stellt die zweite Zeile die gleichen Shell Vervollst ndigungsfunktionalit t wie der Befehl quilt f r den Befehl dquilt bereit alias dquilt quilt quiltrc HOME quiltrc dpkg complete F _quilt_completion _quilt_complete_opt dquilt Dann erstellen Sie die quiltrc dpkg wie folgt d while d d debian a readlink e d do d d done if d d debian amp amp z SQUIL
129. wenden werden und wenn Sie einen kritischen Fehler gemacht haben werden Sie von unz hligen ver rgerten Debian Benutzern mit E Mails bersch ttet war nur ein Scherz Entspannen Sie sich und stellen Sie sich auf Fehlerberichte ein denn es ist noch viel mehr Arbeit zu erledigen bevor Ihr Paket vollst ndig im Einklang mit den Debian Richtlinien sowie dessen bew hrten Verfahren ist nochmals lesen Sie die wirkliche Dokumentation f r Details Viel Gl ck Debian Leitfaden f r Neue Paketbetreuer 6 63 Kapitel 2 Erste Schritte Lassen Sie uns anfangen indem Sie Ihr eigenes Paket erstellen oder noch besser ein vorhandenes bernehmen 2 1 Arbeitsschritte beim Bau von Debian Paketen Falls Sie ein Debian Paket mit einem Programm von anderen Originalautoren erstellen ist ein Teil der typischen Arbeitsschritte des Debian Paketbaus die Erstellung mehrerer speziell benannter Dateien f r jeden Schritt wie folgt Besorgen Sie sich eine Kopie der Software der Originalautoren normalerweise in einem komprimierten Tar Format Paket Version tar gz F gen Sie Debian spezifische Paketanpassungen zu dem Programm der Originalautoren im Verzeichnis debian hinzu und erstellen Sie ein nicht natives Quellpaket d h die Menge an Eingabedateien die zum Bau des Debian Pakets verwandt wird im Format 3 0 quilt Paket_Version orig tar gz Paket_Version Revision debian tar gz Paket_Version Revision dsc e Aus D
130. zeitbibliotheken werden manchmal dazu benutzt mehrere Erweiterungen eines Programms mittels des dlopen Mechanismus bereitzustellen Laufzeitbibliotheken exportieren Symbole die bersetzte Objekte wie Variablen Funktionen und Klassen darstellen und darauf Zugriff von dem verlinkten Programm erm glichen Der SONAME einer Laufzeitbibliothek libfoo so 1 objdump p libfoo so 1 grep SONAME Der SONAME einer Laufzeitbibliothek passt typischerweise aber nicht immer auf den Dateinamen der Bibliothek Der SONAME von Laufzeitbibliotheken die nach usr bin foo gelinkt sind objdump p usr bin foo grep NEEDED Alternativ readelf d libfo0 so 1 grep SONAME 2 Alternativ readelf d l1libfoo so 1 grep NEEDED Debian Leitfaden f r Neue Paketbetreuer 59 63 e libfoo1 das Bibliothekspaket f r die Laufzeitbibliothek 1ibfoo so 1 mit der SONAME ABI Version 1 Die Paketbetreuerskripte des Bibliothekspakets m ssen Idconfig unter den bestimmten Randbedingungen aufrufen um die notwendigen symbolischen Links f r den SONAME zu erzeugen e libfoo1 dbg das Fehlersuch Symbol Paket das die Debugging Symbole f r das Laufzeitpaket 1ibfoo1 enth lt e libfoo dev das Entwicklungspaket das die Header Dateien usw f r die Laufzeitbibliothek libfoo soenth lt 1 Debian Pakete sollten im Allgemeinen keine 1a Libtool Archive enthalten Debian Pakete sollten im Allgemeinen keinen RPATH enthalten e Obwohl sie et
131. zukommen lassen damit er sie in der n chsten Programmversi on verwenden kann und sie f r andere auch n tzlich sind Denken Sie auch daran Ihre Patches nicht spezifisch f r Debian oder Linux oder sogar Unix zu gestalten sondern sie portierbar zu erstellen Dadurch k nnen Ihre nderungen wesentlich leichter bernommen werden Beachten Sie dass Sie dem Originalautoren die debian Dateien nicht schicken m ssen 3 4 Unterschiedliche Bibliotheken Es gibt ein anderes typisches Problem Bibliotheken variieren oft von Plattform zu Plattform Beispielsweise kann ein Makefile eine Referenz auf eine Bibliothek enthalten die auf Debian Systemen nicht existiert In diesem Fall m ssen wir sie auf eine Bibliothek ndern die unter Debian existiert und den gleichen Zweck erf llt Nehmen wir an eine Datei in dem Makefile oder Makefile in Ihres Programms lautet wie folgt LIBS 1foo lbar Falls Ihr Programm nicht bersetzt da die Bibliothek foo nicht existiert und auf Debian Systemen ihr quivalent von der Bi bliothek foo2 bereitgestellt wird k nnen Sie dieses Bauproblem mittels debian patches foo2 patch beheben indem Sie foo in foo2 ndern 5 Falls es API nderungen von der Bibliothek foo zu der Bibliothek f002 gibt m ssen die Quellen entsprechend angepasst werden um auf die neue API zu passen Debian Leitfaden f r Neue Paketbetreuer 18 63 dquilt new foo2 patch dquilt add Makefile sed i e s 1foo

Download Pdf Manuals

image

Related Search

Related Contents

スマートログ V5 - Desco Industries Inc.  Réchaud - 5e groupe scout Grand  Emisiones otoacústicas para evaluación auditiva en el periodo  Manuale dell`Operatore Rullo Compressore  1-110-FC-11361 LAVA 0ºC  The Unofficial Glock Users Manual  

Copyright © All rights reserved.
Failed to retrieve file