Bug#558553: Missing autoreconf to fix 554821 or similar bugs in the future

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


Source: gnome-keyring
Version: 2.28.1-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 	-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes 	-Wnested-externs -Wpointer-arith 	-Wcast-align -Wsign-compare 	-g -O2 -g -Wall -O2 -Wno-strict-aliasing -Wno-sign-compare -version-info 0:0:0 -no-undefined -export-symbols-regex 'gp11_*' -Wl,-O1 -Wl,-z,defs -Wl,--as-needed -o libgp11.la -rpath /usr/lib gp11-attributes.lo gp11-call.lo gp11-misc.lo gp11-module.lo gp11-object.lo gp11-session.lo gp11-slot.lo gp11-marshal.lo -lgobject-2.0 -lglib-2.0   -pthread -lgthread-2.0 -lrt -lglib-2.0   -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0   -lglib-2.0   
libtool: link: /usr/bin/nm -B  .libs/gp11-attributes.o .libs/gp11-call.o .libs/gp11-misc.o .libs/gp11-module.o .libs/gp11-object.o .libs/gp11-session.o .libs/gp11-slot.o .libs/gp11-marshal.o   | sed -n -e 's/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /bin/sed 's/.* //' | sort | uniq > .libs/libgp11.exp
libtool: link: /bin/grep -E -e "gp11_*" ".libs/libgp11.exp" > ".libs/libgp11.expT"
libtool: link: mv -f ".libs/libgp11.expT" ".libs/libgp11.exp"
libtool: link: cc -shared  .libs/gp11-attributes.o .libs/gp11-call.o .libs/gp11-misc.o .libs/gp11-module.o .libs/gp11-object.o .libs/gp11-session.o .libs/gp11-slot.o .libs/gp11-marshal.o   -Wl,--as-needed /usr/lib/libgthread-2.0.so -lrt /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libglib-2.0.so  -Wl,-O1 -Wl,-z -Wl,defs -pthread   -pthread -Wl,-soname -Wl,libgp11.so.0 -o .libs/libgp11.so.0.0.0
libtool: link: (cd ".libs" && rm -f "libgp11.so.0" && ln -s "libgp11.so.0.0.0" "libgp11.so.0")
libtool: link: (cd ".libs" && rm -f "libgp11.so" && ln -s "libgp11.so.0.0.0" "libgp11.so")
libtool: link: ar cru .libs/libgp11.a  gp11-attributes.o gp11-call.o gp11-misc.o gp11-module.o gp11-object.o gp11-session.o gp11-slot.o gp11-marshal.o
libtool: link: ranlib .libs/libgp11.a
libtool: link: ( cd ".libs" && rm -f "libgp11.la" && ln -s "../libgp11.la" "libgp11.la" )
cp gp11.pc gp11-0.pc
make[5]: Leaving directory `/home/peter/rebuild/build/gnome-keyring/gnome-keyring-2.28.1/gp11'
...
dpkg-gensymbols: warning: some new symbols appeared in the symbols file: see diff output below
dpkg-gensymbols: warning: debian/libgcr0/DEBIAN/symbols doesn't match completely debian/libgcr0.symbols
--- debian/libgcr0.symbols (libgcr0 amd64)
+++ dpkg-gensymbolst41UmI	2009-11-28 18:28:08.570336629 +0000
@@ -18,7 +18,120 @@
  _gcr_import_dialog_show_selected_slot at Base 2.26.0
  _gcr_initialize at Base 2.26.0
  _gcr_marshal_BOOLEAN__INT at Base 2.26.0
+ egg_asn1_decode at Base 2.28.1-2
+ egg_asn1_dn_parse at Base 2.28.1-2
+ egg_asn1_dn_print_value at Base 2.28.1-2
+ egg_asn1_element_content at Base 2.28.1-2
+ egg_asn1_element_length at Base 2.28.1-2
+ egg_asn1_encode at Base 2.28.1-2
+ egg_asn1_get_pk_asn1type at Base 2.28.1-2
+ egg_asn1_get_pkix_asn1type at Base 2.28.1-2
+ egg_asn1_read_boolean at Base 2.28.1-2
+ egg_asn1_read_content at Base 2.28.1-2
+ egg_asn1_read_date at Base 2.28.1-2
+ egg_asn1_read_dn at Base 2.28.1-2
+ egg_asn1_read_dn_part at Base 2.28.1-2
+ egg_asn1_read_element at Base 2.28.1-2
+ egg_asn1_read_oid at Base 2.28.1-2
+ egg_asn1_read_time at Base 2.28.1-2
+ egg_asn1_read_uint at Base 2.28.1-2
+ egg_asn1_read_value at Base 2.28.1-2
+ egg_asn1_time_parse_general at Base 2.28.1-2
+ egg_asn1_time_parse_utc at Base 2.28.1-2
+ egg_asn1_write_oid at Base 2.28.1-2
+ egg_asn1_write_uint at Base 2.28.1-2
+ egg_asn1_write_value at Base 2.28.1-2
+ egg_buffer_add_byte at Base 2.28.1-2
+ egg_buffer_add_byte_array at Base 2.28.1-2
+ egg_buffer_add_byte_array_empty at Base 2.28.1-2
+ egg_buffer_add_empty at Base 2.28.1-2
+ egg_buffer_add_string at Base 2.28.1-2
+ egg_buffer_add_stringv at Base 2.28.1-2
+ egg_buffer_add_uint16 at Base 2.28.1-2
+ egg_buffer_add_uint32 at Base 2.28.1-2
+ egg_buffer_add_uint64 at Base 2.28.1-2
+ egg_buffer_append at Base 2.28.1-2
+ egg_buffer_decode_uint16 at Base 2.28.1-2
+ egg_buffer_decode_uint32 at Base 2.28.1-2
+ egg_buffer_encode_uint16 at Base 2.28.1-2
+ egg_buffer_encode_uint32 at Base 2.28.1-2
+ egg_buffer_equal at Base 2.28.1-2
+ egg_buffer_get_byte at Base 2.28.1-2
+ egg_buffer_get_byte_array at Base 2.28.1-2
+ egg_buffer_get_string at Base 2.28.1-2
+ egg_buffer_get_stringv at Base 2.28.1-2
+ egg_buffer_get_uint16 at Base 2.28.1-2
+ egg_buffer_get_uint32 at Base 2.28.1-2
+ egg_buffer_get_uint64 at Base 2.28.1-2
+ egg_buffer_init at Base 2.28.1-2
+ egg_buffer_init_allocated at Base 2.28.1-2
+ egg_buffer_init_full at Base 2.28.1-2
+ egg_buffer_init_static at Base 2.28.1-2
+ egg_buffer_reserve at Base 2.28.1-2
+ egg_buffer_reset at Base 2.28.1-2
+ egg_buffer_resize at Base 2.28.1-2
+ egg_buffer_set_allocator at Base 2.28.1-2
+ egg_buffer_set_uint16 at Base 2.28.1-2
+ egg_buffer_set_uint32 at Base 2.28.1-2
+ egg_buffer_uninit at Base 2.28.1-2
+ egg_cleanup_perform at Base 2.28.1-2
+ egg_cleanup_register at Base 2.28.1-2
+ egg_cleanup_unregister at Base 2.28.1-2
+ egg_hex_decode at Base 2.28.1-2
+ egg_hex_encode at Base 2.28.1-2
+ egg_hex_encode_full at Base 2.28.1-2
  egg_libgcrypt_initialize at Base 2.26.0
+ egg_memory_fallback at Base 2.28.1-2
+ egg_memory_lock at Base 2.28.1-2
+ egg_memory_unlock at Base 2.28.1-2
+ egg_oid_get_description at Base 2.28.1-2
+ egg_oid_get_flags at Base 2.28.1-2
+ egg_oid_get_name at Base 2.28.1-2
+ egg_openssl_decrypt_block at Base 2.28.1-2
+ egg_openssl_encrypt_block at Base 2.28.1-2
+ egg_openssl_get_dekinfo at Base 2.28.1-2
+ egg_openssl_headers_new at Base 2.28.1-2
+ egg_openssl_parse_algo at Base 2.28.1-2
+ egg_openssl_pem_parse at Base 2.28.1-2
+ egg_openssl_prep_dekinfo at Base 2.28.1-2
+ egg_secure_alloc at Base 2.28.1-2
+ egg_secure_alloc_full at Base 2.28.1-2
+ egg_secure_check at Base 2.28.1-2
+ egg_secure_dump_blocks at Base 2.28.1-2
+ egg_secure_entry_get_activates_default at Base 2.28.1-2
+ egg_secure_entry_get_changed at Base 2.28.1-2
+ egg_secure_entry_get_has_frame at Base 2.28.1-2
+ egg_secure_entry_get_invisible_char at Base 2.28.1-2
+ egg_secure_entry_get_max_length at Base 2.28.1-2
+ egg_secure_entry_get_text at Base 2.28.1-2
+ egg_secure_entry_get_type at Base 2.28.1-2
+ egg_secure_entry_get_visibility at Base 2.28.1-2
+ egg_secure_entry_get_width_chars at Base 2.28.1-2
+ egg_secure_entry_new at Base 2.28.1-2
+ egg_secure_entry_reset_changed at Base 2.28.1-2
+ egg_secure_entry_set_activates_default at Base 2.28.1-2
+ egg_secure_entry_set_has_frame at Base 2.28.1-2
+ egg_secure_entry_set_invisible_char at Base 2.28.1-2
+ egg_secure_entry_set_max_length at Base 2.28.1-2
+ egg_secure_entry_set_text at Base 2.28.1-2
+ egg_secure_entry_set_visibility at Base 2.28.1-2
+ egg_secure_entry_set_width_chars at Base 2.28.1-2
+ egg_secure_free at Base 2.28.1-2
+ egg_secure_free_full at Base 2.28.1-2
+ egg_secure_realloc at Base 2.28.1-2
+ egg_secure_realloc_full at Base 2.28.1-2
+ egg_secure_strclear at Base 2.28.1-2
+ egg_secure_strdup at Base 2.28.1-2
+ egg_secure_strfree at Base 2.28.1-2
+ egg_secure_validate at Base 2.28.1-2
+ egg_secure_warnings at Base 2.28.1-2
+ egg_symkey_generate_pbe at Base 2.28.1-2
+ egg_symkey_generate_pbkdf2 at Base 2.28.1-2
+ egg_symkey_generate_pkcs12 at Base 2.28.1-2
+ egg_symkey_generate_simple at Base 2.28.1-2
+ egg_symkey_read_cipher at Base 2.28.1-2
+ egg_unix_credentials_read at Base 2.28.1-2
+ egg_unix_credentials_write at Base 2.28.1-2
  gcr_certificate_basics_widget_get_certificate at Base 2.26.0
  gcr_certificate_basics_widget_get_type at Base 2.26.0
  gcr_certificate_basics_widget_new at Base 2.26.0
@@ -66,3 +179,5 @@
  gcr_parser_parse_data at Base 2.26.0
  gcr_simple_certificate_get_type at Base 2.26.0
  gcr_simple_certificate_new at Base 2.26.0
+ pk_asn1_tab at Base 2.28.1-2
+ pkix_asn1_tab at Base 2.28.1-2






More information about the pkg-gnome-maintainers mailing list