Make apt::preferences_snippet place files in /etc/apt/preferences.d

Since Debian Squeeze, apt supports a .d directory for preferences
(pinning). Simplify management by just placing files inside this .d
directory.

This removes the need for concat and concat::fragment resources, so
removes the dependency on the concat module. It also removes the need
for a moduledir that was needed for the concat module magic, so we also
get rid of the dependency on the common module.

Signed-off-by: Gabriel Filion <lelutin@gmail.com>
This commit is contained in:
Gabriel Filion 2012-09-20 03:55:58 -04:00
parent 978378623d
commit 8229505ecb
4 changed files with 16 additions and 26 deletions

4
README
View file

@ -18,8 +18,6 @@ Ubuntu support is lagging behind but not absent either.
This module needs:
- the lsb module: git://labs.riseup.net/shared-lsb
- the common module: git://labs.riseup.net/shared-common
- the concat module: git://labs.riseup.net/shared-concat
By default, on normal hosts, this module sets the configuration option
DSelect::Clean to 'auto'. On virtual servers, the value is set by default to
@ -383,7 +381,7 @@ upgrade_package { "perl":
Resources
=========
Concat[apt_config]
File['apt_config']
------------------
Use this resource to depend on or add to a completed apt configuration

View file

@ -138,10 +138,6 @@ class apt {
# backports uses the normal archive key now
package { "debian-backports-keyring": ensure => absent }
include common::moduledir
$apt_base_dir = "${common::moduledir::module_dir_path}/apt"
modules_dir { apt: }
if $custom_key_dir {
file { "${apt_base_dir}/keys.d":
source => "$custom_key_dir",
@ -155,7 +151,7 @@ class apt {
}
if $custom_preferences != false {
Exec["custom_keys"] {
before => Concat[apt_config],
before => File['apt_config'],
}
}
}

View file

@ -1,20 +1,18 @@
class apt::preferences {
concat::fragment{"apt_preferences_header":
content => $custom_preferences ? {
'' => $operatingsystem ? {
'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"),
'ubuntu' => template("apt/${operatingsystem}/preferences_${codename}.erb"),
},
default => $custom_preferences
$pref_contents = $custom_preferences ? {
'' => $operatingsystem ? {
'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"),
'ubuntu' => template("apt/${operatingsystem}/preferences_${codename}.erb"),
},
order => 00,
target => '/etc/apt/preferences',
default => $custom_preferences
}
concat{'/etc/apt/preferences':
alias => apt_config,
file { '/etc/apt/preferences':
ensure => present,
alias => 'apt_config',
# only update together
content => $pref_contents,
require => File["/etc/apt/sources.list"],
owner => root, group => 0, mode => 0644;
}

View file

@ -23,11 +23,9 @@ define apt::preferences_snippet(
fail("apt::preferences_snippet requires either a 'pin' or 'release' argument, not both")
}
include apt::preferences
concat::fragment{"apt_preference_${name}":
file { "/etc/apt/preferences.d/${name}":
ensure => $ensure,
target => '/etc/apt/preferences',
owner => root, group => 0, mode => 0644;
}
# This should really work in the same manner as sources_list and apt_conf
@ -37,19 +35,19 @@ define apt::preferences_snippet(
'': {
case $release {
'': {
Concat::Fragment["apt_preference_${name}"]{
File["/etc/apt/preferences.d/${name}"]{
content => template("apt/preferences_snippet.erb")
}
}
default: {
Concat::Fragment["apt_preference_${name}"]{
File["/etc/apt/preferences.d/${name}"]{
content => template("apt/preferences_snippet_release.erb")
}
}
}
}
default: {
Concat::Fragment["apt_preference_${name}"]{
File["/etc/apt/preferences.d/${name}"]{
source => $source
}
}