diff --git a/.gitignore b/.gitignore index 13d0dbf..6ec5802 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /dist-git-0.10.tar.gz +/dist-git-0.11.tar.gz diff --git a/dist-git.spec b/dist-git.spec index 300fc48..dc95701 100644 --- a/dist-git.spec +++ b/dist-git.spec @@ -1,5 +1,10 @@ +%global selinux_variants mls targeted +%global selinux_policyver %(%{__sed} -e 's,.*selinux-policy-\\([^/]*\\)/.*,\\1,' /usr/share/selinux/devel/policyhelp || echo 0.0.0) +%global modulename dist_git + + Name: dist-git -Version: 0.10 +Version: 0.11 Release: 1%{?dist} Summary: Package source version control system @@ -22,7 +27,6 @@ Requires: gitolite3 Requires: perl(Sys::Syslog) Requires: git-daemon Requires: python-requests -Requires: /usr/sbin/semanage Requires: mod_ssl Requires: fedmsg Requires: cronie @@ -33,15 +37,51 @@ Dist Git is a remote Git repository specifically designed to hold RPM package sources. +%package selinux +Summary: SELinux support for dist-git + +BuildRequires: checkpolicy +BuildRequires: policycoreutils +BuildRequires: selinux-policy-devel +BuildRequires: hardlink + +Requires: %name = %version-%release +%if "%{_selinux_policy_version}" != "" +Requires: selinux-policy >= %{selinux_policyver} +%endif +Requires(post): /usr/sbin/semodule, /sbin/restorecon +Requires(postun): /usr/sbin/semodule, /sbin/restorecon + + +%description selinux +Dist Git is a remote Git repository specifically designed to hold RPM +package sources. + +This package includes SELinux support. + + %prep %setup -q %build - +# ------------------------------------------------------------------------------ +# SELinux +# ------------------------------------------------------------------------------ +cd selinux +for selinuxvariant in %{selinux_variants} +do + make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile + mv %{modulename}.pp %{modulename}.pp.${selinuxvariant} + make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile clean +done +cd - %pre +# ------------------------------------------------------------------------------ +# Users and Groups +# ------------------------------------------------------------------------------ getent group packager > /dev/null || \ groupadd -r packager @@ -53,9 +93,7 @@ getent passwd gen-acls > /dev/null || \ -d %{_sharedstatedir}/dist-git/git gen-acls - %install - # ------------------------------------------------------------------------------ # /usr/share/ .... static files # ------------------------------------------------------------------------------ @@ -63,7 +101,6 @@ install -d %{buildroot}%{_datadir}/dist-git cp -a scripts/dist-git/* %{buildroot}%{_datadir}/dist-git/ - # ------------------------------------------------------------------------------ # /etc/ .......... config files # ------------------------------------------------------------------------------ @@ -80,7 +117,6 @@ cp -a configs/httpd/dist-git/* %{buildroot}%{_sysconfdir}/httpd/conf.d/dist-git/ cp -a configs/cron/* %{buildroot}%{_sysconfdir}/cron.d/dist-git/ cp -a configs/systemd/* %{buildroot}%{_unitdir}/ - # ------------------------------------------------------------------------------ # /var/lib/ ...... dynamic persistent files # ------------------------------------------------------------------------------ @@ -114,11 +150,43 @@ ln -f -s %{_sharedstatedir}/dist-git/gitolite \ ln -f -s %{_sharedstatedir}/dist-git/git/rpms \ %{buildroot}%{_sharedstatedir}/dist-git/git/repositories +# ------------------------------------------------------------------------------ +# SELinux +# ------------------------------------------------------------------------------ +cd selinux +for selinuxvariant in %{selinux_variants} +do + install -d %{buildroot}%{_datadir}/selinux/${selinuxvariant} + install -p -m 644 %{modulename}.pp.${selinuxvariant} \ + %{buildroot}%{_datadir}/selinux/${selinuxvariant}/%{modulename}.pp +done +cd - +/usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux + + +%post selinux +for selinuxvariant in %{selinux_variants} +do + /usr/sbin/semodule -s ${selinuxvariant} -i \ + %{_datadir}/selinux/${selinuxvariant}/%{modulename}.pp &> /dev/null || : +done +%{_sbindir}/restorecon -Rv %{_sharedstatedir}/dist-git || : + + +%postun selinux +if [ $1 -eq 0 ] ; then + for selinuxvariant in %{selinux_variants} + do + /usr/sbin/semodule -s ${selinuxvariant} -r %{modulename} &> /dev/null || : + done +fi %files - +# ------------------------------------------------------------------------------ +# Docs +# ------------------------------------------------------------------------------ %license LICENSE %doc README.md @@ -128,7 +196,6 @@ ln -f -s %{_sharedstatedir}/dist-git/git/rpms \ %dir %{_datadir}/dist-git %attr (755, -, -) %{_datadir}/dist-git/* - # ------------------------------------------------------------------------------ # /etc/ .......... config files # ------------------------------------------------------------------------------ @@ -145,7 +212,6 @@ ln -f -s %{_sharedstatedir}/dist-git/git/rpms \ %{_unitdir}/dist-git@.service %{_unitdir}/dist-git.socket - # ------------------------------------------------------------------------------ # /var/lib/ ...... dynamic persistent files # ------------------------------------------------------------------------------ @@ -186,8 +252,15 @@ ln -f -s %{_sharedstatedir}/dist-git/git/rpms \ %{_sharedstatedir}/dist-git/git/.gitolite.rc +%files selinux +%defattr(-,root,root,0755) +%doc selinux/* +%{_datadir}/selinux/*/%{modulename}.pp + %changelog +* Tue May 05 2015 Adam Samalik 0.11-1 +- SELinux subpackage * Mon Apr 27 2015 Adam Samalik 0.10-1 - perl require and files update (asamalik@redhat.com) diff --git a/sources b/sources index 7cf4883..f778c0d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -58f5139035bf9ec7ca7814d6a53017dc dist-git-0.10.tar.gz +1c82ae7de4beec883efa1b11c5518eac dist-git-0.11.tar.gz