diff --git a/CHANGES.txt b/CHANGES.txt
index 6f267dcf508fc5844681762468279a4deb5d1f2d..e60404dd305982876489337f64a466774d1e16ac 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,10 +1,21 @@
-0.11 (not yet released)
+0.13 (unreleased)
 ================
 
  * No change yet.
 
+0.12 (2011-07-11)
+=================
+
+ * Fix slaprunner, phpmyadmin software releases, added
+   wordpress software release. [Cedric de Saint Martin]
+
+0.11 (2011-07-07)
+=================
+
+ * Enable test suite runner for vifib.
+
 0.10 (2011-07-01)
-================
+=================
 
  * Add PHPMyAdmin software release used in SlapOS tutorials
  [Cedric de Saint Martin]
diff --git a/component/logrotate/buildout.cfg b/component/logrotate/buildout.cfg
index 21bceba755cac83d0af17cb2e51e711b2b7495f0..4a381cecd0be444288208b9f496f7c68edcf0068 100644
--- a/component/logrotate/buildout.cfg
+++ b/component/logrotate/buildout.cfg
@@ -3,10 +3,20 @@ extends =
   ../popt/buildout.cfg
 parts = logrotate
 
+[logrotate-3.7.9-O_CLOEXEC.optional.patch]
+recipe = hexagonit.recipe.download
+url = ${:_profile_base_location_}/${:filename}
+download-only = true
+md5sum = 6beac248c978b767d4bccc1b7eebe6bd
+filename = ${:_buildout_section_name_}
+
 [logrotate]
 recipe = hexagonit.recipe.cmmi
 url = https://fedorahosted.org/releases/l/o/logrotate/logrotate-3.7.9.tar.gz
 md5sum = eeba9dbca62a9210236f4b83195e4ea5
+patch-options = -p1
+patches =
+  ${logrotate-3.7.9-O_CLOEXEC.optional.patch:location}/${logrotate-3.7.9-O_CLOEXEC.optional.patch:filename}
 configure-command = true
 make-options = PREFIX=${buildout:parts-directory}/${:_buildout_section_name_} 
 environment =
