Wie wird eine Upstream-Datei in das Debian-Paket aufgenommen?

394
bbc

Mein Paket ist komplex, aber ich habe ein minimales Beispiel erstellt, damit Sie leicht verstehen können:

. ├── test-package │   └── debian │   ├── changelog │   ├── compat │   ├── control │   ├── rules │   └── source │      └── format ├── test-package_0.1.0.orig │   └── test_file └── test-package_0.1.0.orig.tar.gz 

Die debian/source/formatDatei enthält 3.0 (quilt), weshalb das Upstream-Tarball ist test-package_0.1.0.orig.tar.gz. Dieser Tarball enthält test_file.

Die debian/rulesDatei enthält:

#!/usr/bin/make -f  %: dh $@ 

Wenn ich in das test-packageVerzeichnis wechsle und ausgeführt werde dpkg-buildpackage -us -uc, erhalte ich die folgende Warnung und mein Paket enthält die Datei nicht vom Upstream:

dpkg-source: warning: ignoring deletion of file test_file, use --include-removal to override 

Ich las über dh_installund fügte dann eine debian/test-package.installDatei mit folgendem Inhalt hinzu:

test_file opt/test-package/test_file 

Dann bekomme ich einen Fehler:

dh_install: Cannot find (any matches for) "test_file" (tried in "." and "debian/tmp") dh_install: test-package missing files: test_file dh_install: missing files, aborting 

Wo ist test_filezu finden? Vielleicht ist das die falsche Methode. Was sollte ich stattdessen versuchen? Kann ich vermeiden, das Upstream-Paket zu ändern, das kein Makefile oder ähnliches hat?

0

1 Antwort auf die Frage

0
bbc

Der vorgelagerte Tarball test-package_0.1.0.orig.tar.gzwird tatsächlich dort benötigt, wo er ist. dpkg-buildpackageErwartet jedoch auch, dass dieses Upstream-Tarball test-packageneben dem debianVerzeichnis dekomprimiert wird . Dann kann es das Binärpaket erstellen und die Debian-Überlagerung von vorgelagerten Inhalten unterscheiden.

Richtiges Layout:

. ├── test-package │ ├── debian │ │ ├── changelog │ │ ├── compat │ │ ├── control │ │ ├── rules │ │ ├── source │ │ │ └── format │ │ └── test-package.install │ └── test_file └── test-package_0.1.0.orig.tar.gz