public inbox for cygwin-announce@cygwin.com
 help / color / mirror / Atom feed
* Test: ncurses/-demo libncurses/-devel/++/w10 terminfo/-extra 6.4-1.20221231 (TEST)
@ 2023-01-01 17:02 Cygwin ncurses Maintainer
  0 siblings, 0 replies; only message in thread
From: Cygwin ncurses Maintainer @ 2023-01-01 17:02 UTC (permalink / raw)
  To: Cygwin Announcements

The following test packages have been uploaded to the Cygwin distribution:

* ncurses			6.4-1.20221231
* ncurses-demo			6.4-1.20221231
* libncurses-devel		6.4-1.20221231
* libncurses++w10		6.4-1.20221231
* libncursesw10			6.4-1.20221231
* terminfo			6.4-1.20221231
* terminfo-extra		6.4-1.20221231

Please test these packages as extensively as possible (especially if you
are a Cygwin package maintainer) as libncursesw10 is used in many
libraries including libreadline and utilities including less, vim,
emacs, most other editors, screen, tmux, mail and web clients, and bash.
Package maintainers should install this test release and rerun checks of
as many libraries and packages depending on libncurses{,++}w10 as
possible. 

The ncurses (new curses) library is an emulation of Sys V R 4
curses, and more. It uses terminfo format, supports pads, color,
multiple highlights, forms characters, function key mapping,
and has all the other SVR4 curses enhancements over BSD curses.

For more information see the project home page:

	https://invisible-island.net/ncurses

As there are multiple components and many changes each release see below
or read /usr/share/doc/ncurses/ANNOUNCE and /usr/share/doc/ncurses/NEWS
after installation:

	https://invisible-island.net/ncurses/announce.html#h2-release-notes


Release Notes

These notes are for ncurses 6.4, released December 31, 2022.

This  release  is  designed  to  be source-compatible with ncurses 5.0
through  6.3; 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  robustness
issues.  The  release notes also mention some other bug-fixes, but are
focused  on  new  features and improvements to existing features since
ncurses 6.3 release.

Library improvements

New features

There are no new features in this release.

Other improvements

These are improvements to existing features:
* modify  delscreen  to  more  effectively delete all windows on the
  given screen.
* modify  wnoutrefresh  to  call  pnoutrefresh if its parameter is a
  pad,  rather than treating it as an error, and modify new_panel to
  permit its window-parameter to be a pad
* modify  curses_trace()  to  show  the trace-mask as symbols, e.g.,
  TRACE_ORDINARY, DEBUG_LEVEL(3).
* improve  checks  for valid mouse events when an intermediate mouse
  state is not part of the mousemask specified by the caller
* allow extended-color number in opts parameter of wattr_on.
* improve _tracecchar_t2 formatting of base+combining character.
* trim  out some unwanted linker options from ncurses*config and .pc
  files seen in Fedora 36+.
* improve shell-scripts with shellcheck
* improve use of "trap" in shell scripts, using a script.
* modify make-tar.sh scripts to make timestamps more predictable.

These are corrections to existing features:
* modify  misc/gen-pkgconfig.in  to  allow  for  the  case where the
  library  directory  does  not  yet  exist, since this is processed
  before doing an install
* set trailing null on string passed from winsnstr to wins_nwstr.
* modify  waddch_literal  to  allow  for double-width base character
  when merging a combining character

Program improvements

Several improvements were made to the utility programs:

infocmp

* rewrite  canonical_name  function of infocmp to ensure buffer
  size
* improve  readability  of  long parameterized expressions with
  the  infocmp  "-f"  option  by  allowing  split before a "%p"
  marker.
* modify   verbose-option   of  infocmp,  tic,  toe  to  enable
  debug-tracing if that is configured.

tabs
      limit tab-stop values to max-columns

tic
      add   consistency   check   in   tic  for  u6/u7/u8/u9  and  NQ
      capabilities.

