public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Michal Schmidt <mschmidt@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/icecream] epel8: systemd conversion
Date: Fri, 31 Jul 2026 06:33:51 GMT [thread overview]
Message-ID: <178547963181.1.13128163681653457471.rpms-icecream-6003afc757bd@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/icecream
Branch : epel8
Commit : 6003afc757bd37cc7bd5181a64e52157ce7106b0
Author : Michal Schmidt <mschmidt@redhat.com>
Date : 2012-02-07T01:48:18+01:00
Stats : +126/-293 in 8 file(s)
URL : https://src.fedoraproject.org/rpms/icecream/c/6003afc757bd37cc7bd5181a64e52157ce7106b0?branch=epel8
Log:
systemd conversion
---
diff --git a/icecc-scheduler-wrapper b/icecc-scheduler-wrapper
new file mode 100644
index 0000000..2ac7370
--- /dev/null
+++ b/icecc-scheduler-wrapper
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+logfile="$1"
+
+config=/etc/sysconfig/icecream
+[ -e $config ] && . $config
+
+netname=
+if [ -n "$ICECREAM_NETNAME" ] ; then
+ netname="-n $ICECREAM_NETNAME"
+fi
+
+touch "$logfile"
+chown icecream:icecream "$logfile"
+chmod 0640 "$logfile"
+[ -x /sbin/restorecon ] && /sbin/restorecon "$logfile"
+
+exec /sbin/runuser -s /bin/sh icecream --session-command="/usr/sbin/icecc-scheduler -d -l \"$logfile\" $netname"
diff --git a/icecc-scheduler.service b/icecc-scheduler.service
new file mode 100644
index 0000000..fc66bb3
--- /dev/null
+++ b/icecc-scheduler.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Icecream distributed compiler scheduler
+
+[Service]
+Type=forking
+ExecStart=/usr/lib/icecream/icecc-scheduler-wrapper /var/log/icecc-scheduler
+
+[Install]
+WantedBy=multi-user.target
diff --git a/iceccd-wrapper b/iceccd-wrapper
new file mode 100644
index 0000000..9b89470
--- /dev/null
+++ b/iceccd-wrapper
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+config=/etc/sysconfig/icecream
+[ -e $config ] && . $config
+
+params=""
+if [ -n "$ICECREAM_NETNAME" ] ; then
+ params="$params -n $ICECREAM_NETNAME"
+fi
+if [ -n "$ICECREAM_SCHEDULER_HOST" ] ; then
+ params="$params -s $ICECREAM_SCHEDULER_HOST"
+fi
+if [ "$ICECREAM_ALLOW_REMOTE" = "no" ] ; then
+ params="$params --no-remote"
+fi
+if [ -n "$ICECREAM_MAX_JOBS" ] ; then
+ if [ "$ICECREAM_MAX_JOBS" -eq 0 ] ; then
+ params="$params -m 1"
+ params="$params --no-remote"
+ else
+ params="$params -m $ICECREAM_MAX_JOBS"
+ fi
+fi
+exec /usr/sbin/iceccd "$@" $params
diff --git a/iceccd.service b/iceccd.service
new file mode 100644
index 0000000..bf4049d
--- /dev/null
+++ b/iceccd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Icecream Distributed Compiler
+After=network.target nss-lookup.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/iceccd.pid
+ExecStart=/usr/lib/icecream/iceccd-wrapper -d -u icecream -b /var/cache/icecream -l /var/log/iceccd
+Nice=5
+
+[Install]
+WantedBy=multi-user.target
diff --git a/icecream-cleanup-conffile.patch b/icecream-cleanup-conffile.patch
index 7bf7c9d..7aacedd 100644
--- a/icecream-cleanup-conffile.patch
+++ b/icecream-cleanup-conffile.patch
@@ -1,6 +1,8 @@
---- suse/sysconfig.icecream.orig 2007-04-12 10:02:33.000000000 +0200
-+++ suse/sysconfig.icecream 2007-07-17 15:50:39.000000000 +0200
-@@ -1,69 +1,34 @@
+Index: suse/sysconfig.icecream
+===================================================================
+--- suse/sysconfig.icecream.orig
++++ suse/sysconfig.icecream
+@@ -1,69 +1,19 @@
#
-## Type: integer(0:19)
-## Path: Applications/icecream
@@ -8,20 +10,20 @@
-## ServiceRestart: icecream
-## Default: 5
-#
- # Nice level of running compilers
- #
- ICECREAM_NICE_LEVEL="5"
-
- #
+-# Nice level of running compilers
+-#
+-ICECREAM_NICE_LEVEL="5"
+-
+-#
-## Type: string
-## Path: Applications/icecream
-## Defaut: /var/log/iceccd
-#
- # icecream daemon log file
- #
- ICECREAM_LOG_FILE="/var/log/iceccd"
-
- #
+-# icecream daemon log file
+-#
+-ICECREAM_LOG_FILE="/var/log/iceccd"
+-
+-#
-## Type: string
-## Path: Applications/icecream
-## Defaut: no
@@ -35,12 +37,11 @@
-## Path: Applications/icecream
-## Defaut: /var/log/icecc_scheduler
-#
- # icecream scheduler log file
- #
+-# icecream scheduler log file
+-#
-ICECREAM_SCHEDULER_LOG_FILE="/var/log/icecc_scheduler"
-+ICECREAM_SCHEDULER_LOG_FILE="/var/log/icecc-scheduler"
-
- #
+-
+-#
-## Type: string
-## Path: Applications/icecream
-## Defaut: ""
@@ -74,7 +75,7 @@
#
# Note: a value of "0" is actually interpreted as "1", however it
# also sets ICECREAM_ALLOW_REMOTE="no".
-@@ -71,22 +36,14 @@ ICECREAM_SCHEDULER_HOST=""
+@@ -71,22 +21,7 @@ ICECREAM_SCHEDULER_HOST=""
ICECREAM_MAX_JOBS=""
#
@@ -86,15 +87,14 @@
# this one.
#
ICECREAM_ALLOW_REMOTE="yes"
-
- #
+-
+-#
-## Type: string
-## Path: Applications/icecream
-## Default: "/var/cache/icecream"
-#
- # This is the directory where the icecream daemon stores the environments
- # it compiles in. In a big network this can grow quite a bit, so use some
- # path if your /tmp is small - but the user icecream has to write to it.
+-# This is the directory where the icecream daemon stores the environments
+-# it compiles in. In a big network this can grow quite a bit, so use some
+-# path if your /tmp is small - but the user icecream has to write to it.
-#
-+#
- ICECREAM_BASEDIR="/var/cache/icecream"
+-ICECREAM_BASEDIR="/var/cache/icecream"
diff --git a/icecream.spec b/icecream.spec
index 325fc94..f6b8764 100644
--- a/icecream.spec
+++ b/icecream.spec
@@ -7,7 +7,7 @@
Name: icecream
Version: 0.9.7
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Distributed compiler
Group: Development/Tools
@@ -19,21 +19,23 @@ Source2: icecream.csh.in
Source3: icecream.fc
Source4: icecream.te
Source5: icecream.if
-Source6: initscript-iceccd
-Source7: initscript-scheduler
+Source6: iceccd.service
+Source7: icecc-scheduler.service
# tarball extracted from http://download.opensuse.org/repositories/home:/coolo/openSUSE_Factory/src/icecream-0.9.5-3.1.src.rpm:
Source8: %{name}-manpages.tar.bz2
+Source9: iceccd-wrapper
+Source10: icecc-scheduler-wrapper
Patch0: %{name}-rename-scheduler.patch
Patch1: %{name}-cleanup-conffile.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: symlinks
+BuildRequires: symlinks systemd-units
Requires(pre): shadow-utils
-Requires(post): chkconfig
-Requires(preun): chkconfig initscripts
-Requires(postun): initscripts
+Requires(post): systemd-units systemd-sysv
+Requires(preun): systemd-units
+Requires(postun): systemd-units
%if %{with selinux}
# For SELinux protection:
@@ -77,7 +79,7 @@ sed -e 's|@LIBDIR@|%{_libdir}|g' %{SOURCE2} > icecream.csh
mkdir SELinux
cp -p %{SOURCE3} %{SOURCE4} %{SOURCE5} SELinux
mkdir fedora
-cp -p %{SOURCE6} %{SOURCE7} fedora
+cp -p %{SOURCE6} %{SOURCE7} %{SOURCE9} %{SOURCE10} fedora
%build
%configure --disable-static --enable-shared
@@ -120,10 +122,11 @@ for i in mans/*.1 mans/*.7; do
done
# install config file and initscripts
-install -D -m 644 suse/sysconfig.icecream %{buildroot}/%{_sysconfdir}/sysconfig/icecream
-install -D -m 755 fedora/initscript-iceccd %{buildroot}/%{_sysconfdir}/rc.d/init.d/iceccd
-install -D -m 755 fedora/initscript-scheduler \
- %{buildroot}/%{_sysconfdir}/rc.d/init.d/icecc-scheduler
+install -D -m 644 suse/sysconfig.icecream %{buildroot}/%{_sysconfdir}/sysconfig/icecream
+install -d -m 755 %{buildroot}/%{_unitdir}
+install -p -m 644 fedora/*.service %{buildroot}/%{_unitdir}
+install -d -m 755 %{buildroot}/%{_prefix}/lib/icecream
+install -p -m 755 fedora/*-wrapper %{buildroot}/%{_prefix}/lib/icecream
install -d -m 755 %{buildroot}/%{_sysconfdir}/profile.d
install -p -m 644 icecream.sh icecream.csh %{buildroot}/%{_sysconfdir}/profile.d
@@ -191,16 +194,15 @@ restorecon %{_localstatedir}/log/iceccd 2>/dev/null ||:
%endif
# fi
-/sbin/chkconfig --add iceccd
-/sbin/chkconfig --add icecc-scheduler
+if [ $1 -eq 1 ] ; then # Initial installation
+ /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
exit 0
%preun
-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
+if [ $1 -eq 0 ]; then # Final removal
+ /bin/systemctl --no-reload disable iceccd.service icecc-scheduler.service > /dev/null 2>&1 || :
+ /bin/systemctl stop iceccd.service icecc-scheduler.service > /dev/null 2>&1 || :
# rm -rf %{_localstatedir}/cache/icecream
%if %{with selinux}
@@ -218,12 +220,12 @@ exit 0
%postun
/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
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ]; then # Upgrade
+ /bin/systemctl try-restart iceccd.service icecc-scheduler.service >/dev/null 2>&1 || :
fi
%if %{with selinux}
-if [ "$1" -eq 0 ]; then # Final removal
+if [ $1 -eq 0 ]; then # Final removal
for selinuxvariant in %{selinux_variants}; do
semodule -s ${selinuxvariant} -r icecream 2>/dev/null ||:
%relabel ${selinuxvariant}
@@ -232,6 +234,13 @@ fi
%endif
exit 0
+%triggerun -- icecream < 0.9.7-2
+/usr/bin/systemd-sysv-convert --save iceccd >/dev/null 2>&1 ||:
+/usr/bin/systemd-sysv-convert --save icecc-scheduler >/dev/null 2>&1 ||:
+/sbin/chkconfig --del iceccd >/dev/null 2>&1 || :
+/sbin/chkconfig --del icecc-scheduler >/dev/null 2>&1 || :
+/bin/systemctl try-restart iceccd.service icecc-scheduler.service >/dev/null 2>&1 || :
+
%clean
rm -rf %{buildroot}
@@ -252,8 +261,8 @@ rm -rf %{buildroot}
%{_sbindir}/icecc-scheduler
%config(noreplace) %{_sysconfdir}/sysconfig/icecream
%config(noreplace) %{_sysconfdir}/profile.d/icecream.*sh
-%{_sysconfdir}/rc.d/init.d/iceccd
-%{_sysconfdir}/rc.d/init.d/icecc-scheduler
+%{_unitdir}/icecc*.service
+%{_prefix}/lib/icecream
%{_localstatedir}/cache/icecream
%{_mandir}/man*/*
%{?with_selinux:%{_datadir}/selinux/*/icecream.pp}
@@ -266,6 +275,9 @@ rm -rf %{buildroot}
%{_libdir}/pkgconfig/icecc.pc
%changelog
+* Tue Feb 07 2012 Michal Schmidt <mschmidt@redhat.com> - 0.9.7-2
+- systemd conversion
+
* Mon Feb 06 2012 Michal Schmidt <mschmidt@redhat.com> - 0.9.7-1
- Upstream release 0.9.7.
diff --git a/initscript-iceccd b/initscript-iceccd
deleted file mode 100644
index 89ac218..0000000
--- a/initscript-iceccd
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/bin/sh
-#
-# iceccd: Distributed compiler daemon
-#
-# chkconfig: - 98 02
-# description: This is a daemon for speeding up builds by \
-# distributing compile jobs to several computers on a network.
-#
-
-### BEGIN INIT INFO
-# Provides: iceccd
-# Required-Start: $local_fs $remote_fs $network $named
-# Required-Stop: $local_fs $remote_fs $network $named
-# Short-Description: Start/stop Icecream distributed compiler
-# Description: Start / stop the Icecream distributed compiler daemon
-### END INIT INFO
-
-# Source function library.
-. /etc/rc.d/init.d/functions
-
-exec=/usr/sbin/iceccd
-service=iceccd
-config=/etc/sysconfig/icecream
-
-[ -e $config ] && . $config
-
-lockfile=/var/lock/subsys/iceccd
-
-start() {
- [ -x $exec ] || exit 5
- [ -f $config ] || exit 6
- echo -n $"Starting distributed compiler daemon: "
- params=""
- if [ -n "$ICECREAM_NETNAME" ] ; then
- params="$params -n $ICECREAM_NETNAME"
- fi
- if [ -n "$ICECREAM_LOG_FILE" ] ; then
- params="$params -l $ICECREAM_LOG_FILE"
- fi
- if [ -n "$ICECREAM_NICE_LEVEL" ] ; then
- params="$params --nice $ICECREAM_NICE_LEVEL"
- fi
- if [ -n "$ICECREAM_SCHEDULER_HOST" ] ; then
- params="$params -s $ICECREAM_SCHEDULER_HOST"
- fi
- if [ "$ICECREAM_ALLOW_REMOTE" = "no" 2> /dev/null ] ; then
- params="$params --no-remote"
- fi
- if [ -n "$ICECREAM_MAX_JOBS" ] ; then
- if [ "$ICECREAM_MAX_JOBS" -eq 0 2> /dev/null ] ; then
- params="$params -m 1"
- params="$params --no-remote"
- else
- params="$params -m $ICECREAM_MAX_JOBS"
- fi
- fi
- params="$params -b \"$ICECREAM_BASEDIR\""
- daemon --check $service $exec -d -u icecream $params
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && touch $lockfile
- return $RETVAL
-}
-
-stop() {
- echo -n $"Stopping distributed compiler daemon: "
-
- killproc $service
- RETVAL=$?
- echo
- if [ $RETVAL -eq 0 ]; then
- rm -f $lockfile
- fi
- return $RETVAL
-}
-
-restart() {
- stop
- start
-}
-
-reload() {
- restart
-}
-
-force_reload() {
- restart
-}
-
-rh_status() {
- status $service
-}
-
-rh_status_q() {
- rh_status > /dev/null 2>&1
-}
-
-# See how we were called.
-case "$1" in
- start)
- rh_status_q && exit 0
- start
- ;;
- stop)
- rh_status_q || exit 0
- stop
- ;;
- status)
- rh_status
- ;;
- restart)
- restart
- ;;
- reload)
- rh_status_q || exit 7
- reload
- ;;
- force-reload)
- force_reload
- ;;
- condrestart|try-restart)
- rh_status_q || exit 0
- restart
- ;;
- *)
- echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
- exit 2
-esac
-exit $?
diff --git a/initscript-scheduler b/initscript-scheduler
deleted file mode 100644
index 595a12e..0000000
--- a/initscript-scheduler
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/sh
-#
-# icecc-scheduler: Distributed compiler scheduler
-#
-# chkconfig: - 98 02
-# description: This is a daemon which schedules compilation jobs to \
-# networked machines running iceccd.
-#
-
-### BEGIN INIT INFO
-# Provides: icecc-scheduler
-# Required-Start: $local_fs $remote_fs $network
-# Required-Stop: $local_fs $remote_fs $network
-# Short-Description: Start/stop Icecream scheduler
-# Description: Start / stop the scheduler for Icecream distributed compilers
-### END INIT INFO
-
-# Source function library.
-. /etc/rc.d/init.d/functions
-
-exec=/usr/sbin/icecc-scheduler
-service=icecc-scheduler
-config=/etc/sysconfig/icecream
-
-[ -e $config ] && . $config
-
-lockfile=/var/lock/subsys/icecc-scheduler
-
-start() {
- [ -x $exec ] || exit 5
- [ -f $config ] || exit 6
- echo -n $"Starting distributed compiler scheduler: "
- netname=
- if [ -n "$ICECREAM_NETNAME" ] ; then
- netname="-n $ICECREAM_NETNAME"
- fi
- logfile=${ICECREAM_SCHEDULER_LOG_FILE:-/var/log/icecc-scheduler}
- touch "$logfile"
- chown icecream:icecream "$logfile"
- chmod 0640 "$logfile"
- [ -x /sbin/restorecon ] && /sbin/restorecon "$logfile"
- daemon --user icecream --check $service $exec -d -l "$logfile" $netname
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && touch $lockfile
- return $RETVAL
-}
-
-stop() {
- echo -n $"Stopping distributed compiler scheduler: "
-
- killproc $service
- RETVAL=$?
- echo
- if [ $RETVAL -eq 0 ]; then
- rm -f $lockfile
- fi
- return $RETVAL
-}
-
-restart() {
- stop
- start
-}
-
-reload() {
- restart
-}
-
-force_reload() {
- restart
-}
-
-rh_status() {
- status $service
-}
-
-rh_status_q() {
- rh_status > /dev/null 2>&1
-}
-
-# See how we were called.
-case "$1" in
- start)
- rh_status_q && exit 0
- start
- ;;
- stop)
- rh_status_q || exit 0
- stop
- ;;
- status)
- rh_status
- ;;
- restart)
- restart
- ;;
- reload)
- rh_status_q || exit 7
- reload
- ;;
- force-reload)
- force_reload
- ;;
- condrestart|try-restart)
- rh_status_q || exit 0
- restart
- ;;
- *)
- echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
- exit 2
-esac
-exit $?
reply other threads:[~2026-07-31 6:33 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178547963181.1.13128163681653457471.rpms-icecream-6003afc757bd@fedoraproject.org \
--to=mschmidt@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox