void-packages/srcpkgs/apparmor/template
2020-10-12 17:33:56 -04:00

106 lines
3.1 KiB
Bash

# Template file for 'apparmor'
pkgname=apparmor
version=2.13.4
revision=4
wrksrc="${pkgname}-v${version}"
build_wrksrc=libraries/libapparmor
build_style=gnu-configure
conf_files="/etc/apparmor.d/local/* /etc/apparmor/*"
make_dirs="/etc/apparmor.d/disable 0755 root root"
hostmakedepends="bison flex autoconf automake libtool gettext swig python3 which"
makedepends="perl python3-devel"
depends="runit-void-apparmor python3 libapparmor"
checkdepends="dejagnu"
short_desc="Mandatory access control to restrict programs"
maintainer="Olivier Mauras <olivier@mauras.ch>"
license="GPL-2.0-only, LGPL-2.1-only"
homepage="https://gitlab.com/apparmor/apparmor"
distfiles="https://gitlab.com/apparmor/apparmor/-/archive/v${version}/apparmor-v${version}.tar.gz"
checksum=4f45e5a5de59b72039c6cf218bb61cb4fc42eeb7f47ca109a58238896394a33b
patch_args="-Np1"
if [ -z "$CROSS_BUILD" ]; then
configure_args="--with-perl --with-python"
fi
post_patch() {
# Make.rules feeds some system headers to the C preprocessor to produce
# lists of capability and address-family names that, respectively,
# populate `parser/cap_names.h` and `parser/af_names.h`. The escaping
# backslash in the '\#include" directives here is seen by the
# preprocessor, causing it to skip the system headers and produce empty
# files. Removing the backslash ensures correct behavior.
vsed -i ${wrksrc}/common/Make.rules -e 's/\\#include </#include </'
}
pre_configure() {
autoreconf -if
}
pre_build() {
# Replace release profiles with our own
cd ${wrksrc}
# Put in place our own profiles
cp ${FILESDIR}/profiles/* profiles/apparmor.d/
}
post_build() {
cd ${wrksrc}
sed -i 's#$(DESTDIR)/sbin#$(DESTDIR)/usr/bin#g' parser/Makefile
make ${makejobs} -C binutils
make ${makejobs} -C utils
make ${makejobs} -C parser
make ${makejobs} -C profiles
}
post_install() {
cd ${wrksrc}
make DESTDIR=${DESTDIR} install -C binutils
make DESTDIR=${DESTDIR} BINDIR=${DESTDIR}/usr/bin install -C utils
make DESTDIR=${DESTDIR} APPARMOR_BIN_PREFIX=${DESTDIR}/usr/lib/apparmor \
SBINDIR=${DESTDIR}/usr/bin USR_SBINDIR=${DESTDIR}/usr/bin install -C parser
make DESTDIR=${DESTDIR} install -C profiles
# Put Vim syntax in the correct place
mkdir -p ${DESTDIR}/usr/share/vim/vim80/syntax/
mv ${DESTDIR}/usr/share/apparmor/apparmor.vim ${DESTDIR}/usr/share/vim/vim80/syntax/
# requires perl bindings not generated when cross-compiling
if [ "$CROSS_BUILD" ]; then
rm -f ${DESTDIR}/usr/bin/aa-notify
fi
}
apparmor-vim_package() {
short_desc+=" - Vim syntax"
depends="vim"
pkg_install() {
vmove usr/share/vim/vim80/syntax/apparmor.vim
vmove usr/share/man/man5/apparmor.vim.5
}
}
libapparmor_package() {
short_desc+=" - Library"
pkg_install() {
vmove "usr/lib/libapparmor.so*"
if [ -z "$CROSS_BUILD" ]; then
vmove usr/lib/perl5
vmove "${py3_sitelib}/LibAppArmor*"
fi
vmove usr/share/man/man2
vmove usr/share/man/man3
}
}
libapparmor-devel_package() {
short_desc+=" - Library development files"
depends="lib${sourcepkg}-${version}_${revision}"
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
vmove "usr/lib/*.so"
vmove usr/lib/pkgconfig
}
}