tput
      corrected use of original tty-modes in init/reset subcommands

Examples

Along  with  the  library and utilities, improvements were made to the
ncurses-examples.  Most  of  this  activity  aimed  at  improving  the
test-packages:
* add  minimal  -h  (usage)  and  -V  (version)  getopt logic to all
  ncurses-examples programs.
* fix an error in "@" command in test/ncurses.c F-menu
* add curses_trace to ifdef's for START_TRACE in test/test.priv.h
* improve pthread-configuration for test/worm.c
* add setlocale call to several test-programs.
* workaround  in  test/picsmap.c  for  use of floating point for rgb
  values by ImageMagick 6.9.11, which appears to use the wrong upper
  limit.
* use  static libraries for AdaCurses test-package for Mageia, since
  no gprbuild package is available.
* install  Ada95  sample  programs  in  libexecdir, adding a wrapper
  script to invoke those.
* install  ncurses-examples programs in libexecdir, adding a wrapper
  script to invoke those.

There are other new demo/test programs and reusable examples:

test/combine
      demonstrate combining characters

test/test_delwin
      demonstrate deleting a window

test/test_mouse
      observe  mouse  events  in  the  raw terminal or parsed ncurses
      modes

test/test_unget_wch
      demonstrate the unget_wch and unget functions

Terminal database

There are several new terminal descriptions:
* mosh
* mosh-256color
* teken-16color
* teken-sc
* teken-vt
* xgterm

There  are  many  changes to existing terminal descriptions. Some were
updates to several descriptions:
* make description-fields distinct
* fix errata in description fields
* add/use several building-blocks:
  - aixterm+sl
  - ansi+cpr
  - apollo+vt132
  - decid+cpr
  - ncr260vp+sl
  - wyse+sl
  - x10term+sl
  - xterm+acs
  - xterm+alt47

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

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

att610+cvis0
      amended note as per documentation for att610, att620, att730

kon, kon2, jfbterm
      revise to undo "linux2.6" change to smacs/rmacs/enacs

st-0.6
      add dim, ecma+strikeout

foot+base
      add xterm+sl-alt

dec+sl
      correct dsl in dec+sl

mintty and tmux
      correct setal in mintty/tmux entries, add to vte-2018

nsterm
      modify nsterm to use xterm+alt1049

putty
      modify putty to use xterm+alt1049

vte-2018
      add blink and setal

A few entries use extensions (user-defined terminal capabilities):
* use  ansi+enq  and  decid+cpr in cases where the terminal probably
  supported the u6-u9 extension
* remove u6-u9 from teken-2018
* use  NQ  to flag entries where the terminal does not support query
  and response
* add/use bracketed+paste to help identify terminals supporting this
  xterm feature
* modify  samples  for xterm mouse 1002/1003 modes to use 1006 mode,
  and also provide for focus in/out responses
* xterm  patch  #371 supports DEC-compatible status-line. add dec+sl
  to  xterm-new, per xterm #371, add xterm-p371, add xterm-p370, for
  use  in  older  terminals, and set "xterm-new" to "xterm-p370" (to
  ease adoption).

Documentation

As usual, this release
* improves documentation by describing new features,
* attempts  to  improve the description of features which users have
  found confusing
* fills  in overlooked descriptions of features which were described
  in the NEWS file but treated sketchily in manual pages.

In  addition  to  providing  background  information  to explain these
features   and   show   how   they  evolved,  there  are  corrections,
clarifications, etc.:
* Corrections:
  - remove a stray '/' from description of %g in terminfo(5).
  - correct/improve  font-formatting in curs_getch.3x, as well as
    other manual pages.
* New/improved history and portability sections:
  - add portability notes for delscreen and delwin in manual.
  - improve curs_slk.3x discussion of extensions and portability
