rebuilt with --with-versioned-syms and .so files modified so that widec library is always linked [release 6.3-2mamba;Sat Feb 12 2022]

This commit is contained in:
Silvan Calarco 2024-01-06 07:33:59 +01:00
parent f0c75494bc
commit 7109c50eb9
3 changed files with 131 additions and 31 deletions

58
ncurses-6.3-libs.patch Normal file
View File

@ -0,0 +1,58 @@
diff -ruN a/c++/Makefile.in b/c++/Makefile.in
--- a/c++/Makefile.in 2021-07-03 20:53:57.000000000 +0200
+++ b/c++/Makefile.in 2021-11-03 10:58:04.147647447 +0100
@@ -118,7 +118,7 @@
-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@
LIBROOT = ncurses++
@@ -157,8 +157,7 @@
LDFLAGS_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@)
# flags for library built by this makefile
-LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
- @LD_MODEL@ $(TEST_LIBS) @LIBS@ $(CXXLIBS)
+LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@ $(CXXLIBS)
AUTO_SRC = \
etip.h
diff -ruN a/form/Makefile.in b/form/Makefile.in
--- a/form/Makefile.in 2021-07-03 17:45:33.000000000 +0200
+++ b/form/Makefile.in 2021-11-03 10:58:45.301114373 +0100
@@ -110,7 +110,7 @@
LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
SHLIB_DIRS = -L../lib
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@USE_LIB_SUFFIX@ @SHLIB_LIST@
+SHLIB_LIST = $(SHLIB_DIRS) -lncurses@USE_LIB_SUFFIX@
RPATH_LIST = @RPATH_LIST@
RESULTING_SYMS = @RESULTING_SYMS@
diff -ruN a/menu/Makefile.in b/menu/Makefile.in
--- a/menu/Makefile.in 2021-07-03 17:45:33.000000000 +0200
+++ b/menu/Makefile.in 2021-11-03 10:58:59.461160284 +0100
@@ -110,7 +110,7 @@
LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
SHLIB_DIRS = -L../lib
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@USE_LIB_SUFFIX@ @SHLIB_LIST@
+SHLIB_LIST = $(SHLIB_DIRS) -lncurses@USE_LIB_SUFFIX@
RPATH_LIST = @RPATH_LIST@
RESULTING_SYMS = @RESULTING_SYMS@
diff -ruN a/panel/Makefile.in b/panel/Makefile.in
--- a/panel/Makefile.in 2021-07-03 17:45:33.000000000 +0200
+++ b/panel/Makefile.in 2021-11-03 10:59:33.957938691 +0100
@@ -112,7 +112,7 @@
LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
SHLIB_DIRS = -L../lib
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@USE_LIB_SUFFIX@ @SHLIB_LIST@
+SHLIB_LIST = $(SHLIB_DIRS) -lncurses@USE_LIB_SUFFIX@
RPATH_LIST = @RPATH_LIST@
RESULTING_SYMS = @RESULTING_SYMS@

View File

@ -0,0 +1,24 @@
diff -ruN a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
--- a/misc/gen-pkgconfig.in 2021-08-07 23:36:33.000000000 +0200
+++ b/misc/gen-pkgconfig.in 2021-11-03 11:12:51.127160950 +0100
@@ -83,7 +83,7 @@
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 -ruN a/misc/ncurses-config.in b/misc/ncurses-config.in
--- a/misc/ncurses-config.in 2021-08-07 23:36:14.000000000 +0200
+++ b/misc/ncurses-config.in 2021-11-03 11:26:12.393533954 +0100
@@ -101,7 +101,7 @@
# 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 -L$libdir $LIBS
do
case $opt in
-specs*) # ignore linker specs-files which were used to build library

View File

