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

Re: dh_makeshlibs exits with error on buildds and with success at home: is DPKG_GENSYMBOLS_CHECK_LEVEL set on buildds ?



On Thu, Jul 22, 2010 at 09:54:12AM +0900, Charles Plessy wrote:
> Le Thu, Jul 22, 2010 at 02:10:53AM +0200, Jakub Wilk a écrit :
> > * Charles Plessy <plessy@debian.org>, 2010-07-22, 08:41:
> >> I uploaded a package that built fine in a chroot made by the helper  
> >> tool ‘sbuild-createchroot’, but it failed on all buildds when running  
> >> dh_makeshlibs.
> >>
> >> dh_makeshlibs: dpkg-gensymbols -plibajax6 -Idebian/libajax6.symbols -Pdebian/libajax6 returned exit code 1
> >>
> >> See for instance: https://buildd.debian.org/fetch.cgi?pkg=emboss;ver=6.3.1-1;arch=amd64;stamp=1279698597
> >>
> >> I suspect that the check level of dpkg-gensymbol overriden on buildds,
> >
> > Why? The default value level is 1, i.e. fail if some symbols have  
> > disappeared. And they indeed disappeared, at least on amd64.
> 
> Thanks for the explanation. The problem is then in my sbuild chroots: why
> doesn't it fail there? I just checked, and DPKG_GENSYMBOLS_CHECK_LEVEL is not
> set there either. My chroots are up to date, with dpkg-dev at version 1.15.7.2.
> 
> I will update the symbols files, this will suppress the symptoms, but not solve
> the problem in the long term…

How about you actually check what is going on?

Like checking one of the symbols:
$ grep -r Java_org_emboss_jemboss_parser_Ajax_delDir .
./debian/libajax6.symbols: Java_org_emboss_jemboss_parser_Ajax_delDir@Base 6.3.0
./ajax/core/ajjava.c:JNIEXPORT jboolean JNICALL Java_org_emboss_jemboss_parser_Ajax_delDir
./ajax/core/ajjava.h:JNIEXPORT jboolean JNICALL Java_org_emboss_jemboss_parser_Ajax_delDir

Then check in the log if the ajax/core/ajjava.c file is built, and ...
it is.

So, check the content of the file to see what's happening, and see there
is a #ifdef HAVE_JAVA at its beginning. Which you can find gets defined in
configure through ./m4/java.m4.

And in the build log:
checking if java include directory given... no
checking if java OS include directory given... no
(...)
checking for javac... false

Why? simply because of this in debian/control:
Build-Depends-Indep: openjdk-6-jdk

Build-Depends-Indep are used to build arch: all stuff only and are not
installed on buildds, but in your case, the jdk is necessary to build
arch: any stuff.

Now, you obviously have another bug, that is that --with-java is dropped
when java is not detected. Usually, you'd prefer explicit arguments to
be error out.

Mike


Reply to: