ncurses and ncursesw
Dennis Veatch
dennisveatch at bellsouth.net
Fri Apr 29 19:13:28 CEST 2011
The way ncursesw installs or rather does not install all the things it does is
not sufficient to support other modules requiring a wide terminal. Two I am
aware of are; cdw-0.6.0 (not in moonbase atm) and the ncurses version of
x3270. I think there may be a few others but do not recall atm.
I have done some poking around with this module and came up with this;
(
if [ $WITH_DEBUG == "y" ]; then
OPTS+=" --with-debug"
else
OPTS+=" --without-debug"
fi;
if [ $WITH_PROFILING == "y" ]; then
OPTS+=" --with-profile"
else
OPTS+=" --without-profile"
fi;
# Seems that ncurses-5.5 has problems with garbage in /usr/share/terminfo
# Note: ncurses-5.5 also has all the "screen" files for terminfo, so no
recompile is needed
rm -rf /usr/share/terminfo &&
# ************************ WARNING *************************
# DO NOT MESS WITH THE CONFIGURE STUFF here unless you
# really know what you're doing! We chose the lib location
# specifically so we could link ncurses to bash which is
# needed at init time! If you move it you could break your
# system!
unset CC CXX
set -x
./configure --build=$BUILD \
--prefix=/usr \
--libdir=/lib \
--with-normal \
--with-shared \
--mandir=/usr/share/man \
--with-manpage-format=gzip \
--disable-termcap \
--enable-colorfgbg \
--with-terminfo-dirs=/usr/share/terminfo \
$OPTS &&
default_make &&
set +x &&
# Now to make nucurses wide
make clean &&
unset CC CXX &&
set -x
./configure --build=$BUILD \
--prefix=/usr \
--libdir=/lib \
--with-normal \
--with-shared \
--includedir=/usr/include/ncursesw \
--mandir=/usr/share/man \
--with-manpage-format=gzip \
--disable-termcap \
--enable-colorfgbg \
--with-terminfo-dirs=/usr/share/terminfo \
--enable-widec \
$OPTS &&
set +x &&
default_make &&
gather_docs ANNOUNCE TODO
) > $C_FIFO 2>&1
The second build just runs with widec and installs the needed headers in
/usr/include/ncursesw. Attached are some install logs from a "non-wide"
ncurses and one from the above BUILD. The gist is this;
1. all wide versions of libs are append with a "w" such as libmenuw.so while
the libmenu.so remains.
2, all wide headers are placed in include/ncursesw to avoid some conflicts in
naming conventions with some of the same header names needed by non-wide and
wide.
Before recompiling any modules the machine was rebooted and all is well. I
then recompiled a few modules such as; grub, screen, samba, cdw-0.6.0, NVIDIA-
beta and a few others with no issues.
I have a foggy recollection from some years back when cmak wanted ncursesw. I
do not recall the reasons for its denial and find the addition of the nucrsesw
modules a bit odd. If we intend to make such available then we should
correctly install the needed libs/headers to support wide.
--
Dennis `stumbles` Veatch
Lunar Linux Developer
http://www.lunar-linux.org/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ncurses-5.9.wide.and.nonwide.install.log
Type: text/x-log
Size: 94504 bytes
Desc: not available
URL: <http://foo-projects.org/pipermail/lunar-dev/attachments/20110429/7b12a94f/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: non-widencurses.install.log
Type: text/x-log
Size: 93512 bytes
Desc: not available
URL: <http://foo-projects.org/pipermail/lunar-dev/attachments/20110429/7b12a94f/attachment-0003.bin>
More information about the Lunar-dev
mailing list