Compare commits

...

No commits in common. 'i10c-beta' and 'c9' have entirely different histories.

2
.gitignore vendored

@ -1 +1 @@
SOURCES/ncurses-6.4-20240127.tgz
SOURCES/ncurses-6.2-20210508.tgz

@ -1 +1 @@
6b945292e3592fc11033437038bf9a72e702a4e5 SOURCES/ncurses-6.4-20240127.tgz
85c17000c002ace171fde9f0ee774d4f07819881 SOURCES/ncurses-6.2-20210508.tgz

@ -0,0 +1,32 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux)
mQGiBD/4r7IRBADFuacEqf9fye+NQSm7xjNP705aq75VrUd2hJyPmSiFUIyQEfc4
4GQXGdFg+/Apq4iq/50/8pR8YXOKwP5OE69emEp7IxjST41orGUk5ZwcnlSkaruN
WLTe/lN3e0oOIVbYig1lUbU5IxZu03KfNg2DZ9JiZdNBlzlqx1+oFlWFLwCg3awg
EfOUfbe4kVxNrsnxaCJYJ38EAMRVyUOfhkm9l0YuiC4ebOHrdmn9jFVW+XZPZDeb
8DcyTBNrgvVTnEmrNzVJgOyZIW+uraBVitak+No1kwXvC/i0kZEzYqfG87EdJSfe
OV7axIRisiTrcbZdRJ3CBDtGvLqJ9OuGFHPQmntnZfhiwJTR79hepndEQYyV5eQb
oQ+aA/0bI+/odyRDefc9HF1EhOcz8E76QP+VlvUfIDUJrmwv/3gLZ968HACOe0DE
+bcUockLJxoNwQFwCQPjm5S2+Ba2uY4hRhOA+MResZWlPouoosay2ADfiU7pdBCx
nbcLAuezgnZg4jcXvLl1QiAihxaEI2jqgZBnnierWzqRzRZM4LQrVGhvbWFzIERp
Y2tleSA8ZGlja2V5QGludmlzaWJsZS1pc2xhbmQubmV0PokBIgQQAQIADAUCTZ7Q
ZQUDABJ1AAAKCRCXELibyletfLKrB/sEVLsrCjFTwevbgKSzgCwLf6EhkifktlFB
w7/4n9Do1n7/LpgjdMH06YD9RjfSap4tdvEiHpzkpUtCGuzkGc/u4qTMdnWNgFhh
oHLhjVh4u72B/NtlgrpDEDrn1bnuZpzWxru4uDJGSgL00jV5b3kf1P07eQaguMC6
VeuzFmukv8LiDFhZcCl492nMZxz7vSRgSi8Ce+/Oc4Q+XTWmF5ZMKd5xNLjBdj2P
zOABHmDP1aA75grY30vVViPJve+W0h7A3PP9GuugNDkqmdCvTxYeMqiF6Vtv19/N
EW4jIvmN7GLOBo5F4RYcE9Fv4lV0xXlfpYwCqY7iAx9jyXgCbKXxiF4EExECAB4F
Aj/4r7ICGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQcCNT4Pfkjtt6MQCeKZHo
SgACIQk95rWefzSLULcpjxoAnjVet8e1/1indwT/wDDnObDDfM2UiEYEExECAAYF
AlZ3yw8ACgkQXd+Pt2iOMaZ0bACfVCFh+GzDCNXmZ3RcmDKjJxW7v4YAn0ApCgiS
8tZC2X2ZOs84WwJBIF7vuQENBD/4r7QQBACNOXUR5S3kRSry2IYGr4q0WjdPEh0k
oG1UVDhu0RN0Xbd2RnWjXrjYaYXskmCfo8pRwkNSUeFQ7ggRykcAECJTgfB6haHz
JP/JoD0BepEpwmkxDlsQaiigcEiDRSHxqEbpDVwfOCwY5o4r1jMVK9IhFevIyWuH
WghPO/ASRdF85wADBwP+JFo20ZhpLTkXBppW+bQR7GGHDYnNJpE/o9jev8EaaA9U
b1ST2G6T5iT+l1b09rcpGPfsA0ray9/AfH0DTvsxr0ai6ln+uM/TVY7S6vy3MLsq
yoJ6n2bfcr2R0B4lnRR34DCycATL9DVdmKf+NRTkvWXOSjTXQtdj0Kp2uYJeFqqI
SQQYEQIACQUCP/ivtAIbDAAKCRBwI1Pg9+SO266eAKDZ6zjUkRhpqsJxP6AWnIzR
YKoBTwCfcvSmQ7jC1nxJ6OkdrtZJH0znjF0=
=0vnF
-----END PGP PUBLIC KEY BLOCK-----

