[Pkg-utopia-maintainers] Bug#558545: Missing autoreconf to fix 554821 or similar bugs in the future

Peter Fritzsche peter.fritzsche at gmx.de
Sun Nov 29 00:57:11 UTC 2009


Source: devicekit-power
Version: 012-2
Severity: minor
User: peter.fritzsche at gmx.de
Usertags: missing-libtool-update

I did a rebuild of all packages which are affected by bug #554821. As it seems
your package doesnt do the needed autoreconf needed for libtool. When doing
autoreconf or the needed sequence of different autotools/libtool utilities the
package should be able to fix the problem automatically.
/usr/share/doc/autotools-dev/README.Debian.gz explains it in section "Basic
summary of packaging source that uses autotools".

The build was done in a cowbuild chroot with the patch from #554821 included in
/usr/share/aclocal/libtool.m4 and binutils-gold installed. All logs were then
greped for -export-symbols-regex and not including -version-script. This
should indicate that your package doesnt do the required autoreconf with
updating the libtools stuff.

A small extra test output "test-version-script" was added to libtool.m4 and
silent mode was disabled in global ltmain.sh so it is easier for me to decide if
it was really updated in case libtool doesnt output the ld command to stdout.
So if the output and "test-version-script" is missing then your program doesnt
update the files. I am sorry if this is still a false positive.

udev 147-5 for example fails completely due to new (unknown) symbols appearing
inside the .so, but `autoreconf -fi -I m4` (with libtool.m4 installed on my
system with the mentioned patch) fixes the problem. I had to remove a patch
with touches Makefile.in, but the rest worked out of the box. Maybe it is
better to copy all clean files into a extra directory, run autoreconf inside
the directory, build and install everything from that directory and in clean
remove that directory. This way the diff.gz should be clean and you still do
the necessary autoreconf. A package which does that is g3dviewer. Many other
packages like libupnp4 and compizconfig-python just ignore the fact that these
changes are included in debian.tar.gz/diff.gz

The interesting output inside the log of your program is:

/bin/bash ../libtool  --tag=CC   --mode=link cc -Wall -Wcast-align -Wno-uninitialized -Wmissing-declarations -Wpointer-arith -Wcast-align -Wwrite-strings -Winit-self -Wreturn-type -Wformat-nonliteral -Wformat-security -Wmissing-include-dirs -Wmissing-format-attribute -Wsign-compare -Wtype-limits -Wuninitialized -Waggregate-return -Wdeclaration-after-statement -Wno-strict-aliasing  -g -O2 -g -Wall -O2 -version-info 1:1:0 -export-dynamic -no-undefined -export-symbols-regex '^dkp_.*' -Wl,--as-needed  -o libdevkit-power-gobject.la -rpath /usr/lib libdevkit_power_gobject_la-dkp-client.lo libdevkit_power_gobject_la-dkp-device.lo libdevkit_power_gobject_la-dkp-wakeups.lo libdevkit_power_gobject_la-dkp-qos-obj.lo libdevkit_power_gobject_la-dkp-history-obj.lo libdevkit_power_gobject_la-dkp-stats-obj.lo libdevkit_power_gobject_la-dkp-wakeups-obj.lo libdevkit_power_gobject_la-dkp-enum.lo  -lglib-2.0   -ldbus-glib-1 -ldbus-1 -lpthread -lrt -lgobject-2.0 -lglib-2.0   -lusb 
libtool: link: /usr/bin/nm -B  .libs/libdevkit_power_gobject_la-dkp-client.o .libs/libdevkit_power_gobject_la-dkp-device.o .libs/libdevkit_power_gobject_la-dkp-wakeups.o .libs/libdevkit_power_gobject_la-dkp-qos-obj.o .libs/libdevkit_power_gobject_la-dkp-history-obj.o .libs/libdevkit_power_gobject_la-dkp-stats-obj.o .libs/libdevkit_power_gobject_la-dkp-wakeups-obj.o .libs/libdevkit_power_gobject_la-dkp-enum.o   | sed -n -e 's/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /bin/sed 's/.* //' | sort | uniq > .libs/libdevkit-power-gobject.exp
libtool: link: /bin/grep -E -e "^dkp_.*" ".libs/libdevkit-power-gobject.exp" > ".libs/libdevkit-power-gobject.expT"
libtool: link: mv -f ".libs/libdevkit-power-gobject.expT" ".libs/libdevkit-power-gobject.exp"
libtool: link: cc -shared  .libs/libdevkit_power_gobject_la-dkp-client.o .libs/libdevkit_power_gobject_la-dkp-device.o .libs/libdevkit_power_gobject_la-dkp-wakeups.o .libs/libdevkit_power_gobject_la-dkp-qos-obj.o .libs/libdevkit_power_gobject_la-dkp-history-obj.o .libs/libdevkit_power_gobject_la-dkp-stats-obj.o .libs/libdevkit_power_gobject_la-dkp-wakeups-obj.o .libs/libdevkit_power_gobject_la-dkp-enum.o   -ldbus-glib-1 -ldbus-1 -lpthread -lrt /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so /usr/lib/libusb.so  -Wl,--as-needed   -Wl,-soname -Wl,libdevkit-power-gobject.so.1 -o .libs/libdevkit-power-gobject.so.1.0.1
libtool: link: (cd ".libs" && rm -f "libdevkit-power-gobject.so.1" && ln -s "libdevkit-power-gobject.so.1.0.1" "libdevkit-power-gobject.so.1")
libtool: link: (cd ".libs" && rm -f "libdevkit-power-gobject.so" && ln -s "libdevkit-power-gobject.so.1.0.1" "libdevkit-power-gobject.so")
libtool: link: ar cru .libs/libdevkit-power-gobject.a  libdevkit_power_gobject_la-dkp-client.o libdevkit_power_gobject_la-dkp-device.o libdevkit_power_gobject_la-dkp-wakeups.o libdevkit_power_gobject_la-dkp-qos-obj.o libdevkit_power_gobject_la-dkp-history-obj.o libdevkit_power_gobject_la-dkp-stats-obj.o libdevkit_power_gobject_la-dkp-wakeups-obj.o libdevkit_power_gobject_la-dkp-enum.o
libtool: link: ranlib .libs/libdevkit-power-gobject.a
libtool: link: ( cd ".libs" && rm -f "libdevkit-power-gobject.la" && ln -s "../libdevkit-power-gobject.la" "libdevkit-power-gobject.la" )
make[3]: Leaving directory `/home/peter/rebuild/build/devicekit-power/devicekit-power-012/devkit-power-gobject'





More information about the Pkg-utopia-maintainers mailing list