Wie löse ich das Quellproblem von dpkg-source beim Erstellen eines Pakets?


16

Hat hier jemand Erfahrung mit der Erstellung eines Debian / Ubuntu-Pakets? Ich versuche, das lammps-Paket ( http://packages.ubuntu.com/quantal/lammps ) von Ubuntu 12.10 (Quantal) auf Ubuntu 12.04 zurück zu portieren

Ich brauche es nur inoffiziell - ich brauche nur ein .deb-Paket, um benutzerdefinierte Images für virtuelle Maschinen für die Bereitstellung auf der IaaS-Plattform zu erstellen.

Nach dem Ubuntu-Paketierungshandbuch unter https://wiki.ubuntu.com/PackagingGuide kann ich erfolgreich erstellen, außer wenn ich versuche, mit dem Befehl debuild neu zu erstellen , wird normalerweise der folgende Fehler angezeigt :

 dpkg-source: error: aborting due to unexpected upstream changes, see
 /tmp/lammps_0~20120615.gite442279-1.diff.aie32n dpkg-source: info: you
 can integrate the local changes with dpkg-source --commit
 dpkg-buildpackage: error: dpkg-source --include-binaries -i -b
 lammps-0~20120615.gite442279 gave error exit status 2

Das Ausführen von 'make clean-all' im src-Verzeichnis löst das Problem immer noch nicht. Gibt es eine Möglichkeit, alle Dateien, die während des Erstellungsprozesses generiert wurden, vollständig zu bereinigen oder debuild aufzufordern, Unterschiede in den Quelldateien zu ignorieren?

Antworten:


6

Dies bedeutet, dass Sie Änderungen an der entpackten Upstream-Quelle vorgenommen haben, die nicht Teil eines Patches im debian/patches/Verzeichnis sind oder in der seriesDatei dort aufgeführt sind, falls dies der Fall ist. und / oder es besteht eine gewisse Inkonsistenz in der Anwendung der Patches durch Quilt.

Wenn Sie sich die erwähnte Datei in / tmp ansehen, sehen Sie die fraglichen Änderungen.


Vielen Dank für die schnelle Antwort! Gibt es eine schnelle Möglichkeit, die durch 'make' vorgenommenen Änderungen wiederherzustellen, anstatt alle Änderungen in der Datei / tmp / * diff * rückgängig zu machen?
Hanxue

29

Vermeiden Sie die Debian-Bürokratie, indem Sie einfach die Binärdatei erstellen: dpkg-buildpackage -b


1
Dies ist nicht so nützlich, wenn Sie beabsichtigen, auf debian hochzuladen.
Jeremiah

4
@jeremiah aber sehr nützlich, wenn Sie ein Debian-Paket für den persönlichen Gebrauch optimieren.
Wyatt8740

10

Ändern Sie das Format in debian / source / format von 3.0 (quilt) auf 3.0 (native), wenn Sie quilt nicht verwenden möchten. Das hat das Problem für mich trotzdem gelöst.


DIES! Quilt ist unmöglich.
Jay _silly_evarlast_ Zaunkönig

1
Ich bin diesem Kommentar naiv gefolgt. Der Nettoeffekt wird sein, dass Ihr Build die Patches in debian / patches nicht mehr verwendet. Könnten Sie bitte die Antwort erweitern, indem Sie erklären, wie Sie Debian / rules die notwendige Magie hinzufügen, um die Patches tatsächlich anzuwenden?
Thomas Vander Stichele


1

Ich habe dieses Problem festgestellt, als Quilt fälschlicherweise glaubte, Patches auf meine Arbeitskopie angewendet zu haben (den aktuellen Status finden Sie im Ordner .pc). In diesem Fall musste der Quilt gezwungen werden, alle Patches zu platzieren quilt pop -a -f.


0

Dies kann vorkommen, wenn Sie alle Debian-"Papierkram" erledigt haben, aber noch Artefakte aus früheren Versuchen hatten. Insbesondere werden automatisch generierte Änderungen an "config.sub", "config.guess" und "Makefile" vorgenommen.

Sie könnten dies in debian / source / options einfügen:

# Don't store changes on autogenerated files
extend-diff-ignore = "(^|/)(config\.sub|config\.guess|Makefile)$"

Ref: https://raphaelhertzog.com/2011/01/28/3-ways-to-not-clutter-your-debian-source-package-with-autogenerated-files/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.