[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problem bei Erstellung von eigenem Asterisk Paket



Hallo Daniel,

On Tue, Dec 16, 2008 at 12:51:16PM +0100, Daniel Leidert wrote:
> Am Dienstag, den 16.12.2008, 09:04 +0100 schrieb Jan Hauke Rahm:
> > Das klingt erstmal gut, auch wenn dh_make nicht ganz auf dem neuesten
> > Stand zu sein scheint.
> 
> Könntest du das bitte erklären? dh_make setzt debian/compat aktuell auf
> 7.

Macht es das? Wozu? Ich meine, welcher in debian/rules verwendete Befehl
*braucht* tatsächlich dh7? Ich sehe da spontan keinen. Im Gegenteil: in
der Mail vom OP war in dem kurzen, zitierten Abschnitt ein "dh_clean -k"
und das ist in dh7 sogar als "deprecated" markiert und könnte/sollte
durch "dh_prep" ersetzt werden.

> > Du könntest dir, wenn du das Paket länger
> > benutzen willst, mal debhelper 7 angucken.
> 
> Was hat das eine mit dem anderen zu tun? dh_make generiert die Dateien
> in debian/. debhelper-Skripte werden dann von debian/rules aufgerufen
> und der Maintainer muss selbständig debhelper-Dateien in debian/
> ergänzen. Du vergleichst IMO Äpfel mit Birnen.

debhelper-Dateien? Du meinst sowas wie "package.install"? Das stimmt,
die muss der Maintainer nach Belieben selbst anlegen. Diese sind aber
optional zu einigen der debhelper-Scripte möglich und man muss sie gar
nicht verwenden (einige zumindest nicht). Beispiel: dh_installdoc kann
mit Argumenten aufgerufen werden, sodass es die da bezeichneten Dateien
als Dokumentation installiert, oder vollkommen ohne, sodass es nach
debian/docs sucht und die da benannten Dateien installiert.

Worauf ich eigentlich hinaus wollte, waren aber die schönen Neuigkeiten
in dh7, für die es tatsächlich auch compat=7 braucht; nämlich die schön
kurzen dh-Befehle, die alles zusammenfassen:

install:
    dh $@

und fertig. :) dh ruft dann die nötigen dh_*, die man für install
braucht, auf. Aber da hilft "man dh" weiter.

> [..]
> > > 	$(MAKE) prefix=$(CURDIR)/debian/asterisk/usr install samples
> [..]
> > Ich hab das original Makefile nicht wirklich durchgearbeitet, aber ich
> > würde mal versuchen, $(DESTDIR) auf sowas wie
> > $(CURDIR)/debian/asterisk/usr
> > zu setzen. Das könnte schon Abhilfe schaffen...
> 
> Bitte beachten: DESTDIR ist *keine* automatisch vorhandene bzw.
> integrierte (make-)Variable! Die autotools und cmake (und diverse andere
> Umgebungen) generieren Makefiles, die diese Variable enthalten. Bei
> selbst geschriebenen Makefiles ist das aber ganz anders. Man kann
> allerdings, wie der obige make-Aufruf zeigt, Variablen, die in Makefiles
> definiert werden, in der Kommandozeile überschreiben. Enthält Makefile
> also z.B. samles_DIR (ohne ein $(DESTDIR) mit dem Installationspfad,
> übergibt man diese Variable mit dem gewünschten Wert beim make-Aufruf.
> Gewissheit schafft hier aber nur ein Blick in das Makefile.

Das stimmt, aber es könnte doch trotzdem helfen, oder? So wie ich das
Makefile gesehen habe, wird DESTDIR dort durchgängig verwendet.

Und da fällt mir noch was ein: um zu verhindern, dass ein
kaputtes/fehlerhaft erstellted Makefile beim Bauen eines Debian-Pakets
das System ruiniert, empfehle ich pbuilder + cowdancer (automatisches
Bauen in einem chroot).

Cheers,
Hauke

Attachment: signature.asc
Description: Digital signature


Reply to: