From d2c835c392c9eeba81f79978ab1bed4ec1f71417 Mon Sep 17 00:00:00 2001
From: Alain Takoudjou <talino@tiolive.com>
Date: Tue, 11 Feb 2014 17:27:52 +0100
Subject: [PATCH] Boinc can now work without frontend

---
 component/boinc/buildout.cfg    |  2 +-
 slapos/recipe/boinc/__init__.py |  3 ++
 software/boinc/software.cfg     | 19 ++++++++
 stack/boinc/buildout.cfg        | 84 +--------------------------------
 stack/boinc/instance-boinc.cfg  |  4 +-
 5 files changed, 28 insertions(+), 84 deletions(-)

diff --git a/component/boinc/buildout.cfg b/component/boinc/buildout.cfg
index 54111ebdc..846af781e 100644
--- a/component/boinc/buildout.cfg
+++ b/component/boinc/buildout.cfg
@@ -28,7 +28,7 @@ recipe = plone.recipe.command
 location = ${buildout:parts-directory}/${:_buildout_section_name_}
 tarball = ${buildout:parts-directory}/boinc.tar.gz
 svnversion = ${subversion:location}/bin/svnversion
-command = ${subversion:location}/bin/svn co --revision 26162 http://boinc.berkeley.edu/svn/branches/server_stable ${:location} && \
+command = ${subversion:location}/bin/svn co --revision 26178 http://boinc.berkeley.edu/svn/branches/server_stable ${:location} && \
   sed -i 's#/usr/bin/svnversion#${:svnversion}#' ${:location}/tools/make_project && \
   sed -i "20i\#include <unistd.h>" ${:location}/tools/process_input_template.cpp && \
   sed -i "25i\#include <unistd.h>" ${:location}/sched/single_job_assimilator.cpp && \
diff --git a/slapos/recipe/boinc/__init__.py b/slapos/recipe/boinc/__init__.py
index 2a26cdf15..13c77c25e 100644
--- a/slapos/recipe/boinc/__init__.py
+++ b/slapos/recipe/boinc/__init__.py
@@ -40,6 +40,9 @@ class Recipe(GenericBaseRecipe):
     stat_info = os.stat(options['home'].strip())
     options['user'] = pwd.getpwuid(stat_info.st_uid)[0]
     url_base = options['url-base']
+    if str(options.get('force-ipv6')).lower() in ['y', 'yes', '1', 'true'] :
+      url_base = options['url-ipv6'].strip()
+      options['url-base'] = url_base
     project = options['project'].strip()
     root = options['installroot'].strip()
     options['home_page'] = url_base + "/" + project
diff --git a/software/boinc/software.cfg b/software/boinc/software.cfg
index 4fca2f119..d43519f8b 100644
--- a/software/boinc/software.cfg
+++ b/software/boinc/software.cfg
@@ -1,5 +1,8 @@
 [buildout]
 
+develop =
+  ${:parts-directory}/slapos.cookbook-repository
+
 parts = 
   template
   application
@@ -8,6 +11,9 @@ parts =
   template_input
   slapos-cookbook
   instance-egg
+  
+  slapos.cookbook-repository
+  check-recipe
 
 extends =
   ../../stack/boinc/buildout.cfg
@@ -65,3 +71,16 @@ template-result = ${template_result:location}/${template_result:filename}
 template-wu = ${template_wu:location}/${template_wu:filename}
 platform = x86_64-pc-linux-gnu
 extension = 
+
+[slapos.cookbook-repository]
+recipe = slapos.recipe.build:gitclone
+repository = http://git.erp5.org/repos/slapos.git
+branch = grid-computing
+git-executable = ${git:location}/bin/git
+
+[check-recipe]
+recipe = plone.recipe.command
+stop-on-error = true
+update-command = ${:command}
+command =
+  grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
diff --git a/stack/boinc/buildout.cfg b/stack/boinc/buildout.cfg
index 31b551e3b..8a1296454 100644
--- a/stack/boinc/buildout.cfg
+++ b/stack/boinc/buildout.cfg
@@ -34,7 +34,7 @@ eggs =
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-boinc.cfg
 output = ${buildout:directory}/template-boinc.cfg
-md5sum = 6642942dde15ab5195d8d8533690ef29
+md5sum = 986d45af5734c917b49e489bd8c10f3d
 mode = 0644
 
 #Template for deploying MySQL Database Server
@@ -178,84 +178,4 @@ signature-certificate-list =
   x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI=
   -----END CERTIFICATE-----
 
-[versions]
-pycrypto = 2.6
-lxml = 3.2.1
-setuptools = 0.6c12dev-r88846
-
-Jinja2 = 2.7
-MarkupSafe = 0.18
-MySQL-python = 1.2.4
-Werkzeug = 0.8.3
-apache-libcloud = 0.12.4
-async = 0.6.1
-buildout-versions = 1.7
-gitdb = 0.5.4
-inotifyx = 0.2.0-1
-meld3 = 0.6.10
-netaddr = 0.7.10
-plone.recipe.command = 1.1
-pytz = 2013b
-slapos.recipe.cmmi = 0.1.1
-slapos.recipe.download = 1.0.dev-r4053
-slapos.recipe.template = 2.4.2
-slapos.toolbox = 0.34.0
-smmap = 0.8.2
-slapos.cookbook=0.78.1
-
-# Required by:
-# slapos.core==0.35.1
-# slapos.toolbox==0.34.0
-Flask = 0.9
-
-# Required by:
-# slapos.toolbox==0.34.0
-GitPython = 0.3.2.RC1
-
-# Required by:
-# slapos.toolbox==0.34.0
-atomize = 0.1.1
-
-# Required by:
-# slapos.toolbox==0.34.0
-feedparser = 5.1.3
-
-# Required by:
-# slapos.cookbook==0.78.1
-lock-file = 2.0
-
-# Required by:
-# slapos.core==0.35.1
-netifaces = 0.8-1
-
-# Required by:
-# slapos.toolbox==0.34.0
-paramiko = 1.10.1
-
-# Required by:
-# slapos.toolbox==0.34.0
-psutil = 0.7.1
-
-# Required by:
-# slapos.core==0.35.1
-pyflakes = 0.7.2
-
-# Required by:
-# slapos.toolbox==0.34.0
-slapos.core = 0.35.1
-
-# Required by:
-# slapos.core==0.35.1
-supervisor = 3.0b1
-
-# Required by:
-# slapos.core==0.35.1
-unittest2 = 0.5.1
-
-# Required by:
-# slapos.toolbox==0.34.0
-xml-marshaller = 0.9.7
-
-# Required by:
-# slapos.core==0.35.1
-zope.interface = 4.0.5
\ No newline at end of file
+[versions]
\ No newline at end of file
diff --git a/stack/boinc/instance-boinc.cfg b/stack/boinc/instance-boinc.cfg
index 1aa36dd00..e01a19fca 100644
--- a/stack/boinc/instance-boinc.cfg
+++ b/stack/boinc/instance-boinc.cfg
@@ -184,8 +184,9 @@ bytes = 4
 recipe = slapos.cookbook:boinc
 home = $${buildout:directory}
 project = $${slap-parameter:project}
-#url-base = http://[$${apache-php:ip}]:$${apache-php:port}/
+url-ipv6 = http://[$${apache-php:ip}]:$${apache-php:port}/
 url-base = $${request-frontend:connection-site_url}
+force-ipv6 = $${slap-parameter:force-ipv6}
 fullname = $${slap-parameter:full-name}
 copyright = $${slap-parameter:copyright-holder}
 boinc = ${boinc:location}
@@ -352,6 +353,7 @@ curl_path = ${curl:location}/bin/curl
 
 [slap-parameter]
 #Default config value for boinc
+force-ipv6 = False
 project = boinc_test
 full-name = Boinc Project SAMPLE
 copyright-holder = REPLACE WITH COPYRIGHT HOLDER
-- 
2.30.9