diff options
author | intrigeri <intrigeri@boum.org> | 2010-12-12 09:43:40 +0100 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2010-12-12 09:57:42 +0100 |
commit | 4103a2705498b4e6d371af5582df74c93f6e7e2d (patch) | |
tree | 19ee22635134548b2e2a7ca9274d67b8abf5d553 | |
parent | 248d7e46ff1506050f3bffb0d462da37e139729e (diff) |
Additionally use version number in Lenny default pinning.
Lenny's APT does not support pinning like this:
Pin: release o=Debian,n=<%= codename %>
We therefore switched (in commit ef2ebdffd) to:
Pin: release o=Debian,a=<%= release %>
With such a pinning setup, when Squeeze is released, systems using this module
with $apt_use_next_release set to true would immediately switch to prefer
packages from Squeeze. If an automated upgrade process is setup, they would be
automatically upgraded to Squeeze.
This does not sound safe to me, so let's use the release version number as an
additional selection criterion to prevent upgrades to Squeeze to happen behind
our back:
Pin: release o=Debian,a=<%= release %>,v=<%= release_version %>*
Note that the trailing '*' is intentional and necessary to match stable
point-releases.
-rw-r--r-- | lib/puppet/parser/functions/debian_release_version.rb | 9 | ||||
-rw-r--r-- | manifests/init.pp | 3 | ||||
-rw-r--r-- | templates/Debian/preferences_lenny.erb | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/lib/puppet/parser/functions/debian_release_version.rb b/lib/puppet/parser/functions/debian_release_version.rb new file mode 100644 index 0000000..4b135d0 --- /dev/null +++ b/lib/puppet/parser/functions/debian_release_version.rb @@ -0,0 +1,9 @@ +module Puppet::Parser::Functions + newfunction(:debian_release_version, :type => :rvalue) do |args| + case args[0] + when 'etch' then '4.0' + when 'lenny' then '5.0' + else '' + end + end +end diff --git a/manifests/init.pp b/manifests/init.pp index 2d46ad4..7fa811d 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -62,7 +62,7 @@ class apt { include lsb - # init $release, $next_release, $codename, $next_codename + # init $release, $next_release, $codename, $next_codename, $release_version case $lsbdistcodename { '': { $codename = $lsbdistcodename @@ -73,6 +73,7 @@ class apt { $release = debian_release($codename) } } + $release_version = debian_release_version($codename) $next_codename = debian_nextcodename($codename) $next_release = debian_nextrelease($release) diff --git a/templates/Debian/preferences_lenny.erb b/templates/Debian/preferences_lenny.erb index be8ecd8..dda2d7a 100644 --- a/templates/Debian/preferences_lenny.erb +++ b/templates/Debian/preferences_lenny.erb @@ -1,6 +1,6 @@ Explanation: Debian <%= codename %> Package: * -Pin: release o=Debian,a=<%= release %> +Pin: release o=Debian,a=<%= release %>,v=<%= release_version %>* Pin-Priority: 990 Explanation: Debian backports |