archrelease: copy trunk to extra-x86_64
[arch-packages.git] / apparmor / trunk / PKGBUILD
blobeed076a0540329b78506a50565f5af41b75a3ba5
1 # Maintainer: David Runge <dvzrv@archlinux.org>
3 pkgname=apparmor
4 pkgver=3.1.1
5 pkgrel=1
6 pkgdesc="Mandatory Access Control (MAC) using Linux Security Module (LSM)"
7 arch=(x86_64)
8 url="https://gitlab.com/apparmor/apparmor"
9 license=(GPL2 LGPL2.1)
10 depends=(audit glibc pam python)
11 makedepends=(apache libxcrypt python-setuptools ruby swig)
12 checkdepends=(dejagnu perl-locale-gettext python-notify2 python-psutil)
13 optdepends=(
14   'perl: for perl bindings'
15   'python-notify2: for aa-notify'
16   'python-psutil: for aa-notify'
17   'ruby: for ruby bindings'
19 provides=(libapparmor.so)
20 backup=(
21   etc/apparmor/easyprof.conf
22   etc/apparmor/logprof.conf
23   etc/apparmor/notify.conf
24   etc/apparmor/parser.conf
25   etc/apparmor/severity.db
27 options=(debug)
28 source=(https://launchpad.net/$pkgname/${pkgver%.[0-9]}/$pkgver/+download/$pkgname-$pkgver.tar.gz{,.asc})
29 sha512sums=('ece3a0c45fec0477d49c223559ee46b28affeb7da488ba972ae032dc61a27d5e293686a0745da96e2cd3761cf4e0695130c326d42ba6f667d6b5110a824965f5'
30             'SKIP')
31 b2sums=('a7c721c5812db2c8a55224d739f06af44b3c2ebf831a7d5deb3a36aa762ca7f4ecb5bbf6698474e85a5d3fe7999c6d8eec194c475054eb4c7804deb00d86bce3'
32         'SKIP')
33 validpgpkeys=('3ECDCBA5FB34D254961CC53F6689E64E3D3664BB') # AppArmor Development Team (AppArmor signing key) <apparmor@lists.ubuntu.com>
34 _core_perl="/usr/bin/core_perl"
36 prepare() {
37   cd $pkgname-$pkgver/libraries/libapparmor/
38   autoreconf -fiv
41 build() {
42   cd $pkgname-$pkgver
44   # export required perl executable locations
45   export MAKEFLAGS+=" POD2MAN=$_core_perl/pod2man"
46   export MAKEFLAGS+=" POD2HTML=$_core_perl/pod2html"
47   export MAKEFLAGS+=" PODCHECKER=$_core_perl/podchecker"
48   export MAKEFLAGS+=" PROVE=$_core_perl/prove"
49   (
50     cd libraries/libapparmor/
51     ./configure \
52       --prefix=/usr \
53       --sbindir=/usr/bin \
54       --with-perl \
55       --with-python \
56       --with-ruby
57     make
58   )
59   make -C binutils
60   make -C parser
61   make -C profiles
62   make -C utils
63   make -C changehat/pam_apparmor
64   make -C changehat/mod_apparmor
65   make -C utils/vim
67   # copy to test location as some tests render the resulting python bytecode
68   # unreproducible: https://gitlab.com/apparmor/apparmor/-/issues/184
69   cd ..
70   cp -av $pkgname-$pkgver $pkgname-$pkgver-test
73 check() {
74   cd $pkgname-$pkgver-test
75   echo "INFO: Running check: libraries/libapparmor"
76   make -C libraries/libapparmor check
77   echo "INFO: Running check binutils"
78   make -C binutils check
79   echo "INFO: Running check parser"
80   make -C parser check
81   # NOTE: the profiles checks are notoriously broken, so run each separately
82   echo "INFO: Running check-abstractions.d profiles"
83   make -C profiles check-abstractions.d
84 #  # many hardcoded paths are not accounted for:
85 #  # https://gitlab.com/apparmor/apparmor/-/issues/137
86 #  echo "INFO: Running check-logprof profiles"
87 #  make -C profiles check-logprof
88   echo "INFO: Running check-parser profiles"
89   make -C profiles check-parser
90   echo "INFO: Running check utils"
91   # we do not care about linting when running tests
92   # https://gitlab.com/apparmor/apparmor/-/issues/121
93   make PYFLAKES='/usr/bin/true' -C utils check
96 package() {
97   depends+=(libcrypt.so)
99   cd $pkgname-$pkgver
100   make -C libraries/libapparmor DESTDIR="$pkgdir" install
101   make -C changehat/pam_apparmor DESTDIR="$pkgdir/usr" install
102   make -C changehat/mod_apparmor DESTDIR="$pkgdir" install
103   make -C binutils DESTDIR="$pkgdir" SBINDIR="$pkgdir/usr/bin" USR_SBINDIR="$pkgdir/usr/bin" install
104   make -C parser -j1 DESTDIR="$pkgdir" SBINDIR="$pkgdir/usr/bin" USR_SBINDIR="$pkgdir/usr/bin" APPARMOR_BIN_PREFIX="$pkgdir/usr/lib/apparmor" install install-systemd
105   make -C profiles DESTDIR="$pkgdir" install
106   make -C utils DESTDIR="$pkgdir" SBINDIR="$pkgdir/usr/bin" USR_SBINDIR="$pkgdir/usr/bin" BINDIR="$pkgdir/usr/bin" VIM_INSTALL_PATH="$pkgdir/usr/share/vim/vimfiles/syntax" install
108   # set file mode to allow the perl library to be stripped:
109   # https://gitlab.com/apparmor/apparmor/issues/34
110   find "$pkgdir/usr/lib/perl5/" -type f -iname "*.so" -exec chmod 755 {} \;
112   # remove empty core_perl directory:
113   # https://gitlab.com/apparmor/apparmor/issues/40
114   rm -rv "${pkgdir}"/usr/lib/perl5/*/core_perl
115   # move ruby bindings to vendor_ruby:
116   # https://gitlab.com/apparmor/apparmor/issues/35
117   mv -v "$pkgdir/usr/lib/ruby/"{site,vendor}_ruby
118   # adding files below /etc/apparmor.d to backup array
119   cd "$pkgdir"
120   # trick extract_function_variable() in makepkg into not detecting the
121   # backup array modification and adding remaining configuration files
122   [[ /usr/bin/true ]] && backup=( ${backup[@]} $(find "etc/$pkgname.d/" -type f | LC_ALL=C sort) )