1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
10 maintainer = Michael Tremer <michael.tremer@ipfire.org>
11 groups = Development/Compilers
12 url = http://en.opensuse.org/Icecream
14 summary = Distributed compiler.
17 Icecream is a distributed compile system. It allows parallel compiling by
18 distributing the compile jobs to several nodes of a compile network running the
19 icecc daemon. The icecc scheduler routes the jobs and provides status and
20 statistics information to the icecc monitor. Each compile node can accept one
21 or more compile jobs depending on the number of processors and the settings of
22 the daemon. Link jobs and other jobs which cannot be distributed are executed
23 locally on the node where the compilation is started.
26 source_dl = ftp://ftp.suse.com/pub/projects/icecream/
28 icecc-%{version}.tar.bz2 \
29 icecream-manpages.tar.bz2
36 DIR_APP = %{DIR_SRC}/icecc-%{version}
38 configure_options += \
43 cd %{DIR_SRC} && %{MACRO_EXTRACT} %{DIR_DL}/icecc-%{version}.tar.bz2
44 cd %{DIR_APP} && %{MACRO_EXTRACT} %{DIR_DL}/icecream-manpages.tar.bz2
50 ICECREAM_TARGET_PLATFORM=$(echo %{DISTRO_MACHINE} | sed -e "s/-gnu//g")
52 mkdir -pv %{BUILDROOT}/usr/lib/icecc/bin
53 for i in gcc g++ cc c++; do
54 ln -svf ../../../bin/icecc %{BUILDROOT}/usr/lib/icecc/bin/${i}
55 ln -svf ../../../bin/icecc %{BUILDROOT}/usr/lib/icecc/bin/%{ICECREAM_TARGET_PLATFORM}-${i}
57 sed -e 's|^#!.*|#!/bin/bash|' -i %{BUILDROOT}/usr/lib/icecc/icecc-create-env
59 mkdir -pv %{BUILDROOT}/etc/profile.d
60 sed -e "s|@LIBDIR@|/usr/lib|g" \
61 < %{DIR_SOURCE}/icecream.sh > %{BUILDROOT}/etc/profile.d/icecream.sh
63 # create default working dir
64 mkdir -pv %{BUILDROOT}/var/cache/icecream
67 mkdir -pv %{BUILDROOT}/usr/share/man/man{1,7,8}
68 mv mans/scheduler.1 mans/icecc-scheduler.1
69 for i in mans/*.1 mans/*.7; do
70 install -m 644 $i %{BUILDROOT}/usr/share/man/man${i##*.}
73 # Remove unwanted symlinks.
74 rm -rvf %{BUILDROOT}/usr/bin/c++
75 rm -rvf %{BUILDROOT}/usr/bin/cc
76 rm -rvf %{BUILDROOT}/usr/bin/g++
77 rm -rvf %{BUILDROOT}/usr/bin/gcc
80 mkdir -pv %{BUILDROOT}/var/log
81 touch %{BUILDROOT}/var/log/icecc{d,-scheduler}.log
92 prerequires += systemd-units
95 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
99 /bin/systemctl --no-reload disable iceccd.service \
100 icecc-scheduler.service >/dev/null 2>&1 || :
101 /bin/systemctl stop iceccd.service \
102 icecc-scheduler.service >/dev/null 2>&1 || :
106 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
110 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
111 /bin/systemctl try-restart iceccd.service \
112 icecc-scheduler.service >/dev/null 2>&1 || :
116 package %{name}-devel
120 package %{name}-debuginfo