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

Re: Help with libbuffy-bindings FTBFS



On Mon, 07 Jul 2008 12:06:14 +0200, Enrico Zini wrote:

> > The build actually fails at:
> > /usr/bin/make -C python distclean
> > make[2]: Entering directory `/build/user-libbuffy-bindings_0.4-amd64-WjEAGV/libbuffy-bindings-0.4/python'
> > make[2]: *** No rule to make target `distclean'.
> > make[2]: Leaving directory `/build/user-libbuffy-bindings_0.4-amd64-WjEAGV/libbuffy-bindings-0.4/python'
> > make[1]: *** [distclean] Error 2
> > Wrong department :)
> Argh, shame on me: python/ autotools-generated files are not in the
> repo, and I forgot to mention it.  After clone, it needs this:

Maybe Lucas' build script also forgot this step :)

## later mail ##

I forgot to add: if you want to avoid the autoreconf gimmicks, you can
try building this:
http://www.enricozini.org/store/libbuffy-bindings_0.5.tar.gz

##

Thanks, that's indeed easier.

Unfortunately the build fails during the python test:
(all in a sid cowbuilder chroot)

(cd tests && ./test.py)
Traceback (most recent call last):
  File "./test.py", line 6, in <module>
    import Buffy
  File "../python/Buffy.py", line 7, in <module>
    import _Buffy
ImportError: No module named _Buffy
make[1]: *** [check] Error 1
make[1]: Leaving directory `/tmp/buildd/libbuffy-bindings-0.5'


After commenting out the python test in ./Makefile the package
builds.

