]> gitweb.fluxo.info Git - puppet-apt.git/commitdiff
Merge remote branch 'nadir/master'
authorintrigeri <intrigeri@boum.org>
Wed, 10 Nov 2010 09:11:18 +0000 (10:11 +0100)
committerintrigeri <intrigeri@boum.org>
Wed, 10 Nov 2010 09:19:06 +0000 (10:19 +0100)
Conflicts:
README
manifests/custom_sources.pp
manifests/default_preferences.pp
manifests/init.pp
manifests/unattended_upgrades.pp
templates/Debian/sources.list.volatile.erb

1  2 
README
manifests/init.pp
manifests/preferences.pp

diff --cc README
index 8c32ca46c6037f6b87124e0ffdbf48d60a6f6789,a6e37ce5fa92689d9ead4b353be3d71ae65649b0..12ec3fa67510a094faea97e3fbda11d80c619c25
--- 1/README
--- 2/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
  =========
  
index cbdd8d781b997be7215825fbd3e5fa22ff1f381b,1011e6517aa7f2dbd98bd457a0f2f39aac9e26dc..1247b45fba048ae85855adb001f7011fd1f3af45
@@@ -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
      }
    }
  
-     before  => Config_file[apt_config],
 +  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  => 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
    }
      '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
index 0000000000000000000000000000000000000000,772b426500320c360e142bccb98989f1982facc5..4acfdaf33ca2b540e4d25b9496efca10ddef2b37
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,31 +1,26 @@@
 -      '' => 'Package: *
 -Pin: release a=unstable
 -Pin-Priority: 1
 -
 -Package: *
 -Pin: release a=testing
 -Pin-Priority: 2
 -
 -',
+ 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 ? {
++      '' => $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"];
+   }
+ }