aboutsummaryrefslogtreecommitdiffstats
path: root/community/unit/APKBUILD
blob: 43e459c2c61f47c8011ea0e2ea003e15e329f3ed (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
132
133
134
135
136
137
138
139
140
141
142
# Contributor: André Klitzing <aklitzing@gmail.com>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Andy Postnikov <apostnikov@gmail.com>
pkgname=unit
pkgver=1.32.1
pkgrel=3
pkgdesc="NGINX Unit is a dynamic web application server"
url="https://unit.nginx.org/"
arch="all"
license="Apache-2.0"
_phpver2=82
_phpver3=83
makedepends="
	linux-headers
	openssl-dev>3
	perl-dev
	php$_phpver2-dev
	php$_phpver2-embed
	php$_phpver3-dev
	php$_phpver3-embed
	python3-dev
	ruby-dev
	"
checkdepends="procps-ng
	py3-pytest py3-openssl
	php$_phpver2-opcache php$_phpver3-opcache
	"
options="net" # ruby tests require rack
pkgusers="$pkgname"
pkggroups="$pkgname"
install="$pkgname.pre-install"
subpackages="$pkgname-dev $pkgname-openrc $pkgname-tools::noarch $pkgname-doc"
source="https://sources.nginx.org/unit/unit-$pkgver.tar.gz
	$pkgname.initd
	$pkgname.confd
	$pkgname.logrotate
	phpver.patch
	fix-tls-tests.patch
	"

for _mod in perl php$_phpver2 php$_phpver3 python3 ruby; do
	subpackages="$subpackages $pkgname-$_mod:_module"
done

_modules_dir="/usr/lib/unit/modules"

build() {
	./configure \
		--prefix="/usr" \
		--localstatedir="/var" \
		--statedir="/var/lib/unit" \
		--control="unix:/run/control.unit.sock" \
		--pid="/run/unit.pid" \
		--log="/var/log/unit.log" \
		--tmpdir=/tmp \
		--modulesdir="$_modules_dir" \
		--openssl \
		--user=unit \
		--group=unit \
		--tests
	./configure perl
	./configure php --module=php$_phpver2 --config=php-config$_phpver2
	./configure php --module=php$_phpver3 --config=php-config$_phpver3
	./configure python --config=python3-config
	./configure ruby

	make
	make tests
}

check() {
	./build/tests

	local _ruby="$srcdir/ruby-rack"
	gem install rack -i $_ruby --no-document

	# FIXME: some tests fail in CI or locally in checkroot too
	local _fds=160 # fds leaking in tests
	local _allow_fail=no
	case "$CARCH" in
		armhf | armv7) _allow_fail=yes ;; # segfault
	esac
	GEM_PATH=$_ruby pytest test --fds-threshold=$_fds -k "
		not java and not go and not node \
		and not njs \
		and not test_static_mount \
		and not test_php_isolation \
		and not test_php_application_forbidden \
		and not test_php_application_shared_opcache \
		and not test_python_isolation \
		and not test_python_user_group \
		and not test_ruby_isolation \
		and not test_settings_send_timeout \
	" || [ "$_allow_fail" = yes ]
}

package() {
	make unitd-install manpage-install libunit-install DESTDIR="$pkgdir"

	install -D -m 755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -D -m 644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
	install -D -m 644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname

	install -D -m 755 tools/setup-unit "$pkgdir"/usr/bin/setup-unit
	install -D -m 755 tools/unitc "$pkgdir"/usr/bin/unitc
	install -D -m 644 tools/README.md "$pkgdir"/usr/share/doc/$pkgname/README.md

	# abuild 3.13.0 adds checks prohibiting packages from creating /var/run
	rmdir "$pkgdir"/var/run/unit "$pkgdir"/var/run
}

tools() {
	pkgdesc="Configuration scripts for Unit"
	depends="bash curl"

	amove usr/bin/setup-unit
	amove usr/bin/unitc
	amove usr/share/doc/$pkgname/README.md
}

openrc() {
	default_openrc
	depends="curl"
}

_module() {
	local modname=${subpkgname#"$pkgname"-}
	pkgdesc="$modname module for NGINX Unit"
	depends="$pkgname=$pkgver-r$pkgrel"

	cd "$builddir"
	make $modname-install DESTDIR="$subpkgdir"
}

sha512sums="
159b36f7afb8857188c9b64ee192e18d6990da3733caafcfb684b98e3f5182a7589ed2439f32af0cd3c763a3fa73f061f5a73ef01894182b1c12a4cd324c528a  unit-1.32.1.tar.gz
76ca55b0b697361c9799a57414d88c36bc59458af8154f7c4275302ad7694bef4ba4a295685956dd5472d8508bac8e1d1977ff7ff4f46cc443f63ea3e3c35d55  unit.initd
f85112726dfcace2b6d94b10669615fef517f5aa10ac858890dd9f5c868a6e2569500f7411f758fcb24c98c9630760d36a74bd33ea510ab0f8ca8cd6cb1fb1e8  unit.confd
723e465162dfdb31881680200221542add414e54ef4f4f1fc57e91b7b57777dfb21c2eee4727ecbba0c1943bb77a2597cc0225b16e334c38258c296d15b1df74  unit.logrotate
2fe9966f54fd5d23316810b0260d966e2093c303d8a9ecea693971fe2243c579ed5db0e41e01fc01e56801387bd19cc72f5b26c45d21e5d48084e9ded384965b  phpver.patch
aae610dd2e8056d278397af708926a8e24f282158dc539182f9dfd44582f6b8bba1a57df7769539572f4268db305d84f12eb9fe07dfeec9a8781a6f66ca28386  fix-tls-tests.patch
"