@ -1,42 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
P46cd3aSov0rfNS/zg==
=cr15
-----END PGP PUBLIC KEY BLOCK-----

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
Comment: See https://invisible-island.net/public/public.html for info
iF0EABECAB0WIQTFIEjAwHSP7iJ9R6JwI1Pg9+SO2wUCYJcuTAAKCRBwI1Pg9+SO
2wiuAKC5AxaU4uJgBWXGYB+wBhTPeqN90gCgjFGnRECOjhCx54KjVPkTJfuVqxg=
=zrbo
-----END PGP SIGNATURE-----

@ -1,15 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Comment: See https://invisible-island.net/public/public.html for info
iQGzBAABCgAdFiEEGYgtkt2kxADCLA1WzCr0RyFnvgMFAmW1oMYACgkQzCr0RyFn
vgNOyAwAqrbB41gHtg1iZSuyMeLBoIKMIy/rHgawo3Kt86/pl+3i/bpjGu7uXdpL
Z0U7uOk+kyf0QcLVnEYIhna5fJUktar2IaN/diF3S+nwNVv7GhppgTmolA/B69Ps
YYGyZuSF2Yofa6SL7M4nuo4qhqlaAGTapNhMQF9ra5HkwydItMwtfYwasQQJWRWs
CBk2x+sfLHeWtocA1lI7gAwzTjzY1QkS2d2oLUIZH6FjNwJgjo0CMW1jBCtJFrfP
/WhYRyz30fffqAtkzQadJQSl4LCU5a8v6D9ZUKPbb65NGoq9YTPwxQtJ0LO0gXS8
AjAtNIF6LefY3oCCfo5Iz4pTQeia66ZGzY7RiFl7xSxG4WrGWsZeO3Z+HHDePHTd
+lroU3dFZTL2cKa6kGPRQsSLDHKV0KtVbhPNSYO/JbECLc8TxUnKkHXDX981FQpC
IOaxO+oa03Ud6aMkldqWNUfQbVXWdKgbm7aUmw+endZ1v12yiFmEovUOKGtbwhmI
F6tMPHmY
=vP2x
-----END PGP SIGNATURE-----

