rpms/icecream/devel icecream-add-initscripts.patch, NONE, 1.1 icecream-cleanup-conffile.patch, NONE, 1.1 icecream-rename-scheduler.patch, NONE, 1.1 icecream.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Michal Schmidt (michich) fedora-extras-commits at redhat.com
Thu Nov 8 21:37:33 UTC 2007


Author: michich

Update of /cvs/pkgs/rpms/icecream/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv29084/devel

Modified Files:
	.cvsignore sources 
Added Files:
	icecream-add-initscripts.patch icecream-cleanup-conffile.patch 
	icecream-rename-scheduler.patch icecream.spec 
Log Message:
Initial import


icecream-add-initscripts.patch:

--- NEW FILE icecream-add-initscripts.patch ---
--- /dev/null	2007-07-09 12:29:17.910501703 +0200
+++ fedora/initscript-iceccd	2007-07-16 15:54:43.000000000 +0200
@@ -0,0 +1,134 @@
+#!/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
+		touch $ICECREAM_LOG_FILE
+		chown icecream:icecream $ICECREAM_LOG_FILE
+		params="$params -l $ICECREAM_LOG_FILE"
+	else
+		touch /var/log/iceccd
+		chown icecream:icecream /var/log/iceccd
+	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 $?
--- /dev/null	2007-07-09 12:29:17.910501703 +0200
+++ fedora/initscript-scheduler	2007-07-16 16:14:23.000000000 +0200
@@ -0,0 +1,112 @@
+#!/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: "
+	params=""
+	if [ -n "$ICECREAM_NETNAME" ] ; then
+		params="$params -n $ICECREAM_NETNAME"
+	fi
+	logfile=${ICECREAM_SCHEDULER_LOG_FILE:-/var/log/icecc-scheduler}
+	params="$params -l $logfile"
+	touch "$logfile"
+	chown icecream:icecream $logfile
+	daemon --user icecream --check $service $exec -d $params
+	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 $?

icecream-cleanup-conffile.patch:

--- NEW FILE icecream-cleanup-conffile.patch ---
--- 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 @@
 #
-## 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
-## Defaut: /var/log/iceccd
-#
 # icecream daemon log file
 #
 ICECREAM_LOG_FILE="/var/log/iceccd"
 
 #
-## Type: string
-## Path: Applications/icecream
-## Defaut: no
-#
-# Start also the scheduler?
-#
-ICECREAM_RUN_SCHEDULER="no"
-
-#
-## Type: string
-## Path: Applications/icecream
-## Defaut: /var/log/icecc_scheduler
-#
 # 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: ""
-#
-# 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
-## Defaut: ""
-#
-# 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
-## Defaut: ""
-# 
 # 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 +36,14 @@ ICECREAM_SCHEDULER_HOST=""
 ICECREAM_MAX_JOBS=""
 
 #
-## Type: yesno
-## Path: Applications/icecream
-## Defaut: "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"

icecream-rename-scheduler.patch:

--- NEW FILE icecream-rename-scheduler.patch ---
--- services/Makefile.am.orig	2007-05-08 21:09:41.000000000 +0200
+++ services/Makefile.am	2007-07-15 19:18:41.000000000 +0200
@@ -11,9 +11,9 @@ ice_HEADERS = job.h comm.h
 noinst_HEADERS = bench.h exitcode.h getifaddrs.h logging.h tempfile.h platform.h
 icedir = $(includedir)/icecc
 
-sbin_PROGRAMS = scheduler
-scheduler_SOURCES = scheduler.cpp
-scheduler_LDADD = libicecc.la
+sbin_PROGRAMS = icecc-scheduler
+icecc_scheduler_SOURCES = scheduler.cpp
+icecc_scheduler_LDADD = libicecc.la
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = icecc.pc
--- doc/man-scheduler.1.docbook.orig	2005-04-25 15:21:14.000000000 +0200
+++ doc/man-scheduler.1.docbook	2007-07-16 13:53:44.000000000 +0200
@@ -23,13 +23,13 @@
 </refmeta>
 
 <refnamediv>
-	<refname>scheduler</refname>
+	<refname>icecc-scheduler</refname>
 	<refpurpose>Icecream scheduler</refpurpose>
 </refnamediv>
 
 <refsynopsisdiv>
 <cmdsynopsis>
-<command>scheduler</command>
+<command>icecc-scheduler</command>
 <group>
   <arg choice="opt">
     <option>-n</option>
@@ -151,7 +151,7 @@ need to run the scheduler with root righ
 
 <refsect1>
 <title>See Also</title>
-<para>icecream, scheduler, iceccd, icemon</para>
+<para>icecream, icecc-scheduler, iceccd, icemon</para>
 </refsect1>
 
 <refsect1>


--- NEW FILE icecream.spec ---
Name:		icecream
Version:	0.8.0
Release:	2.20071101svn%{?dist}
Summary:	Distributed compiler

Group:		Development/Tools
License:	GPLv2
URL:		http://en.opensuse.org/Icecream
# The source was pulled from upstream's SVN repository:
# svn export -r 731514 svn://anonsvn.kde.org/home/kde/trunk/icecream icecream-0.8.0
# tar -czvf icecream-0.8.0.tar.gz icecream-0.8.0
Source0:	icecream-0.8.0.tar.gz
Patch0:		icecream-rename-scheduler.patch
Patch1:		icecream-add-initscripts.patch
Patch2:		icecream-cleanup-conffile.patch
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:	automake autoconf libtool symlinks
# To build manpages from KDE-style Docbook sources:
BuildRequires:	kdelibs kdelibs-devel

