Hi,
I'm porting Debian to Interix. See http://www.debian-interix.net
for details.
While porting ncurses I hit this bug.
Looking at the buildd logs for kfreebsd-i386 also shows it's appearing
there:
https://buildd.debian.org/fetch.cgi?pkg=ncurses&arch=kfreebsd-i386&ver=5.7%2B20090607-1&stamp=1247016486&file=log&as=raw
says:
dh_shlibdeps -s -Nlibncurses5 -Nlibncursesw5 \
-Nlib32ncurses5 -Nlib32ncursesw5 -Nlib64ncurses5 \
-ldebian/libncurses5/lib:debian/libncurses5/usr/lib:debian/libncursesw5/usr/lib
dpkg-shlibdeps: warning: debian/ncurses-bin/usr/bin/tic contains an
unresolvable reference to symbol _tracef: it's probably a plugin.
Looking at debian/rules, target "install" shows the problem:
# Install into our base directory
GZIP='-9' $(MAKE) -C $(objdir-debug) install
$(MAKE) -C $(wobjdir-debug) install.libs
# Copy libraries to the debug directory
[...]
# Install non -DTRACE versions.
$(MAKE) -C $(objdir) install.libs
$(MAKE) -C $(wobjdir) install.libs
So the debug version is distributed in the standard debian package,
used together with the non-debug libncurses.so. This is incorrect as
tic in the debug version uses the DEBUG macro and so the _tracef()
symbol:
progs/tic.c:check_termtype()
if (check_sgr0 != exit_attribute_mode) {
DEBUG(2,
("will trim sgr0\n\toriginal sgr0=%s\n\ttrimmed sgr0=%s",
_nc_visbuf2(1, exit_attribute_mode),
_nc_visbuf2(2, check_sgr0)));
free(check_sgr0);
} else {
DEBUG(2,
("will not trim sgr0\n\toriginal sgr0=%s",
_nc_visbuf(exit_attribute_mode)));
}
include/tic.h:
#ifdef TRACE
#define DEBUG(n, a) if (_nc_tracing >= DEBUG_LEVEL(n)) _tracef a
#else
#define DEBUG(n, a) /*nothing*/
#endif
but this is only available in the debug version of libncurses.so.
On Interix the dynamic loader isn't lazy, so I can't even start tic.
On Linux it is apparently lazy and so the error only occurs if tic is
used with a debug level high enough to call _tracef().
So instead of
$(MAKE) -C $(objdir) install.libs
debian/rules should read
GZIP='-9' $(MAKE) -C $(objdir) install
so that the non-debug non-lib programs are used.
Martin
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org