eafa50692e54bf22ee229baca975ccf4bc282a6a
[puppet-modules/puppetlabs-apt.git] / manifests / backports.pp
1 # This adds the necessary components to get backports for ubuntu and debian
2 #
3 # == Parameters
4 #
5 # [*release*]
6 #   The ubuntu/debian release name. Defaults to $lsbdistcodename. Setting this
7 #   manually can cause undefined behavior. (Read: universe exploding)
8 #
9 # [*pin_priority*]
10 #   _default_: 200
11 #
12 #   The priority that should be awarded by default to all packages coming from
13 #   the Debian Backports project.
14 #
15 # == Examples
16 #
17 #   include apt::backports
18 #
19 #   class { 'apt::backports':
20 #     release => 'natty',
21 #   }
22 #
23 # == Authors
24 #
25 # Ben Hughes, I think. At least blame him if this goes wrong.
26 # I just added puppet doc.
27 #
28 # == Copyright
29 #
30 # Copyright 2011 Puppet Labs Inc, unless otherwise noted.
31 class apt::backports(
32   $release      = $::lsbdistcodename,
33   $location     = $::apt::params::backports_location,
34   $pin_priority = 200,
35 ) inherits apt::params {
36
37   if ! is_integer($pin_priority) {
38     fail('$pin_priority must be an integer')
39   }
40
41   $release_real = downcase($release)
42   $key = $::lsbdistid ? {
43     'debian' => '46925553',
44     'ubuntu' => '437D05B5',
45   }
46   $repos = $::lsbdistid ? {
47     'debian' => 'main contrib non-free',
48     'ubuntu' => 'main universe multiverse restricted',
49   }
50
51   apt::source { 'backports':
52     location   => $location,
53     release    => "${release_real}-backports",
54     repos      => $repos,
55     key        => $key,
56     key_server => 'pgp.mit.edu',
57     pin        => $pin_priority,
58   }
59 }