%bcond_without	fedora
BuildRequires:	fedora-usermgmt-devel
%{?FE_USERADD_REQ}
Requires(post):		chkconfig
Requires(preun):	chkconfig
Requires(preun):	initscripts
Requires(postun):	initscripts

Provides:	group(icecream) = 44
Provides:	user(icecream)  = 44

# description copied from Debian icecc package
%description
Icecream is a distributed compile system. It allows parallel compiling by
distributing the compile jobs to several nodes of a compile network running the
icecc daemon. The icecc scheduler routes the jobs and provides status and
statistics information to the icecc monitor. Each compile node can accept one
or more compile jobs depending on the number of processors and the settings of
the daemon. Link jobs and other jobs which cannot be distributed are executed
locally on the node where the compilation is started.

%package	devel
Summary:	Development files for %{name}
Group:		Development/Libraries
Requires:	%{name} = %{version}-%{release}

%description	devel
This package contains development files for %{name}.

%prep
%setup -q
%patch0 -p0
%patch1 -p0
%patch2 -p0
make -f Makefile.cvs

%build
%configure --disable-static --enable-shared
make %{?_smp_mflags}
pushd doc
for i in man-*.docbook; do
	meinproc --stylesheet %{_datadir}/apps/ksgmltools2/customization/kde-man.xsl $i
	manfile=${i#man-}
	manfile=${manfile%.docbook}
	mv manpage.troff $manfile
done
popd

%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
rm -f %{buildroot}/%{_libdir}/libicecc.la

# move the symlinks elsewhere
mkdir -p %{buildroot}/%{_libdir}/icecc/bin
for i in cc gcc c++ g++; do
	ln -s %{buildroot}/%{_bindir}/icecc %{buildroot}/%{_libdir}/icecc/bin/$i
	rm -f %{buildroot}/%{_bindir}/$i
done

# relativize the symlinks
symlinks -cs %{buildroot}/%{_libdir}/icecc/bin

# install manpages
mkdir -p %{buildroot}/%{_mandir}/man{1,7,8}
mv doc/scheduler.1 doc/icecc-scheduler.1
for i in doc/*.1 doc/*.7; do
	install -m 644 $i %{buildroot}/%{_mandir}/man${i##*.}
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

# create default working dir
mkdir -p %{buildroot}/%{_localstatedir}/cache/icecream

%pre
# https://fedoraproject.org/wiki/PackageUserRegistry
%__fe_groupadd 44 -r icecream &>/dev/null || :
%__fe_useradd  44 -r -s /sbin/nologin -d %{_localstatedir}/cache/icecream -M \
	-c 'Icecream distributed compiler' -g icecream icecream &>/dev/null || :

%post
/sbin/ldconfig
/sbin/chkconfig --add iceccd
/sbin/chkconfig --add icecc-scheduler

%preun
if [ "$1" -eq 0 ] ; then
	/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
fi
exit 0

%postun
/sbin/ldconfig
if [ "$1" -ge 1 ]; then
	/sbin/service iceccd condrestart > /dev/null 2>&1
	/sbin/service icecc-scheduler condrestart > /dev/null 2>&1
fi
exit 0

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc COPYING ChangeLog README BENCH NEWS TODO
%{_bindir}/icecc
%{_libdir}/icecc/bin/cc
%{_libdir}/icecc/bin/gcc
%{_libdir}/icecc/bin/c++
%{_libdir}/icecc/bin/g++
%{_libdir}/icecc/icecc-create-env
%{_libdir}/libicecc.so.*
%{_sbindir}/iceccd
%{_sbindir}/icecc-scheduler
%{_mandir}/man*/*
%config(noreplace) %{_sysconfdir}/sysconfig/icecream
%{_sysconfdir}/rc.d/init.d/iceccd
%{_sysconfdir}/rc.d/init.d/icecc-scheduler
%{_localstatedir}/cache/icecream

%files devel
%{_includedir}/icecc/*.h
%{_libdir}/libicecc.so
%{_libdir}/pkgconfig/icecc.pc

%changelog
* Tue Nov  6 2007 Michal Schmidt <mschmidt at redhat.com> - 0.8.0-2.20071101svn
- Use the _datadir macro instead of hardcoded /usr/share

* Thu Nov 01 2007 Michal Schmidt <mschmidt at redhat.com> - 0.8.0-1.20071101svn
- Initial package for Fedora.


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/icecream/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	8 Nov 2007 19:14:31 -0000	1.1
+++ .cvsignore	8 Nov 2007 21:37:00 -0000	1.2
@@ -0,0 +1 @@
+icecream-0.8.0.tar.gz


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/icecream/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	8 Nov 2007 19:14:31 -0000	1.1
+++ sources	8 Nov 2007 21:37:00 -0000	1.2
@@ -0,0 +1 @@
+1f2cd40b8efb646df7cd4bbd5f411308  icecream-0.8.0.tar.gz




More information about the fedora-extras-commits mailing list