]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - INSTALL
ncurses 6.4 - patch 20230812
[ncurses.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 8ea212e6ebe5085570594007dafc41b5b309f535..fec266fec1bc15f0a1ad35d8b6f03336389a7b11 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
 -------------------------------------------------------------------------------
--- Copyright 2018-2020,2021 Thomas E. Dickey                                 --
+-- Copyright 2018-2022,2023 Thomas E. Dickey                                 --
 -- Copyright 1998-2017,2018 Free Software Foundation, Inc.                   --
 --                                                                           --
 -- Permission is hereby granted, free of charge, to any person obtaining a   --
 -- Copyright 1998-2017,2018 Free Software Foundation, Inc.                   --
 --                                                                           --
 -- Permission is hereby granted, free of charge, to any person obtaining a   --
@@ -26,7 +26,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.230 2021/06/17 21:11:08 tom Exp $
+-- $Id: INSTALL,v 1.247 2023/07/22 17:25:24 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -444,7 +444,7 @@ CONFIGURE OPTIONS:
                --with-menu-libname=XXX
                --with-panel-libname=XXX
 
                --with-menu-libname=XXX
                --with-panel-libname=XXX
 
-       Rather than renaming them abitrarily, a prefix or suffix is
+       Rather than renaming them arbitrarily, a prefix or suffix is
        recommended.  An "n" prefix provides consistency with ncurses versus
        curses, i.e.,
 
        recommended.  An "n" prefix provides consistency with ncurses versus
        curses, i.e.,
 
@@ -475,11 +475,19 @@ CONFIGURE OPTIONS:
        filesystems.  This option adds a 1-second sleep to help those tools
        avoid unnecessary relinking during the install process.
 
        filesystems.  This option adds a 1-second sleep to help those tools
        avoid unnecessary relinking during the install process.
 
+    --disable-root-access
+       Compile with environment restriction, so most file-access is limited
+       when running as root, or via a setuid/setgid application.
+
     --disable-root-environ
        Compile with environment restriction, so certain environment variables
     --disable-root-environ
        Compile with environment restriction, so certain environment variables
-       are not available when running as root, or via a setuid/setgid
-       application.  These are (for example $TERMINFO) those that allow the
-       search path for the terminfo or termcap entry to be customized.
+       are not available when running as root.  These are (for example
+       $TERMINFO) those that allow the search path for the terminfo or termcap
+       entry to be customized.
+
+       Disabling the root environment variables also disables the setuid
+       environment variables by default.  Use the --disable-setuid-environ
+       option to modify this behavior.
 
     --disable-rpath-hack
        Normally the configure script helps link libraries found in unusual
 
     --disable-rpath-hack
        Normally the configure script helps link libraries found in unusual
@@ -494,6 +502,16 @@ CONFIGURE OPTIONS:
     --disable-stripping
        Do not strip installed executables.
 
     --disable-stripping
        Do not strip installed executables.
 
+    --disable-setuid-environ
+       Compile with environment restriction, so certain environment variables
+       are not available when running via a setuid/setgid application.  These
+       are (for example $TERMINFO) those that allow the search path for the
+       terminfo or termcap entry to be customized.
+
+       A setuid/setgid application inherits its environment variables from
+       the current user, in contrast to sudo which may limit the environment
+       variables that ncurses uses.
+
     --disable-tic-depends
        When building shared libraries, normally the tic library is linked to
        depend upon the ncurses library (or equivalently, on the tinfo-library
     --disable-tic-depends
        When building shared libraries, normally the tic library is linked to
        depend upon the ncurses library (or equivalently, on the tinfo-library
@@ -512,26 +530,6 @@ CONFIGURE OPTIONS:
        list documented in X/Open.  ncurses provides varargs support for this
        function.  Use --disable-tparm-varargs to disable this support.
 
        list documented in X/Open.  ncurses provides varargs support for this
        function.  Use --disable-tparm-varargs to disable this support.
 
-    --disable-wattr-macros
-       The 6.0 ABI adds support for extended colors and for extended mouse.
-       The former is a noticeable problem when developers inadvertently
-       compile using the ncurses6 header files and link with an ncurses5
-       library, because the wattr* macros use a new field in the WINDOW
-       structure.  These macros are used in several applications.
-
-       Since ncurses provides an actual function for each of these macros,
-       suppressing them from the curses.h header allows the ncurses5 libraries
-       to be used in most applications.
-
-       NOTE: The extended colors also are used in the cchar_t structure, but
-       fewer applications use that.
-
-       NOTE: This workaround does not help with mismatches in the ncurses
-       mouse version.  The extended mouse feature uses one less fewer bit for
-       each button, so that only the first button will work as expected with
-       a mismatch between header and library.  Again, most applications will
-       work, since most use only the first button.
-
     --enable-assertions
        For testing, compile-in assertion code.  This is used only for a few
        places where ncurses cannot easily recover by returning an error code.
     --enable-assertions
        For testing, compile-in assertion code.  This is used only for a few
        places where ncurses cannot easily recover by returning an error code.
@@ -774,6 +772,26 @@ CONFIGURE OPTIONS:
     --enable-warnings
        Turn on GCC compiler warnings.  There should be only a few.
 
     --enable-warnings
        Turn on GCC compiler warnings.  There should be only a few.
 
+    --enable-wattr-macros
+       The 6.0 ABI adds support for extended colors and for extended mouse.
+       The former is a noticeable problem when developers inadvertently
+       compile using the ncurses6 header files and link with an ncurses5
+       library, because the wattr* macros use a new field in the WINDOW
+       structure.  These macros are used in several applications.
+
+       Since ncurses provides an actual function for each of these macros,
+       suppressing them from the curses.h header allows the ncurses5 libraries
+       to be used in most applications.
+
+       NOTE: The extended colors also are used in the cchar_t structure, but
+       fewer applications use that.
+
+       NOTE: This workaround does not help with mismatches in the ncurses
+       mouse version.  The extended mouse feature uses one less fewer bit for
+       each button, so that only the first button will work as expected with
+       a mismatch between header and library.  Again, most applications will
+       work, since most use only the first button.
+
     --enable-weak-symbols
        If the --with-pthread option is set, check if the compiler supports
        weak-symbols.  If it does, then name the thread-capable library without
     --enable-weak-symbols
        If the --with-pthread option is set, check if the compiler supports
        weak-symbols.  If it does, then name the thread-capable library without
@@ -802,6 +820,11 @@ CONFIGURE OPTIONS:
     --enable-xmc-glitch
        Compile-in support experimental xmc (magic cookie) code.
 
     --enable-xmc-glitch
        Compile-in support experimental xmc (magic cookie) code.
 
+    --with-abi-altered=NUM
+       Override the displayed (rather than compiled-in) ABI.  Only packagers
+       who have created configurations where the ABI differs from ncurses
+       should be interested in this option.
+
     --with-abi-version=NUM
        Override the ABI version, which is used in shared library filenames.
        Normally this is the same as the release version; some ports have
     --with-abi-version=NUM
        Override the ABI version, which is used in shared library filenames.
        Normally this is the same as the release version; some ports have
@@ -1005,7 +1028,7 @@ CONFIGURE OPTIONS:
        See also the --enable-getcap option.
 
     --with-infocmp-path[=XXX]
        See also the --enable-getcap option.
 
     --with-infocmp-path[=XXX]
-       Use this option to override the automatic detection of tic in your
+       Use this option to override the automatic detection of infocmp in your
        $PATH when building fallbacks (see "--with-fallbacks").
 
     --with-install-prefix=XXX
        $PATH when building fallbacks (see "--with-fallbacks").
 
     --with-install-prefix=XXX
@@ -1139,7 +1162,21 @@ CONFIGURE OPTIONS:
 
     --with-pkg-config-libdir=[DIR]
        If pkg-config was found, override the automatic check for its library
 
     --with-pkg-config-libdir=[DIR]
        If pkg-config was found, override the automatic check for its library
-       path.
+       path.  The configure script allows only a single directory, because
+       that is used as the directory in which to install ".pc" files.
+
+       The automatic check for the library path prefers the first directory
+       which currently exists.  If none of the directories listed by
+       pkg-config exist, the check prefers a pkgconfig directory under the
+       "libdir" set by the configure script (which may not be the system
+       default), or if pkg-config lists nothing suitable, the first one which
+       is listed by pkg-config is used.
+
+       Automatic selection is overridden by providing an option-value
+       beginning with "/".
+
+       If this option is omitted, the default directory for installing
+       ".pc" files is ${libdir}/pkgconfig
 
     --with-profile
        Generate profile-libraries These are named by adding "_p" to the root,
 
     --with-profile
        Generate profile-libraries These are named by adding "_p" to the root,
@@ -1199,6 +1236,10 @@ CONFIGURE OPTIONS:
        This is normally chosen automatically based on the type of system
        which you are building on.  We use it for testing the configure script.
 
        This is normally chosen automatically based on the type of system
        which you are building on.  We use it for testing the configure script.
 
+    --with-strip-program=XXX
+       When stripping executables during install, use the specified program
+       rather than "strip".
+
     --with-sysmouse
        use FreeBSD sysmouse interface provide mouse support on the console.
 
     --with-sysmouse
        use FreeBSD sysmouse interface provide mouse support on the console.
 
@@ -1319,7 +1360,8 @@ CONFIGURE OPTIONS:
     --with-xterm-kbs=XXX
        Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII
        backspace) or DEL (^?, or 127).  XXX can be BS (or bs, 8) or DEL
     --with-xterm-kbs=XXX
        Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII
        backspace) or DEL (^?, or 127).  XXX can be BS (or bs, 8) or DEL
-       (or del, 127).
+       (or del, 127).  If XXX is "auto", the configure script chooses BS or
+       DEL according to platform defaults.
 
        During installation, the makefile and scripts modifies the "xterm+kbs"
        terminfo entry to use this setting.
 
        During installation, the makefile and scripts modifies the "xterm+kbs"
        terminfo entry to use this setting.
@@ -1363,11 +1405,6 @@ CONFIGURE OPTIONS:
        programs (e.g., tic).  The test applications will still be built if you
        type "make", though not if you simply do "make install".
 
        programs (e.g., tic).  The test applications will still be built if you
        type "make", though not if you simply do "make install".
 
-    --without-tack
-       Suppress build/install with tack program, if it happens to be
-       in the same build-tree (tack was moved out of the ncurses source-tree
-       in 20070203).
-
     --without-tests
        Tell the configure script to suppress the build of ncurses' test
        programs.
     --without-tests
        Tell the configure script to suppress the build of ncurses' test
        programs.
@@ -1393,6 +1430,59 @@ COMPATIBILITY WITH OLDER RELEASES:
     you may encounter when building a system with different versions of
     ncurses:
 
     you may encounter when building a system with different versions of
     ncurses:
 
+    6.4 (Dec 31, 2022)
+       Interface changes:
+
+       + none
+
+       Added extensions:
+
+       + none
+
+       Added internal functions (other than "_sp" variants):
+
+       + add _nc_free_termtype1 and _nc_free_tparm, for memory-leaks
+
+       Removed internal functions:
+
+       + none
+
+       Modified internal functions:
+
+       + none
+
+    6.3 (Oct 21, 2021)
+       Interface changes:
+
+       + the definition of TERMTYPE2 is now internal, not visible in the ABI,
+         like the enclosing TERMINAL which was previously made opaque.  This
+         was done to provide SCREEN-specific "static" variables in terminfo.
+
+       Added extensions:
+
+       + add sp-funcs for erasewchar, killwchar.
+
+       Added internal functions (other than "_sp" variants):
+
+       + _nc_safe_fopen and _nc_safe_open3 limit privileges if possible when
+         opening a file; otherwise disallow access for updating files.
+
+       + _nc_tiparm is a variant of tiparm which is used when all of the
+         parameters are known to be numbers rather than possibly strings.
+
+       + _nc_reset_tparm improves tic's checks by resetting the terminfo
+         "static variables" before calling functions which may update them.
+
+       Removed internal functions:
+
+       + none
+
+       Modified internal functions:
+
+       + _nc_trace_ttymode passes pointer to const data
+
+       + _nc_tparm_analyze passes pointer to int*, not int[]
+
     6.2 (Feb 12, 2020)
        Interface changes:
 
     6.2 (Feb 12, 2020)
        Interface changes:
 
@@ -2163,7 +2253,7 @@ FOR SYSTEM INTEGRATORS:
        Please pick a name unique to your console driver and set that up
        in the /etc/inittab table or local equivalent.  Send the entry to the
        terminfo maintainer (listed in the misc/terminfo file) to be included
        Please pick a name unique to your console driver and set that up
        in the /etc/inittab table or local equivalent.  Send the entry to the
        terminfo maintainer (listed in the misc/terminfo file) to be included
-       in the terminfo file, if it's not already there.  See the
+       in the terminfo file, if it is not already there.  See the
        term(7) manual page included with this distribution for more on
        conventions for choosing type names.
 
        term(7) manual page included with this distribution for more on
        conventions for choosing type names.