---------------------------------------- > Date: Sun, 9 Feb 2014 23:00:49 +1100 > From: csm...@debian.org > To: debian-mentors@lists.debian.org > Subject: Re: Is this really the debian way ? > > On Sat, Feb 08, 2014 at 07:13:59PM +0000, Roelof Wobben wrote: >> >> On the control file these packages are made: >> cjs - Mozilla-based javascript bindings for the GNOME platform >> libcjs0c - This is the shared library applications link to >> libcjs-dev - This package contains the development files applications need to >> build against. > That is very common. You have the programs people use in cjs. It has a > shared library or libraries in the lib package with the development > library parts (so other people can use it) in a -dev package. > That's pretty standard behaviour.
oke, I will not change this. > >> DEB_DH_MAKESHLIBS_ARGS_libcjs0c = -Xusr/lib/cjs-1.0/ -V'libcjs0c (>= >> $(DEB_UPSTREAM_VERSION)), libcjs0-$(LIBMOZJS)' -- -c4 >> >> So they have to use some sort of "hack" to find the files of the second >> package. > That looks odd. Let's go through the args > * Don't look for my libraries in /usr/lib/cjs-1.0 > * The -V option adds libcjs0-$(LIBMOZJS) to the dependency, that looks > wrong. > Your library package creates the shlibs file so that other packages that > link to it have a sensible dependency. As an example, libprocps0 has: > libprocps 0 libprocps0 (>= 1:3.3.2-1) > while libprocps3 has: > libprocps 3 libprocps3 > > So if something is built and linked with libprocps0 then it will have a > line in its control file like: > Depends: libprocps0 (>= 1:3.3.2-1), [other things here] > while if it was linked with libprocps3 it looks like: > Depends: libprocps3, [other things here] > > That odd -V option is saying, if you link with libcjs then you need to > also install either this or a newer version of libcjs (this is common) > but you ALSO need libcjs0-(something here) package. > > That's very, very odd. shlibs is for finding library depdencies (I need > libary XYZ, which package is it in?) not for... well just a dependency > for dependency sake. > > I suspect, but it is only a guess, that libcjs0 should depend on this > MOZJS thing. > > HOWEVER, if you MUST have this, the way in debhelper rules would be: > > override_dh_makeshlibs: > dh_makeshlibs -Xusr/lib/cjs-1.0/ -V'libcjs0c (>= $(DEB_UPSTREAM_VERSION)), > libcjs0-$(LIBMOZJS)' -- -c4 > > What worries me is that if you need this MOZJS thing and you are not > making debian packages, then shlibs doesn't apply. If it is important > enough to do evil things to shlibs, then I suspect this theorectical > non-debian program wouldn't work. I know that cjs depends on mozjs185 package. Is there a better way to make this work ? Without the "hack" ? I try to compile it without any "hacks" but then it would not compile it a second time because clean cannot find a library. I have made another topic about this but if it's needed I can put it again on this topic. The complete control and rules files can be found here : https://github.com/linuxmint/cjs/tree/master/debian Roelof -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/dub121-w408457dd2e3c4398647a79ae...@phx.gbl