Package: libtdb1 Version: 1.1.2~git20080615-1 Severity: serious Justification: ABI breakage.
Hello, so, while checking whether #510886 applies to the testing version as well, I've discovered that it broke the ABI without a SONAME bump. Here's how I found that: | wget -q http://ftp.ee.debian.org/debian/pool/main/t/tdb/libtdb1_1.0.6-13_amd64.deb | wget -q http://ftp.es.debian.org/debian/pool/main/t/tdb/libtdb1_1.1.2~git20080615-1_amd64.deb | dpkg -x libtdb1_1.0.6-13_amd64.deb etch | dpkg -x libtdb1_1.1.2\~git20080615-1_amd64.deb lenny | nm -D etch/usr/lib/libtdb.so.1|cut -b 18-|sort > etch.list | nm -D lenny/usr/lib/libtdb.so.1|cut -b 18-|sort > lenny.list | diff -u etch.list lenny.list > tdb-symbols.diff (If you want to look at the i386 binaries, I think you want “cut -b 10-”, though it's been a while since I last checked that.) Also, I'm attaching the diff, just in case. We don't care about 'U' ones, of course. Checking which ones got away: | grep ^-T tdb-symbols.diff | -T tdb_clear_spinlocks | -T tdb_create_rwlocks | -T tdb_logging_function | -T tdb_set_lock_alarm | -T tdb_spinlock | -T tdb_spinunlock That *might* not be the problem if they are not exposed through the API. But both tdb_logging_function and tdb_set_lock_alarm are exposed. I'm going to have a look at the packages that depend on this library, to see how things looks like. I'm in contact with a release manager as well (hello dato). Mraw, KiBi.
--- etch.list 2009-01-06 17:39:44.000000000 +0100 +++ lenny.list 2009-01-06 17:39:53.000000000 +0100 @@ -2,57 +2,139 @@ A _edata A _end B tdb_null +T dummy_snprintf T _fini T _init +T rep_getpass +T replace_dummy +T rep_strlcat +T rep_strlcpy +T tdb_add_flags +T tdb_allocate +T tdb_alloc_read T tdb_append +T tdb_brlock +T tdb_brlock_upgrade T tdb_chainlock +T tdb_chainlock_mark +T tdb_chainlock_nonblock T tdb_chainlock_read +T tdb_chainlock_unmark T tdb_chainunlock T tdb_chainunlock_read -T tdb_clear_spinlocks T tdb_close -T tdb_create_rwlocks +T tdb_convert T tdb_delete +T tdb_do_delete T tdb_dump_all +T tdb_enable_seqnum T tdb_error T tdb_errorstr T tdb_exists +T tdb_expand +T tdb_fd T tdb_fetch +T tdb_find_lock_hash T tdb_firstkey +T tdb_free +T tdb_freelist_size +T tdb_get_flags +T tdb_get_logging_private +T tdb_get_seqnum +T tdb_hash_size +T tdb_increment_seqnum_nonblock +T tdb_io_init +T tdb_lock T tdb_lockall -T tdb_logging_function +T tdb_lockall_mark +T tdb_lockall_nonblock +T tdb_lockall_read +T tdb_lockall_read_nonblock +T tdb_lockall_unmark +T tdb_lock_nonblock +T tdb_lock_record +T tdb_log_fn +T tdb_map_size +T tdb_mmap +T tdb_munmap +T tdb_name T tdb_nextkey +T tdb_ofs_read +T tdb_ofs_write T tdb_open T tdb_open_ex +T tdb_parse_data +T tdb_parse_record T tdb_printfreelist +T tdb_rec_free_read +T tdb_rec_read +T tdb_rec_write +T tdb_remove_flags T tdb_reopen T tdb_reopen_all -T tdb_set_lock_alarm -T tdb_spinlock -T tdb_spinunlock +T tdb_setalarm_sigptr +T tdb_set_logging_function +T tdb_set_max_dead T tdb_store +T tdb_transaction_cancel +T tdb_transaction_commit +T tdb_transaction_lock +T tdb_transaction_recover +T tdb_transaction_start +T tdb_transaction_unlock T tdb_traverse +T tdb_traverse_read +T tdb_unlock T tdb_unlockall +T tdb_unlockall_read +T tdb_unlock_record +T tdb_validate_freelist +T tdb_wipe_all +T tdb_write_lock_record +T tdb_write_unlock_record U calloc U close U __errno_location +U exit +U fclose U fcntl +U fflush +U fgets +U fileno +U fopen +U fputc +U fputs U free +U fsync U ftruncate U __fxstat +U getpagesize U lseek U malloc U memcpy U memset U mmap +U msync U munmap U open +U pread U printf U puts +U pwrite U read U realloc +U select +U setvbuf +U signal +U stderr +U stdin +U stdout U __strdup U strerror +U strlen +U tcgetattr +U tcsetattr +U utime U write w __cxa_finalize w __gmon_start__