#!/usr/bin/bash # JOBoRun : Jwm OpenBox Obarun RUNit # Maintainer : Joe Bo Run # PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" # Website : https://pozol.eu #-----------------------------------------| DESCRIPTION |--------------------------------------- pkgname=apparmor pkgver=3.1.3 pkgrel=02 pkgdesc="Mandatory Access Control (MAC) using Linux Security Module (LSM) w/o systemd" url="https://gitlab.com/apparmor/apparmor" depends=(audit glibc pam python) makedepends=(apache libxcrypt python-setuptools ruby swig) checkdepends=(dejagnu perl-locale-gettext python-notify2 python-psutil) optdepends=('perl: for perl bindings' 'python-notify2: for aa-notify' 'python-psutil: for aa-notify' 'ruby: for ruby bindings') provides=(libapparmor.so) backup=('etc/apparmor/easyprof.conf' 'etc/apparmor/logprof.conf' 'etc/apparmor/notify.conf' 'etc/apparmor/parser.conf' 'etc/apparmor/severity.db') # NOTE: debug package currently contains invalid /build dir # LTO is currently still broken: https://gitlab.com/apparmor/apparmor/-/issues/214 #options=(!lto) #options=(debug) ## uncomment this line to have the debug pkg produced source=(https://launchpad.net/$pkgname/${pkgver%.[0-9]}/$pkgver/+download/$pkgname-$pkgver.tar.gz{,.asc}) _core_perl="/usr/bin/core_perl" prepare() { # # fix issues with python-setuptools version detection: https://gitlab.com/apparmor/apparmor/-/issues/259 # # and hardcoded LDPATH/ PYTHONPATH https://gitlab.com/apparmor/apparmor/-/issues/39 # patch -Np1 -d $pkgname-$pkgver -i ../$pkgname-3.0.6-python.patch cd $pkgname-$pkgver/libraries/libapparmor/ autoreconf -fiv } build() { local configure_options=( --prefix=/usr --sbindir=/usr/bin --with-perl --with-python --with-ruby --without-systemd ) cd "${pkgname}-${pkgver}" # export required perl executable locations export MAKEFLAGS+=" POD2MAN=${_core_perl}/pod2man" export MAKEFLAGS+=" POD2HTML=${_core_perl}/pod2html" export MAKEFLAGS+=" PODCHECKER=${_core_perl}/podchecker" export MAKEFLAGS+=" PROVE=${_core_perl}/prove" ( cd "libraries/libapparmor/" ./configure "${configure_options[@]}" make ) make -C binutils make -C parser make -C profiles make -C utils make -C changehat/pam_apparmor make -C changehat/mod_apparmor make -C utils/vim # copy to test location as some tests render the resulting python bytecode # unreproducible: https://gitlab.com/apparmor/apparmor/-/issues/184 cd .. cp -av "${pkgname}-${pkgver}" "${pkgname}-${pkgver}-test" } check() { cd "$pkgname-$pkgver-test" echo "INFO: Running check: libraries/libapparmor" make -C libraries/libapparmor check echo "INFO: Running check binutils" make -C binutils check echo "INFO: Running check parser" make -C parser check # NOTE: the profiles checks are notoriously broken, so run each separately echo "INFO: Running check-abstractions.d profiles" make -C profiles check-abstractions.d # # many hardcoded paths are not accounted for: # # https://gitlab.com/apparmor/apparmor/-/issues/137 # echo "INFO: Running check-logprof profiles" # make -C profiles check-logprof echo "INFO: Running check-parser profiles" make -C profiles check-parser echo "INFO: Running check utils" # we do not care about linting when running tests # https://gitlab.com/apparmor/apparmor/-/issues/121 make PYFLAKES='/usr/bin/true' -C utils check } package() { depends+=('libcrypt.so') cd "$pkgname-$pkgver" make -C libraries/libapparmor DESTDIR="${pkgdir}" install make -C changehat/pam_apparmor DESTDIR="${pkgdir}/usr" install make -C changehat/mod_apparmor DESTDIR="${pkgdir}" install make -C binutils DESTDIR="${pkgdir}" \ SBINDIR="${pkgdir}/usr/bin" \ USR_SBINDIR="${pkgdir}/usr/bin" \ install make -C parser -j1 DESTDIR="${pkgdir}" \ SBINDIR="${pkgdir}/usr/bin" \ USR_SBINDIR="${pkgdir}/usr/bin" \ APPARMOR_BIN_PREFIX="${pkgdir}/usr/lib/apparmor" \ # install make -C profiles DESTDIR="${pkgdir}" install 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 # set file mode to allow the perl library to be stripped: # https://gitlab.com/apparmor/apparmor/issues/34 find "${pkgdir}/usr/lib/perl5/" -type f -iname "*.so" -exec chmod 755 {} \; # remove empty core_perl directory: # https://gitlab.com/apparmor/apparmor/issues/40 rm -rv "${pkgdir}"/usr/lib/perl5/*/core_perl # move ruby bindings to vendor_ruby: # https://gitlab.com/apparmor/apparmor/issues/35 mv -v "${pkgdir}/usr/lib/ruby/"{site,vendor}_ruby # adding files below /etc/apparmor.d to backup array cd "${pkgdir}" # trick extract_function_variable() in makepkg into not detecting the # backup array modification and adding remaining configuration files [[ /usr/bin/true ]] && backup=( ${backup[@]} $(find "etc/${pkgname}.d/" -type f | LC_ALL=C sort) ) rm -rf $pkgdir/usr/lib/systemd rm -rf $pkgdir/etc/apparmor.d/abstractions/nss-systemd rm -rf $pkgdir/etc/apparmor.d/abstractions/libpam-systemd } #---- arch license gpg-key & sha256sums ---- arch=(x86_64) license=(GPL2 LGPL2.1) validpgpkeys=('3ECDCBA5FB34D254961CC53F6689E64E3D3664BB') # AppArmor Development Team (AppArmor signing key) sha256sums=(b8ffac45d0b283afe574ddd5542142ba1a62c354df110cff862b99201f29c843 # apparmor-3.1.3.tar.gz c31ba39f3f7e23b6a3f7f301435fb9fa5958807ab477398a5c803e0d8dd18f67) # apparmor-3.1.3.tar.gz.asc ## 0d255410a9c816a6abcf868b7bc99ba11ea60ca5ff7123c82f46a5c07f577ee2 apparmor-3.1.3-02-x86_64.pkg.tar.lz