From 9359f8bf564ddd9f67cda10319e012fcbf896723 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 15:14:59 +0000 Subject: [PATCH] import UBI ncurses-6.4-14.20240127.el10 --- .gitignore | 2 +- STAGE2-ncurses | 20 -- dickey@invisible-island.net-rsa3072.asc | 42 +++++ gating.yaml | 6 - ncurses-6.4-20240127.tgz.asc | 15 ++ ncurses-config.patch | 62 +++++-- ncurses-cve-2019-17594.patch | 28 --- ncurses-cve-2019-17595.patch | 16 -- ncurses-cve-2023-29491.patch | 13 -- ncurses-kbs.patch | 46 ----- ncurses-libs.patch | 44 ++--- ncurses-tputx.patch | 15 -- ncurses-urxvt.patch | 8 +- ncurses-usecap.patch | 22 --- ncurses.spec | 236 ++++++++++++++++++------ sources | 2 +- 16 files changed, 306 insertions(+), 271 deletions(-) delete mode 100644 STAGE2-ncurses create mode 100644 dickey@invisible-island.net-rsa3072.asc delete mode 100644 gating.yaml create mode 100644 ncurses-6.4-20240127.tgz.asc delete mode 100644 ncurses-cve-2019-17594.patch delete mode 100644 ncurses-cve-2019-17595.patch delete mode 100644 ncurses-cve-2023-29491.patch delete mode 100644 ncurses-kbs.patch delete mode 100644 ncurses-tputx.patch delete mode 100644 ncurses-usecap.patch diff --git a/.gitignore b/.gitignore index 0d04370..1fba985 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/ncurses-6.1-20180224.tgz +ncurses-6.4-20240127.tgz diff --git a/STAGE2-ncurses b/STAGE2-ncurses deleted file mode 100644 index 17e8dd6..0000000 --- a/STAGE2-ncurses +++ /dev/null @@ -1,20 +0,0 @@ -mcd $BUILDDIR/ncurses - -$SRC/ncurses-*/configure $TCONFIGARGS \ - --with-shared --without-ada --with-ospeed=unsigned \ - --with-terminfo-dirs=/etc/terminfo:/usr/share/terminfo \ - --enable-hard-tabs --enable-xmc-glitch --enable-colorfgbg \ - --enable-overwrite \ - --enable-pc-files \ - --disable-wattr-macros \ - --with-termlib=tinfo \ - --with-chtype=long \ - --with-ticlib - -notparallel -make $J -make $J install - -echo "INPUT(-lncurses)" > /usr/lib$SUFFIX/libcurses.so -echo "INPUT(-lncursesw)" > /usr/lib$SUFFIX/libcursesw.so -echo "INPUT(-ltinfo)" > /usr/lib$SUFFIX/libtermcap.so diff --git a/dickey@invisible-island.net-rsa3072.asc b/dickey@invisible-island.net-rsa3072.asc new file mode 100644 index 0000000..33a8ce3 --- /dev/null +++ b/dickey@invisible-island.net-rsa3072.asc @@ -0,0 +1,42 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +P46cd3aSov0rfNS/zg== +=cr15 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/gating.yaml b/gating.yaml deleted file mode 100644 index eb7c84f..0000000 --- a/gating.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- !Policy -product_versions: - - rhel-8 -decision_context: osci_compose_gate -rules: - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/ncurses-6.4-20240127.tgz.asc b/ncurses-6.4-20240127.tgz.asc new file mode 100644 index 0000000..da9afb6 --- /dev/null +++ b/ncurses-6.4-20240127.tgz.asc @@ -0,0 +1,15 @@ +-----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----- diff --git a/ncurses-config.patch b/ncurses-config.patch index b494768..fc326fc 100644 --- a/ncurses-config.patch +++ b/ncurses-config.patch @@ -1,7 +1,19 @@ -diff -up ncurses-6.1-20180127/misc/ncurses-config.in.config ncurses-6.1-20180127/misc/ncurses-config.in ---- ncurses-6.1-20180127/misc/ncurses-config.in.config 2017-12-09 23:45:44.000000000 +0100 -+++ ncurses-6.1-20180127/misc/ncurses-config.in 2018-01-29 10:57:48.596590822 +0100 -@@ -40,7 +40,6 @@ exec_prefix="@exec_prefix@" +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 +@@ -83,7 +83,7 @@ if [ "$includedir" != "/usr/include" ]; + fi + + lib_flags= +-for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@ ++for opt in -L$libdir @LIBS@ + 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 +@@ -41,7 +41,6 @@ exec_prefix="@exec_prefix@" bindir="@bindir@" includedir="@includedir@" @@ -9,21 +21,33 @@ diff -up ncurses-6.1-20180127/misc/ncurses-config.in.config ncurses-6.1-20180127 datarootdir="@datarootdir@" datadir="@datadir@" mandir="@mandir@" -@@ -111,12 +110,7 @@ while test $# -gt 0; do - ENDECHO - ;; - --libs) -- if test "$libdir" = /usr/lib -- then - LIBDIR= -- else -- LIBDIR=-L$libdir -- fi - if test @TINFO_NAME@ = @LIB_NAME@ ; then - sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO - $LIBDIR @EXTRA_LDFLAGS@ -l${THIS} @LIBS@ -@@ -154,7 +148,6 @@ ENDECHO - echo $INCS +@@ -101,7 +100,7 @@ fi + # There is no portable way to find the list of standard library directories. + # Require a POSIX shell anyway, to keep this simple. + lib_flags= +-for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ $LIBS ++for opt in $LIBS + do + case $opt in + -specs*) # ignore linker specs-files which were used to build library +@@ -120,13 +119,13 @@ do + lib_check=`echo "x$opt" | sed -e 's/^.-L//'` + [ -d "$lib_check" ] || continue + case "$lib_check" in +- @LD_SEARCHPATH@) # skip standard libdir ++ ////) # skip standard libdir (disabled for multilib) + if [ "$lib_check" = "$libdir" ] + then + lib_first=yes + IFS_save="$IFS" + IFS='|' +- LIBDIRS="@LD_SEARCHPATH@" ++ LIBDIRS="" + for lib_check in $LIBDIRS + do + if [ -d "$lib_check" ] +@@ -274,7 +273,6 @@ ENDECHO + echo "$INCS" ;; --libdir) - echo "${libdir}" diff --git a/ncurses-cve-2019-17594.patch b/ncurses-cve-2019-17594.patch deleted file mode 100644 index ea9f208..0000000 --- a/ncurses-cve-2019-17594.patch +++ /dev/null @@ -1,28 +0,0 @@ -From snapshot 6.1-20191012 - -diff --git a/ncurses/tinfo/comp_hash.c b/ncurses/tinfo/comp_hash.c -index 21f165ca..a62d38f9 100644 ---- a/ncurses/tinfo/comp_hash.c -+++ b/ncurses/tinfo/comp_hash.c -@@ -63,7 +63,9 @@ _nc_find_entry(const char *string, - - hashvalue = data->hash_of(string); - -- if (data->table_data[hashvalue] >= 0) { -+ if (hashvalue >= 0 -+ && (unsigned) hashvalue < data->table_size -+ && data->table_data[hashvalue] >= 0) { - - real_table = _nc_get_table(termcap); - ptr = real_table + data->table_data[hashvalue]; -@@ -96,7 +98,9 @@ _nc_find_type_entry(const char *string, - const HashData *data = _nc_get_hash_info(termcap); - int hashvalue = data->hash_of(string); - -- if (data->table_data[hashvalue] >= 0) { -+ if (hashvalue >= 0 -+ && (unsigned) hashvalue < data->table_size -+ && data->table_data[hashvalue] >= 0) { - const struct name_table_entry *const table = _nc_get_table(termcap); - - ptr = table + data->table_data[hashvalue]; diff --git a/ncurses-cve-2019-17595.patch b/ncurses-cve-2019-17595.patch deleted file mode 100644 index eacf479..0000000 --- a/ncurses-cve-2019-17595.patch +++ /dev/null @@ -1,16 +0,0 @@ -From snapshot 6.1-20191012 - -diff --git a/progs/dump_entry.c b/progs/dump_entry.c -index d0e420ec..8a47084a 100644 ---- a/progs/dump_entry.c -+++ b/progs/dump_entry.c -@@ -1136,7 +1136,8 @@ fmt_entry(TERMTYPE2 *tterm, - *d++ = '\\'; - *d = ':'; - } else if (*d == '\\') { -- *++d = *s++; -+ if ((*++d = *s++) == '\0') -+ break; - } - d++; - *d = '\0'; diff --git a/ncurses-cve-2023-29491.patch b/ncurses-cve-2023-29491.patch deleted file mode 100644 index a859f0e..0000000 --- a/ncurses-cve-2023-29491.patch +++ /dev/null @@ -1,13 +0,0 @@ -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); - } diff --git a/ncurses-kbs.patch b/ncurses-kbs.patch deleted file mode 100644 index 0ff3f10..0000000 --- a/ncurses-kbs.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff -up ncurses-6.1-20180127/misc/terminfo.src.kbs ncurses-6.1-20180127/misc/terminfo.src ---- ncurses-6.1-20180127/misc/terminfo.src.kbs 2018-01-29 10:59:01.644758573 +0100 -+++ ncurses-6.1-20180127/misc/terminfo.src 2018-01-29 11:02:34.018246276 +0100 -@@ -5713,7 +5713,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@, ich1=\E[@, 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, -@@ -5725,7 +5725,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+keypad, -+ use=rxvt+pcfkeys, use=vt220+keypad, use=xterm+kbs, - # Key Codes from rxvt reference: - # - # Note: Shift + F1-F10 generates F11-F20 -@@ -6897,7 +6897,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, - kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~, - kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, -@@ -6911,6 +6911,7 @@ screen|VT 100/ANSI X3.64 virtual termina - sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h, - smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, - vpa=\E[%i%p1%dd, E0=\E(B, S0=\E(%p1%c, use=ecma+color, -+ 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, -@@ -7026,6 +7027,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, diff --git a/ncurses-libs.patch b/ncurses-libs.patch index bce0f4b..401da11 100644 --- a/ncurses-libs.patch +++ b/ncurses-libs.patch @@ -1,16 +1,16 @@ -diff -up ncurses-6.0-20150810/c++/Makefile.in.libs ncurses-6.0-20150810/c++/Makefile.in ---- ncurses-6.0-20150810/c++/Makefile.in.libs 2015-08-06 01:15:41.000000000 +0200 -+++ ncurses-6.0-20150810/c++/Makefile.in 2015-08-12 17:07:35.573822650 +0200 -@@ -112,7 +112,7 @@ LOCAL_LIBDIR = @top_builddir@/lib - - LINK = @LINK_PROGS@ $(LIBTOOL_LINK) @CXXLDFLAGS@ - SHLIB_DIRS = -L../lib --SHLIB_LIST = $(SHLIB_DIRS) -lform@USE_LIB_SUFFIX@ -lmenu@USE_LIB_SUFFIX@ -lpanel@USE_LIB_SUFFIX@ -lncurses@USE_LIB_SUFFIX@ @SHLIB_LIST@ -+SHLIB_LIST = $(SHLIB_DIRS) -lform@USE_LIB_SUFFIX@ -lmenu@USE_LIB_SUFFIX@ -lpanel@USE_LIB_SUFFIX@ -lncurses@USE_LIB_SUFFIX@ #@SHLIB_LIST@ +diff -up ncurses-6.2-20210306/c++/Makefile.in.libs ncurses-6.2-20210306/c++/Makefile.in +--- ncurses-6.2-20210306/c++/Makefile.in.libs 2021-01-23 21:42:08.000000000 +0100 ++++ ncurses-6.2-20210306/c++/Makefile.in 2021-03-11 12:02:29.576741101 +0100 +@@ -118,7 +118,7 @@ SHLIB_LIST = $(SHLIB_DIRS) \ + -l@FORM_NAME@@USE_LIB_SUFFIX@ \ + -l@MENU_NAME@@USE_LIB_SUFFIX@ \ + -l@PANEL_NAME@@USE_LIB_SUFFIX@ \ +- -lncurses@USE_LIB_SUFFIX@ @SHLIB_LIST@ ++ -lncurses@USE_LIB_SUFFIX@ #@SHLIB_LIST@ LIBROOT = ncurses++ -@@ -147,8 +147,7 @@ LDFLAGS_SHARED = $(TEST_LDFLAGS) $(CFLAG +@@ -153,8 +153,7 @@ LDFLAGS_SHARED = $(TEST_LDFLAGS) $(CFLAG LDFLAGS_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@) # flags for library built by this makefile @@ -20,10 +20,10 @@ diff -up ncurses-6.0-20150810/c++/Makefile.in.libs ncurses-6.0-20150810/c++/Make AUTO_SRC = \ etip.h -diff -up ncurses-6.0-20150810/form/Makefile.in.libs ncurses-6.0-20150810/form/Makefile.in ---- ncurses-6.0-20150810/form/Makefile.in.libs 2015-08-12 17:06:49.072684924 +0200 -+++ ncurses-6.0-20150810/form/Makefile.in 2015-08-12 17:08:14.945939259 +0200 -@@ -107,7 +107,7 @@ LINK = $(LIBTOOL_LINK) +diff -up ncurses-6.2-20210306/form/Makefile.in.libs ncurses-6.2-20210306/form/Makefile.in +--- ncurses-6.2-20210306/form/Makefile.in.libs 2021-01-23 21:42:08.000000000 +0100 ++++ ncurses-6.2-20210306/form/Makefile.in 2021-03-11 12:00:59.001470707 +0100 +@@ -110,7 +110,7 @@ LINK = $(LIBTOOL_LINK) LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@ SHLIB_DIRS = -L../lib @@ -32,10 +32,10 @@ diff -up ncurses-6.0-20150810/form/Makefile.in.libs ncurses-6.0-20150810/form/Ma RPATH_LIST = @RPATH_LIST@ RESULTING_SYMS = @RESULTING_SYMS@ -diff -up ncurses-6.0-20150810/menu/Makefile.in.libs ncurses-6.0-20150810/menu/Makefile.in ---- ncurses-6.0-20150810/menu/Makefile.in.libs 2015-08-12 17:06:49.072684924 +0200 -+++ ncurses-6.0-20150810/menu/Makefile.in 2015-08-12 17:09:10.135102716 +0200 -@@ -107,7 +107,7 @@ LINK = $(LIBTOOL_LINK) +diff -up ncurses-6.2-20210306/menu/Makefile.in.libs ncurses-6.2-20210306/menu/Makefile.in +--- ncurses-6.2-20210306/menu/Makefile.in.libs 2020-08-29 16:50:45.000000000 +0200 ++++ ncurses-6.2-20210306/menu/Makefile.in 2021-03-11 12:00:59.002470754 +0100 +@@ -110,7 +110,7 @@ LINK = $(LIBTOOL_LINK) LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@ SHLIB_DIRS = -L../lib @@ -44,10 +44,10 @@ diff -up ncurses-6.0-20150810/menu/Makefile.in.libs ncurses-6.0-20150810/menu/Ma RPATH_LIST = @RPATH_LIST@ RESULTING_SYMS = @RESULTING_SYMS@ -diff -up ncurses-6.0-20150810/panel/Makefile.in.libs ncurses-6.0-20150810/panel/Makefile.in ---- ncurses-6.0-20150810/panel/Makefile.in.libs 2015-08-12 17:06:49.072684924 +0200 -+++ ncurses-6.0-20150810/panel/Makefile.in 2015-08-12 17:09:33.324171396 +0200 -@@ -109,7 +109,7 @@ LINK = $(LIBTOOL_LINK) +diff -up ncurses-6.2-20210306/panel/Makefile.in.libs ncurses-6.2-20210306/panel/Makefile.in +--- ncurses-6.2-20210306/panel/Makefile.in.libs 2020-08-29 16:50:45.000000000 +0200 ++++ ncurses-6.2-20210306/panel/Makefile.in 2021-03-11 12:00:59.002470754 +0100 +@@ -112,7 +112,7 @@ LINK = $(LIBTOOL_LINK) LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@ SHLIB_DIRS = -L../lib diff --git a/ncurses-tputx.patch b/ncurses-tputx.patch deleted file mode 100644 index 1f61580..0000000 --- a/ncurses-tputx.patch +++ /dev/null @@ -1,15 +0,0 @@ -From snapshot 6.1-20180630 - -diff --git a/progs/tput.c b/progs/tput.c -index fd051eb4..88e75799 100644 ---- a/progs/tput.c -+++ b/progs/tput.c -@@ -293,7 +293,7 @@ main(int argc, char **argv) - - term = getenv("TERM"); - -- while ((c = getopt(argc, argv, "ST:V")) != -1) { -+ while ((c = getopt(argc, argv, "ST:Vx")) != -1) { - switch (c) { - case 'S': - cmdline = FALSE; diff --git a/ncurses-urxvt.patch b/ncurses-urxvt.patch index 6724b51..92f2169 100644 --- a/ncurses-urxvt.patch +++ b/ncurses-urxvt.patch @@ -1,7 +1,7 @@ diff -up ncurses-6.0-20150810/misc/terminfo.src.urxvt ncurses-6.0-20150810/misc/terminfo.src --- ncurses-6.0-20150810/misc/terminfo.src.urxvt 2015-07-25 21:27:20.000000000 +0200 +++ ncurses-6.0-20150810/misc/terminfo.src 2015-08-12 17:38:46.050362567 +0200 -@@ -5214,6 +5214,175 @@ rxvt-cygwin-native|rxvt terminal emulato +@@ -5214,6 +5214,181 @@ rxvt-cygwin-native|rxvt terminal emulato rxvt-16color|rxvt with 16 colors like aixterm, ncv#32, use=ibm+16color, use=rxvt, @@ -13,6 +13,7 @@ diff -up ncurses-6.0-20150810/misc/terminfo.src.urxvt ncurses-6.0-20150810/misc/ +# Updated: Marc Lehmann , 04 Nov 2008: change init/reset sequences +# Updated: Marc Lehmann , 24 Nov 2014: implement cvvis as blinking cursor +# Updated: Marc Lehmann , 13 Dec 2014: removed superfluous 0 from sgr ++# Updated: Robbie Harwood , 25 Oct 2019: restore deleted rxvt-unicode-256color +rxvt-unicode|rxvt-unicode terminal (X Window System), + am, + bce, @@ -173,6 +174,11 @@ diff -up ncurses-6.0-20150810/misc/terminfo.src.urxvt ncurses-6.0-20150810/misc/ + tsl=\E]2;, + fsl=\007, + dsl=\E]2;\007, ++ ++rxvt-unicode-256color|rxvt-unicode terminal with 256 colors (X Window System), ++ colors#256, ++ pairs#32767, ++ use=rxvt-unicode, + #### MRXVT # mrxvt 0.5.4 diff --git a/ncurses-usecap.patch b/ncurses-usecap.patch deleted file mode 100644 index 52079b4..0000000 --- a/ncurses-usecap.patch +++ /dev/null @@ -1,22 +0,0 @@ -20180414 - + add a null-pointer check in _nc_parse_entry to handle an error when - a use-name is invalid syntax (report by Chung-Yi Lin). - -diff --git a/ncurses/tinfo/parse_entry.c b/ncurses/tinfo/parse_entry.c -index 2b54f45d..437f1223 100644 ---- a/ncurses/tinfo/parse_entry.c -+++ b/ncurses/tinfo/parse_entry.c -@@ -543,9 +543,11 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent) - * Otherwise, look for a base entry that will already - * have picked up defaults via translation. - */ -- for (i = 0; i < entryp->nuses; i++) -- if (!strchr((char *) entryp->uses[i].name, '+')) -+ for (i = 0; i < entryp->nuses; i++) { -+ if (entryp->uses[i].name != 0 -+ && !strchr(entryp->uses[i].name, '+')) - has_base_entry = TRUE; -+ } - } - - postprocess_termcap(&entryp->tterm, has_base_entry); diff --git a/ncurses.spec b/ncurses.spec index e878abc..08a55ce 100644 --- a/ncurses.spec +++ b/ncurses.spec @@ -1,23 +1,26 @@ -%global revision 20180224 +%if 0%{?rhel} >= 10 +%bcond_with compat_libs +%bcond_with gpm +%else +%bcond_without compat_libs +%bcond_without gpm +%endif +%global revision 20240127 Summary: Ncurses support utilities Name: ncurses -Version: 6.1 -Release: 10.%{revision}%{?dist} -License: MIT -Group: System Environment/Base +Version: 6.4 +Release: 14.%{revision}%{?dist} +License: MIT-open-group 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 -Patch1: ncurses-usecap.patch Patch8: ncurses-config.patch Patch9: ncurses-libs.patch Patch11: ncurses-urxvt.patch -Patch12: ncurses-kbs.patch -Patch13: ncurses-cve-2019-17594.patch -Patch14: ncurses-cve-2019-17595.patch -Patch15: ncurses-tputx.patch -Patch16: ncurses-cve-2023-29491.patch -BuildRequires: gcc gcc-c++ gpm-devel pkgconfig +BuildRequires: gcc gcc-c++ gnupg2 make pkgconfig +%{?with_gpm:BuildRequires: gpm-devel} Requires: %{name}-libs%{?_isa} = %{version}-%{release} @@ -33,12 +36,7 @@ tool captoinfo. %package libs Summary: Ncurses libraries -Group: System Environment/Libraries Requires: %{name}-base = %{version}-%{release} -# libs introduced in 5.6-13 -Obsoletes: ncurses < 5.6-13 -Conflicts: ncurses < 5.6-13 -Obsoletes: libtermcap < 2.0.8-48 %description libs The curses library routines are a terminal-independent method of @@ -48,9 +46,9 @@ discontinued 4.4 BSD classic curses library. This package contains the ncurses libraries. +%if %{with compat_libs} %package compat-libs Summary: Ncurses compatibility libraries -Group: System Environment/Libraries Requires: %{name}-base = %{version}-%{release} %description compat-libs @@ -61,10 +59,10 @@ 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 -Group: System Environment/Libraries Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description c++-libs @@ -77,12 +75,10 @@ This package contains C++ bindings of the ncurses ABI version 6 libraries. %package base Summary: Descriptions of common terminals -Group: System Environment/Base -Obsoletes: termcap < 1:5.5-2 -# base introduced in 5.6-13 -Conflicts: ncurses < 5.6-13 -# /lib -> /usr/lib move -Conflicts: filesystem < 3 +# rxvt-unicode-256color entry used to be in rxvt-unicode and briefly +# in rxvt-unicode-terminfo +Conflicts: rxvt-unicode < 9.22-15 +Obsoletes: rxvt-unicode-terminfo < 9.22-18 BuildArch: noarch %description base @@ -91,7 +87,6 @@ descriptions are included in the ncurses-term package. %package term Summary: Terminal descriptions -Group: System Environment/Base Requires: %{name}-base = %{version}-%{release} BuildArch: noarch @@ -101,12 +96,9 @@ the ncurses-base package. %package devel Summary: Development files for the ncurses library -Group: Development/Libraries Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-c++-libs%{?_isa} = %{version}-%{release} Requires: pkgconfig -Obsoletes: libtermcap-devel < 2.0.8-48 -Provides: libtermcap-devel = 2.0.8-48 %description devel The header files and libraries for developing applications that use @@ -117,24 +109,19 @@ which will use ncurses. %package static Summary: Static libraries for the ncurses library -Group: Development/Libraries Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description static The ncurses-static package includes static libraries of the ncurses library. %prep +%{gpgverify} --keyring=%{SOURCE2} --signature=%{SOURCE1} --data=%{SOURCE0} + %setup -q -n %{name}-%{version}-%{revision} -%patch1 -p1 -b .usecap -%patch8 -p1 -b .config -%patch9 -p1 -b .libs -%patch11 -p1 -b .urxvt -%patch12 -p1 -b .kbs -%patch13 -p1 -b .cve-2019-17594 -%patch14 -p1 -b .cve-2019-17595 -%patch15 -p1 -b .tputx -%patch16 -p1 -b .cve-2023-29491 +%patch -P8 -p1 -b .config +%patch -P9 -p1 -b .libs +%patch -P11 -p1 -b .urxvt for f in ANNOUNCE; do iconv -f iso8859-1 -t utf8 -o ${f}{_,} && @@ -148,6 +135,8 @@ common_options="\ --enable-overwrite \ --enable-pc-files \ --enable-xmc-glitch \ + --disable-root-access \ + --disable-setuid-environ \ --disable-stripping \ --disable-wattr-macros \ --with-cxx-shared \ @@ -158,10 +147,11 @@ 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 5 6; do +for abi in %{?with_compat_libs:5} 6; do for char in narrowc widec; do mkdir $char$abi pushd $char$abi @@ -172,21 +162,25 @@ for abi in 5 6; do %configure $( echo $common_options --with-abi-version=$abi [ $abi = 5 ] && echo $abi5_options - [ $char = widec ] && echo --enable-widec + [ $char = widec ] && echo --enable-widec || echo --disable-widec [ $progs = yes ] || echo --without-progs ) - make %{?_smp_mflags} libs - [ $progs = yes ] && make %{?_smp_mflags} -C progs + %make_build libs + [ $progs = yes ] && %make_build -C progs popd done 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} chmod 755 ${RPM_BUILD_ROOT}%{_libdir}/lib*.so.*.* @@ -198,9 +192,9 @@ baseterms= # prepare -base and -term file lists for termname in \ - ansi dumb linux vt100 vt100-nav vt102 vt220 vt52 \ + alacritty ansi dumb foot\* linux vt100 vt100-nav vt102 vt220 vt52 \ Eterm\* aterm bterm cons25 cygwin eterm\* gnome gnome-256color hurd jfbterm \ - konsole konsole-256color mach\* mlterm mrxvt nsterm putty{,-256color} pcansi \ + kitty konsole konsole-256color mach\* mlterm mrxvt nsterm putty{,-256color} pcansi \ rxvt{,-\*} screen{,-\*color,.[^mlp]\*,.linux,.mlterm\*,.putty{,-256color},.mrxvt} \ st{,-\*color} sun teraterm teraterm2.3 tmux{,-\*} vte vte-256color vwmterm \ wsvt25\* xfce xterm xterm-\* @@ -246,16 +240,18 @@ rm -f $RPM_BUILD_ROOT%{_bindir}/ncurses*5-config rm -f $RPM_BUILD_ROOT%{_libdir}/terminfo rm -f $RPM_BUILD_ROOT%{_libdir}/pkgconfig/*_g.pc -bzip2 NEWS +xz NEWS %ldconfig_scriptlets libs %ldconfig_scriptlets c++-libs +%if %{with compat_libs} %ldconfig_scriptlets compat-libs +%endif %files -%doc ANNOUNCE AUTHORS NEWS.bz2 README TO-DO +%doc ANNOUNCE AUTHORS NEWS.xz README TO-DO %{_bindir}/[cirt]* %{_mandir}/man1/[cirt]* %{_mandir}/man5/* @@ -265,14 +261,15 @@ bzip2 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* %files base -f terms.base -%{!?_licensedir:%global license %%doc} %license COPYING %doc README %dir %{_sysconfdir}/terminfo @@ -301,26 +298,143 @@ bzip2 NEWS %{_libdir}/lib*.a %changelog -* Tue Aug 15 2023 Miroslav Lichvar 6.1-10.20180224 -- fix buffer overflow on terminfo with too many capabilities (CVE-2023-29491) +* Tue Oct 29 2024 Troy Dawson - 6.4-14.20240127 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 -* Tue May 18 2021 Miroslav Lichvar 6.1-9.20180224 -- fix tput to accept -x option (#1916340) +* Mon Jun 24 2024 Troy Dawson - 6.4-13.20240127 +- Bump release for June 2024 mass rebuild -* Tue May 18 2021 Miroslav Lichvar 6.1-8.20180224 -- fix buffer overflow in terminfo entry hashtable (CVE-2019-17594) -- handle missing character after backslash in terminfo entry (CVE-2019-17595) +* Thu Feb 01 2024 Miroslav Lichvar 6.4-12.20240127 +- update to 6.4-20240127 +- disable gpm on RHEL >= 10 (RHEL-23679) -* Wed Jan 16 2019 Miroslav Lichvar 6.1-7.20180224 -- disable stripping on program installation (#1665177) +* Thu Jan 25 2024 Fedora Release Engineering - 6.4-11.20240113 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Tue Jan 08 2019 Miroslav Lichvar 6.1-6.20180224 -- rebuild with latest gcc (#1648947) +* Sun Jan 21 2024 Fedora Release Engineering - 6.4-10.20240113 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Fri Jul 27 2018 Miroslav Lichvar 6.1-5.20180224 -- fix crash in parsing of terminfo use capability (CVE-2018-10754) +* Wed Jan 17 2024 Miroslav Lichvar 6.4-9.20240113 +- update to 6.4-20240113 +- disable compat libs on RHEL >= 10 +- drop kbs patch + +* Wed Oct 04 2023 Miroslav Lichvar 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 6.4-7.20230520 +- ignore TERMINFO and HOME only if setuid/setgid/capability + +* Thu Jul 20 2023 Fedora Release Engineering - 6.4-6.20230520 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 27 2023 Debarshi Ray 6.4-5.20230520 +- move foot entries to -base (#2217982) + +* Mon May 22 2023 Miroslav Lichvar 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 - 6.4-3.20230114 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 17 2023 Miroslav Lichvar 6.4-2.20230114 +- update to 6.4-20230114 (#2160276) + +* Mon Jan 09 2023 Miroslav Lichvar 6.4-1.20230107 +- update to 6.4-20230107 +- restore compat-libs (ABI 5) subpackage (#2129865) + +* Fri Dec 16 2022 Miroslav Lichvar 6.3-5.20221126 +- revert "enable symbol versioning for dynamic linker (#1875587)" + +* Thu Dec 01 2022 Miroslav Lichvar 6.3-4.20221126 +- update to 6.3-20221126 +- enable symbol versioning for dynamic linker (#1875587) + +* Fri Jul 22 2022 Fedora Release Engineering - 6.3-3.20220501 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed May 04 2022 Miroslav Lichvar 6.3-2.20220501 +- update to 6.3-20220501 + +* Tue Apr 19 2022 Miroslav Lichvar 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 - 6.2-9.20210508 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 6.2-8.20210508 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon May 10 2021 Miroslav Lichvar 6.2-7.20210508 +- update to 6.2-20210508 + +* Tue May 04 2021 Miroslav Lichvar 6.2-6.20210501 +- update to 6.2-20210501 + +* Thu Mar 11 2021 Miroslav Lichvar 6.2-5.20210306 +- update to 6.2-20210306 + +* Tue Jan 26 2021 Fedora Release Engineering - 6.2-4.20200222 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild +- Use make macros +- Remove %license definition +- Add BuildRequires: make + +* Tue Jul 28 2020 Fedora Release Engineering - 6.2-3.20200222 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 23 2020 Miroslav Lichvar 6.2-2.20200222 +- move alacritty and kitty entries to -base (#1849974) + +* Wed Feb 26 2020 Miroslav Lichvar 6.2-1.20200222 +- update to 6.2-20200222 + +* Wed Jan 29 2020 Fedora Release Engineering - 6.1-15.20191109 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Nov 12 2019 Miroslav Lichvar 6.1-14.20191109 +- update to 6.1-20191109 +- remove LDFLAGS from pkgconfig files and ncurses-config scripts (#1771137) + +* Thu Oct 31 2019 Miroslav Lichvar 6.1-13.20191026 +- update to 6.1-20191026 (CVE-2019-17594 CVE-2019-17595) +- restore rxvt-unicode-256color terminfo (Robbie Harwood) (#1430935) +- conflict/obsolete rxvt-unicode (sub)packages with terminfo (#1430935) +- drop old obsoletes and conflicts + +* Wed Aug 07 2019 Miroslav Lichvar 6.1-12.20190803 +- update to 6.1-20190803 +- verify upstream signatures +- compress NEWS by xz + +* Wed Jul 24 2019 Miroslav Lichvar 6.1-11.20190720 +- update to 6.1-20190720 + +* Fri Feb 01 2019 Fedora Release Engineering - 6.1-10.20180923 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 16 2019 Miroslav Lichvar 6.1-9.20180923 +- disable stripping on program installation + +* Mon Sep 24 2018 Miroslav Lichvar 6.1-8.20180923 +- update to 6.1-20180923 + +* Mon Jul 16 2018 Miroslav Lichvar 6.1-7.20180714 +- update to 6.1-20180714 - add gcc-c++ to build requirements +* Fri Jul 13 2018 Fedora Release Engineering - 6.1-6.20180224 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed May 09 2018 Miroslav Lichvar 6.1-5.20180224 +- fix crash in parsing of terminfo use capability (CVE-2018-10754) + * Mon Feb 26 2018 Miroslav Lichvar 6.1-4.20180224 - update to 6.1-20180224 - add gcc to build requirements diff --git a/sources b/sources index 635b553..a6b0ad4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ncurses-6.1-20180224.tgz) = 26a0b8a88e965fa4089a48cd0af46b0ffa90d621a7d207c5c09c8cbd60f2cf073953c64ad109469bef9f52e5137067924148c33880cdd2161024a6e42ea4607d +SHA512 (ncurses-6.4-20240127.tgz) = 12b64c08b1eed7adab22aa4127cd25f8813ce02390980886dbeaf20df89f5bb44ca4fdd55a52a84dae7a88895a3b943221340514ee7a54c0fa2c29d4fc597059