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

  1. 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.).
  2. 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

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.

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

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).

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 $ Valid XHTML 1.1!