From: intrigeri Date: Wed, 10 Nov 2010 09:11:18 +0000 (+0100) Subject: Merge remote branch 'nadir/master' X-Git-Url: https://gitweb.fluxo.info/?a=commitdiff_plain;h=2cd9496999af2dd00a203f38c4e1f4393c7f3f62;p=puppet-apt.git Merge remote branch 'nadir/master' Conflicts: README manifests/custom_sources.pp manifests/default_preferences.pp manifests/init.pp manifests/unattended_upgrades.pp templates/Debian/sources.list.volatile.erb --- 2cd9496999af2dd00a203f38c4e1f4393c7f3f62 diff --cc README index 8c32ca4,a6e37ce..12ec3fa --- a/README +++ b/README @@@ -127,23 -83,25 +131,39 @@@ is overriden Classes ======= -This module contains only the apt class, which sets up all described -functionality. +apt +--- + +The apt class sets up all documented functionality but cron-apt. + +apt::cron::download +------------------- + +This class sets up cron-apt so that it downloads upgradable packages, +does not actually do any upgrade and email when the output changes. + +apt::cron::dist-upgrade +----------------------- + +This class sets up cron-apt so that it dist-upgrades the system and +email when upgrades are performed. + Defines + ======= + + apt::preferences_snippet + ------------------------ + + A way to add pinning information to /etc/apt/preferences + + Example: + + apt::preferences_snippet{ + 'irssi-plugin-otr': + release => 'lenny-backports', + priority => 999; + } + Resources ========= diff --cc manifests/init.pp index cbdd8d7,1011e65..1247b45 --- a/manifests/init.pp +++ b/manifests/init.pp @@@ -94,42 -31,22 +94,38 @@@ class apt } } - config_file { - # little default settings which keep the system sane - "/etc/apt/apt.conf.d/from_puppet": - content => "APT::Get::Show-Upgraded true;\nDSelect::Clean $real_apt_clean;\n", - before => Concatenated_file['/etc/apt/preferences']; - } - case $custom_preferences { - '': { - include apt::default_preferences + false: { + include apt::preferences::absent } default: { - config_file { "/etc/apt/preferences": - content => $custom_preferences, - alias => "apt_config", - require => Config_file["/etc/apt/sources.list"]; - } + include apt::preferences } } + config_file { '/etc/apt/apt.conf.d/99from_puppet': } + # little default settings which keep the system sane + append_if_no_such_line { 'apt-get-show-upgraded': + file => "/etc/apt/apt.conf.d/99from_puppet", + line => "APT::Get::Show-Upgraded true;", - before => Config_file[apt_config], ++ before => Concatenated_file['/etc/apt/preferences'], + require => Config_file['/etc/apt/apt.conf.d/99from_puppet'], + } + append_if_no_such_line { 'dselect-clean': + file => "/etc/apt/apt.conf.d/99from_puppet", + line => "DSelect::Clean ${real_apt_clean};", - before => Config_file[apt_config], ++ before => Concatenated_file['/etc/apt/preferences'], + require => Config_file['/etc/apt/apt.conf.d/99from_puppet'], + } + # backward compatibility: upgrade from previous versions of this module. + file { + "/etc/apt/apt.conf.d/from_puppet": + ensure => 'absent', + require => [ Append_if_no_such_line['apt-get-show-upgraded'], + Append_if_no_such_line['dselect-clean'] + ], + } + if $apt_unattended_upgrades { include apt::unattended_upgrades } @@@ -145,15 -62,16 +141,16 @@@ 'refresh_apt': command => '/usr/bin/apt-get update && sleep 1', refreshonly => true, - subscribe => [ File["/etc/apt/apt.conf.d"], - Config_file["/etc/apt/sources.list"] ]; - subscribe => File['/etc/apt/sources.list', - '/etc/apt/apt.conf.d', - '/etc/apt/preferences']; - 'update_apt': - command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean', - require => File['/etc/apt/sources.list', ++ subscribe => [ File['/etc/apt/apt.conf.d'], ++ Config_file['/etc/apt/sources.list'] ]; + 'update_apt': + command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean', - require => [ File["/etc/apt/apt.conf.d"], - Config_file["/etc/apt/sources.list"] ], ++ require => [ File['/etc/apt/apt.conf.d', + '/etc/apt/preferences'], - loglevel => info, - # Another Semaphor for all packages to reference - alias => "apt_updated"; ++ Config_file['/etc/apt/sources.list'] ], + loglevel => info, + # Another Semaphor for all packages to reference + alias => "apt_updated"; } ## This package should really always be current diff --cc manifests/preferences.pp index 0000000,772b426..4acfdaf mode 000000,100644..100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@@ -1,0 -1,31 +1,26 @@@ + class apt::preferences { + + include common::moduledir + $apt_preferences_dir = "${common::moduledir::module_dir_path}/apt/preferences" + module_dir{'apt/preferences': } + file{"${apt_preferences_dir}_header": + content => $custom_preferences ? { - '' => 'Package: * -Pin: release a=unstable -Pin-Priority: 1 - -Package: * -Pin: release a=testing -Pin-Priority: 2 - -', ++ '' => $operatingsystem ? { ++ 'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"), ++ 'ubuntu' => '', ++ }, + default => $custom_preferences + }, + } + + concatenated_file{'/etc/apt/preferences': + dir => $apt_preferences_dir, + header => "${apt_preferences_dir}_header", + # use Concatenated_file[apt_config] to reference a completed configuration + # See "The Puppet Semaphor" 2007-06-25 on the puppet-users ML + alias => apt_config, + # only update together + require => File["/etc/apt/sources.list"]; + } + + }