* Other improvements:
  - improve  curs_bkgd.3x,  explaining  that  bkgdset  can affect
    results for bkgd
  - add note on portable memory-leak checking in curs_memleaks.3x
  - expanded description in resizeterm.3x
  - add  section  on  releasing  memory  to  curs_termcap.3x  and
    curs_terminfo.3x manpages.
  - add  clarification  of  the  scope  of  dynamic  variables in
    terminfo(5).
  - improve formatting of ncurses-intro.html and hackguide.html
  - improve curs_clear.3x links to other pages
  - update  ncurses-howto,  making documentation fixes along with
    corrections to example programs.
  - use  newer  version  1.36 of gnathtml for generating Ada html
    files.
  - update external links in Ada95.html

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

Interesting bug-fixes

While  there  were  many bugs fixed during development of ncurses 6.4,
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 those dealing with memory leaks and buffer
overflows.  Although  the utilities are designed for text files (which
they do properly), some choose to test them with non-text files.
* Text  files  contain  no  embedded  nulls.  Also,  they end with a
  newline.  Feeding tic non-text files exposed a few cases where the
  program  did  not  check  for  those  issues. As a result, further
  processing  of the input found limit-checks whose assumptions were
  invalid.
* Fixing  the limit-checks (first) found a problem with tic managing
  the  list  of  strings  in  a terminal description. In merging two
  terminal  descriptions  (i.e.,  the  "use="  feature), tic was not
  allocating  a  complete copy. A quick repair for that introduced a
  memory leak.
* The  checks  for non-text files are improved (i.e., embedded nulls
  in  the  input  file  will  cause  tic  to  reject  it rather than
  attempting to process it).
* The string allocations in tic are likewise improved.

Configuration changes

Major changes

There  are  no  major  changes.  No  new  options  were added. Several
improvements were made to configure checks.

Configuration options

There are a few new/modified configure options:

--with-abi-version
      add ABI 7 defaults to configure script.

--with-caps
      add   warning   in  configure  script  if  file  specified  for
      "--with-caps" does not exist.

--with-manpage-format
      bzip2 and xz compression are now supported

--with-xterm-kbs
      add    check/warning    in    configure    script   if   option
      "--with-xterm-kbs" is missing or inconsistent

Portability

Many  of  the  portability  changes  are implemented via the configure
script:
* amend  configure option's auto-search to account for systems where
  none of the directories known to pkg-config exist
* corrected regex needed for older pkg-config used in Solaris 10
* improve  handling of --with-pkg-config-libdir option, allowing for
  the case where either $PKG_CONFIG_LIBDIR or the option value has a
  colon-separated list of directories
* if   the   --with-pkg-config-libdir   option  is  not  given,  use
  ${libdir}/pkgconfig as a default
* improve search-path check for pkg-config, e.g., for Debian testing
  which installs pkg-config with architecture-prefixes.
* build-fix for cross-compiling to MingW, conditionally add -lssp
* improve configure check for getttynam
* fixes to build with dietlibc:
     + add configure check for fpathconf
     + add   configure   check   for  math  sine/cosine,  needed  in
       test/tclock, and eliminate pow() from test/hanoi
     + use wcsnlen as an alternative to wmemchr if it is not found
* modify  configure macro CF_BUILD_CC to check if the build-compiler
  works,  rather  than that it is different from the cross-compiler,
  e.g.,  to  accommodate  a  compiler  which  can be used for either
  purpose with different flags
* modify  configure/scripts  to work around interference by GNU grep
  3.8

Here are some of the other portability fixes:
* change  man_db.renames  to  template,  to  handle  ncurses*-config
  script with the --extra-suffix configure option.
* update   CF_XOPEN_SOURCE  macro,  adding  variants  "gnueabi"  and
  "gnueabihf" to get _DEFAULT_SOURCE special case, as well as adding
  GNU  libc  suffixes for "abi64", "abin32", "x32" to distinguish it
  from other libc flavors.
* work  around  musl's  nonstandard  use  of  feature test macros by
  adding  a  definition  for NCURSES_WIDECHAR to the generated ".pc"
  and *-config files.
* use  "command  -v"  rather than "type" in Ada95/gen/Makefile.in to
  fix a portability issue.


20221231 6.4 release
* update release notes
* regenerate llib-* files.
* correct PS vs PE names in bracketed+paste

20221224
* add mutex lock/unlock in a few places reported by thread-sanitizer
* add/use bracketed+paste to help identify terminals supporting this
  xterm feature

20221217
* install Ada95 sample programs in libexecdir, adding a wrapper
  script to invoke those.

20221210
* add minimal -h/-V getopt logic to the remaining test-programs.
* free new_pair() data in delscreen
* add clarification of the scope of dynamic variables in terminfo(5).
* remove a stray '/' from description of %g in terminfo(5).

20221203
* add -h usage and -V version options to the test-programs which use
  getopt.
* use "command -v" rather than "type" in Ada95/gen/Makefile.in to fix
  a portability issue
* update ncurses-howto, more documentation fixes along with corrections
  to example programs.

20221126
* fix an error in pathname of explain.txt
* fix an error in "@" command in test/ncurses.c F-menu
* improve formatting of ncurses-intro.html and hackguide.html
* improve man/curs_clear.3x links to other pages

20221119
* use static libraries for AdaCurses test-package for Mageia, since no
  gprbuild package is available.
* updated test packages for Debian.

20221112
* build-fixes for AdaCurses RPM test-package.

20221105
* regenerate configure scripts with autoconf 2.52.20221009
* modify "--with-manpage-format" to support bzip2 and xz compression
* modify make-tar.sh scripts to make timestamps more predictable.

20221029
* improve curs_slk.3x discussion of extensions and portability

20221023
* change man_db.renames to template, to handle ncurses*-config script
  with the extra-suffix configure option.

20221015
* fix another memory-leak in tic.
* update install-sh script from autoconf, to fix install problem for
  Ada95 with Arch
* update CF_XOPEN_SOURCE, adding GNU libc suffixes for abi64, abin32, x32
* correct ifdef's for _nc_set_read_thread()

20221008
* correct a switch-statement case in configure script to allow for test
  builds with ABI=7.
* modify misc/gen-pkgconfig.in to allow for the case where the library
  directory does not yet exist, since this is processed before doing an
  install

20221001
* modify configure/scripts to work around interference by GNU grep 3.8
* update CF_XOPEN_SOURCE, adding variants "gnueabi" and "gnueabihf" to
  get _DEFAULT_SOURCE special case

20220924
* modify configure macro CF_BUILD_CC to check if the build-compiler
  works, rather than that it is different from the cross-compiler, e.g.,
  to accommodate a compiler which can be used for either purpose with
  different flags
* fix another memory-leak in tic.
* correct change for cppcheck in menu library
* update config.guess, config.sub

20220917
* reduce memory-leak in tic by separating allocations for struct entry
  from TERMTYPE2
* improve interaction between tic -v option and NCURSES_TRACE, by
  processing the latter only when -v option does not set _nc_tracing.
* modify curses_trace() to show the trace-mask as symbols, e.g.,
  TRACE_ORDINARY, DEBUG_LEVEL(3).

20220910
* amend verbose-option change to make this affect level 3, e.g., using
  "tic -cv3 terminfo".
* work around musl's nonstandard use of feature test macros by adding
  a definition for NCURSES_WIDECHAR to the generated ".pc" and *-config
  files

20220903
* modify verbose-option of infocmp, tic, toe to enable debug-tracing
  if that is configured.

20220827
* modify configure scripts to use overlooked cases for LD and
  PKG_CONFIG variables
* modify nsterm to use xterm+alt1049
* modify putty to use xterm+alt1049

20220820
* fix some cppcheck warnings, mostly style, in ncurses and c++
  libraries and progs directory.
* add curses_trace to ifdef's for START_TRACE in test/test.priv.h
* update config.guess

20220813
* modify delscreen to more effectively delete all windows on the given
  screen.
