summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2010-12-12 09:43:40 +0100
committerintrigeri <intrigeri@boum.org>2010-12-12 09:57:42 +0100
commit4103a2705498b4e6d371af5582df74c93f6e7e2d (patch)
tree19ee22635134548b2e2a7ca9274d67b8abf5d553
parent248d7e46ff1506050f3bffb0d462da37e139729e (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.rb9
-rw-r--r--manifests/init.pp3
-rw-r--r--templates/Debian/preferences_lenny.erb2
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