debchange
Werkzeug zum Verwalten der Datei »debian/changelog« in einem Quellpaket
- Provided by: devscripts (Version: 2.17.12ubuntu1.1)
- Report a bug
Werkzeug zum Verwalten der Datei »debian/changelog« in einem Quellpaket
debchange [Optionen] [Text …]
dch [Optionen] [Text …]
debchange or its alias dch will add a new comment line to the Debian changelog in the current source tree. This command must be run from within that tree. If the text of the change is given on the command line, debchange will run in batch mode and simply add the text, with line breaks as necessary, at the appropriate place in debian/changelog (or the changelog specified by options, as described below). If the text given on the command line is a null string, debchange will run in batch mode without adding any text. If the text given on the command line is a space string, debchange will run in batch mode and add a blank changelog entry. If no text is specified then debchange will run the editor as determined by sensible-editor for you to edit the file. (The environment variables VISUAL and EDITOR are used in this order to determine which editor to use.) Editors which understand the +n option for starting the editing on a specified line will use this to move to the correct line of the file for editing. If the editor is quit without modifying the temporary file, debchange will exit without touching the existing changelog. Note that the changelog is assumed to be encoded with the UTF-8 encoding. If it is not, problems may occur. Please see the iconv(1) manpage to find out how to convert changelogs from legacy encodings. Finally, a changelog or NEWS file can be created from scratch using the --create option described below.
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«.