Hello community,

here is the log from the commit of package icecream for openSUSE:Factory 
checked in at 2018-07-23 18:00:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icecream (Old)
 and      /work/SRC/openSUSE:Factory/.icecream.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "icecream"

Mon Jul 23 18:00:16 2018 rev:50 rq:623388 version:1.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/icecream/icecream.changes        2018-01-05 
00:59:52.774749620 +0100
+++ /work/SRC/openSUSE:Factory/.icecream.new/icecream.changes   2018-07-23 
18:00:19.424981553 +0200
@@ -1,0 +2,11 @@
+Fri Jun 29 01:18:26 UTC 2018 - [email protected]
+
+- Add firewalld rules, remove SuSEFirewall2 config
+- Add systemd service units for icecream, icecream-scheduler
+- Create socket and environment directories using tmpfiles.d
+- Strip no longer needed options from config file
+- Spec file cleanup:
+  - remove cruft for 12.2 and older
+  - use %license tag
+
+-------------------------------------------------------------------

New:
----
  icecc-scheduler-wrapper
  icecc-scheduler.service
  icecc-scheduler.xml
  iceccd-wrapper
  iceccd.service
  iceccd.xml
  icecream-tmpfiles.conf
  sysconfig.icecream

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ icecream.spec ++++++
--- /var/tmp/diff_new_pack.3t07qk/_old  2018-07-23 18:00:20.232980549 +0200
+++ /var/tmp/diff_new_pack.3t07qk/_new  2018-07-23 18:00:20.240980539 +0200
@@ -24,23 +24,33 @@
 Version:        1.1
 Release:        0
 Summary:        For Distributed Compile in the Network
-License:        GPL-2.0+ AND LGPL-2.1+
+License:        GPL-2.0-or-later AND LGPL-2.1-or-later
 Group:          Development/Tools/Building
 URL:            https://github.com/icecc/icecream
 Source0:        https://github.com/icecc/icecream/archive/%{version}.tar.gz
+Source1:        iceccd.xml
+Source2:        iceccd.service
+Source3:        iceccd-wrapper
+Source4:        icecc-scheduler.xml
+Source5:        icecc-scheduler.service
+Source6:        icecc-scheduler-wrapper
+Source7:        icecream-tmpfiles.conf
+Source8:        sysconfig.icecream
 BuildRequires:  docbook2x
+BuildRequires:  firewall-macros
 BuildRequires:  gcc-c++
 BuildRequires:  libcap-ng-devel
 BuildRequires:  libtool
 BuildRequires:  libxslt-tools
 BuildRequires:  lzo-devel
+BuildRequires:  systemd-rpm-macros
 Requires:       %{_bindir}/bzip2
 Requires:       /bin/tar
 Requires:       logrotate
 Requires(pre):  %fillup_prereq
-Requires(pre):  %insserv_prereq
 Requires(pre):  %{_sbindir}/groupadd
 Requires(pre):  %{_sbindir}/useradd
+%{?systemd_requires}
 Recommends:     gcc-c++
 %if 0%{?suse_version} > 1315
 BuildRequires:  clang-devel
@@ -70,6 +80,7 @@
 
 %prep
 %setup -q
+cp %{SOURCE8} suse/
 # DO NOT ADD PATCHES without github reference
 
 %build
@@ -82,50 +93,86 @@
 
 %install
 %make_install templatesdir=%{_fillupdir}
+# firewalld instead of SuSEfirewall2
+rm -R %{buildroot}/%{_sysconfdir}/sysconfig/SuSEfirewall2.d
+install -m644 -p -D %{SOURCE1} 
%{buildroot}%{_libexecdir}/firewalld/services/iceccd.xml
+install -m644 -p -D %{SOURCE4} 
%{buildroot}%{_libexecdir}/firewalld/services/icecc-scheduler.xml
+# unit files and wrappers
+install -m644 -p -D %{SOURCE2} %{buildroot}%{_unitdir}/iceccd.service
+install -m755 -p -D %{SOURCE3} %{buildroot}%{_libexecdir}/icecc/iceccd-wrapper
+install -m644 -p -D %{SOURCE5} %{buildroot}%{_unitdir}/icecc-scheduler.service
+install -m755 -p -D %{SOURCE6} 
%{buildroot}%{_libexecdir}/icecc/icecc-scheduler-wrapper
+# make sure runtime directories are automatically created
+install -m644 -p -D %{SOURCE7} %{buildroot}/%{_tmpfilesdir}/icecream.conf
+# cleanup SysV init
+rm %{buildroot}/%{_sysconfdir}/init.d/icecream
+rm %{buildroot}/%{_sbindir}/rcicecream
+ln -s service %{buildroot}/%{_sbindir}/rciceccd
+ln -s service %{buildroot}/%{_sbindir}/rcicecc-scheduler
+sed -i -e '1s@/usr/bin/env bash@/bin/bash@'  
%{buildroot}/%{_bindir}/icecc-create-env
 
 %preun
-%stop_on_removal icecream
+%service_del_preun iceccd.service icecc-scheduler.service
 
 %pre
 %{_sbindir}/groupadd -r icecream 2> /dev/null || :
 %{_sbindir}/useradd -r -g icecream -s /bin/false -c "Icecream Daemon" -d 
%{_localstatedir}/cache/icecream icecream 2> /dev/null || :
+%service_add_pre iceccd.service icecc-scheduler.service
+# save state of old icecream SysV service
+if [ "$1" -gt 1 ]; then
+  /usr/sbin/systemd-sysv-convert --save icecream || :
+fi
 
 %post
-# older icecream versions may have left some files owned by root:root in the 
cache
-rm -rf -- %{_localstatedir}/cache/icecream/*
 %if 0%{?suse_version}
-%{fillup_and_insserv -n icecream icecream}
+%fillup_only
 %endif
+%tmpfiles_create %_tmpfilesdir/icecream.conf
+%firewalld_reload
+# migrate runlevel settings
+if [ "$1" -gt 1 ] && [ -e /var/lib/systemd/sysv-convert/database ] ; then
+    grep -q 'ICECREAM_RUN_SCHEDULER="yes"' %{_sysconfdir}/sysconfig/icecream &&
+        sed -i -e '/icecream\s/ p; s/icecream\s/icecc-scheduler /' 
/var/lib/systemd/sysv-convert/database
+    sed -i -e '/icecream\s/ s/icecream\s/iceccd /' 
/var/lib/systemd/sysv-convert/database
+fi
+%service_add_post iceccd.service icecc-scheduler.service
+# restart services
+if [ "$1" -gt 1 ] ; then
+    if systemctl -q is-active icecream ; then
+        systemctl stop icecream
+        systemctl start iceccd
+        systemctl -q is-enabled icecc-scheduler && systemctl start 
icecc-scheduler
+    fi
+fi
 
 %postun
-%restart_on_update icecream
-%insserv_cleanup
+%service_del_postun iceccd.service icecc-scheduler.service
 
 %files
-%doc COPYING README.md NEWS
+%doc README.md NEWS
+%license COPYING
 %config %{_sysconfdir}/logrotate.d/icecream
-%config %{_sysconfdir}/init.d/icecream
 %{_bindir}/icecc-create-env
 %{_bindir}/icecc
 %{_bindir}/icerun
 %{_sbindir}/icecc-scheduler
 %{_sbindir}/iceccd
-%{_sbindir}/rcicecream
+%{_sbindir}/rcicecc*
 %{_mandir}/man*/*
 %{_libexecdir}/icecc
 %exclude %{_libexecdir}/icecc/bin/clang
 %exclude %{_libexecdir}/icecc/bin/clang++
+%dir %{_libexecdir}/firewalld/
+%dir %{_libexecdir}/firewalld/services/
+%{_libexecdir}/firewalld/services/icecc*.xml
+%{_unitdir}/icecc*.service
+%{_tmpfilesdir}/icecream.conf
 %if 0%{?suse_version}
