Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Debian Paket erstellen

5 views
Skip to first unread message

Florian Weimer

unread,
Feb 8, 2020, 4:00:26 PM2/8/20
to
* 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

unread,
Feb 9, 2020, 4:40:26 PM2/9/20
to
Detlef Graef <d.g...@spamfence.net> writes:
> 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.

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.
0 new messages