selinux subpackage

This commit is contained in:
Adam Samalik 2015-05-06 14:49:17 +02:00
commit d0ce67e727
3 changed files with 85 additions and 11 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
/dist-git-0.10.tar.gz
/dist-git-0.11.tar.gz

View file

@ -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 <asamalik@redhat.com> 0.11-1
- SELinux subpackage
* Mon Apr 27 2015 Adam Samalik <asamalik@redhat.com> 0.10-1
- perl require and files update (asamalik@redhat.com)

View file

@ -1 +1 @@
58f5139035bf9ec7ca7814d6a53017dc dist-git-0.10.tar.gz
1c82ae7de4beec883efa1b11c5518eac dist-git-0.11.tar.gz