@ -1,21 +1,16 @@
%define major %(echo %version | cut -d. -f 1) %define majver %(echo %version | cut -d. -f 1)
%define majver %(echo %version | cut -d. -f 1-2)
%define patchver %(echo %version | cut -d. -f 3)
%define tack_ver 1.07
Name: ncurses Name: ncurses
Version: 6.3 Version: 6.3
Release: 1mamba Release: 2mamba
Summary: A CRT screen handling and optimization package Summary: A CRT screen handling and optimization package
Group: System/Libraries Group: System/Libraries
Vendor: openmamba Vendor: openmamba
Distribution: openmamba Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it> Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: https://directory.fsf.org/wiki/GNU/ncurses URL: https://invisible-island.net/ncurses/ncurses.html
Source0: https://invisible-mirror.net/archives/ncurses/ncurses-%{majver}.tar.gz Source0: https://invisible-mirror.net/archives/ncurses/ncurses-%{version}.tar.gz
#Source0: http://ftp.gnu.org/pub/gnu/ncurses/ncurses-%{majver}.tar.gz Patch0: ncurses-6.3-libs.patch
%if "%{?patchver}" != "" Patch1: ncurses-6.3-pkgconfig.patch
#Source99: ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-%{patchver}.patch.gz
%endif
License: MIT License: MIT
## AUTOBUILDREQ-BEGIN ## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel BuildRequires: glibc-devel
@ -25,7 +20,7 @@ BuildRequires: emacs >= 21.3
BuildRequires: libgpm-devel >= 1.20.1 BuildRequires: libgpm-devel >= 1.20.1
BuildRequires: sharutils >= 4.2.1 BuildRequires: sharutils >= 4.2.1
%endif %endif
Requires: libncurses = %{version}-%{release} Requires: libncurses = %{?epoch:%epoch:}%{version}-%{release}
%description %description
The curses library routines are a terminal-independent method of updating character screens with reasonalble optimization. The ncurses (new curses) library is a freely distributable replacement for the discontinued 4.4BSD classic curses library. The curses library routines are a terminal-independent method of updating character screens with reasonalble optimization. The ncurses (new curses) library is a freely distributable replacement for the discontinued 4.4BSD classic curses library.
@ -33,7 +28,7 @@ The curses library routines are a terminal-independent method of updating charac
%package terminfo %package terminfo
Summary: Extra terminal information files Summary: Extra terminal information files
Group: System/Libraries Group: System/Libraries
Requires: libncurses = %{version}-%{release} Requires: libncurses = %{?epoch:%epoch:}%{version}-%{release}
Provides: ncurses-terminfo-extras Provides: ncurses-terminfo-extras
Obsoletes: ncurses-terminfo-extras < 6.3 Obsoletes: ncurses-terminfo-extras < 6.3
@ -44,10 +39,12 @@ Extra terminal information files.
Summary: The development files for applications which use ncurses Summary: The development files for applications which use ncurses
Group: System/Libraries Group: System/Libraries
Requires: ncurses-terminfo Requires: ncurses-terminfo
%ifarch x86_64 %ifarch x86_64 aarch64
Provides: libtinfo.so.6()(64bit) Provides: libtinfo.so.6()(64bit)
Provides: libtinfo.so.6(NCURSES6_TINFO_5.0.19991023)(64bit)
%else %else
Provides: libtinfo.so.6 Provides: libtinfo.so.6
Provides: libtinfo.so.6(NCURSES6_TINFO_5.0.19991023)
%endif %endif
%description -n libncurses %description -n libncurses
@ -55,7 +52,7 @@ The curses library routines are a terminal-independent method of updating charac
%package -n libncurses-devel %package -n libncurses-devel
Summary: The development files for applications which use ncurses Summary: The development files for applications which use ncurses
Group: Development/Libraries Group: Demore cvelopment/Libraries
Requires: libncurses = %{version}-%{release} Requires: libncurses = %{version}-%{release}
%description -n libncurses-devel %description -n libncurses-devel
@ -64,16 +61,14 @@ The header files and libraries for developing applications that use the ncurses
%debug_package %debug_package
%prep %prep
%setup -q -n %{name}-%{majver} %setup -q
#-D -T
#:<< _EOF
%if "%{?patchver}" != "" # Do not link against test libraries
#gunzip -c %{SOURCE99} | patch -p1 %patch0 -p1 -b .libs
%endif # Do not leak build-time LDFLAGS into the pkgconfig files
%patch1 -p1 -b .pkgconfig
%build %build
#:<< _EOF
mkdir narrowc widec mkdir narrowc widec
cd narrowc cd narrowc
ln -s ../configure . ln -s ../configure .
@ -90,6 +85,7 @@ ln -s ../configure .
--enable-getcap \ --enable-getcap \
--enable-pc-files \ --enable-pc-files \
--with-ticlib \ --with-ticlib \
--with-versioned-syms \
%if "%{stage1}" == "1" %if "%{stage1}" == "1"
CPPFLAGS="-ldl" CPPFLAGS="-ldl"
%endif %endif
@ -100,12 +96,12 @@ ln -s ../configure .
cd ../widec cd ../widec
ln -s ../configure . ln -s ../configure .
%configure \ %configure \
--enable-widec \
--with-pkg-config-libdir=%{_libdir}/pkgconfig \ --with-pkg-config-libdir=%{_libdir}/pkgconfig \
--with-install-prefix=%{buildroot} \ --with-install-prefix=%{buildroot} \
--with-normal \ --with-normal \
--with-shared \ --with-shared \
--with-gpm \ --with-gpm \
--enable-widec \
--with-build-cc="%{_build}-gcc -D_GNU_SOURCE" \ --with-build-cc="%{_build}-gcc -D_GNU_SOURCE" \
--without-debug \ --without-debug \
--without-profile \ --without-profile \
@ -113,6 +109,7 @@ ln -s ../configure .
--enable-getcap \ --enable-getcap \
--enable-pc-files \ --enable-pc-files \
--with-ticlib \ --with-ticlib \
--with-versioned-syms \
%if "%{stage1}" == "1" %if "%{stage1}" == "1"
CPPFLAGS="-ldl" CPPFLAGS="-ldl"
%endif %endif
@ -152,14 +149,32 @@ ln -sf ../l/linux %{buildroot}%{_datadir}/terminfo/c/console
#ln -sf /%{_lib}/libncursesw.so.5 %{buildroot}%{_libdir}/libncursesw.so #ln -sf /%{_lib}/libncursesw.so.5 %{buildroot}%{_libdir}/libncursesw.so
#ln -sf /%{_lib}/libncursesw.so.5 %{buildroot}%{_libdir}/libcursesw.so #ln -sf /%{_lib}/libncursesw.so.5 %{buildroot}%{_libdir}/libcursesw.so
ln -sf libncurses.a %{buildroot}%{_libdir}/libcurses.a ln -sf libncursesw.a %{buildroot}%{_libdir}/libcurses.a
ln -sf libncursesw.a %{buildroot}%{_libdir}/libcursesw.a ln -sf libncursesw.a %{buildroot}%{_libdir}/libcursesw.a
ln -sf libncurses.so.6 %{buildroot}%{_libdir}/libtinfo.so.6 # From Arch Linux:
ln -sf libncurses.so.6 %{buildroot}%{_libdir}/libtinfo.so # fool packages looking to link to non-wide-character ncurses libraries
for lib in ncurses ncurses++ form panel menu; do
rm -f %{buildroot}%{_libdir}/lib${lib}.so
printf "INPUT(-l%sw)\n" "${lib}" > %{buildroot}%{_libdir}/lib${lib}.so
ln -sfv ${lib}w.pc %{buildroot}%{_libdir}/pkgconfig/${lib}.pc
done
# some packages look for -lcurses during build
printf 'INPUT(-lncursesw)\n' > %{buildroot}%{_libdir}/libcursesw.so
ln -sfv libncurses.so %{buildroot}%{_libdir}/libcurses.so
# fix strange permissions # tic and ticinfo functionality is built in by default
chmod 755 %{buildroot}/%{_libdir}/*.so.* # make sure that anything linking against it links against libncursesw.so instead
for lib in tic tinfo; do
rm -f %{buildroot}%{_libdir}/lib${lib}.so
printf "INPUT(libncursesw.so.%s)\n" "%{majver}" > %{buildroot}%{_libdir}/lib${lib}.so
ln -sfv libncursesw.so.%{majver} %{buildroot}%{_libdir}/lib${lib}.so.%{majver}
ln -sfv ncursesw.pc %{buildroot}%{_libdir}/pkgconfig/${lib}.pc
done
## fix strange permissions
#chmod 755 %{buildroot}/%{_libdir}/*.so.*
#DEFAULT_TERMINFOS="\ #DEFAULT_TERMINFOS="\
#ansi ansi-m console dumb color_xterm linux pcansi-m screen vt52 vt100 vt102 vt220 \ #ansi ansi-m console dumb color_xterm linux pcansi-m screen vt52 vt100 vt102 vt220 \
@ -226,8 +241,8 @@ fi
%files -n libncurses-devel %files -n libncurses-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_bindir}/ncurses%{major}-config %{_bindir}/ncurses%{majver}-config
%{_bindir}/ncursesw%{major}-config %{_bindir}/ncursesw%{majver}-config
%{_datadir}/tabset/* %{_datadir}/tabset/*
%{_includedir}/* %{_includedir}/*
%{_libdir}/lib*.so %{_libdir}/lib*.so
@ -244,7 +259,7 @@ fi
%{_libdir}/pkgconfig/panelw.pc %{_libdir}/pkgconfig/panelw.pc
%{_libdir}/pkgconfig/tic.pc %{_libdir}/pkgconfig/tic.pc
%{_libdir}/pkgconfig/ticw.pc %{_libdir}/pkgconfig/ticw.pc
#%{_libdir}/pkgconfig/tinfo.pc %{_libdir}/pkgconfig/tinfo.pc
%{_mandir}/man3/* %{_mandir}/man3/*
%doc doc/html/hackguide.html %doc doc/html/hackguide.html
%doc doc/html/ncurses-intro.html %doc doc/html/ncurses-intro.html
@ -257,6 +272,9 @@ fi
%{_datadir}/terminfo/* %{_datadir}/terminfo/*
%changelog %changelog
* Sat Feb 12 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 6.3-2mamba
- rebuilt with --with-versioned-syms and .so files modified so that widec library is always linked
* Sun Oct 31 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 6.3-1mamba * Sun Oct 31 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 6.3-1mamba
- update to 6.3.20211021 - update to 6.3.20211021