X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fbuildd%2Fmanifests%2Finit.pp;h=289edf28ff196f2410668e2f2ae6924c42e03b19;hb=0637773c599d387da3426ac17d78cc8b0e1c8f90;hp=bdb29eb8593b14faecfc72322b155111ed3b9394;hpb=0be9422d4562bc170c8bcf0726dff6485ef0459f;p=mirror%2Fdsa-puppet.git diff --git a/modules/buildd/manifests/init.pp b/modules/buildd/manifests/init.pp index bdb29eb85..289edf28f 100644 --- a/modules/buildd/manifests/init.pp +++ b/modules/buildd/manifests/init.pp @@ -1,68 +1,115 @@ -class buildd { +class buildd ($ensure=present) { - # 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 } - } + include schroot - package { 'apt-transport-https': + package { 'sbuild': ensure => installed, + tag => extra_repo, } - package { [ - 'sbuild', - 'debootstrap', - 'dupload' - ]: + package { 'libsbuild-perl': ensure => installed, - require => [ - File['/etc/apt/sources.list.d/db.debian.org.list'], - Exec['apt-get update'] - ] + tag => extra_repo, + before => Package['sbuild'] } - site::linux_module { 'dm_snapshot': } - ferm::module { 'nf_conntrack_ftp': } + package { 'apt-transport-https': + ensure => installed, + } + if $ensure == present { + package { 'dupload': + ensure => installed, + } + file { '/etc/dupload.conf': + source => 'puppet:///modules/buildd/dupload.conf', + require => Package['dupload'], + } + site::linux_module { 'dm_snapshot': } + include ferm::ftp_conntrack + } 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'], + key => 'puppet:///modules/buildd/buildd.debian.org.gpg', + url => 'https://buildd.debian.org/apt/', + suite => $suite, + components => 'main', + require => Package['apt-transport-https'], } - file { '/etc/apt/preferences.d/buildd': - ensure => absent, + $buildd_prop_ensure = $::hostname ? { + /^(alkman|brahms|porpora|zandonai)$/ => 'present', + default => 'absent', + } + + if ($::lsbmajdistrelease >= 8) { + file { '/etc/apt/apt.conf.d/puppet-https-buildd': + content => "Acquire::https::buildd.debian.org::CaInfo \"/etc/ssl/ca-debian/ca-certificates.crt\";\n", + } + } else { + file { '/etc/apt/apt.conf.d/puppet-https-buildd': + content => "Acquire::https::buildd.debian.org::CaInfo \"/etc/ssl/servicecerts/buildd.debian.org.crt\";\n", + } + } + site::aptrepo { 'buildd.debian.org-proposed': + ensure => $buildd_prop_ensure, + url => 'https://buildd.debian.org/apt/', + suite => "${suite}-proposed", + components => 'main', + require => [ Package['apt-transport-https'], + File['/etc/apt/apt.conf.d/puppet-https-buildd'] ], } + + # 'bad' extension file { '/etc/apt/preferences.d/buildd.debian.org': - content => template('buildd/etc/apt/preferences.d/buildd.debian.org'), - before => File["/etc/apt/sources.list.d/buildd.debian.org.list"], - ; + ensure => absent, } - file { '/etc/schroot/mount-defaults': - content => template('buildd/etc/schroot/mount-defaults.erb'), - require => Package['sbuild'], + file { '/etc/apt/preferences.d/buildd': + ensure => absent, } file { '/etc/cron.d/dsa-buildd': source => 'puppet:///modules/buildd/cron.d-dsa-buildd', require => Package['debian.org'] } - file { '/etc/dupload.conf': - source => 'puppet:///modules/buildd/dupload.conf', - require => Package['dupload'], + + if ($::lsbmajdistrelease >= 7 and $::kernel == 'Linux') { + package { 'python-psutil': + ensure => installed, + } + if ($::lsbmajdistrelease >= 8) { + file { '/usr/local/sbin/buildd-schroot-aptitude-kill': + source => 'puppet:///modules/buildd/buildd-schroot-aptitude-kill', + mode => '0555', + } + } else { + file { '/usr/local/sbin/buildd-schroot-aptitude-kill': + source => 'puppet:///modules/buildd/buildd-schroot-aptitude-kill.wheezy', + mode => '0555', + } + } + } else { + file { '/usr/local/sbin/buildd-schroot-aptitude-kill': + source => 'puppet:///modules/buildd/buildd-schroot-aptitude-kill.squeeze', + mode => '0555', + } } - file { '/etc/default/schroot': - source => 'puppet:///modules/buildd/default-schroot', - require => Package['schroot'] + file { '/etc/cron.d/puppet-buildd-aptitude': + content => "*/5 * * * * root /usr/local/sbin/buildd-schroot-aptitude-kill\n", } + + if $has_srv_buildd { + file { '/etc/cron.d/puppet-update-buildd-schroots': + content => "13 21 * * 0 root PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin setup-all-dchroots buildd\n", + } + } }