All pastes #735271 Raw Edit

ut2004-selinux.spec

public text v1 · immutable
·published 2007-10-13 13:44 UTC
rendered paste body
%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 <dgrift1@gmail.com> 1.0.0-0.1
- Initial version.