diff --git a/component/logrotate/logrotate-3.7.9-O_CLOEXEC.optional.patch b/component/logrotate/logrotate-3.7.9-O_CLOEXEC.optional.patch
new file mode 100644
index 0000000000000000000000000000000000000000..182364672b4e8d381ddbcd70b57745cdec62bbce
--- /dev/null
+++ b/component/logrotate/logrotate-3.7.9-O_CLOEXEC.optional.patch
@@ -0,0 +1,16 @@
+diff --git a/config.c b/config.c
+index e6d5d1d..dd004a9 100644
+--- a/config.c
++++ b/config.c
+@@ -519,7 +519,11 @@ static int readConfigFile(const char *configFile, struct logInfo *defConfig)
+        length arrays -- of course, if we aren't run setuid it doesn't
+        matter much */
+ 
++#ifdef O_CLOEXEC
+     fd = open(configFile, O_RDONLY | O_CLOEXEC);
++#else
++    fd = open(configFile, O_RDONLY);
++#endif
+     if (fd < 0) {
+ 	message(MESS_ERROR, "failed to open config file %s: %s\n",
+ 		configFile, strerror(errno));
diff --git a/component/slapos/buildout.cfg b/component/slapos/buildout.cfg
index 3647bff5b4266f78679915cb1fa218ff5a812d37..0587c5e7bbfe3ec7f7a8ea8e022ce97bc3ef99c7 100644
--- a/component/slapos/buildout.cfg
+++ b/component/slapos/buildout.cfg
@@ -1,5 +1,6 @@
 [buildout]
 extends =
+  ../../stack/shacache-client.cfg
   ../lxml-python/buildout.cfg
   ../python-2.7/buildout.cfg
 
@@ -11,6 +12,20 @@ find-links =
 
 versions = versions
 
+allow-hosts =
+  *.googlecode.com
+  *.nexedi.org
+  *.python.org
+  alastairs-place.net
+  code.google.com
+  github.com
+  peak.telecommunity.com
+
+# separate from system python
+include-site-packages = false
+exec-sitecustomize = false
+allowed-eggs-from-site-packages =
+
 [lxml-python]
 python = python2.7
 
@@ -24,37 +39,36 @@ eggs =
   slapos.core
 
 [versions]
-zc.buildout = 1.5.3-dev-SlapOS-004
+zc.buildout = 1.5.3-dev-SlapOS-005
 Jinja2 = 2.5.5
 Werkzeug = 0.6.2
-buildout-versions = 1.6
 hexagonit.recipe.cmmi = 1.5.0
 lxml = 2.3
 meld3 = 0.6.7
 netaddr = 0.7.5
 setuptools = 0.6c12dev-r88846
-slapos.core = 0.8
-slapos.libnetworkcache = 0.1
+slapos.core = 0.9
+slapos.libnetworkcache = 0.2
 xml-marshaller = 0.9.7
 z3c.recipe.scripts = 1.0.1
 zc.recipe.egg = 1.3.2
 
 # Required by:
-# slapos.core==0.8
-Flask = 0.6.1
+# slapos.core==0.9
+Flask = 0.7.2
 
 # Required by:
 # hexagonit.recipe.cmmi==1.5.0
 hexagonit.recipe.download = 1.5.0
 
 # Required by:
-# slapos.core==0.8
+# slapos.core==0.9
 netifaces = 0.5
 
 # Required by:
-# slapos.core==0.8
+# slapos.core==0.9
 supervisor = 3.0a10
 
 # Required by:
-# slapos.core==0.8
-zope.interface = 3.6.3
+# slapos.core==0.9
+zope.interface = 3.6.4
diff --git a/component/stunnel/buildout.cfg b/component/stunnel/buildout.cfg
index a9e6e4ca29c7aee6e02204dbbec05858aa2c7dbf..470069bb0b229b84b14b1cc6aa812fb222ecd2ba 100644
--- a/component/stunnel/buildout.cfg
+++ b/component/stunnel/buildout.cfg
@@ -17,8 +17,8 @@ filename = stunnel-4-hooks.py
 
 [stunnel-4]
 recipe = hexagonit.recipe.cmmi
-url = ftp://ftp.stunnel.org/stunnel/stunnel-4.38.tar.gz
-md5sum = de5c0478303da746f946d9c112fa7f4b
+url = ftp://ftp.stunnel.org/stunnel/stunnel-4.39.tar.gz
+md5sum = 853739119a8364daea750154af6d7e79
 pre-configure-hook = ${stunnel-4-hook-download:location}/${stunnel-4-hook-download:filename}:pre_configure_hook
 configure-options =
   --enable-ipv6
diff --git a/component/w3m/buildout.cfg b/component/w3m/buildout.cfg
index abc351ab493899346d7afe8488ae03baed754c98..1692891e9908be31d0ff662b0d2a783285615a43 100644
--- a/component/w3m/buildout.cfg
+++ b/component/w3m/buildout.cfg
@@ -53,4 +53,4 @@ environment =
 
 [versions]
 # Use SlapOS patched zc.buildout
-zc.buildout = 1.5.3-dev-SlapOS-004
+zc.buildout = 1.5.3-dev-SlapOS-005
diff --git a/setup.py b/setup.py
index ea8fb1b1904898305561e0ca5f3f2a9477a69cc1..dab5d7dfe25b0feb4e1816ef9489dfe2b88de547 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
 import glob
 import os
 
-version = '0.11dev'
+version = '0.13dev'
 name = 'slapos.cookbook'
 long_description = open("README.txt").read() + "\n" + \
     open("CHANGES.txt").read() + "\n"
diff --git a/slapos/recipe/kumofs/__init__.py b/slapos/recipe/kumofs/__init__.py
index 1b38aff6ed7bb24e9768531f8f0931bb68283679..f2e928970800366d11433dfcf15cf33cf71dc9d2 100644
--- a/slapos/recipe/kumofs/__init__.py
+++ b/slapos/recipe/kumofs/__init__.py
@@ -220,9 +220,10 @@ class Recipe(BaseSlapRecipe):
         self.substituteTemplate(template_filename,
           stunnel_conf))
     wrapper = zc.buildout.easy_install.scripts([('stunnel',
-      'slapos.recipe.librecipe.execute', 'execute')], self.ws, sys.executable,
-      self.wrapper_directory, arguments=[
-        self.options['stunnel_binary'].strip(), stunnel_conf_path]
+      'slapos.recipe.librecipe.execute', 'execute_wait')], self.ws,
+      sys.executable, self.wrapper_directory, arguments=[
+        [self.options['stunnel_binary'].strip(), stunnel_conf_path],
+        [ca_certificate, key]]
       )[0]
     self.path_list.append(wrapper)
 
@@ -267,4 +268,4 @@ class Recipe(BaseSlapRecipe):
         config['kumo_gateway_port']),
       kumo_gateway_ip=config['kumo_gateway_ip'],
       kumo_gateway_port=config['kumo_gateway_port'],
-    )
\ No newline at end of file
+    )
diff --git a/slapos/recipe/librecipe/execute.py b/slapos/recipe/librecipe/execute.py
index 4fc17f6bb01a4240de3670001c9e4b62f0d1e824..ec2862116b0787b16c75287cbc89bdf860d73d94 100644
--- a/slapos/recipe/librecipe/execute.py
+++ b/slapos/recipe/librecipe/execute.py
@@ -10,6 +10,23 @@ def execute(args):
   # Note: Candidate for slapos.lib.recipe
   os.execv(args[0], args + sys.argv[1:])
 
+def execute_wait(args):
+  """Execution but after all files in args[1] exists"""
+  exec_list = list(args[0])
+  file_list = list(args[1])
+  sleep = 60
+  while True:
+    ready = True
+    for f in file_list:
+      if not os.path.exists(f):
+        print 'File %r does not exists, sleeping for %s' % (f, sleep)
+        ready = False
+    if ready:
+      break
+    time.sleep(sleep)
+  os.execv(exec_list[0], exec_list + sys.argv[1:])
+
+
 child_pg = None
 
 
diff --git a/slapos/recipe/memcached/__init__.py b/slapos/recipe/memcached/__init__.py
index 03ebd049623c34d8751b1c493c194304e4bab1f6..431ebe156592a42cc666263a2ff2a135f79cc787 100644
--- a/slapos/recipe/memcached/__init__.py
+++ b/slapos/recipe/memcached/__init__.py
@@ -220,9 +220,10 @@ class Recipe(BaseSlapRecipe):
         self.substituteTemplate(template_filename,
           stunnel_conf))
     wrapper = zc.buildout.easy_install.scripts([('stunnel',
-      'slapos.recipe.librecipe.execute', 'execute')], self.ws, sys.executable,
-      self.wrapper_directory, arguments=[
-        self.options['stunnel_binary'].strip(), stunnel_conf_path]
+      'slapos.recipe.librecipe.execute', 'execute_wait')], self.ws,
+      sys.executable, self.wrapper_directory, arguments=[
+        [self.options['stunnel_binary'].strip(), stunnel_conf_path],
+        [ca_certificate, key]]
       )[0]
     self.path_list.append(wrapper)
     return stunnel_conf
diff --git a/slapos/recipe/mysql/__init__.py b/slapos/recipe/mysql/__init__.py
index a1053a093afb143c8543c14d0b05f5d67e46ea34..0976d0411d1a17a09ca65920d0fecffa308ed5ac 100644
--- a/slapos/recipe/mysql/__init__.py
+++ b/slapos/recipe/mysql/__init__.py
@@ -224,9 +224,10 @@ class Recipe(BaseSlapRecipe):
         self.substituteTemplate(template_filename,
           stunnel_conf))
     wrapper = zc.buildout.easy_install.scripts([('stunnel',
-      'slapos.recipe.librecipe.execute', 'execute')], self.ws, sys.executable,
-      self.wrapper_directory, arguments=[
-        self.options['stunnel_binary'].strip(), stunnel_conf_path]
+      'slapos.recipe.librecipe.execute', 'execute_wait')], self.ws,
+      sys.executable, self.wrapper_directory, arguments=[
+        [self.options['stunnel_binary'].strip(), stunnel_conf_path],
+        [ca_certificate, key]]
       )[0]
     self.path_list.append(wrapper)
     return stunnel_conf
diff --git a/slapos/recipe/slaprunner/__init__.py b/slapos/recipe/slaprunner/__init__.py
index 1849232b1f719b9d144c307a7138dd0b5d3f2179..ecaa4c6a74978b465a8a18965845c8d0552d5bff 100644
--- a/slapos/recipe/slaprunner/__init__.py
+++ b/slapos/recipe/slaprunner/__init__.py
@@ -68,9 +68,11 @@ class Recipe(BaseSlapRecipe):
         self.substituteTemplate(pkg_resources.resource_filename(__name__,
           'template/slapos.cfg.in'), configuration))
     self.path_list.append(config_file)
+    
+    execute_arguments = dict(path = os.environ['PATH'],
+        launch_args = [self.options['slaprunner'].strip(), config_file])
     self.path_list.extend(zc.buildout.easy_install.scripts([('slaprunner',
       'slapos.recipe.slaprunner.execute', 'execute')], self.ws, sys.executable,
-      self.wrapper_directory, arguments=[self.options['slaprunner'].strip(),
-        config_file]))
+      self.wrapper_directory, arguments=execute_arguments))
     self.setConnectionDict(dict(url='http://[%s]:%s' % (ipv6, runner_port)))
     return self.path_list
diff --git a/slapos/recipe/slaprunner/execute.py b/slapos/recipe/slaprunner/execute.py
index 09395c071ba3d1425d795cae2f22ce96d9a7ee8b..deff58a83e129a95e69afb8d02a126ae042c8785 100644
--- a/slapos/recipe/slaprunner/execute.py
+++ b/slapos/recipe/slaprunner/execute.py
@@ -3,4 +3,6 @@ import os
 
 def execute(args):
   """Portable execution with process replacement"""
-  os.execv(args[0], args)
+  if args.get("path", None):
+    os.environ['PATH'] = args["path"]
+  os.execv(args["launch_args"][0], args["launch_args"])
diff --git a/slapos/recipe/vifib.py b/slapos/recipe/vifib.py
index 60f53b4ca34f7cbfb15f718ec2fdbe2fa36c10df..a5d39e58089ce9fc4c9097da48b280dc304f8268 100644
--- a/slapos/recipe/vifib.py
+++ b/slapos/recipe/vifib.py
@@ -224,6 +224,8 @@ SSLCARevocationPath %(ca_crl)s"""
     kumo_conf = self.installKumo(self.getLocalIPv4Address())
     self.installTestRunner(ca_conf, mysql_conf, conversion_server_conf,
         memcached_conf, kumo_conf)
+    self.installTestSuiteRunner(ca_conf, mysql_conf, conversion_server_conf,
+                           memcached_conf, kumo_conf)
     self.linkBinary()
     self.setConnectionDict(dict(
       development_zope='http://%s:%s/' % (ip, zope_port),
diff --git a/software/erp5/software.cfg b/software/erp5/software.cfg
index b5c1573acf1f0d4eacaedc8b666f3e7b69f18694..3521a52b519f540649ca80ae77c1152a01e1e930 100644
--- a/software/erp5/software.cfg
+++ b/software/erp5/software.cfg
@@ -1,5 +1,6 @@
 [buildout]
 extends =
+  ../../stack/shacache-client.cfg
   ../../stack/erp5.cfg
 
 versions = versions
@@ -140,7 +141,7 @@ netifaces = 0.4
 python-magic = 0.4.0.1
 
 # Required by:
-# zc.buildout==1.5.3-dev-SlapOS-004
+# zc.buildout==1.5.3-dev-SlapOS-005
 setuptools = 0.6c12dev-r88846
 
 # Required by:
diff --git a/software/erp5testnode/software.cfg b/software/erp5testnode/software.cfg
index dccf2c1ac8145249239b091bd34e3cdd6400254a..3fdec1ac67996817ffdbf8143f38dd0b00b8e6f1 100644
--- a/software/erp5testnode/software.cfg
+++ b/software/erp5testnode/software.cfg
@@ -8,6 +8,11 @@ find-links = http://www.nexedi.org/static/packages/source/slapos.buildout/
     http://dist.repoze.org
     http://www.nexedi.org/static/packages/source/
 
+# Separate from site eggs
+allowed-eggs-from-site-packages =
+include-site-packages = false
+exec-sitecustomize = false
+
 versions = versions
 rebootstrap-section = python2.6
 
diff --git a/software/kumofs/software.cfg b/software/kumofs/software.cfg
index 94236b40fd7fa2d1437500d9cb277ffdb5c5dfb0..58664fda015029f604e20a6e3f3bbdd858738fb8 100644
--- a/software/kumofs/software.cfg
+++ b/software/kumofs/software.cfg
@@ -1,9 +1,4 @@
 [buildout]
-
-extensions =
-  slapos.zcbworkarounds
-  slapos.rebootstrap
-
 find-links +=
     http://www.nexedi.org/static/packages/source/slapos.buildout/
 
@@ -15,6 +10,7 @@ extends =
   ../../component/stunnel/buildout.cfg
   ../../component/rdiff-backup/buildout.cfg
   ../../component/lxml-python/buildout.cfg
+  ../../stack/shacache-client.cfg
 
 # Use only quite well working sites.
 allow-hosts =
@@ -43,11 +39,6 @@ parts +=
 # development / fast switching environment for whole software
 unzip = true
 
-[rebootstrap]
-# Default first version of rebootstrapped python
-version = 2
-section = python2.7
-
 [instance-recipe]
 egg = slapos.cookbook
 module = kumofs
@@ -86,4 +77,4 @@ xml-marshaller = 0.9.7
 setuptools = 0.6c12dev-r88795
 
 # Use SlapOS patched zc.buildout
-zc.buildout = 1.5.3-dev-SlapOS-001
+zc.buildout = 1.5.3-dev-SlapOS-005
diff --git a/software/mariadb/software.cfg b/software/mariadb/software.cfg
index b03be0ef4b7841204e0a69ddbe9d7f0390fd655f..9dff5d33ad4b171aa5c096bbb581a5f1f1f8bcce 100644
--- a/software/mariadb/software.cfg
+++ b/software/mariadb/software.cfg
@@ -17,6 +17,7 @@ extends =
   ../../component/xtrabackup/buildout.cfg
   ../../component/rdiff-backup/buildout.cfg
   ../../component/lxml-python/buildout.cfg
+  ../../stack/shacache-client.cfg
 
 # Use only quite well working sites.
 allow-hosts =
@@ -88,4 +89,4 @@ hexagonit.recipe.download = 1.5.0
 plone.recipe.command = 1.1
 
 # Use SlapOS patched zc.buildout
-zc.buildout = 1.5.3-dev-SlapOS-001
+zc.buildout = 1.5.3-dev-SlapOS-005
diff --git a/software/memcached/software.cfg b/software/memcached/software.cfg
index 21fec00e97d98d0a00c781f4a995c261c05ede77..41cfb51632308bb8218ef699537655b049ff4005 100644
--- a/software/memcached/software.cfg
+++ b/software/memcached/software.cfg
@@ -14,6 +14,7 @@ extends =
   ../../component/stunnel/buildout.cfg
   ../../component/rdiff-backup/buildout.cfg
   ../../component/lxml-python/buildout.cfg
+  ../../stack/shacache-client.cfg
 
 # Use only quite well working sites.
 allow-hosts =
@@ -85,4 +86,4 @@ hexagonit.recipe.download = 1.5.0
 plone.recipe.command = 1.1
 
 # Use SlapOS patched zc.buildout
-zc.buildout = 1.5.3-dev-SlapOS-001
+zc.buildout = 1.5.3-dev-SlapOS-005
diff --git a/software/mysql-5.1/software.cfg b/software/mysql-5.1/software.cfg
index 826a21bb3a3868db746958f1e2b2ba0f09e1dd6e..11ec20002563a609a8a7d6a36867ae733ad0fd9a 100644
--- a/software/mysql-5.1/software.cfg
+++ b/software/mysql-5.1/software.cfg
@@ -1,9 +1,4 @@
 [buildout]
-
-extensions =
-  slapos.zcbworkarounds
-  slapos.rebootstrap
-
 find-links +=
     http://www.nexedi.org/static/packages/source/slapos.buildout/
 
@@ -17,6 +12,7 @@ extends =
   ../../component/xtrabackup/buildout.cfg
   ../../component/rdiff-backup/buildout.cfg
   ../../component/lxml-python/buildout.cfg
+  ../../stack/shacache-client.cfg
 
 # Use only quite well working sites.
 allow-hosts =
@@ -46,11 +42,6 @@ parts +=
 # development / fast switching environment for whole software
 unzip = true
 
-[rebootstrap]
-# Default first version of rebootstrapped python
-version = 2
-section = python2.7
-
 [instance-recipe]
 egg = slapos.cookbook
 module = mysql
@@ -89,4 +80,4 @@ hexagonit.recipe.download = 1.5.0
 plone.recipe.command = 1.1
 
 # Use SlapOS patched zc.buildout
-zc.buildout = 1.5.3-dev-SlapOS-001
+zc.buildout = 1.5.3-dev-SlapOS-005
diff --git a/software/phpmyadmin/phpmyadmin-configuration-template.php.ini b/software/phpmyadmin/phpmyadmin.inc.php.in
similarity index 100%
rename from software/phpmyadmin/phpmyadmin-configuration-template.php.ini
rename to software/phpmyadmin/phpmyadmin.inc.php.in
diff --git a/software/phpmyadmin/software.cfg b/software/phpmyadmin/software.cfg
index dbb055ee910b0680984dd003093a59e587ee319e..4791f12700e9204068288613ee38a15512ae448e 100644
--- a/software/phpmyadmin/software.cfg
+++ b/software/phpmyadmin/software.cfg
@@ -1,44 +1,16 @@
 [buildout]
-find-links +=
-    http://www.nexedi.org/static/packages/source/slapos.buildout/
-
-# Use only quite well working sites.
-allow-hosts =
-  *.nexedi.org
-  *.python.org
-  *.sourceforge.net
-  dist.repoze.org
-  effbot.org
-  github.com
-  peak.telecommunity.com
-  psutil.googlecode.com
-  www.dabeaz.com
-
 versions = versions
 
 parts =
   template
-  downloadcache-workaround
   apache-php
   mariadb
   eggs
   instance-recipe-egg
   
 extends =
-  ../../component/mariadb/buildout.cfg
-  ../../component/apache/buildout.cfg
-  ../../component/apache-php/buildout.cfg
-  ../../component/dcron/buildout.cfg
-  ../../component/git/buildout.cfg
-  ../../component/glib/buildout.cfg
-  ../../component/logrotate/buildout.cfg
-  ../../component/python-2.7/buildout.cfg
-  ../../component/perl/buildout.cfg
-  ../../component/sqlite3/buildout.cfg
-  ../../component/xtrabackup/buildout.cfg
-  ../../component/rdiff-backup/buildout.cfg
-  ../../component/lxml-python/buildout.cfg
-  ../../component/zlib/buildout.cfg
+  ../../stack/lamp.cfg
+  ../../stack/shacache-client.cfg
   
 [template]
 # Default template for the instance.
@@ -52,14 +24,11 @@ mode = 0644
 recipe = hexagonit.recipe.download
 url = http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.10/phpMyAdmin-3.3.10-all-languages.tar.bz2?r=http%3A%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Fdownloads.php&ts=1300959842&use_mirror=sunet
 #md5sum = Student may put here md5sum of this file, this is good idea
-#If provided tarball does not containt top directory this option shall be changed o false
-strip-top-level-dir = true
 
 [application-template]
 recipe = slapos.recipe.download
-#url = https://docs.google.com/a/lnowak.com/uc?id=0B_lVQSQ57Cz7Yzg3MjFiYTgtNmJlYy00YjhhLWE4ZGEtYThlOWM2NzA3YWQ0&export=download&hl=en
-url = ${:_profile_base_location_}/phpmyadmin-configuration-template.php.ini
-#md5sum = Student may put here md5sum of this file, this is good idea
+url = ${:_profile_base_location_}/phpmyadmin.inc.php.in
+md5sum = caab45c34c75661c214f4628ff545bb4
 download-only = True
 filename = template.in
 mode = 0644
@@ -68,11 +37,6 @@ location = ${buildout:parts-directory}/${:_buildout_section_name_}
 [application-configuration]
 location = config.inc.php
 
-[eggs]
-recipe = zc.recipe.egg
-eggs =
-  ${lxml-python:egg}
-  
 [instance-recipe]
 egg = slapos.cookbook
 module = osoeslaptraining.simple
@@ -82,22 +46,10 @@ recipe = zc.recipe.egg
 python = python2.7
 eggs = ${instance-recipe:egg}
 
-[downloadcache-workaround]
-# workaround irritating problem of hexagonit.recipe.cmmi which automatically
-# creates download cache, which in turn switches builout to "semi-offline" mode
-recipe = plone.recipe.command
-# in hexagonit.recipe.cmmi if there is no ${buildout:download-cache} set it resolves
-# to ${buildout:directory}/downloads but this variable is available late, that's
-# why it is hardcoded only for required case
-download-cache = ${buildout:directory}/downloads
-command = [ -d ${:download-cache} ] && rm -fr ${:download-cache}/* || exit 0
-update-command = ${:command}
-stop-on-error = True
-
 [versions]
-slapos.cookbook = 0.10
+slapos.cookbook = 0.12
 
-# Required by slapos.cookbook==0.10
+# Required by slapos.cookbook==0.12
 slapos.core = 0.8
 collective.recipe.template = 1.8
 netaddr = 0.7.5
@@ -109,4 +61,4 @@ hexagonit.recipe.download = 1.5.0
 plone.recipe.command = 1.1
 
 # Use SlapOS patched zc.buildout
-zc.buildout = 1.5.3-dev-SlapOS-004
\ No newline at end of file
+zc.buildout = 1.5.3-dev-SlapOS-005
diff --git a/software/slaprunner/instance.cfg b/software/slaprunner/instance.cfg
index b5fc593c940ad4a4064f5d5b9ef1d4acae5cd0d2..bed9cc3b73be9f67d4c74e62444c29edd4562de2 100644
--- a/software/slaprunner/instance.cfg
+++ b/software/slaprunner/instance.cfg
@@ -11,4 +11,5 @@ slaprunner = ${buildout:directory}/bin/slaprunner
 slapgrid_sr = ${buildout:directory}/bin/slapgrid-sr
 slapgrid_cp = ${buildout:directory}/bin/slapgrid-cp
 slapproxy = ${buildout:directory}/bin/slapproxy
-supervisor = ${buildout:directory}/bin/slapgrid-supervisor
+supervisor = ${buildout:directory}/bin/slapgrid-supervisorctl
+
diff --git a/software/slaprunner/software.cfg b/software/slaprunner/software.cfg
index 733be29009abeeeef85abaab186cf20814a6b5a1..d8506a69ae722a572105c74fe7bcba7713e4a229 100644
--- a/software/slaprunner/software.cfg
+++ b/software/slaprunner/software.cfg
@@ -1,6 +1,7 @@
 [buildout]
 extends =
   ../../stack/flask.cfg
+  ../../stack/shacache-client.cfg
 
 parts =
   template
@@ -26,17 +27,18 @@ recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance.cfg
 output = ${buildout:directory}/template.cfg
 mode = 0644
-md5sum = 04b17b8665eb4e11ce3a4661ad98e5e3
+md5sum = e2cbd8fe7b8e4c7e92a19cd775de0aa6
 
 [eggs]
 eggs +=
+  slapos.libnetworkcache
   slapos.toolbox
   slapos.core
 
 [versions]
-slapos.cookbook = 0.10
+slapos.cookbook = 0.12
 
-# Required by slapos.cookbook==0.10
+# Required by slapos.cookbook==0.12
 slapos.core = 0.8
 collective.recipe.template = 1.8
 netaddr = 0.7.5
@@ -46,6 +48,7 @@ setuptools = 0.6c12dev-r88795
 hexagonit.recipe.cmmi = 1.5.0
 hexagonit.recipe.download = 1.5.0
 plone.recipe.command = 1.1
+slapos.libnetworkcache = 0.2
 
 # Use SlapOS patched zc.buildout
-zc.buildout = 1.5.3-dev-SlapOS-004
\ No newline at end of file
+zc.buildout = 1.5.3-dev-SlapOS-005
diff --git a/software/wordpress/instance.cfg b/software/wordpress/instance.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..fffebea8fe2c6c76697fe4be87552f265614a35d
--- /dev/null
+++ b/software/wordpress/instance.cfg
@@ -0,0 +1,17 @@
+[buildout]
+eggs-directory = ${buildout:eggs-directory}
+develop-eggs-directory = ${buildout:develop-eggs-directory}
+
+parts = instance
+
+[instance]
+recipe = ${instance-recipe:egg}:${instance-recipe:module}
+source = ${application:location}
+template = ${application-template:location}/${application-template:filename}
+configuration = ${application-configuration:location}
+
+httpd_binary = ${apache:location}/bin/httpd
+mysql_binary = ${mariadb:location}/bin/mysql
+mysql_install_binary = ${mariadb:location}/bin/mysql_install_db
+mysql_upgrade_binary = ${mariadb:location}/bin/mysql_upgrade
+mysqld_binary = ${mariadb:location}/libexec/mysqld
diff --git a/software/wordpress/software.cfg b/software/wordpress/software.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..3a68fa504e8723c90c0bcd5dfed0d3a1c76737e1
--- /dev/null
+++ b/software/wordpress/software.cfg
@@ -0,0 +1,63 @@
+[buildout]
+versions = versions
+
+parts =
+  template
+  apache-php
+  mariadb
+  eggs
+  instance-recipe-egg
+  
+extends =
+  ../../stack/lamp.cfg
+  ../../stack/shacache-client.cfg
+
+[application]
+url = http://wordpress.org/latest.tar.gz
+#md5sum = Student may put here md5sum of this file, this is good idea
+
+[application-template]
+recipe = slapos.recipe.download
+url = ${:_profile_base_location_}/wp-config.php.in
+#md5sum = ${application-configuration:md5sum}
+download-only = True
+filename = template.in
+mode = 0644
+location = ${buildout:parts-directory}/${:_buildout_section_name_}
+
+[application-configuration]
+location = wp-config.php
+  
+[instance-recipe]
+egg = slapos.cookbook
+module = osoeslaptraining.request
+
+[instance-recipe-egg]
+recipe = zc.recipe.egg
+python = python2.7
+eggs = ${instance-recipe:egg}
+
+[template]
+# Default template for the instance.
+recipe = slapos.recipe.template
+url = ${:_profile_base_location_}/instance.cfg
+md5sum = efdb8509f40c86b1b73924fc1ce92f13
+output = ${buildout:directory}/template.cfg
+mode = 0644
+
+[versions]
+slapos.cookbook = 0.12
+
+# Required by slapos.cookbook==0.12
+slapos.core = 0.8
+collective.recipe.template = 1.8
+netaddr = 0.7.5
+xml-marshaller = 0.9.7
+setuptools = 0.6c12dev-r88795
+
+hexagonit.recipe.cmmi = 1.5.0
+hexagonit.recipe.download = 1.5.0
+plone.recipe.command = 1.1
+
+# Use SlapOS patched zc.buildout
+zc.buildout = 1.5.3-dev-SlapOS-005
diff --git a/software/wordpress/wp-config.php.in b/software/wordpress/wp-config.php.in
new file mode 100644
index 0000000000000000000000000000000000000000..808b341b424b54d83e8bedd16c63185be17ce43e
--- /dev/null
+++ b/software/wordpress/wp-config.php.in
@@ -0,0 +1,90 @@
+<?php
+/**
+ * The base configurations of the WordPress.
+ *
+ * This file has the following configurations: MySQL settings, Table Prefix,
+ * Secret Keys, WordPress Language, and ABSPATH. You can find more information
+ * by visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing
+ * wp-config.php} Codex page. You can get the MySQL settings from your web host.
+ *
+ * This file is used by the wp-config.php creation script during the
+ * installation. You don't have to use the web site, you can just copy this file
+ * to "wp-config.php" and fill in the values.
+ *
+ * @package WordPress
+ */
+
+// ** MySQL settings - You can get this info from your web host ** //
+/** The name of the database for WordPress */
+define('DB_NAME', '%(mysql_database)s');
+
+/** MySQL database username */
+define('DB_USER', '%(mysql_user)s');
+
+/** MySQL database password */
+define('DB_PASSWORD', '%(mysql_password)s');
+
+/** MySQL hostname */
+define('DB_HOST', '%(mysql_host)s');
+
+/** Database Charset to use in creating database tables. */
+define('DB_CHARSET', 'utf8');
+
+/** The Database Collate type. Don't change this if in doubt. */
+define('DB_COLLATE', '');
+
+/**#@+
+ * Authentication Unique Keys and Salts.
+ *
+ * Change these to different unique phrases!
+ * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
+ * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
+ *
+ * @since 2.6.0
+ */
+define('AUTH_KEY',         'put your unique phrase here');
+define('SECURE_AUTH_KEY',  'put your unique phrase here');
+define('LOGGED_IN_KEY',    'put your unique phrase here');
+define('NONCE_KEY',        'put your unique phrase here');
+define('AUTH_SALT',        'put your unique phrase here');
+define('SECURE_AUTH_SALT', 'put your unique phrase here');
+define('LOGGED_IN_SALT',   'put your unique phrase here');
+define('NONCE_SALT',       'put your unique phrase here');
+
+/**#@-*/
+
+/**
+ * WordPress Database Table prefix.
+ *
+ * You can have multiple installations in one database if you give each a unique
+ * prefix. Only numbers, letters, and underscores please!
+ */
+$table_prefix  = 'wp_';
+
+/**
+ * WordPress Localized Language, defaults to English.
+ *
+ * Change this to localize WordPress. A corresponding MO file for the chosen
+ * language must be installed to wp-content/languages. For example, install
+ * de_DE.mo to wp-content/languages and set WPLANG to 'de_DE' to enable German
+ * language support.
+ */
+define('WPLANG', '');
+
+/**
+ * For developers: WordPress debugging mode.
+ *
+ * Change this to true to enable the display of notices during development.
+ * It is strongly recommended that plugin and theme developers use WP_DEBUG
+ * in their development environments.
+ */
+define('WP_DEBUG', false);
+
+/* That's all, stop editing! Happy blogging. */
+
+/** Absolute path to the WordPress directory. */
+if ( !defined('ABSPATH') )
+	define('ABSPATH', dirname(__FILE__) . '/');
+
+/** Sets up WordPress vars and included files. */
+require_once(ABSPATH . 'wp-settings.php');
diff --git a/stack/erp5.cfg b/stack/erp5.cfg
index a91b2a5394d64c4026a3f9cf0322c81157070de4..fcd5a055bb112ace41167bb8562ead3b047f4964 100644
--- a/stack/erp5.cfg
+++ b/stack/erp5.cfg
@@ -215,7 +215,7 @@ location = ${buildout:parts-directory}/${:_buildout_section_name_}
 stop-on-error = true
 repository = http://git.erp5.org/repos/erp5.git
 branch = master
-revision = 0c37bafcc688c022d710f04ffafa226e3543a2cd
+revision = 336a8d63bdcabd92bfe3d9466685e5cd47fad716
 command = ${git:location}/bin/git clone --quiet -b ${:branch} ${:repository} ${:location} && if [ -n ${:revision} ]; then cd ${:location} && ${git:location}/bin/git reset --quiet --hard ${:revision} ; fi
 update-command = cd ${:location} && ${git:location}/bin/git pull --quiet && if [ -n ${:revision} ]; then cd ${:location} && ${git:location}/bin/git reset --quiet --hard ${:revision} ; fi
 
@@ -393,7 +393,7 @@ scripts =
 
 [versions]
 # Use SlapOS patched zc.buildout
-zc.buildout = 1.5.3-dev-SlapOS-004
+zc.buildout = 1.5.3-dev-SlapOS-005
 
 # pin Acquisition and Products.DCWorkflow to Nexedi flavour of eggs
 Acquisition = 2.13.7nxd001
diff --git a/stack/lamp.cfg b/stack/lamp.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..fea66112d489b661eae1710c3adc1d9e3ea785d3
--- /dev/null
+++ b/stack/lamp.cfg
@@ -0,0 +1,48 @@
+[buildout]
+find-links +=
+    http://www.nexedi.org/static/packages/source/slapos.buildout/
+
+# Use only quite well working sites.
+allow-hosts =
+  *.nexedi.org
+  *.python.org
+  *.sourceforge.net
+  dist.repoze.org
+  effbot.org
+  github.com
+  peak.telecommunity.com
+  psutil.googlecode.com
+  www.dabeaz.com
+
+parts =
+  template
+  apache-php
+  mariadb
+  eggs
+  instance-recipe-egg
+  
+extends =
+  ../component/mariadb/buildout.cfg
+  ../component/apache/buildout.cfg
+  ../component/apache-php/buildout.cfg
+  ../component/dcron/buildout.cfg
+  ../component/git/buildout.cfg
+  ../component/glib/buildout.cfg
+  ../component/logrotate/buildout.cfg
+  ../component/python-2.7/buildout.cfg
+  ../component/perl/buildout.cfg
+  ../component/sqlite3/buildout.cfg
+  ../component/xtrabackup/buildout.cfg
+  ../component/rdiff-backup/buildout.cfg
+  ../component/lxml-python/buildout.cfg
+  ../component/zlib/buildout.cfg
+
+[application]
+recipe = hexagonit.recipe.download
+#If provided tarball does not containt top directory this option shall be changed to false
+strip-top-level-dir = true
+
+[eggs]
+recipe = zc.recipe.egg
+eggs =
+  ${lxml-python:egg}
diff --git a/stack/shacache-client.cfg b/stack/shacache-client.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a73c01c386110949325827e5bfb43b815f0d3d3e
--- /dev/null
+++ b/stack/shacache-client.cfg
@@ -0,0 +1,6 @@
+[buildout]
+networkcache-section = networkcache
+
+[networkcache]
+download-cache-url = http://www.shacache.org/shacache
+download-dir-url = http://www.shacache.org/shadir