aboutsummaryrefslogtreecommitdiffstats
path: root/modules/buildsystem/templates/upload.conf
diff options
context:
space:
mode:
Diffstat (limited to 'modules/buildsystem/templates/upload.conf')
-rw-r--r--modules/buildsystem/templates/upload.conf134
1 files changed, 96 insertions, 38 deletions
diff --git a/modules/buildsystem/templates/upload.conf b/modules/buildsystem/templates/upload.conf
index 0118ca7c..af610c92 100644
--- a/modules/buildsystem/templates/upload.conf
+++ b/modules/buildsystem/templates/upload.conf
@@ -7,12 +7,20 @@
#
###
+<%-
+ build_nodes = scope.lookupvar('buildsystem::var::scheduler::build_nodes')
+-%>
my %nodes = (
- i586 => [ qw(jonund0 ecosse0 jonund1 ecosse1 ) ],
- x86_64 => [ qw(ecosse0 jonund0 ecosse1 jonund1 ) ],
+<%-
+ build_nodes.keys.sort.each{|arch|
+-%>
+ <%= arch -%> => [ '<%= build_nodes[arch].join("', '") -%>' ],
+<%-
+ }
+-%>
);
-my $repository = "http://repository.<%= domain %>/distrib/";
-my $homedir = "<%= homedir %>";
+my $repository = "http://<%= scope.lookupvar('buildsystem::var::repository::hostname') %>/<%= scope.lookupvar('buildsystem::var::repository::distribdir') %>/";
+my $homedir = "<%= scope.lookupvar('buildsystem::var::iurt::homedir') %>";
{
bot => {
@@ -23,7 +31,7 @@ my $homedir = "<%= homedir %>";
my $node = $_;
($node => {
iurt => {
- user => '<%= login %>',
+ user => '<%= scope.lookupvar('buildsystem::var::iurt::login') %>',
# (spuk, 2007-08-16) disabled iurt_cache additional media, locks trying to mount -o bind
# command => "iurt --copy-srpm --group -v 6 --config local_spool $homedir/iurt/__DIR__ --no_rsync --chrooted-urpmi -m __MEDIA__ -- $repository --additional-media -m __MEDIA__ -- file://$homedir/cache/ -p \"__PACKAGER__\" -r __TARGET__ __ARCH__",
command => "iurt --copy_srpm --group --rpmmacros \"%distro_section __SECTION__\" --config local_spool $homedir/iurt/__DIR__ --no_rsync --chrooted-urpmi -m __MEDIA__ -- $repository -p \"__PACKAGER__\" -r __TARGET__ __ARCH__",
@@ -35,39 +43,89 @@ my $homedir = "<%= homedir %>";
} keys %nodes),
},
media => {
- default => {
- "infra/release" => [ "infra/release", "base/core/updates", "base/core/release" ],
- "core/release" => [ "core/updates", "core/release" ],
- "core/updates" => [ "core/updates", "core/release" ],
- "core/updates_testing" => [ "core/updates_testing", "core/updates", "core/release" ],
- "core/backports" => [ "core/backports", "core/updates_testing", "core/updates", "core/release" ],
- "core/backports_testing" => [ "core/backports_testing", "core/backports", "core/updates_testing", "core/updates", "core/release" ],
- "nonfree/release" => [ "core/release", "nonfree/release" ],
- "nonfree/updates" => [ "core/updates", "core/release", "nonfree/release", "nonfree/updates" ],
- "nonfree/updates_testing" => [ "core/updates", "core/release", "core/updates_testing", "nonfree/release", "nonfree/updates", "nonfree/updates_testing" ],
- "nonfree/backports" => [ "core/backports", "core/updates_testing", "core/updates", "core/release",
- "nonfree/release", "nonfree/updates", "nonfree/updates_testing", "nonfree/backports" ],
- "nonfree/backports_testing" => [ "core/backports_testing", "core/backports", "core/updates_testing", "core/updates", "core/release",
- "nonfree/release", "nonfree/updates", "nonfree/updates_testing", "nonfree/backports", "nonfree/backports_testing" ],
- "tainted/release" => [ "core/release", "nonfree/release", "tainted/release" ],
- "tainted/updates" => [ "core/release", "nonfree/release", "tainted/release",
- "core/updates", "nonfree/updates", "tainted/updates" ],
- "tainted/updates_testing" => [ "core/release", "nonfree/release", "tainted/release",
- "core/updates", "nonfree/updates", "tainted/updates",
- "core/updates_testing", "nonfree/updates_testing", "tainted/updates_testing" ],
- "tainted/backports" => [ "core/release", "nonfree/release", "tainted/release",
- "core/updates", "nonfree/updates", "tainted/updates",
- "core/updates_testing", "nonfree/updates_testing", "tainted/updates_testing",
- "core/backports", "nonfree/backports", "tainted/backports" ],
- "tainted/backports_testing" => [ "core/release", "nonfree/release", "tainted/release",
- "core/updates", "nonfree/updates", "tainted/updates",
- "core/updates_testing", "nonfree/updates_testing", "tainted/updates_testing",
- "core/backports", "nonfree/backports", "tainted/backports",
- "core/backports_testing", "nonfree/backports_testing", "tainted/backports_testing" ],
- },
+ <%-
+ def repo_deps(distros, dname, mname, rname)
+ deps = {}
+ distro = distros[dname]
+ if distro['based_on'] != nil
+ distro['based_on'].each{|bdistro, bmedias|
+ if bmedias[mname] != nil and \
+ bmedias[mname].include?(rname) then
+ deps[ [ bdistro, mname, rname ].join('/') ] = 1
+ end
+ }
+ end
+ if distro['medias'][mname] != nil \
+ and distro['medias'][mname]['repos'][rname] != nil
+ then
+ deps[ [ mname, rname ].join('/') ] = 1
+ else
+ return deps
+ end
+ mlist = distro['medias'][mname]['requires']
+ mlist = mlist == nil ? [ mname ] : [ mname ] + mlist
+ mlist.each{|mreq|
+ rlist = distro['medias'][mname]['repos'][rname]['requires']
+ rlist = [] if rlist == nil
+ rlist += [ rname ] if mreq != mname
+ rlist.each{|rreq|
+ deps.merge!(repo_deps(distros, dname, mreq, rreq))
+ }
+ }
+ return deps
+ end
+ distros = scope.lookupvar('buildsystem::var::distros::distros')
+ distros.keys.sort.each{|distroname|
+ -%>
+ '<%= distroname -%>' => {
+ <%-
+ distro = distros[distroname]
+ distro['medias'].keys.sort.each{|medianame|
+ media = distro['medias'][medianame]
+ media['repos'].keys.sort.each{|reponame|
+ deps = repo_deps(distros, distroname, medianame, reponame)
+ -%>
+ "<%= [ medianame, reponame ].join('/') %>" => [ "<%=
+ deps.keys.sort.join('", "')
+ %>" ],
+ <%-
+ }
+ }
+ -%>
+ },
+ <%-
+ }
+ -%>
},
- admin => 'mageia-sysadm@mageia.org',
- http_queue => 'http://pkgsubmit.<%= domain %>/uploads',
- upload_user => '<%= sched_login %>',
+ admin => '<%= scope.lookupvar('buildsystem::var::scheduler::admin_mail') %>',
+ http_queue => 'https://<%= scope.lookupvar('buildsystem::var::webstatus::hostname') %>/uploads',
+ upload_user => '<%= scope.lookupvar('buildsystem::var::scheduler::login') %>',
email_domain => '<%= domain %>',
+ arch => {
+ <%-
+ distros.keys.sort.each{|distroname|
+ -%>
+ <%= distroname -%> => [ '<%= distros[distroname]['arch'].join("', '") %>' ],
+ <%-
+ }
+ -%>
+ default => [ 'i586', 'x86_64' ],
+ },
+ mandatory_arch => {
+ <%-
+ distros.keys.sort.each{|distroname|
+ if distros[distroname]['mandatory_arch'] != nil
+ march = distros[distroname]['mandatory_arch']
+ else
+ march = distros[distroname]['arch']
+ end
+ -%>
+ <%= distroname -%> => [ '<%= march.join("', '") %>' ],
+ <%-
+ }
+ -%>
+ default => [ 'i586', 'x86_64' ],
+ },
+ ssh_options => "-o ServerAliveInterval=10 -o ConnectTimeout=20 -o BatchMode=yes",
+ faildelay => 360000,
}