1 |
### |
2 |
# |
3 |
# Do not disable the host without appropriate warning |
4 |
# to somebody able to fix the machine |
5 |
# |
6 |
# Please run 'perl -cw .upload.conf' in order to check the file is OK. |
7 |
# |
8 |
### |
9 |
|
10 |
<%- |
11 |
build_nodes = scope.lookupvar('buildsystem::var::scheduler::build_nodes') |
12 |
-%> |
13 |
my %nodes = ( |
14 |
<%- |
15 |
build_nodes.keys.sort.each{|arch| |
16 |
-%> |
17 |
<%= arch -%> => [ '<%= build_nodes[arch].join("', '") -%>' ], |
18 |
<%- |
19 |
} |
20 |
-%> |
21 |
); |
22 |
my $repository = "http://<%= scope.lookupvar('buildsystem::var::repository::hostname') %>/<%= scope.lookupvar('buildsystem::var::repository::distribdir') %>/"; |
23 |
my $homedir = "<%= scope.lookupvar('buildsystem::var::iurt::homedir') %>"; |
24 |
|
25 |
{ |
26 |
bot => { |
27 |
(map { |
28 |
my $arch = $_; |
29 |
$arch => { |
30 |
map { |
31 |
my $node = $_; |
32 |
($node => { |
33 |
iurt => { |
34 |
user => '<%= scope.lookupvar('buildsystem::var::iurt::login') %>', |
35 |
# (spuk, 2007-08-16) disabled iurt_cache additional media, locks trying to mount -o bind |
36 |
# 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__", |
37 |
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__", |
38 |
packages => "$homedir/iurt/", |
39 |
}, |
40 |
}); |
41 |
} @{$nodes{$arch}}, |
42 |
}; |
43 |
} keys %nodes), |
44 |
}, |
45 |
media => { |
46 |
<%- |
47 |
def repo_deps(distros, dname, mname, rname) |
48 |
deps = {} |
49 |
distro = distros[dname] |
50 |
if distro['based_on'] != nil |
51 |
distro['based_on'].each{|bdistro, bmedias| |
52 |
if bmedias[mname] != nil and \ |
53 |
bmedias[mname].include?(rname) then |
54 |
deps[ [ bdistro, mname, rname ].join('/') ] = 1 |
55 |
end |
56 |
} |
57 |
end |
58 |
if distro['medias'][mname] != nil \ |
59 |
and distro['medias'][mname]['repos'][rname] != nil |
60 |
then |
61 |
deps[ [ mname, rname ].join('/') ] = 1 |
62 |
else |
63 |
return deps |
64 |
end |
65 |
mlist = distro['medias'][mname]['requires'] |
66 |
mlist = mlist == nil ? [ mname ] : [ mname ] + mlist |
67 |
mlist.each{|mreq| |
68 |
rlist = distro['medias'][mname]['repos'][rname]['requires'] |
69 |
rlist = [] if rlist == nil |
70 |
rlist += [ rname ] if mreq != mname |
71 |
rlist.each{|rreq| |
72 |
deps.merge!(repo_deps(distros, dname, mreq, rreq)) |
73 |
} |
74 |
} |
75 |
return deps |
76 |
end |
77 |
distros = scope.lookupvar('buildsystem::var::distros::distros') |
78 |
distros.keys.sort.each{|distroname| |
79 |
-%> |
80 |
'<%= distroname -%>' => { |
81 |
<%- |
82 |
distro = distros[distroname] |
83 |
distro['medias'].keys.sort.each{|medianame| |
84 |
media = distro['medias'][medianame] |
85 |
media['repos'].keys.sort.each{|reponame| |
86 |
deps = repo_deps(distros, distroname, medianame, reponame) |
87 |
-%> |
88 |
"<%= [ medianame, reponame ].join('/') %>" => [ "<%= |
89 |
deps.keys.sort.join('", "') |
90 |
%>" ], |
91 |
<%- |
92 |
} |
93 |
} |
94 |
-%> |
95 |
}, |
96 |
<%- |
97 |
} |
98 |
-%> |
99 |
}, |
100 |
admin => '<%= scope.lookupvar('buildsystem::var::scheduler::admin_mail') %>', |
101 |
http_queue => 'http://<%= scope.lookupvar('buildsystem::var::webstatus::hostname') %>/uploads', |
102 |
upload_user => '<%= scope.lookupvar('buildsystem::var::scheduler::login') %>', |
103 |
email_domain => '<%= domain %>', |
104 |
arch => { |
105 |
<%- |
106 |
distros.keys.sort.each{|distroname| |
107 |
-%> |
108 |
<%= distroname -%> => [ '<%= distros[distroname]['arch'].join("', '") %>' ], |
109 |
<%- |
110 |
} |
111 |
-%> |
112 |
default => [ 'i586', 'x86_64' ], |
113 |
}, |
114 |
mandatory_arch => { |
115 |
<%- |
116 |
distros.keys.sort.each{|distroname| |
117 |
if distros[distroname]['mandatory_arch'] != nil |
118 |
march = distros[distroname]['mandatory_arch'] |
119 |
else |
120 |
march = distros[distroname]['arch'] |
121 |
end |
122 |
-%> |
123 |
<%= distroname -%> => [ '<%= march.join("', '") %>' ], |
124 |
<%- |
125 |
} |
126 |
-%> |
127 |
default => [ 'i586', 'x86_64' ], |
128 |
}, |
129 |
} |