FS#35313 - [iniparser] strange message in "ldd /usr/bin/ntlm_auth"
Attached to Project:
Arch Linux
Opened by Gustavo Alvarez (sl1pkn07) - Wednesday, 15 May 2013, 19:29 GMT
Last edited by Doug Newgard (Scimmia) - Sunday, 03 January 2016, 04:08 GMT
Opened by Gustavo Alvarez (sl1pkn07) - Wednesday, 15 May 2013, 19:29 GMT
Last edited by Doug Newgard (Scimmia) - Sunday, 03 January 2016, 04:08 GMT
|
Details
└───╼ ldd /usr/bin/ntlm_auth
/usr/bin/ntlm_auth: /usr/lib/libiniparser.so: no version information available (required by /usr/bin/ntlm_auth) linux-vdso.so.1 (0x00007fff033a5000) libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fb17bc31000) libpopt_samba3.so => /usr/lib/samba/libpopt_samba3.so (0x00007fb17ba2b000) libsamba-util.so.0 => /usr/lib/libsamba-util.so.0 (0x00007fb17b7f8000)...... samba don't have iniparser of dependency |
This task depends upon
0x0000000000000001 (NEEDED) Shared library: [libiniparser.so]
No dependency? Maybe the package doesn't have it explicitly listed, but it's absolutely there.
Not sure what can I do. Move .so to another location?
samba's libiniparser "correctly" has an RPATH, however it incorrectly lists /usr/lib as higher priority than /usr/lib/samba, meaning /usr/lib/libiniparser.so gets picked over /usr/lib/samba/libiniparser.so by ntlm_auth. Since the two libiniparser.so files are different, this is potentially crashy.
You can see that ntlm_auth picks the wrong soname when iniparser is installed:
$ LD_DEBUG=files ntlm_auth
...snipped...
1996: file=libiniparser.so [0]; needed by ntlm_auth [0]
1996: file=libiniparser.so [0]; generating link map
1996: dynamic: 0x00007f230d5e5018 base: 0x00007f230d3e2000 size: 0x0000000000203b68
1996: entry: 0x00007f230d3e3070 phdr: 0x00007f230d3e2040 phnum: 6
...snipped...
1996: /usr/lib/libiniparser.so: error: version lookup error: no version information available (required by ntlm_auth) (continued)
ntlm_auth: /usr/lib/libiniparser.so: no version information available (required by ntlm_auth)
...snipped...
Without iniparser installed, ntlm_auth has the correct so pulled in:
$ LD_DEBUG=files ntlm_auth
...snipped...
2090: file=libiniparser.so [0]; needed by ntlm_auth [0]
2090: file=libiniparser.so [0]; generating link map
2090: dynamic: 0x00007ffeed211dd8 base: 0x00007ffeed00e000 size: 0x00000000002051e8
2090: entry: 0x00007ffeed00f640 phdr: 0x00007ffeed00e040 phnum: 7
...snipped...
2090: calling init: /usr/lib/samba/libiniparser.so
...snipped...
So, I take back what I said about this being an iniparser problem -- it definitely needs to be fixed in samba so that the RPATH is only /usr/lib/samba.
$ readelf -d usr/lib/samba/libiniparser.so
Dynamic section at offset 0x3dd8 contains 28 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libiniparser.so]
0x000000000000000f (RPATH) Library rpath: [/usr/lib/samba]
0x000000000000000c (INIT) 0x13a0
0x000000000000000d (FINI) 0x2958
...snipped...
It's not clear if this is the intended behavior, as --disable-rpath-install sounds like it does what we want it to, and the upstream documentation supports this:
http://wiki.samba.org/index.php/Waf#controlling_rpath
└───╼ ldd /usr/bin/ntlm_auth
/usr/bin/ntlm_auth: /usr/lib/libiniparser.so: no version information available (required by /usr/bin/ntlm_auth)
Trying to install winetricks component 'vcrun2008' with wine (32 and 64 bit wineprefix), I get this error:
/usr/bin/ntlm_auth: /usr/lib/libiniparser.so: no version information available (required by /usr/bin/ntlm_auth)
I has the system with everything updated to 2014-05-09 (wine 1.7.18-1).
Rolling back to wine 1.7.17-1 it works: no libiniparser.so error.
The bug is important because it makes impossible to install anything with wine that comes packaged as *.msi (Windows Installer) file.
Now I have wine package frozen with "IgnorePkg = wine" in /etc/pacman.conf waiting for a solution to this bug.
WORKAROUND:
Remove /lib/libiniparser.so and .so.0 and then running ldconfig -v.
Set up wine or run things that need to use ntlm_auth
Re-install libiniparser.
As Samba has its own libiniparser is the dep required anymore? I am no expert and have done no more research.
└───╼ ldd /usr/bin/ntlm_auth
linux-vdso.so.1 (0x00007ffea3bfe000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007ff6e513f000)
libpopt-samba3-samba4.so => /usr/lib/samba/libpopt-samba3-samba4.so (0x00007ff6e4f3a000)
libsamba-util.so.0 => /usr/lib/libsamba-util.so.0 (0x00007ff6e4ccf000)
---snip---
zero strange messages
then can close it