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

Re: Real newbie ....



+++ Barry Drake [2014-04-13 17:51 +0100]:
> Hi ...  Can I introduce myself.  I've been involved in 'The Sword
> Project' for some years and am now going along the very steep
> learning curve in order to update the packages which are some five
> years out of date.  I'm running Ubuntu Trusty 14.04 beta and can
> build the packages with no problem using pdebuild.  But - the build
> puts in a dependency on libicu48 which is now removed from the
> Ubuntu repos and replaced with libicu52 which is what the actual
> build from source is using.  The control file produced is identical
> to that in the current out-of-date package (1.6.2).  I am packaging
> version 1.7.3.
 
> I've worked out that dpkg is being used to get the dependencies (I
> think) but I haven't a clue as to where it gets them from, or how I
> can change this behaviour.  The builder puts them into the
> ${shlibs:Depends} string, and I can't see any method of controlling
> what gets into that string.  I've read and re-read the packaging
> startup manual and haven't managed to find what to do.  The control
> file produced by the build has the line:
> 
> Depends: libsword-common, libc6 (>= 2.4), libclucene-core1 (>=
> 2.3.3.4), libcurl3-gnutls (>= 7.16.2), libgcc1 (>= 1:4.1.1),
> libicu48 (>= 4.8-1), libstdc++6 (>= 4.6), zlib1g (>= 1:1.1.4)
> 
> and it needs to have libicu52 (>= 0) as the correct dependency.

I've always been a little vague about the details, but essentiaqlly
the ${shlibs:Depends} variable gets populated by the shlibpeps
mechanism which actually looks at the libraries linked and puts in the
corresponding package names. So if it's putting in libicu48 then
that's almost certainly because that's the library that's actually
getting used in the build.

Looking at the build log should give some clues about which
dependencies get installed.

I would guess that your problem is that the chroot pbuilder is using
is out of date (and thus has libicu48 still around, or is not set to
use only unstable packages?). pbuilder does not update the chroot for
each build by default, you have to update it separately. sbuild does
do an update/upgrade every time by default, which is one major reason
I recommend using it for builds.

So the simple fix is to update your pbuilder chroot, or build with
sbuild instead (which probably involves running sbuild-createchroot to
set up an unstable chroot for it to use (and running sbuild-update
--keygen once to make some keys for apt to use).

Each build gives you a nice log file showing exactly what was
installed to satisfy the build deps, so you shoul dbe able to see
which libicu version was installed.

I've not checked anything, so it could be more subtle than this, but
that's my first guess.

> I hope I've come to the right place to ask this kind of newbie
> question. 

You have :-)

> I don't want to become a maintainer, jut to produce the
> build source files and pass them on to one of the existing
> maintainers to sign and submit.
> 
> Kind regards,        Barry Drake.
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-mentors-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: [🔎] 534AC0AF.20709@gmail.com">https://lists.debian.org/[🔎] 534AC0AF.20709@gmail.com
> 
Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


Reply to: