aboutsummaryrefslogtreecommitdiffstats
path: root/main/ncurses/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'main/ncurses/APKBUILD')
-rw-r--r--main/ncurses/APKBUILD185
1 files changed, 141 insertions, 44 deletions
diff --git a/main/ncurses/APKBUILD b/main/ncurses/APKBUILD
index 3d160d9ea9d..9b7f82a85ba 100644
--- a/main/ncurses/APKBUILD
+++ b/main/ncurses/APKBUILD
@@ -1,20 +1,39 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ncurses
-pkgver=6.2_p20210710
-_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:
# - CVE-2018-10754
# 6.0_p20171125-r0:
@@ -22,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 \
@@ -30,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 \
@@ -44,72 +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"
+
+ amove usr/lib/libmenuw.so.*
+}
- mkdir -p "$subpkgdir"/etc/terminfo
- mv "$pkgdir"/etc/terminfo/ "$subpkgdir"/etc/
+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.*
}
-static() {
- pkgdesc="Static libraries for the ncurses library"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
+base() {
+ pkgdesc="Descriptions of common terminals"
+ depends=""
+
+ amove etc/terminfo
}
sha512sums="
-66428fb8e658b842cf102d4b7889eac33693d6953a7c9f5d19651807f32f9d5f0f15bc921fd43dd2c55ddd01cedeed3712a96d649e88f789778447dab80c552b ncurses-6.2-20210710.tgz
+d2f293d8a65a9b21db8d5b3a68eb5acbedf485239f02bdd29d20aa3fd2bee0f1e2c1181168a7e79425a007816b7ebac78ad6a62f5bef278a30aacca8f59e4cca ncurses-6.4-20240330.tgz
+201ef1876655101cedabc83a0ce46f75079b08f565ca8de4cf96fd69e41332a2d0597b77fe360dc58b10772586fa39bd52ac9ee670a912fef84840278356065a cleanup-pkgconfig-ldflags.patch
"