aboutsummaryrefslogtreecommitdiffstats
path: root/testing/apparmor/APKBUILD
blob: be81cd95cde34070838dd7657940c7d9f0aafd2b (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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
# Contributor: Allan Garret <allan.garret@gmail.com>
# Maintainer: Allan Garret <allan.garret@gmail.com>
pkgname=apparmor
pkgver=2.12
pkgrel=0
pkgdesc="Linux application security framework - mandatory access control for programs"
url="https://gitlab.com/apparmor/apparmor/wikis/home"
arch="all"
license="GPL"
depends="bash"
makedepends="bash sed python3 autoconf automake libtool bison flex perl-dev swig gettext-dev python3-dev linux-pam-dev linux-headers"
options="!check"

subpackages="
	libapparmor:_libapparmor
	libapparmor-doc:_libapparmor_doc
	libapparmor-dev:_libapparmor_dev
	py3-$pkgname:_py3_apparmor
	perl-$pkgname:_perl_apparmor
	$pkgname-utils:_apparmor_utils
	$pkgname-utils-doc:_apparmor_utils_doc
	$pkgname-utils-lang:_apparmor_utils_lang
	$pkgname-profiles:_apparmor_profiles:noarch
	$pkgname-pam:_apparmor_pam
	$pkgname-vim:_apparmor_vim:noarch
	$pkgname-doc
	$pkgname-lang
	"
source="
	https://launchpad.net/$pkgname/$pkgver/$pkgver.0/+download/$pkgname-$pkgver.tar.gz

	apparmor.initd

	0001-Add-missing-secure_getenv-and-scandirat-functions.patch
	0002-Add-missing-typedef-definitions-on-parser.patch
	0003-Link-against-gettext-library.patch
	0004-Remove-vim-from-default-utils-build.patch
	0005-Remove-parser-test-against-rttime.patch
	0006-Remove-ofile-tests-for-parser.patch
	0007-Adjust-several-utils-test-to-Alpine.patch
	0008-Adjust-apparmor-functions-path.patch
	"

builddir="$srcdir"/$pkgname-$pkgver

build() {
	export PYTHON_VERSION=3
	export PYTHON_VERSIONS=python3
	export PYTHON=/usr/bin/python3

	cd "$builddir"/libraries/libapparmor
	msg "Building: libapparmor"
	./autogen.sh
	./configure --prefix=/usr --with-python --with-perl
	make

	cd "$builddir"
	msg "Building: apparmor parser"
	make -C parser

	msg "Building: apparmor-binutils"
	make -C binutils

	msg "Building: apparmor-utils"
	make -C utils

	msg "Building: apparmor-profiles"
	make -C profiles

	msg "Building: apparmor-pam"
	make -C changehat/pam_apparmor

	msg "Building: apparmor-vim"
	make -C utils/vim
}

package() {
	cd "$builddir"

	make -C parser install DESTDIR="$pkgdir"
	mv "$pkgdir"/lib "$pkgdir"/usr/lib
	mv "$pkgdir"/sbin "$pkgdir"/usr/sbin
	mkdir -p "$pkgdir"/usr/libexec/apparmor
	mv "$pkgdir"/usr/lib/apparmor/rc.apparmor.functions \
		"$pkgdir"/usr/libexec/apparmor/
	rmdir "$pkgdir"/usr/lib/apparmor
	install -Dm755 "$srcdir"/apparmor.initd \
		"$pkgdir"/etc/init.d/apparmor
}

_libapparmor() {
	pkgdesc="AppArmor library"
	makedepends="swig python3-dev perl-dev"
	depends="bash sed"

	cd "$builddir"
	make -C libraries/libapparmor install DESTDIR="$subpkgdir"

	# Move development files
	mkdir -p "$subpkgdir"-dev/usr
	mv "$subpkgdir"/usr/include "$subpkgdir"-dev/usr/
	mkdir -p "$subpkgdir"-dev/usr/lib
	mv "$subpkgdir"/usr/lib/libapparmor.a "$subpkgdir"-dev/usr/lib/
	mv "$subpkgdir"/usr/lib/pkgconfig "$subpkgdir"-dev/usr/lib/

	# Move python3 files
	mkdir -p "$subpkgdir"/../py3-$pkgname/usr/lib
	mv "$subpkgdir"/usr/lib/python3.* "$subpkgdir"/../py3-$pkgname/usr/lib

	# Move perl files
	mkdir -p "$subpkgdir"/../perl-$pkgname/usr/lib
	mv "$subpkgdir"/usr/lib/perl5 "$subpkgdir"/../perl-$pkgname/usr/lib

	# Move doc files
	mkdir -p "$subpkgdir-doc"/usr/share
	mv "$subpkgdir"/usr/share/man "$subpkgdir-doc"/usr/share/
}

_libapparmor_doc() {
	pkgdesc="AppArmor Library (doc files)"

	cd "$builddir"
	for i in 2 3; do
		find "$subpkgdir"/usr/share/man/man"$i" -type f -exec gzip -9v {} +
	done
}

_libapparmor_dev() {
	pkgdesc="AppArmor Library (development files)"
}

_py3_apparmor() {
	pkgdesc="Python3 module for apparmor"
	depends="libapparmor python3"
}

_perl_apparmor() {
	pkgdesc="Perl module for apparmor"
	depends="libapparmor perl"
}

_apparmor_utils() {
	pkgdesc="AppArmor userspace utilities"
	depends="libapparmor perl python3 bash"

	cd "$builddir"
	make -C utils install DESTDIR="$subpkgdir" BINDIR="$subpkgdir"/usr/bin

	cd "$builddir"
	make -C binutils install DESTDIR="$subpkgdir" BINDIR="$subpkgdir"/usr/bin

	mkdir -p "$subpkgdir"-doc/usr/share
	mv "$subpkgdir"/usr/share/man "$subpkgdir"-doc/usr/share/

	mkdir -p "$subpkgdir"-lang/usr/share
	mv "$subpkgdir"/usr/share/locale "$subpkgdir"-lang/usr/share/
}

_apparmor_utils_doc() {
	pkgdesc="AppArmor userspace utilites (doc files)"

	cd "$builddir"
	for i in 1 5 8; do
		find "$subpkgdir"/usr/share/man/man"$i" -type f -exec gzip -9v {} +
	done
	cd "$subpkgdir"/usr/share/man/man8
	rm apparmor_status.8
	ln -s aa-status.8.gz apparmor_status.8.gz
}

_apparmor_utils_lang() {
	pkgdesc="Languages for package $subpkgname"
}

_apparmor_profiles() {
	pkgdesc="AppArmor sample pre-made profiles"
	depends="apparmor"

	cd "$builddir"
	make -C profiles install DESTDIR="$subpkgdir"
}

_apparmor_pam() {
	pkgdesc="AppArmor PAM library"
	depends="libapparmor pam"

	cd "$builddir"
	make -C changehat/pam_apparmor install DESTDIR="$subpkgdir"/usr
}

_apparmor_pam_doc() {
	pkgdesc="AppArmor PAM library (doc files)"

	cd "$builddir"
	mkdir -p "$subpkgdir"/usr/share/doc/apparmor
	install -Dm644 changehat/pam_apparmor/README \
		"$subpkgdir"/usr/share/doc/apparmor/README.pam_apparmor
}

_apparmor_vim() {
	pkgdesc="AppArmor VIM support"
	depends="vim"

	cd "$builddir"/utils/vim
	install -Dm644 apparmor.vim \
		"$subpkgdir"/usr/share/vim/vimfiles/syntax/apparmor.vim
}



sha512sums="d85fd47c66333fe5658ee5e977b32142697f6e36c575550712ee2ace2ad0fbf2aa59c8fd3b82ad8821c0190adf8cc150cf623ea09a84d5b32bde050a03dd6e9a  apparmor-2.12.tar.gz
1a57cc577ba3aedfbe10ef6148c1e8f5d0bbf65c99e60eec80c52409c9dab59ae002024500c6e4fd0e01e8c7aeb0c85e3e6b41cacee08c17fdd869d31bca614e  apparmor.initd
8e9f9914a3d0f5368811324a2be34ffebcb2d33add7289a37f2710497b8df0d95d7c33c792a844bae1e2fc320ff91e09313271aef1ad2bf5a37f2b634c652f73  0001-Add-missing-secure_getenv-and-scandirat-functions.patch
e26fcb2f68fdba1cce076fdf37803175ab42ae2df4fccea74275bea7d0937e2992fd1e0dcb521b11f6c44a73bcf2819579f34a26e4e62e618e8259fee81cf302  0002-Add-missing-typedef-definitions-on-parser.patch
949af1827ef533f60065fbbcdd72f15cb367ad69b0922a56011a31cd740f63c4834ba675c3686823f1f8319d2455498edb8fc626c02d2c8dfd0843e52ce0dbde  0003-Link-against-gettext-library.patch
11b51b046c3acd83b6b0978ac3806ad3a65e5a678dd8ea01b910cd50c51c36a31c8e0f20223f4715dfe28d80e7d2b1d578dc632de8092d8700723af8188a4bf4  0004-Remove-vim-from-default-utils-build.patch
b73fb44dc4649178d4aea8e491f74b025bde75bbdcf7b8fc1d17af30b562f58a743d7bde2a21db5c9dd71d863d1eb84d6b62143c90fff7ec7124d7b0ec590287  0005-Remove-parser-test-against-rttime.patch
2e169df847af74c2bf8906a595afa785dbf293b4d753fbfbb8cc0c2c0d2e5f6a8dd63b2400df57ad1f03330e5d5a39d4f893a3ca0aedf7bc832db48da7d4e67c  0006-Remove-ofile-tests-for-parser.patch
8949df983f36af91f887f13795681213758cf54a59c1ee710f7e2936a7a2e1e7551a1268c8abe0b95d852d24097ba52a39befd890126aa4d4c8e55656af64d2f  0007-Adjust-several-utils-test-to-Alpine.patch
bd8a4ac30c6803e2bc219db925f0d577a56cf29f08a9b109d593b06d833351d49eeba67a243f0e1e696c94958b7df9afb0f4be02453c197892fde3b99803c89f  0008-Adjust-apparmor-functions-path.patch"