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

Shared libs dependencies



Dear list,

I am a bit confused about how I have to declare the dependencies when
creating a shared library package. I've read the Debian Policy Manual;
however I do not now understand what to do.

First of all: what is the difference between the "Depends" field in the
control file and the "shlibs" file? Should they contain the same
(library) dependencies?

My source package (wcslib) will create a shared library package
"libwcs4" and a tools package "wcslib-tools" (and others). So, since I
have multiple binary pkgs, I should (according to the manual) create a
file "debian/shlibs.libwcs4" containing the library that libwcs4 depends
on; in my case (it depends on libcfitsio):

----------8<---------------------
libwcs 4 libcfitsio3 libc6 libm6
----------8<---------------------

(do I need to specify libc and libm?)

Then, I should install this in my installation rule in debian/rules. 
Since I have still no specific installation rule, I would need to put
the following rule to debian/rules, right? 

-------------------------------------------------8<---------------------
override_dh_install:
	dh_install debian/shlibs.libwcs4 debian/libwcs4/DEBIAN/shlibs
-------------------------------------------------8<---------------------

Since zlib was used as an example in the manual, I downloaded the
debian.tar.gz of zlib to explore this rule, but I could not find it -- I
could not find anything related to shlib??

Then, the policy manual states that I have to put a a call to
dpkg-shlibdeps into my debian/rules file, but to which rule do I have to
add this? In my case, these calls would probably be

-------------------------------------------------8<---------------------
dpkg-shlibdeps -T debian/substvars.libwcs4 debian/tmp/usr/lib/libwcs.so.4.8.1
dpkg-shlibdeps -T debian/substvars.wcslib-tools debian/tmp/usr/bin/*
-------------------------------------------------8<---------------------

Manually calling dpkg-shlibdeps libwcs.so.4.8.1 brings warnings like 

dpkg-shlibdeps: warning: binaries to analyze should already be installed in their package's directory.
dpkg-shlibdeps: warning: symbol fmod used by debian/tmp/usr/lib/libwcs.so found in none of the libraries.

and a few other complaints about symbols from libm. Shall I take these
warnings serious?

A last question: If I ignore the shared lib chapter of the policy manual
completely, "lintian" does not complain with the default
settings. However, with the "-I" option, I get the informational

I: libwcs4: no-symbols-control-file usr/lib/libwcs.so.4.8.1

Should I care now about this and if yes, how do I solve this?

Sorry if this post looks stupid; but I feel a bit lost in the moment
between the different Debian tools for the shared library creation (and
this is my very first package for Debian).

Best regards

Ole


Reply to: