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

Re: dpkg-slibdep, fakeroot, sonames



On Sat, 6 Sep 1997, joost witteveen wrote:

> But fakeroot execs its children with:
>   LD_PRELOAD=/usr/lib/libfakeroot.so.0
> so its children do use it:
> 
> To me, this output looks as though the soname of libfakeroot is indeed
> "0", and not "0.0", but this is from my "debian/rules binary" stage:
> 
> dpkg-shlibdeps ./fakeroot 
> dpkg-shlibdeps.orig: warning: unable to find dependency information for shared library /usr/lib/libfakeroot (soname 0.0, path /usr/lib/libfakeroot.so.0.0, dependency field Depends)
> dpkg-gencontrol
> 
> Does anyone know why dpkg-shlibdeps thinks the /usr/lib/libfakeroot soname
> is 0.0?

	Are you sure you are using the correct `LD_PRELOAD'?  This is what I get:

----
cespedes@salmon:/tmp$ fakeroot
sh-2.01# echo $LD_PRELOAD
/usr/lib/libfakeroot.so.0.0
sh-2.01# dpkg-shlibdeps ls
dpkg-shlibdeps: warning: unable to find dependency information for shared library /usr/lib/libfakeroot (soname 0.0, path /usr/lib/libfakeroot.so.0.0, dependency field Depends)
sh-2.01# LD_PRELOAD=/usr/lib/libfakeroot.so.0
sh-2.01# dpkg-shlibdeps ls
dpkg: /usr/lib/libfakeroot.so.0 not found.
dpkg-shlibdeps: warning: could not find any packages for /usr/lib/libfakeroot.so.0 (/usr/lib/libfakeroot.so.0)
dpkg-shlibdeps: warning: unable to find dependency information for shared library /usr/lib/libfakeroot (soname 0, path /usr/lib/libfakeroot.so.0, dependency field Depends)
----

	So, with the correct `LD_PRELOAD', it gets the correct soname.

	BTW, the line `dpkg: /usr/lib/libfakeroot.so.0 not found' is due to
a bug in your package: the file /usr/lib/libfakeroot.so.0 should be
included in the .deb:  From the Debian packaging manual, version
1.4.0.19, chapter 12:

``Secondly, your package should include the symlink that ldconfig
would create for the shared libraries.''

> BTW, I do have a shlibs file setup for libfakeroot (soname "0"):
> 
> $ cat /var/lib/dpkg/info/fakeroot.shlibs 
> libfakeroot      0       libc6

	Hmmm, that's not correct.  The value in LD_PRELOAD is
`/usr/lib/libfakeroot.so.0', and not `fakeroot.so.0', so the full path
should be included to that file, this way:
/usr/lib/libfakeroot	0	libc6

> PS, note that the current fakeroot version (-8) still does
>     LD_PRELOAD=/usr/lib/libfakeroot.so.0.0 (with extra 0), but I
>     wanted to change that in -9. Doesn't seem to work.

	Well, it works for me.  If you still have problems, mail me.

--
Juan Cespedes


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .


Reply to: