This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Updated: ncurses-5.2-3

I've removed the 'test' designation from ncurses-5.2-3; it is available
for installation from /latest/ now.  ncurses is a package that provides
character and terminal handling libraries, including 'gui-like' panels
and menus.  It is often used instead of termcap.

CHANGES from ncurses-5.2-2

o Thanks to Steven O'Brien, libncurses++ now builds (and works!) as a
dll.  Following new files included:
  - /usr/lib/libncurses++.dll.a
  - /usr/bin/cygncurses++5.dll
  - /usr/bin/ncurses-test-dll/demo.exe

o Lots of documentation updates to reflect the above changes.  Be sure
to read the new /usr/doc/ncurses-5.2.README

o fixed a mistake in that prevented the
"--enable-colorfgbg" option from taking effect during the configure
step.  It takes effect now, and the functionality it enables ALSO seems
to work okay:

I use rxvt with an xpm background.  When I ran ncurses-5.2-2 demo
programs, the background would be completely black until the demo
finished, when the xpm would reappear.  With ncurses-5.2-3 demo
programs, the xpm is always visible.  (that is, the 'fgbg' is
*maintained* when an ncurses program is run, and not arbitrarily reset
to "white-on-black")


To update your installation, click on the "Install Cygwin now" link on
the 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 '' site
is badly overloaded.  The mirrors below have the latest version of this
package: (US)
(Germany) (Greece)

The setup.exe program will figure out what needs to be updated on your
system and should install the ncurses package automatically. 

If you have questions or comments, please send them to the Cygwin
mailing list at: .  I would appreciate if you
would use this mailing list rather than emailing me directly. This
includes ideas and comments about the setup utility or Cygwin general.

If you want to make a point or ask a question the Cygwin mailing list is
the appropriate place.


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-5 and
binutils-200001029-2 or later

o follows new naming scheme for dlls
   /usr/lib/libncurses.dll.a     (import lib)
   /usr/lib/libcurses.dll.a --> libncurses.dll.a
   /usr/lib/libpanel.dll.a       (import lib)
   /usr/lib/libmenu.dll.a        (import lib)
   /usr/lib/libform.dll.a        (import lib)
   /usr/lib/libncurses++.dll.a   (import lib)

   /usr/lib/libncurses.a         (static lib)
   /usr/lib/libcurses.a     --> libncurses.a
   /usr/lib/libpanel.a           (static lib)
   /usr/lib/libmenu.a            (static lib)
   /usr/lib/libform.a            (static lib)
   /usr/lib/libncurses++.a       (static lib)

   /usr/bin/cygncurses5.dll      (dll) (**)
   /usr/bin/cygpanel5.dll        (dll) (**)
   /usr/bin/cygmenu5.dll         (dll) (**)
   /usr/bin/cygform5.dll         (dll) (**)
   /usr/lib/cygncurses++5.dll     (dll) (**)

   cygwin-specific docs in /usr/doc/Cygwin/ncurses-5.2.README

     dynamically linked version of the utility programs
     also, the dll's
     statically linked versions of the utility programs
     dynamically linked versions of the test programs
     statically linked versions of the test programs

(**) versioned dlls are the default; only extremely stable libraries
(like zlib) have unversioned dlls.  dll's are stripped.

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 There are actually two patches: one that is already applied in the
source archive ncurses-5.2-X-src.tar.gz.  It munges all the headers and
C files so that functions and variables are declared using <no special
__declspecs>, __declspec(dllexport), or __declspec(dllimport), as
appropriate, depending on -DNCURSES_STATIC / -DNCURSES_DLL / <no special
#defines>.  That patch is over 400k and has already been applied to the
archive.  The second, much smaller patch ('ncurses-5.2-X-dll.patch'),
contains the Makefile-specific changes necessary ONLY when building the
dll's and dll-dependent executable (this one must be applied only AFTER
doing a ./configure.  See /usr/doc/Cygwin/ncurses-5.2.README for more

o Full build instructions for building ncurses yourself are included the
ncurses-5.2.README file; overview only here: The build procedure for
static libs is very straightforward.  However, building the dlls
requires an odd "./configure" THEN patch, then build sequence. 

o If you are building a package that depends on the ncurses library, and
you wish to link *statically*, define -DNCURSES_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 package.

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
dynamically (recommended). 

o resolved the known conflicts.  Ncurses provides some files that
conflict with the files included in other packages.  Those conflicts
were resolved as follows:
    termcap package /usr/include/termcap.h
       resolution:  5.2-3 installs its termcap.h as termcapn.h
    clear package   /usr/bin/clear.exe
       resolution:  5.2-3 installs its clear.exe as clearn.exe

o Thanks to Steven O'Brien, libncurses++ now builds as a dll.  I had
given up on it, but Steven managed to get it working.  If you are
interested in the travails and contortions necessary, take a look at the
end of the announcement message for ncurses-5.2-2:

--Chuck Wilson

***********  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
Ehud Karni:
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 -------------

Now, I can't get the linedraw characters to work no matter what I try
when running bash in a DOS box on win2k.  "D:\WINNT\system32\
con codepage select=437" seems to have no effect -- even when the system
reports that I am using cp437, I still get the so-called 'European'
character set (cp1250).  Oh well, I like boxes drawn with , , 3, U,
and A.

See this message:
for a more thorough discussion of this issue.


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 (,
'TERM=rxvt-cygwin-native', using the Lucida ConsoleP font (-fn "Lucida
ConsoleP-12" (which is available from LuconP
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.


If you use bash in a dos box, none of the preceding applies to you. 
Keep 'TERM=cygwin' and you'll be fine. (Except for those pesky linedraw

*********  TEST RESULTS, DLL's  **********

- the statically linked programs which depend on the C libraries all
seem to work just as well as the ncurses-5.0 distribution at cygutils. 
There are a *few* imperfections (like testscanw.exe doesn't work) -- but
these failures are not new.  So, I conclude that the static versions of
the C libraries (libncurses.a, libpanel.a, libform.a, libmenu.a) are all

- the one program which links to the C++ library, (demo.exe links to
libncurses++), works fine when statically linked.  I conclude that
libncurses++.a is A-OK.

- the dynamically linked programs which depend on the C libraries all
work identically to their statically linked counterparts.  So, I
conclude that the dll versions of the C libraries (cygncurses5.dll,
cygpanel5.dll, cygform5.dll, and cygmenu5.dll, with their respective
import libraries) are all A-OK.

- the dynamically linked version of demo.exe, which links to the C++
library cygncurses++5.dll, works fine.  I conclude that
cygncurses++5.dll is A-OK.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]