-
-%bcond_without tests
-
-%define _ver 2.0
-%define _svnrel 150
+#
+# Conditional build:
+%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: %{_ver}.%{_svnrel}
-Release: 0.3
-License: GPL
+Version: 3.1.7
+Release: 1
+Epoch: 1
+License: GPL v2
Group: Applications/System
-Source0: http://forge.novell.com/modules/xfcontent/private.php/apparmor/Development%20-%20October%20Snapshot/%{name}-%{_ver}-%{_svnrel}.tar.gz
-# Source0-md5: cbb25435e4353b10b5fdd96f80c854b9
+Source0: https://launchpad.net/apparmor/3.1/%{version}/+download/apparmor-%{version}.tar.gz
+# Source0-md5: eee581ab969f708f1e4c6f2847c0c7a6
Source1: %{name}.init
Patch0: %{name}-pld.patch
-Patch1: %{name}-no-fdopendir.patch
-Patch2: %{name}-avoid-pushpop.patch
-Patch3: %{name}-init-args.patch
-URL: http://forge.novell.com/modules/xfmod/project/?apparmor
+# 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-devel
+BuildRequires: gettext-tools
+BuildRequires: libapparmor-devel >= 1:%{version}
BuildRequires: libcap-devel
-BuildRequires: perl-Test-Harness >= 2.64
+BuildRequires: libstdc++-devel
+# for apparmor_profile which links statically sometimes
+%if %{without dynamic}
+BuildRequires: libapparmor-static
+BuildRequires: libstdc++-static
+%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)
%description
SubDomain.
%prep
-%setup -q -n %{name}-%{_ver}
+%setup -q -n apparmor-%{version}
%patch0 -p1
%patch1 -p1
-%patch2 -p2
-%patch3 -p2
+%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} \
+%{__make} -j1 -C parser \
CC="%{__cc}" \
- CFLAGS="%{rpmcflags}"
+ CXX="%{__cxx}" \
+ CFLAGS="%{rpmcflags} %{rpmcppflags}" \
+ %{?with_dynamic:AAREOBJECTS='$(AAREOBJECT)' AARE_LDFLAGS= AALIB=-lapparmor} \
+ USE_SYSTEM=1
-%{?with_tests:%{__make} tests}
+%if %{with tests}
+%{__make} -j1 -C parser tests \
+ CC="%{__cc}" \
+ %{?with_dynamic:AAREOBJECTS='$(AAREOBJECT)' AARE_LDFLAGS=-lstdc++ AALIB=-lapparmor} \
+ USE_SYSTEM=1
+%endif
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,/lib/apparmor,/var/cache/apparmor}
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{apparmor,rc.d/init.d},/sbin,/subdomain,/var/lib/apparmor}
+%{__make} -C parser install \
+ DESTDIR=$RPM_BUILD_ROOT \
+ DISTRO=systemd \
+ SYSTEMD_UNIT_DIR=$RPM_BUILD_ROOT%{systemdunitdir} \
+ USE_SYSTEM=1
-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 %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/apparmor
-%{__make} -C po install \
- DESTDIR=$RPM_BUILD_ROOT \
- NAME=%{name}
%find_lang %{name}
%clean
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc README
+%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
-#%attr(754,root,root) /etc/rc.d/init.d/aaeventd
-/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}/man7/apparmor.7*
+%{_mandir}/man7/apparmor_xattrs.7*
+%{_mandir}/man8/aa-teardown.8*
+%{_mandir}/man8/apparmor_parser.8*