diff options
Diffstat (limited to 'modules/buildsystem')
-rw-r--r-- | modules/buildsystem/manifests/distros.rb | 20 | ||||
-rw-r--r-- | modules/buildsystem/manifests/var/distros.pp | 8 | ||||
-rw-r--r-- | modules/buildsystem/templates/media.cfg | 17 |
3 files changed, 45 insertions, 0 deletions
diff --git a/modules/buildsystem/manifests/distros.rb b/modules/buildsystem/manifests/distros.rb index 24b394aa..9bb30221 100644 --- a/modules/buildsystem/manifests/distros.rb +++ b/modules/buildsystem/manifests/distros.rb @@ -42,6 +42,26 @@ hostclass "buildsystem::distros" do :group => schedbot_user end } + if distro['based_on'] != nil + distro['based_on'].each{|bdistroname, medias| + file [ mediadir, bdistroname ].join('/'), + :ensure => 'directory', :owner => mirror_user, + :group => mirror_user + medias.each{|medianame, media| + mdir = [ mediadir, bdistroname, medianame ].join('/') + file mdir, :ensure => 'directory', + :owner => mirror_user, :group => mirror_user + for reponame in media + file [ mdir, reponame ].join('/'), + :ensure => 'link', + :target => [ + '../../../../..', bdistroname, arch, + 'media', medianame, reponame ].join('/'), + :owner => mirror_user, :group => mirror_user + end + } + } + end end } end diff --git a/modules/buildsystem/manifests/var/distros.pp b/modules/buildsystem/manifests/var/distros.pp index ddd8ffc1..ae00810a 100644 --- a/modules/buildsystem/manifests/var/distros.pp +++ b/modules/buildsystem/manifests/var/distros.pp @@ -44,6 +44,14 @@ # # repository. If you don't want to filter allowed IPs, don't set # # this value # 'repo_allow_from' => [ '127.0.0.1', '10.0.0.1', '.mageia.org' ], +# Optionally, the distribution can be based on the repos from an other +# distribution. In this example we're saying that the distribution is +# based on 2/core/release and 2/core/updates. +# 'based_on' => { +# '2' => { +# 'core' => [ 'release', 'updates' ], +# }, +# }, # }, # } class buildsystem::var::distros( diff --git a/modules/buildsystem/templates/media.cfg b/modules/buildsystem/templates/media.cfg index 163f1f66..3ac06bce 100644 --- a/modules/buildsystem/templates/media.cfg +++ b/modules/buildsystem/templates/media.cfg @@ -99,4 +99,21 @@ distro['medias'].each{|medianame, media| end } } +if distro['based_on'] != nil + distro['based_on'].each{|bdistroname, bdistro| + bdistro.each{|medianame, media| + for reponame in media + -%><%= + media_out [ bdistroname, medianame, reponame ].join('/'), + :hdlists => [ 'hdlist', bdistroname, medianame, + reponame ].join('_'), + :name => media_name([ medianame, bdistroname].join(''), reponame, nil, nil), + :media_types => 'base_distro', + :noauto => 1 + %> + <%- + end + } + } +end -%> |