aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2010-11-21 16:31:42 +0100
committerintrigeri <intrigeri@boum.org>2010-11-21 16:31:42 +0100
commitd30069c178ff2aff9154f65bd7dbf988c4d002f1 (patch)
treec710585866e623dd595b35bc921261a364ec64c8
parentee6d13d1e42acca7374aa302a4f9dfa9001d799f (diff)
parentd97a49b7b2c020c2c43df6524236f50a421789ee (diff)
downloadpuppet-apt-d30069c178ff2aff9154f65bd7dbf988c4d002f1.tar.gz
puppet-apt-d30069c178ff2aff9154f65bd7dbf988c4d002f1.tar.bz2
Merge commit 'd97a49b7b2c020c2c43df6524236f50a421789ee'.
Going on merging immerda changes. Incompatible change: I do prefer my own generic apt/preferences template to shipping a static file that only supports Lenny. My own template supports security, backports, volatile, next release etc. Conflicts: files/preferences manifests/init.pp manifests/preferences.pp
-rw-r--r--files/preferences_snippet.erb4
-rw-r--r--manifests/apt_conf_snippet.pp16
-rw-r--r--manifests/init.pp26
-rw-r--r--manifests/preferences_snippet.pp22
4 files changed, 39 insertions, 29 deletions
diff --git a/files/preferences_snippet.erb b/files/preferences_snippet.erb
new file mode 100644
index 0000000..4dfb701
--- /dev/null
+++ b/files/preferences_snippet.erb
@@ -0,0 +1,4 @@
+Package: <%= name %>
+Pin: release a=<%= release %>
+Pin-Priority: <%= priority %>
+
diff --git a/manifests/apt_conf_snippet.pp b/manifests/apt_conf_snippet.pp
index 77b88ae..c1cd884 100644
--- a/manifests/apt_conf_snippet.pp
+++ b/manifests/apt_conf_snippet.pp
@@ -10,20 +10,20 @@ define apt::apt_conf_snippet(
fail("Only one of \$source or \$content must specified for apt_conf_snippet ${name}")
}
+ file { "/etc/apt/apt.conf.d/${name}":
+ ensure => $ensure,
+ notify => Exec["refresh_apt"],
+ owner => root, group => 0, mode => 0600;
+ }
+
if $source {
- file { "/etc/apt/apt.conf.d/${name}":
- ensure => $ensure,
+ File["/etc/apt/apt.conf.d/${name}"] {
source => $source,
- notify => Exec["refresh_apt"],
- owner => root, group => 0, mode => 0600;
}
}
else {
- file { "/etc/apt/apt.conf.d/${name}":
- ensure => $ensure,
+ File["/etc/apt/apt.conf.d/${name}"] {
content => $content,
- notify => Exec["refresh_apt"],
- owner => root, group => 0, mode => 0600;
}
}
}
diff --git a/manifests/init.pp b/manifests/init.pp
index f55507f..6938c2c 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -84,22 +84,16 @@ class apt {
$next_codename = debian_nextcodename($codename)
$next_release = debian_nextrelease($release)
- case $custom_sources_list {
- '': {
- config_file {
- # include main, security and backports
- # additional sources should be included via the custom_sources_template
- # define
- "/etc/apt/sources.list":
- content => template( "apt/$operatingsystem/sources.list.erb"),
- require => Package['lsb'];
- }
- }
- default: {
- config_file { "/etc/apt/sources.list":
- content => $custom_sources_list,
- }
- }
+ config_file {
+ # include main, security and backports
+ # additional sources should be included via the custom_sources_template
+ # define
+ "/etc/apt/sources.list":
+ content => $custom_sources_list ? {
+ '' => template( "apt/$operatingsystem/sources.list.erb"),
+ default => $custom_sources_list
+ },
+ require => Package['lsb'];
}
apt_conf_snippet{ "02show_upgraded":
diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp
index 21dfe86..a723206 100644
--- a/manifests/preferences_snippet.pp
+++ b/manifests/preferences_snippet.pp
@@ -1,17 +1,29 @@
define apt::preferences_snippet(
$ensure = 'present',
+ $source = '',
$release,
$priority
){
include apt::preferences
+
file { "${apt::preferences::apt_preferences_dir}/${name}":
ensure => $ensure,
- content => "Package: ${name}
-Pin: release a=${release}
-Pin-Priority: ${priority}
-
-",
+ #TODO this template is somewhat limited
notify => Exec["concat_${apt::preferences::apt_preferences_dir}"],
owner => root, group => 0, mode => 0600;
}
+
+ # This should really work in the same manner as sources_list and apt_conf
+ # snippets, but since the preferences.d directory cannot be used in Debian
+ # lenny, we can't generalize without going into ugly special-casing.
+ case $source {
+ '' =>
+ File["${apt::preferences::apt_preferences_dir/${name}"] {
+ content => template("apt/preferences_snippet.erb")
+ },
+ default =>
+ File["${apt::preferences::apt_preferences_dir/${name}"] {
+ source => $source
+ }
+ }
}