[Pkg-xfce-devel] Bug#558538: Missing autoreconf to fix 554821 or similar bugs in the future
- Subject: [Pkg-xfce-devel] Bug#558538: Missing autoreconf to fix 554821 or similar bugs in the future
- From: peter.fritzsche at gmx.de (Peter Fritzsche)
- Date: Sun, 29 Nov 2009 02:40:06 +0100
- Message-id: <[🔎] email@example.com>
User: peter.fritzsche at gmx.de
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 x86_64-linux-gnu-gcc -I.. -I../common -I.. -I../common -DLIBXFCONF_COMPILATION -DG_LOG_DOMAIN=\"xfconf\" -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -Wall -g -O2 -export-dynamic -version-info 2:0:0 -export-symbols-regex "^[^_].*" -no-undefined -Wl,-z,defs -Wl,--as-needed -o libxfconf-0.la -rpath /usr/lib libxfconf_0_la-xfconf-binding.lo libxfconf_0_la-xfconf-channel.lo libxfconf_0_la-xfconf.lo libxfconf_0_la-xfconf-types.lo ../common/libxfconf-common.la -lgobject-2.0 -lglib-2.0 -ldbus-1 -lpthread -lrt -ldbus-glib-1 -ldbus-1 -lpthread -lrt -lgobject-2.0 -lglib-2.0
libtool: link: /usr/bin/nm -B .libs/libxfconf_0_la-xfconf-binding.o .libs/libxfconf_0_la-xfconf-channel.o .libs/libxfconf_0_la-xfconf.o .libs/libxfconf_0_la-xfconf-types.o ../common/.libs/libxfconf-common.a | sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /bin/sed 's/.* //' | sort | uniq > .libs/libxfconf-0.exp
libtool: link: /bin/grep -E -e "^[^_].*" ".libs/libxfconf-0.exp" > ".libs/libxfconf-0.expT"
libtool: link: mv -f ".libs/libxfconf-0.expT" ".libs/libxfconf-0.exp"
libtool: link: x86_64-linux-gnu-gcc -shared .libs/libxfconf_0_la-xfconf-binding.o .libs/libxfconf_0_la-xfconf-channel.o .libs/libxfconf_0_la-xfconf.o .libs/libxfconf_0_la-xfconf-types.o -Wl,--whole-archive ../common/.libs/libxfconf-common.a -Wl,--no-whole-archive -ldbus-glib-1 -ldbus-1 -lpthread -lrt /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so -Wl,-z -Wl,defs -Wl,--as-needed -Wl,-soname -Wl,libxfconf-0.so.2 -o .libs/libxfconf-0.so.2.0.0
libtool: link: (cd ".libs" && rm -f "libxfconf-0.so.2" && ln -s "libxfconf-0.so.2.0.0" "libxfconf-0.so.2")
libtool: link: (cd ".libs" && rm -f "libxfconf-0.so" && ln -s "libxfconf-0.so.2.0.0" "libxfconf-0.so")
libtool: link: (cd .libs/libxfconf-0.lax/libxfconf-common.a && ar x "/home/peter/rebuild/build/xfconf/xfconf-4.6.1/xfconf/../common/.libs/libxfconf-common.a")
libtool: link: ar cru .libs/libxfconf-0.a libxfconf_0_la-xfconf-binding.o libxfconf_0_la-xfconf-channel.o libxfconf_0_la-xfconf.o libxfconf_0_la-xfconf-types.o .libs/libxfconf-0.lax/libxfconf-common.a/libxfconf_common_la-xfconf-errors.o .libs/libxfconf-0.lax/libxfconf-common.a/libxfconf_common_la-xfconf-marshal.o
libtool: link: ranlib .libs/libxfconf-0.a
libtool: link: rm -fr .libs/libxfconf-0.lax
libtool: link: ( cd ".libs" && rm -f "libxfconf-0.la" && ln -s "../libxfconf-0.la" "libxfconf-0.la" )
make: Leaving directory `/home/peter/rebuild/build/xfconf/xfconf-4.6.1/xfconf'