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
# Package removal, not upgrade
/usr/bin/systemctl --no-reload disable iceccd.service icecc-scheduler.service > /dev/null 2>&1 || :
/usr/bin/systemctl stop iceccd.service icecc-scheduler.service > /dev/null 2>&1 || :
fi
if [ $1 -eq 0 ]; then # Final removal
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
for selinuxvariant in mls strict targeted; do
{
echo "port -d -S ${selinuxvariant} -t iceccd_port_t -p tcp 10245"
echo "port -d -S ${selinuxvariant} -t icecc_scheduler_port_t -p tcp 8766"
echo "port -d -S ${selinuxvariant} -t icecc_scheduler_port_t -p udp 8765"
} | semanage -i - 2>/dev/null
done
fi
exit 0
POSTIN
/bin/sh
/sbin/ldconfig
for selinuxvariant in mls strict targeted; do
semodule -s ${selinuxvariant} -i \
/usr/share/selinux/${selinuxvariant}/icecream.pp 2>/dev/null
done
for selinuxvariant in mls strict targeted; do
{
echo "port -a -S ${selinuxvariant} -t iceccd_port_t -p tcp 10245"
echo "port -a -S ${selinuxvariant} -t icecc_scheduler_port_t -p tcp 8766"
echo "port -a -S ${selinuxvariant} -t icecc_scheduler_port_t -p udp 8765"
# tcp 8765 is taken by LIRC. icecream.te knows it.
# echo "port -a -S ${selinuxvariant} -t icecc_scheduler_port_t -p tcp 8765"
} | semanage -i - 2>/dev/null
done
for selinuxvariant in mls strict targeted; do
. /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 /run/icecc 2>/dev/null
if [ $1 -eq 1 ] ; then
# Initial installation
/usr/bin/systemctl preset iceccd.service icecc-scheduler.service >/dev/null 2>&1 || :
fi
exit 0
POSTUN
/bin/sh
/sbin/ldconfig
/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
# Package upgrade, not uninstall
/usr/bin/systemctl try-restart iceccd.service icecc-scheduler.service >/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