diff --git a/0003-add-debug-entries.patch b/0003-add-debug-entries.patch new file mode 100644 index 0000000..b123d24 --- /dev/null +++ b/0003-add-debug-entries.patch @@ -0,0 +1,34 @@ +--- icecc-1.0.98/suse/sysconfig.icecream 2013-01-06 08:47:02.000000000 +0100 ++++ icecc-1.0.98/suse/sysconfig.icecream.new 2016-03-02 13:56:20.146612133 +0100 +@@ -19,6 +19,15 @@ + ICECREAM_LOG_FILE="/var/log/icecream/iceccd" + + # ++## Type: yesno ++## Path: Applications/icecream ++## Default: "no" ++# ++# icecream debug ++# ++ICECREAM_DEBUG="no" ++ ++# + ## Type: string + ## Path: Applications/icecream + ## Default: no +@@ -37,6 +46,15 @@ + ICECREAM_SCHEDULER_LOG_FILE="/var/log/icecream/scheduler" + + # ++## Type: yesno ++## Path: Applications/icecream ++## Default: no ++# ++# icecream scheduler debug ++# ++ICECREAM_SCHEDULER_DEBUG="no" ++ ++# + ## Type: string + ## Path: Applications/icecream + ## Default: "" diff --git a/fedora.logrotate.icecream b/fedora.logrotate.icecream new file mode 100644 index 0000000..de098e2 --- /dev/null +++ b/fedora.logrotate.icecream @@ -0,0 +1,17 @@ +/var/log/icecream/iceccd /var/log/icecream/scheduler { + compress + dateext + maxage 30 + rotate 99 + missingok + notifempty + size +4096k + create 644 icecream icecream + su icecream icecream + sharedscripts + postrotate + /usr/bin/systemctl kill -s HUP iceccd.service >/dev/null 2>&1 || true + /usr/bin/systemctl kill -s HUP icecc-scheduler.service >/dev/null 2>&1 || true + endscript +} + diff --git a/icecc-scheduler-wrapper b/icecc-scheduler-wrapper index 09e92f5..fbc10ed 100644 --- a/icecc-scheduler-wrapper +++ b/icecc-scheduler-wrapper @@ -8,4 +8,14 @@ if [ -n "$ICECREAM_NETNAME" ] ; then netname="-n $ICECREAM_NETNAME" fi -exec /usr/sbin/icecc-scheduler $netname +logfile= +if [ -n "$ICECREAM_SCHEDULER_LOG_FILE" ] ; then + logfile="-l $SCHEDULER_LOG_FILE" +fi + +debug= +if [ "$ICECREAM_SCHEDULER_DEBUG" = "yes" ] ; then + debug="-vvv" +fi + +exec /usr/sbin/icecc-scheduler $netname $logfile $debug diff --git a/iceccd-wrapper b/iceccd-wrapper index 9b89470..a26d556 100644 --- a/iceccd-wrapper +++ b/iceccd-wrapper @@ -21,4 +21,11 @@ if [ -n "$ICECREAM_MAX_JOBS" ] ; then params="$params -m $ICECREAM_MAX_JOBS" fi fi +if [ -n "$ICECREAM_LOG_FILE" ] ; then + params="$params -l $ICECREAM_LOG_FILE" +fi +if [ "$ICECREAM_DEBUG" = "yes" ] ; then + params="$params -vvv" +fi + exec /usr/sbin/iceccd "$@" $params diff --git a/icecream-cleanup-conffile.patch b/icecream-cleanup-conffile.patch deleted file mode 100644 index ddde0ff..0000000 --- a/icecream-cleanup-conffile.patch +++ /dev/null @@ -1,100 +0,0 @@ -Index: suse/sysconfig.icecream -=================================================================== ---- suse/sysconfig.icecream.orig -+++ suse/sysconfig.icecream -@@ -1,69 +1,19 @@ - # --## Type: integer(0:19) --## Path: Applications/icecream --## Description: Icecream settings --## ServiceRestart: icecream --## Default: 5 --# --# Nice level of running compilers --# --ICECREAM_NICE_LEVEL="5" -- --# --## Type: string --## Path: Applications/icecream --## Default: /var/log/icecream/iceccd --# --# icecream daemon log file --# --ICECREAM_LOG_FILE="/var/log/icecream/iceccd" -- --# --## Type: string --## Path: Applications/icecream --## Default: no --# --# Start also the scheduler? --# --ICECREAM_RUN_SCHEDULER="no" -- --# --## Type: string --## Path: Applications/icecream --## Default: /var/log/icecream/scheduler --# --# icecream scheduler log file --# --ICECREAM_SCHEDULER_LOG_FILE="/var/log/icecream/scheduler" -- --# --## Type: string --## Path: Applications/icecream --## Default: "" --# --# Identification for the network the scheduler and daemon run on. -+# Identification for the network the scheduler and daemon run on. - # You can have several distinct icecream networks in the same LAN - # for whatever reason. - # - ICECREAM_NETNAME="" - - # --## Type: string --## Path: Applications/icecream --## Default: "" --# --# If the daemon can't find the scheduler by broadcast (e.g. because -+# If the daemon can't find the scheduler by broadcast (e.g. because - # of a firewall) you can specify it. - # - ICECREAM_SCHEDULER_HOST="" - - # --## Type: integer --## Path: Applications/icecream --## Default: "" --# - # You can overwrite here the number of jobs to run in parallel. Per --# default this depends on the number of (virtual) CPUs installed. -+# default this depends on the number of (virtual) CPUs installed. - # - # Note: a value of "0" is actually interpreted as "1", however it - # also sets ICECREAM_ALLOW_REMOTE="no". -@@ -71,22 +21,7 @@ ICECREAM_SCHEDULER_HOST="" - ICECREAM_MAX_JOBS="" - - # --## Type: yesno --## Path: Applications/icecream --## Default: "yes" --# - # Specifies whether jobs submitted by other nodes are allowed to run on - # 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. --# --ICECREAM_BASEDIR="/var/cache/icecream" diff --git a/icecream-scheduler.xml b/icecream-scheduler.xml index bbe85f6..7deb2b8 100644 --- a/icecream-scheduler.xml +++ b/icecream-scheduler.xml @@ -2,6 +2,7 @@ icecream scheduler icecream distributed compilation scheduler. + diff --git a/icecream.csh.in b/icecream.csh.in deleted file mode 100644 index c142b80..0000000 --- a/icecream.csh.in +++ /dev/null @@ -1,21 +0,0 @@ -# Leaves path unchanged if icecc is already there. -# If ccache is there, adds icecc _after_ it. -# Otherwise adds icecc to the beginning. - -if ( "$path" !~ *@LIBEXECDIR@/icecc/bin* ) then - if ( "$path" !~ *@LIBDIR@/ccache* ) then - set path = ( @LIBEXECDIR@/icecc/bin $path ) - else - @ pos = 0 - foreach item ( $path ) - @ pos = $pos + 1 - if ( $item == @LIBDIR@/ccache ) break - end - @ next_pos = $pos + 1 - set path = ( $path[1-$pos] @LIBEXECDIR@/icecc/bin \ - $path[$next_pos-]) - unset next_pos - unset pos - unset item - endif -endif diff --git a/icecream.sh.in b/icecream.sh.in deleted file mode 100644 index 10a78ca..0000000 --- a/icecream.sh.in +++ /dev/null @@ -1,9 +0,0 @@ -# Leaves PATH unchanged if icecc is already there. -# If ccache is there, adds icecc _after_ it. -# Otherwise adds icecc to the beginning. - -PATH=`echo $PATH | /bin/sed -e \ - '\%@LIBEXECDIR@/icecc/bin% b - s%@LIBDIR@/ccache%&:@LIBEXECDIR@/icecc/bin% - t - s%^%@LIBEXECDIR@/icecc/bin:%'` diff --git a/icecream.spec b/icecream.spec index 33e6000..cf02ee9 100644 --- a/icecream.spec +++ b/icecream.spec @@ -4,15 +4,14 @@ Name: icecream Version: 1.0.98 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Distributed compiler Group: Development/Tools License: GPLv2+ URL: https://github.com/icecc/icecream Source0: icecc-%{version}.tar.bz2 -Source1: icecream.sh.in -Source2: icecream.csh.in +Source1: fedora.logrotate.icecream Source3: icecream.fc Source4: icecream.te Source5: icecream.if @@ -23,8 +22,9 @@ Source10: icecc-scheduler-wrapper Source11: icecream-tmpfiles.conf Source12: icecream.xml Source13: icecream-scheduler.xml -Patch0001: 0001-Revert-chmod-chown-envs-dir-when-preparing-this.patch -Patch0002: 0002-daemon-main-do-not-create-run-icecc-by-ourselves.patch +Patch1: 0001-Revert-chmod-chown-envs-dir-when-preparing-this.patch +Patch2: 0002-daemon-main-do-not-create-run-icecc-by-ourselves.patch +Patch3: 0003-add-debug-entries.patch BuildRequires: systemd BuildRequires: libcap-ng-devel @@ -35,6 +35,7 @@ Requires(pre): shadow-utils Requires(post): systemd Requires(preun): systemd Requires(postun): systemd +Requires: logrotate %if %{with selinux} # For SELinux protection: @@ -73,9 +74,7 @@ This package contains development files for %{name}. %setup -q -n icecc-%{version} %patch0001 -p1 %patch0002 -p1 - -sed -e 's|@LIBDIR@|%{_libdir}|g;s|@LIBEXECDIR@|%{_libexecdir}|g' %{SOURCE1} > icecream.sh -sed -e 's|@LIBDIR@|%{_libdir}|g;s|@LIBEXECDIR@|%{_libexecdir}|g' %{SOURCE2} > icecream.csh +%patch0003 -p1 mkdir SELinux cp -p %{SOURCE3} %{SOURCE4} %{SOURCE5} SELinux @@ -109,18 +108,20 @@ make install DESTDIR=%{buildroot} rm -f %{buildroot}/%{_libdir}/libicecc.la # install config file and initscripts -install -D -m 644 suse/sysconfig.icecream %{buildroot}/%{_sysconfdir}/sysconfig/icecream +install -D -m 644 suse/logrotate %{buildroot}/%{_sysconfdir}/logrotate.d/icecream +install -D -m 644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/sysconfig/icecream install -d -m 755 %{buildroot}/%{_unitdir} install -p -m 644 fedora/*.service %{buildroot}/%{_unitdir} install -p -m 755 fedora/*-wrapper %{buildroot}/%{_libexecdir}/icecc mkdir -p %{buildroot}%{_tmpfilesdir} install -p -m 644 fedora/icecream-tmpfiles.conf %{buildroot}/%{_tmpfilesdir}/icecream.conf install -d -m 755 %{buildroot}/%{_sysconfdir}/profile.d -install -p -m 644 icecream.sh icecream.csh %{buildroot}/%{_sysconfdir}/profile.d install -m644 -p -D %{SOURCE12} %{buildroot}%{_prefix}/lib/firewalld/services/icecream.xml install -m644 -p -D %{SOURCE13} %{buildroot}%{_prefix}/lib/firewalld/services/icecream-scheduler.xml +mkdir -p %{buildroot}%{_var}/log/%{name} + # create default working dir mkdir -p %{buildroot}/%{_localstatedir}/cache/icecream @@ -180,7 +181,6 @@ for selinuxvariant in %{selinux_variants}; 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 @@ -236,9 +236,10 @@ exit 0 %{_libdir}/libicecc.so.* %{_sbindir}/iceccd %{_sbindir}/icecc-scheduler +%config %_sysconfdir/logrotate.d/icecream %config(noreplace) %{_sysconfdir}/sysconfig/icecream -%config(noreplace) %{_sysconfdir}/profile.d/icecream.*sh %{_unitdir}/icecc*.service +%attr(0775, root, icecream) %dir %{_var}/log/%{name} %attr(0775, root, icecream) %{_localstatedir}/cache/icecream %attr(0775, root, icecream) /run/icecc %{_mandir}/man*/* @@ -254,7 +255,12 @@ exit 0 %{_libdir}/pkgconfig/icecc.pc %changelog -* Thu Feb 25 2016 Helio Chissini de Castro - 1.0.98 +* Wed Mar 02 2016 Helio Chissini de Castro - 1.0.98-2 +- Add log entries and log dir +- Remove profile entries. We shouldn't be in the path, since tools rely on icecc binary +and this break the process since it relies on recursive call due to be in path. + +* Thu Feb 25 2016 Helio Chissini de Castro - 1.0.98-1 - Update for most recent version available by Suse - Icecream is now in github