-%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/*
 %{_fillupdir}/sysconfig.icecream
-%if 0%{?suse_version} <= 1220
-/opt/icecream
-%exclude /opt/icecream/bin/clang
-%exclude /opt/icecream/bin/clang++
-%endif
 %endif
 %attr(-,icecream,icecream) %{_localstatedir}/cache/icecream
 %attr(-,icecream,icecream) %{_localstatedir}/log/icecream
+%ghost /run/icecc
 
 %files -n libicecream-devel
 %{_includedir}/icecc
@@ -135,9 +182,5 @@
 %files -n icecream-clang-wrappers
 %{_libexecdir}/icecc/bin/clang
 %{_libexecdir}/icecc/bin/clang++
-%if 0%{?suse_version} <= 1220
-/opt/icecream/bin/clang
-/opt/icecream/bin/clang++
-%endif
 
 %changelog

++++++ icecc-scheduler-wrapper ++++++
#! /bin/sh

params=""

if test -n "$ICECREAM_NETNAME"; then
    params="$params -n $ICECREAM_NETNAME"
fi

exec /usr/sbin/icecc-scheduler $params

++++++ icecc-scheduler.service ++++++
[Unit]
Description=Icecream distributed compiler scheduler

[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/icecream
User=icecc
Group=icecc
SyslogIdentifier=icecc-scheduler
ExecStart=/usr/lib/icecc/icecc-scheduler-wrapper

[Install]
WantedBy=multi-user.target
++++++ icecc-scheduler.xml ++++++
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Icecream scheduler</short>
  <description>Icecream is a distributed compiler daemon. Enable this option if 
this host runs the scheduler.</description>
  <port protocol="tcp" port="8765"/>
  <port protocol="tcp" port="8766"/><!-- Telnet interface -->
  <port protocol="udp" port="8765"/><!-- Broadcast/discovery port -->
</service>
++++++ iceccd-wrapper ++++++
#! /bin/sh

params=""

if test -n "$ICECREAM_NETNAME"; then
    params="$params -n $ICECREAM_NETNAME"
fi

if test -n "$ICECREAM_SCHEDULER_HOST"; then
    params="$params -s $ICECREAM_SCHEDULER_HOST"
fi

if test "$ICECREAM_ALLOW_REMOTE" = "no" 2> /dev/null; then
        params="$params --no-remote"
fi

if test -n "$ICECREAM_MAX_JOBS"; then
    if test "$ICECREAM_MAX_JOBS" -eq 0 2> /dev/null; then
        params="$params -m 1 --no-remote"
    else
        params="$params -m $ICECREAM_MAX_JOBS"
    fi
fi

exec /usr/sbin/iceccd $@ $params
++++++ iceccd.service ++++++
[Unit]
Description=Icecream Distributed Compiler
After=network.target nss-lookup.target

[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/icecream
SyslogIdentifier=iceccd
ExecStart=/usr/lib/icecc/iceccd-wrapper -u icecream -vv -b /var/cache/icecream/
Nice=5

[Install]
WantedBy=multi-user.target
++++++ iceccd.xml ++++++
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Icecream compiler daemon (iceccd)</short>
  <description>Icecream is a distributed compiler daemon. Enable this option if 
this host is a compile node.</description>
  <port protocol="tcp" port="10245"/>
  <source-port port="8765" protocol="udp"/><!-- scheduler announcements -->
</service>
++++++ icecream-tmpfiles.conf ++++++
# See tmpfiles.d(5) for details
#Type Path                Mode UID      GID      Age Argument
d     /run/icecc          0775 root     icecream -
Z     /var/cache/icecream 0755 icecream icecream -
++++++ sysconfig.icecream ++++++
#
## Type: string
## Path: Applications/icecream
## Default: ""
#
# 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
# 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.
#
# Note: a value of "0" is actually interpreted as "1", however it
# also sets ICECREAM_ALLOW_REMOTE="no".
#
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"


Reply via email to