ncurses in FreeBSD base
Description
This page describes my work on ncurses in the FreeBSD. The ultimate
goals are 1) keeping ncurses update
2) enabling wide character support.
Issues
-
The building framework
for ncurses (autotools based) makes the updating process a bit difficult.
For example, files that should have been generated by configure are
generated by some hard-coded
rules in Makefile, say replacing variables by sed. This makes updating
need more work (e.g., manually figure out which variables need
to be replaced, put them into Makefile, etc.).
-
We used to use our own termcap.c in the tree rather than
ncurses's read_termcap.c.
This file was added 6 years ago when peter@ first imported ncurses to base.
While updating I was told by Thomas Dickey that there are some ncurses internal
changes between 5.4 and 5.5 that I have to apply the same changes
to our termcap.c.
This makes updating a little painful. On the other hand,
the ncurses-specific glue in termcap.c is not much, and corresponding
codes in read_termcap.c can be easily located.
Solutions
For issue #1, it seems unavoidable. So, I decide to keep it as is.
For issue #2, I think we just keep it as is. Since to maintain termcap.c
does not really need much efforts.
Current Status
- 2009/10/28
a small fix for ee(1) and SIGWINCH committed to HEAD (9.x);
merged to stable/8
- 2008/11/15
update ncurses to 5.7 in HEAD (8.x)
- 2008/05/09:
update ncurses to 5.6 snapshot 20080503 in HEAD (8.x)
Files / Patches
Please follow the instructions at the beginning of the patch file. Then,
do a full buildworld/installworld as Handbook says.
FreeBSD-specific Changes
These patches contain changes that made to contrib/ncurses. Note that
the changes in lib_baudrate.c will be merged in ncurses 5.7 release.
- 8-CURRENT (as of Dec 22, 2007)
- 7-CURRENT (as of Jan 06, 2007)
- RELENG_6 (on 6.1-RELEASE)
HOWTO update ncurses in the base
There is no easy way to update. Read the following files and proceed
with extra care:
src/contrib/ncurses/FREEBSD-upgrade
and
src/contrib/ncurses/FREEBSD-Xlist
.
TODO
- Remove non-widec version (so readline picks up ncursesw, makes python happier)
- Install ncurses5-config
ports land
Acknowledgments
I would like to thank the following people who provided help or
encouraged me to work on this (sorted by last name).
- Doug Barton (dougb@) for pointing out building framework of lib/bind
- Renato Botelho (garga@) for taking care of my devel/ncurses PR
- Thomas Dickey (current author of ncurses) for ncurses specific knowledge
- Ruslan Ermilov (ru@) for valuable Makefile suggestions
- Xin Li (delphij@) for knowledge on committing on src tree and reviewing my patches
- Pav Lucistnik (pav@) for the suggestion of installing two libraries once in ports, updating ports/base
- Alan Cheng-Lung Sung (clsung@) for encouraging me to work on this
- Jeroen Ruigrok/asmodai for letting me know ncurses status in DragonFlyBSD
- Li-Lun Wang for correcting my bad English
- Kuang-che Wu for how to build two libraries at once in ports
- Eric Yu for inspiring me to work on ncurses port
And people on IRC (#BSDChat on IRCNet, #BSDPorts on EFNet), my
friends in real life.
About me
Please visit my page for more
information. Or drop me a line at rafan@.
$Id: index.html,v 1.21 2009/10/31 05:57:53 rafan Exp $