FS#21604 - [db] dbm compatibility missing in 5.1.19.2
Attached to Project:
Arch Linux
Opened by Benoit Izac (benizac) - Thursday, 04 November 2010, 22:06 GMT
Last edited by Allan McRae (Allan) - Thursday, 11 November 2010, 04:21 GMT
Opened by Benoit Izac (benizac) - Thursday, 04 November 2010, 22:06 GMT
Last edited by Allan McRae (Allan) - Thursday, 11 November 2010, 04:21 GMT
|
Details
Since I upgraded db from 4.8.26-2 to 5.1.19-2, the dbm
compatibility is missing:
$ cat test.c #define DB_DBM_HSEARCH 1 #include <db.h> int main(void) { DBM *db = dbm_open("/dev/null", 0, 0600); return 0; } $ gcc -ldb test.c /tmp/ccvbSNOF.o: In function `main': test.c:(.text+0x18): undefined reference to `__db_ndbm_open' collect2: ld returned 1 exit status This is a problem for application like inn who needs it in authprogs/ckpasswd.c. Please add --enable-dbm to ../dist/configure. Without --enable-dbm (current package): $ nm /usr/lib/libdb.a 2>/dev/null | grep dbm_open $ With: $ nm pkg/usr/lib/libdb.a 2>/dev/null | grep dbm_open 0000000000000050 T __db_ndbm_open $ |
This task depends upon
Closed by Allan McRae (Allan)
Thursday, 11 November 2010, 04:21 GMT
Reason for closing: Implemented
Additional comments about closing: db-5.1.19-3
Thursday, 11 November 2010, 04:21 GMT
Reason for closing: Implemented
Additional comments about closing: db-5.1.19-3
PAM unable to dlopen(/lib/security/pam_userdb.so): /lib/security/pam_userdb.so: undefined symbol: __db_ndbm_firstkey
PAM adding faulty module: /lib/security/pam_userdb.so
verifying resolved functions :
ldd -r /lib/security/pam_userdb.so
linux-vdso.so.1 => (0x00007fff549ff000)
libpam.so.0 => /lib/libpam.so.0 (0x00007f831b4f8000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f831b2f4000)
libdb-5.1.so => /usr/lib/libdb-5.1.so (0x00007f831af72000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007f831ad3b000)
libc.so.6 => /lib/libc.so.6 (0x00007f831a9de000)
/lib/ld-linux-x86-64.so.2 (0x00007f831b913000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f831a7c0000)
undefined symbol: __db_ndbm_firstkey (/lib/security/pam_userdb.so)
undefined symbol: __db_ndbm_open (/lib/security/pam_userdb.so)
undefined symbol: __db_ndbm_nextkey (/lib/security/pam_userdb.so)
undefined symbol: __db_ndbm_close (/lib/security/pam_userdb.so)
undefined symbol: __db_ndbm_fetch (/lib/security/pam_userdb.so)
It is possible to repair it with the suggested parameter:
Fix using ABS:
add --enable-dbm to PKGBUILD build() ./configure of last db abs-source:
build() {
cd ${srcdir}/$pkgname-${_basever}/build_unix
../dist/configure --prefix=/usr --enable-compat185 \
--enable-shared --enable-static --enable-cxx --enable-dbm
[wceren@canete db]$ makepkg -s
$ sudo pacman -U db-5.1.19-2-x86_64.pkg.tar.xz
$ ldd -r /lib/security/pam_userdb.so
linux-vdso.so.1 => (0x00007fff2a688000)
libpam.so.0 => /lib/libpam.so.0 (0x00007f8536ef7000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f8536cf3000)
libdb-5.1.so => /usr/lib/libdb-5.1.so (0x00007f8536970000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007f8536739000)
libc.so.6 => /lib/libc.so.6 (0x00007f85363dc000)
/lib/ld-linux-x86-64.so.2 (0x00007f8537312000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f85361be000)
;-) It's fun, now PAM-BerkeleyDB Auth it's functional!