DEBCHANGE(1) | General Commands Manual | DEBCHANGE(1) |
debchange - Werkzeug zum Verwalten der Datei »debian/changelog« in einem Quellpaket
debchange [Optionen] [Text …]
dch [Optionen] [Text …]
debchange oder dessen Alias dch wird eine neue Kommentarzeile zum Debian-Changelog im aktuellen Quellbaum hinzufügen. Dieser Befehl muss innerhalb dieses Baums ausgeführt werden. Falls der Text der Änderung auf der Befehlszeile angegeben wurde, wird debchange im Stapelverarbeitungsmodus laufen und einfach den Text hinzufügen sowie, falls nötig, Zeilenumbrüche an der geeigneten Stelle in debian/changelog (oder dem durch Optionen angegeben Changelog, wie unten beschrieben) hinzufügen. Falls der auf der Befehlszeile angegebene Text eine Nullzeichenkette ist, wird debchange im Stapelverarbeitungsmodus ausgeführt ohne einen Text hinzuzufügen. Falls der auf der Befehlszeile angegebene Text eine Leerzeichenzeichenkette ist, wird debchange im Stapelverarbeitungsmodus ausgeführt und fügt einen leeren Changelog-Eintrag hinzu. Falls kein Text angegeben wurde, wird debchange den durch sensible-editor festgelegten Editor für Sie öffnen, um die Datei zu bearbeiten. (Die Umgebungsvariablen VISUAL und EDITOR werden in dieser Reihenfolge verwendet, um festzustellen, welcher Editor benutzt werden soll). Editoren, die die Option +n zum Starten der Bearbeitung an einer bestimmten Zeile verstehen, werden dies benutzen, um zum Bearbeiten an die korrekte Zeile der Datei zu positionieren. Falls der Editor beendet wird, ohne die temporäre Datei zu verändern, wird debchange beendet, ohne das existierende Changelog anzurühren. Beachten Sie, dass davon ausgegangen wird, dass das Changelog in UTF-8 kodiert ist - falls nicht, könnten Probleme auftreten. Bitte lesen Sie die Handbuchseite iconv(1), um herauszufinden, wie Changelogs mit älteren Kodierungen konvertiert werden können. Eine changelog-Datei oder eine NEWS-Datei kann unter Benutzung der weiter unten beschriebenen Option --create von Grunde auf erzeugt werden.
debchange unterstützt außerdem mittels der Option --closes automatisches Erzeugen von Changelog-Einträgen, die Fehlerberichte schließen. Dies wird üblicherweise die Fehlerdatenbank abfragen, das Debian Bug Tracking System (BTS, siehe https://bugs.debian.org/), um den Titel des Fehlers und das Paket, in dem er vorkommt, zu bestimmen. Dieses Verhalten kann durch Angabe der Option --noquery oder dem Setzen der Konfigurationsvariablen DEBCHANGE_QUERY_BTS auf no beendet werden, wie nachfolgend beschrieben beendet werden. In beiden Fällen wird der Editor (wie oben beschrieben) immer aufgerufen, um Gelegenheit zu geben, die Einträge zu ändern, und das Changelog wird akzeptiert, egal, ob Änderungen gemacht wurden oder nicht. Ein zusätzlicher Changelog-Eintrag kann auf der Befehlszeile zu den Einträgen zum Schließen angegeben werden.
Von --append, --increment, --edit, --release und --newversion kann höchstens eins, wie unten aufgeführt, benutzt werden. Falls keine Optionen angegeben wurden, wird debchange Entscheidungsregeln benutzen, um abzuschätzen, ob ein Paket veröffentlicht wurde oder nicht, und sich so verhalten, als sei bei der Veröffentlichung des Pakets --increment angegeben gewesen oder andernfalls, als ob --append angegeben wurde.
Es können zwei verschiedene Zusammenstellungen von Entscheidungsregeln benutzt werden, was durch die Option --release-heuristic oder die Konfigurationsdateivariable DEBCHANGE_RELEASE_HEURISTIC geregelt wird. Die Standard-Changelog-Entscheidungsregel geht davon aus, dass das Paket veröffentlicht wurde, wenn sein Changelog im Feld »distribution« nicht UNRELEASED enthält. Falls diese Entscheidungsregel aktiviert ist, wird die Distribution UNRELEASED in neuen Changelog-Einträgen vorgeben und die nachfolgend beschriebene Option --mainttrailer wird automatisch aktiviert. Dies kann nützlich sein, falls ein Paket durch verschiedene Paketbetreuer veröffentlicht werden kann oder falls Sie die Üpload-Protokolle nicht aufbewahren. Die alternative Protokoll-Entscheidungsregel bestimmt, ob ein Paket veröffentlicht wurde, indem es im übergeordneten Verzeichnis eine geeignete dupload(1)- oder dput(1)-Protokolldatei sucht. Falls die Protokolldatei gefunden aber kein erfolgreiches Hochladen aufgezeichnet wurde, wird eine Warnung ausgegeben. Dies kann daher rühren, dass das vorhergehende Hochladen von einer Version von dupload vor 2.1 durchgeführt wurde oder das Hochladen fehlschlug.
Falls entweder --increment oder --newversion benutzt wird, wird der Name und die E-Mail der neuen Version wie folgt bestimmt. Falls die Umgebungsvariable DEBFULLNAME gesetzt ist, wird diese für den vollständigen Namen des Betreuers verwendet; falls nicht, wird NAME geprüft. Falls die Umgebungsvariable DEBEMAIL gesetzt ist, wird diese für die E-Mail-Adresse benutzt. Falls diese Variable die Form »Name <E-Mail>« hat, dann wird der Betreuername außerdem von hier genommen, wenn weder DEBFULLNAME noch NAME gesetzt sind. Falls diese Variable nicht gesetzt ist, wird der gleiche Test für die Umgebungsvariable EMAIL durchgeführt. Als nächste wird, falls der vollständige Name immer noch nicht bestimmt wurde, getpwuid(3) verwendet, um den Namen aus der Passwortdatei zu bestimmen. Falls dies fehlschlägt, wird der vorherige Changelog-Eintrag benutzt. Für die E-Mail-Adresse wird dann, falls sie nicht von DEBEMAIL oder EMAIL gesetzt wurde, in /etc/mailname nachgesehen, dann wird versucht, sie aus dem Benutzernamen und dem FQDN zu bilden, andernfalls wird die E-Mail-Adresse aus dem vorherigen Changelog-Eintrag verwendet. In anderen Worten: Es ist ein guter Rat, DEBEMAIL und DEBFULLNAME zu setzen, wenn dieses Skript benutzt wird.
Für Changelogs, die Änderungen durch mehrere Mitbetreuer eines Pakets aufzeichnen, ist Unterstützung inbegriffen. Falls ein Eintrag an die aktuellen Versionseinträge angehängt wird und sich der Betreuer vom Betreuer unterscheidet, der als derjenige aufgelistet ist, der die letzten Einträge vorgenommen hat, dann werden dem Changelog Zeilen hinzugefügt, die aussagen, welcher Betreuer welche Änderungen vorgenommen hat. Derzeit wird nur einer von mehreren dieser Aufzeichnungsstile für diese Information unterstützt, in der der Name des Betreuers, der eine Gruppe von Änderungen vorgenommen hat, in einer Zeile vor den Änderungen in eckigen Klammen erscheint. Dies kann mittels der Option --[no]multimaint oder der Konfigurationsdateioption DEBCHANGE_MULTIMAINT ein- und ausgeschaltet werden; standardmäßig wird es eingeschaltet. Beachten Sie, dass diese Optionstillschweigend ignoriert wird, falls ein Eintrag bereits auf diese Art markiert wurde.
Falls der Verzeichnisname des Quellverzeichnisbaums die Form Paket-Version hat, wird debchange außerdem versuchen, ihn umzubenennen, falls sich die Versionsnummer (der Originalautoren) ändert. Dies kann durch Verwendung der Befehlszeilen- oder Konfigurationsdateioption --preserve vermieden werden, wie nachfolgend beschrieben.
Falls --force-bad-version oder --allow-lower-version benutzt wird, wird debchange nicht stoppen, falls die neue Version kleiner als die aktuelle ist. Dies ist insbesondere beim Zurückportieren nützlich.
Ebenso wie mehrere andere Skripte im Paket devscripts wird debchange das Verzeichnis emporsteigen, bis es eine debian/changelog-Datei findet. Als eine Schutzmaßnahme gegen verirrte Dateien, die potenziell Probleme bereiten, wird es den Namen des übergeordneten Verzeichnisses untersuchen, sobald es die debian/changelog-Datei findet, und prüfen, ob dieser Verzeichnisname dem Paketnamen entspricht. Wie dies genau geschieht, wird über zwei Konfigurationsdateivariablen geregelt, DEVSCRIPTS_CHECK_DIRNAME_LEVEL und DEVSCRIPTS_CHECK_DIRNAME_REGEX, sowie ihre entsprechenden Befehlszeilenoptionen --check-dirname-level und --check-dirname-regex.
DEVSCRIPTS_CHECK_DIRNAME_LEVEL kann die folgenden Werte annehmen:
Der Verzeichnisname wird geprüft, indem getestet wird, ob der aktuelle Verzeichnisname (wie er durch pwd(1) bestimmt wurde) zum regulären Ausdruck passt, der durch die Konfigurationsdateioption DEVSCRIPTS_CHECK_DIRNAME_REGEX oder die Befehlszeilenoption --check-dirname-regex regulärer_Ausdruck angegeben wurde. Hierbei ist regulärer_Ausdruck ein regulärer Perl-Ausdruck (siehe perlre(3perl)), der an den Anfang und das Ende verankert wird. Falls regulärer_Ausdruck ein »/« enthält, muss er auf den vollständigen Verzeichnispfad passen. Falls nicht, dann muss er auf den vollständigen Verzeichnisnamen passen. Falls regulärer_Ausdruck die Zeichenkette »PACKAGE« beinhaltet, wird diese durch den Namen des Quellpakets ersetzt, wie er aus dem Changelog bestimmt wird. Der vorgegebene Wert für den regulären Ausdruck ist: »PACKAGE(-.+)?«, daher entspricht er Verzeichnisnamen wie PACKAGE und PACKAGE-Version.
Das Standard-Changelog, das bearbeitet werden soll, ist debian/changelog; dies kann jedoch mittels der Optionen --changelog, --news oder der Umgebungsvariable CHANGELOG, wie nachfolgend beschrieben geändert werden.
Die beiden Konfigurationsdateien /etc/devscripts.conf und ~/.devscripts werden in dieser Reihenfolge eingelesen, um Konfigurationsvariablen zu setzen. Befehlszeilenoptionen können benutzt werden, um Einstellungen in Konfigurationsdateien zu setzen. Einstellungen in Umgebungsvariablen werden zu diesem Zweck ignoriert. Die derzeit bekannten Variablen sind:
debc(1), debclean(1), dput(1), dupload(1), devscripts.conf(5)
Der ursprüngliche Autor war Christoph Lameter <clameter@debian.org>. Viele bedeutende Änderungen und Verbesserungen wurden von Julian Gilbey <jdg@debian.org> beigetragen.
Diese Übersetzung wurde mit dem Werkzeug po4a <URL:https://po4a.alioth.debian.org/> durch Chris Leick c.leick@vollbio.de im Juli 2012 erstellt und vom deutschen Debian-Übersetzer-Team korrekturgelesen. Bitte melden Sie alle Fehler in der Übersetzung an debian-l10n-german@lists.debian.org oder als Fehlerbericht an das Paket devscripts. Sie können mit dem folgenden Befehl das englische Original anzeigen »man -L C Abschnitt deutsche_Handbuchseite«.
Debian-Hilfswerkzeuge | DEBIAN |