%define selinux_variants targeted strict mls %define selinux_policyver %(sed -e 's,.*selinux-policy-\\([^/]*\\)/.*,\\1,' /usr/share/selinux/devel/policyhelp) %define modulename ut2004 Name: ut2004-selinux Version: 1.0.0 Release: 0.1%{?dist} Summary: SELinux policy module Group: Examples/SELinux License: GPLv3+ URL: http://www.example.com/myapp/ Source0: ut2004-selinux-%{version}.tar.gz Source1: %{modulename}.if Source2: %{modulename}.te Source3: %{modulename}.fc Source4: %{modulename}.xml BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: checkpolicy, selinux-policy-devel, hardlink %if "%{selinux_policyver}" != "" Requires: selinux-policy >= %{selinux_policyver} %endif Requires(post): /usr/sbin/semodule, /sbin/fixfiles, ut2004-selinux Requires(postun): /usr/sbin/semodule %description SELinux policy module package for Unreal Tournament 2004. %prep %setup -q mkdir selinux cp -p %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} selinux %build 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 - %install rm -rf %{buildroot} 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 %clean rm -rf %{buildroot} %post for selinuxvariant in %{selinux_variants} do /usr/sbin/semodule -s ${selinuxvariant} -i %{_datadir}/selinux/${selinuxvariant}/%{modulename}.pp &> /dev/null || : done /sbin/restorecon -R -F -v /home/*/.ut2004 &> /dev/null || : /sbin/restorecon -R -F -v /usr/local/games/ut2004/System/ut2004-bin &> /dev/null || : /usr/sbin/semanage port -a -t ut2004_port_t -p tcp 28902 /usr/sbin/semanage port -a -t ut2004_port_t -p udp 10777 /usr/sbin/semanage port -a -t ut2004_port_t -p udp 7788 /usr/sbin/semanage port -a -t ut2004_port_t -p udp 7787 /usr/sbin/semanage port -a -t ut2004_port_t -p udp 7778 /usr/sbin/semanage port -a -t ut2004_port_t -p udp 7777 /sbin/fixfiles -R ut2004-selinux restore || : %postun if [ $1 -eq 0 ]; then /usr/sbin/semanage port -d -t ut2004_port_t -p tcp 28902 /usr/sbin/semanage port -d -t ut2004_port_t -p udp 10777 /usr/sbin/semanage port -d -t ut2004_port_t -p udp 7788 /usr/sbin/semanage port -d -t ut2004_port_t -p udp 7787 /usr/sbin/semanage port -d -t ut2004_port_t -p udp 7778 /usr/sbin/semanage port -d -t ut2004_port_t -p udp 7777 for selinuxvariant in %{selinux_variants} do /usr/sbin/semodule -s ${selinuxvariant} -r %{modulename} done /sbin/restorecon -R -F -v /home/*/.ut2004 &> /dev/null || : /sbin/restorecon -R -F -v /usr/local/games/ut2004/System/ut2004-bin &> /dev/null || : fi %files %defattr(-,root,root,0755) %doc ChangeLog AUTHOR COPYING selinux/* %{_datadir}/selinux/*/%{modulename}.pp %changelog * Wed Oct 12 2007 Dominick Grift 1.0.0-0.1 - Initial version.