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
Task Type Bug Report
Category Packages
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

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

Closed by  Doug Newgard (Scimmia)
Sunday, 03 January 2016, 04:08 GMT
Reason for closing:  Fixed
Comment by Dave Reisner (falconindy) - Wednesday, 15 May 2013, 19:39 GMT
readelf -d /usr/bin/ntlm_auth | grep iniparser
0x0000000000000001 (NEEDED) Shared library: [libiniparser.so]

No dependency? Maybe the package doesn't have it explicitly listed, but it's absolutely there.
Comment by Gustavo Alvarez (sl1pkn07) - Wednesday, 15 May 2013, 19:41 GMT
my commentary was not a statement
Comment by Dave Reisner (falconindy) - Wednesday, 15 May 2013, 19:49 GMT
I don't even know what to say to that. The problem here is community/iniparser, not samba (though the missing optdep is concerning).
Comment by Dave Reisner (falconindy) - Wednesday, 15 May 2013, 19:50 GMT
libiniparser.so also has an RPATH that needs to disappear.
Comment by Sergej Pupykin (sergej) - Monday, 03 June 2013, 16:46 GMT
iniparser overrides /usr/lib/samba/libiniparser.so with /usr/lib/libiniparser.so

Not sure what can I do. Move .so to another location?
Comment by Dave Reisner (falconindy) - Monday, 03 June 2013, 17:04 GMT
So, looking into this more...

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.
Comment by Dave Reisner (falconindy) - Monday, 03 June 2013, 20:48 GMT
Seems like the thing to do here is simply to pass --disable-rpath instead of --disable-rpath-install. The resulting libs in /usr/lib/samba then only have /usr/lib/samba as the RPATH:

$ 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

Comment by Tobias Powalowski (tpowa) - Tuesday, 04 June 2013, 06:13 GMT
As far as I see, fedora uses the standard iniparser and disables sambas iniparser.
Comment by Dave Reisner (falconindy) - Tuesday, 04 June 2013, 12:57 GMT
Sure, that means moving iniparser to [extra] and making it a dep, if that's what you want to do.
Comment by Gustavo Alvarez (sl1pkn07) - Wednesday, 07 May 2014, 09:34 GMT
  • Field changed: Percent Complete (100% → 0%)
still happen in samba 4.1.7-1

└───╼ ldd /usr/bin/ntlm_auth
/usr/bin/ntlm_auth: /usr/lib/libiniparser.so: no version information available (required by /usr/bin/ntlm_auth)
Comment by Marco Romera (marcorc) - Friday, 09 May 2014, 12:24 GMT
I think this is related with "wine":

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.
Comment by Jon Gerdes (gerdesj) - Sunday, 11 May 2014, 17:53 GMT
Backreving wine is unlikely to fix this because libiniparser is a package that is a dependency of samba (neither of which is wine) ntlm_auth is in samba.

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.
Comment by Gustavo Alvarez (sl1pkn07) - Saturday, 02 January 2016, 15:10 GMT
some time has passed, and i think this bug is fixed (i don't know when)

└───╼ 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

Loading...