--- /dev/null
+#! /bin/bash -e
+
+CONF=sl-5-x86_64
+#CONF=sl-5-i386
+#CONF=sl-6-x86_64
+
+REPORTS=results/reports
+CMD="mock --configdir=mock -r $CONF --resultdir `pwd`/$REPORTS"
+
+if ! test -d mock; then
+ mkdir mock
+ ln -s /etc/mock/logging.ini mock/
+ touch mock/site-defaults.cfg
+fi
+test -s mock/$CONF.cfg || sed "s,@PWD@,`pwd`," `dirname $0`/$CONF.cfg.template > mock/$CONF.cfg
+
+mkdir $REPORTS 2>/dev/null || :
+createrepo results
+
+build() {
+ local FILE="$1"
+ local BASENAME=`basename "$FILE" | sed -e 's/-[0-9]\+.*//'`
+
+ echo "==== Building $BASENAME ==== "
+ touch $REPORTS/fail.$BASENAME
+ rm -f $REPORTS/$BASENAME-root.log $REPORTS/$BASENAME-build.log $REPORTS/root.log $REPORTS/build.log
+ ln -s $BASENAME-root.log $REPORTS/root.log
+ ln -s $BASENAME-build.log $REPORTS/build.log
+ touch $REPORTS/$BASENAME-root.log $REPORTS/$BASENAME-build.log
+
+ echo "+ $CMD --rebuild $FILE"
+ $CMD --rebuild $FILE
+
+ mv $REPORTS/*.rpm results/
+ createrepo results
+
+ rm -f $REPORTS/fail.$BASENAME
+ echo $BASENAME >> $REPORTS/success.log
+ echo "==== Done $BASENAME ===="
+}
+
+
+package() {
+ local file=`find $1/dist -maxdepth 1 -type f -name $2-\*.src.rpm | head -n 1`
+ build $file
+}
+
+
+while test -n "$1"; do
+ case "$1" in
+ gridsite|grids)
+ file=`find org.gridsite.core/RPMTMP -type f -name gridsite-\*.src.rpm | head -n 1`
+ build $file
+ ;;
+
+ jobid)
+ package org.glite.jobid.api-c glite-jobid-api-c
+ package org.glite.jobid.api-cpp glite-jobid-api-cpp
+ package org.glite.jobid.api-java glite-jobid-api-java
+ ;;
+
+ lbjp-common|lbu)
+ package org.glite.lbjp-common.log glite-lbjp-common-log
+ package org.glite.lbjp-common.trio glite-lbjp-common-trio
+ package org.glite.lbjp-common.maildir glite-lbjp-common-maildir
+ package org.glite.lbjp-common.gss glite-lbjp-common-gss
+ package org.glite.lbjp-common.db glite-lbjp-common-db
+ package org.glite.lbjp-common.server-bones glite-lbjp-common-server-bones
+ package org.glite.lbjp-common.gsoap-plugin glite-lbjp-common-gsoap-plugin
+ package org.glite.lbjp-common.jp-interface glite-lbjp-common-jp-interface
+ ;;
+
+ lb)
+ package org.glite.lb.types glite-lb-types
+ package org.glite.lb.yaim glite-lb-yaim
+ package org.glite.lb.ws-interface glite-lb-ws-interface
+ package org.glite.lb.common glite-lb-common
+ package org.glite.lb.doc glite-lb-doc
+ package org.glite.lb.client glite-lb-client
+ package org.glite.lb.client-java glite-lb-client-java
+ package org.glite.lb.logger glite-lb-logger
+ package org.glite.lb.logger-msg glite-lb-logger-msg
+ package org.glite.lb.state-machine glite-lb-state-machine
+ package org.glite.lb.utils glite-lb-utils
+ package org.glite.lb.ws-test glite-lb-ws-test
+ package org.glite.lb.harvester glite-lb-harvester
+ package org.glite.lb.server glite-lb-server
+ package org.glite.lb.emi-lb emi-lb
+ package org.glite.lb.nagios emi-lb-nagios-plugins
+ ;;
+
+ canl)
+ package emi.canl.canl-c canl-c
+ ;;
+
+ px)
+ package org.glite.px.proxyrenewal glite-px-proxyrenewal
+ package org.glite.px.myproxy-yaim glite-px-myproxy-yaim
+ package org.glite.px.emi-px emi-px
+ ;;
+
+ *)
+ build "$1"
+ esac
+
+ shift
+done
--- /dev/null
+config_opts['root'] = 'sl-5-i386'
+config_opts['target_arch'] = 'i386'
+config_opts['legal_host_arches'] = ('i386',)
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'el5' # only useful for --resultdir variable subst
+config_opts['macros']['%__arch_install_post'] = '%{nil}'
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+logfile=/var/log/yum.log
+reposdir=/dev/null
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+syslog_ident=mock
+syslog_device=
+
+# repos
+
+[core]
+name=SL 5 base
+baseurl=http://scientificlinux.physik.uni-muenchen.de/mirror/scientific/5x/$basearch/SL
+ ftp://mirror.switch.ch/mirror/scientificlinux/5x/$basearch/SL
+ ftp://ftp.scientificlinux.org/linux/scientific/5x/$basearch/SL
+
+[update]
+name=SL 5 updates
+baseurl=http://scientificlinux.physik.uni-muenchen.de/mirror/scientific/5x/$basearch/updates/security
+ ftp://mirror.switch.ch/mirror/scientificlinux/5x/$basearch/updates/security
+ ftp://ftp.scientificlinux.org/linux/scientific/5x/$basearch/updates/security
+
+[extras]
+name=epel
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=i386
+
+[EGI-trustanchors]
+name=EGI-trustanchors
+baseurl=http://repository.egi.eu/sw/production/cas/1/current/
+gpgkey=http://repository.egi.eu/sw/production/cas/1/GPG-KEY-EUGridPMA-RPM-3
+
+[EMI-2-third-party]
+name=EMI 2 Third-Party Repository
+baseurl=http://emisoft.web.cern.ch/emisoft/dist/EMI/2/sl6/$basearch/third-party
+gpgkey=http://emisoft.web.cern.ch/emisoft/dist/EMI/2/RPM-GPG-KEY-emi
+protect=1
+enabled=1
+
+[main]
+[local]
+name=Local
+baseurl=file://@PWD@/repo
+"""
--- /dev/null
+config_opts['root'] = 'sl-5-x86_64'
+config_opts['target_arch'] = 'x86_64'
+config_opts['legal_host_arches'] = ('x86_64',)
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'el5' # only useful for --resultdir variable subst
+config_opts['macros']['%__arch_install_post'] = '%{nil}'
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+logfile=/var/log/yum.log
+reposdir=/dev/null
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+syslog_ident=mock
+syslog_device=
+
+# repos
+
+[core]
+name=SL 5 base
+baseurl=http://scientificlinux.physik.uni-muenchen.de/mirror/scientific/5x/$basearch/SL
+ ftp://mirror.switch.ch/mirror/scientificlinux/5x/$basearch/SL
+ ftp://ftp.scientificlinux.org/linux/scientific/5x/$basearch/SL
+
+[update]
+name=SL 5 updates
+baseurl=http://scientificlinux.physik.uni-muenchen.de/mirror/scientific/5x/$basearch/updates/security
+ ftp://mirror.switch.ch/mirror/scientificlinux/5x/$basearch/updates/security
+ ftp://ftp.scientificlinux.org/linux/scientific/5x/$basearch/updates/security
+
+[extras]
+name=epel
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=x86_64
+
+[EGI-trustanchors]
+name=EGI-trustanchors
+baseurl=http://repository.egi.eu/sw/production/cas/1/current/
+gpgkey=http://repository.egi.eu/sw/production/cas/1/GPG-KEY-EUGridPMA-RPM-3
+
+[EMI-2-third-party]
+name=EMI 2 Third-Party Repository
+baseurl=http://emisoft.web.cern.ch/emisoft/dist/EMI/2/sl5/$basearch/third-party
+gpgkey=http://emisoft.web.cern.ch/emisoft/dist/EMI/2/RPM-GPG-KEY-emi
+protect=1
+enabled=1
+
+[main]
+[local]
+name=Local
+baseurl=file://@PWD@/repo
+"""
--- /dev/null
+config_opts['root'] = 'sl-6-x86_64'
+config_opts['target_arch'] = 'x86_64'
+config_opts['legal_host_arches'] = ('x86_64',)
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'el6' # only useful for --resultdir variable subst
+config_opts['macros']['%__arch_install_post'] = '%{nil}'
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+logfile=/var/log/yum.log
+reposdir=/dev/null
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+syslog_ident=mock
+syslog_device=
+
+# repos
+
+[core]
+name=SL 6 base
+baseurl=http://scientificlinux.physik.uni-muenchen.de/mirror/scientific/6x/$basearch/os
+ ftp://mirror.switch.ch/mirror/scientificlinux/6x/$basearch/os
+ ftp://ftp.scientificlinux.org/linux/scientific/6x/$basearch/os
+
+[update]
+name=SL 6 updates
+baseurl=http://scientificlinux.physik.uni-muenchen.de/mirror/scientific/6x/$basearch/updates/security
+ ftp://mirror.switch.ch/mirror/scientificlinux/6x/$basearch/updates/security
+ ftp://ftp.scientificlinux.org/linux/scientific/6x/$basearch/updates/security
+
+[extras]
+name=epel
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=x86_64
+
+[EGI-trustanchors]
+name=EGI-trustanchors
+baseurl=http://repository.egi.eu/sw/production/cas/1/current/
+gpgkey=http://repository.egi.eu/sw/production/cas/1/GPG-KEY-EUGridPMA-RPM-3
+
+[EMI-2-third-party]
+name=EMI 2 Third-Party Repository
+baseurl=http://emisoft.web.cern.ch/emisoft/dist/EMI/2/sl6/$basearch/third-party
+gpgkey=http://emisoft.web.cern.ch/emisoft/dist/EMI/2/RPM-GPG-KEY-emi
+protect=1
+enabled=1
+
+[main]
+[local]
+name=Local
+baseurl=file://@PWD@/repo
+"""