[arch-commits] Commit in lib32-ncurses/trunk (3 files)

David Runge dvzrv at gemini.archlinux.org
Wed Nov 3 20:59:16 UTC 2021


    Date: Wednesday, November 3, 2021 @ 20:59:16
  Author: dvzrv
Revision: 1035670

upgpkg: lib32-ncurses 6.3-1: Upgrade to 6.3.

Switch to correct upstream website.
Change to upstream provided mirror for relases.
Switch to new valid PGP key 19882D92DDA4C400C22C0D56CC2AF4472167BE03 for which
upstream provided signatures on their website
https://invisible-island.net/public/public.html
Add patch to prevent linking against test libraries.
Add patch to fix leaking of flags into pkgconfig files:
https://bugs.archlinux.org/task/68523
Compile with flag for versioned symbols:
https://bugs.archlinux.org/task/72278
Enable the installation of pkgconfig files.
Enable the build and installation of C++ lib.
Disable the installation of files that conflict with ncurses anyhow.
Sort configure flags mainly alphabetically.
Replace the use of echo with printf and sort fixes in package() by topic.
Model all fixes in package() after those done in ncurses.
Update maintainer info.

Added:
  lib32-ncurses/trunk/ncurses-6.3-libs.patch
  lib32-ncurses/trunk/ncurses-6.3-pkgconfig.patch
Modified:
  lib32-ncurses/trunk/PKGBUILD

-----------------------------+
 PKGBUILD                    |  100 ++++++++++++++++++++++++++++--------------
 ncurses-6.3-libs.patch      |   58 ++++++++++++++++++++++++
 ncurses-6.3-pkgconfig.patch |   24 ++++++++++
 3 files changed, 150 insertions(+), 32 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2021-11-03 20:52:37 UTC (rev 1035669)
+++ PKGBUILD	2021-11-03 20:59:16 UTC (rev 1035670)
@@ -1,59 +1,95 @@
-# Maintainer: Allan McRae <allan at archlinux.org>
+# Maintainer: David Runge <dvzrv at archlinux.org>
+# Contributor: Allan McRae <allan at archlinux.org>
 # Contributor: judd <jvinet at zeroflux.org>
 
-_pkgbasename=ncurses
-pkgname=lib32-${_pkgbasename}
-pkgver=6.2
+_name=ncurses
+pkgname=lib32-${_name}
+pkgver=6.3
 pkgrel=1
 pkgdesc="System V Release 4.0 curses emulation library (32-bit)"
 arch=('x86_64')
-url="https://www.gnu.org/software/ncurses/"
+url='https://invisible-island.net/ncurses/ncurses.html'
 license=('MIT')
