Samba v4.2.0 vs. v4.3.5 and -ltinfo
uri at samba.org
Fri Mar 4 19:26:19 UTC 2016
On 03/04/2016 07:48 PM, David Hauck wrote:
> I've been working on migrating my cross-build from v4.2.0 to v4.3.5 (latest stable). I finally got this building but wanted to ask about the one build failure I initially encountered. Specifically this related to a missing libtinfo.so. My build environment includes 'ncurses' built without the --with-termlib autoconf parameter set (hence no libtinfo) and so packages that rely on 'ncurses', and that expect to use -ltinfo, will fail during link.
> Fixing this requires either: 1) rebuilding 'ncurses' with --with-termlib, or 2) soft-linking libtinfo.so to libncurses.so. My solution was the latter since rebuilding 'ncurses' would require other (non-samba) packages that rely on 'ncurses' to be rebuilt as well (since they would now likely need to include '-ltinfo' in their link commands). This latter option is not viable in my (current) environment.
> I've been trying to locate where/when the -ltinfo link option was added to the samba build (somewhere between v4.2.0 and v4.3.5). Unfortunately my perusal of the git logs and my searching through the waf scripts hasn't turned anything up. Can anyone help me with this? What is the new reliance on libtinfo (as opposed to just libncurses) and when was this added? Shouldn't there be some autoconf-like determination for whether this library exists?
> I've been wondering if the -ltinfo was somehow added dynamically as a result of 'waf configure' (since I can't find reference to it in the git logs). However, I also don't see anything related to 'tinfo' in the waf scripts either (except for one single reference in libcli/readline/wscript_configure). Admittedly, my current familiarity with samba source, and waf specifically, is thin at best so I'm likely just missing something obvious.
> Any help would be appreciated.
Haven't looked into that, but I know that adding ncurses to build env
broke our (cross) samba build, and that --without-regedit in samba
configure was the workaround. So if you don't need regedit that could be
a quick fix.
After a quick look, I would guess that the samba configuration script
for ncurses does not support cross-compiling because it runs
ncurses5-config or ncurses6-config, but the wrong ones - the system
ones. See source3/wscript_configure_system_ncurses.
Hope that helps,
More information about the samba-technical