@ -1,6 +1,6 @@
diff -up ncurses-6.3-20221126/misc/gen-pkgconfig.in.config ncurses-6.3-20221126/misc/gen-pkgconfig.in
--- ncurses-6.3-20221126/misc/gen-pkgconfig.in.config 2022-10-08 18:45:20.000000000 +0200
+++ ncurses-6.3-20221126/misc/gen-pkgconfig.in 2022-11-29 17:04:43.353766420 +0100
diff -up ncurses-6.2-20210501/misc/gen-pkgconfig.in.config ncurses-6.2-20210501/misc/gen-pkgconfig.in
--- ncurses-6.2-20210501/misc/gen-pkgconfig.in.config 2021-05-04 15:25:14.136139064 +0200
+++ ncurses-6.2-20210501/misc/gen-pkgconfig.in 2021-05-04 15:26:46.473363104 +0200
@@ -83,7 +83,7 @@ if [ "$includedir" != "/usr/include" ];
fi
@ -10,9 +10,9 @@ diff -up ncurses-6.3-20221126/misc/gen-pkgconfig.in.config ncurses-6.3-20221126/
do
case $opt in
-l*) # LIBS is handled specially below
diff -up ncurses-6.3-20221126/misc/ncurses-config.in.config ncurses-6.3-20221126/misc/ncurses-config.in
--- ncurses-6.3-20221126/misc/ncurses-config.in.config 2022-07-26 23:36:28.000000000 +0200
+++ ncurses-6.3-20221126/misc/ncurses-config.in 2022-11-29 17:06:04.381597412 +0100
diff -up ncurses-6.2-20210501/misc/ncurses-config.in.config ncurses-6.2-20210501/misc/ncurses-config.in
--- ncurses-6.2-20210501/misc/ncurses-config.in.config 2021-04-18 00:22:52.000000000 +0200
+++ ncurses-6.2-20210501/misc/ncurses-config.in 2021-05-04 15:28:41.567642360 +0200
@@ -41,7 +41,6 @@ exec_prefix="@exec_prefix@"
bindir="@bindir@"
@ -30,7 +30,7 @@ diff -up ncurses-6.3-20221126/misc/ncurses-config.in.config ncurses-6.3-20221126
do
case $opt in
-specs*) # ignore linker specs-files which were used to build library
@@ -120,13 +119,13 @@ do
@@ -114,13 +113,13 @@ do
lib_check=`echo "x$opt" | sed -e 's/^.-L//'`
[ -d "$lib_check" ] || continue
case "$lib_check" in
@ -46,8 +46,8 @@ diff -up ncurses-6.3-20221126/misc/ncurses-config.in.config ncurses-6.3-20221126
for lib_check in $LIBDIRS
do
if [ -d "$lib_check" ]
@@ -274,7 +273,6 @@ ENDECHO
echo "$INCS"
@@ -268,7 +267,6 @@ ENDECHO
echo $INCS
;;
--libdir)
- echo "${libdir}"

@ -0,0 +1,13 @@
diff -up ncurses-6.2-20210508/ncurses/tinfo/read_entry.c.cve-2023-29491 ncurses-6.2-20210508/ncurses/tinfo/read_entry.c
--- ncurses-6.2-20210508/ncurses/tinfo/read_entry.c.cve-2023-29491 2023-08-14 15:52:46.536461992 +0200
+++ ncurses-6.2-20210508/ncurses/tinfo/read_entry.c 2023-08-14 15:55:04.384426095 +0200
@@ -308,6 +308,9 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *
|| bool_count < 0
|| num_count < 0
|| str_count < 0
+ || bool_count > BOOLCOUNT
+ || num_count > NUMCOUNT
+ || str_count > STRCOUNT
|| str_size < 0) {
returnDB(TGETENT_NO);
}

