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}")
} }
file { "/etc/apt/apt.conf.d/${name}":
ensure => $ensure,
notify => Exec["refresh_apt"],
owner => root, group => 0, mode => 0600;
}
if $source { if $source {
file { "/etc/apt/apt.conf.d/${name}": File["/etc/apt/apt.conf.d/${name}"] {
ensure => $ensure,
source => $source, source => $source,
notify => Exec["refresh_apt"],
owner => root, group => 0, mode => 0600;
} }
} }
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,22 +84,16 @@ 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 {
'': { # include main, security and backports
config_file { # additional sources should be included via the custom_sources_template
# include main, security and backports # define
# additional sources should be included via the custom_sources_template "/etc/apt/sources.list":
# define content => $custom_sources_list ? {
"/etc/apt/sources.list": '' => template( "apt/$operatingsystem/sources.list.erb"),
content => 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":

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
}
}
} }