* amend portability note for delwin in manual page.
* adapt test/test_delwin.c from example by Bill Gray.
* account for prescreen data if freeing leaks in pthread-configuration
* split-out _nc_set_read_thread(), to reduce compiler warnings about
  pthread_self(), which may/may not be a weak symbol.
* improve pthread-configuration for test/worm.c

20220806
* amend end_of_stream() to allow for input files without a final
  newline.
* check for non-textfiles to tic.

20220729
* fixes to build with dietlibc:
  + add configure check for fpathconf
  + add configure check for math sine/cosine, needed in test/tclock,
    and eliminate pow() from test/hanoi
  + use wcsnlen as an alternative to wmemchr if it is not found
* trim out some unwanted linker options from ncurses*config and .pc
  files seen in Fedora 36+.

20220724
* add portability notes for delscreen and delwin in manual.
* improve pthread-configuration for test/worm.c, test/rain.c
* improve pointer/limit checks associated with deleting a screen

20220716
* build-fix for test_mouse.c, for non-standard cfmakeraw.
* improve shell-scripts with shellcheck
* fix typo in run_tic.in

20220709
* lock the prescreen data consistently in newterm, etc., for the
  pthreads configuration

20220703
* add consistency check in tic for u6/u7/u8/u9 and NQ capabilities.
* use NQ to flag entries where the terminal does not support query and
  response
* use ansi+enq and decid+cpr in cases where the terminal probably
  supported the u6-u9 extension
* add/use apollo+vt132, xterm+alt47

20220625
* improve man/curs_bkgd.3x, explaining that bkgdset can affect results
  for bkgd
* correct dsl in dec+sl
* add/use ansi+cpr, decid+cpr

20220618
* add a null-pointer check for term_names field in copy_termtype(),
  needed for MinGW port
* revise kon/kon2/jfbterm to undo "linux2.6" change to smacs/rmacs/enacs
* amended note for att610+cvis0, as per documentation for att610,
  att620, att730

20220612
* modify waddch_literal() to allow for double-width base character when
  merging a combining character
* improve _tracecchar_t2() formatting of base+combining character.

20220604
* add note on portable memory-leak checking in man/curs_memleaks.3x
* remove u6-u9 from teken-2018
* set "xterm-new" to "xterm-p370", add "xterm-p371"

20220529
* expanded notes for teken/syscons
* fix overlooked copying of extended string-heap in copy_termtype
* update config.guess

20220521
* improve memory-leak checking in several test-programs.
* set trailing null on string passed from winsnstr() to wins_nwstr().
* modify del_curterm() to fix memory-leak introduced by change to
  copy_termtype().

20220514
* further improvements to test/test_mouse.c; compare with ncurses test
  program menu A/a.

20220507
* add test/test_mouse.c
* add a few debug-traces for tic, fix a couple of memory-leaks.

20220501
* build-fix for debug-traces

20220430
* modify samples for xterm mouse 1002/1003 modes to use 1006 mode, and
  also provide for focus in/out responses
* modify default case in handle_wheel() to always report button-release
  events, e.g., for xterm mouse mode 1003
* improve valid_entryname() to disallow characters used in terminfo
  syntax: '#', '=', '|', '\'.
* alter copy_termtype() to allocate new str_table and ext_str_table
  data rather than relying upon its callers.
* use calloc in _nc_init_entry() when allocating stringbuf, to ensure
  it is initialized.
* add library-level TYPE_CALLOC for consistency with TYPE_MALLOC.
* add some debug-traces for tic/infocmp.

20220423
* in-progress work on invalid_merge(), disable it
* fix memory leak in _nc_tic_dir() when called from _nc_set_writedir().
* fix memory leak in tic when "-c" option is used.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-01-01 17:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-01 17:02 Test: ncurses/-demo libncurses/-devel/++/w10 terminfo/-extra 6.4-1.20221231 (TEST) Cygwin ncurses Maintainer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).