[teilweise gelöst: wrapper script chroot] Re: ldconfig multiarch: Probleme beim Linken von libpng.so.2

2005-11-06 Diskussionsfäden Gerhard Gaußling
Am Samstag 05 November 2005 19:15 schrieb Gerhard Gaußling:
 Hallo,

 Ich brauche libpng.so.2 für PTStitcher aus den Panotools.
 http://www.path.unimelb.edu.au/~dersch/
 http://www.path.unimelb.edu.au/~dersch/PanoTools.tar.gz

 Es liegt nur als 32bit binary vor und es fehlt libpng.so.2 (32bit),
 weshalb ich es nicht in hugin 64bit nutzen kann.

 Es fehlte auch noch libpano12 und libtif.so.3 für 32bit.
 Diese wurden aber richtig gelinkt, nachdem ich sie
 aus /var/chroot/usr/lib nach /usr/lib32 kopierte und ldconfig
 aufrief.
[...]
 $ sudo /sbin/ldconfig -v -l /lib32/libpng.so.2
 /sbin/ldconfig: Ignored file /lib32/libpng.so.2 since it is not a
 regular file.

 libtiff.so.3 ist aber auch nur ein link ldconfig hat die tiff lib
 aber korrekt gelinkt:
 $ ldconfig -p|grep libtiff.so.3
 libtiff.so.3 (libc6) = /usr/lib32/libtiff.so.3
 $  ls -l /usr/lib32/libtiff.so.3
 lrwxrwxrwx  1 root root 16 2005-11-05 14:23
 /usr/lib32/libtiff.so.3 - libtiff.so.3.6.1


 Weshalb linkt ldconfig aber nicht libpng.so.2 ?
 $  ls -l /usr/lib32/libpng.so.2
 lrwxrwxrwx  1 root root 13 2005-11-05 18:31 /usr/lib32/libpng.so.2 -
 libpng10.so.0

 etwa weil das auf libpng10.so.0 weist (damit auf 
 libpng10.so.1.0.18), und nicht auf etwas wie  libpng.so.2.0.18 ?

 Ganz merkwürdig, dass das *selbe* PTStitcher binary im 32bit
 i386_chroot läuft, obwohl dort libpng.so.2 auch nicht gelinkt ist:
 (i386_chroot)[EMAIL PROTECTED]:~$ ldconfig -p |grep libpng
 libpng12.so.0 (libc6) = /usr/lib/libpng12.so.0
 libpng10.so.0 (libc6) = /usr/lib/libpng10.so.0
 Dort bedient sich PTStitcher (richtig) bei libpng10.so.0 und fordert
 nicht libpng.so.2:
 $ ldd ~/download/panorama/PTLinux/Helpers/PTStitcher
 [...]
 libpng12.so.0 = /usr/lib/libpng12.so.0 (0x556f9000)
 libtiff.so.4 = /usr/lib/libtiff.so.4 (0x5571d000)
 [...]
 [EMAIL PROTECTED]:~$  ldd ~/download/panorama/PTLinux/Helpers/PTStitcher
 [...]
 libpng.so.2 = not found
 libz.so.1 = /usr/lib32/libz.so.1 (0x55783000)

 Tut mir leid aber das kapier ich nicht mehr.

Kapier ich immer noch nicht.

 Weiß jemand was hier falsch läuft?
Würde mich freuen, wenn mir da mal jemand auf die Sprünge helfen könnte.
Auch gerne mit speziellen ia32-lib auf amd64 arch HOWTOS oder ähnlichem.

Erstmal habe ich aber eine Lösung mit chroot, die vorher nicht klappte, 
da meine bash Kenntnisse beschränkt sind.

Ich benutzte  dchroot -c i386_chroot -d PTStitcher $1 $2 $3 $4
richtig wäre aber:

~$ cat /usr/local/bin/PTStitcher

#!/bin/bash
 dchroot -c i386_chroot -d PTStitcher $@
 exit

ciao
Gerhard



ldconfig multiarch: Probleme beim Linken von libpng.so.2

2005-11-05 Diskussionsfäden Gerhard Gaußling
Hallo,

Ich brauche libpng.so.2 für PTStitcher aus den Panotools.
http://www.path.unimelb.edu.au/~dersch/
http://www.path.unimelb.edu.au/~dersch/PanoTools.tar.gz

Es liegt nur als 32bit binary vor und es fehlt libpng.so.2 (32bit), 
weshalb ich es nicht in hugin 64bit nutzen kann.

Es fehlte auch noch libpano12 und libtif.so.3 für 32bit.
Diese wurden aber richtig gelinkt, nachdem ich sie 
aus /var/chroot/usr/lib nach /usr/lib32 kopierte und ldconfig aufrief.

libpng.so.2 kopierte ich ebenfalls, wie auch libpng10.so.1.0.18 und 
libpng10.so.0. 

libpng.so.2 ist nur ein link auf libpng10.so.0, und libpng10.so.0 ein 
link auf libpng10.so.1.0.18.

libpng.so.2 wird aber nicht gelinkt:
$ sudo /sbin/ldconfig -v -l /lib32/libpng.so.2
/sbin/ldconfig: Ignored file /lib32/libpng.so.2 since it is not a 
regular file.

libtiff.so.3 ist aber auch nur ein link ldconfig hat die tiff lib aber 
korrekt gelinkt:
$ ldconfig -p|grep libtiff.so.3
libtiff.so.3 (libc6) = /usr/lib32/libtiff.so.3
$  ls -l /usr/lib32/libtiff.so.3
lrwxrwxrwx  1 root root 16 2005-11-05 14:23 /usr/lib32/libtiff.so.3 
- libtiff.so.3.6.1


Weshalb linkt ldconfig aber nicht libpng.so.2 ?
$  ls -l /usr/lib32/libpng.so.2
lrwxrwxrwx  1 root root 13 2005-11-05 18:31 /usr/lib32/libpng.so.2 - 
libpng10.so.0

etwa weil das auf libpng10.so.0 weist (damit auf  libpng10.so.1.0.18), 
und nicht auf etwas wie  libpng.so.2.0.18 ?

Ganz merkwürdig, dass das *selbe* PTStitcher binary im 32bit i386_chroot 
läuft, obwohl dort libpng.so.2 auch nicht gelinkt ist:
(i386_chroot)[EMAIL PROTECTED]:~$ ldconfig -p |grep libpng
libpng12.so.0 (libc6) = /usr/lib/libpng12.so.0
libpng10.so.0 (libc6) = /usr/lib/libpng10.so.0
Dort bedient sich PTStitcher (richtig) bei libpng10.so.0 und fordert 
nicht libpng.so.2:
$ ldd ~/download/panorama/PTLinux/Helpers/PTStitcher
linux-gate.so.1 =  (0xe000)
libpano12.so = /usr/lib/libpano12.so (0x55576000)
libc.so.6 = /lib/tls/i686/cmov/libc.so.6 (0x555b4000)
libjpeg.so.62 = /usr/lib/libjpeg.so.62 (0x556dc000)
libpng12.so.0 = /usr/lib/libpng12.so.0 (0x556f9000)
libtiff.so.4 = /usr/lib/libtiff.so.4 (0x5571d000)
libz.so.1 = /usr/lib/libz.so.1 (0x55769000)
/lib/ld-linux.so.2 (0x5000)
libm.so.6 = /lib/tls/i686/cmov/libm.so.6 (0x5577a000)

zum Vergleich amd64 x86_64:
[EMAIL PROTECTED]:~$  ldconfig -p |grep libpng
libpng12.so.0 (libc6,x86-64) = /usr/lib/libpng12.so.0
libpng12.so.0 (libc6) = /usr/lib32/libpng12.so.0
libpng12.so (libc6,x86-64) = /usr/lib/libpng12.so
libpng10.so.0 (libc6,x86-64) = /usr/lib/libpng10.so.0
libpng10.so.0 (libc6) = /lib32/libpng10.so.0
[EMAIL PROTECTED]:~$  ldd ~/download/panorama/PTLinux/Helpers/PTStitcher
linux-gate.so.1 =  (0xe000)
libpano12.so = /lib32/libpano12.so (0x5558f000)
libc.so.6 = /lib32/tls/libc.so.6 (0x555c6000)
libm.so.6 = /lib32/tls/libm.so.6 (0x556f4000)
libjpeg.so.62 = /usr/lib32/libjpeg.so.62 (0x55716000)
libtiff.so.3 = /usr/lib32/libtiff.so.3 (0x55735000)
/lib/ld-linux.so.2 (0x5000)
libpng.so.2 = not found
libz.so.1 = /usr/lib32/libz.so.1 (0x55783000)

Tut mir leid aber das kapier ich nicht mehr.

Weitere Gegenüberstellung (i386_chroot vs. amd64 x86_64):
(i386_chroot)[EMAIL PROTECTED]:~$ cat /etc/ld.so.conf
/usr/X11R6/lib

[EMAIL PROTECTED]:~$ cat /etc/ld.so.conf
/usr/X11R6/lib
/lib32
/usr/lib32
/usr/X11R6/lib32
/usr/local/lib
/usr/lib/pango/1.4.0/modules/
/usr/lib/GNUstep/System/Library/Libraries

Weiß jemand was hier falsch läuft?

ciao

Gerhard