]> gitweb.fluxo.info Git - puppet-apt.git/commitdiff
Additionally use version number in Lenny default pinning.
authorintrigeri <intrigeri@boum.org>
Sun, 12 Dec 2010 08:43:40 +0000 (09:43 +0100)
committerintrigeri <intrigeri@boum.org>
Sun, 12 Dec 2010 08:57:42 +0000 (09:57 +0100)
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.

lib/puppet/parser/functions/debian_release_version.rb [new file with mode: 0644]
manifests/init.pp
templates/Debian/preferences_lenny.erb

diff --git a/lib/puppet/parser/functions/debian_release_version.rb b/lib/puppet/parser/functions/debian_release_version.rb
new file mode 100644 (file)
index 0000000..4b135d0
--- /dev/null
@@ -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
index 2d46ad4563569526d29f3d9052d05ae28eb61ba5..7fa811db42023c426abb0b4d1c86fc7c41f1621e 100644 (file)
@@ -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)
 
index be8ecd8f548a3beb7eb0dd9b7dfc15ca6365c586..dda2d7a6cdce02745cf6709807ec58c67622d938 100644 (file)
@@ -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