checkinstall und btrfs-tools (AKA btrfs-progs) Error

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
CountDracula
Beiträge: 86
Registriert: 14.01.2011 00:53:59
Wohnort: Transylvania

checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von CountDracula » 05.09.2015 20:19:00

Hallo,

ich versuche mit checkinstall aus den btrfs-progs 4.2 ein Debian-Paket zu erzeugen. Er bricht leider ab:

Code: Alles auswählen

Installing with make install...

====================== Installations-Ergebnisse ==========================
    [LN]     libbtrfs.so.0
    [LN]     libbtrfs.so
    [LD]     libbtrfs.so.0.1
Making install in Documentation
/usr/bin/install -c -d -m 755 /usr/share/man/man5
/usr/bin/install -c -d -m 755 /usr/share/man/man8
/usr/bin/install -c -m 644 btrfs-mount.5.gz /usr/share/man/man5
# the source file name of btrfs.5 clashes with section 8 page, but we
# want to keep the code generic
/bin/mv /usr/share/man/man5/btrfs-mount.5.gz /usr/share/man/man5/btrfs.5.gz
/usr/bin/install -c -m 644 btrfs.8.gz btrfs-convert.8.gz btrfs-debug-tree.8.gz btrfs-find-root.8.gz btrfs-image.8.gz btrfs-map-logical.8.gz btrfs-show-super.8.gz btrfs-select-super.8.gz btrfstune.8.gz fsck.btrfs.8.gz mkfs.btrfs.8.gz btrfs-subvolume.8.gz btrfs-filesystem.8.gz btrfs-balance.8.gz btrfs-device.8.gz btrfs-scrub.8.gz btrfs-check.8.gz btrfs-rescue.8.gz btrfs-inspect-internal.8.gz btrfs-send.8.gz btrfs-receive.8.gz btrfs-quota.8.gz btrfs-qgroup.8.gz btrfs-replace.8.gz btrfs-restore.8.gz btrfs-property.8.gz /usr/share/man/man8
ln -s -f btrfs-check.8.gz /usr/share/man/man8/btrfsck.8.gz
ln -s -f btrfs-rescue.8.gz /usr/share/man/man8/btrfs-zero-log.8.gz
/usr/bin/install -c -m755 -d /usr/bin
/usr/bin/install -c btrfs mkfs.btrfs btrfs-debug-tree btrfs-map-logical btrfs-image btrfs-zero-log btrfs-find-root btrfstune btrfs-show-super btrfs-select-super btrfs-convert /usr/bin
/usr/bin/install -c fsck.btrfs /usr/bin
# btrfsck is a link to btrfs in the src tree, make it so for installed file as well
ln -s -f btrfs /usr/bin/btrfsck
/usr/bin/install -c -m755 -d /usr/lib
/usr/bin/install -c libbtrfs.so.0.1 libbtrfs.a /usr/lib
cp -a libbtrfs.so.0 libbtrfs.so /usr/lib
cp: die Zeiten für „/usr/lib/libbtrfs.so.0“ werden beibehalten: Datei oder Verzeichnis nicht gefunden
cp: die Zeiten für „/usr/lib/libbtrfs.so“ werden beibehalten: Datei oder Verzeichnis nicht gefunden
Makefile:337: recipe for target 'install' failed
make: *** [install] Error 1

**** Installation fehlgeschlagen. Breche Paket-Erzeugung ab.

Räume auf...OK

Auf Wiedersehen!
Wie kann ich diesen Error umgehen?
I am Dracula. I bid you welcome.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von catdog2 » 05.09.2015 20:58:04

Ich würde allgemein Debiandh-make bzw. Debiandebmake empfehlen. In einem solchen Fall würde ich allerdings das debian Verzeichnis der Version aus unstable als Ausgangspunkt nehmen. Mit Glück hat sich nicht viel geändert und ein neuer changelog Eintrag reicht aus.
Unix is user-friendly; it's just picky about who its friends are.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von rendegast » 05.09.2015 22:16:46

Versuche mal

Code: Alles auswählen

checkinstall --install=no .....
-----------------------------------------
EDIT Aua
das ist wohl doch bezogen auf die Installation des erzeugten Paketes,
nicht auf die Pseudo-installation im Rahmen der Paketerstellung.
Zuletzt geändert von rendegast am 06.09.2015 01:53:09, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
CountDracula
Beiträge: 86
Registriert: 14.01.2011 00:53:59
Wohnort: Transylvania

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von CountDracula » 06.09.2015 00:03:15

rendegast hat geschrieben:Versuche mal

Code: Alles auswählen

checkinstall --install=no .....
Leider hilft das nicht und der gleiche Fehler wird angezeigt. Kann es sein, dass das gar kein Paket erzeugt wird und dadurch dass die Angabe --install=no auch nicht zum Tragen kommt?
I am Dracula. I bid you welcome.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von rendegast » 06.09.2015 21:53:46

Aua,
das '--install=no' ist wohl doch bezogen auf die Installation des erzeugten Paketes,
nicht auf die Pseudo-installation im Rahmen der Paketerstellung.
---------------------------------------------------------------------------------------


cp: die Zeiten für „/usr/lib/libbtrfs.so.0“ werden beibehalten: Datei oder Verzeichnis nicht gefunden
cp: die Zeiten für „/usr/lib/libbtrfs.so“ werden beibehalten: Datei oder Verzeichnis nicht gefunden
Das steckt der Fehler wohl im multiarch<->checkinstall<->btrfs-progs-Build

Code: Alles auswählen

:/tmp/_btrfs/btrfs-progs$ find | grep libbtrfs
./libbtrfs.so.0.1
./libbtrfs.so
./libbtrfs.so.0
./libbtrfs.a

:/tmp/_btrfs/btrfs-progs$ ll libbtr*
-rw-r--r-- 1 user user 244416 Sep  6 21:02 libbtrfs.a
lrwxrwxrwx 1 root     root         15 Sep  6 21:15 libbtrfs.so -> libbtrfs.so.0.1
lrwxrwxrwx 1 root     root         15 Sep  6 21:15 libbtrfs.so.0 -> libbtrfs.so.0.1
-rwxr-xr-x 1 root     root     189088 Sep  6 21:15 libbtrfs.so.0.1

:/tmp/_btrfs/btrfs-progs$ locate libbtrfs
/usr/lib/i386-linux-gnu/libbtrfs.a
/usr/lib/i386-linux-gnu/libbtrfs.so
/usr/lib/i386-linux-gnu/libbtrfs.so.0
/usr/lib/i386-linux-gnu/libbtrfs.so.0.1

:/tmp/_btrfs/btrfs-progs$ cat config.status  | grep usr/lib
S["ZLIB_LIBS_STATIC"]="-L/usr/lib/i386-linux-gnu -lz "
S["ZLIB_LIBS"]="-L/usr/lib/i386-linux-gnu -lz "
Die Diskrepanz /usr/lib/ <-> /usr/lib/i386-linux-gnu/ steckt im ./configure ->

Code: Alles auswählen

$ make clean
$ ./autogen.sh
$ ./configure --libdir='${exec_prefix}/lib/i386-linux-gnu'
$ make
$ sudo checkinstall --install=no
(entsprechend "x86_64-linux-gnu" auf amd64-Architektur)
geht schonmal weiter,


Problem "nur" noch beim Erstellen des deb, eine falsche Version 'prog'.
Setze Punkt.3 auf zBsp. '4.2-lokal'.

Vergleiche

Code: Alles auswählen

/home/winebuild/wine# grep PACKAGE_VERSION configure
PACKAGE_VERSION='1.7.45'
...

/tmp/_btrfs/btrfs-progs# grep PACKAGE_VERSION configure
PACKAGE_VERSION='v4.2'
...
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
CountDracula
Beiträge: 86
Registriert: 14.01.2011 00:53:59
Wohnort: Transylvania

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von CountDracula » 06.09.2015 22:53:28

Bei mir hängt es leider noch an der gleichen Stelle fest:

Code: Alles auswählen

/usr/bin/install -c -m755 -d /usr/lib/arm-linux-gnueabihf
/usr/bin/install -c libbtrfs.so.0.1 libbtrfs.a /usr/lib/arm-linux-gnueabihf
cp -a libbtrfs.so.0 libbtrfs.so /usr/lib/arm-linux-gnueabihf
cp: die Zeiten für „/usr/lib/arm-linux-gnueabihf/libbtrfs.so.0“ werden beibehalten: Datei oder Verzeichnis nicht gefunden
cp: die Zeiten für „/usr/lib/arm-linux-gnueabihf/libbtrfs.so“ werden beibehalten: Datei oder Verzeichnis nicht gefunden
Makefile:337: recipe for target 'install' failed
make: *** [install] Error 1

**** Installation fehlgeschlagen. Breche Paket-Erzeugung ab.

Räume auf...OK

Auf Wiedersehen!
Entsprechend meiner Architektur habe ich gemacht:

Code: Alles auswählen

wget https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v4.2.tar.gz
tar xfvz btrfs-progs-v4.2.tar.gz
cd btrfs-progs-v4.2
./autogen.sh
./configure --libdir='${exec_prefix}/lib/arm-linux-gnueabihf'
make
sudo checkinstall --install=no
I am Dracula. I bid you welcome.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von rendegast » 06.09.2015 23:20:31

Ich hatte bei dem Schritt die Debianbtrfs-tools installiert,
die entsprechenden Links im Lib-Verzeichnis waren also bei mir im System vorhanden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
CountDracula
Beiträge: 86
Registriert: 14.01.2011 00:53:59
Wohnort: Transylvania

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von CountDracula » 07.09.2015 02:19:41

Mir ist aufgefallen, dass es nach dem make nur einen symbolischen Link gibt:

Code: Alles auswählen

lrwxrwxrwx 1 count count       5 Sep  7 01:37 btrfsck -> btrfs
Desweiteren glaube ich, dass es mit dem cp-Aufruf in der Makefile zu tun hat.

Ich sehe drei Workarounds, um diesen Fehler zu umgehen:

1) Dummyfiles anlegen:

Code: Alles auswählen

touch /usr/lib/arm-linux-gnueabihf/libbtrfs.so
touch /usr/lib/arm-linux-gnueabihf/libbtrfs.so.0
2) Debianbtrfs-tools installieren (dadurch sind die beiden Dateien auch vorhanden)

Code: Alles auswählen

aptitude install btrfs-tools
3) Makefile anpassen

Code: Alles auswählen

nano Makefile
Die Zeile:

Code: Alles auswählen

	cp -a $(lib_links) $(DESTDIR)$(libdir)

Ersetzen durch:

Code: Alles auswählen

	$(LN_S) -f libbtrfs.so.0.1 $(DESTDIR)$(libdir)/libbtrfs.so.0
	$(LN_S) -f libbtrfs.so.0.1 $(DESTDIR)$(libdir)/libbtrfs.so
Ich habe mich für die dritte Möglichkeit entschieden.

Passender checkinstall-Aufruf:

Code: Alles auswählen

sudo checkinstall --install=no --pkgversion=4.2
Paket überprüfen:

Code: Alles auswählen

dpkg --contents btrfs-progs_4.2-1_armhf.deb | grep lrwx
Ausgabe:

Code: Alles auswählen

lrwxrwxrwx root/root         0 2015-09-07 01:46 ./usr/share/man/man8/btrfsck.8.gz -> btrfs-check.8.gz
lrwxrwxrwx root/root         0 2015-09-07 01:46 ./usr/share/man/man8/btrfs-zero-log.8.gz -> btrfs-rescue.8.gz
lrwxrwxrwx root/root         0 2015-09-07 01:45 ./usr/bin/btrfsck -> btrfs
lrwxrwxrwx root/root         0 2015-09-07 01:45 ./usr/lib/arm-linux-gnueabihf/libbtrfs.so -> libbtrfs.so.0.1
lrwxrwxrwx root/root         0 2015-09-07 01:45 ./usr/lib/arm-linux-gnueabihf/libbtrfs.so.0 -> libbtrfs.so.0.1

Ich glaube, dass checkinstall das "cp -a" gar nicht abfängt? Beim checkinstall-Durchlauf ändern sich die Timestamps meiner Dummy-Files (bzw. die, der originalen Dateien vom Debian Debianbtrfs-tools Paket).

Mit Makefiles habe ich keine große Erfahrung. Was soll der cp-Aufruf dort bezwecken?
I am Dracula. I bid you welcome.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von peschmae » 09.09.2015 14:52:53

catdog2 hat geschrieben:... In einem solchen Fall würde ich allerdings das debian Verzeichnis der Version aus unstable als Ausgangspunkt nehmen. Mit Glück hat sich nicht viel geändert und ein neuer changelog Eintrag reicht aus.
Ich möchte den Ansatz auch ausdrücklich empfehlen. Dann wirds im Normalfall auch ein ordentliches Paket was man sogar später problemlos aktualisieren kann. Alternativ mal in die git/svn repos der Maintainer gucken, die haben oft auch schon Anfänge von debian/ Ordnern für neue Versionen rumhängen...
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
CountDracula
Beiträge: 86
Registriert: 14.01.2011 00:53:59
Wohnort: Transylvania

Re: checkinstall und btrfs-tools (AKA btrfs-progs) Error

Beitrag von CountDracula » 20.02.2016 00:34:23

Mir fehlte damals übrigens das Parameter "--fstrans=no".

Beispiel für btrfs-progs 4.4:

Code: Alles auswählen

checkinstall --install=no --fstrans=no --pkgversion=4.4
Damit läuft es ohne Probleme.
I am Dracula. I bid you welcome.

Antworten