> > (And I think the conclusion is wrong; the error is about Buffy.pm,
> > which loads the .so; and /usr/lib/perl5/Buffy.pm exists, both in the
> > package in the archive and in my local build.
> Once I got the package to compile, the resulting libbuffy-perl package
> does indeed miss Buffy.pm; it's also not installed anywhere inside
> debian/*

Hm, mysterious.

[wget/tar/cd]
[comment out test.py]

$ pdebuild --buildresult ../
[..]

$ dpkg --contents ../libbuffy-perl_0.5_i386.deb 
drwxr-xr-x root/root         0 2008-07-07 16:45 ./
drwxr-xr-x root/root         0 2008-07-07 16:45 ./usr/
drwxr-xr-x root/root         0 2008-07-07 16:45 ./usr/lib/
drwxr-xr-x root/root         0 2008-07-07 16:45 ./usr/lib/perl5/
-rw-r--r-- root/root     14401 2008-07-07 16:43 ./usr/lib/perl5/Buffy.pm
drwxr-xr-x root/root         0 2008-07-07 16:45 ./usr/lib/perl5/auto/
drwxr-xr-x root/root         0 2008-07-07 16:46 ./usr/lib/perl5/auto/Buffy/
-rw-r--r-- root/root    417896 2008-07-07 16:46 ./usr/lib/perl5/auto/Buffy/Buffy.so
-rw-r--r-- root/root         0 2008-07-07 16:45 ./usr/lib/perl5/auto/Buffy/Buffy.bs
drwxr-xr-x root/root         0 2008-07-07 16:45 ./usr/share/
drwxr-xr-x root/root         0 2008-07-07 16:45 ./usr/share/doc/
drwxr-xr-x root/root         0 2008-07-07 16:46 ./usr/share/doc/libbuffy-perl/
-rw-r--r-- root/root      2197 2008-07-07 16:46 ./usr/share/doc/libbuffy-perl/buildinfo.gz
-rw-r--r-- root/root       536 2008-07-07 11:53 ./usr/share/doc/libbuffy-perl/copyright
-rw-r--r-- root/root       360 2008-07-07 11:53 ./usr/share/doc/libbuffy-perl/README
-rw-r--r-- root/root       466 2008-07-07 11:53 ./usr/share/doc/libbuffy-perl/changelog.gz

$ grep Buffy\.pm ../libbuffy-bindings_0.5_i386.build
cp Buffy.pm blib/lib/Buffy.pm
Installing /tmp/buildd/libbuffy-bindings-0.5/debian/tmp/usr/lib/perl5/Buffy.pm


But something's indeed fishy:


 debian/rules build
..
Writing Makefile for Buffy
/usr/bin/make -C perl OPTIMIZE="-O2 -g -Wall" LD_RUN_PATH=""
make[2]: Entering directory `/tmp/buildd/libbuffy-bindings-0.5/perl'
..
Running Mkbootstrap for Buffy ()
chmod 644 Buffy.bs
rm -f blib/arch/auto/Buffy/Buffy.so
cc  -shared -O2 -g -L/usr/local/lib buffy_wrap.o  -o blib/arch/auto/Buffy/Buffy.so      \
           -lbuffy -lwibble -lxml++-2.6 -lxml2 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0         \

chmod 755 blib/arch/auto/Buffy/Buffy.so
cp Buffy.bs blib/arch/auto/Buffy/Buffy.bs
chmod 644 blib/arch/auto/Buffy/Buffy.bs
make[2]: Leaving directory `/tmp/buildd/libbuffy-bindings-0.5/perl'
..
/usr/bin/make -C . check
..
Writing Makefile for Buffy
/usr/bin/make -C perl OPTIMIZE="-O2 -g -Wall" LD_RUN_PATH=""
make[2]: Entering directory `/tmp/buildd/libbuffy-bindings-0.5/perl'
cp Buffy.pm blib/lib/Buffy.pm
..
 fakeroot debian/rules binary
/usr/bin/make -C perl install
make[2]: Entering directory `/tmp/buildd/libbuffy-bindings-0.5/perl'
..
chmod 755 blib/arch/auto/Buffy/Buffy.so
cp Buffy.bs blib/arch/auto/Buffy/Buffy.bs
chmod 644 blib/arch/auto/Buffy/Buffy.bs
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /tmp/buildd/libbuffy-bindings-0.5/debian/tmp/usr/lib/perl5/auto/Buffy/Buffy.so
Installing /tmp/buildd/libbuffy-bindings-0.5/debian/tmp/usr/lib/perl5/auto/Buffy/Buffy.bs
Installing /tmp/buildd/libbuffy-bindings-0.5/debian/tmp/usr/lib/perl5/Buffy.pm
make[2]: Leaving directory `/tmp/buildd/libbuffy-bindings-0.5/perl'


I don't understand why Buffy.pm is copied in the make check call and
not before. But CDBS was always magic for me.

But still, Buffy.pm gets installed for me ...
  
> > > I just can not understand what is wrong and how to fix it; that very
> > > same setup used to work before.
> > Besides the python problem the ./Makefile could need some tweaks;
> > rebuilding perl/Makefile several times doesn't seem like a good idea.
> I use test exactly for that reason:
>   test -e perl/Makefile || (cd perl && perl Makefile.PL)
> so if perl/Makefile has been built, it doesn't get rebuilt again.
> The reason you see it built twice, is because debian/rules does a
> make clean first, then a make install; since make clean removes the
> Makefile at the end, make install will regenerate it again.

Right, sorry for being unclear.

What I don't really understand is why you create perl/Makefile in the
clean target.

What we usually do in debian/rules (taken from the dh-make-perl
template):

PERL   ?= /usr/bin/perl
PACKAGE = $(shell dh_listpackages)
TMP     = $(CURDIR)/debian/$(PACKAGE)

build-stamp:
  ..
  $(PERL) Makefile.PL INSTALLDIRS=vendor
  $(MAKE) OPTIMIZE="$(CFLAGS)" LD_RUN_PATH=""
  $(MAKE) test
  ..

clean:
  ..
  [ ! -f Makefile ] || $(MAKE) realclean
  ..

install-stamp:
  $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr
  

Oh, now I see something: "perl Makefile.PL" is in the ./Makefile (and
thus called by debian/rules) _and_ additionally in ./configure.
And both calls are invoked several times.
./configure is run twice, cc..blib/arch/auto/Buffy/Buffy.so is run
twice, ...


Sorry that I can't help more, maybe someone else has more ideas.


Cheers,
gregor
-- 
 .''`.   http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
 : :' :  debian gnu/linux user, admin & developer - http://www.debian.org/
 `. `'   member of https://www.vibe.at/ | how to reply: http://got.to/quote/
   `-    NP: Hair: Air

Attachment: signature.asc
Description: Digital signature


Reply to: