From 305bac588a8facb6361814198686cf52f44890c1 Mon Sep 17 00:00:00 2001
From: Bill MacAllister <whm@stanford.edu>
Date: Thu, 16 Jan 2014 07:19:28 -0800
Subject: [PATCH] syslog: add preferences for wheezy

When using v7 add an apt preferences fragment that pulls rsyslog
from backports.

This also leaves a place for redhat folks to add special processing.
---
 .../etc/apt/preferences.d/rsyslog-wheezy      | 52 +++++++++++++++++++
 manifests/syslog/config/rsyslog.pp            | 15 ++++++
 2 files changed, 67 insertions(+)
 create mode 100644 files/syslog/etc/apt/preferences.d/rsyslog-wheezy

diff --git a/files/syslog/etc/apt/preferences.d/rsyslog-wheezy b/files/syslog/etc/apt/preferences.d/rsyslog-wheezy
new file mode 100644
index 0000000..f6674c5
--- /dev/null
+++ b/files/syslog/etc/apt/preferences.d/rsyslog-wheezy
@@ -0,0 +1,52 @@
+Package: rsyslog
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: rsyslog-doc
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: rsyslog-gnutls
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: rsyslog-gssapi
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: rsyslog-mongodb
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: rsyslog-mysql
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: rsyslog-pgsql
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: rsyslog-relp
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: librelp0
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: libestr0
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: libjson0
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: liblognorm0
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
+Package: init-system-helpers
+Pin: release a=wheezy-backports
+Pin-Priority: 995
+
diff --git a/manifests/syslog/config/rsyslog.pp b/manifests/syslog/config/rsyslog.pp
index 23ce90a..9efc2d7 100644
--- a/manifests/syslog/config/rsyslog.pp
+++ b/manifests/syslog/config/rsyslog.pp
@@ -46,6 +46,21 @@ define base::syslog::config::rsyslog(
     } else {
       $rsyslog_tmpl = 'etc/rsyslog.d/20-templates.conf'
       $rsyslog_def  = 'etc/rsyslog.d/95-default.conf.erb'
+      case $::operatingsystem {
+        'debian', 'ubuntu': {
+          case $::lsbdistcodename {
+            'squeeze': {
+              fail('rsyslog v7 not supported on squeeze')
+            }
+            'wheezy': {
+              file { '/etc/apt/preferences.d':
+                ensure => present,
+                source => source => 'puppet:///modules/base/syslog/etc/apt/preferences.d/rsyslog-wheezy',
+              }
+            }
+          }
+        }
+      }
     }
     if $use_default {
       file {
-- 
GitLab