-depends=('lib32-glibc' ${_pkgbasename})
-source=(https://ftp.gnu.org/pub/gnu/ncurses/ncurses-${pkgver}.tar.gz{,.sig})
-sha512sums=('4c1333dcc30e858e8a9525d4b9aefb60000cfc727bc4a1062bace06ffc4639ad9f6e54f6bdda0e3a0e5ea14de995f96b52b3327d9ec633608792c99a1e8d840d'
-            'SKIP')
-validpgpkeys=('C52048C0C0748FEE227D47A2702353E0F7E48EDB') # Thomas Dickey
+depends=('lib32-gcc-libs' 'lib32-glibc' "${_name}=${pkgver}")
+provides=(libncurses++w.so libformw.so libmenuw.so libpanelw.so libncursesw.so)
+source=(
+  "https://invisible-mirror.net/archives/${_name}/${_name}-${pkgver}.tar.gz"{,.asc}
+  "${_name}-6.3-libs.patch"
+  "${_name}-6.3-pkgconfig.patch"
+)
+sha512sums=('5373f228cba6b7869210384a607a2d7faecfcbfef6dbfcd7c513f4e84fbd8bcad53ac7db2e7e84b95582248c1039dcfc7c4db205a618f7da22a166db482f0105'
+            'SKIP'
+            'adb02b838c40f1e58a1b31c26d5cd0f2a1c43f3b6d68e839981764c0f6c905a9eb51dd36ff018628fdeb20747cc7467727d57135408ab4848259384077a52b28'
+            '2d2c0ec3c880e638ab4aa3dbff5e28e4cd233153e24816bd87e077f848aa3edd5114cd0f2a7f6e8869dd1861a2746e512886c18264ff1676927dcc320c5ef958')
+b2sums=('b2c174ac48d587b4d3aa054f04e4ec8bffd8a657a4aff5f090104965c741901e600712c8f8e5e98f3b8a26bc558996a1e14a746f113854832853b855e9d406c3'
+        'SKIP'
+        '31bb10e82dd018a75e57252052650d9f0f5eb5e7e887118c2ea40032b11f59ec6aa4d9bae804c615cbecdf3382f3434e0c9e9e8440fdefe66a507be020b8965c'
+        'fb6cf606cf3db7f6b306272696a63bce83d52cfa91e850f9a7bdb9d3d8455a26943529a9cf79731dddc7f763c27211a9afab9c4c31dbb6d12fd720eb390eb0a3')
+validpgpkeys=('19882D92DDA4C400C22C0D56CC2AF4472167BE03')  # Thomas Dickey <dickey at invisible-island.net>
 
+prepare() {
+  cd ${_name}-${pkgver}
+  # do not link against test libraries
+  patch -Np1 -i ../"${_name}-6.3-libs.patch"
+  # do not leak build-time LDFLAGS into the pkgconfig files:
+  # https://bugs.archlinux.org/task/68523
+  patch -Np1 -i ../"${_name}-6.3-pkgconfig.patch"
+  # NOTE: can't run autoreconf because the autotools setup is custom and ancient
+}
+
 build() {
-  cd ${_pkgbasename}-${pkgver}
+  cd ${_name}-${pkgver}
 
   export CC="gcc -m32"
   export CXX="g++ -m32"
+  export PKG_CONFIG_LIBDIR='/usr/lib32/pkgconfig'
 
-  ./configure --prefix=/usr --mandir=/usr/share/man \
-     --with-pkg-config-libdir=/usr/lib32/pkgconfig \
-     --with-shared --with-normal --without-debug --without-ada \
-     --enable-widec --libdir=/usr/lib32 --with-manpage-format=normal
+  ./configure --prefix=/usr \
+    --disable-db-install \
+    --enable-widec \
+    --enable-pc-files \
+    --libdir=/usr/lib32 \
+    --mandir=/usr/share/man \
+    --with-cxx-binding \
+    --with-cxx-shared \
+    --with-pkg-config-libdir=/usr/lib32/pkgconfig \
+    --with-shared \
+    --with-versioned-syms \
+    --without-ada \
+    --without-debug \
+    --without-manpages \
+    --without-progs \
+    --without-tack \
+    --without-tests
   make
 }
 
 package() {
-  cd ${_pkgbasename}-${pkgver}
+  cd ${_name}-${pkgver}
   make DESTDIR="${pkgdir}" install
 
+  install -vDm 644 COPYING -t "$pkgdir/usr/share/licenses/$pkgname/"
+
   # fool packages looking to link to non-wide-character ncurses libraries
-  for lib in curses ncurses form panel menu; do
-    echo "INPUT(-l${lib}w)" >"${pkgdir}"/usr/lib32/lib${lib}.so
-    ln -sf lib${lib}w.a "${pkgdir}"/usr/lib32/lib${lib}.a
+  for lib in ncurses ncurses++ form panel menu; do
+    printf "INPUT(-l%sw)\n" "${lib}" > "${pkgdir}/usr/lib32/lib${lib}.so"
+    ln -sv ${lib}w.pc "${pkgdir}/usr/lib32/pkgconfig/${lib}.pc"
   done
-  ln -sf libncurses++w.a "${pkgdir}"/usr/lib32/libncurses++.a
 
+  # some packages look for -lcurses during build
+  printf 'INPUT(-lncursesw)\n' > "$pkgdir/usr/lib32/libcursesw.so"
+  ln -sv libncurses.so "$pkgdir/usr/lib32/libcurses.so"
+
+  # tic and ticinfo functionality is built in by default
+  # make sure that anything linking against it links against libncursesw.so instead
   for lib in tic tinfo; do
-    echo "INPUT(libncursesw.so.${pkgver:0:1})" > "${pkgdir}/usr/lib32/lib${lib}.so"
-    ln -s libncursesw.so.${pkgver:0:1} "${pkgdir}/usr/lib32/lib${lib}.so.${pkgver:0:1}"
+    printf "INPUT(libncursesw.so.%s)\n" "${pkgver:0:1}" > "${pkgdir}/usr/lib32/lib${lib}.so"
+    ln -sv libncursesw.so.${pkgver:0:1} "${pkgdir}/usr/lib32/lib${lib}.so.${pkgver:0:1}"
+    ln -fsv ncursesw.pc "$pkgdir/usr/lib32/pkgconfig/${lib}.pc"
   done
 
-  # some packages look for -lcurses during build
-  rm -f "${pkgdir}"/usr/lib32/libcursesw.so
-  echo "INPUT(-lncursesw)" >"${pkgdir}"/usr/lib32/libcursesw.so
-  ln -sf libncurses.so "${pkgdir}"/usr/lib32/libcurses.so
-  ln -sf libncursesw.a "${pkgdir}"/usr/lib32/libcursesw.a
-  ln -sf libncurses.a "${pkgdir}"/usr/lib32/libcurses.a
-
-  rm -rf "${pkgdir}"/usr/{include,share,bin}
-  mkdir -p "${pkgdir}/usr/share/licenses"
-  ln -s ${_pkgbasename} "${pkgdir}/usr/share/licenses/${pkgname}"
+  # remove all files conflicting with ncurses
+  rm -frv "${pkgdir}/usr/"{bin,include}
 }
 
 # vim: set et ts=2 sw=2:

Added: ncurses-6.3-libs.patch
===================================================================
--- ncurses-6.3-libs.patch	                        (rev 0)
+++ ncurses-6.3-libs.patch	2021-11-03 20:59:16 UTC (rev 1035670)
@@ -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 at FORM_NAME@@USE_LIB_SUFFIX@ \
+ 		-l at MENU_NAME@@USE_LIB_SUFFIX@ \
+ 		-l at PANEL_NAME@@USE_LIB_SUFFIX@ \
+-		-lncurses at USE_LIB_SUFFIX@ @SHLIB_LIST@
++		-lncurses at USE_LIB_SUFFIX@
+ 
+ LIBROOT		= ncurses++
+ 
+@@ -157,8 +157,7 @@
+ LDFLAGS_DEFAULT	= $(LINK_ at DFT_UPR_MODEL@) $(LDFLAGS_ at 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 at USE_LIB_SUFFIX@ @SHLIB_LIST@
++SHLIB_LIST	= $(SHLIB_DIRS) -lncurses at 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 at USE_LIB_SUFFIX@ @SHLIB_LIST@
++SHLIB_LIST	= $(SHLIB_DIRS) -lncurses at 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 at USE_LIB_SUFFIX@ @SHLIB_LIST@
++SHLIB_LIST	= $(SHLIB_DIRS) -lncurses at USE_LIB_SUFFIX@
+ 
+ RPATH_LIST	= @RPATH_LIST@
+ RESULTING_SYMS	= @RESULTING_SYMS@

Added: ncurses-6.3-pkgconfig.patch
===================================================================
--- ncurses-6.3-pkgconfig.patch	                        (rev 0)
+++ ncurses-6.3-pkgconfig.patch	2021-11-03 20:59:16 UTC (rev 1035670)
@@ -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



More information about the arch-commits mailing list