diff --git a/refpolicy/support/selinux-policy-refpolicy.spec b/refpolicy/support/selinux-policy-refpolicy.spec index dfa575c..4ceaf73 100644 --- a/refpolicy/support/selinux-policy-refpolicy.spec +++ b/refpolicy/support/selinux-policy-refpolicy.spec @@ -1,17 +1,19 @@ -%define polname refpolicy -%define type targeted-mcs %define distro redhat %define direct_initrc y %define monolithic n -Summary: SELinux %{polname} policy configuration -Name: selinux-policy-%{polname} +%define polname1 targeted +%define type1 targeted-mcs +%define polname2 strict +%define type2 strict-mcs +Summary: SELinux policy configuration +Name: selinux-policy Version: 20051019 Release: 1 License: GPL Group: System Environment/Base Source: refpolicy-%{version}.tar.bz2 Url: http://serefpolicy.sourceforge.net -BuildRoot: %{_tmppath}/%{polname}-buildroot +BuildRoot: %{_tmppath}/refpolicy-buildroot BuildArch: noarch # FIXME Need to ensure these have correct versions BuildRequires: checkpolicy m4 policycoreutils python make gcc @@ -23,54 +25,163 @@ SELinux Reference Policy - modular. %prep %setup -q +make conf %build -make conf -make NAME=%{polname} TYPE=%{type} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} base.pp -make NAME=%{polname} TYPE=%{type} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} modules %install -rm -fR $RPM_BUILD_ROOT -%{__mkdir} -p $RPM_BUILD_ROOT/%{_usr}/share/selinux/%{polname}/%{type} -%{__cp} *.pp $RPM_BUILD_ROOT/%{_usr}/share/selinux/%{polname}/%{type} +%{__rm} -fR $RPM_BUILD_ROOT +make NAME=%{polname1} TYPE=%{type1} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} base.pp +make NAME=%{polname1} TYPE=%{type1} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} modules +%{__mkdir} -p $RPM_BUILD_ROOT/%{_usr}/share/selinux/%{polname1}/%{type1} +%{__cp} *.pp $RPM_BUILD_ROOT/%{_usr}/share/selinux/%{polname1}/%{type1} +%{__mkdir} -p $RPM_BUILD_ROOT/%{_sysconfdir}/selinux/%{polname1}/policy +%{__mkdir} -p $RPM_BUILD_ROOT/%{_sysconfdir}/selinux/%{polname1}/contexts/files +make NAME=%{polname1} TYPE=%{type1} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=y DESTDIR=$RPM_BUILD_ROOT install-appconfig +make NAME=%{polname1} TYPE=%{type1} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} DESTDIR=$RPM_BUILD_ROOT $RPM_BUILD_ROOT%{_sysconfdir}/selinux/%{polname1}/users/local.users +make NAME=%{polname1} TYPE=%{type1} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} DESTDIR=$RPM_BUILD_ROOT $RPM_BUILD_ROOT%{_sysconfdir}/selinux/%{polname1}/users/system.users +make NAME=%{polname2} TYPE=%{type2} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} base.pp +make NAME=%{polname2} TYPE=%{type2} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} modules +%{__mkdir} -p $RPM_BUILD_ROOT/%{_usr}/share/selinux/%{polname2}/%{type2} +%{__cp} *.pp $RPM_BUILD_ROOT/%{_usr}/share/selinux/%{polname2}/%{type2} +%{__mkdir} -p $RPM_BUILD_ROOT/%{_sysconfdir}/selinux/%{polname2}/policy +%{__mkdir} -p $RPM_BUILD_ROOT/%{_sysconfdir}/selinux/%{polname2}/contexts/files +make NAME=%{polname2} TYPE=%{type2} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=y DESTDIR=$RPM_BUILD_ROOT install-appconfig +make NAME=%{polname2} TYPE=%{type2} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} DESTDIR=$RPM_BUILD_ROOT $RPM_BUILD_ROOT%{_sysconfdir}/selinux/%{polname2}/users/local.users +make NAME=%{polname2} TYPE=%{type2} DISTRO=%{distro} DIRECT_INITRC=%{direct_initrc} MONOLITHIC=%{monolithic} DESTDIR=$RPM_BUILD_ROOT $RPM_BUILD_ROOT%{_sysconfdir}/selinux/%{polname2}/users/system.users %clean -rm -fR $RPM_BUILD_ROOT +%{__rm} -fR $RPM_BUILD_ROOT %files %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/*.pp +%dir %{_sysconfdir}/selinux +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/*.pp +#%ghost %config(noreplace) %{_sysconfdir}/selinux/config +%dir %{_sysconfdir}/selinux/* +%ghost %config %{_sysconfdir}/selinux/*/booleans +%dir %{_sysconfdir}/selinux/*/policy +#%ghost %config %{_sysconfdir}/selinux/*/policy/policy.* +%dir %{_sysconfdir}/selinux/*/contexts +%config(noreplace) %{_sysconfdir}/selinux/*/contexts/customizable_types +%config(noreplace) %{_sysconfdir}/selinux/*/contexts/dbus_contexts +%config(noreplace) %{_sysconfdir}/selinux/*/contexts/default_contexts +%config(noreplace) %{_sysconfdir}/selinux/*/contexts/default_type +%config(noreplace) %{_sysconfdir}/selinux/*/contexts/failsafe_context +%config(noreplace) %{_sysconfdir}/selinux/*/contexts/initrc_context +%config(noreplace) %{_sysconfdir}/selinux/*/contexts/removable_context +%config(noreplace) %{_sysconfdir}/selinux/*/contexts/userhelper_context +%dir %{_sysconfdir}/selinux/*/contexts/files +#%ghost %config %{_sysconfdir}/selinux/*/contexts/files/file_contexts +#%ghost %config %{_sysconfdir}/selinux/*/contexts/files/homedir_template +#%ghost %config %{_sysconfdir}/selinux/*/contexts/files/file_contexts.homedirs +%config %{_sysconfdir}/selinux/*/contexts/files/media +%dir %{_sysconfdir}/selinux/*/users +%config %{_sysconfdir}/selinux/*/users/system.users +%config %{_sysconfdir}/selinux/*/users/local.users +#%ghost %dir %{_sysconfdir}/selinux/*/modules %pre %post -%package base -Summary: SELinux %{polname} base policy +%package base-targeted +Summary: SELinux %{polname1} base policy Group: System Environment/Base +Provides: selinux-policy-base -%description base -SELinux Reference policy base module. +%description base-targeted +SELinux Reference policy targeted base module. -%files base +%files base-targeted %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/base.pp +%dir %{_usr}/share/selinux/%{polname1} +%dir %{_usr}/share/selinux/%{polname1}/%{type1} +%config %{_usr}/share/selinux/%{polname1}/%{type1}/base.pp +%dir %{_sysconfdir}/selinux +#%ghost %config(noreplace) %{_sysconfdir}/selinux/config +%dir %{_sysconfdir}/selinux/%{polname1} +%ghost %config %{_sysconfdir}/selinux/%{polname1}/booleans +%dir %{_sysconfdir}/selinux/%{polname1}/policy +#%ghost %config %{_sysconfdir}/selinux/%{polname1}/policy/policy.* +%dir %{_sysconfdir}/selinux/%{polname1}/contexts +%config(noreplace) %{_sysconfdir}/selinux/%{polname1}/contexts/customizable_types +%config(noreplace) %{_sysconfdir}/selinux/%{polname1}/contexts/dbus_contexts +%config(noreplace) %{_sysconfdir}/selinux/%{polname1}/contexts/default_contexts +%config(noreplace) %{_sysconfdir}/selinux/%{polname1}/contexts/default_type +%config(noreplace) %{_sysconfdir}/selinux/%{polname1}/contexts/failsafe_context +%config(noreplace) %{_sysconfdir}/selinux/%{polname1}/contexts/initrc_context +%config(noreplace) %{_sysconfdir}/selinux/%{polname1}/contexts/removable_context +%config(noreplace) %{_sysconfdir}/selinux/%{polname1}/contexts/userhelper_context +%dir %{_sysconfdir}/selinux/%{polname1}/contexts/files +#%ghost %config %{_sysconfdir}/selinux/%{polname1}/contexts/files/file_contexts +#%ghost %config %{_sysconfdir}/selinux/%{polname1}/contexts/files/homedir_template +#%ghost %config %{_sysconfdir}/selinux/%{polname1}/contexts/files/file_contexts.homedirs +%config %{_sysconfdir}/selinux/%{polname1}/contexts/files/media +%dir %{_sysconfdir}/selinux/%{polname1}/users +%config %{_sysconfdir}/selinux/%{polname1}/users/system.users +%config %{_sysconfdir}/selinux/%{polname1}/users/local.users +#%ghost %dir %{_sysconfdir}/selinux/%{polname1}/modules + +%post base-targeted +semodule -b /usr/share/selinux/%{polname1}/%{type1}/base.pp -s %{_sysconfdir}/selinux/%{polname1} +for file in $(ls /usr/share/selinux/%{polname1}/%{type1} | grep -v base.pp) +do semodule -i /usr/share/selinux/%{polname1}/%{type1}/$file -s %{_sysconfdir}/selinux/%{polname1} +done + +%package base-strict +Summary: SELinux %{polname2} base policy +Group: System Environment/Base +Provides: selinux-policy-base -%post base -semodule -b %{_usr}/share/selinux/%{polname}/%{type}/base.pp +%description base-strict +SELinux Reference policy strict base module. -%postun base -semodule -r base +%files base-strict +%defattr(-,root,root) +%dir %{_usr}/share/selinux +%dir %{_usr}/share/selinux/%{polname2} +%dir %{_usr}/share/selinux/%{polname2}/%{type2} +%config %{_usr}/share/selinux/%{polname2}/%{type2}/base.pp +%dir %{_sysconfdir}/selinux +#%ghost %config(noreplace) %{_sysconfdir}/selinux/config +%dir %{_sysconfdir}/selinux/%{polname2} +%ghost %config %{_sysconfdir}/selinux/%{polname2}/booleans +%dir %{_sysconfdir}/selinux/%{polname2}/policy +#%ghost %config %{_sysconfdir}/selinux/%{polname2}/policy/policy.* +%dir %{_sysconfdir}/selinux/%{polname2}/contexts +%config(noreplace) %{_sysconfdir}/selinux/%{polname2}/contexts/customizable_types +%config(noreplace) %{_sysconfdir}/selinux/%{polname2}/contexts/dbus_contexts +%config(noreplace) %{_sysconfdir}/selinux/%{polname2}/contexts/default_contexts +%config(noreplace) %{_sysconfdir}/selinux/%{polname2}/contexts/default_type +%config(noreplace) %{_sysconfdir}/selinux/%{polname2}/contexts/failsafe_context +%config(noreplace) %{_sysconfdir}/selinux/%{polname2}/contexts/initrc_context +%config(noreplace) %{_sysconfdir}/selinux/%{polname2}/contexts/removable_context +%config(noreplace) %{_sysconfdir}/selinux/%{polname2}/contexts/userhelper_context +%dir %{_sysconfdir}/selinux/%{polname2}/contexts/files +#%ghost %config %{_sysconfdir}/selinux/%{polname2}/contexts/files/file_contexts +#%ghost %config %{_sysconfdir}/selinux/%{polname2}/contexts/files/homedir_template +#%ghost %config %{_sysconfdir}/selinux/%{polname2}/contexts/files/file_contexts.homedirs +%config %{_sysconfdir}/selinux/%{polname2}/contexts/files/media +%dir %{_sysconfdir}/selinux/%{polname2}/users +%config %{_sysconfdir}/selinux/%{polname2}/users/system.users +%config %{_sysconfdir}/selinux/%{polname2}/users/local.users +#%ghost %dir %{_sysconfdir}/selinux/%{polname2}/modules + +%post base-strict +semodule -b /usr/share/selinux/%{polname2}/%{type2}/base.pp -s %{_sysconfdir}/selinux/%{polname2} +for file in $(ls /usr/share/selinux/%{polname2}/%{type2} | grep -v base.pp) +do semodule -i /usr/share/selinux/%{polname2}/%{type2}/$file -s %{_sysconfdir}/selinux/%{polname2} +done %package apache -Summary: SELinux %{polname} apache policy +Summary: SELinux apache policy Group: System Environment/Base +Requires: selinux-policy-base %description apache SELinux Reference policy apache module. @@ -78,18 +189,28 @@ SELinux Reference policy apache module. %files apache %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/apache.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/apache.pp %post apache -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/apache.pp - -%postun apache -semodule -r apache +if [ -d %{_sysconfdir}/selinux/%{polname1}/modules ] ; then +semodule -n -i %{_usr}/share/selinux/%{polname1}/%{type1}/apache.pp -s %{_sysconfdir}/selinux/%{polname1} +fi +if [ -d %{_sysconfdir}/selinux/%{polname2}/modules ] ; then +semodule -i %{_usr}/share/selinux/%{polname2}/%{type2}/apache.pp -s %{_sysconfdir}/selinux/%{polname2} +fi + +%preun apache +if [ -d %{_sysconfdir}/selinux/%{polname1}/modules ] +then semodule -n -r apache -s %{_sysconfdir}/selinux/%{polname1} +fi +if [ -d %{_sysconfdir}/selinux/%{polname2}/modules ] +then semodule -n -r apache -s %{_sysconfdir}/selinux/%{polname2} +fi %package bind -Summary: SELinux %{polname} bind policy +Summary: SELinux bind policy Group: System Environment/Base %description bind @@ -98,18 +219,18 @@ SELinux Reference policy bind module. %files bind %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/bind.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/bind.pp %post bind -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/bind.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/bind.pp -%postun bind +%preun bind semodule -r bind %package dhcp -Summary: SELinux %{polname} dhcp policy +Summary: SELinux dhcp policy Group: System Environment/Base %description dhcp @@ -118,18 +239,18 @@ SELinux Reference policy dhcp module. %files dhcp %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/dhcp.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/dhcp.pp %post dhcp -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/dhcp.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/dhcp.pp -%postun dhcp +%preun dhcp semodule -r dhcp %package ldap -Summary: SELinux %{polname} ldap policy +Summary: SELinux ldap policy Group: System Environment/Base %description ldap @@ -138,18 +259,18 @@ SELinux Reference policy ldap module. %files ldap %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/ldap.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/ldap.pp %post ldap -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/ldap.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/ldap.pp -%postun ldap +%preun ldap semodule -r ldap %package mailman -Summary: SELinux %{polname} mailman policy +Summary: SELinux mailman policy Group: System Environment/Base %description mailman @@ -158,18 +279,18 @@ SELinux Reference policy mailman module. %files mailman %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/mailman.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/mailman.pp %post mailman -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/mailman.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/mailman.pp -%postun mailman +%preun mailman semodule -r mailman %package mysql -Summary: SELinux %{polname} mysql policy +Summary: SELinux mysql policy Group: System Environment/Base %description mysql @@ -178,18 +299,18 @@ SELinux Reference policy mysql module. %files mysql %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/mysql.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/mysql.pp %post mysql -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/mysql.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcsmysql.pp -%postun mysql +%preun mysql semodule -r mysql %package portmap -Summary: SELinux %{polname} portmap policy +Summary: SELinux portmap policy Group: System Environment/Base %description portmap @@ -198,18 +319,18 @@ SELinux Reference policy portmap module. %files portmap %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/portmap.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/portmap.pp %post portmap -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/portmap.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/portmap.pp -%postun portmap +%preun portmap semodule -r portmap %package postgresql -Summary: SELinux %{polname} postgresql policy +Summary: SELinux postgresql policy Group: System Environment/Base %description postgresql @@ -218,18 +339,18 @@ SELinux Reference policy postgresql module. %files postgresql %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/postgresql.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/postgresql.pp %post postgresql -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/postgresql.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/postgresql.pp -%postun postgresql +%preun postgresql semodule -r postgresql %package samba -Summary: SELinux %{polname} samba policy +Summary: SELinux samba policy Group: System Environment/Base %description samba @@ -238,18 +359,18 @@ SELinux Reference policy samba module. %files samba %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/samba.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/samba.pp %post samba -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/samba.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/samba.pp -%postun samba +%preun samba semodule -r samba %package snmp -Summary: SELinux %{polname} snmp policy +Summary: SELinux snmp policy Group: System Environment/Base %description snmp @@ -258,18 +379,18 @@ SELinux Reference policy snmp module. %files snmp %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/snmp.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/snmp.pp %post snmp -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/snmp.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/snmp.pp -%postun snmp +%preun snmp semodule -r snmp %package squid -Summary: SELinux %{polname} squid policy +Summary: SELinux squid policy Group: System Environment/Base %description squid @@ -278,18 +399,18 @@ SELinux Reference policy squid module. %files squid %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/squid.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/squid.pp %post squid -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/squid.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/squid.pp -%postun squid +%preun squid semodule -r squid %package webalizer -Summary: SELinux %{polname} webalizer policy +Summary: SELinux webalizer policy Group: System Environment/Base %description webalizer @@ -298,14 +419,14 @@ SELinux Reference policy webalizer module. %files webalizer %defattr(-,root,root) %dir %{_usr}/share/selinux -%dir %{_usr}/share/selinux/%{polname} -%dir %{_usr}/share/selinux/%{polname}/%{type} -%config %{_usr}/share/selinux/%{polname}/%{type}/webalizer.pp +%dir %{_usr}/share/selinux/* +%dir %{_usr}/share/selinux/*/* +%config %{_usr}/share/selinux/*/*/webalizer.pp %post webalizer -semodule -i %{_usr}/share/selinux/%{polname}/%{type}/webalizer.pp +semodule -i %{_usr}/share/selinux/targeted/targeted-mcs/webalizer.pp -%postun webalizer +%preun webalizer semodule -r webalizer %changelog