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

Re: beim Paketbau auf man 7 undocumented verweisen



Hallo Daniel und Leser und Leserinnen,

am Samstag, 24. November 2007 um 15:56 meinte Daniel Leidert u. a.:
> Am Freitag, den 23.11.2007, 17:58 +0100 schrieb Sebastian Dellit:
>> Irgendwie hört sich das einfacher an, als es ist. :-( Ich habs nun
>> mehrere Male probiert, jedoch will es nicht klappen. Aus der manpage
>> zu dh_link lese ich, das man entweder die Links direkt erstellt, oder
>> eine Datei debian/package.links anlegt, in der quelle und ziel
>> eingetragen werden. Bei beiden Varianten wird jedoch im .deb kein
>> Verz. man angelegt. :-( Ich mache also noch irgendwas falsch. In der
>> datei package.links habe ich es zum einen mit:
>> 
>> dh_link usr/share/man/man7/undocumented.7.gz
>> usr/share/man/man3/libsockets-dev.3.gz

> Nein. Der Aufruf gehört nach debian/rules (binary-indep oder binary-arch
> Ziel):

> binary-arch:
>         [..]
>         dh_link -p$(PACKAGE) usr/share/man/man7/undocumented.7.gz \ 
>                              usr/share/man/man3/libsockets-dev.3.gz

Ich arbeite hier mit CDBS, wobei ich vorher beim Erstellen des
Grundgerüsts nur die defaultwerten (--defaultless --copyright GPL)
erstellen lasse.

Ich habe in meiner rules also kein binary*

Meine rules schaut wie folgt aus:

#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/makefile.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk

# Add here any variable or target overrides you need.
DEB_MAKE_CLEAN_TARGET := clean
DEB_MAKE_BUILD_TARGET := all
DEB_MAKE_INSTALL_TARGET := install DESTDIR=$(CURDIR)/debian/libsockets-dev
DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) make -C $(DEB_BUILDDIR)

# example to work around dirty makefile
DEB_MAKE_INSTALL_TARGET = install PREFIX=$(CURDIR)/debian/libsockets-dev/usr

Nun habe ich es schon auf die verschiedensten Arten probiert:

binary arch: dh_link ...
binary-indep: dh_link ..
DEB_MAKE_INSTALL_TARGET = dh_link ...

Doch leider gab es immer einen Fehler. :-(

[...]

> Aber auch hier ist noch ein kleiner Fehler: Wenn du einen Symlink für
> eine Manpage in Sektion 3 erstellst, dann musst/solltest du auch auf
> undocumented(3) verweisen, und nicht auf undocumented(7):

> usr/share/man/man3/undocumented.3.gz
> usr/share/man/man3/libsockets-dev.3.gz

OK, danke.

>> probiert. Es hat jedoch nichts geholfen. Wenn ich im Hauptverz. von
>> dem Paket:
>> 
>> # dh_link usr/share/man/man7/undocumented.7.gz
>> usr/share/man/man3/libsockets-dev.3.gz
>> 
>> eintippe, so wird mir unter debian ein Ordner libsockets-dev angelegt,
>> welcher dann usr/share/man/man3/libsockets-dev.3.gz enthält.

> Das ist das erwartete Ergebnis.

Das beruhigt. :-) Scheinbar wird aber das Verz. erst durch ein clean
geräumt, so das dieser Link gelöscht ist. :-(

>> Aber auch das wurde nicht ins .deb übernommen.

> Welches Kompatibilitätslevel (debian/compat) verwendest du denn?

5, was immer das bedeutet. *g*

> In 4
> und 5 werden die Paketdateien unter debian/$(paket) erwartet. In diesem
> Fall sollte also das libsockets-dev-Paket den Symlink enthalten. Baust
> du das Paket in irgendeinem anderen Verzeichnis? Evtl. debian/tmp?

Nein, unter debian/. Soweit ich das feststellen kann.

> Könntest du die Paketdateien vielleicht einfach mal auf irgendeinen
> Webspace laden? Dann fällt das Raten leichter :)

Welche genau?

> [..]
>> > [..]
>> >> Und wo trägt man beim Paketbau die manpages ein? Wenn debian/docs für
>> >> /usr/share/doc zuständig ist, ist aber eine Datei debian/man nicht
>> >> zufällig für /usr/share/man zuständig? ;-)
>> 
>> > Fast. Die Datei heißt debian/manpages oder debian/${paket}.manpages:
>> > dh_installman(7).
>> 
>> Ich habe auch die Datei mal angelegt. Er scheint sie beim bau auch zu
>> lesen, jedobh bringt er mir immer den Fehler, das die Datei nicht
>> gefunden werden kann (also das, was in der Datei erwähnt wird).

> Die Datei enthält existierende manpages (z.B. debian/foo.1, eine für
> Debian geschriebene Manpage, weil das Original z.B. noch keine hat).
> dh_installman(1) kümmert sich jetzt darum, die Datei debian/foo.1 in das
> passende Verzeichnis zu kopieren - das muss man also nicht selbst mit
> dh_install oder install machen.

Also wenn ich eine Manpage hätte, dann würde ich diese in debian/
ablegen. Zusätzlich würde ich sie in debian/manpages "erwähnen" und
somit würde sie dann automatisch beim Bau mit eingestrickt/kopiert
werden?

> In deinem Fall geht es ja aber - soweit ich dich verstehe - darum, dass
> du eben keine Manpage hast. Dann kann dh_installman natürlich auch
> nichts kopieren.

OK.

>> Tja, was ist nun richtig, die Datei package.links, oder manpages?
>> *verwirrt* :-)

> Je nachdem, was du tun willst. dh_links erstellt Links und dh_installman
> kümmert sich um (existierende) Manpages.

Also doch dh_link, das werd ich doch irgendwie gebacken bekommen ...
:-/
-- 
Viele Grüße Sebastian
ICQ: 264706583 | MSM: sebo@blinzeln.de | Skype: sebo_de
E-Mail: sebo@blinzeln.de | Web: www.blindzeln.de



Reply to: