diff --git a/component/alsa/buildout.cfg b/component/alsa/buildout.cfg
index f8227fdda799640a925a6a10fd8018fecf3aadff..792890e30cac3b97ff791155aac2b65f6c34feb8 100644
--- a/component/alsa/buildout.cfg
+++ b/component/alsa/buildout.cfg
@@ -19,3 +19,4 @@ configure-options =
   --disable-alisp
   --disable-old-symbols
   --disable-python
+  --without-debug
diff --git a/component/busybox/buildout.cfg b/component/busybox/buildout.cfg
index b0cb2abeb12e21edfb2d6f6a166adbd740708d2e..c13db298ce51d9405c48e161cf2c9a05dab4eaac 100644
--- a/component/busybox/buildout.cfg
+++ b/component/busybox/buildout.cfg
@@ -2,13 +2,23 @@
 
 parts = busybox
 
+[busybox-patch-download]
+recipe = hexagonit.recipe.download
+url = ${:_profile_base_location_}/${:filename}
+md5sum = 292498db86c46e101bb14bf2c74c36f0
+download-only = true
+filename = busybox-1_20_2.patch
+
 [busybox]
 recipe = slapos.recipe.build
 url = http://git.busybox.net/busybox/snapshot/busybox-1_20_2.tar.gz
 md5sum = 025acebb48040ef62dd635d416d317e8
+patches =
+    ${busybox-patch-download:location}/${busybox-patch-download:filename}
 script =
     extract_dir = self.extract(self.download(%(url)r, %(md5sum)r))
     workdir = guessworkdir(extract_dir)
+    self.applyPatchList(self.options.get('patches'), '-p1', cwd=workdir)
     self.logger.info("Creating default configuration")
     call(['make', 'defconfig'], cwd=workdir, env=env)
     self.logger.info("Building")
diff --git a/component/busybox/busybox-1_20_2.patch b/component/busybox/busybox-1_20_2.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8163a86e3cdb47425ee22b9498011cc9a2c7826b
--- /dev/null
+++ b/component/busybox/busybox-1_20_2.patch
@@ -0,0 +1,12 @@
+diff --git a/include/libbb.h b/include/libbb.h
+index f12800f..e7806c2 100644
+--- a/include/libbb.h
++++ b/include/libbb.h
+@@ -40,6 +40,7 @@
+ #include <sys/poll.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
++#include <sys/resource.h>
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
diff --git a/component/firefox/buildout.cfg b/component/firefox/buildout.cfg
index 61ed5befb4125c248a902eb7866c04534201d21c..388abd62fe5807353c8ba83e267709292e94a189 100644
--- a/component/firefox/buildout.cfg
+++ b/component/firefox/buildout.cfg
@@ -11,6 +11,9 @@ extends =
 parts =
   firefox
 
+# XXX : Firefox binary tries to find libgnomeui-2.so.0 and it will
+# fail to run if exists.
+
 [firefox]
 recipe = slapos.recipe.build
 slapos_promise =
