--- /dev/null
+# -*- python -*-
+# ex: set syntax=python:
+
+###################################################################################
+# This is the file configuration of the buildmaster used in the Simgrid project.
+
+# The buildmaster configuration object.
+
+c = BuildmasterConfig = {}
+
+# Gets bot from account module
+from account import bots
+c['bots'] = bots
+
+
+# Port number used by slaves
+c['slavePortnum'] = 9989
+
+
+####### CHANGESOURCES
+
+# the 'sources' list tells the buildmaster how it should find out about
+# source code changes. Any class which implements IChangeSource can be added
+# to this list: there are several in buildbot/changes/*.py to choose from.
+
+c['sources'] = []
+
+# For example, if you had CVSToys installed on your repository, and your
+# CVSROOT/freshcfg file had an entry like this:
+#pb = ConfigurationSet([
+# (None, None, None, PBService(userpass=('foo', 'bar'), port=4519)),
+# ])
+
+# then you could use the following buildmaster Change Source to subscribe to
+# the FreshCVS daemon and be notified on every commit:
+#
+#from buildbot.changes.freshcvs import FreshCVSSource
+#fc_source = FreshCVSSource("cvs.example.com", 4519, "foo", "bar")
+#c['sources'].append(fc_source)
+
+# or, use a PBChangeSource, and then have your repository's commit script run
+# 'buildbot sendchange', or contrib/svn_buildbot.py, or
+# contrib/arch_buildbot.py :
+#
+#from buildbot.changes.pb import PBChangeSource
+#c['sources'].append(PBChangeSource())
+
+
+
+####################################################################################
+## Scheduler configuration
+
+# We use only one scheduling right now, a nightly one, which reruns everything
+
+# TODO: setup a rebuilder in response to CVS commits
+# TODO: Define a list of all slaves and use it here and in the definition of c['builders']
+
+from buildbot.scheduler import Scheduler, Nightly, Periodic
+
+nightly_scheduler = Nightly(
+ "nightly",
+ ["linux_amd64_pthreads_O3",
+ "linux_amd64_ucontext_O3",
+ "linux_i386_pthreads_O3",
+ "linux_i386_ucontext_O3",
+ "mac_os_x_pthreads",
+ "mac_os_x_ucontext",
+ "windows_builder"],
+ hour=[12,24],
+ minute=15)
+
+
+
+c['schedulers'] = [nightly_scheduler]
+
+now = Periodic("now", [
+ "linux_amd64_pthreads_O3",
+ "linux_amd64_ucontext_O3",
+ "linux_i386_pthreads_O3",
+ "linux_i386_ucontext_O3",
+ "mac_os_x_pthreads",
+ "mac_os_x_ucontext",
+ "windows_builder"
+ ], 60*20*1)
+c['schedulers'] = [nightly_scheduler]
+
+
+
+####################################################################################
+# builders declarations
+
+from buildbot import locks
+from buildbot.process import step, factory
+from extensions import CustomConfigure
+from buildbot.process.step import ShellCommand, CVS
+
+
+# the following lock manages the builds of the machine bob
+bob_lock = locks.MasterLock("bob_lock")
+
+# the following lock manages the builds of the machine artimon
+artimon_lock = locks.MasterLock("artimon_lock")
+
+# the following lock manages the builds of the machine blase
+blaise_lock = locks.MasterLock("blaise_lock")
+
+# the following lock manages the builds of the machine fastnet
+fastnet_lock = locks.MasterLock("fastnet_lock")
+
+# factories
+
+pthreads_factory= factory.BuildFactory()
+pthreads_factory.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+pthreads_factory.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",haltOnFailure = 1,command=["svn" ,"revert","-R","build"])
+pthreads_factory.addStep(step.ShellCommand,name = "{configure}",command=["./configure", "--with-pthread", "--enable-botbuild"])
+pthreads_factory.addStep(step.ShellCommand,name = "{make clean}",command=["make", "clean"])
+pthreads_factory.addStep(step.ShellCommand,name = "{make}",command=["make","-j","4"])
+pthreads_factory.addStep(step.ShellCommand,name ="{check all}",command=["./checkall"])
+#pthreads_factory.addStep(step.ShellCommand,name ="{make distcheck}",command=["make", "distcheck"])
+
+ucontext_factory= factory.BuildFactory()
+ucontext_factory.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+ucontext_factory.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",haltOnFailure = 1,command=["svn" ,"revert","-R","build"])
+ucontext_factory.addStep(CustomConfigure,name ="{configure}",command=["./configure", " --with-context=ucontext","--enable-botbuild"]) # Main difference with pthread_factory
+ucontext_factory.addStep(step.ShellCommand,name = "{make clean}",command=["make", "clean"])
+ucontext_factory.addStep(step.ShellCommand,name = "{make}",command=["make","-j","4"])
+ucontext_factory.addStep(step.ShellCommand,name = "{check all}",command=["./checkall"])
+#ucontext_factory.addStep(step.ShellCommand,name = "{make distcheck}",command=["make", "distcheck"])
+
+
+pthreads_factory_O3= factory.BuildFactory()
+pthreads_factory_O3.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+pthreads_factory_O3.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",haltOnFailure = 1,command=["svn" ,"revert","-R","build"])
+pthreads_factory_O3.addStep(step.ShellCommand,name = "{configure}",description="running configure",descriptionDone="configure",haltOnFailure = 1,command=["./configure", "--with-pthread","--enable-compile-optimizations","--enable-botbuild"])
+pthreads_factory_O3.addStep(step.ShellCommand,name = "{make clean}",description = "running make clean",descriptionDone = "make clean",haltOnFailure = 1,command=["make", "clean"])
+pthreads_factory_O3.addStep(step.ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",haltOnFailure = 1,command=["make","-j","4"])
+pthreads_factory_O3.addStep(step.ShellCommand,name ="{check all}",description = "running check all",descriptionDone ="check all",haltOnFailure = 1,command=["./checkall"])
+#pthreads_factory_O3.addStep(step.ShellCommand,name ="{make distcheck}",description="running make distcheck",descriptionDone="make distcheck",haltOnFailure = 1,command=["make", "distcheck"])
+
+ucontext_factory_O3= factory.BuildFactory()
+ucontext_factory_O3.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+ucontext_factory_O3.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",haltOnFailure = 1,command=["svn" ,"revert","-R","build"])
+ucontext_factory_O3.addStep(CustomConfigure,name ="{configure}",description="running configure",descriptionDone="configure",haltOnFailure = 1,command=["./configure", "--with-context=ucontext","--enable-compile-optimizations","--enable-botbuild"]) # Main difference with pthread_factory
+ucontext_factory_O3.addStep(step.ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",haltOnFailure = 1,command=["make"])
+ucontext_factory_O3.addStep(step.ShellCommand,name = "{check all}",description = "running check all",descriptionDone ="check all",haltOnFailure = 1,command=["./checkall"])
+#ucontext_factory_O3.addStep(step.ShellCommand,name = "{make distcheck}",description="running make distcheck",descriptionDone="make distcheck",haltOnFailure = 1,command=["make", "distcheck"])
+
+
+
+windows_factory= factory.BuildFactory()
+windows_factory.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+windows_factory.addStep(step.ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",haltOnFailure = 1,command=["C:\\buildslave\\projects\\simgrid\\builddir\\buildMake", "C:\\buildslave\\projects\\simgrid\\builddir\\make_all.tst"])
+windows_factory.addStep(step.ShellCommand,name = "{test suite}",description= "running test suite",descriptionDone ="test suite",haltOnFailure = 1,command=["C:\\buildslave\\projects\\simgrid\\builddir\\Test", "C:\\buildslave\\projects\\simgrid\\builddir\\test_all.tst"])
+
+
+# builders
+
+c['builders'] = [
+ {'name':'linux_amd64_pthreads_O3',
+ 'slavename':'bob_pthreads',
+ 'builddir':'/var/lib/buildbot/simgrid/linux_amd64_pthreads/builddir_O3',
+ 'factory':pthreads_factory_O3,
+ 'locks': [bob_lock]},
+
+
+
+ {'name':'linux_amd64_ucontext_O3',
+ 'slavename':'bob_ucontext',
+ 'builddir':'/var/lib/buildbot/simgrid/linux_amd64_ucontext/builddir_O3',
+ 'factory':ucontext_factory_O3,
+ 'locks': [bob_lock]},
+
+
+ {'name':'mac_os_x_pthreads',
+ 'slavename':'fastnet_pthreads',
+ 'builddir':'/var/buildbot/simgrid/mac_os_x_pthreads/builddir',
+ 'factory':pthreads_factory_O3,
+ 'locks': [fastnet_lock]},
+
+ {'name':'mac_os_x_ucontext',
+ 'slavename':'fastnet_ucontext',
+ 'factory':ucontext_factory_O3,
+ 'builddir':'/var/buildbot/simgrid/mac_os_x_ucontext/builddir',
+ 'locks': [fastnet_lock]},
+
+
+ {'name':'windows_builder',
+ 'slavename':'windows_slave',
+ 'builddir':"C:\\buildslave\\projects\\simgrid\\builddir",
+ 'factory':windows_factory},
+
+
+ {'name':'linux_i386_pthreads_O3',
+ 'slavename':'artimon_pthreads',
+ 'builddir':'/var/lib/buildbot/simgrid/linux_i386_pthreads/builddir_O3',
+ 'factory':pthreads_factory_O3,
+ 'locks': [artimon_lock]},
+
+
+ {'name':'linux_i386_ucontext_O3',
+ 'slavename':'artimon_ucontext',
+ 'builddir':'/var/lib/buildbot/simgrid/linux_i386_ucontext/builddir_O3',
+ 'factory':ucontext_factory_O3,
+ 'locks': [artimon_lock]}
+ ]
+
+
+# status html page
+
+c['status'] = []
+
+from buildbot.status import html
+w = html.Waterfall(http_port=8010)
+
+c['status'].append(w)
+
+# status smtp request
+
+from buildbot.status import mail
+
+
+c['status'].append(mail.MailNotifier(builders=['mac_os_x_pthreads'],
+fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+subject = "Error occured during pthread build of SimGrid on fastnet",
+extraRecipients=["malek.cherier@loria.fr","martin.quinson@loria.fr"],
+sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['mac_os_x_ucontext'],
+fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+subject = "Error occured during ucontext build of SimGrid on fastnet",
+extraRecipients=["malek.cherier@loria.fr",
+"martin.quinson@loria.fr"],sendToInterestedUsers=True))
+
+
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "Error occured during pthread build of SimGrid on bob",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads_O0'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "Error occured during pthread build of SimGrid on bob (compiler optimizations O0 enabled)",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads_O3'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "Error occured during pthread build of SimGrid on bob (compiler optimizations O3 enabled)",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "Error occured during ucontext build of SimGrid on bob",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext_O0'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing (compiler optimizations O0 enabled)",
+ subject = "Error occured during ucontext build of SimGrid on bob",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext_O3'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "Error occured during ucontext build of SimGrid on bob (compiler optimizations O3 enabled)",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['windows_builder'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "An error occurs during the build of SimGRID on Windows platform",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "An error occurs during the build of SimGRID on artimon platform",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+
+c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads_O0'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O0 enabled)" ,
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads_O3'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O3 enabled)" ,
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+
+c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "An error occurs during the build of SimGRID on artimon platform",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext_O0'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O0 enabled)",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext_O3'],
+ fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+ subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O3 enabled)",
+ extraRecipients=["malek.cherier@loria.fr",
+ "martin.quinson@loria.fr"],
+ sendToInterestedUsers=True))
+
+
+
+
+
+# Project informations
+
+c['projectName'] = "SimGrid compilation status"
+c['projectURL']= "http://simgrid.gforge.inria.fr/"
+#c['projectURL'] = "http://bob.loria.fr:8010/"
+c['buildbotURL'] = "http://bob.loria.fr:8010/"