#
# Conditional build:
-%bcond_without tests # don't perform "make tests"
+%bcond_with tests # don't perform "make tests"
%bcond_with dynamic # link libstdc++ and libgcc dynamically
#
Summary: AppArmor userlevel parser utility
Summary(pl.UTF-8): Narzędzie przestrzeni użytkownika do przetwarzania AppArmor
Name: apparmor-parser
-Version: 2.9.1
+Version: 3.1.7
Release: 1
Epoch: 1
License: GPL v2
Group: Applications/System
-Source0: http://launchpad.net/apparmor/2.9/%{version}/+download/apparmor-%{version}.tar.gz
-# Source0-md5: 0e036d69d7ebfb9cc113ed301b8a6c5d
+Source0: https://launchpad.net/apparmor/3.1/%{version}/+download/apparmor-%{version}.tar.gz
+# Source0-md5: eee581ab969f708f1e4c6f2847c0c7a6
Source1: %{name}.init
Patch0: %{name}-pld.patch
-URL: http://apparmor.wiki.kernel.org/
+# Drop when upstream does cache rebuild based on hash and not on mtime
+Patch1: %{name}-cache-rebuild.patch
+Patch2: cap.patch
+URL: https://wiki.apparmor.net/
BuildRequires: bison
BuildRequires: flex
BuildRequires: gettext-tools
-BuildRequires: libapparmor-devel
+BuildRequires: libapparmor-devel >= 1:%{version}
BuildRequires: libcap-devel
BuildRequires: libstdc++-devel
# for apparmor_profile which links statically sometimes
%endif
BuildRequires: perl-tools-pod
%if %{with tests}
+%if %(test -e /sys/kernel/security/apparmor/features ; echo $?)
+# apparmor enabled kernel running and fs mounted
+BuildRequires: /sys/kernel/security/apparmor/features
+%endif
BuildRequires: perl-Locale-gettext
BuildRequires: perl-Test-Harness
BuildRequires: perl-tools-devel
+Requires(post,preun): /sbin/chkconfig
%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%prep
%setup -q -n apparmor-%{version}
-%patch0 -p0
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
+# avoid unnecessary rebuilding on install
+%{__sed} -i -e '/^\.PHONY: af_names.h/d' parser/Makefile
+%{__sed} -i -e '/^\.\(PHONY\|SILENT\): \$(AAREOBJECT)/d' parser/Makefile
%build
%{__make} -j1 -C parser \
%install
rm -rf $RPM_BUILD_ROOT
-cd parser
-
-install -d $RPM_BUILD_ROOT{%{_mandir}/man{5,7,8},%{_sysconfdir}/{apparmor,rc.d/init.d},/sbin,/subdomain,/var/lib/apparmor}
+install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,/lib/apparmor,/var/cache/apparmor}
-install apparmor_parser $RPM_BUILD_ROOT/sbin
-install subdomain.conf $RPM_BUILD_ROOT%{_sysconfdir}/apparmor
-install rc.apparmor.functions $RPM_BUILD_ROOT%{_sysconfdir}/apparmor
-install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/apparmor
-install *.5 $RPM_BUILD_ROOT%{_mandir}/man5
-install *.7 $RPM_BUILD_ROOT%{_mandir}/man7
-install *.8 $RPM_BUILD_ROOT%{_mandir}/man8
-
-%{__make} -j1 -C po install \
+%{__make} -C parser install \
DESTDIR=$RPM_BUILD_ROOT \
- NAME=%{name}
+ DISTRO=systemd \
+ SYSTEMD_UNIT_DIR=$RPM_BUILD_ROOT%{systemdunitdir} \
+ USE_SYSTEM=1
+
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/apparmor
-cd ..
%find_lang %{name}
%clean
%defattr(644,root,root,755)
%doc parser/README
%attr(755,root,root) /sbin/apparmor_parser
+%attr(755,root,root) %{_sbindir}/aa-teardown
%dir %{_sysconfdir}/apparmor
-%{_sysconfdir}/apparmor/rc.apparmor.functions
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor/subdomain.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor/parser.conf
%attr(754,root,root) /etc/rc.d/init.d/apparmor
-/subdomain
-/var/lib/apparmor
+%{systemdunitdir}/apparmor.service
+%dir /lib/apparmor
+%attr(755,root,root) /lib/apparmor/profile-load
+/lib/apparmor/rc.apparmor.functions
+%attr(754,root,root) /lib/apparmor/apparmor.systemd
+%attr(700,root,root) %dir /var/cache/apparmor
+%dir /var/lib/apparmor
%{_mandir}/man5/apparmor.d.5*
-%{_mandir}/man5/subdomain.conf.5*
%{_mandir}/man7/apparmor.7*
+%{_mandir}/man7/apparmor_xattrs.7*
+%{_mandir}/man8/aa-teardown.8*
%{_mandir}/man8/apparmor_parser.8*