summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2015-08-17 17:10:31 +0000
committerwiz <wiz@pkgsrc.org>2015-08-17 17:10:31 +0000
commit36caba4c76304f1e8612ff0e9187cfec69c5de22 (patch)
tree92b9ad9d5173ee3f6385f3df243037390d78b647 /devel
parenta34728ebd07b033a51df22484f4cf611802205fa (diff)
downloadpkgsrc-36caba4c76304f1e8612ff0e9187cfec69c5de22.tar.gz
Update to 6.0:
This release is designed to be source-compatible with ncurses 5.0 through 5.9; providing a new application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the intent of the release is to provide extensions which are generally useful, but binary-incompatible with ncurses 5: * Extend the cchar_t structure to allow more than 16 colors to be encoded. * Modify the encoding of mouse state to make room for a 5th mouse button. That allows one to use ncurses with a wheel mouse with xterm or similar X terminal emulators. There are, of course, numerous other improvements, including * fixes made based on the Clang and Coverity static analyzers. * memory leak fixes using Valgrind The release notes mention some bug-fixes, but are focused on new features and improvements to existing features log since ncurses 5.9 release. While the intent of the release is to provide a new stable ABI, there are other development activities which are summarized below. * The original release plan, e.g., for "5.10" was to improve the MinGW port. Ultimately that was completed (wide-character support, mouse, etc), but was deferred to focus on termcap support and performance issues. Also, pinpointing the problems with Console2 took a while. * A review of termcap compatibility in 2011 led to several minor fixes in the library and improvements to utilities. To do this properly, a review of the various extent termcap implementations was needed. The [11]termcap library checker (tctest) (not part of ncurses) was one result. A followup review of performance using [12]ncurses-examples in 2014 led to additional improvements. * Output buffering provided a further, but worthwhile distraction. A bug report in 2012 regarding the use of signal handlers in ncurses) pointed out [13]a problem with the use of unsafe functions for handling SIGTSTP. Other signals could be addressed with workarounds; repairing SIGTSTP required a different approach. The solution required changing internal behavior of the library: how it handles output buffering. Now ncurses buffers its own output, independently of the standard output. A few applications relied upon the library's direct reuse of the standard output buffering; however that is unspecified behavior and has never been a recommended practice. Identifying these applications as well as refining the change to permit low-level applications to work consistently took time. * Since the introduction of the experimental support for 256 colors early in [14]2005 (released in [15]ncurses 5.5), there has been increased user interest. Almost all packagers continue providing the ncurses ABI 5 which cannot support 256 colors. * Symbol versioning, or the lack of it in ncurses, is the main reason why packagers would be reluctant to add a new ncurses ABI. This release provides the new ABI along with script-generated lists of versioned symbols which can be used for both ABI 5 and 6 (with distinct names to keep the two separate). This took time to development, as reported in [16]Symbol versioning in ncurses. Library improvements Output buffering X/Open curses provides more than one initialization function: * [17]initscr (the simplest) accepts no parameters. * [18]newterm accepts parameters for the stream input and output * [19]setupterm (the low-level function) accepts a parameter for the file descriptor of the output. They are documented in X/Open as if initscr calls newterm using stdout for output stream, and in turn newterm calls setupterm using fileno(stdout) for the file descriptor. As long as an implementation acts as if it does this, it conforms. In practice, implementations do what is implied. This creates a problem: the low-level setupterm function's file descriptor is unbuffered, while newterm implies buffered output. X/Open Curses says that all output is done through the file descriptor, and does not say how the output stream is actually used. Initially, ncurses used the file descriptor (obtained from the output stream passed to newterm) for changing the terminal modes, and relied upon the output parameter of newterm for buffered output. Later (to avoid using unsafe buffered I/O in signal handlers), ncurses was modified to use the file descriptor (unbuffered output) when cleaning up on receipt of a signal. Otherwise (when not handling a signal), it continued to use the buffered output. That approach worked reasonably well and as a side effect, using the same buffered output as an application might use for printf meant that no flushing was needed when switching between normal- and screen-modes. There were a couple of problems: * to get good performance, curses (not only ncurses, but SVr4 curses in general) set an output buffer using setbuf or similar function. There is no standard (or portable) way to turn that output buffer off, and revert to line-buffering. The [20]NCURSES_NO_SETBUF environment variable did make it optional. * to handle SIGTSTP (the "stop" signal), ncurses relied upon unsafe functions. That is, due to the complexity of the feature, it relied upon reusing existing functions which should not have been called via the signal handler. Conveniently, solving the second problem (by making ncurses do its own output buffering) also fixed the first one. But there were special cases to resolve: [21]low-level functions such as mvcur, putp, vidattr explicitly use the standard output. Those functions were reused internally, and required modification to distinguish whether they were used by the high-level or low-level interfaces. Finally, there may still be a few programs which should be modified to improve their portability, e.g., adding an fflush(stdout); when switching from "[22]shell" mode to "[23]program" (curses) mode. Those are fairly rare because most programmers have learned not to mix printf and [24]printw. Symbol versioning This release introduces symbol-versioning to ncurses because without it, the change of ABI would be less successful. A lengthy discussion will be presented in [25]Symbol versioning in ncurses. These notes summarize what has changed, and what can be done with the new release. Symbol-versioning allows the developers of a library to mark each public symbol (both data and functions) with an identifier denoting the library name and the version for which it was built. By doing this, users of the library have a way to help ensure that applications do not accidentally load an incompatible library. In addition, private symbols can be hidden entirely. This release provides sample files for the four principal configurations of ncurses libraries: ncurses, ncursesw, ncursest and ncursestw. Each sample is given in two forms: ".map" These list all public symbols, together with version names. ".sym" These list all public symbols, without version names. The sample files are generated by scripts which take into account a few special cases such as [26]tack to omit many of the ncurses private symbols (beginning with "_nc_"). Here are counts of globals versus locals: Config Symbols Globals Locals "_nc_" ncurses 976 796 180 332 ncursesw 1089 905 184 343 ncursest 979 804 175 358 ncursestw 1098 914 184 372 Although only four sample configurations are presented, each is formed by merging symbols from several combinations of configure-script options, taking into account advice from downstream packagers. Because they are formed by merging, the sample files may list a symbol which is not in a given package. That is expected. The samples have been tested and are working with systems (such as Fedora, FreeBSD and Debian) which fully support this feature. There are other systems which do not support the feature, and a few (such as Solaris) which provide incomplete support. The version-naming convention used allows these sample files to build distinct libraries for ABI 5 and 6. Version names consist of * configuration name, e.g., "NCURSESW" for the wide-character libraries * ABI version (if not 5) * library name for two special cases which have the same interface across configurations: "TINFO" and "TIC" * release version * patch date (for the release version) For example, running nm -D on the libraries in the ncurses6 test package shows these symbol-versions: 0000000000000000 A NCURSES6_TIC_5.0.19991023 0000000000000000 A NCURSES6_TIC_5.1.20000708 0000000000000000 A NCURSES6_TIC_5.5.20051010 0000000000000000 A NCURSES6_TIC_5.7.20081102 0000000000000000 A NCURSES6_TIC_5.9.20150530 0000000000000000 A NCURSES6_TINFO_5.0.19991023 0000000000000000 A NCURSES6_TINFO_5.1.20000708 0000000000000000 A NCURSES6_TINFO_5.2.20001021 0000000000000000 A NCURSES6_TINFO_5.3.20021019 0000000000000000 A NCURSES6_TINFO_5.4.20040208 0000000000000000 A NCURSES6_TINFO_5.5.20051010 0000000000000000 A NCURSES6_TINFO_5.6.20061217 0000000000000000 A NCURSES6_TINFO_5.7.20081102 0000000000000000 A NCURSES6_TINFO_5.8.20110226 0000000000000000 A NCURSES6_TINFO_5.9.20150530 0000000000000000 A NCURSESW6_5.1.20000708 0000000000000000 A NCURSESW6_5.3.20021019 0000000000000000 A NCURSESW6_5.4.20040208 0000000000000000 A NCURSESW6_5.5.20051010 0000000000000000 A NCURSESW6_5.6.20061217 0000000000000000 A NCURSESW6_5.7.20081102 0000000000000000 A NCURSESW6_5.8.20110226 0000000000000000 A NCURSESW6_5.9.20150530 As a special case, this release (which makes the final change for ABI 5) is marked with release version 5.9 and patch date 20150530. Miscellaneous The new release has several improvements for performance and building. For instance: * several files in ncurses- and progs-directories were modified to allow const data used in internal tables to be put by the linker into the readonly text segment. * various improvements were made to building the Ada95 binding, both in simplifying the generated files as well as improving the way it uses gnatmake There are also new features in the libraries: * added [27]use_tioctl function * added [28]wgetdelay to retrieve _delay member of WINDOW if it happens to be opaque, e.g., in the pthread configuration. * added [29]A_ITALIC extension. * added form library extension [30]O_DYNAMIC_JUSTIFY option which can be used to override the different treatment of justification for static versus dynamic fields . * rewrote [31]putwin and [32]getwin, making an extended version which is capable of reading screen-dumps between the wide/normal ncurses configurations. These are text files, except for a magic code at the beginning: 0 string \210\210 Screen-dump (ncurses) * several changes to mouse support include: + added decoder for xterm SGR 1006 mouse mode. + added experimental support for "%u" format to terminfo. + improved behavior of wheel-mice for xterm protocol: noting that there are only button-presses for buttons "4" and "5", so there is no need to wait to combine events into double-clicks . There are a few new configure options dealing with library customization: * add "--enable-ext-putwin" configure option to turn on the extended putwin/getwin. By default, this is enabled for ABI 6 and disabled with ABI 5. * add "--enable-string-hacks" option to control whether strlcat and strlcpy may be used. Because ncurses already does the requisite buffer-limit checks, this feature is mainly of interest to quiet compiler-warnings on a few systems. * add configure option "--with-tparm-arg" to allow [33]tparm's parameters to be something more likely to be the same size as a pointer, e.g., intptr_t (again, the default is set for ABI 6). Program improvements Utilities Most of the termcap-related changes based on development of [34]tctest (termcap library checker) are implemented in the tic and infocmp programs rather than affecting the library. As noted in the [35]discussion of tctest, ncurses's ability to translate between terminfo and termcap formats has been improved at different times, but subject to feedback from "real" termcap users. There are very few of those. Nowadays, virtually all termcap users are using ncurses (or NetBSD, with its own terminfo library) and their programs are actually using terminfo rather than termcap data. Still, there are a few. A comment about the translation of the ASCII NUL character prompted a review: * Both terminfo and termcap store string capabilities as NUL-terminated strings. * In terminfo, a \0 in a terminal description is stored as \200. * There are no (known) terminals which would behave differently when sent \0 or \200. * When translating to terminfo format (or displaying a printable version of an entry using infocmp), ncurses shows \200 as \0. * It has done this since 1998 (quoting from the NEWS file): [36]980103 ... + modify _nc_tic_expand() to generate \0 rather than \200. ... + correct translation of terminfo "^@", to \200, like \0. * However, the _nc_tic_expand function (which optionally produces terminfo or termcap format) did not address this special case for termcap. Even the later 4.4BSD [37]cgetstr interprets a \0 literally, ending that string (rather than using the terminfo improvement). As a result of the review, several improvements were made to ncurses translation to/from termcap format -- and improving the checks made in tic for consistency of entries. Most of these are not of general interest, except for two new command-line options for tic and infocmp: * the "-0" option generates termcap/terminfo source on a single line. * the "-K" option provides stricter BSD-compatibility for termcap output. Other user-visible improvements and new features include: * added "-D" option to tic and infocmp, to show the database locations that it could use. * added "-s" option to toe, to sort its output. * extended "-c" and "-n" options of infocmp to allow comparing more than two entries. * modified toe's report when "-a" and "-s" options are combined, to add a column showing which entries belong to a given database. * modified the clear program to take into account the "E3" extended capability to clear the terminal's scrollback buffer. Examples Along with the library and utilities, many improvements were made to the [38]ncurses-examples. Some were made to allow building (and comparison-testing) against NetBSD curses and PDCurses. Both lack some of the X/Open Curses features, necessitating customization. But this activity was useful because it showed some remaining performance issues (which have been resolved in this release). These changes were made to verify compatibility or compare performance of ncurses: * made workarounds for compiling test-programs with NetBSD curses, though it lacks some common functions such as [39]use_env. * added dots_termcap test-program * added dots_curses test-program, for comparison with the low-level examples. * added test_setupterm test-proram to demonstrate normal/error returns from the setupterm and restartterm functions. * added "-d", "-e" and "-q" options to the demo_terminfo and demo_termcap test-programs. * added "-y" option to demo_termcap and test/demo_terminfo test-programs to demonstrate behavior with/without extended capabilities. * modified demo_termcap and demo_terminfo test-programs to make their options more directly comparable, and add "-i" option to specify a terminal description filename to parse for names to lookup. * rewrote the tests for [40]mvderwin and test for recursive [41]mvwin in the movewindow test-program. These changes were made to help with the MinGW port: * added test-screens to the ncurses test-program to show 256-characters at a time, to help with MinGW port. * modified the view test-program to load UTF-8 when built with MinGW by using regular win32 API because the MinGW functions mblen and mbtowc do not work. * added "-s" option to the view test-program to allow it to start in single-step mode, reducing size of trace files when it is used for debugging MinGW changes. These changes were made to verify new extensions in ncurses: * added [42]form_driver_w entrypoint to wide-character forms library, as well as form_driver_w test-program. * modified ncurses test-program's b/B tests to display lines only for the attributes which a given terminal supports, to make room for an italics test. * modified ncurses test-program, adding "-E" and "-T" options to demonstrate use_env versus use_tioctl. * modified ncurses test-program's c/C tests to cycle through subsets of the total number of colors, to better illustrate 8/16/88/256-colors by providing directly comparable screens. * modified the ncurses test-program to also show position reports in 'a' test. These changes were made to make the examples more useful: * added scripts for building dpkg and rpm test-packages * modified the hanoi test-program to show the minimum number of moves possible for the given number of tiles. * modified the knight test-program to show the number of choices possible for each position in automove option, e.g., to allow user to follow Warnsdorff's rule to solve the puzzle. Terminal database This release provides improvements to tic's "-c" checking option, which was used for example to * make sgr in several entries agree with other caps. * correct padding in some entries where earlier versions had miscounted the number of octal digits. There are several new terminal descriptions: * [43]mlterm is now aliased to mlterm3 * [44]nsterm is now derived from nsterm-256color * [45]putty-sco * [46]teken is FreeBSD's "xterm" console. * [47]terminator * [48]terminology * [49]tmux is derived from screen. * several screen.XXX entries support the respective variations for 256 colors. * [50]simpleterm is now 0.5 * [51]vte is aliased to vte-2012 * [52]vt520ansi A few entries use extensions (user-defined terminal capabilities): * E3, used in linux, putty and xterm-basic is tested in the [53]clear program to erase a terminal's scrollback. * TS is used in the [54]xterm+sl building block to help deprecate the misuse of tsl for xterm's title-string. * XT is used in some terminfo entries to improve usefulness for other applications than screen, which would like to pretend that xterm's title is a status-line. * xm is used in examples [55]xterm-1005 and [56]xterm-1006 to illustrate a way to make mouse handling more general A few terminals support italics and/or dim capabilities. In particular, screen does not. Documented that, and accommodated the terminals where this feature works with the A_ITALIC extension. * konsole, mlterm3 (italics) * nsterm (dim) * screen (dim) * vte (dim, italics) * xterm (dim, italics) 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 [57]NEWS file but treated sketchily in manual pages. In addition, the mechanism for producing HTML versions of the documentation has been improved: * use an improved version of [58]man2html to generate html manpages. * regenerated [59]NCURSES-Programming-HOWTO.html to fix some of the broken html emitted by docbook. Interesting bug-fixes * Ada95 binding: + modify makefile rules to ensure that the PIC option is not used when building a static library + make Ada95 build-fix for big-endian architectures such as sparc. This undoes one of the fixes from [60]20110319, which added an "Unused" member to representation clauses, replacing that with pragmas to suppress warnings about unused bits. * Color and attributes: + parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in curses.h in case it happens to be a comma-expression. + improve [61]20021221 workaround for broken acs, handling a case where that ACS_xxx character is not in the acsc string but there is a known wide-character which can be used. + modify [62]init_pair to accept -1's for color value after [63]assume_default_colors has been called. + add a check in [64]start_color to limit color-pairs to 256 when extended colors are not supported. * Resizing the screen: + propagate error-returns from wresize, i.e., the internal increase_size and decrease_size functions through [65]resize_term. + add check for zero/negative dimensions for resizeterm and resize_term. + modify resizeterm to always push a KEY_RESIZE onto the fifo, even if screensize is unchanged. Modify library to push a KEY_RESIZE if there was a SIGWINCH, even if it does not call resizeterm). These changes eliminate the case where a SIGWINCH is received, but ERR is returned from wgetch or wgetnstr because the screen dimensions did not change. * Low-level interfaces + fix an old bug in the termcap emulation; "%i" was ignored in tparm because the parameters to be incremented were already on the internal stack. + change "%l" behavior in tparm to push the string length onto the stack rather than saving the formatted length into the output buffer. + modify name-comparison for tgetstr, etc., to accommodate legacy applications as well as to improve compatbility with BSD 4.2 termcap implementations (see note for [66]980725). * High-level interfaces + modify internal recursion in wgetch which handles cooked mode to check if the call to wgetnstr returned an error. This can happen when both nocbreak and nodelay are set, for instance (see note for [67]960418). + add a check in internal function waddch_nosync to ensure that tab characters are treated as control characters; some broken locales claim they are printable. + modify menu library to ensure that a menu's top-row is adjusted as needed to ensure that the current item is on the screen + fix special case where double-width character overwrites a single- width character in the first column. Configuration changes Major changes The ncurses 6.0 configure script makes changes to the default value of several configure options, depending on the --with-abi-version option (i.e., whether its value is "5" or "6"): --enable-const Feature introduced in [68]970405 supports the use of const where X/Open Curses should have, but did not. NetBSD curses does something similar with const. --enable-ext-colors Extends the cchar_t structure to allow more than 16 colors to be encoded. This applies only to the wide-character (--enable-widec) configuration. --enable-ext-mouse Modifies the encoding of mouse state to make room for a 5th mouse button. That allows one to use ncurses with a wheel mouse with xterm or similar X terminal emulators. --enable-ext-putwin Modifies the file-format written by putwin to use printable text rather than binary files, allowing getwin to read screen dumps written by differently-configured ncurses libraries. The extended getwin can still read binary screen dumps from the same configuration of ncurses. This does not change the ABI (the binary interface seen by calling applications). --enable-interop Modifies the FIELDTYPE structure used for the form library to make it more generic. --enable-lp64 Allows an application to define _LP64 to declare chtype and mmask_t as simply "unsigned" rather than the configured types using the --with-chtype and --with-mmask_t options. --enable-sp-funcs Compile-in support for extended functions which accept a SCREEN pointer, reducing the need for juggling the global SP value with [69]set_term and [70]delscreen. --with-chtype=uint32_t Makes chtype explicitly a 32-bit unsigned value. --with-mmask_t=uint32_t Makes mmask_t explicitly a 32-bit unsigned value. --with-tparm-arg=intptr_t X/Open Curses declares [71]tparm using long for each of the parameters aside from the formatting string, presuming that long and char* are the same size. This configure option uses intptr_t which provides a better guarantee of the sizes. The configure script no longer checks for antique compilers; c89 is assumed as a minimum. There are a few features from later revisions which are used when available. The configure script makes checks to turn on useful warnings from clang, gcc and icc. You should be able to build ncurses 6.0 with any of the current (or not so current) C compilers available in 2015. The configure script, by the way, makes changes which do not work with systems whose /bin/sh is non-POSIX. This mainly affects Solaris (the other vendor unix systems have followed the POSIX guidelines for the past twenty years). If you must build on Solaris, its [72]xpg4 binaries suffice, e.g., #!/bin/sh WHAT=`hostname|sed -e 's/\..*//'` OUT=configure.out cat >>$OUT <<EOF/ ** `date` ** node: $WHAT ** user: `id` ** conf: $* EOF/ SHELL=/bin/sh if test -f /usr/xpg4/bin/sh then CONFIG_SHELL=/usr/xpg4/bin/sh export CONFIG_SHELL SHELL=$CONFIG_SHELL fi rm -f config.status config.cache TOP=$HOME/$WHAT $SHELL ./configure --verbose \ --disable-echo \ --disable-overwrite \ --enable-warnings \ --with-warnings \ --prefix=$TOP $* 2>&1 | tee -a $OUT Other major changes to the configure script include: * ABI 6 is now the default, intending that the existing ABI 5 should build as before using the "--with-abi-version=5" option. * added --with-extra-suffix option to help with installing nonconflicting ncurses6 packages, e.g., avoiding header- and library-conflicts. NOTE: as a side-effect, this renames adacurses-config to adacurses5-config and adacursesw-config to adacursesw5-config * the configure script looks for gnatgcc if the Ada95 binding is built, in preference to the default gcc/cc. The script also ensures that the Ada95 binding is built with the level of optimization as the C libraries. * the configure script captures define's related to -D_XOPEN_SOURCE from the configure check and adds those to the *-config and *.pc files, to simplify use for the wide-character libraries.
Diffstat (limited to 'devel')
-rw-r--r--devel/ncurses/Makefile3
-rw-r--r--devel/ncurses/Makefile.common4
-rw-r--r--devel/ncurses/PLIST9
-rw-r--r--devel/ncurses/buildlink3.mk4
-rw-r--r--devel/ncurses/distinfo22
-rw-r--r--devel/ncurses/patches/patch-aa14
-rw-r--r--devel/ncurses/patches/patch-ab35
-rw-r--r--devel/ncurses/patches/patch-ac44
-rw-r--r--devel/ncurses/patches/patch-ad13
-rw-r--r--devel/ncurses/patches/patch-cxx_cursesf.h22
-rw-r--r--devel/ncurses/patches/patch-cxx_cursesm.h22
-rw-r--r--devel/ncurses/patches/patch-ncurses_tinfo_lib__baudrate.c8
-rw-r--r--devel/ncursesw/Makefile3
-rw-r--r--devel/ncursesw/PLIST4
-rw-r--r--devel/ncursesw/buildlink3.mk4
15 files changed, 74 insertions, 137 deletions
diff --git a/devel/ncurses/Makefile b/devel/ncurses/Makefile
index 94b9e6dc4e0..31d7bb5b02e 100644
--- a/devel/ncurses/Makefile
+++ b/devel/ncurses/Makefile
@@ -1,9 +1,8 @@
-# $NetBSD: Makefile,v 1.90 2014/09/16 09:45:58 wiz Exp $
+# $NetBSD: Makefile,v 1.91 2015/08/17 17:10:31 wiz Exp $
.include "Makefile.common"
COMMENT= CRT screen handling and optimization package
-PKGREVISION= 4
INSTALLATION_DIRS+= share/examples
diff --git a/devel/ncurses/Makefile.common b/devel/ncurses/Makefile.common
index 1f47109c9b1..711867f66fa 100644
--- a/devel/ncurses/Makefile.common
+++ b/devel/ncurses/Makefile.common
@@ -1,10 +1,10 @@
-# $NetBSD: Makefile.common,v 1.28 2015/06/04 09:14:33 jperkin Exp $
+# $NetBSD: Makefile.common,v 1.29 2015/08/17 17:10:31 wiz Exp $
#
# used by devel/ncurses/Makefile
# used by devel/ncursesw/Makefile
DISTNAME= ncurses-${NC_VERS}
-NC_VERS= 5.9
+NC_VERS= 6.0
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=ncurses/} \
ftp://dickey.his.com/ncurses/ \
diff --git a/devel/ncurses/PLIST b/devel/ncurses/PLIST
index 8c9f9f3d5b7..29d49f6a0bc 100644
--- a/devel/ncurses/PLIST
+++ b/devel/ncurses/PLIST
@@ -1,9 +1,9 @@
-@comment $NetBSD: PLIST,v 1.20 2011/02/28 11:02:46 adam Exp $
+@comment $NetBSD: PLIST,v 1.21 2015/08/17 17:10:31 wiz Exp $
bin/captoinfo
bin/clear
bin/infocmp
bin/infotocap
-bin/ncurses5-config
+bin/ncurses6-config
bin/reset
bin/tabs
bin/tic
@@ -39,7 +39,7 @@ man/man1/captoinfo.1
man/man1/clear.1
man/man1/infocmp.1
man/man1/infotocap.1
-man/man1/ncurses5-config.1
+man/man1/ncurses6-config.1
man/man1/reset.1
man/man1/tabs.1
man/man1/tic.1
@@ -257,6 +257,7 @@ man/man3/form.3
man/man3/form_cursor.3
man/man3/form_data.3
man/man3/form_driver.3
+man/man3/form_driver_w.3
man/man3/form_field.3
man/man3/form_field_attributes.3
man/man3/form_field_buffer.3
@@ -796,6 +797,7 @@ man/man3/use_extended_names.3
man/man3/use_legacy_coding.3
man/man3/use_legacy_coding_sp.3
man/man3/use_screen.3
+man/man3/use_tioctl.3
man/man3/use_window.3
man/man3/vid_attr.3
man/man3/vid_attr_sp.3
@@ -850,6 +852,7 @@ man/man3/wget_wch.3
man/man3/wget_wstr.3
man/man3/wgetbkgrnd.3
man/man3/wgetch.3
+man/man3/wgetdelay.3
man/man3/wgetn_wstr.3
man/man3/wgetnstr.3
man/man3/wgetparent.3
diff --git a/devel/ncurses/buildlink3.mk b/devel/ncurses/buildlink3.mk
index 2d119b02bed..b7fe07f59bd 100644
--- a/devel/ncurses/buildlink3.mk
+++ b/devel/ncurses/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.45 2014/12/03 13:57:48 joerg Exp $
+# $NetBSD: buildlink3.mk,v 1.46 2015/08/17 17:10:31 wiz Exp $
BUILDLINK_TREE+= ncurses
@@ -6,7 +6,7 @@ BUILDLINK_TREE+= ncurses
NCURSES_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.ncurses+= ncurses>=5.3nb1
-BUILDLINK_ABI_DEPENDS.ncurses+= ncurses>=5.4nb1
+BUILDLINK_ABI_DEPENDS.ncurses+= ncurses>=6.0
BUILDLINK_PKGSRCDIR.ncurses?= ../../devel/ncurses
BUILDLINK_LIBNAME.ncurses= ncurses
diff --git a/devel/ncurses/distinfo b/devel/ncurses/distinfo
index ff4fbe46f84..924b0e08f4a 100644
--- a/devel/ncurses/distinfo
+++ b/devel/ncurses/distinfo
@@ -1,13 +1,13 @@
-$NetBSD: distinfo,v 1.26 2015/06/17 14:20:03 jperkin Exp $
+$NetBSD: distinfo,v 1.27 2015/08/17 17:10:31 wiz Exp $
-SHA1 (ncurses-5.9.tar.gz) = 3e042e5f2c7223bffdaac9646a533b8c758b65b5
-RMD160 (ncurses-5.9.tar.gz) = dd7dffe38fcc908230ce3e036b71ced2d270ac9e
-Size (ncurses-5.9.tar.gz) = 2826473 bytes
-SHA1 (patch-aa) = e2bafc25f1c9e39062de06eccbe1e71321dbd719
-SHA1 (patch-ab) = 12ed75d0228793d9ceac5933d8ac8741d2852c31
-SHA1 (patch-ac) = 37215c0930db9cc234c7a59a4c56cbeade6cf5f1
-SHA1 (patch-ad) = 15d74d0105a22d0cb1aef5c841e6a6085c498bfe
-SHA1 (patch-cxx_cursesf.h) = ed10202764d97d7d94d4eb4b35e84424cabc4c20
-SHA1 (patch-cxx_cursesm.h) = 0b371901959ce9e36493e57d8df65356284b9ef3
+SHA1 (ncurses-6.0.tar.gz) = acd606135a5124905da770803c05f1f20dd3b21c
+RMD160 (ncurses-6.0.tar.gz) = 4d9e5938f00b400bfb0d37f3c54f2f36c4157d48
+Size (ncurses-6.0.tar.gz) = 3131891 bytes
+SHA1 (patch-aa) = 6acf84077e84fd693bb2b52377774db3d15b4f8f
+SHA1 (patch-ab) = 235ae1d844721a5ea9d027d051eedc0f7898413c
+SHA1 (patch-ac) = fd1892bfb4dcf8a22ae4654eb944eda9725f964e
+SHA1 (patch-ad) = adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
+SHA1 (patch-cxx_cursesf.h) = adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
+SHA1 (patch-cxx_cursesm.h) = adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
SHA1 (patch-ncurses_base_MKlib__gen.sh) = f8ce67fbd273529e4161a2820677d05a623fd527
-SHA1 (patch-ncurses_tinfo_lib__baudrate.c) = faaf60ec21e9e4e6a4b14d9f245e569b526572df
+SHA1 (patch-ncurses_tinfo_lib__baudrate.c) = e383a11530a3045e729ab8c738e57a9e217a994f
diff --git a/devel/ncurses/patches/patch-aa b/devel/ncurses/patches/patch-aa
index ae468735ab6..e857b7f39c6 100644
--- a/devel/ncurses/patches/patch-aa
+++ b/devel/ncurses/patches/patch-aa
@@ -1,8 +1,8 @@
-$NetBSD: patch-aa,v 1.17 2014/05/11 16:55:17 rodent Exp $
+$NetBSD: patch-aa,v 1.18 2015/08/17 17:10:32 wiz Exp $
---- misc/run_tic.in.orig Wed Feb 23 23:30:15 2011
+--- misc/run_tic.in.orig 2012-10-06 19:00:51.000000000 +0000
+++ misc/run_tic.in
-@@ -122,7 +122,7 @@ fi
+@@ -123,7 +123,7 @@ fi
# would generate a lot of confusing error messages if we tried to overwrite it.
# We explicitly remove its contents rather than the directory itself, in case
# the directory is actually a symbolic link.
@@ -11,13 +11,13 @@ $NetBSD: patch-aa,v 1.17 2014/05/11 16:55:17 rodent Exp $
if test "$ext_funcs" = 1 ; then
cat <<EOF
-@@ -163,6 +163,9 @@ else
- exit 1
+@@ -165,6 +165,9 @@ else
fi
fi
-+
+
+# For NetBSD pkgsrc, don't bother with setting a symbolic link.
+exit 0
-
++
# Make a symbolic link to provide compatibility with applications that expect
# to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not
+ # all systems support symbolic links, and those that do provide a variety
diff --git a/devel/ncurses/patches/patch-ab b/devel/ncurses/patches/patch-ab
index e4bbf19b3ec..a95cdb36961 100644
--- a/devel/ncurses/patches/patch-ab
+++ b/devel/ncurses/patches/patch-ab
@@ -1,23 +1,26 @@
-$NetBSD: patch-ab,v 1.17 2014/05/11 16:55:17 rodent Exp $
+$NetBSD: patch-ab,v 1.18 2015/08/17 17:10:32 wiz Exp $
---- mk-1st.awk.orig Sat Aug 7 20:42:30 2010
+--- mk-1st.awk.orig 2014-12-20 23:54:22.000000000 +0000
+++ mk-1st.awk
-@@ -396,11 +396,11 @@ END {
- end_name = lib_name;
- printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
- if ( is_ticlib() ) {
-- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS, libtool_version
-+ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:.o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS, libtool_version
- } else if ( is_termlib() ) {
-- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS, libtool_version
-+ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:.o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS, libtool_version
- } else {
-- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS, libtool_version
-+ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:.o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS, libtool_version
+@@ -447,7 +447,7 @@ END {
+ which_list = "SHLIB_LIST";
+ }
+ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) $(%s) \\\n", CC_NAME, CC_FLAG;
+- printf "\t\t-o %s $(%s_OBJS:$o=.lo) \\\n", lib_name, OBJS;
++ printf "\t\t-o %s $(%s_OBJS:.o=.lo) \\\n", lib_name, OBJS;
+ printf "\t\t-rpath $(DESTDIR)$(libdir) \\\n";
+ printf "\t\t%s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(%s) $(LDFLAGS)\n", libtool_version, which_list;
+ print ""
+@@ -471,7 +471,7 @@ END {
+ printf "\t$(RANLIB) $@\n"
+ if ( host == "vxworks" )
+ {
+- printf "\t$(LD) $(LD_OPTS) $? -o $(@:.a=$o)\n"
++ printf "\t$(LD) $(LD_OPTS) $? -o $(@:.a=.o)\n"
}
print ""
print "install \\"
-@@ -469,7 +469,7 @@ END {
+@@ -517,7 +517,7 @@ END {
print "mostlyclean::"
printf "\t-rm -f $(%s_OBJS)\n", OBJS
if ( MODEL == "LIBTOOL" ) {
@@ -26,7 +29,7 @@ $NetBSD: patch-ab,v 1.17 2014/05/11 16:55:17 rodent Exp $
}
}
else if ( found == 2 )
-@@ -478,13 +478,13 @@ END {
+@@ -526,13 +526,13 @@ END {
print "mostlyclean::"
printf "\t-rm -f $(%s_OBJS)\n", OBJS
if ( MODEL == "LIBTOOL" ) {
diff --git a/devel/ncurses/patches/patch-ac b/devel/ncurses/patches/patch-ac
index d46c921ff4f..d5a9cee5bcd 100644
--- a/devel/ncurses/patches/patch-ac
+++ b/devel/ncurses/patches/patch-ac
@@ -1,39 +1,23 @@
-$NetBSD: patch-ac,v 1.22 2015/02/18 03:10:42 sevan Exp $
+$NetBSD: patch-ac,v 1.23 2015/08/17 17:10:32 wiz Exp $
Allow ncurses to build with compiler from pkgsrc by dropping the use of
-no-cpp-precomp which is specific to Apple's supplied toolchain.
Don't rename man pages on Debian.
Include local paths before utilising flags from build env
---- configure.orig 2011-03-31 23:35:51.000000000 +0000
+--- configure.orig 2015-08-05 09:20:32.000000000 +0000
+++ configure
-@@ -5584,7 +5584,6 @@ CF_EOF
- chmod +x mk_shared_lib.sh
- ;;
- darwin*) #(vi
-- EXTRA_CFLAGS="-no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
-@@ -9640,12 +9639,7 @@ case ".$MANPAGE_RENAMES" in #(vi
- .no) #(vi
- ;;
- .|.yes)
-- # Debian 'man' program?
-- if test -f /etc/debian_version ; then
-- MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
-- else
- MANPAGE_RENAMES=no
-- fi
- ;;
+@@ -11090,12 +11090,7 @@ case ".$MANPAGE_RENAMES" in
+ (.no)
+ ;;
+ (.|.yes)
+- # Debian 'man' program?
+- if test -f /etc/debian_version ; then
+- MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
+- else
+- MANPAGE_RENAMES=no
+- fi
++ MANPAGE_RENAMES=no
+ ;;
esac
-@@ -18592,7 +18586,7 @@ echo "${ECHO_T}$LIB_SUBSETS" >&6
-
- ### Construct the list of include-directories to be generated
-
--CPPFLAGS="$CPPFLAGS -I. -I../include"
-+CPPFLAGS="-I. -I../include $CPPFLAGS"
- if test "$srcdir" != "."; then
- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
- fi
diff --git a/devel/ncurses/patches/patch-ad b/devel/ncurses/patches/patch-ad
index 32ab642f5f1..d0f9b20b14c 100644
--- a/devel/ncurses/patches/patch-ad
+++ b/devel/ncurses/patches/patch-ad
@@ -1,13 +1,2 @@
-$NetBSD: patch-ad,v 1.12 2014/05/11 16:55:17 rodent Exp $
+$NetBSD: patch-ad,v 1.13 2015/08/17 17:10:32 wiz Exp $
---- c++/Makefile.in.orig Sat Nov 27 21:45:27 2010
-+++ c++/Makefile.in
-@@ -167,7 +167,7 @@ LIB_OBJS = \
-
- ../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
- cd ../lib && $(LIBTOOL_LINK) $(CXX) $(CXXFLAGS) \
-- -o $(LIBNAME) $(LIB_OBJS:$o=.lo) \
-+ -o $(LIBNAME) $(LIB_OBJS:.o=.lo) \
- -rpath $(INSTALL_PREFIX)$(libdir) \
- $(LIBTOOL_VERSION) $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)
-
diff --git a/devel/ncurses/patches/patch-cxx_cursesf.h b/devel/ncurses/patches/patch-cxx_cursesf.h
index 3645cce972c..f8805ae55d3 100644
--- a/devel/ncurses/patches/patch-cxx_cursesf.h
+++ b/devel/ncurses/patches/patch-cxx_cursesf.h
@@ -1,22 +1,2 @@
-$NetBSD: patch-cxx_cursesf.h,v 1.2 2014/05/11 16:55:17 rodent Exp $
+$NetBSD: patch-cxx_cursesf.h,v 1.3 2015/08/17 17:10:32 wiz Exp $
---- c++/cursesf.h.orig Sat Aug 13 18:08:24 2005
-+++ c++/cursesf.h
-@@ -677,7 +677,7 @@ template<class T> class NCURSES_IMPEXP NCursesUserForm
- }
-
- public:
-- NCursesUserForm (NCursesFormField Fields[],
-+ NCursesUserForm (NCursesFormField *Fields[],
- const T* p_UserData = STATIC_CAST(T*)(0),
- bool with_frame=FALSE,
- bool autoDelete_Fields=FALSE)
-@@ -686,7 +686,7 @@ template<class T> class NCURSES_IMPEXP NCursesUserForm
- set_user (const_cast<void *>(p_UserData));
- };
-
-- NCursesUserForm (NCursesFormField Fields[],
-+ NCursesUserForm (NCursesFormField *Fields[],
- int nlines,
- int ncols,
- int begin_y = 0,
diff --git a/devel/ncurses/patches/patch-cxx_cursesm.h b/devel/ncurses/patches/patch-cxx_cursesm.h
index ffd4cd63434..970d90130ee 100644
--- a/devel/ncurses/patches/patch-cxx_cursesm.h
+++ b/devel/ncurses/patches/patch-cxx_cursesm.h
@@ -1,22 +1,2 @@
-$NetBSD: patch-cxx_cursesm.h,v 1.2 2014/05/11 16:55:17 rodent Exp $
+$NetBSD: patch-cxx_cursesm.h,v 1.3 2015/08/17 17:10:32 wiz Exp $
---- c++/cursesm.h.orig Sat Aug 13 18:10:36 2005
-+++ c++/cursesm.h
-@@ -635,7 +635,7 @@ template<class T> class NCURSES_IMPEXP NCursesUserMenu
- }
-
- public:
-- NCursesUserMenu (NCursesMenuItem Items[],
-+ NCursesUserMenu (NCursesMenuItem *Items[],
- const T* p_UserData = STATIC_CAST(T*)(0),
- bool with_frame=FALSE,
- bool autoDelete_Items=FALSE)
-@@ -644,7 +644,7 @@ template<class T> class NCURSES_IMPEXP NCursesUserMenu
- set_user (const_cast<void *>(p_UserData));
- };
-
-- NCursesUserMenu (NCursesMenuItem Items[],
-+ NCursesUserMenu (NCursesMenuItem *Items[],
- int nlines,
- int ncols,
- int begin_y = 0,
diff --git a/devel/ncurses/patches/patch-ncurses_tinfo_lib__baudrate.c b/devel/ncurses/patches/patch-ncurses_tinfo_lib__baudrate.c
index 706c83b5a1c..bc934366b6e 100644
--- a/devel/ncurses/patches/patch-ncurses_tinfo_lib__baudrate.c
+++ b/devel/ncurses/patches/patch-ncurses_tinfo_lib__baudrate.c
@@ -1,8 +1,8 @@
-$NetBSD: patch-ncurses_tinfo_lib__baudrate.c,v 1.1 2014/05/11 16:55:17 rodent Exp $
+$NetBSD: patch-ncurses_tinfo_lib__baudrate.c,v 1.2 2015/08/17 17:10:32 wiz Exp $
sys/ttydev.h doesn't exist in OpenBSD 5.5
---- ncurses/tinfo/lib_baudrate.c.orig Sun Dec 19 01:50:50 2010
+--- ncurses/tinfo/lib_baudrate.c.orig 2015-06-14 00:34:12.000000000 +0000
+++ ncurses/tinfo/lib_baudrate.c
@@ -39,7 +39,7 @@
@@ -17,8 +17,8 @@ sys/ttydev.h doesn't exist in OpenBSD 5.5
* of the indices up to B115200 fit nicely in a 'short', allowing us to retain
* ospeed's type for compatibility.
*/
--#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__)
-+#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || (defined(__OpenBSD__) && (OpenBSD < 201405))
+-#if NCURSES_OSPEED_COMPAT && ((defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__))
++#if NCURSES_OSPEED_COMPAT && ((defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || (defined(__OpenBSD__) && (OpenBSD < 201405)) || defined(__APPLE__))
#undef B0
#undef B50
#undef B75
diff --git a/devel/ncursesw/Makefile b/devel/ncursesw/Makefile
index 99a089947d1..ab67165131a 100644
--- a/devel/ncursesw/Makefile
+++ b/devel/ncursesw/Makefile
@@ -1,9 +1,8 @@
-# $NetBSD: Makefile,v 1.10 2014/09/16 09:48:41 wiz Exp $
+# $NetBSD: Makefile,v 1.11 2015/08/17 17:10:32 wiz Exp $
.include "../../devel/ncurses/Makefile.common"
PKGNAME= ${DISTNAME:S/ncurses/ncursesw/}
-PKGREVISION= 1
COMMENT= Wide character CRT screen handling and optimization package
PATCHDIR= ${.CURDIR}/../../devel/ncurses/patches
diff --git a/devel/ncursesw/PLIST b/devel/ncursesw/PLIST
index 55c57ff7117..cd91aa6b988 100644
--- a/devel/ncursesw/PLIST
+++ b/devel/ncursesw/PLIST
@@ -1,5 +1,5 @@
-@comment $NetBSD: PLIST,v 1.5 2014/09/16 09:48:41 wiz Exp $
-bin/ncursesw5-config
+@comment $NetBSD: PLIST,v 1.6 2015/08/17 17:10:32 wiz Exp $
+bin/ncursesw6-config
include/ncursesw/curses.h
include/ncursesw/nc_tparm.h
include/ncursesw/ncurses.h
diff --git a/devel/ncursesw/buildlink3.mk b/devel/ncursesw/buildlink3.mk
index 11f4d568e7f..0c4c4ed2955 100644
--- a/devel/ncursesw/buildlink3.mk
+++ b/devel/ncursesw/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.6 2012/02/18 10:19:04 obache Exp $
+# $NetBSD: buildlink3.mk,v 1.7 2015/08/17 17:10:32 wiz Exp $
BUILDLINK_TREE+= ncursesw
@@ -6,7 +6,7 @@ BUILDLINK_TREE+= ncursesw
NCURSESW_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.ncursesw+= ncursesw>=5.5
-BUILDLINK_ABI_DEPENDS.ncursesw+= ncursesw>=5.5
+BUILDLINK_ABI_DEPENDS.ncursesw+= ncursesw>=6.0
BUILDLINK_PKGSRCDIR.ncursesw?= ../../devel/ncursesw
BUILDLINK_LIBNAME.ncursesw= ncursesw