# Template file for 'apparmor'.
pkgname=apparmor
version=2.13.3
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 swig python3"
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=2e32413a83108c3213d60f439ec2865432eb839a577425ee92489c45ac8ce7e4
patch_args="-Np1"

if [ -z "$CROSS_BUILD" ]; then
	configure_args="--with-perl --with-python"
fi

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() {
	archs=noarch
	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
	}
}
