# Mantainer (Arch): Thomas Kuther # Contributor (Arch): Gianni Vialetto # Contributor (Arch): Paul N. Maxwell # Contributor (Arch): Thomas Mudrunka # Contributor (Arch): Max Fierke # Maintainer: Omar Vega Ramos pkgbase=apparmor pkgname=($pkgbase apparmor-parser apparmor-libapparmor apparmor-utils apparmor-profiles apparmor-pam apparmor-vim) pkgver=2.10 #_majorver=${pkgver%.*} # bleh, AUR... _majorver=2.10 pkgrel=2 pkgdesc='Linux application security framework - mandatory access control for programs' arch=('i686' 'x86_64') license=('GPL') url='http://wiki.apparmor.net/index.php/Main_Page' makedepends=('bzr' 'flex' 'swig' 'perl' 'python' 'perl-locale-gettext' 'perl-rpc-xml' 'audit') source=("https://launchpad.net/$pkgname/${_majorver}/$pkgver/+download/$pkgname-$pkgver.tar.gz" "apparmor_load.sh" "apparmor_unload.sh" "apparmor.service") sha256sums=('4d0e224257a29671b694bd9054edf0dd213aa690fd02844ecf3329b86ac506f4' 'd2fea5a62bacae350cfe56bad1b293c12afe803bec10e546b901324e582e89af' '076aebfa815543f85d26215056a921996fbff14d1678ddfa07ab50dbfda94ba1' 'eea47ec2a3fb0c1104193bed91586cfccda745f2e0a473f6d1d2a0d2fe42c413') #Configuration core_perl_dir='/usr/bin/core_perl' export MAKEFLAGS+=" POD2MAN=${core_perl_dir}/pod2man" export MAKEFLAGS+=" POD2HTML=${core_perl_dir}/pod2html" export MAKEFLAGS+=" PROVE=${core_perl_dir}/prove" export MAKEFLAGS+=" PYTHON=python3" prepare() { cd "${srcdir}/${pkgbase}-${pkgver}/parser" # avoid depend on texlive-latex sed -i -e 's/pdflatex/true/g' Makefile cd "${srcdir}/${pkgbase}-${pkgver}/utils" # Set Arch paths sed -e '/logfiles/ s/syslog /syslog.log /g' \ -e '/logfiles/ s/messages/messages.log/g' \ -e '/parser/ s# /sbin/# /usr/bin/#g' \ -i logprof.conf # do not build/install vim file with utils package (causes ref to $srcdir and wrong location) sed -i '/vim/d' Makefile cd "${srcdir}/${pkgbase}-${pkgver}/profiles/apparmor.d" # /usr merge vs. profiles for i in `find . -name "*sbin*"`; do sed -i -e 's@sbin@bin@g' ${i} && mv ${i} ${i/sbin/bin}; done for i in klogd ping syslog-ng syslogd; do sed -e "s@/bin/${i}@/usr/bin/${i}@g" \ -e "s@bin\.${i}@usr\.bin\.${i}@g" \ -i bin.${i} && \ mv bin.${i} usr.bin.${i} done } build() { msg2 "Building: apparmor-libapparmor" cd "${srcdir}/${pkgbase}-${pkgver}/libraries/libapparmor" unset PERL_MM_OPT NOCONFIGURE=1 ./autogen.sh ./configure --prefix=/usr --sbindir=/usr/bin --with-perl --with-python make cd "${srcdir}/${pkgbase}-${pkgver}" msg2 "Building: apparmor-parser" make -C parser msg2 "Building: apparmor-utils" make -C utils msg2 "Building: apparmor-profiles" make -C profiles msg2 "Building: apparmor-pam" make -C changehat/pam_apparmor msg2 "Building: apparmor-vim" make -C utils/vim -j1 } package_apparmor() { pkgdesc='Linux application security framework - mandatory access control for programs (metapackage)' depends=(apparmor-parser apparmor-libapparmor apparmor-utils apparmor-profiles apparmor-pam apparmor-vim) optdepends=('linux-apparmor: an arch kernel with AppArmor patches') install='apparmor.install' } package_apparmor-parser() { pkgdesc='AppArmor parser - loads AA profiles to kernel module' depends=('apparmor-libapparmor' 'bash') cd "${srcdir}/${pkgbase}-${pkgver}" make -C parser install DESTDIR=${pkgdir} mv "${pkgdir}/lib" "${pkgdir}/usr/lib" mv "${pkgdir}/sbin" "${pkgdir}/usr/bin" } package_apparmor-libapparmor() { pkgdesc='AppArmor library' makedepends=('swig' 'perl' 'python') depends=('python') cd "${srcdir}/${pkgbase}-${pkgver}" make -C libraries/libapparmor install DESTDIR=${pkgdir} install -D -m644 "libraries/libapparmor/swig/perl/LibAppArmor.pm" "${pkgdir}/usr/lib/perl5/vendor_perl/" } package_apparmor-utils() { pkgdesc='AppArmor userspace utilities' depends=('perl' 'perl-locale-gettext' 'perl-term-readkey' 'perl-file-tail' 'perl-rpc-xml' 'python' 'bash') install='apparmor-utils.install' cd "${srcdir}/${pkgbase}-${pkgver}" make -C utils install DESTDIR=${pkgdir} BINDIR=${pkgdir}/usr/bin install -D -m755 "${srcdir}/apparmor_load.sh" "${pkgdir}/usr/bin/apparmor_load.sh" install -D -m755 "${srcdir}/apparmor_unload.sh" "${pkgdir}/usr/bin/apparmor_unload.sh" install -D -m644 "${srcdir}/apparmor.service" "${pkgdir}/usr/lib/systemd/system/apparmor.service" } package_apparmor-profiles() { pkgdesc='AppArmor sample pre-made profiles' depends=(apparmor-parser) # backup /etc/apparmor.d/* so using logprof is safe cd "${srcdir}/${pkgbase}-${pkgver}/profiles/apparmor.d" declare -a _profiles=(`find -type f|sed 's@./@etc/apparmor.d/@'`) backup=(`echo ${_profiles[@]}`) cd "${srcdir}/${pkgbase}-${pkgver}" make -C profiles install DESTDIR=${pkgdir} } package_apparmor-pam() { pkgdesc='AppArmor PAM library' depends=('apparmor-libapparmor' 'pam') cd "${srcdir}/${pkgbase}-${pkgver}" make -C changehat/pam_apparmor install DESTDIR=${pkgdir}/usr install -D -m644 changehat/pam_apparmor/README "${pkgdir}/usr/share/doc/apparmor/README.pam_apparmor" } package_apparmor-vim() { pkgdesc='AppArmor VIM support' depends=('vim') cd "${srcdir}/${pkgbase}-${pkgver}/utils/vim" install -D -m644 apparmor.vim \ "${pkgdir}/usr/share/vim/vimfiles/syntax/apparmor.vim" } # vim:set ts=2 sw=2 et: