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
This commit is contained in:
intrigeri 2010-11-21 16:31:42 +01:00
commit d30069c178
4 changed files with 39 additions and 29 deletions

View file

@ -0,0 +1,4 @@
Package: <%= name %>
Pin: release a=<%= release %>
Pin-Priority: <%= priority %>

View file

@ -10,20 +10,20 @@ define apt::apt_conf_snippet(
fail("Only one of \$source or \$content must specified for apt_conf_snippet ${name}") fail("Only one of \$source or \$content must specified for apt_conf_snippet ${name}")
} }
if $source {
file { "/etc/apt/apt.conf.d/${name}": file { "/etc/apt/apt.conf.d/${name}":
ensure => $ensure, ensure => $ensure,
source => $source,
notify => Exec["refresh_apt"], notify => Exec["refresh_apt"],
owner => root, group => 0, mode => 0600; owner => root, group => 0, mode => 0600;
} }
if $source {
File["/etc/apt/apt.conf.d/${name}"] {
source => $source,
}
} }
else { else {
file { "/etc/apt/apt.conf.d/${name}": File["/etc/apt/apt.conf.d/${name}"] {
ensure => $ensure,
content => $content, content => $content,
notify => Exec["refresh_apt"],
owner => root, group => 0, mode => 0600;
} }
} }
} }

View file

@ -84,23 +84,17 @@ class apt {
$next_codename = debian_nextcodename($codename) $next_codename = debian_nextcodename($codename)
$next_release = debian_nextrelease($release) $next_release = debian_nextrelease($release)
case $custom_sources_list {
'': {
config_file { config_file {
# include main, security and backports # include main, security and backports
# additional sources should be included via the custom_sources_template # additional sources should be included via the custom_sources_template
# define # define
"/etc/apt/sources.list": "/etc/apt/sources.list":
content => template( "apt/$operatingsystem/sources.list.erb"), content => $custom_sources_list ? {
'' => template( "apt/$operatingsystem/sources.list.erb"),
default => $custom_sources_list
},
require => Package['lsb']; require => Package['lsb'];
} }
}
default: {
config_file { "/etc/apt/sources.list":
content => $custom_sources_list,
}
}
}
apt_conf_snippet{ "02show_upgraded": apt_conf_snippet{ "02show_upgraded":
source => ["puppet:///modules/site-apt/${fqdn}/02show_upgraded", source => ["puppet:///modules/site-apt/${fqdn}/02show_upgraded",

View file

@ -1,17 +1,29 @@
define apt::preferences_snippet( define apt::preferences_snippet(
$ensure = 'present', $ensure = 'present',
$source = '',
$release, $release,
$priority $priority
){ ){
include apt::preferences include apt::preferences
file { "${apt::preferences::apt_preferences_dir}/${name}": file { "${apt::preferences::apt_preferences_dir}/${name}":
ensure => $ensure, ensure => $ensure,
content => "Package: ${name} #TODO this template is somewhat limited
Pin: release a=${release}
Pin-Priority: ${priority}
",
notify => Exec["concat_${apt::preferences::apt_preferences_dir}"], notify => Exec["concat_${apt::preferences::apt_preferences_dir}"],
owner => root, group => 0, mode => 0600; 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
}
}
} }