From 03f72e194890b250aa7462ca2b763adc9e4b06ff Mon Sep 17 00:00:00 2001 From: Nicolas Vigier Date: Thu, 23 May 2013 15:05:59 +0000 Subject: buildsystem: add option to base a distribution on an other It is now possible to add the option 'based_on' to a distribution defined in buildystem::var::distros. This is useful for distributions like infra_1 or infra_2 which provide a new repository for an existing distribution. When repositories from an other distribution are defined in 'based_on', the repositories are linked with a symbolic link, and defined in media.cfg. --- modules/buildsystem/manifests/distros.rb | 20 ++++++++++++++++++++ modules/buildsystem/manifests/var/distros.pp | 8 ++++++++ 2 files changed, 28 insertions(+) (limited to 'modules/buildsystem/manifests') 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( -- cgit v1.2.1