]> code.ossystems Code Review - openembedded-core.git/commitdiff
distcc: autostart distccd on boot
authorMarcin Juszkiewicz <hrw@openedhand.com>
Fri, 27 Apr 2007 13:23:08 +0000 (13:23 +0000)
committerMarcin Juszkiewicz <hrw@openedhand.com>
Fri, 27 Apr 2007 13:23:08 +0000 (13:23 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1570 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/distcc/distcc_2.18.3.bb
meta/packages/distcc/files/default [new file with mode: 0644]
meta/packages/distcc/files/distcc [new file with mode: 0755]

index 124f87fc7ff6f056c978b8b28c6ab38c07b4ce8d..7f557c41d1abfd989776c86e7a53404b82e0dd57 100644 (file)
@@ -2,23 +2,34 @@ DESCRIPTION = "distcc is a parallel build system that distributes \
 compilation of C/C++/ObjC code across machines on a network."
 SECTION = "devel"
 LICENSE = "GPLv2"
+PR = "r1"
 
 DEPENDS = "avahi gtk+"
 RRECOMMENDS = "avahi-daemon"
 
 SRC_URI = "http://distcc.samba.org/ftp/distcc/distcc-${PV}.tar.bz2 \
-          http://0pointer.de/public/distcc-avahi.patch;patch=1"
+          http://0pointer.de/public/distcc-avahi.patch;patch=1 \
+          file://default \
+          file://distcc"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig update-rc.d
+
+INITSCRIPT_NAME = "distcc"
 
 EXTRA_OECONF = " --with-gtk "
 
+do_install_append() {
+    install -d ${D}${sysconfdir}/init.d/
+    install -d ${D}${sysconfdir}/default
+    install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/
+    install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc
+}
+
 PACKAGES += "distcc-distmon-gnome"
 
-FILES_${PN} = " ${bindir}/distcc \
+FILES_${PN} = " ${sysconfdir} \
+               ${bindir}/distcc \
                ${bindir}/distccd \
                ${bindir}/distccmon-text"
 FILES_distcc-distmon-gnome = "  ${bindir}/distccmon-gnome \
                                ${datadir}/distcc"
-
-
diff --git a/meta/packages/distcc/files/default b/meta/packages/distcc/files/default
new file mode 100644 (file)
index 0000000..95290f8
--- /dev/null
@@ -0,0 +1,19 @@
+# Defaults for distcc initscript
+# sourced by /etc/init.d/distcc
+
+#
+# should distcc be started on boot?
+#
+# STARTDISTCC="true"
+
+STARTDISTCC="true"
+
+#
+# Which networks/hosts should be allowed to connect to the daemon?
+# You can list multiple hosts/networks separated by spaces.
+# Networks have to be in CIDR notation, f.e. 192.168.1.0/24
+# Hosts are represented by a single IP Adress
+#
+# ALLOWEDNETS="127.0.0.1"
+
+ALLOWEDNETS="192.168.7.0/24"
diff --git a/meta/packages/distcc/files/distcc b/meta/packages/distcc/files/distcc
new file mode 100755 (executable)
index 0000000..bbd4707
--- /dev/null
@@ -0,0 +1,98 @@
+#!/bin/sh
+#
+# distccd Debian init.d script contributed by Jason Thomas.  (Debian #161136)
+#
+# skeleton     example file to build /etc/init.d/ scripts.
+#              This file should be used to construct scripts for /etc/init.d.
+#
+#              Written by Miquel van Smoorenburg <miquels@cistron.nl>.
+#              Modified for Debian GNU/Linux
+#              by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+#
+# Version:     @(#)skeleton  1.9.1  08-Apr-2002  miquels@cistron.nl
+#
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/bin/distccd
+NAME=distcc
+DESC="Distributed Compiler Daemon"
+DAEMON_ARGS="--pid-file=/var/run/$NAME.pid --daemon"
+# please change those variables by overriding them in /etc/defaults/distcc
+ALLOWEDNETS="127.0.0.1"
+
+# Reads config file (will override defaults above)
+[ -r /etc/default/distcc ] && . /etc/default/distcc
+
+test -x $DAEMON || exit 0
+
+set -e
+
+# construct access list
+ALLOW=""
+for net in $ALLOWEDNETS
+do
+       ALLOW="$ALLOW --allow $net"
+done
+
+should_start() {
+       if [ "$STARTDISTCC" != "true" ] && [ "$STARTDISTCC" != "YES" ]; then
+               echo "STARTDISTCC is set to false in /etc/default/distcc"
+               echo "$DAEMON not starting"
+               exit 0
+       fi
+}
+
+case "$1" in
+  start)
+       should_start
+       echo -n "Starting $DESC: $NAME"
+       start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+       --exec $DAEMON -- $DAEMON_ARGS $ALLOW ||
+       {
+           code=$?
+           echo "$0: start failed with error code $code" >&2
+           exit $code
+       }
+       echo "."
+       ;;
+  stop)
+       echo -n "Stopping $DESC: $NAME"
+       start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+               --exec $DAEMON ||
+       {
+           code=$?
+           echo "$0: stop failed with error code $code" >&2
+           exit $code
+       }
+       echo "."
+       ;;
+  restart|force-reload)
+       #
+       #       If the "reload" option is implemented, move the "force-reload"
+       #       option to the "reload" entry above. If not, "force-reload" is
+       #       just the same as "restart".
+       #
+       echo -n "Restarting $DESC: $NAME"
+       start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+               --exec $DAEMON
+       sleep 1
+       should_start
+       start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+               --exec $DAEMON -- $DAEMON_ARGS $ALLOW ||
+       {
+           code=$?
+           echo "$0: restart failed with error code $code" >&2
+           exit $code
+       }
+       echo "."
+       ;;
+  *)
+       N=/etc/init.d/$NAME
+       echo "Usage: $N {start|stop|restart|force-reload}" >&2
+       exit 1
+       ;;
+esac
+
+exit 0
+
+