@@ -40,4 +43,3 @@ script =
   exec %(location)s/firefox $*""")
   wrapper.close()
   os.chmod(wrapper_location, 0755)
-
diff --git a/component/xorg/buildout.cfg b/component/xorg/buildout.cfg
index 47d8293f40535c8eef2d90637ee5255f2dbb0e77..7fafca2478735dbacbf2835686101639dce8f5ae 100644
--- a/component/xorg/buildout.cfg
+++ b/component/xorg/buildout.cfg
@@ -242,6 +242,8 @@ md5sum = a2a861f142c3b4367f14fc14239fc1f7
 environment =
   PKG_CONFIG_PATH=${xproto:location}/lib/pkgconfig
   PATH=${pkgconfig:location}/bin:%(PATH)s
+  CPPFLAGS=-I${zlib:location}/include
+  LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
 
 [libXfont]
 recipe = slapos.recipe.cmmi
@@ -250,6 +252,8 @@ md5sum = 6851da5dae0a6cf5f7c9b9e2b05dd3b4
 environment =
   PKG_CONFIG_PATH=${fontsproto:location}/lib/pkgconfig:${libfontenc:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${xtrans:location}/share/pkgconfig:${freetype:location}/lib/pkgconfig
   PATH=${pkgconfig:location}/bin:%(PATH)s
+  CPPFLAGS=-I${zlib:location}/include
+  LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
 
 [libxkbfile]
 recipe = slapos.recipe.cmmi
@@ -258,6 +262,8 @@ md5sum = 19e6533ae64abba0773816a23f2b9507
 environment =
   PKG_CONFIG_PATH=${kbproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig
   PATH=${pkgconfig:location}/bin:%(PATH)s
+  CPPFLAGS=-I${zlib:location}/include
+  LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
 
 [xkeyboard-config]
 recipe = slapos.recipe.cmmi
diff --git a/slapos/recipe/erp5testnode/__init__.py b/slapos/recipe/erp5testnode/__init__.py
index 5761aa3ef18e2f8b98d727f5cb15a93f3131bc86..95fa1da52401a30688eacd13938797c1bfb498ed 100644
--- a/slapos/recipe/erp5testnode/__init__.py
+++ b/slapos/recipe/erp5testnode/__init__.py
@@ -33,20 +33,12 @@ from slapos.recipe.librecipe import GenericBaseRecipe
 
 class Recipe(GenericBaseRecipe):
   def install(self):
-    path_list = []
+    self.path_list = []
     options = self.options.copy()
     del options['recipe']
     CONFIG = {k.replace('-', '_'): v for k, v in options.iteritems()}
     CONFIG['PATH'] = os.environ['PATH']
 
-    if CONFIG['bt5_path']:
-      additional_bt5_repository_id_list = CONFIG['bt5_path'].split(",")
-      CONFIG['bt5_path'] = ''
-      for bt5_repository_id in additional_bt5_repository_id_list:
-        id_path = os.path.join(CONFIG['slapos_directory'], bt5_repository_id)
-        bt_path = os.path.join(id_path, "bt5")
-        CONFIG['bt5_path'] += "%s,%s," % (id_path, bt_path)
-
     if self.options['instance-dict']:
       config_instance_dict = ConfigParser.ConfigParser()
       config_instance_dict.add_section('instance_dict')
@@ -58,25 +50,11 @@ class Recipe(GenericBaseRecipe):
       config_instance_dict.write(value)
       CONFIG['instance_dict'] = value.getvalue()
 
-    vcs_repository_list = json.loads(self.options['repository-list'])
-    config_repository_list = ConfigParser.ConfigParser()
-    i = 0
-    for repository in vcs_repository_list:
-      section_name = 'vcs_repository_%d' % i
-      config_repository_list.add_section(section_name)
-      config_repository_list.set(section_name, 'url', repository['url'])
-      if 'branch' in repository:
-        config_repository_list.set(section_name, 'branch', repository['branch'])
-      if 'profile_path' in repository:
-        config_repository_list.set(section_name, 'profile_path',
-                                   repository['profile_path'])
-      if 'buildout_section_id' in repository:
-        config_repository_list.set(section_name, 'buildout_section_id',
-                                   repository['buildout_section_id'])
-      i += 1
-    value = StringIO.StringIO()
-    config_repository_list.write(value)
-    CONFIG['repository_list'] = value.getvalue()
+    software_path_list = json.loads(self.options['software-path-list'])
+    if software_path_list:
+      CONFIG["software_path_list"] = "[software_list]"
+      CONFIG["software_path_list"] += \
+          "\npath_list = %s" % ",".join(software_path_list)
 
     configuration_file = self.createFile(
       self.options['configuration-file'],
@@ -85,8 +63,8 @@ class Recipe(GenericBaseRecipe):
         CONFIG
       ),
     )
-    path_list.append(configuration_file)
-    path_list.append(
+    self.path_list.append(configuration_file)
+    self.path_list.append(
       self.createPythonScript(
         self.options['wrapper'],
         'slapos.recipe.librecipe.execute.executee',
@@ -100,4 +78,33 @@ class Recipe(GenericBaseRecipe):
         ],
       )
     )
-    return path_list
+    self.installApache()
+    return self.path_list
+
+  def installApache(self):
+    apache_config = dict(
+        pid_file=self.options['httpd-pid-file'],
+        lock_file=self.options['httpd-lock-file'],
+        ip=self.options['httpd-ip'],
+        port=self.options['httpd-port'],
+        error_log=os.path.join(self.options['httpd-log-directory'],
+                               'httpd-error.log'),
+        access_log=os.path.join(self.options['httpd-log-directory'],
+                                'httpd-access.log'),
+        certificate=self.options['httpd-cert-file'],
+        key=self.options['httpd-key-file'],
+        testnode_log_directory=self.options['log-directory'],
+    )
+    config_file = self.createFile(self.options['httpd-conf-file'],
+       self.substituteTemplate(self.getTemplateFilename('httpd.conf.in'),
+                               apache_config)
+    )
+    self.path_list.append(config_file)
+    wrapper = self.createPythonScript(self.options['httpd-wrapper'],
+      'slapos.recipe.librecipe.execute.execute',
+      [self.options['apache-binary'], '-f', config_file, '-DFOREGROUND'])
+    self.path_list.append(wrapper)
+    # create empty html page to not allow listing of /
+    page = open(os.path.join(self.options['log-directory'], "index.html"), "w")
+    page.write("<html/>")
+    page.close()
\ No newline at end of file
diff --git a/slapos/recipe/erp5testnode/template/erp5testnode.cfg.in b/slapos/recipe/erp5testnode/template/erp5testnode.cfg.in
index 08c4619a211392c6e48094b9b0f333e4ceaa9bb6..ab38d44c7601dd415d0761c9bf5f52b3931070ee 100644
--- a/slapos/recipe/erp5testnode/template/erp5testnode.cfg.in
+++ b/slapos/recipe/erp5testnode/template/erp5testnode.cfg.in
@@ -1,20 +1,18 @@
 [testnode]
 slapos_directory = %(slapos_directory)s
-working_directory = %(slapos_directory)s
+working_directory = %(working_directory)s
 test_suite_directory = %(test_suite_directory)s
 log_directory = %(log_directory)s
 run_directory = %(run_directory)s
 proxy_host = %(proxy_host)s
 proxy_port = %(proxy_port)s
-test_suite_title = %(test_suite_title)s
-test_suite = %(test_suite)s
 node_quantity = %(node_quantity)s
 test_node_title = %(test_node_title)s
-project_title= %(project_title)s
 ipv4_address = %(ipv4_address)s
 ipv6_address = %(ipv6_address)s
 test_suite_master_url = %(test_suite_master_url)s
-bt5_path = %(bt5_path)s
+httpd_ip = %(httpd_ip)s
+httpd_port = %(httpd_port)s
 
 # Binaries
 git_binary = %(git_binary)s
@@ -26,6 +24,6 @@ zip_binary = %(zip_binary)s
 [environment]
 PATH = %(PATH)s
 
-%(instance_dict)s
+%(software_path_list)s
 
-%(repository_list)s
+%(instance_dict)s
diff --git a/slapos/recipe/erp5testnode/template/httpd.conf.in b/slapos/recipe/erp5testnode/template/httpd.conf.in
new file mode 100644
index 0000000000000000000000000000000000000000..9c75e683e3a5d5ea867e7d410852616339cfa30d
--- /dev/null
+++ b/slapos/recipe/erp5testnode/template/httpd.conf.in
@@ -0,0 +1,61 @@
+# Apache static configuration
+# Automatically generated
+
+# Basic server configuration
+PidFile "%(pid_file)s"
+Listen [%(ip)s]:%(port)s
+ServerAdmin someone@email
+DefaultType text/plain
+TypesConfig conf/mime.types
+AddType application/x-compress .Z
+AddType application/x-gzip .gz .tgz
+
+# Log configuration
+ErrorLog "%(error_log)s"
+LogLevel warn
+LogFormat "%%h %%{REMOTE_USER}i %%l %%u %%t \"%%r\" %%>s %%b \"%%{Referer}i\" \"%%{User-Agent}i\"" combined
+LogFormat "%%h %%{REMOTE_USER}i %%l %%u %%t \"%%r\" %%>s %%b" common
+CustomLog "%(access_log)s" common
+
+# Allow cross site scripting
+Header set Access-Control-Allow-Origin "*"
+
+# List of modules
+LoadModule unixd_module modules/mod_unixd.so
+LoadModule access_compat_module modules/mod_access_compat.so
+LoadModule authz_core_module modules/mod_authz_core.so
+LoadModule authz_host_module modules/mod_authz_host.so
+LoadModule log_config_module modules/mod_log_config.so
+LoadModule setenvif_module modules/mod_setenvif.so
+LoadModule version_module modules/mod_version.so
+LoadModule proxy_module modules/mod_proxy.so
+LoadModule proxy_http_module modules/mod_proxy_http.so
+LoadModule mime_module modules/mod_mime.so
+LoadModule negotiation_module modules/mod_negotiation.so
+LoadModule rewrite_module modules/mod_rewrite.so
+LoadModule headers_module modules/mod_headers.so
+LoadModule dir_module modules/mod_dir.so
+LoadModule alias_module modules/mod_alias.so
+LoadModule ssl_module modules/mod_ssl.so
+LoadModule autoindex_module modules/mod_autoindex.so
+
+# SSL Configuration
+SSLEngine on
+SSLCertificateFile %(certificate)s
+SSLCertificateKeyFile %(key)s
+SSLRandomSeed startup builtin
+SSLRandomSeed connect builtin
+SSLProtocol -ALL +SSLv3 +TLSv1
+SSLHonorCipherOrder On
+SSLCipherSuite RC4-SHA:HIGH:!ADH
+SSLProxyEngine On
+
+DocumentRoot "%(testnode_log_directory)s"
+
+# Directory protection
+<Directory />
+    Options Indexes FollowSymLinks
+    IndexOptions FancyIndexing
+    order allow,deny
+    Allow from All
+</Directory>
\ No newline at end of file
diff --git a/software/erp5testnode/instance-default.cfg b/software/erp5testnode/instance-default.cfg
index 7ff21a522af7f1ec5e494ef86e97b05b2fc71851..e3564cf0da5be6939980eb199b602c6a410a24ba 100644
--- a/software/erp5testnode/instance-default.cfg
+++ b/software/erp5testnode/instance-default.cfg
@@ -11,6 +11,7 @@ parts =
   shellinabox
   certificate-authority
   ca-shellinabox
+  ca-httpd
 
 [connection-dict]
 recipe = slapos.cookbook:publish
@@ -31,31 +32,39 @@ proxy-host = $${slap-network-information:global-ipv6}
 proxy-port = 5000
 log-directory = $${directory:log}
 run-directory = $${directory:run}
-test-suite-title = $${slap-parameter:test-suite-title}
 test-node-title = $${slap-parameter:test-node-title}
-test-suite = $${slap-parameter:test-suite}
 node-quantity = $${slap-parameter:node-quantity}
-project-title = $${slap-parameter:project-title}
 ipv4-address = $${slap-network-information:local-ipv4}
 ipv6-address = $${slap-network-information:global-ipv6}
 test-suite-master-url = $${slap-parameter:test-suite-master-url}
-bt5-path = $${slap-parameter:additional-bt5-repository-id}
 instance-dict = $${slap-parameter:instance-dict}
-repository-list = $${slap-parameter:vcs-repository-list}
-
+software-path-list = $${slap-parameter:software-path-list}
 git-binary = ${git:location}/bin/git
 slapgrid-partition-binary = ${buildout:bin-directory}/slapgrid-cp
 slapgrid-software-binary = ${buildout:bin-directory}/slapgrid-sr
 slapproxy-binary = ${buildout:bin-directory}/slapproxy
-svn-binary = ${subversion:location}/bin/svn
-svnversion-binary = ${subversion:location}/bin/svnversion
 testnode = ${buildout:bin-directory}/testnode
 zip-binary = ${zip:location}/bin/zip
+httpd-pid-file = $${basedirectory:run}/httpd.pid
+httpd-lock-file = $${basedirectory:run}/httpd.lock
+httpd-conf-file = $${rootdirectory:etc}/httpd.conf
+httpd-wrapper = $${rootdirectory:bin}/httpd
+httpd-port = 9080
+httpd-ip = $${slap-network-information:global-ipv6}
+httpd-log-directory = $${basedirectory:log}
+httpd-cert-file = $${rootdirectory:etc}/httpd-public.crt
+httpd-key-file = $${rootdirectory:etc}/httpd-private.key
 
 configuration-file = $${rootdirectory:etc}/erp5testnode.cfg
 log-file = $${basedirectory:log}/erp5testnode.log
 wrapper = $${basedirectory:services}/erp5testnode
 
+# Binaries
+apache-binary = ${apache:location}/bin/httpd
+apache-modules-dir = ${apache:location}/modules
+apache-mime-file = ${apache:location}/conf/mime.types
+apache-htpasswd = ${apache:location}/bin/htpasswd
+
 [shell]
 recipe = slapos.cookbook:shell
 wrapper = $${rootdirectory:bin}/sh
@@ -66,8 +75,6 @@ path =
     ${busybox:location}/bin/
     ${busybox:location}/usr/bin/
     ${git:location}/bin/
-    ${subversion:location}/bin/
-    ${perl:location}/bin/
     ${python2.7:location}/bin/
     ${buildout:bin-directory}/
     ${busybox:location}/sbin/
@@ -114,35 +121,41 @@ wrapper = $${basedirectory:services}/shellinaboxd
 key-file = $${shellinabox:key-file}
 cert-file = $${shellinabox:cert-file}
 
+[ca-httpd]
+<= certificate-authority
+recipe = slapos.cookbook:certificate_authority.request
+executable = $${testnode:httpd-wrapper}
+wrapper = $${basedirectory:services}/httpd
+key-file = $${testnode:httpd-key-file}
+cert-file = $${testnode:httpd-cert-file}
+
 [rootdirectory]
 recipe = slapos.cookbook:mkdirectory
-etc = $${buildout:directory}/etc/
-var = $${buildout:directory}/var/
-srv = $${buildout:directory}/srv/
-bin = $${buildout:directory}/bin/
-tmp = $${buildout:directory}/tmp/
+etc = $${buildout:directory}/etc
+var = $${buildout:directory}/var
+srv = $${buildout:directory}/srv
+bin = $${buildout:directory}/bin
+tmp = $${buildout:directory}/tmp
 
 [basedirectory]
 recipe = slapos.cookbook:mkdirectory
-log = $${rootdirectory:var}/log/
-services = $${rootdirectory:etc}/run/
-run = $${rootdirectory:var}/run/
-promises = $${rootdirectory:etc}/promise/
+log = $${rootdirectory:var}/log
+services = $${rootdirectory:etc}/run
+run = $${rootdirectory:var}/run
+promises = $${rootdirectory:etc}/promise
 
 [directory]
 recipe = slapos.cookbook:mkdirectory
-slapos = $${rootdirectory:srv}/slapos/
-testnode = $${rootdirectory:srv}/testnode/
-test-suite = $${rootdirectory:srv}/test_suite/
-log = $${basedirectory:log}/testnode/
-run = $${basedirectory:run}/testnode/
-shellinabox = $${rootdirectory:srv}/shellinabox/
-ca-dir = $${rootdirectory:srv}/ca/
+slapos = $${rootdirectory:srv}/slapos
+testnode = $${rootdirectory:srv}/testnode
+test-suite = $${rootdirectory:srv}/test_suite
+log = $${basedirectory:log}/testnode
+run = $${basedirectory:run}/testnode
+shellinabox = $${rootdirectory:srv}/shellinabox
+ca-dir = $${rootdirectory:srv}/ca
 
 [slap-parameter]
 node-quantity = 1
 test-suite-master-url =
-additional-bt5-repository-id =
 instance-dict =
-vcs-repository-list = []
-test-suite-title = $${:test-suite}
+software-path-list = ["http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/erp5testnode:/software/seleniumrunner/software.cfg"]
diff --git a/software/erp5testnode/software.cfg b/software/erp5testnode/software.cfg
index ab7077a51c6bc9fa46dcd4f63a1e323dda317f06..23827d89419c0d5e961dfc4b46846578e5586f8d 100644
--- a/software/erp5testnode/software.cfg
+++ b/software/erp5testnode/software.cfg
@@ -1,65 +1,40 @@
 [buildout]
 
-find-links = http://www.nexedi.org/static/packages/source/slapos.buildout/
-    http://dist.repoze.org
+find-links += 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
-
 extends =
-  ../../stack/shacache-client.cfg
+  ../../stack/slapos.cfg
   ../../component/python-2.7/buildout.cfg
-  ../../component/subversion/buildout.cfg
   ../../component/git/buildout.cfg
   ../../component/lxml-python/buildout.cfg
   ../../component/zip/buildout.cfg
   ../../component/busybox/buildout.cfg
   ../../component/shellinabox/buildout.cfg
+  ../../component/pwgen/buildout.cfg
+  ../../component/apache/buildout.cfg
 
 # Local development
 develop =
   ${:parts-directory}/slapos.cookbook-repository
 parts =
 # Local development
+  slapos-cookbook
   slapos.cookbook-repository
   check-recipe
   template
   lxml-python
   eggs
-  subversion
   zip
   git
-
-# 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
-  launchpad.net
-
-
-# XXX: Workaround of SlapOS limitation
-# Unzippig of eggs is required, as SlapOS do not yet provide nicely working
-# development / fast switching environment for whole software
-unzip = true
+  apache
 
 # Local development
 [slapos.cookbook-repository]
 recipe = plone.recipe.command
 stop-on-error = true
 location = ${buildout:parts-directory}/${:_buildout_section_name_}
-command = "${git:location}/bin/git" clone --quiet http://git.erp5.org/repos/slapos.git "${:location}"
+command = "${git:location}/bin/git" clone --branch erp5testnode --quiet http://git.erp5.org/repos/slapos.git "${:location}"
 update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet && "${git:location}/bin/git" reset --hard @{upstream}
 
 [check-recipe]
@@ -76,8 +51,10 @@ eggs =
   slapos.libnetworkcache
   slapos.core
   inotifyx
-  slapos.cookbook
-  erp5.util[testnode]
+  erp5.util
+  PyXML
+
+[testnode]
 
 scripts =
   testnode = erp5.util.testnode:main
@@ -102,7 +79,7 @@ recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-default.cfg
 output = ${buildout:directory}/template-default.cfg
 mode = 0644
-md5sum = 2349e62d4fa46fc88e05d855f49b7c38
+md5sum = 9bb380748d5f6618ffa480e6d660217c
 
 [networkcache]
 # signature certificates of the following uploaders.
@@ -207,60 +184,73 @@ signature-certificate-list =
   -----END CERTIFICATE-----
 
 [versions]
-# Use SlapOS patched zc.buildout
-zc.buildout = 1.6.0-dev-SlapOS-003
+# use newest version of pytz
+pytz =
 
-Jinja2 = 2.6
-Werkzeug = 0.8.2
-erp5.util = 0.4.1
-hexagonit.recipe.cmmi = 1.5.0
-lxml = 2.3.2
-meld3 = 0.6.7
-slapos.cookbook = 0.38
-slapos.core = 0.21
-slapos.libnetworkcache = 0.11
-slapos.recipe.template = 2.2
+# pin version of setuptools
+setuptools = 2.2
+
+Jinja2 = 2.7.2
+MarkupSafe = 0.18
+PyXML = 0.8.5
+Pygments = 1.6
+Werkzeug = 0.9.4
+buildout-versions = 1.7
+cmd2 = 0.6.7
+erp5.util = 0.4.36
+inotifyx = 0.2.0-1
+itsdangerous = 0.23
+lxml = 3.3.0
+meld3 = 0.6.10
+netaddr = 0.7.10
+plone.recipe.command = 1.1
+psutil = 1.2.1
+pyOpenSSL = 0.13.1
+pyparsing = 2.0.1
+pytz = 2013.9
+slapos.core = 1.0.2.1
+slapos.libnetworkcache = 0.13.4
+slapos.recipe.build = 0.12
+slapos.recipe.cmmi = 0.2
+slapos.recipe.template = 2.5
+xml-marshaller = 0.9.7
 
 # Required by:
-# slapos.core==0.21
-Flask = 0.8
+# slapos.core==1.0.2.1
+Flask = 0.10.1
 
 # Required by:
-# slapos.cookbook==0.38
-PyXML = 0.8.5
+# slapos.core==1.0.2.1
+bpython = 0.12
 
 # Required by:
-# hexagonit.recipe.cmmi==1.5.0
-hexagonit.recipe.download = 1.6nxd002
+# slapos.core==1.0.2.1
+cliff = 1.5.2
 
 # Required by:
-# slapos.cookbook==0.38
-netaddr = 0.7.6
+# slapos.core==1.0.2.1
+ipython = 1.2.0
 
 # Required by:
-# slapos.core==0.21
-netifaces = 0.6
+# slapos.core==1.0.2.1
+netifaces = 0.8-1
 
 # Required by:
-# erp5.util==0.3
-# slapos.cookbook==0.38
-# slapos.core==0.21
-# slapos.libnetworkcache==0.11
-# zc.buildout==1.6.0-dev-SlapOS-003
-setuptools = 0.6c12dev-r88846
+# slapos.core==1.0.2.1
+requests = 2.2.1
 
 # Required by:
-# slapos.core==0.21
-supervisor = 3.0a12
+# cliff==1.5.2
+six = 1.5.2
 
 # Required by:
-# slapos.cookbook==0.38
-xml-marshaller = 0.9.7
+# cliff==1.5.2
+stevedore = 0.14.1
 
 # Required by:
-# slapos.cookbook==0.38
-zc.recipe.egg = 1.3.2
+# slapos.core==1.0.2.1
+supervisor = 3.0
 
 # Required by:
-# slapos.core==0.21
-zope.interface = 3.8.0
+# slapos.core==1.0.2.1
+zope.interface = 4.1.0
diff --git a/software/seleniumrunner/software.cfg b/software/seleniumrunner/software.cfg
index 56e03f61980d231b5c56ff9484d157b93d5bfa36..1a94f2b85eb979e9625b072c1156994011ce4841 100644
--- a/software/seleniumrunner/software.cfg
+++ b/software/seleniumrunner/software.cfg
@@ -1,22 +1,19 @@
 [buildout]
 extensions = buildout-versions
 
-extends = 
+extends =
    ../../component/xorg/buildout.cfg
    ../../component/lxml-python/buildout.cfg
    ../../component/python-2.7/buildout.cfg
    ../../component/firefox/buildout.cfg
    ../../component/dash/buildout.cfg
    ../../stack/shacache-client.cfg
+   ../../stack/slapos.cfg
 
 # develop += /opt/slapdev
 
-versions = versions
-
-find-links +=
-    http://www.nexedi.org/static/packages/source/slapos.buildout/
-
 parts =
+   slapos-cookbook
    template
    eggs
    instance-recipe-egg
@@ -24,8 +21,6 @@ parts =
    firefox
    xwd
 
-versions = versions
-
 unzip = true
 
 [instance-recipe]
@@ -79,10 +74,6 @@ Flask = 0.8
 # slapos.cookbook==0.42
 PyXML = 0.8.4
 
-# Required by:
-# hexagonit.recipe.cmmi==1.5.0
-hexagonit.recipe.download = 1.6nxd002
-
 # Required by:
 # slapos.cookbook==0.42
 inotifyx = 0.2.0
@@ -131,6 +122,13 @@ zope.interface = 3.8.0
 [networkcache]
 # signature certificates of the following uploaders.
 #   Romain Courteaud
+#   Sebastien Robin
+#   Kazuhiko Shiozaki
+#   Cedric de Saint Martin
+#   Yingjie Xu
+#   Gabriel Monnerat
+#   Łukasz Nowak
+#   Test Agent (Automatic update from tests)
 signature-certificate-list =
   -----BEGIN CERTIFICATE-----
   MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE
@@ -145,3 +143,94 @@ signature-certificate-list =
   q7jdfWO18Zp/BG7tagz0jmmC4y/8akzHsVlruo2+2du2freE8dK746uoMlXlP93g
   QUUGLQ==
   -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB8jCCAVugAwIBAgIJAPu2zchZ2BxoMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNV
+  BAMMB3RzeGRldjMwHhcNMTExMDE0MTIxNjIzWhcNMTIxMDEzMTIxNjIzWjASMRAw
+  DgYDVQQDDAd0c3hkZXYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrPbh+
+  YGmo6mWmhVb1vTqX0BbeU0jCTB8TK3i6ep3tzSw2rkUGSx3niXn9LNTFNcIn3MZN
+  XHqbb4AS2Zxyk/2tr3939qqOrS4YRCtXBwTCuFY6r+a7pZsjiTNddPsEhuj4lEnR
+  L8Ax5mmzoi9nE+hiPSwqjRwWRU1+182rzXmN4QIDAQABo1AwTjAdBgNVHQ4EFgQU
+  /4XXREzqBbBNJvX5gU8tLWxZaeQwHwYDVR0jBBgwFoAU/4XXREzqBbBNJvX5gU8t
+  LWxZaeQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQA07q/rKoE7fAda
+  FED57/SR00OvY9wLlFEF2QJ5OLu+O33YUXDDbGpfUSF9R8l0g9dix1JbWK9nQ6Yd
+  R/KCo6D0sw0ZgeQv1aUXbl/xJ9k4jlTxmWbPeiiPZEqU1W9wN5lkGuLxV4CEGTKU
+  hJA/yXa1wbwIPGvX3tVKdOEWPRXZLg==
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB7jCCAVegAwIBAgIJAJWA0jQ4o9DGMA0GCSqGSIb3DQEBBQUAMA8xDTALBgNV
+  BAMMBHg2MXMwIBcNMTExMTI0MTAyNDQzWhgPMjExMTEwMzExMDI0NDNaMA8xDTAL
+  BgNVBAMMBHg2MXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANdJNiFsRlkH
+  vq2kHP2zdxEyzPAWZH3CQ3Myb3F8hERXTIFSUqntPXDKXDb7Y/laqjMXdj+vptKk
+  3Q36J+8VnJbSwjGwmEG6tym9qMSGIPPNw1JXY1R29eF3o4aj21o7DHAkhuNc5Tso
+  67fUSKgvyVnyH4G6ShQUAtghPaAwS0KvAgMBAAGjUDBOMB0GA1UdDgQWBBSjxFUE
+  RfnTvABRLAa34Ytkhz5vPzAfBgNVHSMEGDAWgBSjxFUERfnTvABRLAa34Ytkhz5v
+  PzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAFLDS7zNhlrQYSQO5KIj
+  z2RJe3fj4rLPklo3TmP5KLvendG+LErE2cbKPqnhQ2oVoj6u9tWVwo/g03PMrrnL
+  KrDm39slYD/1KoE5kB4l/p6KVOdeJ4I6xcgu9rnkqqHzDwI4v7e8/D3WZbpiFUsY
+  vaZhjNYKWQf79l6zXfOvphzJ
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAO4V/jiMoICoMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
+  BAMMCENPTVAtMjMyMCAXDTEyMDIxNjExMTAyM1oYDzIxMTIwMTIzMTExMDIzWjAT
+  MREwDwYDVQQDDAhDT01QLTIzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  wi/3Z8W9pUiegUXIk/AiFDQ0UJ4JFAwjqr+HSRUirlUsHHT+8DzH/hfcTDX1I5BB
+  D1ADk+ydXjMm3OZrQcXjn29OUfM5C+g+oqeMnYQImN0DDQIOcUyr7AJc4xhvuXQ1
+  P2pJ5NOd3tbd0kexETa1LVhR6EgBC25LyRBRae76qosCAwEAAaNQME4wHQYDVR0O
+  BBYEFMDmW9aFy1sKTfCpcRkYnP6zUd1cMB8GA1UdIwQYMBaAFMDmW9aFy1sKTfCp
+  cRkYnP6zUd1cMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAskbFizHr
+  b6d3iIyN+wffxz/V9epbKIZVEGJd/6LrTdLiUfJPec7FaxVCWNyKBlCpINBM7cEV
+  Gn9t8mdVQflNqOlAMkOlUv1ZugCt9rXYQOV7rrEYJBWirn43BOMn9Flp2nibblby
+  If1a2ZoqHRxoNo2yTmm7TSYRORWVS+vvfjY=
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAIlBksrZVkK8MA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
+  BAMMCENPTVAtMzU3MCAXDTEyMDEyNjEwNTUyOFoYDzIxMTIwMTAyMTA1NTI4WjAT
+  MREwDwYDVQQDDAhDT01QLTM1NzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  ts+iGUwi44vtIfwXR8DCnLtHV4ydl0YTK2joJflj0/Ws7mz5BYkxIU4fea/6+VF3
+  i11nwBgYgxQyjNztgc9u9O71k1W5tU95yO7U7bFdYd5uxYA9/22fjObaTQoC4Nc9
+  mTu6r/VHyJ1yRsunBZXvnk/XaKp7gGE9vNEyJvPn2bkCAwEAAaNQME4wHQYDVR0O
+  BBYEFKuGIYu8+6aEkTVg62BRYaD11PILMB8GA1UdIwQYMBaAFKuGIYu8+6aEkTVg
+  62BRYaD11PILMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAMoTRpBxK
+  YLEZJbofF7gSrRIcrlUJYXfTfw1QUBOKkGFFDsiJpEg4y5pUk1s5Jq9K3SDzNq/W
+  it1oYjOhuGg3al8OOeKFrU6nvNTF1BAvJCl0tr3POai5yXyN5jlK/zPfypmQYxE+
+  TaqQSGBJPVXYt6lrq/PRD9ciZgKLOwEqK8w=
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAPHoWu90gbsgMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
+  BAMMCXZpZmlibm9kZTAeFw0xMjAzMTkyMzIwNTVaFw0xMzAzMTkyMzIwNTVaMBQx
+  EjAQBgNVBAMMCXZpZmlibm9kZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  ozBijpO8PS5RTeKTzA90vi9ezvv4vVjNaguqT4UwP9+O1+i6yq1Y2W5zZxw/Klbn
+  oudyNzie3/wqs9VfPmcyU9ajFzBv/Tobm3obmOqBN0GSYs5fyGw+O9G3//6ZEhf0
+  NinwdKmrRX+d0P5bHewadZWIvlmOupcnVJmkks852BECAwEAAaNQME4wHQYDVR0O
+  BBYEFF9EtgfZZs8L2ZxBJxSiY6eTsTEwMB8GA1UdIwQYMBaAFF9EtgfZZs8L2ZxB
+  JxSiY6eTsTEwMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAc43YTfc6
+  baSemaMAc/jz8LNLhRE5dLfLOcRSoHda8y0lOrfe4lHT6yP5l8uyWAzLW+g6s3DA
+  Yme/bhX0g51BmI6gjKJo5DoPtiXk/Y9lxwD3p7PWi+RhN+AZQ5rpo8UfwnnN059n
+  yDuimQfvJjBFMVrdn9iP6SfMjxKaGk6gVmI=
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAMNZBmoIOXPBMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
+  BAMMCENPTVAtMTMyMCAXDTEyMDUwMjEyMDQyNloYDzIxMTIwNDA4MTIwNDI2WjAT
+  MREwDwYDVQQDDAhDT01QLTEzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  6peZQt1sAmMAmSG9BVxxcXm8x15kE9iAplmANYNQ7z2YO57c10jDtlYlwVfi/rct
+  xNUOKQtc8UQtV/fJWP0QT0GITdRz5X/TkWiojiFgkopza9/b1hXs5rltYByUGLhg
+  7JZ9dZGBihzPfn6U8ESAKiJzQP8Hyz/o81FPfuHCftsCAwEAAaNQME4wHQYDVR0O
+  BBYEFNuxsc77Z6/JSKPoyloHNm9zF9yqMB8GA1UdIwQYMBaAFNuxsc77Z6/JSKPo
+  yloHNm9zF9yqMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAl4hBaJy1
+  cgiNV2+Z5oNTrHgmzWvSY4duECOTBxeuIOnhql3vLlaQmo0p8Z4c13kTZq2s3nhd
+  Loe5mIHsjRVKvzB6SvIaFUYq/EzmHnqNdpIGkT/Mj7r/iUs61btTcGUCLsUiUeci
+  Vd0Ozh79JSRpkrdI8R/NRQ2XPHAo+29TT70=
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAKRvzcy7OH0UMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
+  BAMMCENPTVAtNzcyMCAXDTEyMDgxMDE1NDI1MVoYDzIxMTIwNzE3MTU0MjUxWjAT
+  MREwDwYDVQQDDAhDT01QLTc3MjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  o7aipd6MbnuGDeR1UJUjuMLQUariAyQ2l2ZDS6TfOwjHiPw/mhzkielgk73kqN7A
+  sUREx41eTcYCXzTq3WP3xCLE4LxLg1eIhd4nwNHj8H18xR9aP0AGjo4UFl5BOMa1
+  mwoyBt3VtfGtUmb8whpeJgHhqrPPxLoON+i6fIbXDaUCAwEAAaNQME4wHQYDVR0O
+  BBYEFEfjy3OopT2lOksKmKBNHTJE2hFlMB8GA1UdIwQYMBaAFEfjy3OopT2lOksK
+  mKBNHTJE2hFlMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAaNRx6YN2
+  M/p3R8/xS6zvH1EqJ3FFD7XeAQ52WuQnKSREzuw0dsw12ClxjcHiQEFioyTiTtjs
+  5pW18Ry5Ie7iFK4cQMerZwWPxBodEbAteYlRsI6kePV7Gf735Y1RpuN8qZ2sYL6e
+  x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI=
+  -----END CERTIFICATE-----