summaryrefslogtreecommitdiffstats
path: root/cluster
diff options
context:
space:
mode:
authorEric Sandall2008-03-09 15:50:18 -0700
committerEric Sandall2008-03-09 15:50:42 -0700
commit187ab944c40390abea391dc3ff567e33b05698d2 (patch)
tree1696a250d186c2910c2082c4a449db1348b50d3d /cluster
parentbb73b0e57c5d90c0eec2c38047f2227908887c70 (diff)
farmerjoe: Added a distributed rendering system for Blender
Diffstat (limited to 'cluster')
-rwxr-xr-xcluster/farmerjoe/BUILD1
-rwxr-xr-xcluster/farmerjoe/DEPENDS14
-rwxr-xr-xcluster/farmerjoe/DETAILS22
-rw-r--r--cluster/farmerjoe/Farmerjoe_0.1.3.zip.sigbin0 -> 287 bytes
-rw-r--r--cluster/farmerjoe/HISTORY12
-rwxr-xr-xcluster/farmerjoe/INSTALL15
-rwxr-xr-xcluster/farmerjoe/PRE_BUILD7
-rw-r--r--cluster/farmerjoe/etc-config.patch14
-rw-r--r--cluster/farmerjoe/init.d/farmerjoe-appserver40
-rw-r--r--cluster/farmerjoe/init.d/farmerjoe-appserver.conf10
-rw-r--r--cluster/farmerjoe/init.d/farmerjoe-master40
-rw-r--r--cluster/farmerjoe/init.d/farmerjoe-master.conf10
-rw-r--r--cluster/farmerjoe/init.d/farmerjoe-slave40
-rw-r--r--cluster/farmerjoe/init.d/farmerjoe-slave.conf10
-rw-r--r--cluster/farmerjoe/use-perl.patch16
15 files changed, 251 insertions, 0 deletions
diff --git a/cluster/farmerjoe/BUILD b/cluster/farmerjoe/BUILD
new file mode 100755
index 0000000000..27ba77ddaf
--- /dev/null
+++ b/cluster/farmerjoe/BUILD
@@ -0,0 +1 @@
+true
diff --git a/cluster/farmerjoe/DEPENDS b/cluster/farmerjoe/DEPENDS
new file mode 100755
index 0000000000..8905ec9a12
--- /dev/null
+++ b/cluster/farmerjoe/DEPENDS
@@ -0,0 +1,14 @@
+depends compress-zlib &&
+depends perl &&
+depends python &&
+depends yaml-tiny &&
+
+suggest_depends 'blender' \
+ '' \
+ '' \
+ 'for local Blender (otherwise network share Blender)' &&
+
+suggest_depends 'imagemagick' \
+ '' \
+ '' \
+ 'for bucket rendering (one image spread across the cluster)'
diff --git a/cluster/farmerjoe/DETAILS b/cluster/farmerjoe/DETAILS
new file mode 100755
index 0000000000..8a2e49fe65
--- /dev/null
+++ b/cluster/farmerjoe/DETAILS
@@ -0,0 +1,22 @@
+ SPELL=farmerjoe
+ VERSION=0.1.3
+ SOURCE=Farmerjoe_$VERSION.zip
+SOURCE_DIRECTORY=$BUILD_DIRECTORY/Farmerjoe_$VERSION
+ SOURCE_URL[0]=http://blender.formworks.co.nz/$SPELL/$VERSION/$SOURCE
+ SOURCE_GPG="gurus.gpg:$SOURCE.sig:WORKS_FOR_ME"
+ LICENSE[0]=GPL
+ WEB_SITE=http://blender.formworks.co.nz/?p=1
+ KEYWORDS="cluster"
+ ENTERED=20080209
+ SHORT='Distributed rendering system for Blender'
+ DOCS="$DOCS GPL-license.txt README.html"
+cat << EOF
+Farmerjoe is a distributed rendering system for Blender, it does both framex
+ based distribution and bucket based (single frame) distribution, it has a web
+gui and is fairly easy to set up IMHO :) I had tried to get Drqueue running and
+it worked great on linux but was less than easy to use on windows. There are a
+few other distributed rendering systems for blender but I wanted something I
+could run independantly of blender and seeing how I knew perl I hacked together
+this system to get distributed rendering running for Blender the way I wanted
+it to work.
+EOF
diff --git a/cluster/farmerjoe/Farmerjoe_0.1.3.zip.sig b/cluster/farmerjoe/Farmerjoe_0.1.3.zip.sig
new file mode 100644
index 0000000000..a40a01e0ab
--- /dev/null
+++ b/cluster/farmerjoe/Farmerjoe_0.1.3.zip.sig
Binary files differ
diff --git a/cluster/farmerjoe/HISTORY b/cluster/farmerjoe/HISTORY
new file mode 100644
index 0000000000..c6a5587f71
--- /dev/null
+++ b/cluster/farmerjoe/HISTORY
@@ -0,0 +1,12 @@
+2008-03-09 Eric Sandall <sandalle@sourcemage.org>
+ * DETAILS, DEPENDS, BUILD, INSTALL: Created
+ * etc-config.patch: Modify farmerjoe.pl to use /etc/farmerjoe.conf
+ instead of $installdir/Farmerjoe.conf
+ * use-perl.patch: Use the perl script, not binaries
+ * farmerjoe-appserver, farmerjoe-appserver.conf: Init and config for
+ farmerjoe app server (web interface)
+ * farmerjoe-master, farmerjoe-master.conf: Init and config for
+ farmerjoe master control
+ * farmerjoe-slave, farmerjoe-slave.conf: Init and config for
+ farmerjoe slave node
+
diff --git a/cluster/farmerjoe/INSTALL b/cluster/farmerjoe/INSTALL
new file mode 100755
index 0000000000..8f4139b21a
--- /dev/null
+++ b/cluster/farmerjoe/INSTALL
@@ -0,0 +1,15 @@
+install -m 0755 $SOURCE_DIRECTORY/Farmerjoe.pl \
+ $INSTALL_ROOT/usr/bin/farmerjoe &&
+install_config_file $SOURCE_DIRECTORY/Farmerjoe.conf \
+ $INSTALL_ROOT/etc/farmerjoe.conf &&
+
+#
+# Install Blender scripts
+#
+mkdir -p $INSTALL_ROOT/usr/share/blender/scripts &&
+
+for script in farmerjoe_bucket.py farmerjoe_submit.py
+do
+ install -m 0644 $SOURCE_DIRECTORY/bin/$script \
+ $INSTALL_ROOT/usr/share/blender/scripts/$script
+done
diff --git a/cluster/farmerjoe/PRE_BUILD b/cluster/farmerjoe/PRE_BUILD
new file mode 100755
index 0000000000..c1d52d1636
--- /dev/null
+++ b/cluster/farmerjoe/PRE_BUILD
@@ -0,0 +1,7 @@
+default_pre_build &&
+patch $SOURCE_DIRECTORY/Farmerjoe.pl \
+ $SCRIPT_DIRECTORY/etc-config.patch &&
+patch $SOURCE_DIRECTORY/bin/farmerjoe_submit.py \
+ $SCRIPT_DIRECTORY/use-perl.patch &&
+rm -f $SOURCE_DIRECTORY/Farmerjoe.{exe,linux,osx} &&
+rm -f $SOURCE_DIRECTORY/bin/nbtscan
diff --git a/cluster/farmerjoe/etc-config.patch b/cluster/farmerjoe/etc-config.patch
new file mode 100644
index 0000000000..22443debd3
--- /dev/null
+++ b/cluster/farmerjoe/etc-config.patch
@@ -0,0 +1,14 @@
+diff -Naur Farmerjoe_0.1.3.orig/Farmerjoe.pl Farmerjoe_0.1.3/Farmerjoe.pl
+--- Farmerjoe_0.1.3.orig/Farmerjoe.pl 2008-03-09 14:52:53.810733090 -0700
++++ Farmerjoe_0.1.3/Farmerjoe.pl 2008-03-09 14:53:42.573457139 -0700
+@@ -39,9 +39,7 @@
+
+ #read config here
+ my $util = FarmerTools->new();
+-my $dir = '.';
+-$dir = dirname($0);
+-my $conf = $util->load_conf("$dir/Farmerjoe.conf");
++my $conf = $util->load_conf("/etc/farmerjoe.conf");
+
+ my $osconf = {master=>$conf->{master},port=>$conf->{port}};
+ $osconf->{os} = $Config{osname};
diff --git a/cluster/farmerjoe/init.d/farmerjoe-appserver b/cluster/farmerjoe/init.d/farmerjoe-appserver
new file mode 100644
index 0000000000..842e675ccd
--- /dev/null
+++ b/cluster/farmerjoe/init.d/farmerjoe-appserver
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+PROGRAM=/usr/bin/farmerjoe
+RUNLEVEL=3
+NEEDS="+network"
+
+. /etc/sysconfig/farmerjoe-appserver
+. /etc/init.d/smgl_init
+
+start()
+{
+ echo "Starting Farmerjoe Appserver..."
+ su -c "$PROGRAM --appserver >> ${LOG_FILE} 2>&1" $USER &
+ evaluate_retval
+ echo $(ps aux|grep farmerjoe|grep -- "--appserver"|awk '{print $2}') > /var/run/farmerjoe-appserver.pid
+}
+
+stop()
+{
+ echo "Stopping Farmerjoe Appserver..."
+ if [[ -e /var/run/farmerjoe-appserver.pid ]]
+ then
+ kill $(cat /var/run/farmerjoe-appserver.pid)
+ evaluate_retval
+ rm -f /var/run/farmerjoe-appserver.pid
+ else
+ echo "Farmerjoe Appserver is not running"
+ fi
+}
+
+status()
+{
+ if [[ -e /var/run/farmerjoe-appserver.pid ]]
+ then
+ echo "Farmerjoe Appserver is running as $(cat /var/run/farmerjoe-appserver.pid)"
+ else
+ echo "Farmerjoe Appserver is not running"
+ fi
+}
+
diff --git a/cluster/farmerjoe/init.d/farmerjoe-appserver.conf b/cluster/farmerjoe/init.d/farmerjoe-appserver.conf
new file mode 100644
index 0000000000..f9a7897f6b
--- /dev/null
+++ b/cluster/farmerjoe/init.d/farmerjoe-appserver.conf
@@ -0,0 +1,10 @@
+#
+# Location of init logs
+#
+LOG_FILE=/var/log/farmerjoe-appserver.log
+
+#
+# User to run farmerjoe as
+#
+USER=root
+
diff --git a/cluster/farmerjoe/init.d/farmerjoe-master b/cluster/farmerjoe/init.d/farmerjoe-master
new file mode 100644
index 0000000000..d8d22dffca
--- /dev/null
+++ b/cluster/farmerjoe/init.d/farmerjoe-master
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+PROGRAM=/usr/bin/farmerjoe
+RUNLEVEL=3
+NEEDS="+network"
+
+. /etc/sysconfig/farmerjoe-master
+. /etc/init.d/smgl_init
+
+start()
+{
+ echo "Starting Farmerjoe Master..."
+ su -c "$PROGRAM --master >> ${LOG_FILE} 2>&1" $USER &
+ evaluate_retval
+ echo $(ps aux|grep farmerjoe|grep -- "--master"|awk '{print $2}') > /var/run/farmerjoe-master.pid
+}
+
+stop()
+{
+ echo "Stopping Farmerjoe Master..."
+ if [[ -e /var/run/farmerjoe-master.pid ]]
+ then
+ kill $(cat /var/run/farmerjoe-master.pid)
+ evaluate_retval
+ rm -f /var/run/farmerjoe-master.pid
+ else
+ echo "Farmerjoe Master is not running"
+ fi
+}
+
+status()
+{
+ if [[ -e /var/run/farmerjoe-master.pid ]]
+ then
+ echo "Farmerjoe Master is running as $(cat /var/run/farmerjoe-master.pid)"
+ else
+ echo "Farmerjoe Master is not running"
+ fi
+}
+
diff --git a/cluster/farmerjoe/init.d/farmerjoe-master.conf b/cluster/farmerjoe/init.d/farmerjoe-master.conf
new file mode 100644
index 0000000000..aa83897def
--- /dev/null
+++ b/cluster/farmerjoe/init.d/farmerjoe-master.conf
@@ -0,0 +1,10 @@
+#
+# Location of init logs
+#
+LOG_FILE=/var/log/farmerjoe-master.log
+
+#
+# User to run farmerjoe as
+#
+USER=root
+
diff --git a/cluster/farmerjoe/init.d/farmerjoe-slave b/cluster/farmerjoe/init.d/farmerjoe-slave
new file mode 100644
index 0000000000..a62f511204
--- /dev/null
+++ b/cluster/farmerjoe/init.d/farmerjoe-slave
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+PROGRAM=/usr/bin/farmerjoe
+RUNLEVEL=3
+NEEDS="+network"
+
+. /etc/sysconfig/farmerjoe-slave
+. /etc/init.d/smgl_init
+
+start()
+{
+ echo "Starting Farmerjoe Slave..."
+ su -c "$PROGRAM >> ${LOG_FILE} 2>&1" $USER &
+ evaluate_retval
+ echo $(ps aux|grep farmerjoe$|awk '{print $2}') > /var/run/farmerjoe-slave.pid
+}
+
+stop()
+{
+ echo "Stopping Farmerjoe Slave..."
+ if [[ -e /var/run/farmerjoe-slave.pid ]]
+ then
+ kill $(cat /var/run/farmerjoe-slave.pid)
+ evaluate_retval
+ rm -f /var/run/farmerjoe-slave.pid
+ else
+ echo "Farmerjoe Slave is not running"
+ fi
+}
+
+status()
+{
+ if [[ -e /var/run/farmerjoe-slave.pid ]]
+ then
+ echo "Farmerjoe Slave is running as $(cat /var/run/farmerjoe-slave.pid)"
+ else
+ echo "Farmerjoe Slave is not running"
+ fi
+}
+
diff --git a/cluster/farmerjoe/init.d/farmerjoe-slave.conf b/cluster/farmerjoe/init.d/farmerjoe-slave.conf
new file mode 100644
index 0000000000..8ed51ac41b
--- /dev/null
+++ b/cluster/farmerjoe/init.d/farmerjoe-slave.conf
@@ -0,0 +1,10 @@
+#
+# Location of init logs
+#
+LOG_FILE=/var/log/farmerjoe-slave.log
+
+#
+# User to run farmerjoe as
+#
+USER=root
+
diff --git a/cluster/farmerjoe/use-perl.patch b/cluster/farmerjoe/use-perl.patch
new file mode 100644
index 0000000000..6a1a118ac4
--- /dev/null
+++ b/cluster/farmerjoe/use-perl.patch
@@ -0,0 +1,16 @@
+diff -Naur Farmerjoe_0.1.3.orig/bin/farmerjoe_submit.py Farmerjoe_0.1.3/bin/farmerjoe_submit.py
+--- Farmerjoe_0.1.3.orig/bin/farmerjoe_submit.py 2008-03-09 15:00:31.310465423 -0700
++++ Farmerjoe_0.1.3/bin/farmerjoe_submit.py 2008-03-09 15:01:09.112456670 -0700
+@@ -76,9 +76,9 @@
+ 'extensions' :{ 'Targa':'.tga', 'Jpeg':'.jpg', 'PNG':'.png', 'BMP':'.bmp' },
+ 'filetypes' :( 'Targa', 'Jpeg', 'PNG', 'BMP' ),
+ 'filetype_const' :{ 'Targa':Scene.Render.TARGA, 'Jpeg':Scene.Render.JPEG, 'PNG':Scene.Render.PNG, 'BMP':Scene.Render.BMP },
+-'linux_farmerjoe' :'Farmerjoe.linux',
+-'windows_farmerjoe' :'Farmerjoe.exe',
+-'osx_farmerjoe' :'Farmerjoe.osx'
++'linux_farmerjoe' :'farmerjoe',
++'windows_farmerjoe' :'farmerjoe',
++'osx_farmerjoe' :'farmerjoe'
+ }
+ #controls
+ c_ = {