$release_real = downcase($release)
- apt::source { 'backports.list':
+ apt::source { 'backports':
location => $location,
release => "${release_real}-backports",
repos => $::lsbdistid ? {
# Sample Usage:
# class { 'apt': }
class apt(
- $always_apt_update = false,
- $disable_keys = undef,
- $proxy_host = false,
- $proxy_port = '8080',
- $purge_sources_list = false,
- $purge_sources_list_d = false
+ $always_apt_update = false,
+ $disable_keys = undef,
+ $proxy_host = false,
+ $proxy_port = '8080',
+ $purge_sources_list = false,
+ $purge_sources_list_d = false,
+ $purge_preferences_d = false
) {
include apt::params
include apt::update
- validate_bool($purge_sources_list, $purge_sources_list_d)
+ validate_bool($purge_sources_list, $purge_sources_list_d, $purge_preferences_d)
$sources_list_content = $purge_sources_list ? {
false => undef,
$root = $apt::params::root
$apt_conf_d = $apt::params::apt_conf_d
$sources_list_d = $apt::params::sources_list_d
+ $preferences_d = $apt::params::preferences_d
$provider = $apt::params::provider
file { 'sources.list':
notify => Exec['apt_update'],
}
+ file { 'preferences.d':
+ ensure => directory,
+ path => $preferences_d,
+ owner => root,
+ group => root,
+ purge => $purge_preferences_d,
+ recurse => $purge_preferences_d,
+ }
+
case $disable_keys {
true: {
file { '99unauth':
$ensure = present,
$packages = '*',
$priority = 0,
- $release = $name
+ $release = '',
+ $origin = ''
) {
include apt::params
$preferences_d = $apt::params::preferences_d
+ if $release != '' {
+ $pin = "release a=${release}"
+ } elsif $origin != '' {
+ $pin = "origin \"${origin}\""
+ } else {
+ $pin = "release a=${name}"
+ }
+
file { "${name}.pref":
ensure => $ensure,
- path => "${preferences_d}/${name}",
+ path => "${preferences_d}/${name}.pref",
owner => root,
group => root,
mode => '0644',
- content => "# ${name}\nPackage: ${packages}\nPin: release a=${release}\nPin-Priority: ${priority}",
+ content => template("apt/pin.pref.erb"),
}
}
# add an apt source
define apt::source(
- $ensure = present,
- $location = '',
- $release = $lsbdistcodename,
- $repos = 'main',
- $include_src = true,
+ $ensure = present,
+ $location = '',
+ $release = $lsbdistcodename,
+ $repos = 'main',
+ $include_src = true,
$required_packages = false,
- $key = false,
- $key_server = 'keyserver.ubuntu.com',
- $key_content = false,
- $key_source = false,
- $pin = false
+ $key = false,
+ $key_server = 'keyserver.ubuntu.com',
+ $key_content = false,
+ $key_source = false,
+ $pin = false
) {
include apt::params
notify => Exec['apt_update'],
}
- if ($pin != false) and ($ensure == 'present') {
- apt::pin { $release:
+
+ if ($pin != false) {
+ # Get the host portion out of the url so we can pin to origin
+ $url_split = split($location, '/')
+ $host = $url_split[2]
+
+ apt::pin { $name:
+ ensure => $ensure,
priority => $pin,
- before => File["${name}.list"]
+ before => File["${name}.list"],
+ origin => $host,
}
}
--- /dev/null
+# <%= name %>
+Package: <%= packages %>
+Pin: <%= pin %>
+Pin-Priority: <%= priority %>