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:
commit
d30069c178
4 changed files with 39 additions and 29 deletions
4
files/preferences_snippet.erb
Normal file
4
files/preferences_snippet.erb
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Package: <%= name %>
|
||||||
|
Pin: release a=<%= release %>
|
||||||
|
Pin-Priority: <%= priority %>
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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":
|
||||||
|
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue