summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Filion <lelutin@gmail.com>2012-09-20 03:55:58 -0400
committerGabriel Filion <lelutin@gmail.com>2012-09-20 03:55:58 -0400
commit8229505ecb20da114d76a8704f4566483c965f83 (patch)
tree542fe92e6c4f38323de1429d5c393a0c7bb82152
parent978378623d250a06441650dd969eb01f90891b64 (diff)
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>
-rw-r--r--README4
-rw-r--r--manifests/init.pp6
-rw-r--r--manifests/preferences.pp20
-rw-r--r--manifests/preferences_snippet.pp12
4 files changed, 16 insertions, 26 deletions
diff --git a/README b/README
index be80c62..05781cc 100644
--- a/README
+++ b/README
@@ -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
diff --git a/manifests/init.pp b/manifests/init.pp
index 9ce7330..3caa376 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -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'],
}
}
}
diff --git a/manifests/preferences.pp b/manifests/preferences.pp
index f188149..f766819 100644
--- a/manifests/preferences.pp
+++ b/manifests/preferences.pp
@@ -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;
}
diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp
index 6a8e6bc..1aafe57 100644
--- a/manifests/preferences_snippet.pp
+++ b/manifests/preferences_snippet.pp
@@ -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
}
}