buildd lingering: remove a bashism
[mirror/dsa-puppet.git] / modules / buildd / manifests / init.pp
index 8b6514e..1d9aa20 100644 (file)
@@ -31,16 +31,9 @@ class buildd ($ensure=present) {
                                source  => 'puppet:///modules/buildd/buildd.conf',
                                require => Package['buildd'],
                        }
-                       if ($::lsbmajdistrelease >= 8) {
-                               file { '/etc/sbuild/sbuild.conf':
-                                       source  => 'puppet:///modules/buildd/sbuild.conf',
-                                       require => Package['sbuild'],
-                               }
-                       } else {
-                               file { '/etc/sbuild/sbuild.conf':
-                                       source  => 'puppet:///modules/buildd/sbuild.conf.wheezy',
-                                       require => Package['sbuild'],
-                               }
+                       file { '/etc/sbuild/sbuild.conf':
+                               source  => 'puppet:///modules/buildd/sbuild.conf',
+                               require => Package['sbuild'],
                        }
                        include ferm::ftp_conntrack
                }
@@ -57,12 +50,18 @@ class buildd ($ensure=present) {
                        default => 'jessie'
                }
 
-               site::aptrepo { 'buildd.debian.org':
-                       key        => 'puppet:///modules/buildd/buildd.debian.org.gpg',
-                       url        => 'https://apt.buildd.debian.org/',
-                       suite      => $suite,
-                       components => 'main',
-                       require    => Package['apt-transport-https'],
+               if (versioncmp($::lsbmajdistrelease, '9') >= 0) {
+                       site::aptrepo { 'buildd.debian.org':
+                               ensure => absent,
+                       }
+               } else {
+                       site::aptrepo { 'buildd.debian.org':
+                               key        => 'puppet:///modules/buildd/buildd.debian.org.gpg',
+                               url        => 'https://apt.buildd.debian.org/',
+                               suite      => $suite,
+                               components => 'main',
+                               require    => Package['apt-transport-https'],
+                       }
                }
 
                file { '/etc/apt/apt.conf.d/puppet-https-buildd':
@@ -76,7 +75,9 @@ class buildd ($ensure=present) {
                file { '/etc/apt/preferences.d/buildd':
                        ensure => absent,
                }
-               file { '/etc/cron.d/dsa-buildd':
+               file { '/etc/cron.d/dsa-buildd': ensure => absent, }
+               concat::fragment { 'dsa-puppet-stuff--buildd':
+                       target => '/etc/cron.d/dsa-puppet-stuff',
                        source  => 'puppet:///modules/buildd/cron.d-dsa-buildd',
                        require => Package['debian.org']
                }
@@ -85,16 +86,9 @@ class buildd ($ensure=present) {
                        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',
-                               }
+                       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':
@@ -102,18 +96,26 @@ class buildd ($ensure=present) {
                                mode    => '0555',
                        }
                }
-               file { '/etc/cron.d/puppet-buildd-aptitude':
-                       content => "*/5 * * * * root /usr/local/sbin/buildd-schroot-aptitude-kill\n",
+               file { '/etc/cron.d/puppet-buildd-aptitude': ensure => absent }
+               concat::fragment { 'dsa-puppet-stuff--buildd-aptitude-killer':
+                       target => '/etc/cron.d/dsa-puppet-stuff',
+                       content  => @(EOF)
+                               */5 * * * * root /usr/local/sbin/buildd-schroot-aptitude-kill
+                               | EOF
                }
 
                service { 'buildd':
-                       enable = false,
+                       enable => false,
                        ensure => 'stopped',
                }
 
+               file { '/etc/cron.d/puppet-update-buildd-schroots': ensure => absent }
                if $has_srv_buildd {
-                       file { '/etc/cron.d/puppet-update-buildd-schroots':
-                               content  => "13 21 * * 0,3 root PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin setup-all-dchroots buildd\n",
+                       concat::fragment { 'dsa-puppet-stuff--buildd-update-schroots':
+                               target => '/etc/cron.d/dsa-puppet-stuff',
+                               content  => @(EOF)
+                                       13 22 * * 0,3 root PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin setup-all-dchroots buildd
+                                       | EOF
                        }
                }
 
@@ -182,6 +184,15 @@ class buildd ($ensure=present) {
                        owner   => buildd,
                }
 
+               file { '/home/buildd/.profile':
+                       content  => @(EOT),
+                               export XDG_RUNTIME_DIR="/run/user/$(id -u)"
+                               export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
+                               | EOT
+                       group   => buildd,
+                       owner   => buildd,
+               }
+
                if ! $::buildd_key {
                        exec { 'create-buildd-key':
                                command => '/bin/su - buildd -c \'mkdir -p -m 02700 .ssh && ssh-keygen -C "`whoami`@`hostname` (`date +%Y-%m-%d`)" -P "" -f .ssh/id_rsa -q\'',
@@ -194,5 +205,22 @@ class buildd ($ensure=present) {
                        command => 'adduser buildd sbuild',
                        onlyif  => "getent group sbuild > /dev/null && ! getent group sbuild | grep '\\<buildd\\>' > /dev/null"
                }
+
+               # Enable lingering for pybuildd
+               file { '/var/lib/systemd/linger':
+                       ensure  => directory,
+                       mode    => '755',
+               }
+               file { "/var/lib/systemd/linger/buildd":
+                       ensure => present,
+               }
+
+               # And persistent journald storage
+               exec {'mkdir -p /etc/systemd/journald.conf.d':
+                       unless => 'test -d /etc/systemd/journald.conf.d',
+               }
+               file { '/etc/systemd/journald.conf.d/persistency.conf':
+                       source => 'puppet:///modules/systemd/persistency.conf',
+               }
        }
 }