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

dpkg-shlibdeps, ldd and /usr -> .



Im back trying to compile gcc-3.2, my latest attempt at building it failed
due expect being broken.

expect was broken because i didnt have tcl8.3 installed which should be
declared as a dependency against expect, but isnt picked up when building
on the hurd.

Im a bit confused as to whats going on here.

As root
hurd:/build/tcl8.3-8.3.3# dpkg-shlibdeps -e/bin/expect -O
dpkg-shlibdeps: warning: could not find any packages for
/lib/libexpect5.37.so.1 (libexpect5.37.so.1)
dpkg-shlibdeps: warning: unable to find dependency information for shared
library libexpect5.37 (soname 1, path /lib/libexpect5.37.so.1, dependency
field Depends)
shlibs:Depends=libc0.3 (>= 2.2.5-13)

As a normal user
bug1@hurd:/build/expect-5.38.0/debian$ dpkg-shlibdeps -e/bin/expect -O
dpkg-shlibdeps: warning: could not find any packages for
/lib/libexpect5.37.so.1 (libexpect5.37.so.1)
dpkg-shlibdeps: warning: unable to find dependency information for shared
library libexpect5.37 (soname 1, path /lib/libexpect5.37.so.1, dependency
field Depends)
dpkg-shlibdeps: warning: could not find any packages for
/lib/libtcl8.3.so.1 (libtcl8.3.so.1)
dpkg-shlibdeps: warning: unable to find dependency information for shared
library libtcl8.3 (soname 1, path /lib/libtcl8.3.so.1, dependency field
Depends)
shlibs:Depends=libc0.3 (>= 2.2.5-13)

Note, as a normal user libtcl8.3 gets a warning, as root it doesnt even
rate a mention, i dont understand why, but i dont think its the source of
this problem.

bug1@hurd:/build/expect-5.38.0/debian$ ldd /usr/bin/expect 
        libexpect5.37.so.1 => /lib/libexpect5.37.so.1 (0x01028000)
        libtcl8.3.so.1 => /lib/libtcl8.3.so.1 (0x0104e000)
        libdl.so.2 => /lib/libdl.so.2 (0x010d2000)
        libm.so.6 => /lib/libm.so.6 (0x010d5000)
        libutil.so.1 => /lib/libutil.so.1 (0x010f6000)
        libc.so.0.3 => /lib/libc.so.0.3 (0x010f9000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0124e000)
        /lib/ld.so => /lib/ld.so (0x00001000)
        libmachuser.so.1 => /lib/libmachuser.so.1 (0x01255000)
        libhurduser.so.0.3 => /lib/libhurduser.so.0.3 (0x01266000)

cat /var/lib/dpkg/info/tcl8.3.list |grep libtcl8.3
/usr/lib/libtcl8.3.so.1

So ldd is seeing a dependency on /lib/tcl8.3.so.1, however the package
list says that the tcl8.3 package contains /usr/lib/libtcl8.3.so.1 and not
/lib/libtcl8.3.so.1, which i think is what causes the confusion to
dpkg-shlibdeps.

bug1@hurd:/build/expect-5.38.0/debian$ cat
/var/lib/dpkg/info/tcl8.3.shlibs 
libtcl8.3 1 tcl8.3 (>= 8.3.0

The .shlibs file doesnt mention any path, so does the path (/usr/lib or
/lib) really need to be considered when dpkg-shlibdeps tries to find a
match ? (maybe its a dumb question)



Glenn



Reply to: