]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - INSTALL
ncurses 6.3
[ncurses.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 95f5a39316838b502ee6d3d90f32630b3a00c4ae..aacfd9ad96a4d47e00b5703eb05ed33c3c5d8ef9 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
 -------------------------------------------------------------------------------
--- Copyright 2018-2019,2020 Thomas E. Dickey                                 --
+-- Copyright 2018-2020,2021 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.226 2020/09/06 23:41:16 tom Exp $
+-- $Id: INSTALL,v 1.235 2021/10/19 23:34:17 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -453,8 +453,8 @@ CONFIGURE OPTIONS:
                --with-panel-libname=npanel
 
     --disable-pkg-ldflags
                --with-panel-libname=npanel
 
     --disable-pkg-ldflags
-       Omit options in $EXTRA_LDFLAGS from the pkg-config ".pc" and
-       corresponding ncurses*-config script which normally are listed via
+       Omit options in $LDFLAGS and $EXTRA_LDFLAGS from the pkg-config ".pc"
+       and corresponding ncurses*-config script which normally are listed via
        the "--libs" option.  These options are normally used to facilitate
        linking to ncurses when it was configured to use the rpath feature.
 
        the "--libs" option.  These options are normally used to facilitate
        linking to ncurses when it was configured to use the rpath feature.
 
@@ -475,6 +475,10 @@ 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 via a setuid/setgid application.
+
     --disable-root-environ
        Compile with environment restriction, so certain environment variables
        are not available when running as root, or via a setuid/setgid
     --disable-root-environ
        Compile with environment restriction, so certain environment variables
        are not available when running as root, or via a setuid/setgid
@@ -512,26 +516,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.
@@ -728,6 +712,14 @@ CONFIGURE OPTIONS:
        reducing the need for juggling the global SP value with set_term() and
        delscreen().
 
        reducing the need for juggling the global SP value with set_term() and
        delscreen().
 
+    --enable-stdnoreturn
+       When enabled, check if the <stdnoreturn.h> header exists, and if found
+       define GCC_NORETURN to _Noreturn rather than either the gcc-specific
+       __attribute__((noreturn)) or an empty token.  Doing this may require
+       calling programs which use GCC_NORETURN in their own function
+       definitions to be modified, because _Noreturn is only accepted as
+       the first token in a declaration.
+
     --enable-string-hacks
        Controls whether strlcat and strlcpy may be used.  The same issue
        applies to OpenBSD's warnings about snprintf, noting that this function
     --enable-string-hacks
        Controls whether strlcat and strlcpy may be used.  The same issue
        applies to OpenBSD's warnings about snprintf, noting that this function
@@ -766,6 +758,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
@@ -1131,7 +1143,11 @@ 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 selects the first directory
+       which currently exists.
 
     --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,
@@ -1385,6 +1401,38 @@ 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.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:
 
@@ -2155,7 +2203,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.
 
@@ -2189,7 +2237,7 @@ CONFIGURING FALLBACK ENTRIES:
        tree is accessible (that is, in single-user mode or at OS installation
        time) the ncurses library can be compiled to include an array of
        pre-fetched fallback entries.
        tree is accessible (that is, in single-user mode or at OS installation
        time) the ncurses library can be compiled to include an array of
        pre-fetched fallback entries.
-       
+
        NOTE: This must be done on a machine which has ncurses' infocmp and
        terminfo database installed (as well as ncurses' tic and infocmp
        programs).  That is because the fallback sources are generated and
        NOTE: This must be done on a machine which has ncurses' infocmp and
        terminfo database installed (as well as ncurses' tic and infocmp
        programs).  That is because the fallback sources are generated and