From 557bfb4c9908de66edca8b6ab14e7c04cc4cc85728240ad7bc2576c2fc18583c Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 15 Feb 2018 13:02:46 +0000 Subject: [PATCH 1/7] . OBS-URL: https://build.opensuse.org/package/show/Base:System/ncurses?expand=0&rev=357 --- ncurses-6.1-patches.tar.bz2 | 4 ++-- ncurses.changes | 15 +++++++++++++++ ncurses.spec | 21 +++++++++++++++++++-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/ncurses-6.1-patches.tar.bz2 b/ncurses-6.1-patches.tar.bz2 index db84aa9..10aad41 100644 --- a/ncurses-6.1-patches.tar.bz2 +++ b/ncurses-6.1-patches.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d822ab8d2d7fa5dc03662a892edec02336ee432580fad6d096b0b3cba8b6d698 -size 8285 +oid sha256:ae59f9a1c6f283174df575edc25fc7b2a93057cf196ef49811d9d3d4998d0c0c +size 73862 diff --git a/ncurses.changes b/ncurses.changes index 792e092..66eba90 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Thu Feb 15 13:00:37 UTC 2018 - werner@suse.de + +- Add ncurses patch 6.1-20180210 + + modify misc/Makefile.in to install/uninstall explicit list in case + the build-directory happens to have no ".pc" files when an uninstall + is performed (report by Jeffrey Walton). + + deprecate safe-sprintf, since the vsnprintf function, which does what + was needed, was standardized long ago. + + add several development/experimental options to development packages. + + minor reordering of options in configure script to make the threaded + and reentrant options distinct from the other extensions which are + normally enabled. +- Make reentrant libs opaque + ------------------------------------------------------------------- Mon Feb 5 08:15:58 UTC 2018 - werner@suse.de diff --git a/ncurses.spec b/ncurses.spec index 054f852..f8eff1f 100644 --- a/ncurses.spec +++ b/ncurses.spec @@ -314,9 +314,9 @@ mv tack-* tack test ! -f /.buildenv || . /.buildenv OPATH=$PATH %ifarch s390x s390 - FALLBK="xterm,ibm327x,vt100,vt102,vt220" + FALLBK="unknown,dumb,xterm,ibm327x,vt100,vt102,vt220" %else - FALLBK="xterm,linux,vt100,vt102" + FALLBK="unknown,dumb,xterm,linux,vt100,vt102,vt220" %endif CC=gcc CXX=g++ @@ -400,6 +400,7 @@ mv tack-* tack --with-gpm \ %endif --with-dlsym \ + --with-default-terminfo-dir=%{_datadir}/terminfo \ --with-terminfo-dirs=%{_sysconfdir}/terminfo:%{_datadir}/terminfo \ --with-xterm-kbs=del \ --disable-stripping \ @@ -423,6 +424,10 @@ mv tack-* tack --enable-interop \ --with-pthread \ --enable-reentrant \ + --enable-opaque-curses \ + --enable-opaque-form \ + --enable-opaque-menu \ + --enable-opaque-panel \ --enable-ext-mouse \ --enable-widec \ --with-termlib=tinfow \ @@ -548,6 +553,10 @@ mv tack-* tack eval screen -D -m ./${c#*./} --with-abi-version=5 \ --without-pthread \ --disable-reentrant \ + --disable-opaque-curses \ + --disable-opaque-form \ + --disable-opaque-menu \ + --disable-opaque-panel \ --disable-ext-mouse \ --disable-widec \ --with-termlib=tinfo \ @@ -598,6 +607,10 @@ mv tack-* tack tail -q -s 0.5 -f $SCREENLOG & pid=$! eval screen -D -m ./${c#*./} --with-pthread \ --enable-reentrant \ + --enable-opaque-curses \ + --enable-opaque-form \ + --enable-opaque-menu \ + --enable-opaque-panel \ --enable-ext-mouse \ --disable-widec \ --with-termlib=tinfo \ @@ -637,6 +650,10 @@ mv tack-* tack eval screen -D -m ./${c#*./} --with-abi-version=5 \ --without-pthread \ --disable-reentrant \ + --disable-opaque-curses \ + --disable-opaque-form \ + --disable-opaque-menu \ + --disable-opaque-panel \ --disable-ext-mouse \ --enable-widec \ --with-termlib=tinfow \ From eecd68484176c74388cee024179bd458ec55037f8e1e356d3fb850b9c88300bf Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 19 Feb 2018 12:59:45 +0000 Subject: [PATCH 2/7] Update to ncurses 6.1-20180217 OBS-URL: https://build.opensuse.org/package/show/Base:System/ncurses?expand=0&rev=358 --- ncurses-6.1-patches.tar.bz2 | 4 +-- ncurses-6.1.dif | 60 ++++++++++++++++++------------------- ncurses.changes | 10 +++++++ 3 files changed, 42 insertions(+), 32 deletions(-) diff --git a/ncurses-6.1-patches.tar.bz2 b/ncurses-6.1-patches.tar.bz2 index 10aad41..caf1a64 100644 --- a/ncurses-6.1-patches.tar.bz2 +++ b/ncurses-6.1-patches.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae59f9a1c6f283174df575edc25fc7b2a93057cf196ef49811d9d3d4998d0c0c -size 73862 +oid sha256:5692ddf2cd04ba892406f1fe46fde87d824af711ab811c7006d9fbd06b461ef6 +size 76020 diff --git a/ncurses-6.1.dif b/ncurses-6.1.dif index 89b8767..316c7ff 100644 --- a/ncurses-6.1.dif +++ b/ncurses-6.1.dif @@ -22,7 +22,7 @@ 20 files changed, 248 insertions(+), 81 deletions(-) --- aclocal.m4 -+++ aclocal.m4 2018-01-29 10:43:34.207735837 +0000 ++++ aclocal.m4 2018-02-19 12:57:43.695068816 +0000 @@ -580,7 +580,7 @@ AC_MSG_CHECKING([for size of bool]) AC_CACHE_VAL(cf_cv_type_of_bool,[ rm -f cf_test.out @@ -151,8 +151,8 @@ esac done --- configure -+++ configure 2018-01-29 10:43:34.211735762 +0000 -@@ -5971,7 +5971,7 @@ case $cf_cv_system_name in ++++ configure 2018-02-19 12:57:43.695068816 +0000 +@@ -5972,7 +5972,7 @@ case $cf_cv_system_name in fi ;; (linux*|gnu*|k*bsd*-gnu|freebsd*) @@ -161,7 +161,7 @@ ;; (openbsd[2-9].*|mirbsd*) LD_RPATH_OPT="-Wl,-rpath," -@@ -12022,12 +12022,15 @@ cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP CF_EOF if test -n "$cf_compress" ; then -@@ -12152,9 +12155,9 @@ cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <$@ --- ncurses/curses.priv.h -+++ ncurses/curses.priv.h 2018-01-29 10:43:34.219735610 +0000 ++++ ncurses/curses.priv.h 2018-02-19 12:57:43.703068663 +0000 @@ -2150,6 +2150,8 @@ extern NCURSES_EXPORT(char *) _nc_tracec extern NCURSES_EXPORT(char *) _nc_tracemouse (SCREEN *, MEVENT const *); extern NCURSES_EXPORT(char *) _nc_trace_mmask_t (SCREEN *, mmask_t); @@ -817,7 +817,7 @@ extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *); extern NCURSES_EXPORT(int) _nc_getenv_num (const char *); --- ncurses/run_cmd.sh -+++ ncurses/run_cmd.sh 2018-01-29 10:43:34.219735610 +0000 ++++ ncurses/run_cmd.sh 2018-02-19 12:57:43.703068663 +0000 @@ -0,0 +1,11 @@ +#!/bin/sh + @@ -831,7 +831,7 @@ + +exec ${1+"$@"} --- ncurses/tinfo/MKfallback.sh -+++ ncurses/tinfo/MKfallback.sh 2018-01-29 10:43:34.219735610 +0000 ++++ ncurses/tinfo/MKfallback.sh 2018-02-19 12:57:43.703068663 +0000 @@ -68,6 +68,12 @@ else tmp_info= fi @@ -864,7 +864,7 @@ done --- ncurses/tinfo/access.c -+++ ncurses/tinfo/access.c 2018-01-29 10:43:34.219735610 +0000 ++++ ncurses/tinfo/access.c 2018-02-19 12:57:43.703068663 +0000 @@ -35,6 +35,9 @@ #include @@ -907,7 +907,7 @@ _nc_access(const char *path, int mode) { --- ncurses/tinfo/lib_setup.c -+++ ncurses/tinfo/lib_setup.c 2018-01-29 10:43:34.219735610 +0000 ++++ ncurses/tinfo/lib_setup.c 2018-02-19 12:57:43.703068663 +0000 @@ -599,6 +599,9 @@ _nc_locale_breaks_acs(TERMINAL *termp) } else if ((value = tigetnum("U8")) >= 0) { result = value; /* use extension feature */ @@ -919,7 +919,7 @@ result = 1; /* always broken */ } else if (strstr(env, "screen") != 0 --- ncurses/tinfo/read_entry.c -+++ ncurses/tinfo/read_entry.c 2018-01-29 10:43:34.219735610 +0000 ++++ ncurses/tinfo/read_entry.c 2018-02-19 12:57:43.703068663 +0000 @@ -532,6 +532,7 @@ _nc_read_file_entry(const char *const fi FILE *fp = 0; int code; @@ -937,7 +937,7 @@ return (code); } --- ncurses/tinfo/read_termcap.c -+++ ncurses/tinfo/read_termcap.c 2018-01-29 10:43:34.219735610 +0000 ++++ ncurses/tinfo/read_termcap.c 2018-02-19 12:57:43.703068663 +0000 @@ -322,14 +322,18 @@ _nc_getent( */ if (fd >= 0) { @@ -984,7 +984,7 @@ } if (copied != 0) --- progs/Makefile.in -+++ progs/Makefile.in 2018-01-29 10:43:34.219735610 +0000 ++++ progs/Makefile.in 2018-02-19 12:57:43.703068663 +0000 @@ -100,7 +100,7 @@ CFLAGS_LIBTOOL = $(CCFLAGS) CFLAGS_NORMAL = $(CCFLAGS) CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE @@ -1004,7 +1004,7 @@ LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) --- test/test.priv.h -+++ test/test.priv.h 2018-01-29 10:43:34.219735610 +0000 ++++ test/test.priv.h 2018-02-19 12:57:43.703068663 +0000 @@ -910,12 +910,12 @@ extern char *strnames[], *strcodes[], *s #endif diff --git a/ncurses.changes b/ncurses.changes index 66eba90..bbbfc84 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Feb 19 12:56:33 UTC 2018 - werner@suse.de + +- Add ncurses patch 6.1-20180217 + + remove incorrect free() from 20170617 changes (report by David Macek). + + correct type for "U8" in user_caps.5; it is a number not boolean. + + add a null-pointer check in safe_sprintf.c (report by Steven Noonan). + + improve fix for Debian #882620 by reusing limit2 variable (report + Julien Cristau, Sven Joachim). + ------------------------------------------------------------------- Thu Feb 15 13:00:37 UTC 2018 - werner@suse.de From 0fa74aba4539198318d692e911059488118cc503c6e31be0bc839786d7769c76 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 26 Feb 2018 09:13:18 +0000 Subject: [PATCH 3/7] Add ncurses patch 6.1-20180224 OBS-URL: https://build.opensuse.org/package/show/Base:System/ncurses?expand=0&rev=359 --- ncurses-5.9-ibm327x.dif | 4 +-- ncurses-6.1-patches.tar.bz2 | 4 +-- ncurses-6.1.dif | 66 ++++++++++++++++++------------------- ncurses.changes | 12 +++++++ 4 files changed, 49 insertions(+), 37 deletions(-) diff --git a/ncurses-5.9-ibm327x.dif b/ncurses-5.9-ibm327x.dif index 55389e8..fbcbde8 100644 --- a/ncurses-5.9-ibm327x.dif +++ b/ncurses-5.9-ibm327x.dif @@ -3,8 +3,8 @@ 1 file changed, 2 insertions(+), 2 deletions(-) --- misc/terminfo.src -+++ misc/terminfo.src 2018-01-29 10:42:50.284566362 +0000 -@@ -16451,8 +16451,8 @@ hazel|exec80|h80|he80|Hazeltine Executiv ++++ misc/terminfo.src 2018-02-26 09:11:11.405411875 +0000 +@@ -16487,8 +16487,8 @@ hazel|exec80|h80|he80|Hazeltine Executiv # ibm327x|line mode IBM 3270 style, diff --git a/ncurses-6.1-patches.tar.bz2 b/ncurses-6.1-patches.tar.bz2 index caf1a64..0cbe6dc 100644 --- a/ncurses-6.1-patches.tar.bz2 +++ b/ncurses-6.1-patches.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5692ddf2cd04ba892406f1fe46fde87d824af711ab811c7006d9fbd06b461ef6 -size 76020 +oid sha256:38925cefabc2edd8218b167cd480dcff24fe837e87fb3e95aec39a292c158d08 +size 82215 diff --git a/ncurses-6.1.dif b/ncurses-6.1.dif index 316c7ff..d5654d4 100644 --- a/ncurses-6.1.dif +++ b/ncurses-6.1.dif @@ -22,7 +22,7 @@ 20 files changed, 248 insertions(+), 81 deletions(-) --- aclocal.m4 -+++ aclocal.m4 2018-02-19 12:57:43.695068816 +0000 ++++ aclocal.m4 2018-02-26 09:11:33.337001372 +0000 @@ -580,7 +580,7 @@ AC_MSG_CHECKING([for size of bool]) AC_CACHE_VAL(cf_cv_type_of_bool,[ rm -f cf_test.out @@ -151,7 +151,7 @@ esac done --- configure -+++ configure 2018-02-19 12:57:43.695068816 +0000 ++++ configure 2018-02-26 09:11:33.341001297 +0000 @@ -5972,7 +5972,7 @@ case $cf_cv_system_name in fi ;; @@ -288,7 +288,7 @@ # the next lines are needed for linking libtic over libncurses TINFO_NAME=${LIB_NAME} --- include/curses.h.in -+++ include/curses.h.in 2018-02-19 12:57:43.695068816 +0000 ++++ include/curses.h.in 2018-02-26 09:11:33.341001297 +0000 @@ -177,6 +177,9 @@ typedef @cf_cv_typeof_chtype@ chtype; typedef @cf_cv_typeof_mmask_t@ mmask_t; #endif @@ -300,7 +300,7 @@ * We need FILE, etc. Include this before checking any feature symbols. */ --- include/termcap.h.in -+++ include/termcap.h.in 2018-02-19 12:57:43.695068816 +0000 ++++ include/termcap.h.in 2018-02-26 09:11:33.341001297 +0000 @@ -46,6 +46,8 @@ extern "C" { #endif /* __cplusplus */ @@ -311,7 +311,7 @@ #undef NCURSES_CONST --- include/tic.h -+++ include/tic.h 2018-02-19 12:57:43.695068816 +0000 ++++ include/tic.h 2018-02-26 09:11:33.341001297 +0000 @@ -221,12 +221,12 @@ struct alias */ @@ -328,7 +328,7 @@ #define CANCELLED_STRING (char *)(-1) --- man/man_db.renames -+++ man/man_db.renames 2018-02-19 12:57:43.699068740 +0000 ++++ man/man_db.renames 2018-02-26 09:11:33.341001297 +0000 @@ -163,6 +163,7 @@ term.7 term.7 term_variables.3x terminfo_variables.3ncurses terminfo.5 terminfo.5 @@ -346,7 +346,7 @@ # getty.1 getty.8 --- man/ncurses.3x -+++ man/ncurses.3x 2018-02-19 12:57:43.699068740 +0000 ++++ man/ncurses.3x 2018-02-26 09:11:33.341001297 +0000 @@ -138,6 +138,10 @@ after the shell environment variable \fB [See \fBterminfo\fR(\*n) for further details.] .SS Datatypes @@ -359,7 +359,7 @@ called \fIwindows\fR, which can be thought of as two-dimensional arrays of characters representing all or part of a CRT screen. --- misc/gen-pkgconfig.in -+++ misc/gen-pkgconfig.in 2018-02-19 12:57:43.699068740 +0000 ++++ misc/gen-pkgconfig.in 2018-02-26 09:11:33.345001222 +0000 @@ -76,7 +76,7 @@ if test "$includedir" != "/usr/include" fi @@ -399,7 +399,7 @@ echo "** creating ${name}${suffix}.pc" --- misc/ncurses-config.in -+++ misc/ncurses-config.in 2018-02-19 12:57:43.699068740 +0000 ++++ misc/ncurses-config.in 2018-02-26 09:11:33.345001222 +0000 @@ -100,7 +100,7 @@ while test $# -gt 0; do # compile/link --cflags) @@ -410,7 +410,7 @@ fi if test "${includedir}" != /usr/include ; then --- misc/terminfo.src -+++ misc/terminfo.src 2018-02-19 12:57:43.703068663 +0000 ++++ misc/terminfo.src 2018-02-26 09:11:33.349001148 +0000 @@ -301,7 +301,9 @@ dumb|80-column dumb tty, am, cols#80, @@ -631,7 +631,7 @@ kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, -@@ -5870,6 +5907,38 @@ rxvt-cygwin-native|rxvt terminal emulato +@@ -5900,6 +5937,38 @@ rxvt-cygwin-native|rxvt terminal emulato \302x\263y\363z\362{\343|\330~\376, use=rxvt-cygwin, @@ -670,7 +670,7 @@ # This variant is supposed to work with rxvt 2.7.7 when compiled with # NO_BRIGHTCOLOR defined. rxvt needs more work... rxvt-16color|rxvt with 16 colors like aixterm, -@@ -5916,7 +5985,7 @@ mrxvt-256color|multitabbed rxvt with 256 +@@ -5946,7 +6015,7 @@ mrxvt-256color|multitabbed rxvt with 256 # Eterm 0.9.3 # # removed kf0 which conflicts with kf10 -TD @@ -679,7 +679,7 @@ # Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT # but does otherwise follow the rxvt+pcfkeys model -TD # remove nonworking flash -TD -@@ -5930,13 +5999,13 @@ Eterm|Eterm-color|Eterm with xterm-style +@@ -5960,13 +6029,13 @@ Eterm|Eterm-color|Eterm with xterm-style csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, @@ -695,7 +695,7 @@ kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=, -@@ -6593,7 +6662,7 @@ pty|4bsd pseudo teletype, +@@ -6629,7 +6698,7 @@ pty|4bsd pseudo teletype, # https://github.com/emacs-mirror/emacs/blob/master/lisp/term.el # # The codes supported by the term.el terminal emulation in GNU Emacs 19.30 @@ -704,7 +704,7 @@ am, mir, xenl, cols#80, lines#24, bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=\r, -@@ -6606,6 +6675,13 @@ eterm|gnu emacs term.el terminal emulati +@@ -6642,6 +6711,13 @@ eterm|gnu emacs term.el terminal emulati rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m, smul=\E[4m, @@ -718,7 +718,7 @@ # The codes supported by the term.el terminal emulation in GNU Emacs 22.2 eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96, -@@ -6728,7 +6804,7 @@ screen|VT 100/ANSI X3.64 virtual termina +@@ -6764,7 +6840,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, @@ -727,7 +727,7 @@ 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, -@@ -6849,6 +6925,13 @@ screen.xterm-xfree86|screen.xterm-new|sc +@@ -6885,6 +6961,13 @@ screen.xterm-xfree86|screen.xterm-new|sc use=xterm+x11mouse, use=xterm-new, #:screen.xterm|screen for modern xterm, #: use=screen.xterm-new, @@ -741,7 +741,7 @@ # xterm-r6 does not really support khome/kend unless it is propped up by # the translations resource. screen.xterm-r6|screen customized for X11R6 xterm, -@@ -6936,7 +7019,7 @@ screen2|old VT 100/ANSI X3.64 virtual te +@@ -6972,7 +7055,7 @@ screen2|old VT 100/ANSI X3.64 virtual te cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL, @@ -750,7 +750,7 @@ kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH, nel=\r\n, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m, -@@ -8817,7 +8900,7 @@ hp700-wy|HP700/41 emulating wyse30, +@@ -8853,7 +8936,7 @@ hp700-wy|HP700/41 emulating wyse30, ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>, sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>, smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c, @@ -759,7 +759,7 @@ am, da, db, xhp, cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA, -@@ -12038,6 +12121,7 @@ msk22714|mskermit22714|UCB MS-DOS Kermit +@@ -12074,6 +12157,7 @@ msk22714|mskermit22714|UCB MS-DOS Kermit # at support for the VT320 itself. # Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu. # (vt320-k3: I added / based on the init string -- esr) @@ -767,7 +767,7 @@ vt320-k3|MS-Kermit 3.00's vt320 emulation, am, eslok, hs, km, mir, msgr, xenl, cols#80, it#8, lines#49, pb#9600, vt#3, -@@ -12047,7 +12131,7 @@ vt320-k3|MS-Kermit 3.00's vt320 emulatio +@@ -12083,7 +12167,7 @@ vt320-k3|MS-Kermit 3.00's vt320 emulatio csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, @@ -776,7 +776,7 @@ dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K, flash=\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[ ?5l, -@@ -16461,7 +16545,7 @@ ibm3101|i3101|IBM 3101-10, +@@ -16497,7 +16581,7 @@ ibm3101|i3101|IBM 3101-10, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, el=\EI, home=\EH, hts=\E0, ind=\n, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, nel=\r\n, tbc=\EH, @@ -785,7 +785,7 @@ is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B, sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%; %?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t -@@ -16719,7 +16803,7 @@ lft|lft-pc850|LFT-PC850|IBM LFT PC850 De +@@ -16755,7 +16839,7 @@ lft|lft-pc850|LFT-PC850|IBM LFT PC850 De tbc=\E[3g, # "Megapel" refers to the display adapter, which was used with the IBM RT # aka IBM 6150. @@ -795,7 +795,7 @@ s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154, ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display, --- ncurses/Makefile.in -+++ ncurses/Makefile.in 2018-02-19 12:57:43.703068663 +0000 ++++ ncurses/Makefile.in 2018-02-26 09:11:33.349001148 +0000 @@ -219,7 +219,7 @@ $(DESTDIR)$(libdir) : ../lib : ; mkdir $@ @@ -806,7 +806,7 @@ ./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@ --- ncurses/curses.priv.h -+++ ncurses/curses.priv.h 2018-02-19 12:57:43.703068663 +0000 ++++ ncurses/curses.priv.h 2018-02-26 09:11:33.349001148 +0000 @@ -2150,6 +2150,8 @@ extern NCURSES_EXPORT(char *) _nc_tracec extern NCURSES_EXPORT(char *) _nc_tracemouse (SCREEN *, MEVENT const *); extern NCURSES_EXPORT(char *) _nc_trace_mmask_t (SCREEN *, mmask_t); @@ -817,7 +817,7 @@ extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *); extern NCURSES_EXPORT(int) _nc_getenv_num (const char *); --- ncurses/run_cmd.sh -+++ ncurses/run_cmd.sh 2018-02-19 12:57:43.703068663 +0000 ++++ ncurses/run_cmd.sh 2018-02-26 09:11:33.349001148 +0000 @@ -0,0 +1,11 @@ +#!/bin/sh + @@ -831,7 +831,7 @@ + +exec ${1+"$@"} --- ncurses/tinfo/MKfallback.sh -+++ ncurses/tinfo/MKfallback.sh 2018-02-19 12:57:43.703068663 +0000 ++++ ncurses/tinfo/MKfallback.sh 2018-02-26 09:11:33.349001148 +0000 @@ -68,6 +68,12 @@ else tmp_info= fi @@ -864,7 +864,7 @@ done --- ncurses/tinfo/access.c -+++ ncurses/tinfo/access.c 2018-02-19 12:57:43.703068663 +0000 ++++ ncurses/tinfo/access.c 2018-02-26 09:11:33.349001148 +0000 @@ -35,6 +35,9 @@ #include @@ -907,7 +907,7 @@ _nc_access(const char *path, int mode) { --- ncurses/tinfo/lib_setup.c -+++ ncurses/tinfo/lib_setup.c 2018-02-19 12:57:43.703068663 +0000 ++++ ncurses/tinfo/lib_setup.c 2018-02-26 09:11:33.353001073 +0000 @@ -599,6 +599,9 @@ _nc_locale_breaks_acs(TERMINAL *termp) } else if ((value = tigetnum("U8")) >= 0) { result = value; /* use extension feature */ @@ -919,7 +919,7 @@ result = 1; /* always broken */ } else if (strstr(env, "screen") != 0 --- ncurses/tinfo/read_entry.c -+++ ncurses/tinfo/read_entry.c 2018-02-19 12:57:43.703068663 +0000 ++++ ncurses/tinfo/read_entry.c 2018-02-26 09:11:33.353001073 +0000 @@ -532,6 +532,7 @@ _nc_read_file_entry(const char *const fi FILE *fp = 0; int code; @@ -937,7 +937,7 @@ return (code); } --- ncurses/tinfo/read_termcap.c -+++ ncurses/tinfo/read_termcap.c 2018-02-19 12:57:43.703068663 +0000 ++++ ncurses/tinfo/read_termcap.c 2018-02-26 09:11:33.353001073 +0000 @@ -322,14 +322,18 @@ _nc_getent( */ if (fd >= 0) { @@ -984,7 +984,7 @@ } if (copied != 0) --- progs/Makefile.in -+++ progs/Makefile.in 2018-02-19 12:57:43.703068663 +0000 ++++ progs/Makefile.in 2018-02-26 09:11:33.353001073 +0000 @@ -100,7 +100,7 @@ CFLAGS_LIBTOOL = $(CCFLAGS) CFLAGS_NORMAL = $(CCFLAGS) CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE @@ -1004,7 +1004,7 @@ LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) --- test/test.priv.h -+++ test/test.priv.h 2018-02-19 12:57:43.703068663 +0000 ++++ test/test.priv.h 2018-02-26 09:11:33.353001073 +0000 @@ -910,12 +910,12 @@ extern char *strnames[], *strcodes[], *s #endif diff --git a/ncurses.changes b/ncurses.changes index bbbfc84..3728af6 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Feb 26 09:10:07 UTC 2018 - werner@suse.de + +- Add ncurses patch 6.1-20180224 + + modify _nc_resolve_uses2() to detect incompatible types when merging + a "use=" clause of extended capabilities. The problem was seen in a + defective terminfo integrated from simpleterm sources in 20171111, + compounded by repair in 20180121. + + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD + + fix remaining flash capabilities with trailing mandatory delays -TD + + correct cut/paste in NEWS (report by Sven Joachim). + ------------------------------------------------------------------- Mon Feb 19 12:56:33 UTC 2018 - werner@suse.de From 653080d4bb7cb03346c6b2b73425fc0788d7bfc29d6f8b1aeafe89b12ce78d91 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 1 Mar 2018 13:42:38 +0000 Subject: [PATCH 4/7] . OBS-URL: https://build.opensuse.org/package/show/Base:System/ncurses?expand=0&rev=360 --- ncurses-6.1-weakpthreads.dif | 47 ++++++++++++++++ ncurses.changes | 9 ++++ ncurses.spec | 102 +++++++++++++++++++++++++++++++---- 3 files changed, 148 insertions(+), 10 deletions(-) create mode 100644 ncurses-6.1-weakpthreads.dif diff --git a/ncurses-6.1-weakpthreads.dif b/ncurses-6.1-weakpthreads.dif new file mode 100644 index 0000000..c85d36a --- /dev/null +++ b/ncurses-6.1-weakpthreads.dif @@ -0,0 +1,47 @@ +With ncurses-6.0-20170701.patch + + + improve compatibility between different configurations of new_prescr, + fixing a case with threaded code and term-driver where c++/demo did + not work (cf: 20160213). + +the pthread_self(3) function call had been called without checking if the +library libpthread has been linked. This break e.g. grub (boo#1058509) if +statically linked. + +--- + ncurses/tinfo/lib_setup.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +--- ncurses/tinfo/lib_setup.c ++++ ncurses/tinfo/lib_setup.c 2018-03-01 10:58:23.280319133 +0000 +@@ -830,8 +830,9 @@ _nc_find_prescr(void) + { + SCREEN *result = 0; + PRESCREEN_LIST *p; ++ pthread_t id = ((pthread_self)) ? pthread_self() : (pthread_t)getpid(); + for (p = _nc_prescreen.allocated; p != 0; p = p->next) { +- if (p->id == pthread_self()) { ++ if (p->id == id) { + result = p->sp; + break; + } +@@ -848,8 +849,9 @@ NCURSES_EXPORT(void) + _nc_forget_prescr(void) + { + PRESCREEN_LIST *p, *q; ++ pthread_t id = ((pthread_self)) ? pthread_self() : (pthread_t)getpid(); + for (p = _nc_prescreen.allocated, q = 0; p != 0; q = p, p = p->next) { +- if (p->id == pthread_self()) { ++ if (p->id == id) { + if (q) { + q->next = p->next; + } else { +@@ -885,7 +887,7 @@ new_prescr(void) + #ifdef USE_PTHREADS + PRESCREEN_LIST *p = typeCalloc(PRESCREEN_LIST, 1); + if (p != 0) { +- p->id = pthread_self(); ++ p->id = ((pthread_self)) ? pthread_self() : (pthread_t)getpid(); + p->sp = sp; + p->next = _nc_prescreen.allocated; + _nc_prescreen.allocated = p; diff --git a/ncurses.changes b/ncurses.changes index 3728af6..620fa9e 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Thu Mar 1 13:39:02 UTC 2018 - werner@suse.de + +- Add patch ncurses-6.1-weakpthreads.dif + + Be aware that libtinfo/libtinfw is also used without libpthread + (boo#1058509) +- Use expect to run at least two test for normal and wide character + version of newdemo from test suite + ------------------------------------------------------------------- Mon Feb 26 09:10:07 UTC 2018 - werner@suse.de diff --git a/ncurses.spec b/ncurses.spec index f8eff1f..b1d33c7 100644 --- a/ncurses.spec +++ b/ncurses.spec @@ -29,6 +29,7 @@ Name: ncurses %if %{with hasheddb} BuildRequires: db-devel %endif +BuildRequires: expect BuildRequires: gcc-c++ BuildRequires: pkg-config BuildRequires: screen @@ -66,6 +67,7 @@ Source6: edit.sed Source7: baselibs.conf Patch0: ncurses-6.1.dif Patch1: ncurses-5.9-ibm327x.dif +Patch2: ncurses-6.1-weakpthreads.dif Patch4: ncurses-5.7-tack.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _miscdir %{_datadir}/misc @@ -221,7 +223,7 @@ the ncurses library in its ABI version 5 form. %package -n tack Summary: Terminfo action checker -License: GPL-2.0+ +License: GPL-2.0-or-later Group: Development/Tools/Building Provides: ncurses-devel:%{_bindir}/tack Requires: ncurses = %{version}-%{release} @@ -251,6 +253,7 @@ rm -fr tack tar -xzf %{S:5} mv tack-* tack %patch1 -p0 -b .327x +%patch2 -p0 -b .pth %patch4 -p0 -b .hs %patch0 -p0 -b .p0 @@ -388,6 +391,7 @@ mv tack-* tack --without-debug \ --without-profile \ --without-manpage-tbl \ + --without-tests \ --with-shared \ --with-normal \ --with-manpage-format=gzip \ @@ -529,28 +533,46 @@ mv tack-* tack sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncursesw" --libs "-lncursesw" --libs "-ltinfow" %{root}%{_bindir}/ncursesw6-config mkdir pc mv -f %{root}%{_libdir}/pkgconfig/*.pc pc/ + # + # Some tests + # +%if 0%{?qemu_user_space_build:1}%{?_crossbuild} + echo "Skipping tests due to running under QEMU / cross-building" +%else # # Check for tack program on base of above ncurses # LD_LIBRARY_PATH=$PWD/lib export LD_LIBRARY_PATH PATH pushd tack/ -%if 0%{?qemu_user_space_build:1}%{?_crossbuild} - echo "Skipping LDD test due to running under QEMU / cross-building" -%else ldd ./tack -%endif popd unset LD_LIBRARY_PATH + # + # Make the test suite for ncursesw6 + # + pushd test + CFLAGS="$CFLAGS -I%{root}%{_incdir}" LDFLAGS="$LDFLAGS -L%{root}%{_libdir}" \ + ./configure --with-ncursesw --enable-widec --prefix=$PWD + LD_LIBRARY_PATH=%{root}%{_libdir} \ + make %{?_smp_mflags} TEST_ARGS='-lformw -lmenuw -lpanelw -lncursesw -lticw -ltinfow -Wl,--as-needed' + make install TEST_ARGS='-lformw -lmenuw -lpanelw -lncursesw -lticw -ltinfow -Wl,--as-needed' + mv bin binw + make distclean + popd +%endif test ! -L tack || rm -f tack make clean - > $SCREENLOG - tail -q -s 0.5 -f $SCREENLOG & pid=$! - # # Now use --without-pthread to disable pthread support (abi == 5). # + > $SCREENLOG + tail -q -s 0.5 -f $SCREENLOG & pid=$! + eval screen -D -m ./${c#*./} --with-abi-version=5 \ + --without-manpages \ + --without-progs \ + --without-tack \ --without-pthread \ --disable-reentrant \ --disable-opaque-curses \ @@ -606,6 +628,9 @@ mv tack-* tack > $SCREENLOG tail -q -s 0.5 -f $SCREENLOG & pid=$! eval screen -D -m ./${c#*./} --with-pthread \ + --without-manpages \ + --without-progs \ + --without-tack \ --enable-reentrant \ --enable-opaque-curses \ --enable-opaque-form \ @@ -636,11 +661,29 @@ mv tack-* tack sh ../edit_man.sh normal installing %{root}%{_mandir} . ncurses6-config.1 popd mv -f %{root}%{_libdir}/pkgconfig/*.pc pc/ - + # + # Some tests + # +%if 0%{?qemu_user_space_build:1}%{?_crossbuild} + echo "Skipping tests due to running under QEMU / cross-building" +%else + # + # Make the test suite for ncurses6 + # + pushd test + CFLAGS="$CFLAGS -I%{root}%{_incdir}" LDFLAGS="$LDFLAGS -L%{root}%{_libdir}" \ + ./configure --with-ncurses --disable-widec --prefix=$PWD + LD_LIBRARY_PATH=%{root}%{_libdir} \ + make %{?_smp_mflags} TEST_ARGS='-lform -lmenu -lpanel -lncurses -ltic -ltinfo -Wl,--as-needed' + make install TEST_ARGS='-lform -lmenu -lpanel -lncurses -ltic -ltinfo -Wl,--as-needed' + make distclean + popd +%endif + test ! -L tack || rm -f tack + make clean # # ABI == 5 # - make clean > $SCREENLOG tail -q -s 0.5 -f $SCREENLOG & pid=$! @@ -648,6 +691,9 @@ mv tack-* tack # Now use --without-pthread to disable pthread support (abi == 5). # eval screen -D -m ./${c#*./} --with-abi-version=5 \ + --without-manpages \ + --without-progs \ + --without-tack \ --without-pthread \ --disable-reentrant \ --disable-opaque-curses \ @@ -905,6 +951,42 @@ mv tack-* tack rm -f %{buildroot}%{_prefix}/lib/terminfo mv pc/*.pc %{buildroot}%{_libdir}/pkgconfig/ +%if 0%{?qemu_user_space_build:1}%{?_crossbuild} +# No test here +%else +%check +LD_LIBRARY_PATH=%{buildroot}/%{_lib}:%{buildroot}%{_libdir} +export LD_LIBRARY_PATH +pushd test + expect -d <<-'EOF' + set env(TERM) xterm + set timeout 10 + spawn -noecho "binw/newdemo" + send -- "x" + sleep 5 + send -- "x" + sleep 5 + send -- "x" + sleep 5 + send -- "q" + wait + EOF + expect -d <<-'EOF' + set env(TERM) xterm + set timeout 10 + spawn -noecho "bin/newdemo" + send -- "x" + sleep 5 + send -- "x" + sleep 5 + send -- "x" + sleep 5 + send -- "q" + wait + EOF +popd +%endif + %post -n libncurses5 -p /sbin/ldconfig %postun -n libncurses5 -p /sbin/ldconfig From 5fff6b98c324752f34a018c2adbd970b1c1652d04ebaebbff2677252612c3529 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 2 Mar 2018 10:18:56 +0000 Subject: [PATCH 5/7] shared libtinfo only but with auxillary shared libtinfow as well OBS-URL: https://build.opensuse.org/package/show/Base:System/ncurses?expand=0&rev=361 --- ncurses.changes | 7 +++++++ ncurses.spec | 52 ++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/ncurses.changes b/ncurses.changes index 620fa9e..12f9104 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Mar 2 10:00:20 UTC 2018 - werner@suse.de + +- Switch back to shared libtinfo only but provide an auxiliary shared + library libtinfow to avoid a rebuild of third party programs + + Add sanity check if new 32bit API is included in libtinfo + ------------------------------------------------------------------- Thu Mar 1 13:39:02 UTC 2018 - werner@suse.de diff --git a/ncurses.spec b/ncurses.spec index b1d33c7..6ce10dd 100644 --- a/ncurses.spec +++ b/ncurses.spec @@ -23,6 +23,13 @@ %bcond_with symversion %endif %bcond_with memleakck +%bcond_without onlytinfo + +%if %{with onlytinfo} +%global soname_tinfo tinfo +%else +%global soname_tinfo tinfow +%endif Name: ncurses #!BuildIgnore: terminfo @@ -434,7 +441,7 @@ mv tack-* tack --enable-opaque-panel \ --enable-ext-mouse \ --enable-widec \ - --with-termlib=tinfow \ + --with-termlib=%{soname_tinfo} \ --with-ticlib=ticw \ %if %{with symversion} --with-versioned-syms=${PWD}/package/ncursestw.map \ @@ -529,8 +536,16 @@ mv tack-* tack # must not use %jobs here (would lead to: ln: ncurses.h already exists) find man/ -name '*.[1-8]x.*' -print -delete make install DESTDIR=%{root} includedir=%{_incdir} includesubdir=/ncursesw libdir=%{_libdir} +%if %{with onlytinfo} + # This ensures that we get the libtinfo *with* _nc_read_entry2 symbol as well + gcc $CFLAGS $LDFLAGS -fPIC -shared -Wl,--auxiliary=libtinfo.so.6,-soname,libtinfow.so.6,-stats,-lc \ + -Wl,--version-script,ncurses/resulting.map -o %{root}%{_libdir}/libtinfow.so.%{version} + cp -p %{root}%{_libdir}/libtinfo.so.%{version} libtinfo.so.%{version}.back + cp -p %{root}%{_libdir}/libtinfow.so.%{version} libtinfow.so.%{version}.back +%endif ln -sf %{_incdir}/ncurses/{curses,ncurses,term,termcap}.h %{root}%{_incdir} - sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncursesw" --libs "-lncursesw" --libs "-ltinfow" %{root}%{_bindir}/ncursesw6-config + sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncursesw" --libs "-lncursesw" \ + --libs "-l%{soname_tinfo}" %{root}%{_bindir}/ncursesw6-config mkdir pc mv -f %{root}%{_libdir}/pkgconfig/*.pc pc/ # @@ -555,8 +570,8 @@ mv tack-* tack CFLAGS="$CFLAGS -I%{root}%{_incdir}" LDFLAGS="$LDFLAGS -L%{root}%{_libdir}" \ ./configure --with-ncursesw --enable-widec --prefix=$PWD LD_LIBRARY_PATH=%{root}%{_libdir} \ - make %{?_smp_mflags} TEST_ARGS='-lformw -lmenuw -lpanelw -lncursesw -lticw -ltinfow -Wl,--as-needed' - make install TEST_ARGS='-lformw -lmenuw -lpanelw -lncursesw -lticw -ltinfow -Wl,--as-needed' + make %{?_smp_mflags} TEST_ARGS='-lformw -lmenuw -lpanelw -lncursesw -lticw -l%{soname_tinfo} -Wl,--as-needed' + make install TEST_ARGS='-lformw -lmenuw -lpanelw -lncursesw -lticw -l%{soname_tinfo} -Wl,--as-needed' mv bin binw make distclean popd @@ -603,7 +618,8 @@ mv tack-* tack # must not use %jobs here (would lead to: ln: ncurses.h already exists) make install.libs install.includes DESTDIR=%{root} includedir=%{_incdir}/ncurses5 includesubdir=/ncurses libdir=%{_libdir}/ncurses5 ln -sf %{_incdir}/ncurses5/ncurses/{curses,ncurses,term}.h %{root}%{_incdir}/ncurses5/ - sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncurses5/ncurses -I%{_incdir}/ncurses5" --libs "-L%{_libdir}/ncurses5 -lncurses" --libs "-ltinfo" %{root}%{_bindir}/ncurses5-config + sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncurses5/ncurses -I%{_incdir}/ncurses5" --libs "-L%{_libdir}/ncurses5 -lncurses" \ + --libs "-ltinfo" %{root}%{_bindir}/ncurses5-config pushd man sh ../edit_man.sh normal installing %{root}%{_mandir} . ncurses5-config.1 popd @@ -656,7 +672,13 @@ mv tack-* tack make %{?_smp_mflags} # must not use %jobs here (would lead to: ln: ncurses.h already exists) make install.libs install.includes DESTDIR=%{root} includedir=%{_incdir} includesubdir=/ncurses libdir=%{_libdir} - sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncurses" --libs "-lncurses" --libs "-ltinfo" %{root}%{_bindir}/ncurses6-config +%if %{with onlytinfo} + # This ensures that we get the libtinfo *with* _nc_read_entry2 symbol as well + cp -p libtinfo.so.%{version}.back %{root}%{_libdir}/libtinfo.so.%{version} + cp -p libtinfow.so.%{version}.back %{root}%{_libdir}/libtinfow.so.%{version} +%endif + sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncurses" --libs "-lncurses" \ + --libs "-ltinfo" %{root}%{_bindir}/ncurses6-config pushd man sh ../edit_man.sh normal installing %{root}%{_mandir} . ncurses6-config.1 popd @@ -702,7 +724,7 @@ mv tack-* tack --disable-opaque-panel \ --disable-ext-mouse \ --enable-widec \ - --with-termlib=tinfow \ + --with-termlib=%{soname_tinfo} \ --with-ticlib=ticw \ %if %{with symversion} --with-versioned-syms=${PWD}/package/ncursesw.map \ @@ -723,7 +745,12 @@ mv tack-* tack s@^(includedir=).show_includedir@\1%{_incdir}/ncurses5/ncursesw@' misc/gen-pkgconfig # must not use %jobs here (would lead to: ln: ncurses.h already exists) make install.libs install.includes DESTDIR=%{root} includedir=%{_incdir}/ncurses5 includesubdir=/ncursesw libdir=%{_libdir}/ncurses5 - sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncurses5/ncursesw -I%{_incdir}/ncurses5" --libs "-L%{_libdir}/ncurses5 -lncursesw" --libs "-ltinfow" %{root}%{_bindir}/ncursesw5-config +%if %{with onlytinfo} + gcc $CFLAGS $LDFLAGS -fPIC -shared -Wl,--auxiliary=libtinfo.so.5,-soname,libtinfow.so.5,-stats,-lc \ + -Wl,--version-script,package/ncursesw.map -o %{root}%{_libdir}/libtinfow.so.5.9 +%endif + sh %{S:6} --cflags "-D_GNU_SOURCE -I%{_incdir}/ncurses5/ncursesw -I%{_incdir}/ncurses5" --libs "-L%{_libdir}/ncurses5 -lncursesw" \ + --libs "-l%{soname_tinfo}" %{root}%{_bindir}/ncursesw5-config pushd man sh ../edit_man.sh normal installing %{root}%{_mandir} . ncursesw5-config.1 popd @@ -763,7 +790,7 @@ mv tack-* tack libncursesw*) rm -f ${lnk} echo '/* GNU ld script */' > ${lnk} - echo "INPUT(${lib} AS_NEEDED(-ltinfow -ldl))" >> ${lnk} + echo "INPUT(${lib} AS_NEEDED(-l%{soname_tinfo} -ldl))" >> ${lnk} ;; libncurses*) rm -f ${lnk} @@ -792,7 +819,7 @@ mv tack-* tack libncursesw*) rm -f "${lnk}" echo '/* GNU ld script */' > ${lnk} - echo "INPUT(${lib} AS_NEEDED(-ltinfow))">> ${lnk} + echo "INPUT(${lib} AS_NEEDED(-l%{soname_tinfo}))">> ${lnk} ;; libncurses*) rm -f "${lnk}" @@ -824,7 +851,7 @@ mv tack-* tack rm -f ${lnk} echo '/* GNU ld script */' > ${lnk} echo 'SEARCH_DIR(%{_libdir}/ncurses5)' >> ${lnk} - echo "INPUT(${lib} AS_NEEDED(-ltinfow))">> ${lnk} + echo "INPUT(${lib} AS_NEEDED(-l%{soname_tinfo}))">> ${lnk} ;; libncurses*) rm -f ${lnk} @@ -957,6 +984,9 @@ mv tack-* tack %check LD_LIBRARY_PATH=%{buildroot}/%{_lib}:%{buildroot}%{_libdir} export LD_LIBRARY_PATH +%if %{with onlytinfo} +nm -D %{buildroot}/%{_lib}/libtinfo.so.%{version} | grep -q _nc_read_entry2 +%endif pushd test expect -d <<-'EOF' set env(TERM) xterm From 3319f2239cc7125eff87720e8ce1ed001d3fda7407e39c7a04b0b66d98dbc58e Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 2 Mar 2018 10:54:58 +0000 Subject: [PATCH 6/7] add bug bsc#1082772 OBS-URL: https://build.opensuse.org/package/show/Base:System/ncurses?expand=0&rev=362 --- ncurses.changes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ncurses.changes b/ncurses.changes index 12f9104..04d51f1 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -2,7 +2,7 @@ Fri Mar 2 10:00:20 UTC 2018 - werner@suse.de - Switch back to shared libtinfo only but provide an auxiliary shared - library libtinfow to avoid a rebuild of third party programs + library libtinfow to avoid a rebuild of third party programs (bsc#1082772) + Add sanity check if new 32bit API is included in libtinfo ------------------------------------------------------------------- From 31a9b31556fa136e5ba8d630c6b48f4b97886e8c6072aad7fb0a1715f80be058 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 5 Mar 2018 08:05:04 +0000 Subject: [PATCH 7/7] Add ncurses patch 6.1-20180303 OBS-URL: https://build.opensuse.org/package/show/Base:System/ncurses?expand=0&rev=363 --- ncurses-6.1-patches.tar.bz2 | 4 +-- ncurses-6.1-weakpthreads.dif | 47 ------------------------------------ ncurses-6.1.dif | 42 ++++++++++++++++---------------- ncurses.changes | 22 +++++++++++++++++ ncurses.spec | 10 +++----- 5 files changed, 49 insertions(+), 76 deletions(-) delete mode 100644 ncurses-6.1-weakpthreads.dif diff --git a/ncurses-6.1-patches.tar.bz2 b/ncurses-6.1-patches.tar.bz2 index 0cbe6dc..a71df9d 100644 --- a/ncurses-6.1-patches.tar.bz2 +++ b/ncurses-6.1-patches.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38925cefabc2edd8218b167cd480dcff24fe837e87fb3e95aec39a292c158d08 -size 82215 +oid sha256:0a949e2d78dc242d1ada722ff3b37b1f16b032d9c1525576c20b2f939dd0911b +size 91010 diff --git a/ncurses-6.1-weakpthreads.dif b/ncurses-6.1-weakpthreads.dif deleted file mode 100644 index c85d36a..0000000 --- a/ncurses-6.1-weakpthreads.dif +++ /dev/null @@ -1,47 +0,0 @@ -With ncurses-6.0-20170701.patch - - + improve compatibility between different configurations of new_prescr, - fixing a case with threaded code and term-driver where c++/demo did - not work (cf: 20160213). - -the pthread_self(3) function call had been called without checking if the -library libpthread has been linked. This break e.g. grub (boo#1058509) if -statically linked. - ---- - ncurses/tinfo/lib_setup.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - ---- ncurses/tinfo/lib_setup.c -+++ ncurses/tinfo/lib_setup.c 2018-03-01 10:58:23.280319133 +0000 -@@ -830,8 +830,9 @@ _nc_find_prescr(void) - { - SCREEN *result = 0; - PRESCREEN_LIST *p; -+ pthread_t id = ((pthread_self)) ? pthread_self() : (pthread_t)getpid(); - for (p = _nc_prescreen.allocated; p != 0; p = p->next) { -- if (p->id == pthread_self()) { -+ if (p->id == id) { - result = p->sp; - break; - } -@@ -848,8 +849,9 @@ NCURSES_EXPORT(void) - _nc_forget_prescr(void) - { - PRESCREEN_LIST *p, *q; -+ pthread_t id = ((pthread_self)) ? pthread_self() : (pthread_t)getpid(); - for (p = _nc_prescreen.allocated, q = 0; p != 0; q = p, p = p->next) { -- if (p->id == pthread_self()) { -+ if (p->id == id) { - if (q) { - q->next = p->next; - } else { -@@ -885,7 +887,7 @@ new_prescr(void) - #ifdef USE_PTHREADS - PRESCREEN_LIST *p = typeCalloc(PRESCREEN_LIST, 1); - if (p != 0) { -- p->id = pthread_self(); -+ p->id = ((pthread_self)) ? pthread_self() : (pthread_t)getpid(); - p->sp = sp; - p->next = _nc_prescreen.allocated; - _nc_prescreen.allocated = p; diff --git a/ncurses-6.1.dif b/ncurses-6.1.dif index d5654d4..2863dce 100644 --- a/ncurses-6.1.dif +++ b/ncurses-6.1.dif @@ -22,7 +22,7 @@ 20 files changed, 248 insertions(+), 81 deletions(-) --- aclocal.m4 -+++ aclocal.m4 2018-02-26 09:11:33.337001372 +0000 ++++ aclocal.m4 2018-03-05 07:53:48.984265229 +0000 @@ -580,7 +580,7 @@ AC_MSG_CHECKING([for size of bool]) AC_CACHE_VAL(cf_cv_type_of_bool,[ rm -f cf_test.out @@ -151,7 +151,7 @@ esac done --- configure -+++ configure 2018-02-26 09:11:33.341001297 +0000 ++++ configure 2018-03-05 07:53:48.988265152 +0000 @@ -5972,7 +5972,7 @@ case $cf_cv_system_name in fi ;; @@ -288,7 +288,7 @@ # the next lines are needed for linking libtic over libncurses TINFO_NAME=${LIB_NAME} --- include/curses.h.in -+++ include/curses.h.in 2018-02-26 09:11:33.341001297 +0000 ++++ include/curses.h.in 2018-03-05 07:53:48.992265076 +0000 @@ -177,6 +177,9 @@ typedef @cf_cv_typeof_chtype@ chtype; typedef @cf_cv_typeof_mmask_t@ mmask_t; #endif @@ -300,7 +300,7 @@ * We need FILE, etc. Include this before checking any feature symbols. */ --- include/termcap.h.in -+++ include/termcap.h.in 2018-02-26 09:11:33.341001297 +0000 ++++ include/termcap.h.in 2018-03-05 07:53:48.992265076 +0000 @@ -46,6 +46,8 @@ extern "C" { #endif /* __cplusplus */ @@ -311,7 +311,7 @@ #undef NCURSES_CONST --- include/tic.h -+++ include/tic.h 2018-02-26 09:11:33.341001297 +0000 ++++ include/tic.h 2018-03-05 07:53:48.992265076 +0000 @@ -221,12 +221,12 @@ struct alias */ @@ -328,7 +328,7 @@ #define CANCELLED_STRING (char *)(-1) --- man/man_db.renames -+++ man/man_db.renames 2018-02-26 09:11:33.341001297 +0000 ++++ man/man_db.renames 2018-03-05 07:53:48.992265076 +0000 @@ -163,6 +163,7 @@ term.7 term.7 term_variables.3x terminfo_variables.3ncurses terminfo.5 terminfo.5 @@ -346,7 +346,7 @@ # getty.1 getty.8 --- man/ncurses.3x -+++ man/ncurses.3x 2018-02-26 09:11:33.341001297 +0000 ++++ man/ncurses.3x 2018-03-05 07:53:48.992265076 +0000 @@ -138,6 +138,10 @@ after the shell environment variable \fB [See \fBterminfo\fR(\*n) for further details.] .SS Datatypes @@ -359,7 +359,7 @@ called \fIwindows\fR, which can be thought of as two-dimensional arrays of characters representing all or part of a CRT screen. --- misc/gen-pkgconfig.in -+++ misc/gen-pkgconfig.in 2018-02-26 09:11:33.345001222 +0000 ++++ misc/gen-pkgconfig.in 2018-03-05 07:53:48.992265076 +0000 @@ -76,7 +76,7 @@ if test "$includedir" != "/usr/include" fi @@ -399,7 +399,7 @@ echo "** creating ${name}${suffix}.pc" --- misc/ncurses-config.in -+++ misc/ncurses-config.in 2018-02-26 09:11:33.345001222 +0000 ++++ misc/ncurses-config.in 2018-03-05 07:53:48.992265076 +0000 @@ -100,7 +100,7 @@ while test $# -gt 0; do # compile/link --cflags) @@ -410,7 +410,7 @@ fi if test "${includedir}" != /usr/include ; then --- misc/terminfo.src -+++ misc/terminfo.src 2018-02-26 09:11:33.349001148 +0000 ++++ misc/terminfo.src 2018-03-05 07:53:48.996265000 +0000 @@ -301,7 +301,9 @@ dumb|80-column dumb tty, am, cols#80, @@ -795,7 +795,7 @@ s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154, ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display, --- ncurses/Makefile.in -+++ ncurses/Makefile.in 2018-02-26 09:11:33.349001148 +0000 ++++ ncurses/Makefile.in 2018-03-05 07:53:48.996265000 +0000 @@ -219,7 +219,7 @@ $(DESTDIR)$(libdir) : ../lib : ; mkdir $@ @@ -806,8 +806,8 @@ ./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@ --- ncurses/curses.priv.h -+++ ncurses/curses.priv.h 2018-02-26 09:11:33.349001148 +0000 -@@ -2150,6 +2150,8 @@ extern NCURSES_EXPORT(char *) _nc_tracec ++++ ncurses/curses.priv.h 2018-03-05 07:53:48.996265000 +0000 +@@ -2169,6 +2169,8 @@ extern NCURSES_EXPORT(char *) _nc_tracec extern NCURSES_EXPORT(char *) _nc_tracemouse (SCREEN *, MEVENT const *); extern NCURSES_EXPORT(char *) _nc_trace_mmask_t (SCREEN *, mmask_t); extern NCURSES_EXPORT(int) _nc_access (const char *, int); @@ -817,7 +817,7 @@ extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *); extern NCURSES_EXPORT(int) _nc_getenv_num (const char *); --- ncurses/run_cmd.sh -+++ ncurses/run_cmd.sh 2018-02-26 09:11:33.349001148 +0000 ++++ ncurses/run_cmd.sh 2018-03-05 07:53:48.996265000 +0000 @@ -0,0 +1,11 @@ +#!/bin/sh + @@ -831,7 +831,7 @@ + +exec ${1+"$@"} --- ncurses/tinfo/MKfallback.sh -+++ ncurses/tinfo/MKfallback.sh 2018-02-26 09:11:33.349001148 +0000 ++++ ncurses/tinfo/MKfallback.sh 2018-03-05 07:53:48.996265000 +0000 @@ -68,6 +68,12 @@ else tmp_info= fi @@ -864,7 +864,7 @@ done --- ncurses/tinfo/access.c -+++ ncurses/tinfo/access.c 2018-02-26 09:11:33.349001148 +0000 ++++ ncurses/tinfo/access.c 2018-03-05 07:53:48.996265000 +0000 @@ -35,6 +35,9 @@ #include @@ -907,7 +907,7 @@ _nc_access(const char *path, int mode) { --- ncurses/tinfo/lib_setup.c -+++ ncurses/tinfo/lib_setup.c 2018-02-26 09:11:33.353001073 +0000 ++++ ncurses/tinfo/lib_setup.c 2018-03-05 07:53:48.996265000 +0000 @@ -599,6 +599,9 @@ _nc_locale_breaks_acs(TERMINAL *termp) } else if ((value = tigetnum("U8")) >= 0) { result = value; /* use extension feature */ @@ -919,7 +919,7 @@ result = 1; /* always broken */ } else if (strstr(env, "screen") != 0 --- ncurses/tinfo/read_entry.c -+++ ncurses/tinfo/read_entry.c 2018-02-26 09:11:33.353001073 +0000 ++++ ncurses/tinfo/read_entry.c 2018-03-05 07:53:48.996265000 +0000 @@ -532,6 +532,7 @@ _nc_read_file_entry(const char *const fi FILE *fp = 0; int code; @@ -937,7 +937,7 @@ return (code); } --- ncurses/tinfo/read_termcap.c -+++ ncurses/tinfo/read_termcap.c 2018-02-26 09:11:33.353001073 +0000 ++++ ncurses/tinfo/read_termcap.c 2018-03-05 07:53:48.996265000 +0000 @@ -322,14 +322,18 @@ _nc_getent( */ if (fd >= 0) { @@ -984,7 +984,7 @@ } if (copied != 0) --- progs/Makefile.in -+++ progs/Makefile.in 2018-02-26 09:11:33.353001073 +0000 ++++ progs/Makefile.in 2018-03-05 07:53:48.996265000 +0000 @@ -100,7 +100,7 @@ CFLAGS_LIBTOOL = $(CCFLAGS) CFLAGS_NORMAL = $(CCFLAGS) CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE @@ -1004,7 +1004,7 @@ LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) --- test/test.priv.h -+++ test/test.priv.h 2018-02-26 09:11:33.353001073 +0000 ++++ test/test.priv.h 2018-03-05 07:53:48.996265000 +0000 @@ -910,12 +910,12 @@ extern char *strnames[], *strcodes[], *s #endif diff --git a/ncurses.changes b/ncurses.changes index 04d51f1..69d4f5e 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Mon Mar 5 07:48:43 UTC 2018 - werner@suse.de + +- Add ncurses patch 6.1-20180303 + + modify TurnOn/TurnOff macros in lib_vidattr.c and lib_vid_attr.c to + avoid expansion of "CUR" in trace. + + improve a few lintian warnings in test-packages. + + modify lib_setup to avoid calling pthread_self() without first + verifying that the address is valid, i.e., for weak symbols + (report/patch by Werner Fink). + + modify generated terminfo.5 to not use "expand" and related width + on the last column of tables, making layout on wide terminals look + better (adapted from patch by Kir Kolyshkin). + + add a category to report_offsets, e.g., "w" for wide-character, "t" + for threads to make the report more readable. Reorganized the + structures reported to make the categories more apparent. + + simplify some ifdef's for extended-colors. + + add NCURSES_GLOBALS and NCURSES_PRESCREEN to report_offsets, to show + how similar the different tinfo configurations are. +- Remove patch ncurses-6.1-weakpthreads.dif now upstream (bsc#1082772) +- Make expect build check less fragile on timing + ------------------------------------------------------------------- Fri Mar 2 10:00:20 UTC 2018 - werner@suse.de diff --git a/ncurses.spec b/ncurses.spec index 6ce10dd..1c9430b 100644 --- a/ncurses.spec +++ b/ncurses.spec @@ -74,7 +74,6 @@ Source6: edit.sed Source7: baselibs.conf Patch0: ncurses-6.1.dif Patch1: ncurses-5.9-ibm327x.dif -Patch2: ncurses-6.1-weakpthreads.dif Patch4: ncurses-5.7-tack.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _miscdir %{_datadir}/misc @@ -260,7 +259,6 @@ rm -fr tack tar -xzf %{S:5} mv tack-* tack %patch1 -p0 -b .327x -%patch2 -p0 -b .pth %patch4 -p0 -b .hs %patch0 -p0 -b .p0 @@ -990,7 +988,7 @@ nm -D %{buildroot}/%{_lib}/libtinfo.so.%{version} | grep -q _nc_read_entry2 pushd test expect -d <<-'EOF' set env(TERM) xterm - set timeout 10 + set timeout 20 spawn -noecho "binw/newdemo" send -- "x" sleep 5 @@ -999,11 +997,11 @@ pushd test send -- "x" sleep 5 send -- "q" - wait + wait -nowait EOF expect -d <<-'EOF' set env(TERM) xterm - set timeout 10 + set timeout 20 spawn -noecho "bin/newdemo" send -- "x" sleep 5 @@ -1012,7 +1010,7 @@ pushd test send -- "x" sleep 5 send -- "q" - wait + wait -nowait EOF popd %endif