aboutsummaryrefslogtreecommitdiffstats
path: root/main/ncurses/APKBUILD
blob: 3d42a9fd387a71b6c46d4f6c5cbffa3821e2b82b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ncurses
pkgver=6.1_p20200118
_ver=${pkgver/_p/-}
pkgrel=2
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"
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

# secfixes:
#   6.1_p20180414-r0:
#     - CVE-2018-10754
#   6.0_p20171125-r0:
#     - CVE-2017-16879
#   6.0_p20170701-r0:
#     - CVE-2017-10684

build() {
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--mandir=/usr/share/man \
		--without-ada \
		--without-tests \
		--disable-termcap \
		--disable-rpath-hack \
		--disable-stripping \
		--with-pkg-config-libdir=/usr/lib/pkgconfig \
		--without-cxx-binding \
		--with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo:/lib/terminfo:/usr/lib/terminfo" \
		--enable-pc-files \
		--with-shared \
		--enable-widec
	make
}

package() {
	make -j1 DESTDIR="$pkgdir" install

	# 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; do
		local termfile=$(find "$pkgdir"/usr/share/terminfo/ -name "$i" 2>/dev/null) || true
		local basedir=$(basename "$(dirname "$termfile")")

		[ -z "$termfile" ] && continue

		install -d "$pkgdir"/etc/terminfo/$basedir
		mv ${termfile} "$pkgdir"/etc/terminfo/$basedir/
		ln -s ../../../../etc/terminfo/$basedir/$i \
			"$pkgdir"/usr/share/terminfo/$basedir/$i
	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
}

terminfo() {
	depends=""
	pkgdesc="$pkgdesc (other terminfo files)"
	depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"

	amove etc/terminfo
	amove usr/share/terminfo
	amove usr/lib/terminfo
}

libs() {
	pkgdesc="Ncurses libraries"
	depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
	provides="ncurses-widec-libs=$pkgver-r$pkgrel"

	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir"/usr/lib
}

base() {
	depends=""
	pkgdesc="Descriptions of common terminals"

	amove usr/share/terminfo/x/xterm-256color
	amove usr/share/terminfo/a/alacritty
	amove usr/share/terminfo/t/tmux
	amove usr/share/terminfo/t/tmux-256color
	amove usr/share/terminfo/t/terminator
	amove usr/share/terminfo/t/terminology*
	amove usr/share/terminfo/v/vte
	amove usr/share/terminfo/v/vte-256color
	amove usr/share/terminfo/g/gnome
	amove usr/share/terminfo/g/gnome-256color
	amove usr/share/terminfo/k/kitty
	amove usr/share/terminfo/k/konsole
	amove usr/share/terminfo/k/konsole-256color
	amove usr/share/terminfo/k/konsole-linux
	amove usr/share/terminfo/p/putty
	amove usr/share/terminfo/p/putty-256color
	amove usr/share/terminfo/r/rxvt
	amove usr/share/terminfo/r/rxvt-256color
	amove usr/share/terminfo/s/st-0*
	amove usr/share/terminfo/s/st-256color
	amove usr/share/terminfo/s/screen-256color
	amove etc/terminfo

	mkdir -p "$pkgdir"/etc/terminfo/s
	mv "$subpkgdir"/etc/terminfo/s/sun "$pkgdir"/etc/terminfo/s
	mv "$subpkgdir"/etc/terminfo/v "$pkgdir"/etc/terminfo
}

static() {
	pkgdesc="Static libraries for the ncurses library"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
}

sha512sums="759c81d539f3a34197730c2d9dd66ff5fe27e2bc12a7f80e27da4354f7c011a654096fb99aed8d2b5a5904a08b388927569e224b6cc9fd8f97447c9af1c13946  ncurses-6.1-20200118.tgz"