Ubuntu: Was machen sie mit den Vanillequellen?

12

Korrigieren Sie mich, wenn ich falsch liege

Soweit ich weiß, ändern Distributionen wie Debian / Ubuntu / Fedora normalerweise den Vanille-Quellcode, bevor sie ein Paket erstellen. Was ist der Grund für diese Änderungen? Gibt es ein Problem mit der Originalquelle? Wie kann ich die Liste der Änderungen und den Grund für die an einem bestimmten Paket vorgenommenen Änderungen abrufen?

Danke für die Hilfe!

user5210
quelle

Antworten:

18
apt-get source package

Sie erhalten zwei oder drei Dateien: "Original" -Tarball (manchmal geändert, aber selten ... die einzige Änderung ist oft der Dateiname) - mit dem Namen * .orig.tar.gz, der Debian ändert sich in Form von * .diff .gz-Datei und einige Metadaten. Manchmal fehlt die .diff.gz-Datei: Dies bedeutet, dass das Paket nur für debian / ubuntu erstellt wurde, um einige sehr spezifische Distributionsarbeiten zu erledigen ... wie dakdas Hochladen der Debian-Archive. Dann ist der gesamte Code im Original-Tarball.

Es gibt mehrere Gründe: Beheben von Fehlern für Software (wenn Upstream dies nicht möchte), Anpassen von Software an Debian (z. B. Anpassen von Dateipfaden). Debian möchte, dass alle Pakete dem FileSystem Hierarchy Standard entsprechen , und dies ist eine sehr häufige Anpassung.

Der ursprüngliche Tarball ist manchmal nicht derselbe wie der Upstream, der aufgrund von Verpackungsproblemen erstellt wurde. Ich erinnere mich, dass ich ein Programm gesehen habe, das in mehreren Tarballs verteilt war, während sie nur eine ausführbare Datei generierten - der Debian-Betreuer hat beschlossen, einen eigenen "ursprünglichen" Tarball zu erstellen, der aus geteerten Upstream-Tarballs besteht. Der andere Grund ist, wenn der Debian-Betreuer manchmal beschließt, dem Paket eine Binärdatei hinzuzufügen. Es ist schwierig, Binärdateien in die .diff.gz-Datei einzufügen, daher wird der ursprüngliche Tarball geändert (und dies wird normalerweise in der Dokumentation zum Paket klar beschrieben).

Manchmal (sehr selten) ist die Lizenzierung das Problem. Es kommt vor, dass der Upstream aufgrund einiger Lizenzen die Auswirkungen nicht versteht oder verstehen möchte. Debian möchte, dass alle Lizenzprobleme behoben werden. Daher kommt es vor, dass die Debian-Patches bestimmte Aufgaben ausführen oder der ursprüngliche Tarball aus illegal verteilten Dateien entfernt wird.

Es kommt auch vor, dass einige Inhalte lizenziert sind, damit Sie sie verwenden, aber nicht verteilen können. In der Regel (zB für msttcorefonts, flashplugin-nonfree) das Debian - Paket ist nur eine Art von einem Installateur für ein Paket, und nicht den ursprünglichen Inhalt ist in der Verpackung.

pinePaket ist auch interessant, weil die Lizenz verbietet, kompilierte Formulare zu verteilen. Daher gibt es kein pineBinärpaket, sondern ein pineQuellpaket. Sie können es mit dem obigen Befehl herunterladen und selbst in ein Debian-Paket kompilieren.

liori
quelle
Pine wird jetzt als Alpin entwickelt, um die ursprünglichen Lizenzprobleme zu
umgehen
Das pinePaket befindet sich immer noch im Repository. Aber so erschweren Lizenzprobleme die Sache.
Liori
2

Die Gründe sind wahrscheinlich so vielfältig wie es Betreuer und Pakete gibt. Ich denke, normalerweise modifizieren sie die Software so, dass sie sich besser in andere Software in der Distribution integrieren lässt, oder um Funktionen hinzuzufügen, die nicht in der "offiziellen" Version enthalten sind.

Sie können die Quellen (und die Ubuntu-spezifischen Unterschiede) abrufen, indem Sie sie sudo apt-get source PACKAGENAMEin die Befehlszeile eingeben . Es werden die Vanillequellen und die Unterschiede des Pakets in das aktuelle Verzeichnis heruntergeladen. Sie enthalten normalerweise auch einige Kommentare in der Quelle.

Kim
quelle
1

Denk darüber so. Wenn Sie das Programm vom ursprünglichen Quell-Tarball über installiert ./configure; make; make installhaben, müssen Sie noch einige Arbeiten ausführen. Sie müssen Menüeinträge vornehmen, Konfigurationsdateien einrichten und so weiter. Sie könnten geben ./configureein --prefix. Die Änderungen der Distributionsbetreuer sind oft nichts anderes als die Automatisierung dieser alltäglichen Aufgaben.

Ryan C. Thompson
quelle