This is the mail archive of the
mailing list for the Cygwin project.
- To: cygwin-announce at sources dot redhat dot com
- Subject: Updated: ncurses-5.2-4
- From: "Charles S. Wilson" <cwilson at ece dot gatech dot edu>
- Date: Sun, 04 Feb 2001 16:22:22 -0500
The ncurses package has been updated to ncurses-5.2-4. ncurses is a
package that provides character and terminal handling libraries,
including 'gui-like' panels and menus. It is often used instead of
Unfortunately, this 'official announcement' is somewhat overdue. I
uploaded ncurses as a test release and announced it on the cygwin list
(*not* cygwin-announce) as such. However, because I goofed in writing
the setup.hint file, the mirrors did *not* recognize it as a test
release -- so many folks have been using it as an 'official' version for
two weeks now. Sorry about that. Fortunately, it seems okay. So, for
those of you on the cygwin-announce list, here's the official release
CHANGES from ncurses-5.2-3
o header files are now installed into /usr/include/ncurses (although
there are a few compatibility symlinks in /usr/include. Implication:
since the ncurses termcap.h header is installed into
/usr/include/ncurses, it is NOT renamed to "termcapn.h" as it was in
ncurses-5.2-3 and previous. Note that configure scripts will look in
/usr/include/ncurses for the ncurses headers automatically, so this
change should not break well-written packages which depend on ncurses.
o Therefore, if you want to use ncurses as a termcap *replacement*
without using additional curses features -- that is, your source code
#include's <termcap.h>, NOT <curses.h> -- then you need to specify
-I/usr/include/ncurses when compiling. This forces gcc to include the
proper termcap.h file for ncurses. Also, remember to use -lncurses
instead of -ltermcap when linking. (Of course, if you want to use
ncurses and the terminfo database is all their glory, just #include
<curses.h> and link to -lncurses as usual).
o Some documentation updates in /usr/doc/ncurses-5.2.README
o supports the '-DALL_STATIC' compile-time flag as a synonym for
-DNCURSES_STATIC. This should help make it easier to compile statically
a project with many dependencies. However, this is a long-term project:
each 'dll-ized' library must be updated before '-DALL_STATIC' is
useful. Don't hold your breath. So far, the following libraries
o Now available in "cygwin/latest", not "cygwin/contrib"
o While this is not really an ncurses update, it reflects on ncurses'
operation: as of cygwin-1.1.7, there is a new CYGWIN setting:
"CYGWIN=codepage:oem". If you use this setting, then the ACS (linedraw)
characters provided by ncurses work properly within a DOS box with no
other special steps.
o see the note below titled "CONNECTING TO REMOTE SYSTEMS"
o cygwin-1.1.7 and previous included a non-functional
"/usr/include/unctrl.h". This package will overwrite that one with its
own, functional version. cygwin-1.1.8 does not include that file, but
you may run into problems during the cygwin upgrade -- setup might
mistakenly uninstall unctrl.h. If it does, just (cd /usr/include; ln -s
ncurses/unctrl.h unctrl.h). I recommend upgrading cygwin to 1.1.8
FIRST, and then re-run setup to upgrade ncurses to 5.2-4. Of course,
that's a moot point since many of you probably already upgraded ncurses
thanks to my mistake with the setup.hint file.
To update your installation, click on the "Install Cygwin now" link on
the http://sources.redhat.com/cygwin web page. This downloads setup.exe
to your system.
Run setup and answer all of the questions. PLEASE, PLEASE, PLEASE
choose a mirror site for your download. The 'sources.redhat.com' site
is badly overloaded. Try these mirrors:
The setup.exe program will figure out what needs to be updated on your
system and should install the ncurses package automatically.
If you want to make a point or ask a question the Cygwin mailing list is
the appropriate place.
*** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***
If you want to unsubscribe to the cygwin-announce mailing list, look at
the "List-Unsubscribe: " tag in the email header of this message. Send
email to the address specified there. It will be in the format:
o Building the package from source requires gcc-2.95.2-7 and
binutils-20001221-1 or later
o A cygwin-specific README and two PATCHES are stored in the source
archive, under <top>/CYGWIN-PATCHES/* (although the first patch,
ncurses-5.2-X.patch, has already been applied to the archive itself).
The cygwin-specific README is also installed by the binary distribution
as described above.
o If you are building a package that depends on the ncurses library, and
you wish to link *statically*, define -DNCURSES_STATIC (or -DALL_STATIC)
to get the 'correct' #define's in ncurses.h &tc. when compiling the .o
files in your package. Also, use 'gcc -static' when linking your
o No special -Ddefine options or link options are needed when building a
package that depends any of the ncurses libraries and you want to link
o resolved the known conflicts. Ncurses provides some files that
conflict with the files included in other packages. Those conflicts
were resolved as follows:
clear package: /usr/bin/clear.exe
resolution: 5.2-4 installs its clear.exe as clearn.exe
termcap package: /usr/include/termcap.h
resolution: ncurses-5.2-4 installs its termcap into
cygwin package: /usr/include/unctrl.h
resolution: ncurses overwrites the version included in
older cygwins. However, as of cygwin-1.1.8
there is no conflict.
*********** TERMINFO ENTRIES ***********
----changes relative to base ncurses-5.2 distribution----
o updated the cygwin terminfo entry -- basically Earnie's "original"
version which appeared in 5.2-1, with some additional suggestions from
point (2) only. point (1) in that message is a cygwin issue (and is
probably a non-issue, according to JJ Farell):
Comments concerning my test results with this terminfo entry appear
o updated the rxvt terminfo entry with some changes from rxvt-2.6.3.
o added rxvt-xpm, rxvt-color aliases for rxvt in the terminfo database
o added rxvt-cygwin and rxvt-cygwin-native terminfo entries
These entries combine mostly rxvt stuff with the ACSC stuff that
Earnie worked out for Windows/DOS line graphics. Comments concerning my
test results with these terminfo entries appear below. If you use
TERM=rxvt-cygwin or TERM=rxvt-cygwin-native you'll also need to edit
your /etc/termcap so that non-curses programs won't get confused (see
--------- end terminfo changes log, begin commentary -------------
BASH in a DOS box:
You must set TERM=cygwin, *not* linux (otherwise you get lots of garbage
characters at the command prompt after running any ncurses program.) If
you want ACS character to work, add 'codepage:oem' to your CYGWIN
RXVT-CYGWIN and RXVT-CYGWIN-NATIVE
I tested these entries under the following configuration:
1) X-Win32 Xserver, rxvt-2.6.2 from cygutils, 'TERM=rxvt-cygwin' using
the '-fn sabvga' font (which is available from
sabvga and the other fonts in that package provide the linedraw
characters that most window fonts do not -- 'normal' windows fonts
provide the accented characters used by most European languages)
2) Bubba's native rxvt-2.7.2 port (http://www.io.com/~bub/rxvt.html),
'TERM=rxvt-cygwin-native', using the Lucida ConsoleP font (-fn "Lucida
ConsoleP-12" (which is available from
is encoded as DOS codepage 437 by default -- this codepage includes the
linedraw characters -- rather than ANSI or a different national font.)
Note that if you intend to use "rxvt-cygwin" or "rxvt-cygwin-native"
often, you should probably edit your /etc/termcap file; otherwise,
non-curses programs (like the existing vim package) will get really
confused. I appended duplicate copies of the existing 'rxvt' entry in
/etc/termcap, and changed the names to these aliases.
If you're not concerned about the linedraw characters, or use a
non-codepage437 font, then 'TERM=rxvt' will work just fine in both
X-Win32+cygutils-rxvt-2.6.2 and in bubba's native rxvt-2.7.2.
BACK to CYGWIN:
If you use bash in a dos box, none of the preceding applies to you.
Keep 'TERM=cygwin' and you'll be fine. (You might want to add
'codepage:oem' to your CYGWIN var, as described above).
CONNECTING TO REMOTE SYSTEMS:
Using these customized TERM settings can sometimes mess things up when
you telnet/ssh to a remote system that does not know about TERMinals
like 'rxvt-cygwin' or 'cygwin'. There are a number of workarounds:
1) after connecting to the remote host, set your TERM variable to some
least-common-denominator, like TERM=xterm. This works, but you won't be
able to use the full capabilities of your actual console (be it a
DOSbox==cygwin, or rxvt-cygwin, or rxvt-cygwin-native). One trick is to
strip off the extra modifiers -- e.g. your .login on the remote system
can test $TERM, and map "TERM=rxvt-cygwin-native" to "TERM=rxvt" (since
'rxvt' exists on every ncurses installation).
2) teach the remote system to understand these new TERM settings.
However, this requires you to set TERMINFO at each login, to point to
your local terminfo database with the new definitions. To teach the
remote system, connect to it, and download the following file to the
That file contains an excerpt from the full terminfo.src in
While still on the remote system, do the following
a) export TERMINFO=~/.terminfo (or 'setenv TERMINFO ~/.terminfo' for
b) tic cygwin.terminfo-5.2-4
c) change your login script on the remote machine to set TERMINFO to
point to ~/.terminfo
Now, this may cause problems if you happen to login to that remote
machine *non-remotely* on occaision; you may need to copy some
appropriate terminfo definitions from the main database on the remote
machine to your personal version. The main database is usually
somewhere like /usr/share/terminfo or /usr/local/lib/terminfo.
If you want to avoid all that and just install a *full* terminfo
database in your ~/.terminfo, use
instead. (takes 1.5M on an NTFS file system, 650 files + 36
cygwin.terminfo-5.2-4 provides the following small set of terminal
rxvt, rxvt-color, rxvt-cygwin, rxvt-native, rxvt-xpm
kvt (KDE terminal)
gnome (GNOME terminal)
cygwin, cygwinB19, cygwinDBG
nxterm (Red Hat color xterm from 5.2)
The following are dependencies of the preceeding. I doubt anybody would
ever set TERM equal to one of these:
ansi.sys, ansi.sys-old, ansi-m, pcansi-m
color_xterm, cx, cx100
klone+acs, klone+color, klone+sgr, klone+sgr-dumb
********* TEST RESULTS, DLL's **********
see ncurses-5.2-3 announcement: