8.30. Paketänderungen nachlesen

8.30.1. Das Änderungsprotokoll beziehen

Für jedes Debianpaket existiert im entsprechenden Quellpaket (siehe Abschnitt 2.7.4, „Source-Pakete (dsc und weitere Dateien)“) ein Protokoll mit den erfolgten Änderungen im Paket, ein sogenanntes Changelog (Datei debian/changelog). Das ist eine Textdatei mit einzelnen Einträgen (siehe unten). Daraus ersehen Sie überblicksweise, was die Entwickler im Vergleich zur vorherigen Veröffentlichung des Paketes verändert haben und welche Änderungen oder Debian-spezifischen Anpassungen der Maintainer im Vergleich zum Originalquellcode zusätzlich vorgenommen hat.

Die nachfolgenden Ausgaben zeigen den Vorgang für die beiden Werkzeuge apt-get und aptitude mit einem Ausschnitt des Changelogs zum Paket smartpm. Beide Programme kennen für den Aufruf das Unterkommando changelog und benötigen zusätzlich den Namen des Debianpakets. Das angefragte Paket muss dazu nicht auf Ihrem Debiansystem installiert sein.

Beziehen der Changelog-Informationen zum Paket smartpm mittels apt-get

$ apt-get changelog smartpm
Holen:1 http://metadata.ftp-master.debian.org smart 1.4-2 Changelog [8.573 B]
Es wurden 8.573 B in 1 s geholt (4.754 B/s).

...

smart (1.4-2) unstable; urgency=low

  * Switch to dh_python2 (Thanks to Barry Warsaw)

 -- Free Ekanayaka <freee@debian.org>  Fri, 12 Aug 2011 17:27:20 +0100

smart (1.4-1) unstable; urgency=low

  * New upstream release
  * Drop several patches (02_fix_fetcher_test, 03_setup,
    06_CVE-2009-3560.patch and 06_CVE-2009-3720.patch) as they were
    all merged upstream

 -- Free Ekanayaka <freee@debian.org>  Tue, 31 May 2011 16:04:52 +0200

...
$

Bei aptitude sieht das wie folgt aus:

Die Paketänderungen zum Paket smartpm mit Hilfe von aptitude ausgeben. 

$ aptitude changelog smartpm

smart (1.4-2) unstable; urgency=low

  * Switch to dh_python2 (Thanks to Barry Warsaw)

 -- Free Ekanayaka <freee@debian.org>  Fri, 12 Aug 2011 17:27:20 +0100

smart (1.4-1) unstable; urgency=low

  * New upstream release
  * Drop several patches (02_fix_fetcher_test, 03_setup,
    06_CVE-2009-3560.patch and 06_CVE-2009-3720.patch) as they were
    all merged upstream

 -- Free Ekanayaka <freee@debian.org>  Tue, 31 May 2011 16:04:52 +0200

...

$

Die Beschreibung der vorgenommenen Änderungen folgt dabei einem festgelegten Schema. Dieses Schema ist im Debian Policy Manual [Debian-Policy-Manual] im Abschnitt Source packages/Debian changelog genau erklärt. Kurz zusammengefasst, ist jeder Version eines Paketes ein separater Block gewidment:

Format der erfolgten Änderungen. 

package (version) distribution(s); urgency=urgency
  [optional blank line(s), stripped]
  * change details
  more change details
  [blank line(s), included in output of dpkg-parsechangelog]
  * even more change details
  [optional blank line(s), stripped]
-- maintainer name <email address>[two spaces]  date

Jeder dieser Blöcke beginnt stets mit dem Namen des Quellpakets, gefolgt von der Versionsnummer des Pakets, der Veröffentlichung (zumeist unstable) (siehe Abschnitt 2.10, „Veröffentlichungen“), sowie der Dringlichkeit oder dem Schweregrad der vorgenommenen Änderungen. Dieser Wert ist einer aus low, medium, high, emergency und critical. Darunter stehen die jeweiligen Änderungen als einfache Aufzählung.

8.30.2. Zwei Paketversionen miteinander vergleichen

Wie oben bereits genannt, beschreibt das Änderungsprotokoll lediglich in groben Zügen, welche Korrekturen ein Paket erfahren hat. Mit Hilfe des Werkzeugs diffoscope [Debian-Paket-diffoscope] aus dem Projekt Reproducible Builds [ReproducibleBuilds] erhalten Sie eine Auswertung, welche Dateien oder Verzeichnisse aus einem Paket im Vergleich zur vorherigen Version entfernt wurden sowie welche hinzugekommen, umbenannt oder auch verschoben wurden und welche Änderungen in bestehenden Dateien erfolgt sind. Der Aufruf ist dazu wie folgt:

Aufruf von diffoscope für zwei Pakete. 

$ diffoscope cheese_3.14.1-1_amd64.deb cheese_3.14.1-2_amd64.deb

Nachfolgend sehen Sie die Ausgabe der entdeckten Änderungen. Es ist eine Art Baumstruktur, die durchaus länger werden kann.

Abbildung 8.24. Von diffoscope gefundene Änderungen (Ausschnitt)

werkzeuge/paketoperationen/diffoscope-debian-package.png

Die Farbgebung der Ausgabe folgt den üblichen Gepflogenheiten — rot für Entfernungen und grün für Zeilen, die hinzugefügt wurden. Die Angaben in hellblau benennen die Position in der jeweiligen Datei.