X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fbuildd%2Fmanifests%2Finit.pp;h=87ea915c98715225f56f60e84f42f9889ed3bdc8;hb=d014243da016c302eab9ccc648384596cbe16a3e;hp=161238b400cde7dcf4a440b391711dc52eeb7615;hpb=462359acbb50393c48ff0c4ffd7b3a210b866636;p=mirror%2Fdsa-puppet.git diff --git a/modules/buildd/manifests/init.pp b/modules/buildd/manifests/init.pp index 161238b40..87ea915c9 100644 --- a/modules/buildd/manifests/init.pp +++ b/modules/buildd/manifests/init.pp @@ -1,63 +1,106 @@ -class buildd { - - # sigh, sort this mess out, kids - if $::lsbdistcodename in [lenny,squeeze] { - package { 'schroot': - ensure => installed, - require => [ - File['/etc/apt/sources.list.d/db.debian.org.list'], - Exec['apt-get update'] - ] - } - } else { - package { 'schroot': ensure => held } +class buildd ($ensure=present) { + + $package_ensure = $ensure ? { + present => installed, + absent => $ensure + } + + package { 'schroot': + ensure => $package_ensure, + tag => extra_repo, + } + package { 'sbuild': + ensure => $package_ensure, + tag => extra_repo, + } + package { 'libsbuild-perl': + ensure => $package_ensure, + tag => extra_repo, + before => Package['sbuild'] } package { 'apt-transport-https': - ensure => installed, + ensure => $package_ensure, } package { [ - 'sbuild', 'debootstrap', 'dupload' ]: ensure => installed, - require => [ - File['/etc/apt/sources.list.d/db.debian.org.list'], - Exec['apt-get update'] - ] } - site::linux_module { 'dm_snapshot': } - ferm::module { 'nf_conntrack_ftp': } + site::linux_module { 'dm_snapshot': + ensure => $ensure + } + ferm::module { 'nf_conntrack_ftp': + ensure => $ensure + } site::aptrepo { 'buildd': ensure => absent, } + + $suite = $::lsbdistcodename ? { + squeeze => $::lsbdistcodename, + wheezy => $::lsbdistcodename, + undef => 'squeeze', + default => 'wheezy' + } + site::aptrepo { 'buildd.debian.org': - template => 'buildd/etc/apt/sources.list.d/buildd.list.erb', - key => 'puppet:///modules/buildd/buildd.debian.org.asc', - require => Package['apt-transport-https'], + ensure => $ensure, + key => 'puppet:///modules/buildd/buildd.debian.org.asc', + url => 'https://buildd.debian.org/apt/', + suite => $suite, + components => 'main', + require => Package['apt-transport-https'], + } + + if $::hostname in [alkman,porpora,zandonai] { + site::aptrepo { 'buildd.debian.org-proposed': + url => 'https://buildd.debian.org/apt/', + suite => "${suite}-proposed", + components => 'main', + require => Package['apt-transport-https'], + } + } + + if $::hostname in [krenek] { + site::aptrepo { 'buildd.debian.org-experimental': + url => 'https://buildd.debian.org/apt/', + suite => "${suite}-experimental", + components => 'main', + require => Package['apt-transport-https'], + } } + # 'bad' extension + file { '/etc/apt/preferences.d/buildd.debian.org': + ensure => absent, + } file { '/etc/apt/preferences.d/buildd': - ensure => absent + ensure => $ensure, + content => template('buildd/etc/apt/preferences.d/buildd'), + before => Site::Aptrepo['buildd.debian.org'] } file { '/etc/schroot/mount-defaults': + ensure => $ensure, content => template('buildd/etc/schroot/mount-defaults.erb'), require => Package['sbuild'], } file { '/etc/cron.d/dsa-buildd': + ensure => $ensure, source => 'puppet:///modules/buildd/cron.d-dsa-buildd', require => Package['debian.org'] } file { '/etc/dupload.conf': + ensure => $ensure, source => 'puppet:///modules/buildd/dupload.conf', require => Package['dupload'], } file { '/etc/default/schroot': + ensure => $ensure, source => 'puppet:///modules/buildd/default-schroot', require => Package['schroot'] } - }