Accepting request 1084217 from Base:System

- Do not overwrite PKG_CONFIG_PATH for new tack support

- Add ncurses patch 20230429
  + revise recent change to _nc_write_entry to isolate it to a Cygwin bug
    (cf: 20230311)
  + amend fix for wgetnstr, wgetn_wstr to use cbreak mode unless raw
    mode was set (cf: 20210522).
  + fix a few warnings from cppcheck, etc.
  + correct copy/paste error in nc_access.h (report by Werner Fink).
- Adopt patch ncurses-6.4-makeuseof_secure_open.dif
  * Fix yet an other copy/paste typo

- Add patch ncurses-6.4-makeuseof_secure_open.dif
  * Really make use of _nc_safe_fopen() and _nc_safe_open3()

- Add ncurses patch 20230424
  + check return value of _nc_save_str(), in special case for tic where
    extended capabilities are processed but the terminal description was
    not initialized (report by Ziqiao Kong).
  + regenerate llib-* files.

- Add ncurses patch 20230423 (boo#1210552)
  + add tiscan_s() to help applications check formatting capabilities
    that would be passed to tiparm_s, etc.
  + add tiparm_s() to provide applications a way to tell ncurses what
    the expected parameters are for a capability (tmux #3531).
  + improve check in lib_tparm.c, ensuring that a char* fits into a
    TPARM_ARG.
  + add --disable-setuid-environ configure option (request by Sven
    Joachim).

OBS-URL: https://build.opensuse.org/request/show/1084217
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ncurses?expand=0&rev=238
This commit is contained in:
Dominique Leuenberger 2023-05-04 15:09:00 +00:00 committed by Git OBS Bridge
commit cb88526870
5 changed files with 143 additions and 41 deletions

View File

@ -0,0 +1,15 @@
---
include/nc_access.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- include/nc_access.h
+++ include/nc_access.h 2023-05-02 07:38:17.837330114 +0000
@@ -64,7 +64,7 @@ extern NCURSES_EXPORT(int) _nc_env_acces
#else
#define safe_fopen(name,mode) _nc_safe_fopen(name,mode)
-#define safe_open2(name,flags) _nc_safe_open2(name,flags,0)
+#define safe_open2(name,flags) _nc_safe_open3(name,flags,0)
#define safe_open3(name,flags,mode) _nc_safe_open3(name,flags,mode)
extern NCURSES_EXPORT(FILE *) _nc_safe_fopen (const char *, const char *);
extern NCURSES_EXPORT(int) _nc_safe_open3 (const char *, int, mode_t);

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:10e3f68a2278238977619b02d30b1dd23903cb6ab03ab0fe5fd3979a04851d3f
size 550221
oid sha256:b4a58a90340459329eb97ac6e72c827bf8ed4dc38742fee24f7e016d1fcb44ad
size 637246

View File

@ -18,8 +18,8 @@
16 files changed, 207 insertions(+), 70 deletions(-)
--- aclocal.m4
+++ aclocal.m4 2023-01-23 13:06:54.872588922 +0000
@@ -6004,12 +6004,15 @@ cat >>$cf_edit_man <<CF_EOF
+++ aclocal.m4 2023-04-24 06:50:39.671979319 +0000
@@ -5992,12 +5992,15 @@ cat >>$cf_edit_man <<CF_EOF
echo "? missing rename for \$cf_source"
cf_target="\$cf_source"
fi
@ -37,7 +37,7 @@
sed -f "$cf_man_alias" \\
CF_EOF
@@ -6019,7 +6022,7 @@ cat >>$cf_edit_man <<CF_EOF
@@ -6007,7 +6010,7 @@ cat >>$cf_edit_man <<CF_EOF
CF_EOF
else
cat >>$cf_edit_man <<CF_EOF
@ -46,7 +46,7 @@
CF_EOF
fi
@@ -6059,7 +6062,7 @@ cat >>$cf_edit_man <<CF_EOF
@@ -6047,7 +6050,7 @@ cat >>$cf_edit_man <<CF_EOF
mv \$TMP.$cf_manpage_so_strip \$TMP
fi
fi
@ -55,7 +55,7 @@
CF_EOF
fi
@@ -6068,23 +6071,23 @@ case "$MANPAGE_FORMAT" in
@@ -6056,23 +6059,23 @@ case "$MANPAGE_FORMAT" in
cat >>$cf_edit_man <<CF_EOF
if test "\$form" = format ; then
# BSDI installs only .0 suffixes in the cat directories
@ -85,7 +85,7 @@
for cf_alias in \$aliases
do
if test "\$section" = 1 ; then
@@ -6093,7 +6096,7 @@ cat >>$cf_edit_man <<CF_EOF
@@ -6081,7 +6084,7 @@ cat >>$cf_edit_man <<CF_EOF
if test "$MANPAGE_SYMLINKS" = yes ; then
if test -f "\$cf_alias\${suffix}" ; then
@ -94,7 +94,7 @@
then
continue
fi
@@ -6103,18 +6106,18 @@ CF_EOF
@@ -6091,18 +6094,18 @@ CF_EOF
case "x$LN_S" in
(*-f)
cat >>$cf_edit_man <<CF_EOF
@ -116,7 +116,7 @@
echo ".so \$cf_source" >\$TMP
CF_EOF
if test -n "$cf_manpage_compress" ; then
@@ -6134,9 +6137,9 @@ cat >>$cf_edit_man <<CF_EOF
@@ -6122,9 +6125,9 @@ cat >>$cf_edit_man <<CF_EOF
)
)
elif test "\$verb" = removing ; then
@ -129,7 +129,7 @@
)
test -d "\$cf_subdir\${section}" &&
test -n "\$aliases" && (
@@ -6156,6 +6159,7 @@ cat >>$cf_edit_man <<CF_EOF
@@ -6144,6 +6147,7 @@ cat >>$cf_edit_man <<CF_EOF
# echo ".hy 0"
cat \$TMP
fi
@ -138,8 +138,8 @@
esac
done
--- configure
+++ configure 2023-01-23 13:08:03.243347215 +0000
@@ -6463,7 +6463,7 @@ echo $ECHO_N "checking for an rpath opti
+++ configure 2023-04-24 06:52:13.042243156 +0000
@@ -6437,7 +6437,7 @@ echo $ECHO_N "checking for an rpath opti
fi
;;
(linux*|gnu*|k*bsd*-gnu|freebsd*)
@ -148,7 +148,7 @@
;;
(openbsd[2-9].*|mirbsd*)
LD_RPATH_OPT="-Wl,-rpath,"
@@ -6836,8 +6836,8 @@ echo "${ECHO_T}$cf_cv_ldflags_search_pat
@@ -6810,8 +6810,8 @@ echo "${ECHO_T}$cf_cv_ldflags_search_pat
else
cf_cv_shared_soname='`basename $@`'
fi
@ -159,7 +159,7 @@
;;
(mingw*msvc*)
cf_cv_shlib_version=msvcdll
@@ -8076,7 +8076,7 @@ echo "${ECHO_T}$with_pcre2" >&6
@@ -8050,7 +8050,7 @@ echo "${ECHO_T}$with_pcre2" >&6
if test "x$with_pcre2" != xno ; then
cf_with_pcre2_ok=no
@ -168,7 +168,7 @@
do
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$cf_with_pcre2"; then
@@ -15245,12 +15245,15 @@ cat >>$cf_edit_man <<CF_EOF
@@ -15236,12 +15236,15 @@ cat >>$cf_edit_man <<CF_EOF
echo "? missing rename for \$cf_source"
cf_target="\$cf_source"
fi
@ -186,7 +186,7 @@
sed -f "$cf_man_alias" \\
CF_EOF
@@ -15260,7 +15263,7 @@ cat >>$cf_edit_man <<CF_EOF
@@ -15251,7 +15254,7 @@ cat >>$cf_edit_man <<CF_EOF
CF_EOF
else
cat >>$cf_edit_man <<CF_EOF
@ -195,7 +195,7 @@
CF_EOF
fi
@@ -15300,7 +15303,7 @@ cat >>$cf_edit_man <<CF_EOF
@@ -15291,7 +15294,7 @@ cat >>$cf_edit_man <<CF_EOF
mv \$TMP.$cf_manpage_so_strip \$TMP
fi
fi
@ -204,7 +204,7 @@
CF_EOF
fi
@@ -15309,23 +15312,23 @@ case "$MANPAGE_FORMAT" in
@@ -15300,23 +15303,23 @@ case "$MANPAGE_FORMAT" in
cat >>$cf_edit_man <<CF_EOF
if test "\$form" = format ; then
# BSDI installs only .0 suffixes in the cat directories
@ -234,7 +234,7 @@
for cf_alias in \$aliases
do
if test "\$section" = 1 ; then
@@ -15334,7 +15337,7 @@ cat >>$cf_edit_man <<CF_EOF
@@ -15325,7 +15328,7 @@ cat >>$cf_edit_man <<CF_EOF
if test "$MANPAGE_SYMLINKS" = yes ; then
if test -f "\$cf_alias\${suffix}" ; then
@ -243,7 +243,7 @@
then
continue
fi
@@ -15344,18 +15347,18 @@ CF_EOF
@@ -15335,18 +15338,18 @@ CF_EOF
case "x$LN_S" in
(*-f)
cat >>$cf_edit_man <<CF_EOF
@ -265,7 +265,7 @@
echo ".so \$cf_source" >\$TMP
CF_EOF
if test -n "$cf_manpage_compress" ; then
@@ -15375,9 +15378,9 @@ cat >>$cf_edit_man <<CF_EOF
@@ -15366,9 +15369,9 @@ cat >>$cf_edit_man <<CF_EOF
)
)
elif test "\$verb" = removing ; then
@ -278,7 +278,7 @@
)
test -d "\$cf_subdir\${section}" &&
test -n "\$aliases" && (
@@ -15397,6 +15400,7 @@ cat >>$cf_edit_man <<CF_EOF
@@ -15388,6 +15391,7 @@ cat >>$cf_edit_man <<CF_EOF
# echo ".hy 0"
cat \$TMP
fi
@ -336,7 +336,7 @@
#define CANCELLED_STRING (char *)(-1)
--- man/man_db.renames.in
+++ man/man_db.renames.in 2023-01-23 13:00:47.039268881 +0000
+++ man/man_db.renames.in 2023-04-24 06:54:39.255524459 +0000
@@ -164,6 +164,7 @@ term.7 term.7
term_variables.3x terminfo_variables.3ncurses
terminfo.5 terminfo.5
@ -350,9 +350,9 @@
#
# Other:
+tack.1 tack.1
tack.1m tack.1
#
getty.1 getty.8
scanf.3 scanf.3
ttys.5 ttys.4
--- man/ncurses.3x
+++ man/ncurses.3x 2023-01-23 13:00:47.039268881 +0000
@@ -139,6 +139,10 @@ after the shell environment variable \fB
@ -806,7 +806,7 @@
--- test/test.priv.h
+++ test/test.priv.h 2023-01-23 13:00:47.043268809 +0000
@@ -1135,12 +1135,12 @@ extern char *_nc_strstr(const char *, co
@@ -1154,12 +1154,12 @@ extern char *_nc_strstr(const char *, co
#endif
/* out-of-band values for representing absent capabilities */

View File

@ -1,3 +1,52 @@
-------------------------------------------------------------------
Wed May 3 08:47:27 UTC 2023 - Dr. Werner Fink <werner@suse.de>
- Do not overwrite PKG_CONFIG_PATH for new tack support
-------------------------------------------------------------------
Tue May 2 07:41:13 UTC 2023 - Dr. Werner Fink <werner@suse.de>
- Add ncurses patch 20230429
+ revise recent change to _nc_write_entry to isolate it to a Cygwin bug
(cf: 20230311)
+ amend fix for wgetnstr, wgetn_wstr to use cbreak mode unless raw
mode was set (cf: 20210522).
+ fix a few warnings from cppcheck, etc.
+ correct copy/paste error in nc_access.h (report by Werner Fink).
- Adopt patch ncurses-6.4-makeuseof_secure_open.dif
* Fix yet an other copy/paste typo
-------------------------------------------------------------------
Wed Apr 26 12:14:24 UTC 2023 - Dr. Werner Fink <werner@suse.de>
- Add patch ncurses-6.4-makeuseof_secure_open.dif
* Really make use of _nc_safe_fopen() and _nc_safe_open3()
-------------------------------------------------------------------
Tue Apr 25 06:06:23 UTC 2023 - Dr. Werner Fink <werner@suse.de>
- Add ncurses patch 20230424
+ check return value of _nc_save_str(), in special case for tic where
extended capabilities are processed but the terminal description was
not initialized (report by Ziqiao Kong).
+ regenerate llib-* files.
-------------------------------------------------------------------
Mon Apr 24 06:41:58 UTC 2023 - Dr. Werner Fink <werner@suse.de>
- Add ncurses patch 20230423 (boo#1210552)
+ add tiscan_s() to help applications check formatting capabilities
that would be passed to tiparm_s, etc.
+ add tiparm_s() to provide applications a way to tell ncurses what
the expected parameters are for a capability (tmux #3531).
+ improve check in lib_tparm.c, ensuring that a char* fits into a
TPARM_ARG.
+ add --disable-setuid-environ configure option (request by Sven
Joachim).
+ drop compatibility with obsolete versions of tack, e.g., pre-1.08
(Debian #1034549, cf: 20170722).
- Build tack on the own way as ncurses upstream drop build within support
-------------------------------------------------------------------
Wed Apr 19 09:16:10 UTC 2023 - Dr. Werner Fink <werner@suse.de>

View File

@ -34,8 +34,10 @@
%global soname_tinfo tinfow
%endif
%define patchlvl %(bash %{_sourcedir}/get_version_number.sh %{_sourcedir})
%define basevers 6.4
%global patchlvl %(bash %{_sourcedir}/get_version_number.sh %{_sourcedir})
%global basevers 6.4
%global tackvers 1.09
%global tacklvl 20221229
Name: ncurses
#!BuildIgnore: terminfo
@ -87,17 +89,18 @@ Source2: handle.linux
Source3: README.devel
Source4: ncurses-rpmlintrc
# Latest tack can be found at ftp://ftp.invisible-island.net/pub/ncurses/current/
Source5: https://www.invisible-island.net/archives/ncurses/current/tack-1.09-20221229.tgz
Source5: https://www.invisible-island.net/archives/ncurses/current/tack-%{tackvers}-%{tacklvl}.tgz
Source6: edit.sed
Source7: baselibs.conf
Source8: cursescheck
Source9: https://www.invisible-island.net/archives/ncurses/ncurses-%{basevers}.tar.gz.asc
Source10: https://www.invisible-island.net/archives/ncurses/current/tack-1.09-20221229.tgz.asc
Source10: https://www.invisible-island.net/archives/ncurses/current/tack-%{tackvers}-%{tacklvl}.tgz.asc
Source11: ncurses.keyring
Patch0: ncurses-6.4.dif
Patch1: ncurses-5.9-ibm327x.dif
Patch2: ncurses-5.7-tack.dif
Patch3: FORTIFY_SOURCE_3-fix.patch
Patch4: ncurses-6.4-makeuseof_secure_open.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global _miscdir %{_datadir}/misc
%global _incdir %{_includedir}
@ -316,11 +319,12 @@ This package contains the static library files for
the ncurses library in its ABI version 5 form.
%package -n tack
Version: %{tackvers}.%{tacklvl}
Summary: Terminfo action checker
License: GPL-2.0-or-later
Group: Development/Tools/Building
Provides: ncurses-devel:%{_bindir}/tack
Requires: ncurses = %{version}-%{release}
Requires: ncurses = %{basevers}.%{patchlvl}
%description -n tack
This package contains the tack utility to help to build a new terminfo
@ -349,6 +353,7 @@ rm -fr tack
mv tack-* tack
%patch1 -p0 -b .327x
%patch2 -p0 -b .hs
%patch4 -p0
%patch0 -p0 -b .p0
%patch3 -p1
@ -369,6 +374,7 @@ mv tack-* tack
#
CFLAGS_SHARED="%{_lto_cflags_shared}"
export CFLAGS_SHARED
%global configtack %configure
%global _configure screen -D -m ./configure
SCREENDIR=$(mktemp -d ${PWD}/screen.XXXXXX) || exit 1
SCREENRC=${SCREENDIR}/ncurses
@ -532,6 +538,7 @@ export CFLAGS_SHARED
--disable-stripping \
--disable-root-access \
--disable-root-environ \
--disable-setuid-environ\
--disable-termcap \
--disable-overwrite \
--disable-rpath \
@ -669,8 +676,12 @@ export CFLAGS_SHARED
rm -vf %{root}%{_libdir}/pkgconfig/tinfo.pc
mv -vf %{root}%{_libdir}/pkgconfig/*.pc pc/
sed -ri 's@^(Requires.private:).*@\1@' pc/*.pc
bash %{S:6} --cflags "$(pkg-config --cflags ncursesw)" --libs "$(pkg-config --libs ncursesw)" \
%{root}%{_bindir}/ncursesw6-config
echo $PKG_CONFIG_PATH
what=ncursesw
cflags="$(pkg-config --cflags $what)"
libs="$(pkg-config --libs $what)"
test -n "$cflags" -a -n "$libs" || exit 1
bash %{S:6} --cflags "${cflags%%%% }" --libs "${libs%%%% }" %{root}%{_bindir}/${what}6-config
#
# Some tests
@ -684,6 +695,17 @@ export CFLAGS_SHARED
LD_LIBRARY_PATH=$PWD/lib
export LD_LIBRARY_PATH PATH
pushd tack/
OCFLAGS="$CFLAGS"
OLDFLAGS="$LDFLAGS"
OPKG_CONFIG_PATH="$PKG_CONFIG_PATH"
CFLAGS="$CFLAGS -I%{root}%{_incdir}/ncursesw/ -I%{root}%{_incdir}/ -fPIE" \
LDFLAGS="$LDFLAGS -Wl,-rpath-link=%{root}%{_libdir} -L%{root}%{_libdir} -pie" \
PKG_CONFIG_PATH=${PWD}/../pc/ \
%configtack --with-ncursesw --disable-rpath-hack
make %{?_smp_mflags}
CFLAGS="$OCFLAGS"
LDFLAGS="$OLDFLAGS"
PKG_CONFIG_PATH="$OPKG_CONFIG_PATH"
ldd ./tack
popd
unset LD_LIBRARY_PATH
@ -706,11 +728,14 @@ export CFLAGS_SHARED
make install DESTDIR=${PWD} INSTALL_PROG=install TEST_ARGS='-lformw -lmenuw -lpanelw -lncursesw -lticw -l%{soname_tinfo} -Wl,--as-needed' TEST_LIBS='-lutil -lpthread'
%endif
mv usr usr.back
cp Makefile Makefile.back
cp Makefile Makefile.back
make distclean
popd
%endif
%endif
pushd tack/
make install DESTDIR=%{root} INSTALL_PROG=install
popd
test ! -L tack || rm -f tack
make clean
#
@ -775,8 +800,12 @@ includedir5=%{_incdir}/ncurses5' "$pc"
sed -ri 's@^(Cflags:.*)(-I.*)@\1-I${includedir5} \2@' pc/${base}5.pc
sed -ri 's@^(Requires.private:).*@\1@' pc/${base}5.pc
done
bash %{S:6} --cflags "$(pkg-config --cflags ncurses5)" --libs "$(pkg-config --libs ncurses5)" \
%{root}%{_bindir}/ncurses5-config
echo $PKG_CONFIG_PATH
what=ncurses5
cflags="$(pkg-config --cflags $what)"
libs="$(pkg-config --libs $what)"
test -n "$cflags" -a -n "$libs" || exit 1
bash %{S:6} --cflags "${cflags%%%% }" --libs "${libs%%%% }" %{root}%{_bindir}/${what}-config
#
# Now use --disable-widec for narrow character support.
@ -827,8 +856,13 @@ includedir5=%{_incdir}/ncurses5' "$pc"
popd
mv -f %{root}%{_libdir}/pkgconfig/*.pc pc/
sed -ri 's@^(Requires.private:).*@\1@' pc/*.pc
bash %{S:6} --cflags "$(pkg-config --cflags ncurses)" --libs "$(pkg-config --libs ncurses)" \
%{root}%{_bindir}/ncurses6-config
echo $PKG_CONFIG_PATH
what=ncurses
cflags="$(pkg-config --cflags $what)"
libs="$(pkg-config --libs $what)"
test -n "$cflags" -a -n "$libs" || exit 1
bash %{S:6} --cflags "${cflags%%%% }" --libs "${libs%%%% }" %{root}%{_bindir}/${what}6-config
#
# Some tests
#
@ -927,8 +961,12 @@ includedir5=%{_incdir}/ncurses5' "$pc"
sed -ri 's@^(Cflags:.*)(-I.*)@\1-I${includedir5} \2@' pc/${base}5.pc
sed -ri 's@^(Requires.private:).*@\1@' pc/${base}5.pc
done
bash %{S:6} --cflags "$(pkg-config --cflags ncursesw5)" --libs "$(pkg-config --libs ncursesw5)" \
%{root}%{_bindir}/ncursesw5-config
echo $PKG_CONFIG_PATH
what=ncursesw5
cflags="$(pkg-config --cflags $what)"
libs="$(pkg-config --libs $what)"
test -n "$cflags" -a -n "$libs" || exit 1
bash %{S:6} --cflags "${cflags%%%% }" --libs "${libs%%%% }" %{root}%{_bindir}/${what}-config
%install
%if %{with usepcre2}