+++ /dev/null
-# This adds the necessary components to get backports for ubuntu and debian
-#
-# == Parameters
-#
-# [*release*]
-# The ubuntu/debian release name. Defaults to $lsbdistcodename. Setting this
-# manually can cause undefined behavior. (Read: universe exploding)
-#
-# [*pin_priority*]
-# _default_: 200
-#
-# The priority that should be awarded by default to all packages coming from
-# the Debian Backports project.
-#
-# == Examples
-#
-# include apt::backports
-#
-# class { 'apt::backports':
-# release => 'natty',
-# }
-#
-# == Authors
-#
-# Ben Hughes, I think. At least blame him if this goes wrong.
-# I just added puppet doc.
-#
-# == Copyright
-#
-# Copyright 2011 Puppet Labs Inc, unless otherwise noted.
-class apt::backports(
- $release = $::lsbdistcodename,
- $location = $::apt::params::backports_location,
- $pin_priority = 200,
-) inherits apt::params {
-
- if ! is_integer($pin_priority) {
- fail('$pin_priority must be an integer')
- }
-
- if $::lsbdistid == 'LinuxMint' {
- if $::lsbdistcodename == 'debian' {
- $distid = 'debian'
- $release_real = 'wheezy'
- } else {
- $distid = 'ubuntu'
- $release_real = $::lsbdistcodename ? {
- 'qiana' => 'trusty',
- 'petra' => 'saucy',
- 'olivia' => 'raring',
- 'nadia' => 'quantal',
- 'maya' => 'precise',
- }
- }
- } else {
- $distid = $::lsbdistid
- $release_real = downcase($release)
- }
-
- $key = $distid ? {
- 'debian' => '46925553',
- 'ubuntu' => '437D05B5',
- }
- $repos = $distid ? {
- 'debian' => 'main contrib non-free',
- 'ubuntu' => 'main universe multiverse restricted',
- }
-
- apt::pin { 'backports':
- before => Apt::Source['backports'],
- release => "${release_real}-backports",
- priority => $pin_priority,
- }
-
- apt::source { 'backports':
- location => $location,
- release => "${release_real}-backports",
- repos => $repos,
- key => $key,
- key_server => 'pgp.mit.edu',
- }
-}
'debian': {
case $distcodename {
'squeeze': {
- $backports_location = 'http://backports.debian.org/debian-backports'
$legacy_origin = true
$origins = ['${distro_id} oldstable', #lint:ignore:single_quote_string_with_variables
'${distro_id} ${distro_codename}-security', #lint:ignore:single_quote_string_with_variables
'${distro_id} ${distro_codename}-lts'] #lint:ignore:single_quote_string_with_variables
}
'wheezy': {
- $backports_location = 'http://ftp.debian.org/debian/'
$legacy_origin = false
$origins = ['origin=Debian,archive=stable,label=Debian-Security',
'origin=Debian,archive=oldstable,label=Debian-Security']
}
default: {
- $backports_location = 'http://http.debian.net/debian/'
$legacy_origin = false
$origins = ['origin=Debian,archive=stable,label=Debian-Security']
}
'ubuntu': {
case $distcodename {
'lucid': {
- $backports_location = 'http://us.archive.ubuntu.com/ubuntu'
$ppa_options = undef
$legacy_origin = true
$origins = ['${distro_id} ${distro_codename}-security'] #lint:ignore:single_quote_string_with_variables
}
'precise', 'trusty', 'utopic', 'vivid': {
- $backports_location = 'http://us.archive.ubuntu.com/ubuntu'
$ppa_options = '-y'
$legacy_origin = true
$origins = ['${distro_id}:${distro_codename}-security'] #lint:ignore:single_quote_string_with_variables
}
default: {
- $backports_location = 'http://old-releases.ubuntu.com/ubuntu'
$ppa_options = '-y'
$legacy_origin = true
$origins = ['${distro_id}:${distro_codename}-security'] #lint:ignore:single_quote_string_with_variables
+++ /dev/null
-require 'spec_helper'
-describe 'apt::backports', :type => :class do
-
- describe 'when asigning a custom priority to backports' do
- let :facts do
- {
- 'lsbdistcodename' => 'Karmic',
- 'lsbdistid' => 'Ubuntu',
- 'osfamily' => 'Debian'
- }
- end
-
- context 'integer priority' do
- let :params do { :pin_priority => 500 } end
-
- it { should contain_apt__source('backports').with({
- 'location' => 'http://old-releases.ubuntu.com/ubuntu',
- 'release' => 'karmic-backports',
- 'repos' => 'main universe multiverse restricted',
- 'key' => '437D05B5',
- 'key_server' => 'pgp.mit.edu',
- })
- }
-
- it { should contain_apt__pin('backports').with({
- 'release' => 'karmic-backports',
- 'priority' => 500,
- })
- }
- end
-
- context 'invalid priority' do
- let :params do { :pin_priority => 'banana' } end
- it 'should fail' do
- expect { subject }.to raise_error(/must be an integer/)
- end
- end
- end
-
- describe 'when turning on backports for ubuntu karmic' do
-
- let :facts do
- {
- 'lsbdistcodename' => 'Karmic',
- 'lsbdistid' => 'Ubuntu',
- 'osfamily' => 'Debian'
- }
- end
-
- it { should contain_apt__source('backports').with({
- 'location' => 'http://old-releases.ubuntu.com/ubuntu',
- 'release' => 'karmic-backports',
- 'repos' => 'main universe multiverse restricted',
- 'key' => '437D05B5',
- 'key_server' => 'pgp.mit.edu',
- })
- }
-
- it { should contain_apt__pin('backports').with({
- 'release' => 'karmic-backports',
- 'priority' => 200,
- })
- }
- end
-
- describe "when turning on backports for debian squeeze" do
-
- let :facts do
- {
- 'lsbdistcodename' => 'Squeeze',
- 'lsbdistid' => 'Debian',
- 'osfamily' => 'Debian'
- }
- end
-
- it { should contain_apt__source('backports').with({
- 'location' => 'http://backports.debian.org/debian-backports',
- 'release' => 'squeeze-backports',
- 'repos' => 'main contrib non-free',
- 'key' => '46925553',
- 'key_server' => 'pgp.mit.edu',
- })
- }
-
- it { should contain_apt__pin('backports').with({
- 'release' => 'squeeze-backports',
- 'priority' => 200,
- })
- }
- end
-
- describe "when turning on backports for linux mint debian edition" do
-
- let :facts do
- {
- 'lsbdistcodename' => 'debian',
- 'lsbdistid' => 'LinuxMint',
- 'osfamily' => 'Debian'
- }
- end
-
- it { should contain_apt__source('backports').with({
- 'location' => 'http://ftp.debian.org/debian/',
- 'release' => 'wheezy-backports',
- 'repos' => 'main contrib non-free',
- 'key' => '46925553',
- 'key_server' => 'pgp.mit.edu',
- })
- }
-
- it { should contain_apt__pin('backports').with({
- 'release' => 'wheezy-backports',
- 'priority' => 200,
- })
- }
- end
-
- describe "when turning on backports for linux mint 17 (ubuntu-based)" do
-
- let :facts do
- {
- 'lsbdistcodename' => 'qiana',
- 'lsbdistid' => 'LinuxMint',
- 'osfamily' => 'Debian'
- }
- end
-
- it { should contain_apt__source('backports').with({
- 'location' => 'http://us.archive.ubuntu.com/ubuntu',
- 'release' => 'trusty-backports',
- 'repos' => 'main universe multiverse restricted',
- 'key' => '437D05B5',
- 'key_server' => 'pgp.mit.edu',
- })
- }
-
- it { should contain_apt__pin('backports').with({
- 'release' => 'trusty-backports',
- 'priority' => 200,
- })
- }
- end
-
- describe "when turning on backports for debian squeeze but using your own mirror" do
-
- let :facts do
- {
- 'lsbdistcodename' => 'Squeeze',
- 'lsbdistid' => 'Debian',
- 'osfamily' => 'Debian'
- }
- end
-
- let :location do
- 'http://mirrors.example.com/debian-backports'
- end
-
- let :params do
- { 'location' => location }
- end
-
- it { should contain_apt__source('backports').with({
- 'location' => location,
- 'release' => 'squeeze-backports',
- 'repos' => 'main contrib non-free',
- 'key' => '46925553',
- 'key_server' => 'pgp.mit.edu',
- })
- }
-
- it { should contain_apt__pin('backports').with({
- 'release' => 'squeeze-backports',
- 'priority' => 200,
- })
- }
- end
-end