X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=announce.html.in;h=2ac7d7d73363c8e4ddc4d3b4fecfb898c7a72fd1;hp=da9298a298deb6b14bedb468b8cb23c3d706b3da;hb=2db461ea0b1b29c142e3000d830b520c946e385b;hpb=f86cbeb5f9bd96ab041d34039c35749a14965039 diff --git a/announce.html.in b/announce.html.in index da9298a2..2ac7d7d7 100644 --- a/announce.html.in +++ b/announce.html.in @@ -1,8 +1,7 @@ - + + "HTML Tidy for HTML5 for Linux version 5.2.0"> Announcing ncurses @VERSION@ - + + -

Announcing ncurses @VERSION@

The ncurses (new curses) +

Announcing ncurses @VERSION@

+ +

Overview

+ +

The ncurses (new curses) library is a free software emulation of curses in System V - Release 4.0, and more. It uses terminfo format, supports pads and - color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses - enhancements over BSD curses. + Release 4.0 (SVr4), and more. It uses terminfo format, supports + pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SVr4-curses + enhancements over BSD curses. SVr4 curses became the basis of + X/Open Curses.

In mid-June 1995, the maintainer of 4.4BSD curses declared that he considered 4.4BSD curses obsolete, and encouraged the - keepers of Unix releases such as BSD/OS, FreeBSD and NetBSD to - switch over to ncurses.

+ keepers of unix releases such as + BSD/OS, FreeBSD and NetBSD to switch over to ncurses.

-

The ncurses code was developed under GNU/Linux. It has been in - use for some time with OpenBSD as the system curses library, and - on FreeBSD and NetBSD as an external package. It should port - easily to any ANSI/POSIX-conforming UNIX. It has even been ported - to OS/2 Warp!

+

Since 1995, ncurses has been + ported to many systems:

-

The distribution includes the library and support utilities, - including a terminfo compiler tic(1), a decompiler infocmp(1), - clear(1), tput(1), tset(1), and a termcap conversion tool - captoinfo(1). Full manual pages are provided for the library and - tools.

+ + +

The distribution includes the library and support utilities, + including

-

New features and improvements

+

Full manual pages are provided for the library and tools.

+ +

The ncurses distribution is + available at ncurses' homepage:

+ +
+

ftp://ftp.invisible-island.net/ncurses/ + or
+ https://invisible-mirror.net/archives/ncurses/ .

+
+ +

It is also available via anonymous FTP at the GNU distribution + site

-

Library Improvements

+
+

ftp://ftp.gnu.org/gnu/ncurses/ .

+
+ +

Release + Notes

+ +

These notes are for ncurses + @VERSION@, released February 12, 2020.

+ +

This release is designed to be source-compatible with + ncurses 5.0 through 6.1; providing + extensions to the application binary interface (ABI). Although + the source can still be configured to support the ncurses 5 ABI, the reason for the release is + to reflect improvements to the ncurses 6 ABI and the supporting utility + programs.

+ +

There are, of course, numerous other improvements, listed in + this announcement.

+ +

The most important + bug-fixes/improvements dealt with user-defined capabilities + in terminal descriptions. The release notes also mention some + other bug-fixes, but are focused on new features and improvements + to existing features since ncurses + 6.1 release.

+ +

Library improvements

+ +

New features

+ +

There are several new features:

-
  • add WACS_xxx definitions to wide-character - configuration for thick- and double-lines.
  • +

    Additionally, to improve performance other changes (and + extensions) are provided in this release:

    -
  • modify init_pair to allow caller to create extra color - pairs beyond the color_pairs limit, which use default - colors.
  • + -

    Improvements to Programs

    +

    Other + improvements

    + +

    These are revised features:

    -

    Terminal Database

    +

    These were done to limit or ultimately deprecate features:

    - + -
  • correct initc capability of - linux-c-nc end-of-range, make similar change - for dg+ccc and dgunix+ccc.
  • +

    Program + improvements

    -
  • update minix terminfo entry.
  • +

    Several improvements were made to the utility programs:

    -
  • updated nsterm* entries.
  • +
    +
    clear +
    -
  • remove unnecessary kcan assignment to - ^C from putty.
  • +
    + +
    -
  • suppress ncv in screen and - konsole-base entries, allowing underline.
  • +
    infocmp +
    -
  • change ncv and op capabilities in - sun-color terminfo entry to match Sun's entry - for this.
  • +
    + +
    -
  • fix typo in rmso for tek4106 - entry.
  • +
    tic +
    -
  • improve acsc string for vt52, - show arrow keys.
  • +
    + +
    + +
    toe +
    + +
    + +
    + +
    tset +
    + +
    + +
    + +
    tput +
    + +
    + +
    +
    + +

    Several changes were made to the generated ncurses*config + scripts and the analogous “.pc” files to + reduce differences between the configurations they report:

    + + -

    Major bug fixes

    +

    Examples

    + +

    Along with the library and utilities, improvements were made + to the ncurses-examples. Most of + this activity aimed at improving the test-packages. A few changes + are more generally useful, e.g., for the main ncurses + test-program, and for analyzing traces using the + tracemunch script:

    - - + -

    Portability

    +

    Terminal database

    + +

    There are several new terminal descriptions:

    + +
    +

    alacritty, domterm, kitty, + mintty, mintty-direct, ms-terminal, + n7900, nsterm-build309, + nsterm-direct, screen5, ti703, + ti707, ti703-w, ti707-w + vscode, vscode-direct, xterm-mono, + xterm.js

    +
    + +

    There are many changes to existing terminal descriptions. Some + were updates to several descriptions:

    + +

    while others affected specific descriptions. These were + retested, to take into account changes by their developers:

    + +
    +

    terminator, st

    +
    + +

    while these are specific fixes based on reviewing + documentation, user reports, or warnings from tic:

    + +
    +
    adds200:
    + +
    +
    -
    -
    --disable-libtool-version
    +
    gnome-256color +
    -
    use the "-version-number" feature which was added - in libtool 1.5. The default value for the option uses - the newer feature, which makes libraries generated - using libtool compatible with the standard builds of - ncurses.
    +
    +
      +
    • base entry on "gnome", not "vte", for consistency
    • +
    +
    -
    --disable-rpath-hack
    +
    interix +
    -
    disable a feature which adds rpath options for - libraries in unusual places.
    +
    +
      +
    • trim unnecessary setf/setb
    • +
    +
    -
    --enable-interop
    +
    linux-16color +
    -
    integrate changes for generic/interop support to - form-library.
    +
    + +
    -
    --enable-pc-files
    +
    nsterm-256color:
    -
    generate ".pc" files for each of the libraries, and - install them in pkg-config's library - directory.
    +
    +
      +
    • add nsterm-build309 to replace nsterm-256color, + assigning the latter as an alias of nsterm, to make mouse + work with nsterm-256color
    • +
    +
    -
    --enable-pthreads-eintr
    +
    regent40:
    -
    control whether to allow EINTR to - interrupt a read operation in wgetch. This - applies only to the pthread configuration
    +
    +
      +
    • renumber function-keys to match manual
    • +
    +
    -
    --enable-sp-funcs
    +
    regent60:
    -
    compile-in support for extended functions which - accept a SCREEN pointer, reducing the need - for juggling the global SP value with - set_term and delscreen.
    +
    +
      +
    • add cd (clr_eos)
    • -
      --enable-term-driver
      +
    • corrected acsc
    • -
      compile with terminal-driver. That is used in the - MinGW port, and (being somewhat more complicated) is an - experimental alternative to the conventional termlib - internals. Currently, it requires the sp-funcs feature - to be enabled.
      +
    • add shifted function-keys
    • +
    +
    -
    --with-ncurses-wrap-prefix
    +
    tvi950:
    -
    allows setting the prefix for functions used to - wrap global variables to something other than - "_nc_".
    +
    +
      +
    • added function-key definitions to agree with Televideo + 950 manual
    • -
      --with-pkg-config=[DIR]
      +
    • corrected acsc
    • -
      check for pkg-config, optionally - specifying its path.
      +
    • remove bogus kf0
    • -
      --without-manpages
      +
    • add bel
    • +
    +
    -
    tells the configure script to suppress the install - of ncurses' manpages.
    +
    tvi955:
    -
    --without-tests
    +
    +
      +
    • fix typo
    • +
    +
    -
    suppress building test programs.
    -
    - +
    vi200:
    -
  • improved options: +
    +
      +
    • add acsc string, including right/down-arrow
    • +
    +
    - -
  • +
    + - +
    -
  • packaging: +
    wy50 and + wy60:
    +
      -
    • *-config scripts: +
    • add shifted function-keys as kF1 to kF16
    • +
    +
    -
  • -
  • change install for adacurses-config to - provide additional flavors such as - adacursesw-config, for ncursesw.
  • +

    A few entries use extensions (user-defined terminal + capabilities):

    -
  • modify scripts to generate - ncurses*-config and pc-files to add - dependency for tinfo library.
  • + -
  • generate manpages for the *-config scripts, adapted - from help2man.
  • +

    Documentation

    -
  • modify install-rule for manpages so that *-config - manpages will install when building with - --srcdir.
  • +

    As usual, this release

    -
  • build-fixes for OpenSolaris aka Solaris 11, for - wide-character configuration as well as for rpath - feature in *-config scripts.
  • + -
  • create the pkg-config library - directory if needed.
  • +

    In addition to providing background information to explain + these features and show how they evolved, there are corrections, + clarifications, etc.:

    -
  • fix typo "==" where "=" - is needed in ncurses-config.in and - gen-pkgconfig.in files.
  • + + - - + -
  • cross-compiling: +
  • +

    Improvements for user_caps.5:

  • -
  • library dependencies: +
  • +

    Other improvements:

  • + + +

    There are no new manual pages (all of the manual page updates + are to existing pages).

    + +

    Some of the improvements are more subtle, relating to the way + the information is presented. For instance, the generated + terminfo.5 file uses a different table layout, allowing it to use + space on wide terminals more effectively.

    + +

    Interesting + bug-fixes

    + +

    While there were many bugs fixed during development of ncurses + 6.2, only a few (the reason for this release) were both important + and interesting. Most of the bug-fixes were for local issues + which did not affect compatibility across releases. Since those + are detailed in the NEWS file no elaboration is needed here.

    + +

    The interesting bugs were in tic/infocmp's handling of + user-defined capabilities. These were not recent bugs. Initially + it was a simple problem:

    + + + +

    For ncurses, the elapsed time to fix this bug was less than + three years. Someone reported a problem with the terminal + description a few weeks after releasing ncurses 6.1 (in tmux #1264), and + the terminal description was updated that week (ncurses patch + 20180224):

    + +
    +
    +20180224
    +        + modify _nc_resolve_uses2() to detect incompatible types when merging
    +          a "use=" clause of extended capabilities.  The problem was seen in a
    +          defective terminfo integrated from simpleterm sources in 20171111,
    +          compounded by repair in 20180121.
    +        + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
    +
    +
    + +

    The larger part of that change added a check to prevent a + simple merge of terminal descriptions where the same user-defined + name was used with different types. But it raised some + questions:

    + + + +

    Since the correction to terminfo.src + could have been readily adopted by packagers, there was nothing + more to be done from ncurses' standpoint on that part. But + improving ncurses to prevent issues like that is the reason for + making a release.

    + +

    Nothing more (constructive) was mentioned with regard to + simpleterm. But a few problems were found in the handling of + user-defined capabilities:

    + + + +

    Both of these issues dated from the original implementation of + user-defined capabilities. Fixing them does not change the + terminal database, but a older tic without the fixes + will not be able to handle terminfo sources which rely upon those + fixes. Starting in June 2019, the download link for the terminfo + source file was capped at that date. The development sources have + an up-to-date copy of the file, for people with a legitimate need + for it.

    + +

    The “-c” (check) option of tic + is not very useful if it cannot offer advice on parameters needed + for user-defined capabilities. The various Caps files + were reorganized to reduce redundancy, and in the common portion + (Caps-ncurses), + a registry of user-defined capabilities is provided for use by + tic. While users can still define their own custom + capabilities, tic will not offer any advice when their + parameters do not match.

    + +

    In ncurses 6.2, tic makes a special check to allow + any type for RGB, but its being able to do this relies + upon fixes made in the ncurses library in mid-2019.

    + +

    Configuration changes

    + +

    Major + changes

    + +

    There are no major changes. Several new options were added to + ease integration of packages with systems using different + versions of GNAT and ncurses. Also, + improvements were made to configure checks.

    + +

    Configuration options

    + +

    There are a few new/modified configure options:

    + +
    +
    --with-config-suffix +
    + +
    +

    helps work around a filename conflict with Debian packages + versus test-packages.

    +
    + +
    --with-ada-libname +
    + +
    +

    allows one to rename the “AdaCurses” library + (at least one packager prefers a lowercase name).

    +
    + +
    --with-fallbacks +
    + +
    +

    now ensures there is a value, and adds the fallback + information to top-level Makefile summary.

    +
    + +
    --with-pcre2 +
    + +
    +

    check for pcre-posix library to help with MinGW port.

    +
    + +
    --with-tic-path and
    + +
    --with-infocmp-path +
    + +
    +

    help work around problems building fallback source using + pre-6.0 tic/infocmp.

    +
    + +
    --with-versioned-syms +
    + +
    +

    option value can now be a relative pathname.

    +
    +
    + +

    Portability

    + +

    Many of the portability changes are implemented via the + configure script:

    + + -
  • improve test/ncurses.c 'F' test, show combining - characters in color.
  • +

    Here are some of the other portability fixes:

    -
  • fix logic for 'V' in test/ncurses.c tests f/F.
  • + -
  • correct use of key_name in test/ncurses.c - 'A' test, which only displays wide-characters, not - key-codes since 20070612.
  • +
    -
  • add test/clip_printw.c to illustrate how to use printw - without wrapping.
  • +

    Features of + ncurses

    -
  • modify test-programs, e.g,. test/view.c, to address - subtle differences between Tru64/Solaris and HPUX/AIX - getcchar return values.
  • +

    The ncurses package is fully + upward-compatible with SVr4 (System V Release 4) curses:

    -
  • add some test programs (and make these use the same - special keys by sharing linedata.h functions): - test/test_addstr.c test/test_addwstr.c test/test_addchstr.c - test/test_add_wchstr.c
  • + -

    Features of Ncurses

    The ncurses package is fully - compatible with SVr4 (System V Release 4) curses: +

    The ncurses package also has + many useful extensions over SVr4:

    The ncurses package also has many useful extensions over - SVr4: +
  • +

    Support for 256-color terminals, such as modern xterm.

    +
  • - -

    State of the Package

    Numerous bugs present in earlier - versions have been fixed; the library is far more reliable than - it used to be. Bounds checking in many `dangerous' entry points - has been improved. The code is now type-safe according to gcc - -Wall. The library has been checked for malloc leaks and arena - corruption by the Purify memory-allocation tester. +

    Applications using + ncurses

    -

    The ncurses code has been tested with a wide variety of - applications including (versions starting with those noted):

    +

    The ncurses distribution + includes a selection of test programs (including a few games). + These are available separately as ncurses-examples

    -
    -
    cdk
    +

    The ncurses library has been tested with a wide variety of + applications including:

    -
    Curses Development Kit
    - http://invisible-island.net/cdk/
    +
    +
    +
    aptitude +
    - http://www.vexus.ca/products/CDK/
    +
    +

    FrontEnd to Apt, the debian package manager

    -
    ded
    +

    https://wiki.debian.org/Aptitude

    + -
    directory-editor
    - http://invisible-island.net/ded/
    +
    cdk +
    -
    dialog
    +
    +

    Curses Development Kit

    -
    the underlying application used in Slackware's setup, and - the basis for similar applications on GNU/Linux.
    - http://invisible-island.net/dialog/
    +

    @WEBSITE@/cdk/
    +

    + -
    lynx
    +
    ded +
    -
    the character-screen WWW browser
    - http://lynx.isc.org/release/
    +
    +

    directory-editor

    -
    Midnight Commander
    +

    @WEBSITE@/ded/

    + -
    file manager
    - http://www.midnight-commander.org/
    +
    dialog +
    -
    mutt
    +
    +

    the underlying application used in Slackware's setup, + and the basis for similar install/configure applications on + many systems.

    -
    mail utility
    - http://www.mutt.org/
    +

    @WEBSITE@/dialog/

    + -
    ncftp
    +
    lynx +
    -
    file-transfer utility
    - http://www.ncftp.com/
    +
    +

    the text WWW browser

    -
    nvi
    +

    https://lynx.invisible-island.net/

    + -
    New vi versions 1.50 are able to use ncurses versions 1.9.7 - and later.
    - https://sites.google.com/a/bostic.com/keithbostic/nvi
    -
    +
    mutt +
    -
    pinfo
    +
    +

    mail utility

    -
    Lynx-like info browser. https://alioth.debian.org/projects/pinfo/
    +

    http://www.mutt.org/

    + -
    tin
    +
    ncftp +
    -
    newsreader, supporting color, MIME http://www.tin.org/
    -
    as well as some that use ncurses for the terminfo support - alone: +
    +

    file-transfer utility

    -
    -
    minicom
    +

    https://www.ncftp.com/

    +
    -
    terminal emulator
    - http://alioth.debian.org/projects/minicom/
    +
    nvi +
    -
    vile
    +
    +

    New vi uses ncurses.

    -
    vi-like-emacs
    - http://invisible-island.net/vile/
    - +

    https://sites.google.com/a/bostic.com/keithbostic/vi
    + +

    + + +
    ranger +
    + +
    +

    A console file manager with VI key bindings in + Python.

    + +

    https://ranger.github.io/

    +
    + +
    tin +
    + +
    +

    newsreader, supporting color, MIME

    + +

    http://www.tin.org/

    +
    + +
    vifm +
    + +
    +

    File manager with vi like keybindings

    + +

    https://vifm.info/

    +
    + + + +

    as well as some that use ncurses for the terminfo support alone:

    + +
    +
    +
    minicom +
    + +
    +

    terminal emulator for serial modem connections

    + +

    https://alioth.debian.org/projects/minicom/

    +
    + +
    mosh +
    + +
    +

    a replacement for ssh.

    + +

    https://mosh.mit.edu/

    +
    + +
    tack +
    + +
    +

    terminfo action checker

    + +

    @HOMEPAGE@/tack.html

    +
    + +
    tmux +
    + +
    +

    terminal multiplexor

    -

    The ncurses distribution includes a selection of test programs - (including a few games).

    +

    https://github.com/tmux/tmux/wiki

    +
    -

    Who's Who and What's What

    Zeyd Ben-Halim started it from - a previous package pcurses, written by Pavel Curtis. Eric S. +
    vile +
    + +
    +

    vi-like-emacs may be built to use the terminfo, + termcap or curses interfaces.

    + +

    @WEBSITE@/vile/

    +
    +
    +
    + +

    and finally, those which use only the termcap interface:

    + +
    +
    +
    emacs +
    + +
    +

    text editor

    + +

    https://www.gnu.org/software/emacs/

    +
    + +
    less +
    + +
    +

    The most commonly used pager (a program that + displays text files).

    + +

    http://www.greenwoodsoftware.com/less/

    +
    + +
    screen +
    + +
    +

    terminal multiplexor

    + +

    https://www.gnu.org/software/screen/

    +
    + +
    vim +
    + +
    +

    text editor

    + +

    https://www.vim.org/

    +
    +
    +
    + +

    Development + activities

    + +

    Zeyd Ben-Halim started ncurses + from a previous package pcurses, written by Pavel Curtis. Eric S. Raymond continued development. Jürgen Pfeifer wrote most of - the form and menu libraries. Ongoing work is being done by - Thomas Dickey. - Thomas Dickey acts as the maintainer for the Free Software - Foundation, which holds the copyright on ncurses. Contact the - current maintainers at bug-ncurses@gnu.org. - -

    To join the ncurses mailing list, please write email to - bug-ncurses-request@gnu.org containing the line:

    -
    -             subscribe <name>@<host.domain>
    -
    + the form and menu libraries.

    + +

    Ongoing development work is done by Thomas E. Dickey. Thomas + E. Dickey has acted as the maintainer for the Free Software + Foundation, which holds a copyright on ncurses for + releases 4.2 through 6.1. Following the release of ncurses 6.1, + effective as of release 6.2, copyright for ncurses reverted to + Thomas E. Dickey (see the ncurses FAQ for + additional information).

    + +

    Contact the current maintainers at

    + +
    + bug-ncurses@gnu.org +
    + +

    To join the ncurses mailing list, please write email to

    + +
    + bug-ncurses-request@gnu.org +
    + containing the line: + +
    +

    subscribe + <name>@<host.domain>

    +

    This list is open to anyone interested in helping with the development and testing of this package.

    -

    Beta versions of ncurses and patches to the current release - are made available at ftp://invisible-island.net/ncurses/ .

    +

    Beta versions of ncurses are + made available at

    + +
    +

    ftp://ftp.invisible-island.net/ncurses/current/ + and
    + https://invisible-mirror.net/archives/ncurses/current/ .

    +
    + +

    Patches to the current release are made available at

    + +
    +

    ftp://ftp.invisible-island.net/ncurses/6.1/ + and
    + https://invisible-mirror.net/archives/ncurses/6.1/ .

    +
    -

    Future Plans

    +

    There is an archive of the mailing list here:

    + +
    +

    http://lists.gnu.org/archive/html/bug-ncurses + (also https)

    +
    + +

    Related + resources

    + +

    The release notes make scattered references to these pages, + which may be interesting by themselves:

    We need people to help with these projects. If you are - interested in working on them, please join the ncurses list. +
  • Comments on + ncurses versus slang (S-Lang)
  • + +
  • tack – terminfo action + checker
  • + +
  • tctest – termcap + library checker
  • + +
  • Terminal + Database
  • + -

    Other Related Resources

    The distribution provides a newer - version of the terminfo-format terminal description file once - maintained by Eric +

    Other + resources

    + +

    The distribution provides a newer version of the + terminfo-format terminal description file once maintained by + Eric Raymond . Unlike the older version, the termcap and - terminfo data are provided in the same file, and provides several - user-definable extensions beyond the X/Open specification. + terminfo data are provided in the same file, which also provides + several user-definable extensions beyond the X/Open + specification.

    You can find lots of information on terminal-related topics not covered in the terminfo file at - Richard Shuford's archive .

    + Richard Shuford's archive . The collection of computer + manuals at bitsavers.org has also been + useful.

    + +