mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-04-19 05:36:38 +02:00
208 lines
4.5 KiB
Text
208 lines
4.5 KiB
Text
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
|
pkgname=ncurses
|
|
pkgver=6.5_p20250405
|
|
_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="X11"
|
|
makedepends_build="ncurses"
|
|
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:
|
|
# - CVE-2017-16879
|
|
# 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() {
|
|
./configure \
|
|
--build=$CBUILD \
|
|
--host=$CHOST \
|
|
--mandir=/usr/share/man \
|
|
--without-ada \
|
|
--without-tests \
|
|
--disable-termcap \
|
|
--disable-root-access \
|
|
--disable-rpath-hack \
|
|
--disable-setuid-environ \
|
|
--disable-stripping \
|
|
--with-pkg-config-libdir=/usr/lib/pkgconfig \
|
|
--with-cxx-binding \
|
|
--with-cxx-shared \
|
|
--with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo:/lib/terminfo:/usr/lib/terminfo" \
|
|
--enable-pc-files \
|
|
--enable-symlinks \
|
|
--with-shared \
|
|
--enable-widec
|
|
make
|
|
}
|
|
|
|
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
|
|
ln -s lib${lib}w.so usr/lib/lib$lib.so
|
|
done
|
|
|
|
# link curses, tic, tinfo -> ncurses
|
|
for lib in curses tic tinfo; do
|
|
ln -s libncurses.a usr/lib/lib${lib}.a
|
|
ln -s libncurses.so usr/lib/lib${lib}.so
|
|
ln -s ncurses.pc usr/lib/pkgconfig/${lib}.pc
|
|
done
|
|
ln -s libncursesw.so usr/lib/libcursesw.so
|
|
|
|
# Install basic terms in /etc/terminfo
|
|
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 etc/terminfo/$basedir
|
|
mv "$termfile" etc/terminfo/$basedir/
|
|
ln -s "../../../../etc/terminfo/$basedir/${termfile##*/}" \
|
|
"usr/share/terminfo/$basedir/${termfile##*/}"
|
|
done
|
|
done
|
|
}
|
|
|
|
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)
|
|
|
|
amove usr/share/terminfo
|
|
# also move symlink
|
|
amove usr/lib/terminfo
|
|
}
|
|
|
|
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"
|
|
}
|
|
|
|
libmenuw() {
|
|
pkgdesc="$pkgdesc ($subpkgname)"
|
|
depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
|
|
|
|
amove usr/lib/libmenuw.so.*
|
|
}
|
|
|
|
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="
|
|
36bce8b4f0126955c12e0dd8df1bb32a8d99c1fa129e95a5e6ddc2fdbc7585ea335342b0b3c2842285af7c63fe2a909b5ec5c5c85a65b50da4ae47e453b9fb82 ncurses-6.5-20250405.tgz
|
|
201ef1876655101cedabc83a0ce46f75079b08f565ca8de4cf96fd69e41332a2d0597b77fe360dc58b10772586fa39bd52ac9ee670a912fef84840278356065a cleanup-pkgconfig-ldflags.patch
|
|
"
|