PREIN
/bin/sh
for selinuxvariant in mls strict targeted; do
if [ -s /etc/selinux/config ]; then
. /etc/selinux/config;
FILE_CONTEXT=/etc/selinux/${selinuxvariant}/contexts/files/file_contexts;
if [ "${SELINUXTYPE}" == ${selinuxvariant} -a -f ${FILE_CONTEXT} ]; then
cp -f ${FILE_CONTEXT} ${FILE_CONTEXT}.icecream;
fi
fi;done
getent group icecream >/dev/null || groupadd -r icecream
getent passwd icecream >/dev/null || \
useradd -r -g icecream -d /var/cache/icecream \
-s /sbin/nologin -c "Icecream distributed compiler" icecream
exit 0
PREUN
/bin/sh
if [ "$1" -eq 0 ]; then # Final removal
/sbin/service iceccd stop > /dev/null 2>&1
/sbin/service icecc-scheduler stop > /dev/null 2>&1
/sbin/chkconfig --del iceccd
/sbin/chkconfig --del icecc-scheduler
# rm -rf /var/cache/icecream
for selinuxvariant in mls strict targeted; do
if [ -s /etc/selinux/config ]; then
. /etc/selinux/config;
FILE_CONTEXT=/etc/selinux/${selinuxvariant}/contexts/files/file_contexts;
if [ "${SELINUXTYPE}" == ${selinuxvariant} -a -f ${FILE_CONTEXT} ]; then
cp -f ${FILE_CONTEXT} ${FILE_CONTEXT}.icecream;
fi
fi; semanage port -d -S ${selinuxvariant} -t iceccd_port_t -p tcp 10245 2>/dev/null ||:
semanage port -d -S ${selinuxvariant} -t icecc_scheduler_port_t -p tcp 8765 2>/dev/null ||:
semanage port -d -S ${selinuxvariant} -t icecc_scheduler_port_t -p tcp 8766 2>/dev/null ||:
semanage port -d -S ${selinuxvariant} -t icecc_scheduler_port_t -p udp 8765 2>/dev/null ||:
done
fi
exit 0
POSTIN
/bin/sh
/sbin/ldconfig
# if [ "$1" -le 1 ]; then # First install
for selinuxvariant in mls strict targeted; do
semodule -s ${selinuxvariant} -i \
/usr/share/selinux/${selinuxvariant}/icecream.pp 2>/dev/null ||:
semanage port -a -S ${selinuxvariant} -t iceccd_port_t -p tcp 10245 2>/dev/null ||:
semanage port -a -S ${selinuxvariant} -t icecc_scheduler_port_t -p tcp 8766 2>/dev/null ||:
# tcp 8765 is taken by LIRC. icecream.te knows it.
#semanage port -a -S ${selinuxvariant} -t icecc_scheduler_port_t -p tcp 8765 2>/dev/null ||:
semanage port -a -S ${selinuxvariant} -t icecc_scheduler_port_t -p udp 8765 2>/dev/null ||:
. /etc/selinux/config;
FILE_CONTEXT=/etc/selinux/${selinuxvariant}/contexts/files/file_contexts;
selinuxenabled;
if [ $? == 0 -a "${SELINUXTYPE}" == ${selinuxvariant} -a -f ${FILE_CONTEXT}.icecream ]; then
fixfiles -C ${FILE_CONTEXT}.icecream restore;
rm -f ${FILE_CONTEXT}.icecream;
fi;done
restorecon -R /var/cache/icecream 2>/dev/null ||:
restorecon /var/log/iceccd 2>/dev/null ||:
# fi
/sbin/chkconfig --add iceccd
/sbin/chkconfig --add icecc-scheduler
exit 0
POSTUN
/bin/sh
/sbin/ldconfig
if [ "$1" -ge 1 ]; then # Upgrade
/sbin/service iceccd condrestart > /dev/null 2>&1
/sbin/service icecc-scheduler condrestart > /dev/null 2>&1
fi
if [ "$1" -eq 0 ]; then # Final removal
for selinuxvariant in mls strict targeted; do
semodule -s ${selinuxvariant} -r icecream 2>/dev/null ||:
. /etc/selinux/config;
FILE_CONTEXT=/etc/selinux/${selinuxvariant}/contexts/files/file_contexts;
selinuxenabled;
if [ $? == 0 -a "${SELINUXTYPE}" == ${selinuxvariant} -a -f ${FILE_CONTEXT}.icecream ]; then
fixfiles -C ${FILE_CONTEXT}.icecream restore;
rm -f ${FILE_CONTEXT}.icecream;
fi; done
fi
exit 0