@ -0,0 +1,46 @@
diff -up ncurses-6.2-20210306/misc/terminfo.src.kbs ncurses-6.2-20210306/misc/terminfo.src
--- ncurses-6.2-20210306/misc/terminfo.src.kbs 2021-03-11 12:05:15.951585254 +0100
+++ ncurses-6.2-20210306/misc/terminfo.src 2021-03-11 12:11:24.568964629 +0100
@@ -6276,7 +6276,7 @@ rxvt-basic|rxvt terminal base (X Window
enacs=\E(B\E)0, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
ind=\n, is1=\E[?47l\E=\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
+ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
rmul=\E[24m,
@@ -6288,7 +6288,7 @@ rxvt-basic|rxvt terminal base (X Window
%p9%t\016%e\017%;,
sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
- use=rxvt+pcfkeys, use=vt220+cvis, use=vt220+keypad,
+ use=rxvt+pcfkeys, use=vt220+cvis, use=vt220+keypad, use=xterm+kbs,
# Key Codes from rxvt reference:
#
# Note: Shift + F1-F10 generates F11-F20
@@ -7829,7 +7829,7 @@ screen|VT 100/ANSI X3.64 virtual termina
dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
enacs=\E(B\E)0, flash=\Eg, home=\E[H, hpa=\E[%i%p1%dG,
ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\n, indn=\E[%p1%dS, is2=\E)0, kbs=^H, kcbt=\E[Z,
+ ind=\n, indn=\E[%p1%dS, is2=\E)0, kcbt=\E[Z,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR,
kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
@@ -7842,6 +7842,7 @@ screen|VT 100/ANSI X3.64 virtual termina
smso=\E[3m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
E0=\E(B, S0=\E(%p1%c, use=vt220+pcedit,
use=xterm+alt1049, use=ecma+color, use=vt100+enq,
+ use=xterm+kbs,
# The bce and status-line entries are from screen 3.9.13 (and require some
# changes to .screenrc).
screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
@@ -7957,6 +7958,7 @@ screen.xterm-r6|screen customized for X1
# on Solaris because Sun's curses implementation gets confused.
screen.teraterm|disable ncv in teraterm,
ncv#127,
+ kbs=^H,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i
\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u
\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,

@ -0,0 +1,134 @@
diff -up ncurses-6.2-20210508/configure.setuid ncurses-6.2-20210508/configure
--- ncurses-6.2-20210508/configure.setuid 2021-05-02 02:35:51.000000000 +0200
+++ ncurses-6.2-20210508/configure 2023-08-21 14:22:48.925376959 +0200
@@ -784,6 +784,7 @@ Fine-Tuning Your Configuration:
--enable-getcap-cache cache translated termcaps in ~/.terminfo
--disable-home-terminfo drop ~/.terminfo from terminfo search-path
--disable-root-environ restrict environment when running as root
+ --disable-setuid-environ restrict setuid use of ncurses environment variables
--enable-symlinks make tic use symbolic links not hard links
--enable-broken_linker compile with broken-linker support code
--enable-bsdpad recognize BSD-style prefix padding
@@ -9224,6 +9225,20 @@ cat >>confdefs.h <<\EOF
#define USE_ROOT_ENVIRON 1
EOF
+# Check whether --enable-setuid-environ or --disable-setuid-environ was given.
+if test "${enable_setuid_environ+set}" = set; then
+ enableval="$enable_setuid_environ"
+ with_setuid_environ=$enableval
+else
+ with_setuid_environ=$with_root_environ
+fi;
+echo "$as_me:9942: result: $with_setuid_environ" >&5
+echo "${ECHO_T}$with_setuid_environ" >&6
+test "x$with_setuid_environ" = xyes &&
+cat >>confdefs.h <<\EOF
+#define USE_SETUID_ENVIRON 1
+EOF
+
### Use option --enable-symlinks to make tic use symlinks, not hard links
### to reduce storage requirements for the terminfo database.
diff -up ncurses-6.2-20210508/ncurses/curses.priv.h.setuid ncurses-6.2-20210508/ncurses/curses.priv.h
--- ncurses-6.2-20210508/ncurses/curses.priv.h.setuid 2021-04-04 00:12:56.000000000 +0200
+++ ncurses-6.2-20210508/ncurses/curses.priv.h 2023-08-21 14:22:48.925376959 +0200
@@ -210,7 +210,7 @@ extern int errno;
* If desired, one can configure this, disabling environment variables that
* point to custom terminfo/termcap locations.
*/
-#ifdef USE_ROOT_ENVIRON
+#if defined(USE_ROOT_ENVIRON) && defined(USE_SETUID_ENVIRON)
#define use_terminfo_vars() 1
#else
#define use_terminfo_vars() _nc_env_access()
diff -up ncurses-6.2-20210508/ncurses/tinfo/access.c.setuid ncurses-6.2-20210508/ncurses/tinfo/access.c
--- ncurses-6.2-20210508/ncurses/tinfo/access.c.setuid 2020-08-29 18:22:03.000000000 +0200
+++ ncurses-6.2-20210508/ncurses/tinfo/access.c 2023-08-21 14:22:48.925376959 +0200
@@ -37,6 +37,8 @@
#include <tic.h>
+#include <sys/auxv.h>
+
MODULE_ID("$Id: access.c,v 1.27 2020/08/29 16:22:03 juergen Exp $")
#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
@@ -169,7 +171,18 @@ _nc_is_file_path(const char *path)
return result;
}
-#ifndef USE_ROOT_ENVIRON
+#define is_posix_elevated() \
+ (getuid() != geteuid() \
+ || getgid() != getegid())
+
+#define is_elevated() \
+ (getauxval(AT_SECURE) \
+ ? TRUE \
+ : (errno != ENOENT \
+ ? FALSE \
+ : is_posix_elevated()))
+
+#if !defined(USE_ROOT_ENVIRON) || !defined(USE_SETUID_ENVIRON)
/*
* Returns true if we allow application to use environment variables that are
* used for searching lists of directories, etc.
@@ -177,15 +190,18 @@ _nc_is_file_path(const char *path)
NCURSES_EXPORT(int)
_nc_env_access(void)
{
-#if HAVE_ISSETUGID
- if (issetugid())
- return FALSE;
-#elif HAVE_GETEUID && HAVE_GETEGID
- if (getuid() != geteuid()
- || getgid() != getegid())
- return FALSE;
+ int result = TRUE;
+
+#if !defined(USE_SETUID_ENVIRON)
+ if (is_elevated()) {
+ result = FALSE;
+ }
#endif
- /* ...finally, disallow root */
- return (getuid() != ROOT_UID) && (geteuid() != ROOT_UID);
+#if !defined(USE_ROOT_ENVIRON)
+ if ((getuid() == ROOT_UID) || (geteuid() == ROOT_UID)) {
+ result = FALSE;
+ }
+#endif
+ return result;
}
#endif
diff -up ncurses-6.2-20210508/ncurses/tinfo/comp_error.c.setuid ncurses-6.2-20210508/ncurses/tinfo/comp_error.c
--- ncurses-6.2-20210508/ncurses/tinfo/comp_error.c.setuid 2023-08-21 14:27:08.268309417 +0200
+++ ncurses-6.2-20210508/ncurses/tinfo/comp_error.c 2023-08-21 14:33:13.716214256 +0200
@@ -148,8 +148,8 @@ _nc_syserr_abort(const char *const fmt,
/* If we're debugging, try to show where the problem occurred - this
* will dump core.
*/
-#ifndef USE_ROOT_ENVIRON
- if (getuid() != ROOT_UID)
+#if !defined(USE_ROOT_ENVIRON) || !defined(USE_SETUID_ENVIRON)
+ if (_nc_env_access())
#endif
abort();
#endif
diff -up ncurses-6.2-20210508/ncurses/tinfo/write_entry.c.setuid ncurses-6.2-20210508/ncurses/tinfo/write_entry.c
--- ncurses-6.2-20210508/ncurses/tinfo/write_entry.c.setuid 2020-08-29 18:22:03.000000000 +0200
+++ ncurses-6.2-20210508/ncurses/tinfo/write_entry.c 2023-08-21 14:32:22.738227530 +0200
@@ -215,11 +215,7 @@ _nc_set_writedir(const char *dir)
const char *destination;
char actual[PATH_MAX];
- if (dir == 0
-#ifndef USE_ROOT_ENVIRON
- && use_terminfo_vars()
-#endif
- )
+ if (dir == 0 && use_terminfo_vars())
dir = getenv("TERMINFO");
if (dir != 0)

@ -1,26 +1,21 @@
%if 0%{?rhel} >= 10
%bcond_with compat_libs
%bcond_with gpm
%else
%bcond_without compat_libs
%bcond_without gpm
%endif
%global revision 20240127
%global revision 20210508
Summary: Ncurses support utilities
Name: ncurses
Version: 6.4
Release: 13.%{revision}%{?dist}
License: MIT-open-group
Version: 6.2
Release: 10.%{revision}%{?dist}
License: MIT
URL: https://invisible-island.net/ncurses/ncurses.html
Source0: https://invisible-mirror.net/archives/ncurses/current/ncurses-%{version}-%{revision}.tgz
Source1: https://invisible-mirror.net/archives/ncurses/current/ncurses-%{version}-%{revision}.tgz.asc
Source2: https://invisible-island.net/public/dickey@invisible-island.net-rsa3072.asc
Source2: https://invisible-island.net/public/dickey-invisible-island.txt
Patch8: ncurses-config.patch
Patch9: ncurses-libs.patch
Patch11: ncurses-urxvt.patch
BuildRequires: gcc gcc-c++ gnupg2 make pkgconfig
%{?with_gpm:BuildRequires: gpm-devel}
Patch12: ncurses-kbs.patch
Patch13: ncurses-cve-2023-29491.patch
Patch14: ncurses-setuid.patch
BuildRequires: gcc gcc-c++ gpm-devel gnupg2 make pkgconfig
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
@ -46,7 +41,6 @@ discontinued 4.4 BSD classic curses library.
This package contains the ncurses libraries.
%if %{with compat_libs}
%package compat-libs
Summary: Ncurses compatibility libraries
Requires: %{name}-base = %{version}-%{release}
@ -59,7 +53,6 @@ discontinued 4.4 BSD classic curses library.
This package contains the ABI version 5 of the ncurses libraries for
compatibility.
%endif
%package c++-libs
Summary: Ncurses C++ bindings
@ -119,9 +112,12 @@ The ncurses-static package includes static libraries of the ncurses library.
%setup -q -n %{name}-%{version}-%{revision}
%patch -P8 -p1 -b .config
%patch -P9 -p1 -b .libs
%patch -P11 -p1 -b .urxvt
%patch8 -p1 -b .config
%patch9 -p1 -b .libs
%patch11 -p1 -b .urxvt
%patch12 -p1 -b .kbs
%patch13 -p1 -b .cve-2023-29491
%patch14 -p1 -b .setuid
for f in ANNOUNCE; do
iconv -f iso8859-1 -t utf8 -o ${f}{_,} &&
@ -135,7 +131,6 @@ common_options="\
--enable-overwrite \
--enable-pc-files \
--enable-xmc-glitch \
--disable-root-access \
--disable-setuid-environ \
--disable-stripping \
--disable-wattr-macros \
@ -147,11 +142,10 @@ common_options="\
--with-termlib=tinfo \
--with-ticlib=tic \
--with-xterm-kbs=DEL \
%{!?with_gpm:--without-gpm} \
--without-ada"
abi5_options="--with-chtype=long"
for abi in %{?with_compat_libs:5} 6; do
for abi in 5 6; do
for char in narrowc widec; do
mkdir $char$abi
pushd $char$abi
@ -162,7 +156,7 @@ for abi in %{?with_compat_libs:5} 6; do
%configure $(
echo $common_options --with-abi-version=$abi
[ $abi = 5 ] && echo $abi5_options
[ $char = widec ] && echo --enable-widec || echo --disable-widec
[ $char = widec ] && echo --enable-widec
[ $progs = yes ] || echo --without-progs
)
@ -174,11 +168,9 @@ for abi in %{?with_compat_libs:5} 6; do
done
%install
%if %{with compat_libs}
make -C narrowc5 DESTDIR=$RPM_BUILD_ROOT install.libs
rm ${RPM_BUILD_ROOT}%{_libdir}/lib{tic,tinfo}.so.5*
make -C widec5 DESTDIR=$RPM_BUILD_ROOT install.libs
%endif
make -C narrowc6 DESTDIR=$RPM_BUILD_ROOT install.libs
rm ${RPM_BUILD_ROOT}%{_libdir}/lib{tic,tinfo}.so.6*
make -C widec6 DESTDIR=$RPM_BUILD_ROOT install.{libs,progs,data,includes,man}
@ -192,7 +184,7 @@ baseterms=
# prepare -base and -term file lists
for termname in \
alacritty ansi dumb foot\* linux vt100 vt100-nav vt102 vt220 vt52 \
alacritty ansi dumb linux vt100 vt100-nav vt102 vt220 vt52 \
Eterm\* aterm bterm cons25 cygwin eterm\* gnome gnome-256color hurd jfbterm \
kitty konsole konsole-256color mach\* mlterm mrxvt nsterm putty{,-256color} pcansi \
rxvt{,-\*} screen{,-\*color,.[^mlp]\*,.linux,.mlterm\*,.putty{,-256color},.mrxvt} \
@ -246,9 +238,7 @@ xz NEWS
%ldconfig_scriptlets c++-libs
%if %{with compat_libs}
%ldconfig_scriptlets compat-libs
%endif
%files
%doc ANNOUNCE AUTHORS NEWS.xz README TO-DO
@ -261,10 +251,8 @@ xz NEWS
%exclude %{_libdir}/libncurses++*.so.6*
%{_libdir}/lib*.so.6*
%if %{with compat_libs}
%files compat-libs
%{_libdir}/lib*.so.5*
%endif
%files c++-libs
%{_libdir}/libncurses++*.so.6*
@ -298,77 +286,16 @@ xz NEWS
%{_libdir}/lib*.a
%changelog
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 6.4-13.20240127
- Rebuilt for MSVSphere 10
* Mon Aug 21 2023 Miroslav Lichvar <mlichvar@redhat.com> 6.2-10.20210508
- ignore TERMINFO and HOME only if setuid/setgid/capability (#2211666)
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 6.4-13.20240127
- Bump release for June 2024 mass rebuild
* Mon Aug 14 2023 Miroslav Lichvar <mlichvar@redhat.com> 6.2-9.20210508
- fix buffer overflow on terminfo with too many capabilities (CVE-2023-29491)
- ignore TERMINFO and HOME environment variables if running as root (#2211666)
* Thu Feb 01 2024 Miroslav Lichvar <mlichvar@redhat.com> 6.4-12.20240127
- update to 6.4-20240127
- disable gpm on RHEL >= 10 (RHEL-23679)
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.4-11.20240113
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.4-10.20240113
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 17 2024 Miroslav Lichvar <mlichvar@redhat.com> 6.4-9.20240113
- update to 6.4-20240113
- disable compat libs on RHEL >= 10
- drop kbs patch
* Wed Oct 04 2023 Miroslav Lichvar <mlichvar@redhat.com> 6.4-8.20231001
- update to 6.4-20231001
- convert license tag to SPDX
- switch from patchX to patch -PX
* Tue Aug 22 2023 Miroslav Lichvar <mlichvar@redhat.com> 6.4-7.20230520
- ignore TERMINFO and HOME only if setuid/setgid/capability
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.4-6.20230520
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 27 2023 Debarshi Ray <rishi@fedoraproject.org> 6.4-5.20230520
- move foot entries to -base (#2217982)
* Mon May 22 2023 Miroslav Lichvar <mlichvar@redhat.com> 6.4-4.20230520
- update to 6.4-20230520
- build with options disabling root file access and environment
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.4-3.20230114
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Jan 17 2023 Miroslav Lichvar <mlichvar@redhat.com> 6.4-2.20230114
- update to 6.4-20230114 (#2160276)
* Mon Jan 09 2023 Miroslav Lichvar <mlichvar@redhat.com> 6.4-1.20230107
- update to 6.4-20230107
- restore compat-libs (ABI 5) subpackage (#2129865)
* Fri Dec 16 2022 Miroslav Lichvar <mlichvar@redhat.com> 6.3-5.20221126
- revert "enable symbol versioning for dynamic linker (#1875587)"
* Thu Dec 01 2022 Miroslav Lichvar <mlichvar@redhat.com> 6.3-4.20221126
- update to 6.3-20221126
- enable symbol versioning for dynamic linker (#1875587)
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.3-3.20220501
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed May 04 2022 Miroslav Lichvar <mlichvar@redhat.com> 6.3-2.20220501
- update to 6.3-20220501
* Tue Apr 19 2022 Miroslav Lichvar <mlichvar@redhat.com> 6.3-1.20220416
- update to 6.3-20220416 (CVE-2022-29458)
- drop compat-libs (ABI 5) subpackage
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.2-9.20210508
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.2-8.20210508
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 6.2-8.20210508
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon May 10 2021 Miroslav Lichvar <mlichvar@redhat.com> 6.2-7.20210508
- update to 6.2-20210508
@ -376,8 +303,8 @@ xz NEWS
* Tue May 04 2021 Miroslav Lichvar <mlichvar@redhat.com> 6.2-6.20210501
- update to 6.2-20210501
* Thu Mar 11 2021 Miroslav Lichvar <mlichvar@redhat.com> 6.2-5.20210306
- update to 6.2-20210306
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 6.2-5.20200222
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.2-4.20200222
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

Loading…
Cancel
Save