diff options
Diffstat (limited to 'main/ncurses/APKBUILD')
-rw-r--r-- | main/ncurses/APKBUILD | 188 |
1 files changed, 139 insertions, 49 deletions
diff --git a/main/ncurses/APKBUILD b/main/ncurses/APKBUILD index 4ea251a0af9..9b7f82a85ba 100644 --- a/main/ncurses/APKBUILD +++ b/main/ncurses/APKBUILD @@ -1,20 +1,37 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=ncurses -pkgver=6.3_p20220115 -_ver=${pkgver/_p/-} +pkgver=6.4_p20240330 +_pkgver=${pkgver/_p/-} pkgrel=0 pkgdesc="Console display library" url="https://invisible-island.net/ncurses/" arch="all" options="!check" # "tests" are actual demo programs, not a test suite. -license="MIT" +license="X11" makedepends_build="ncurses" -subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs - $pkgname-terminfo-base:base:noarch $pkgname-terminfo:terminfo:noarch" -source="https://invisible-mirror.net/archives/ncurses/current/ncurses-$_ver.tgz" -builddir="$srcdir"/ncurses-$_ver +subpackages=" + $pkgname-static + $pkgname-dev + $pkgname-doc + $pkgname-terminfo-base:base:noarch + $pkgname-terminfo:terminfo:noarch + $pkgname-libs:compat:noarch + libformw + libmenuw + libncurses++:pp + libncursesw + libpanelw + " +source="https://invisible-mirror.net/archives/ncurses/current/ncurses-$_pkgver.tgz + cleanup-pkgconfig-ldflags.patch + " +builddir="$srcdir/$pkgname-$_pkgver" # secfixes: +# 6.4_p20230424-r0: +# - CVE-2023-29491 +# 6.3_p20220416-r0: +# - CVE-2022-29458 # 6.2_p20200530-r0: # - CVE-2021-39537 # 6.1_p20180414-r0: @@ -24,7 +41,45 @@ builddir="$srcdir"/ncurses-$_ver # 6.0_p20170701-r0: # - CVE-2017-10684 +# Terminfo definitions to be included in ncurses-terminfo-base. +_basic_terms=" + alacritty + ansi + console + dumb + gnome + gnome-256color + konsole + konsole-256color + konsole-linux + linux + putty + putty-256color + rxvt + rxvt-256color + screen + screen-256color + st-* + sun + terminator + terminology* + tmux + tmux-256color + vt100 + vt102 + vt200 + vt220 + vt52 + vte + vte-256color + xterm + xterm-256color + xterm-color + xterm-xfree86 + " + build() { + export CFLAGS="$CFLAGS -D_GNU_SOURCE" ./configure \ --build=$CBUILD \ --host=$CHOST \ @@ -32,10 +87,13 @@ build() { --without-ada \ --without-tests \ --disable-termcap \ + --disable-root-access \ --disable-rpath-hack \ + --disable-setuid-environ \ --disable-stripping \ --with-pkg-config-libdir=/usr/lib/pkgconfig \ - --without-cxx-binding \ + --with-cxx-binding \ + --with-cxx-shared \ --with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo:/lib/terminfo:/usr/lib/terminfo" \ --enable-pc-files \ --with-shared \ @@ -46,77 +104,109 @@ build() { package() { make -j1 DESTDIR="$pkgdir" install + cd "$pkgdir" + + # force link against *w.so + local lib; for lib in ncurses ncurses++ form panel menu; do + ln -s ${lib}w.pc usr/lib/pkgconfig/$lib.pc + ln -s lib${lib}w.a usr/lib/lib$lib.a + echo "INPUT(-l${lib}w)" > usr/lib/lib$lib.so + done + + # link curses -> ncurses + ln -s libncurses.a usr/lib/libcurses.a + ln -s libncurses.so usr/lib/libcurses.so + echo 'INPUT(-lncursesw)' > usr/lib/libcursesw.so + # Install basic terms in /etc/terminfo - for i in ansi console dumb linux rxvt screen sun vt52 vt100 vt102 \ - vt200 vt220 xterm xterm-color xterm-xfree86 xterm-256color \ - alacritty tmux tmux-256color terminator 'terminology*' \ - vte vte-256color gnome gnome-256color kitty konsole konsole-256color \ - konsole-linux putty putty-256color rxvt-256color 'st-*' \ - screen-256color; do - local termfiles=$(find "$pkgdir"/usr/share/terminfo/ -name "$i" 2>/dev/null) || true + local i; for i in $_basic_terms; do + local termfiles=$(find usr/share/terminfo/ -name "$i" 2>/dev/null) || true [ -z "$termfiles" ] && continue for termfile in $termfiles; do local basedir=$(basename "$(dirname "$termfile")") - install -d "$pkgdir"/etc/terminfo/$basedir - mv "$termfile" "$pkgdir"/etc/terminfo/$basedir/ + install -d etc/terminfo/$basedir + mv "$termfile" etc/terminfo/$basedir/ ln -s "../../../../etc/terminfo/$basedir/${termfile##*/}" \ - "$pkgdir/usr/share/terminfo/$basedir/${termfile##*/}" + "usr/share/terminfo/$basedir/${termfile##*/}" done done } dev() { default_dev - # force link against *w.so - for lib in ncurses ncurses++ form panel menu; do - echo "INPUT(-l${lib}w)" > "$subpkgdir"/usr/lib/lib$lib.so - ln -s ${lib}w.pc "$subpkgdir"/usr/lib/pkgconfig/$lib.pc - done - # link curses -> ncurses - echo "INPUT(-lncursesw)" > "$subpkgdir"/usr/lib/libcursesw.so - ln -s libncurses.so "$subpkgdir"/usr/lib/libcurses.so + + # also move symlinks + amove usr/lib/*.so } terminfo() { pkgdesc="$pkgdesc (other terminfo files)" depends="$pkgname-terminfo-base=$pkgver-r$pkgrel" + replaces="kitty<0.25.2-r1" # /usr/share/terminfo/x/xterm-kitty (Alpine <3.17) - mkdir -p "$subpkgdir"/usr/share "$subpkgdir"/usr/lib - mv "$pkgdir"/usr/share/terminfo "$subpkgdir"/usr/share + amove usr/share/terminfo # also move symlink - mv "$pkgdir"/usr/lib/terminfo "$subpkgdir"/usr/lib/ + amove usr/lib/terminfo } -libs() { - pkgdesc="Ncurses libraries" - depends="$pkgname-terminfo-base=$pkgver-r$pkgrel" +compat() { + pkgdesc="Ncurses libraries (old compat to pull sublibs)" provides="ncurses-widec-libs=$pkgver-r$pkgrel" + depends=" + libformw=$pkgver-r$pkgrel + libmenuw=$pkgver-r$pkgrel + libncursesw=$pkgver-r$pkgrel + libpanelw=$pkgver-r$pkgrel + " - mkdir -p "$subpkgdir"/usr/lib - mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir"/usr/lib + mkdir -p "$subpkgdir" } -base() { - depends="" - pkgdesc="Descriptions of common terminals" +libmenuw() { + pkgdesc="$pkgdesc ($subpkgname)" + depends="$pkgname-terminfo-base=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir"/etc/terminfo - mv "$pkgdir"/etc/terminfo/ "$subpkgdir"/etc/ + amove usr/lib/libmenuw.so.* } -static() { - pkgdesc="Static libraries for the ncurses library" - mkdir -p "$subpkgdir"/usr/lib - for lib in ncurses ncurses++ form panel menu; do - ln -s lib${lib}w.a "$subpkgdir"/usr/lib/lib${lib}.a - done - # link curses -> ncurses - mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/ - ln -s libncurses.a "$subpkgdir"/usr/lib/libcurses.a +libformw() { + pkgdesc="$pkgdesc ($subpkgname)" + depends="$pkgname-terminfo-base=$pkgver-r$pkgrel" + + amove usr/lib/libformw.so.* +} + +pp() { + pkgdesc="$pkgdesc ($subpkgname)" + depends="$pkgname-terminfo-base=$pkgver-r$pkgrel" + + amove usr/lib/libncurses++w.so.* +} + +libncursesw() { + pkgdesc="$pkgdesc ($subpkgname)" + depends="$pkgname-terminfo-base=$pkgver-r$pkgrel" + + amove usr/lib/libncursesw.so.* +} + +libpanelw() { + pkgdesc="$pkgdesc ($subpkgname)" + depends="$pkgname-terminfo-base=$pkgver-r$pkgrel" + + amove usr/lib/libpanelw.so.* +} + +base() { + pkgdesc="Descriptions of common terminals" + depends="" + + amove etc/terminfo } sha512sums=" -c3b4e47322342143c09f70be616cccb1a300a18e0cee5c4282b51c001ad7f09eb5487b76a61503e1c74cf82ea521fbbddc88f903251cc03ef1fde83c0e33a50e ncurses-6.3-20220115.tgz +d2f293d8a65a9b21db8d5b3a68eb5acbedf485239f02bdd29d20aa3fd2bee0f1e2c1181168a7e79425a007816b7ebac78ad6a62f5bef278a30aacca8f59e4cca ncurses-6.4-20240330.tgz +201ef1876655101cedabc83a0ce46f75079b08f565ca8de4cf96fd69e41332a2d0597b77fe360dc58b10772586fa39bd52ac9ee670a912fef84840278356065a cleanup-pkgconfig-ldflags.patch " |