diff --git a/PKGBUILD b/PKGBUILD index 2fbb010..89485a1 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -4,46 +4,57 @@ # Contributor: judd pkgname=ncurses -pkgver=6.2 -pkgrel=2 +pkgver=6.3 +pkgrel=1 pkgdesc='System V Release 4.0 curses emulation library' arch=(x86_64) url='https://invisible-island.net/ncurses/ncurses.html' license=(MIT) depends=(glibc gcc-libs) +makedepends=(autoconf-archive) optdepends=('bash: for ncursesw6-config') provides=(libncurses++w.so libformw.so libmenuw.so libpanelw.so libncursesw.so) replaces=(alacritty-terminfo) -source=("https://ftp.gnu.org/pub/gnu/ncurses/ncurses-$pkgver.tar.gz"{,.sig}) -sha512sums=('4c1333dcc30e858e8a9525d4b9aefb60000cfc727bc4a1062bace06ffc4639ad9f6e54f6bdda0e3a0e5ea14de995f96b52b3327d9ec633608792c99a1e8d840d' - 'SKIP') -b2sums=('6680cd7a369a4cb8234442a70869c283f0db6db9d7da1da2a7a5c519eb862a2c9b9411957d99f9ebb5089cad00b42e1ca6bc0784327461113df2eeaec695913c' - 'SKIP') -# NOTE: contacted upstream signing key holder about unsafe key (2021-05-02) -validpgpkeys=('C52048C0C0748FEE227D47A2702353E0F7E48EDB') # Thomas Dickey +source=( + "https://invisible-mirror.net/archives/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.asc} + "${pkgname}-6.3-libs.patch" + "${pkgname}-6.3-pkgconfig.patch" +) +sha512sums=('5373f228cba6b7869210384a607a2d7faecfcbfef6dbfcd7c513f4e84fbd8bcad53ac7db2e7e84b95582248c1039dcfc7c4db205a618f7da22a166db482f0105' + 'SKIP' + 'adb02b838c40f1e58a1b31c26d5cd0f2a1c43f3b6d68e839981764c0f6c905a9eb51dd36ff018628fdeb20747cc7467727d57135408ab4848259384077a52b28' + '2d2c0ec3c880e638ab4aa3dbff5e28e4cd233153e24816bd87e077f848aa3edd5114cd0f2a7f6e8869dd1861a2746e512886c18264ff1676927dcc320c5ef958') +b2sums=('b2c174ac48d587b4d3aa054f04e4ec8bffd8a657a4aff5f090104965c741901e600712c8f8e5e98f3b8a26bc558996a1e14a746f113854832853b855e9d406c3' + 'SKIP' + '31bb10e82dd018a75e57252052650d9f0f5eb5e7e887118c2ea40032b11f59ec6aa4d9bae804c615cbecdf3382f3434e0c9e9e8440fdefe66a507be020b8965c' + 'fb6cf606cf3db7f6b306272696a63bce83d52cfa91e850f9a7bdb9d3d8455a26943529a9cf79731dddc7f763c27211a9afab9c4c31dbb6d12fd720eb390eb0a3') +validpgpkeys=('19882D92DDA4C400C22C0D56CC2AF4472167BE03') # Thomas Dickey -# FIXME -# prepare() { -# cd $pkgname-$pkgver -# -# autoreconf -fiv -# } +prepare() { + cd $pkgname-$pkgver + # do not link against test libraries + patch -Np1 -i ../"${pkgname}-6.3-libs.patch" + # do not leak build-time LDFLAGS into the pkgconfig files: + # https://bugs.archlinux.org/task/68523 + patch -Np1 -i ../"${pkgname}-6.3-pkgconfig.patch" + # NOTE: can't run autoreconf because the autotools setup is custom and ancient +} build() { cd $pkgname-$pkgver ./configure --prefix=/usr \ - --mandir=/usr/share/man \ - --with-pkg-config-libdir=/usr/lib/pkgconfig \ - --with-shared \ - --with-normal \ - --without-debug \ - --without-ada \ --enable-widec \ --enable-pc-files \ + --mandir=/usr/share/man \ --with-cxx-binding \ --with-cxx-shared \ - --with-manpage-format=normal + --with-manpage-format=normal \ + --with-pkg-config-libdir=/usr/lib/pkgconfig \ + --with-shared \ + --with-versioned-syms \ + --without-ada \ + --without-debug make } @@ -54,17 +65,19 @@ package() { # fool packages looking to link to non-wide-character ncurses libraries for lib in ncurses ncurses++ form panel menu; do - echo "INPUT(-l${lib}w)" > "$pkgdir/usr/lib/lib${lib}.so" + printf "INPUT(-l%sw)\n" "${lib}" > "$pkgdir/usr/lib/lib${lib}.so" ln -sv ${lib}w.pc "$pkgdir/usr/lib/pkgconfig/${lib}.pc" done + # some packages look for -lcurses during build + printf 'INPUT(-lncursesw)\n' > "$pkgdir/usr/lib/libcursesw.so" + ln -sv libncurses.so "$pkgdir/usr/lib/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/lib/lib${lib}.so" + printf "INPUT(libncursesw.so.%s)\n" "${pkgver:0:1}" > "$pkgdir/usr/lib/lib${lib}.so" ln -sv libncursesw.so.${pkgver:0:1} "$pkgdir/usr/lib/lib${lib}.so.${pkgver:0:1}" ln -sv ncursesw.pc "$pkgdir/usr/lib/pkgconfig/${lib}.pc" done - - # some packages look for -lcurses during build - echo 'INPUT(-lncursesw)' > "$pkgdir/usr/lib/libcursesw.so" - ln -s libncurses.so "$pkgdir/usr/lib/libcurses.so" } diff --git a/ncurses-6.3-libs.patch b/ncurses-6.3-libs.patch new file mode 100644 index 0000000..1933a54 --- /dev/null +++ b/ncurses-6.3-libs.patch @@ -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@ diff --git a/ncurses-6.3-pkgconfig.patch b/ncurses-6.3-pkgconfig.patch new file mode 100644 index 0000000..e3b5d46 --- /dev/null +++ b/ncurses-6.3-pkgconfig.patch @@ -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