expertenaustausch > comp.os.* > comp.os.unix.programming

Detlef Graef (08.02.2020, 22:04)
Hallo,

ich möchte mit dem openSUSE Build Service ein Debian Paket erstellen.

Die debian.rules Datei dazu sieht so aus:

>------------------------------ #!/usr/bin/make all


%:
dh $@
>------------------------------


In der Make-Datei des Quellpaketes wird mit dem Ziel "all" das Binary
gebaut.

Das Log auf dem openSUSE Build Service endet folgendermassen:

[ 330s] Build successfully completed.
[ 330s] make[2]: Leaving directory '/usr/src/packages/BUILD/src'
[ 330s] make[1]: Leaving directory '/usr/src/packages/BUILD/src'
[ 330s] make: Nothing to be done for 'debian/rules'.
[ 330s] make: *** No rule to make target 'build'. Stop.
[ 330s] dpkg-buildpackage: error: debian/rules build subprocess
returned exit status 2
[ 330s]

Debhelper (dh) ruft wohl "make build" auf. Kann ich das unterbinden?

In der manpage zu dh steht, dass es möglich ist Befehle aus der Sequenz
zu unterbinden/ersetzen.

Detlef
Florian Weimer (08.02.2020, 22:59)
* Detlef Graef:

> Hallo,
> ich möchte mit dem openSUSE Build Service ein Debian Paket erstellen.
> Die debian.rules Datei dazu sieht so aus:
> #!/usr/bin/make all
> %:
> dh $@


Die erste Zeile muß so aussehen:

#!/usr/bin/make -f
Rainer Weikusat (09.02.2020, 23:40)
Detlef Graef <d.graef> writes:
[..]
> Debhelper (dh) ruft wohl "make build" auf. Kann ich das unterbinden?
> In der manpage zu dh steht, dass es möglich ist Befehle aus der Sequenz
> zu unterbinden/ersetzen.


Das ist moeglich[*], aber hier unrelevant: Bis auf die vermurkste
Shebang-Zeile ist das ein "standard" debhelper Makefile.

%:
dh $@

ist eine Wildcard-Regel, die jedes beliebige Ziel dadurch zu erzeugen
versucht, dass dh <zielname> ausgefuehrt wird. Eine "No rule to make
...."-Meldung kann deswegen fuer diese Datei nie woertlich Sinn ergeben.
[*] Dafuer muesste man ein sogenanntes override-Ziel definieren. Ein
debhelper-Verarbeitungsschritt korrespondiert mit einem Skript
dh_<schrittname> und den Namen des zugehoeren override-Ziels bekommt man
dadurch, dass man noch ein override_ davorsetzt. Fuer den konkreten Fall
waere das also

override_dh_build:

Wenn die Kommandoliste fuer eine solches Ziel nicht leer ist, werden
diese Kommandos anstelle des dh-Skripts fuer diesen Schritt ausgefuehrt.
Ähnliche Themen