diff --git a/.gitignore b/.gitignore
index d31d1e2..1b546cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/sos-3.0.tar.gz
+SOURCES/sos-3.2.tar.gz
diff --git a/.sos.metadata b/.sos.metadata
index 3604b33..43e2b07 100644
--- a/.sos.metadata
+++ b/.sos.metadata
@@ -1 +1 @@
-03814468bf9da81897f2157ac3e7013019d73169 SOURCES/sos-3.0.tar.gz
+305adf65f683708e42114bea2d01ad8c795e2503 SOURCES/sos-3.2.tar.gz
diff --git a/SOURCES/sos-bz1001599-add-file-size-restriction-to-sar.patch b/SOURCES/sos-bz1001599-add-file-size-restriction-to-sar.patch
deleted file mode 100644
index 3ded6ea..0000000
--- a/SOURCES/sos-bz1001599-add-file-size-restriction-to-sar.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-commit 3aa158a35a4e7fe4d370c254c320455081e3b1cb
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Oct 29 14:43:02 2013 +0000
-
-    Move sar data colletion to sar plug-in
-    
-    Historically the general plug-in collected the content of the
-    /var/log/sa directory while a separate sar plug-in handles the text
-    formatted summary files.
-    
-    This makes little sense and adds to the bloat in the "general"
-    module; move the collection to the sar plug-in itself.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/general.py b/sos/plugins/general.py
-index fbf3991..d7059e6 100644
---- a/sos/plugins/general.py
-+++ b/sos/plugins/general.py
-@@ -28,7 +28,6 @@ class General(Plugin):
-             "/etc/sos.conf",
-             "/etc/sysconfig",
-             "/proc/stat",
--            "/var/log/sa",
-             "/var/log/pm/suspend.log",
-             "/var/log/up2date",
-             "/etc/hostid",
-diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py
-index c09055c..6c09323 100644
---- a/sos/plugins/sar.py
-+++ b/sos/plugins/sar.py
-@@ -33,6 +33,7 @@ class Sar(Plugin,):
-         return True
- 
-     def setup(self):
-+        self.add_copy_spec("/var/log/sa")
-         dirList = os.listdir(self.sa_path)
-         # find all the sa file that don't have an existing sar file
-         for fname in dirList:
-commit d51a2b5e3c07ddc986c41e1494dabc852d224873
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Oct 29 14:53:53 2013 +0000
-
-    Limit default sar data collection
-    
-    By default the general module will scoop up all files under the
-    /var/log/sa directory. With some configurations this path could
-    contain many GB of data.
-    
-    Use add_copy_spec_limit() by default for sar data and add a new
-    option sar.all_sar=False to allow the user to override this.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py
-index 6c09323..4f89b53 100644
---- a/sos/plugins/sar.py
-+++ b/sos/plugins/sar.py
-@@ -23,6 +23,10 @@ class Sar(Plugin,):
- 
-     packages = ('sysstat',)
-     sa_path = '/var/log/sa'
-+    option_list = [("all_sar", "gather all system activity records", "", False)]
-+
-+    # size-limit SAR data collected by default (MB)
-+    sa_size = 20
- 
-     def check_enabled(self):
-         # check to see if we are force-enabled with no sar installation
-@@ -33,7 +37,13 @@ class Sar(Plugin,):
-         return True
- 
-     def setup(self):
--        self.add_copy_spec("/var/log/sa")
-+        if self.get_option("all_sar"):
-+            self.sa_size = 0
-+
-+        self.add_copy_spec_limit("/var/log/sa/sar[0-9]*",
-+                                 sizelimit = self.sa_size)
-+        self.add_copy_spec_limit("/var/log/sa/sa[0-9]*",
-+                                 sizelimit = self.sa_size)
-         dirList = os.listdir(self.sa_path)
-         # find all the sa file that don't have an existing sar file
-         for fname in dirList:
diff --git a/SOURCES/sos-bz1001966-include-etc-yaboot-conf-in-boot.patch b/SOURCES/sos-bz1001966-include-etc-yaboot-conf-in-boot.patch
deleted file mode 100644
index 59fa097..0000000
--- a/SOURCES/sos-bz1001966-include-etc-yaboot-conf-in-boot.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-commit 04f6b8233c52cf852d6f002bc2983e7cfac7d60e
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Fri Oct 4 13:46:27 2013 +0100
-
-    Include /etc/yaboot.conf in boot plug-in
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/boot.py b/sos/plugins/boot.py
-index 6e62eac..bf50120 100644
---- a/sos/plugins/boot.py
-+++ b/sos/plugins/boot.py
-@@ -31,6 +31,7 @@ class Boot(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-             "/etc/milo.conf",
-             "/etc/silo.conf",
-             "/boot/efi/efi/redhat/elilo.conf",
-+            "/etc/yaboot.conf",
-             "/boot/yaboot.conf"
-         ])
-         self.add_cmd_output("ls -lanR /boot")
diff --git a/SOURCES/sos-bz1002943-Do-not-exit-on-interactive-mode-read-exceptions.patch b/SOURCES/sos-bz1002943-Do-not-exit-on-interactive-mode-read-exceptions.patch
deleted file mode 100644
index 4aa0c26..0000000
--- a/SOURCES/sos-bz1002943-Do-not-exit-on-interactive-mode-read-exceptions.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 4e5f11cc49d28bd678b1ec0c9c3a8df3b9ac4380 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Thu, 3 Oct 2013 17:58:07 +0100
-Subject: [PATCH 2/2] Do not exit on interactive mode read exceptions
-
-Currently the default policy object will exit without logging any
-errors if an exception (e.g. EOF while reading line) is caught
-during reads for interactive mode prompts.
-
-Instead re-set the report name to a sane value (localname) and
-attempt to continue.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/policies/__init__.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
-index 8eff993..752d480 100644
---- a/sos/policies/__init__.py
-+++ b/sos/policies/__init__.py
-@@ -455,7 +455,7 @@ class LinuxPolicy(Policy):
-                 self._print()
-             except:
-                 self._print()
--                sys.exit(0)
-+                self.report_name = localname
- 
-         if len(self.report_name) == 0:
-             self.report_name = localname
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1002943-No-TTY-should-not-imply-batch-mode.patch b/SOURCES/sos-bz1002943-No-TTY-should-not-imply-batch-mode.patch
deleted file mode 100644
index a0a2879..0000000
--- a/SOURCES/sos-bz1002943-No-TTY-should-not-imply-batch-mode.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From d975e802c6513463cc52efa0cfdfaa2d2de84adf Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Thu, 3 Oct 2013 17:57:42 +0100
-Subject: [PATCH 1/2] No TTY should not imply batch mode
-
-Commit 6ea48cbb introduced an isatty() check on stdin and
-automatically sets batch mode if we're not attached to a TTY.
-
-Although the logic of this seems simple enough the combination of
-this and commit 4b46e04 breaks valid uses that have worked since
-sos-1.x, e.g.:
-
-Traceback (most recent call last):
-  File "/usr/sbin/sosreport", line 23, in <module>
-    main(sys.argv[1:])
-  File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1171, in main
-    sos.execute()
-  File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1133, in execute
-    self._setup_logging()
-  File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 630, in _setup_logging
-    self.opts.batch = True
-  File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 324, in batch
-    self._check_options_initialized()
-  File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 229, in _check_options_initialized
-    + "from command line")
-ValueError: SoSOptions object already initialized from command line
-
-Given the actual semantics of --batch (do not prompt for or read
-user input from stdin) there is no need to enable it if stdin is
-a pipe or other non-TTY file descriptor.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/sosreport.py | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 908cbed..88c6730 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -625,10 +625,6 @@ class SoSReport(object):
-             pass
- 
-     def _setup_logging(self):
--
--        if not sys.stdin.isatty():
--            self.opts.batch = True
--
-         # main soslog
-         self.soslog = logging.getLogger('sos')
-         self.soslog.setLevel(logging.DEBUG)
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1015599-fix-dash-dash-build-regressions.patch b/SOURCES/sos-bz1015599-fix-dash-dash-build-regressions.patch
deleted file mode 100644
index b7a7d45..0000000
--- a/SOURCES/sos-bz1015599-fix-dash-dash-build-regressions.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-diff -up sos-3.0/sos/plugins/__init__.py.orig sos-3.0/sos/plugins/__init__.py
-diff -up sos-3.0/sos/policies/__init__.py.orig sos-3.0/sos/policies/__init__.py
---- sos-3.0/sos/policies/__init__.py.orig	2013-11-14 15:24:08.058501213 +0000
-+++ sos-3.0/sos/policies/__init__.py	2013-11-14 15:24:37.410610397 +0000
-@@ -252,26 +252,32 @@ No changes will be made to system config
-         to use"""
-         return "md5"
- 
--    def display_results(self, final_filename=None):
-+    def display_results(self, final_filename=None, build=False):
- 
-         # make sure a report exists
-         if not final_filename:
-            return False
- 
--        # store checksum into file
--        fp = open(final_filename + "." + get_hash_name(), "w")
--        checksum = self._create_checksum(final_filename)
--        if checksum:
--            fp.write(checksum + "\n")
--        fp.close()
--
-         self._print()
--        self._print(_("Your sosreport has been generated and saved in:\n  %s") % final_filename)
-+
-+        if not build:
-+            # store checksum into file
-+            fp = open(final_filename + "." + get_hash_name(), "w")
-+            checksum = self._create_checksum(final_filename)
-+            if checksum:
-+                fp.write(checksum + "\n")
-+            fp.close()
-+
-+            self._print(_("Your sosreport has been generated and saved in:\n  %s") % final_filename)
-+        else:
-+            checksum = None
-+            self._print(_("sosreport build tree is located at : %s" % final_filename))
-+
-         self._print()
-         if checksum:
-             self._print(_("The checksum is: ") + checksum)
-             self._print()
--        self._print(_("Please send this file to your support representative."))
-+            self._print(_("Please send this file to your support representative."))
-         self._print()
- 
-     def upload_results(self, final_filename):
-diff -up sos-3.0/sos/sosreport.py.orig sos-3.0/sos/sosreport.py
---- sos-3.0/sos/sosreport.py.orig	2013-11-14 15:23:59.718470188 +0000
-+++ sos-3.0/sos/sosreport.py	2013-11-14 15:26:54.935121843 +0000
-@@ -204,6 +204,7 @@ class SoSOptions(object):
-     _usealloptions = False
-     _upload = False
-     _batch = False
-+    _build = False
-     _verbosity = 0
-     _quiet = False
-     _debug = False
-@@ -1111,11 +1112,12 @@ class SoSReport(object):
-                     raise
- 
-     def final_work(self):
--
-+        # this must come before archive creation to ensure that log
-+        # files are closed and cleaned up at exit.
-+        self._finish_logging()
-         # package up the results for the support organization
-         if not self.opts.build:
--            self.ui_log.info(_("Creating compressed archive..."))
--
-+            print _("Creating compressed archive...")
-             # compression could fail for a number of reasons
-             try:
-                 final_filename = self.archive.finalize(self.opts.compression_type)
-@@ -1125,17 +1127,14 @@ class SoSReport(object):
-                 else:
-                     return False
- 
--            # automated submission will go here
--            if not self.opts.upload:
--                self.policy.display_results(final_filename)
--            else:
--                self.policy.upload_results(final_filename)
--
-         else:
--            self.ui_log.info(_("\n  sosreport build tree is located at : %s\n"
--                            % self.archive.get_archive_path()))
-+            final_filename = self.archive.get_archive_path()
- 
--        self._finish_logging()
-+        # automated submission will go here
-+        if not self.opts.upload:
-+            self.policy.display_results(final_filename, build = self.opts.build)
-+        else:
-+            self.policy.upload_results(final_filename)
- 
-         self.tempfile_util.clean()
- 
diff --git a/SOURCES/sos-bz1015599-restore-build-command-line-option.patch b/SOURCES/sos-bz1015599-restore-build-command-line-option.patch
deleted file mode 100644
index 06ec542..0000000
--- a/SOURCES/sos-bz1015599-restore-build-command-line-option.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-commit b65606177be6210f3f0501e5689cdbb107e0f2f7
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Nov 5 16:07:23 2013 +0000
-
-    Restore --build command line option
-    
-    Releases of sos prior to 3.0 included the '--build' option to
-    disable creation of a compressed archive and to leave the
-    temporary build tree in place. This was removed with the
-    reorganisation of the archive classes to support in-line
-    archiving. Since all supported policies are now using an archive
-    that derives from FileCacheArchive (commit 0178d5f) the option
-    can be re-introduced.
-    
-    Archive classes that do not accumulate files in a temporary
-    directory will return the path to the in-progress archive file.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/archive.py b/sos/archive.py
-index 4291660..28bf197 100644
---- a/sos/archive.py
-+++ b/sos/archive.py
-@@ -65,6 +65,15 @@ class Archive(object):
-         to be included in the generated archive."""
-         raise NotImplementedError
- 
-+    def get_archive_path(self):
-+        """Return a string representing the path to the temporary
-+        archive. For archive classes that implement in-line handling
-+        this will be the archive file itself. Archives that use a
-+        directory based cache prior to packaging should return the
-+        path to the temporary directory where the report content is
-+        located"""
-+        pass
-+
-     def cleanup(self):
-         """Clean up any temporary resources used by an Archive class."""
-         pass
-@@ -81,7 +90,7 @@ class FileCacheArchive(Archive):
- 
-     _tmp_dir = ""
-     _archive_root = ""
--    _archive_path = ""
-+    _archive_name = ""
-     
-     def __init__(self, name, tmpdir):
-         self._name = name
-@@ -146,6 +155,9 @@ class FileCacheArchive(Archive):
-     def get_tmp_dir(self):
-         return self._archive_root
- 
-+    def get_archive_path(self):
-+        return self._archive_root
-+
-     def makedirs(self, path, mode=0700):
-         self._makedirs(self.dest_path(path))
-         self.log.debug("created directory at %s in FileCacheArchive %s"
-@@ -162,8 +174,8 @@ class FileCacheArchive(Archive):
-         self.log.debug("finalizing archive %s" % self._archive_root)
-         self._build_archive()
-         self.cleanup()
--        self.log.debug("built archive at %s (size=%d)" % (self._archive_path,
--        os.stat(self._archive_path).st_size))
-+        self.log.debug("built archive at %s (size=%d)" % (self._archive_name,
-+        os.stat(self._archive_name).st_size))
-         return self._compress()
- 
- class TarFileArchive(FileCacheArchive):
-@@ -174,7 +186,7 @@ class TarFileArchive(FileCacheArchive):
-     def __init__(self, name, tmpdir):
-         super(TarFileArchive, self).__init__(name, tmpdir)
-         self._suffix = "tar"
--        self._archive_path = os.path.join(tmpdir, self.name())
-+        self._archive_name = os.path.join(tmpdir, self.name())
- 
-     def set_tarinfo_from_stat(self, tar_info, fstat, mode=None):
-         tar_info.mtime = fstat.st_mtime
-@@ -218,7 +230,7 @@ class TarFileArchive(FileCacheArchive):
-         old_pwd = os.getcwd()
-         old_umask = os.umask(0077)
-         os.chdir(self._tmp_dir)
--        tar = tarfile.open(self._archive_path, mode="w")
-+        tar = tarfile.open(self._archive_name, mode="w")
-         tar.add(os.path.split(self._name)[1], filter=self.copy_permissions_filter)
-         tar.close()
-         os.umask(old_umask)
-diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
-index 983842d..6de93fb 100644
---- a/sos/policies/__init__.py
-+++ b/sos/policies/__init__.py
-@@ -205,12 +205,6 @@ No changes will be made to system configuration.
-         """
-         pass
- 
--    def package_results(self, package_name):
--        """
--        This function is called prior to packaging.
--        """
--        pass
--
-     def post_work(self):
-         """
-         This function is called after the sosreport has been generated.
-@@ -476,5 +470,3 @@ class LinuxPolicy(Policy):
-         
-         return
- 
--    def package_results(self, archive_filename):
--        self._print(_("Creating compressed archive..."))
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 49e9d92..42be3ee 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -327,6 +327,19 @@ class SoSOptions(object):
-         self._batch = value
- 
-     @property
-+    def build(self):
-+        if self._options != None:
-+            return self._options.build
-+        return self._build
-+
-+    @build.setter
-+    def build(self):
-+        self._check_options_initialized()
-+        if not isinstance(value, bool):
-+            raise TypeError("SoSOptions.build expects a boolean")
-+        self._build = value
-+
-+    @property
-     def verbosity(self):
-         if self._options != None:
-             return self._options.verbosity
-@@ -476,6 +489,9 @@ class SoSOptions(object):
-         parser.add_option("--batch", action="store_true",
-                              dest="batch", default=False,
-                              help="batch mode - do not prompt interactively")
-+        parser.add_option("--build", action="store_true", \
-+                             dest="build", default=False, \
-+                             help="keep sos tree available and dont package results")
-         parser.add_option("-v", "--verbose", action="count",
-                              dest="verbosity",
-                              help="increase verbosity")
-@@ -1097,24 +1113,29 @@ class SoSReport(object):
-     def final_work(self):
- 
-         # package up the results for the support organization
--        self.policy.package_results(self.archive.name())
-+        if not self.opts.build:
-+            self.ui_log.info(_("Creating compressed archive..."))
- 
--        self._finish_logging()
-+            # compression could fail for a number of reasons
-+            try:
-+                final_filename = self.archive.finalize(self.opts.compression_type)
-+            except:
-+                if self.opts.debug:
-+                    raise
-+                else:
-+                    return False
- 
--        # compression could fail for a number of reasons
--        try:
--            final_filename = self.archive.finalize(self.opts.compression_type)
--        except:
--            if self.opts.debug:
--                raise
-+            # automated submission will go here
-+            if not self.opts.upload:
-+                self.policy.display_results(final_filename)
-             else:
--                return False
-+                self.policy.upload_results(final_filename)
- 
--        # automated submission will go here
--        if not self.opts.upload:
--            self.policy.display_results(final_filename)
-         else:
--            self.policy.upload_results(final_filename)
-+            self.ui_log.info(_("\n  sosreport build tree is located at : %s\n"
-+                            % self.archive.get_archive_path()))
-+
-+        self._finish_logging()
- 
-         self.tempfile_util.clean()
- 
diff --git a/SOURCES/sos-bz1015606-remove-version-checks-in-gluster.patch b/SOURCES/sos-bz1015606-remove-version-checks-in-gluster.patch
deleted file mode 100644
index 4a9a58a..0000000
--- a/SOURCES/sos-bz1015606-remove-version-checks-in-gluster.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-commit 038609bacd8fc6a21eb50f7722f13baa5884a6bb
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Oct 29 16:03:03 2013 +0000
-
-    Remove version checks in gluster plug-in
-    
-    Current distributions do not include the legac package versions
-    that the plug-in was checking for.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py
-index a535d79..7c54fa0 100644
---- a/sos/plugins/gluster.py
-+++ b/sos/plugins/gluster.py
-@@ -80,22 +80,8 @@ class Gluster(Plugin, RedHatPlugin):
-     def setup(self):
-         self.add_cmd_output("gluster peer status")
- 
--        # check package version handling rename of glusterfs-core -> glusterfs
--        pkg = self.policy().pkg_by_name("glusterfs-core");
--        if not pkg:
--            pkg = self.policy().pkg_by_name("glusterfs");
--            # need to handle "no package" case for users who enable with -e/-o
--            if not pkg:
--                return
--
--        gluster_major = int((pkg["version"])[:1])
--        gluster_minor = int((pkg["version"])[2:3])
--        if (gluster_major == 3) and (gluster_minor <= 2):
--            self.add_copy_spec("/etc/glusterd/")
--            self.add_forbidden_path("/etc/glusterd/geo-replication/secret.pem")
--        else:
--            self.add_copy_spec("/var/lib/glusterd/")
--            self.add_forbidden_path("/var/lib/glusterd/geo-replication/secret.pem")
-+        self.add_copy_spec("/var/lib/glusterd/")
-+        self.add_forbidden_path("/var/lib/glusterd/geo-replication/secret.pem")
- 
-         # collect unified file and object storage configuration
-         self.add_copy_spec("/etc/swift/")
diff --git a/SOURCES/sos-bz1019235-remove-useless-os-path-check-for-brctl.patch b/SOURCES/sos-bz1019235-remove-useless-os-path-check-for-brctl.patch
deleted file mode 100644
index eb08c01..0000000
--- a/SOURCES/sos-bz1019235-remove-useless-os-path-check-for-brctl.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-commit 923a68777927eaaee3c5fa289053ac3a87d353f9
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Oct 15 17:00:09 2013 +0100
-
-    Remove useless os.path.exists check for brctl executable
-    
-    The networking module previously checked that its hard-coded path
-    for the brctl command existed before collecting output. This was
-    missed in the conversion to using policy defined PATH search for
-    external commands in commit e0d132e.
-    
-    Similar problems were fixed in commits 8b10cb0, 374da99, 8883155.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py
-index 90e1b58..9724a4f 100644
---- a/sos/plugins/networking.py
-+++ b/sos/plugins/networking.py
-@@ -111,12 +111,11 @@ class Networking(Plugin):
-                 self.add_cmd_output("ethtool -c "+eth)
-                 self.add_cmd_output("ethtool -g "+eth)
- 
--        if os.path.exists("brctl"):
--            brctl_file=self.add_cmd_output("brctl show")
--            brctl_out=self.call_ext_prog("brctl show")
--            if brctl_out:
--                for br_name in self.get_bridge_name(brctl_out):
--                    self.add_cmd_output("brctl showstp "+br_name)
-+        brctl_file=self.add_cmd_output("brctl show")
-+        brctl_out=self.call_ext_prog("brctl show")
-+        if brctl_out:
-+            for br_name in self.get_bridge_name(brctl_out):
-+                self.add_cmd_output("brctl showstp "+br_name)
- 
-         if self.get_option("traceroute"):
-             self.add_cmd_output("/bin/traceroute -n %s" % self.trace_host)
diff --git a/SOURCES/sos-bz1019338-remove-pipe-communicate-newline-workaround.patch b/SOURCES/sos-bz1019338-remove-pipe-communicate-newline-workaround.patch
deleted file mode 100644
index fa76a4e..0000000
--- a/SOURCES/sos-bz1019338-remove-pipe-communicate-newline-workaround.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-commit 25bd83cda4ef1a5c89d95282c9f8fdc6cb9181d5
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Oct 15 17:26:12 2013 +0100
-
-    Remove obsolete workaround for newline added by pipe.communicate()
-    
-    Older versions of the python runtime would add a newline to output
-    obtained via pipe.communicate(). Current versions do not leading
-    to output being stored in reports without a trailing newline
-    character.
-    
-    Remove the workaround to ensure that stored content matches that
-    obtained via simple shell redirection ("/some/command > file").
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/utilities.py b/sos/utilities.py
-index 4279b12..fcc78c5 100644
---- a/sos/utilities.py
-+++ b/sos/utilities.py
-@@ -161,8 +161,6 @@ def sos_get_command_output(command, timeout=300):
-                 stdout=PIPE, stderr=STDOUT,
-                 bufsize=-1, env = cmd_env)
-         stdout, stderr = p.communicate()
--        # hack to delete trailing '\n' added by p.communicate()
--        if stdout[-1:] == '\n': stdout = stdout[:-1]
-         return (p.returncode, stdout, 0)
-     else:
-         return (127, "", 0)
diff --git a/SOURCES/sos-bz1019356-fix-alloptions.patch b/SOURCES/sos-bz1019356-fix-alloptions.patch
deleted file mode 100644
index 1f4b963..0000000
--- a/SOURCES/sos-bz1019356-fix-alloptions.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit d1bedc1ef48f6abe6f582336e275468a1e3634b9
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Oct 30 12:22:03 2013 +0000
-
-    Fix --alloptions
-    
-    During the re-organisation of sosreport.py the code to apply all
-    boolean options to plug-ins was factored out into its own
-    function, _set_all_options() however this was never called from
-    the main execute() method. Fix this to allow the option to work
-    as previously.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 3fb60c7..1b13826 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -290,7 +290,7 @@ class SoSOptions(object):
-     @property
-     def usealloptions(self):
-         if self._options != None:
--            return _options.usealloptions
-+            return self._options.usealloptions
-         return self._usealloptions
- 
-     @usealloptions.setter
-@@ -1136,6 +1136,7 @@ class SoSReport(object):
-             self.policy.set_commons(self.get_commons())
-             self.print_header()
-             self.load_plugins()
-+            self._set_all_options()
-             self._set_tunables()
-             self._check_for_unknown_plugins()
-             self._set_plugin_options()
diff --git a/SOURCES/sos-bz1019516-fix-config-file-regression.patch b/SOURCES/sos-bz1019516-fix-config-file-regression.patch
deleted file mode 100644
index 1952406..0000000
--- a/SOURCES/sos-bz1019516-fix-config-file-regression.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-commit ef485ea1d610a0679f86b39e39e7955f00b4351d
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Oct 30 15:05:56 2013 +0000
-
-    Fix config file regression
-    
-    Changes in the organisation of sos in commit 6ea48cb broke the
-    reading of custom configuration files (either the default
-    /etc/sos.conf or one specified on the command line using
-    --config-file):
-    
-    Traceback (most recent call last):
-      File "/usr/sbin/sosreport", line 23, in <module>
-        main(sys.argv[1:])
-      File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1167, in main
-        sos.execute()
-      File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1133, in execute
-        self._set_tunables()
-      File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 798, in _set_tunables
-        if not opt.split('.')[0] in self.disabled:
-    AttributeError: 'SoSReport' object has no attribute 'disabled'
-    
-    The code attempts to reference the obsolete 'disabled' list of
-    plug-ins (rather than calling self._get_disabled_plugins()) and
-    failed to initialise the plugopts list to an empty deque.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 1b13826..afe61f2 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -465,7 +465,8 @@ class SoSOptions(object):
-                              help="enable these plugins only", default = deque())
-         parser.add_option("-k", "--plugin-option", action="append",
-                              dest="plugopts", type="string",
--                             help="plugin options in plugname.option=value format (see -l)")
-+                             help="plugin options in plugname.option=value format (see -l)",
-+                             default = deque())
-         parser.add_option("-a", "--alloptions", action="store_true",
-                              dest="usealloptions", default=False,
-                              help="enable all options for loaded plugins")
-@@ -801,7 +802,7 @@ class SoSReport(object):
-                 self.opts.plugopts = deque()
- 
-             for opt, val in self.config.items("tunables"):
--                if not opt.split('.')[0] in self.disabled:
-+                if not opt.split('.')[0] in self._get_disabled_plugins():
-                     self.opts.plugopts.append(opt + "=" + val)
-         if self.opts.plugopts:
-             opts = {}
diff --git a/SOURCES/sos-bz1019517-check-for-usable-temporary-directory.patch b/SOURCES/sos-bz1019517-check-for-usable-temporary-directory.patch
deleted file mode 100644
index e91e849..0000000
--- a/SOURCES/sos-bz1019517-check-for-usable-temporary-directory.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-commit 0c9eef9d1270b9197a609ac46fdd5837c04a90dd
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Oct 30 12:02:51 2013 +0000
-
-    Check for usable temporary directory
-    
-    A user may override the sos temporary directory via --tmp-dir to
-    a non-existent or unwritable location. Check for this before
-    initialising temporary files and exit with an error message.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 88c6730..3fb60c7 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -534,6 +534,12 @@ class SoSReport(object):
-         self.policy = sos.policies.load()
-         self._is_root = self.policy.is_root()
-         self.tmpdir = self.policy.get_tmp_dir(self.opts.tmp_dir)
-+        if not os.path.isdir(self.tmpdir) \
-+        or not os.access(self.tmpdir, os.W_OK):
-+            # write directly to stderr as logging is not initialised yet
-+            sys.stderr.write("temporary directory %s " % self.tmpdir \
-+                        + "does not exist or is not writable\n")
-+            self._exit(1)
-         self.tempfile_util = TempFileUtil(self.tmpdir)
-         self._set_directories()
- 
diff --git a/SOURCES/sos-bz1019863-rpm-restricted-verify.patch b/SOURCES/sos-bz1019863-rpm-restricted-verify.patch
deleted file mode 100644
index daa343c..0000000
--- a/SOURCES/sos-bz1019863-rpm-restricted-verify.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-commit 1b3fc3f029ed3ab1dcbfeaaaa8fe1616dbc3744f
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Jul 30 19:30:13 2013 +0100
-
-    Add restricted rpm verify
-    
-    Add a default call to rpm -V/--verify for a targeted subset of
-    packages. This greatly reduces the time taken relative to rpm -Va
-    while still capturing important diagnostic information.
-    
-    In future this capability could be made a feature of the
-    PackageManager class interface and available to all ports/modules.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/rpm.py b/sos/plugins/rpm.py
-index 9d44fde..a315018 100644
---- a/sos/plugins/rpm.py
-+++ b/sos/plugins/rpm.py
-@@ -23,6 +23,8 @@ class Rpm(Plugin, RedHatPlugin):
-     option_list = [("rpmq", "queries for package information via rpm -q", "fast", True),
-                   ("rpmva", "runs a verify on all packages", "slow", False)]
- 
-+    verify_list = [ 'kernel', 'glibc', 'pam_.*' ]
-+
-     def setup(self):
-         self.add_copy_spec("/var/log/rpmpkgs")
- 
-@@ -36,3 +38,9 @@ class Rpm(Plugin, RedHatPlugin):
- 
-         if self.get_option("rpmva"):
-             self.add_cmd_output("rpm -Va", root_symlink = "rpm-Va", timeout = 3600)
-+        else:
-+            pkgs_by_regex = self.policy().package_manager.all_pkgs_by_name_regex
-+            verify_list = map(pkgs_by_regex, self.verify_list)
-+            for pkg_list in verify_list:
-+                for pkg in pkg_list:
-+                    self.add_cmd_output("rpm -V %s" % pkg)
-commit 1a73d5932a3f8153a9d1440c931823720e7e6245
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Aug 13 21:54:27 2013 +0100
-
-    Add new patterns to the RPM plug-in verify list
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/rpm.py b/sos/plugins/rpm.py
-index a315018..71f36a0 100644
---- a/sos/plugins/rpm.py
-+++ b/sos/plugins/rpm.py
-@@ -23,7 +23,13 @@ class Rpm(Plugin, RedHatPlugin):
-     option_list = [("rpmq", "queries for package information via rpm -q", "fast", True),
-                   ("rpmva", "runs a verify on all packages", "slow", False)]
- 
--    verify_list = [ 'kernel', 'glibc', 'pam_.*' ]
-+    verify_list = [
-+        'kernel', 'glibc', 'initscripts',
-+        'pam_.*',
-+        'java.*', 'perl.*',
-+        'rpm', 'yum',
-+        'spacewalk.*',
-+    ]
- 
-     def setup(self):
-         self.add_copy_spec("/var/log/rpmpkgs")
-commit ffcde57daa6f6cbbfd9cb588ab64eb485d07d9ca
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Oct 16 19:12:58 2013 +0100
-
-    Verify fewer packages in rpm plug-in
-    
-    The current default set of packages to verify includes debuginfo
-    and devel subpackages. Filter these out to reduce the time spent
-    running rpm -V.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/rpm.py b/sos/plugins/rpm.py
-index 71f36a0..55c8019 100644
---- a/sos/plugins/rpm.py
-+++ b/sos/plugins/rpm.py
-@@ -24,7 +24,7 @@ class Rpm(Plugin, RedHatPlugin):
-                   ("rpmva", "runs a verify on all packages", "slow", False)]
- 
-     verify_list = [
--        'kernel', 'glibc', 'initscripts',
-+        'kernel$', 'glibc', 'initscripts',
-         'pam_.*',
-         'java.*', 'perl.*',
-         'rpm', 'yum',
-@@ -49,4 +49,7 @@ class Rpm(Plugin, RedHatPlugin):
-             verify_list = map(pkgs_by_regex, self.verify_list)
-             for pkg_list in verify_list:
-                 for pkg in pkg_list:
-+                    if 'debuginfo' in pkg \
-+                    or pkg.endswith('-debuginfo-common'):
-+                        continue
-                     self.add_cmd_output("rpm -V %s" % pkg)
diff --git a/SOURCES/sos-bz1025236-add-powerpc-plugin.patch b/SOURCES/sos-bz1025236-add-powerpc-plugin.patch
deleted file mode 100644
index 8b68bc6..0000000
--- a/SOURCES/sos-bz1025236-add-powerpc-plugin.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-commit dac86b921fafecc81fbd492af177d9260cddfe20
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Oct 30 13:57:22 2013 +0000
-
-    This patch defines a new PowerPC Plugin to collect generic Power logs.
-    Based on further platform checks,IBM Power System specific logs and
-    commands will be collected. This would help IBM Power system users to
-    collect system data in one shot by running sosreport.
-    
-    Signed-off-by: Bharani C.V. <bharanve@linux.vnet.ibm.com>
-    Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-    
-    ---
-     sos/plugins/powerpc.py |   73 ++++++++++++++++++++++++++++++++++++++++++++++++
-     1 file changed, 73 insertions(+)
-     create mode 100644 sos/plugins/powerpc.py
-
-diff --git a/sos/plugins/powerpc.py b/sos/plugins/powerpc.py
-new file mode 100644
-index 0000000..974baa1
---- /dev/null
-+++ b/sos/plugins/powerpc.py
-@@ -0,0 +1,73 @@
-+### This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published by
-+## the Free Software Foundation; either version 2 of the License, or
-+## (at your option) any later version.
-+
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+
-+## You should have received a copy of the GNU General Public License
-+## along with this program; if not, write to the Free Software
-+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+## This plugin enables collection of logs for Power systems and more
-+## specific logs for Pseries, PowerNV platforms.
-+
-+import os
-+from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin
-+
-+class PowerPC(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
-+    """IBM Power System related information
-+    """
-+
-+    plugin_name = 'powerpc'
-+
-+    def check_enabled(self):
-+	return (self.policy().get_arch() == "ppc64")
-+
-+    def setup(self):
-+	try:
-+		with open('/proc/cpuinfo', 'r') as fp:
-+			contents = fp.read()
-+			ispSeries = "pSeries" in contents
-+			isPowerNV = "PowerNV" in contents
-+	except:
-+		ispSeries = False
-+		isPowerNV = False
-+
-+	if ispSeries or isPowerNV:
-+		self.add_copy_spec("/proc/device-tree/")
-+		self.add_copy_spec("/proc/loadavg")
-+		self.add_copy_spec("/proc/locks")
-+		self.add_copy_spec("/proc/misc")
-+		self.add_copy_spec("/proc/swaps")
-+		self.add_copy_spec("/proc/version")
-+		self.add_copy_spec("/dev/nvram")
-+		self.add_copy_spec("/var/log/platform")
-+		self.add_cmd_output("ppc64_cpu --smt")
-+		self.add_cmd_output("ppc64_cpu --cores-present")
-+		self.add_cmd_output("ppc64_cpu --cores-on")
-+		self.add_cmd_output("ppc64_cpu --run-mode")
-+		self.add_cmd_output("ppc64_cpu --frequency")
-+		self.add_cmd_output("ppc64_cpu --dscr")
-+
-+	if ispSeries:
-+		self.add_copy_spec("/proc/ppc64/lparcfg")
-+		self.add_copy_spec("/proc/ppc64/eeh")
-+		self.add_copy_spec("/proc/ppc64/systemcfg")
-+		self.add_cmd_output("lscfg -vp")
-+		self.add_cmd_output("lsmcode -A")
-+		self.add_cmd_output("lsvpd --debug")
-+		self.add_cmd_output("lsvio -des")
-+		self.add_cmd_output("servicelog --dump")
-+		self.add_cmd_output("servicelog_notify --list")
-+		self.add_cmd_output("usysattn")
-+		self.add_cmd_output("usysident")
-+		self.add_cmd_output("serv_config -l")
-+		self.add_cmd_output("bootlist -m both -r")
-+		self.add_cmd_output("lparstat -i")
-+
-+	if isPowerNV:
-+		self.add_copy_spec("/proc/ppc64/")
diff --git a/SOURCES/sos-bz1026829-collect-var-log-squid.patch b/SOURCES/sos-bz1026829-collect-var-log-squid.patch
deleted file mode 100644
index 74c155b..0000000
--- a/SOURCES/sos-bz1026829-collect-var-log-squid.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-commit 8d45d18afb87dbe7b1d864fabd36c58fad905f82
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Aug 12 20:31:51 2013 +0100
-
-    Collect /var/log/squid in squid plug-in
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/squid.py b/sos/plugins/squid.py
-index 254a1be..4f6310f 100644
---- a/sos/plugins/squid.py
-+++ b/sos/plugins/squid.py
-@@ -25,5 +25,6 @@ class Squid(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-     packages = ('squid',)
- 
-     def setup(self):
--        self.add_copy_spec_limit("/etc/squid/squid.conf",
-+        self.add_copy_spec("/etc/squid/squid.conf")
-+        self.add_copy_spec_limit("/var/log/squid",
-                         sizelimit=self.get_option('logsize'))
diff --git a/SOURCES/sos-bz1026869-collect-proc-self-mountstats.patch b/SOURCES/sos-bz1026869-collect-proc-self-mountstats.patch
deleted file mode 100644
index 2098e2c..0000000
--- a/SOURCES/sos-bz1026869-collect-proc-self-mountstats.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit 78909be8385a74e807b705821296a94cb09cb8ca
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Aug 12 18:33:49 2013 +0100
-
-    Collect /proc/self/mountstats and /proc/self/mountinfo
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/filesys.py b/sos/plugins/filesys.py
-index 0ca3166..b8d6bab 100644
---- a/sos/plugins/filesys.py
-+++ b/sos/plugins/filesys.py
-@@ -31,6 +31,8 @@ class Filesys(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-             "/proc/filesystems",
-             "/etc/fstab",
-             "/proc/self/mounts",
-+            "/proc/self/mountinfo",
-+            "/proc/self/mountstats",
-             "/proc/mounts"
-         ])
-         self.add_cmd_output("mount -l", root_symlink = "mount")
diff --git a/SOURCES/sos-bz1026906-nis-add-domainname-output.patch b/SOURCES/sos-bz1026906-nis-add-domainname-output.patch
deleted file mode 100644
index 82c5301..0000000
--- a/SOURCES/sos-bz1026906-nis-add-domainname-output.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-commit 1aa497258ebb8c85eed9d38ba19173c054b77043
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Nov 5 16:16:33 2013 +0000
-
-    Add domainname output to the NIS plug-in
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/nis.py b/sos/plugins/nis.py
-index 5439b8f..baa71e8 100644
---- a/sos/plugins/nis.py
-+++ b/sos/plugins/nis.py
-@@ -29,3 +29,4 @@ class Nis(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-     def setup(self):
-         self.add_copy_spec("/etc/yp*.conf")
-         self.add_copy_spec("/var/yp/*")
-+        self.add_cmd_output("domainname")
diff --git a/SOURCES/sos-bz1026959-collect-saved-vmcore-dmesg.patch b/SOURCES/sos-bz1026959-collect-saved-vmcore-dmesg.patch
deleted file mode 100644
index 05c82cb..0000000
--- a/SOURCES/sos-bz1026959-collect-saved-vmcore-dmesg.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-commit 557a5397304327abe2039229a2bd23bb489ea879
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Aug 13 18:46:47 2013 +0100
-
-    Collect saved vmcore-dmesg.txt files in kdump plug-in
-    
-    Recent versions of kexec-utils automatically generate a text
-    file containing the dmesg buffer of the captured vmcore.
-    
-    This is useful for first-fault debugging and should be included.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/kdump.py b/sos/plugins/kdump.py
-index 73e5d5e..81ce574 100644
---- a/sos/plugins/kdump.py
-+++ b/sos/plugins/kdump.py
-@@ -23,7 +23,7 @@ class KDump(Plugin):
-     def setup(self):
-         self.add_copy_specs([
-             "/proc/cmdline"
--            ])
-+        ])
- 
- class RedHatKDump(KDump, RedHatPlugin):
-     """Kdump related information for Red Hat distributions
-@@ -35,7 +35,9 @@ class RedHatKDump(KDump, RedHatPlugin):
-     def setup(self):
-         self.add_copy_specs([
-             "/etc/kdump.conf",
--            "/etc/udev/rules.d/*kexec.rules"])
-+            "/etc/udev/rules.d/*kexec.rules",
-+            "/var/crash/*/vmcore-dmesg.txt"
-+        ])
- 
- class DebianKDump(KDump, DebianPlugin, UbuntuPlugin):
-     """Kdump related information for Debian distributions
-@@ -47,4 +49,4 @@ class DebianKDump(KDump, DebianPlugin, UbuntuPlugin):
-     def setup(self):
-         self.add_copy_specs([
-             "/etc/default/kdump-tools"
--            ])
-+        ])
diff --git a/SOURCES/sos-bz1026962-ctdb-fix-redhatplugin-tagging-use.patch b/SOURCES/sos-bz1026962-ctdb-fix-redhatplugin-tagging-use.patch
new file mode 100644
index 0000000..9164028
--- /dev/null
+++ b/SOURCES/sos-bz1026962-ctdb-fix-redhatplugin-tagging-use.patch
@@ -0,0 +1,42 @@
+From 12ec2a4643c844a7a9bf46f3d9557e38f0ae7403 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Mon, 19 Jan 2015 18:47:03 +0000
+Subject: [PATCH] [ctdb] fix RedHatPlugin tagging use
+
+The generic Ctdb class is tagged with RedHatPlugin. This causes
+the RedHatCtdb to not execute (since only the first matching class
+is instantiated).
+
+Remove the RedHatPlugin tag from the Ctdb class and fix the
+former's call to Ctdb.setup().
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/ctdb.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sos/plugins/ctdb.py b/sos/plugins/ctdb.py
+index 443181c..e1bd78e 100644
+--- a/sos/plugins/ctdb.py
++++ b/sos/plugins/ctdb.py
+@@ -16,7 +16,7 @@
+ from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+ 
+ 
+-class Ctdb(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
++class Ctdb(Plugin, DebianPlugin, UbuntuPlugin):
+     """Samba Clustered TDB
+     """
+     packages = ('ctdb',)
+@@ -45,7 +45,7 @@ class Ctdb(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+ 
+ class RedHatCtdb(Ctdb, RedHatPlugin):
+     def setup(self):
+-        super(RedHatCtdb, self).super()
++        super(RedHatCtdb, self).setup()
+         self.add_copy_spec("/etc/sysconfig/ctdb")
+ 
+ # vim: et ts=4 sw=4
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1026962-plugin-limit-names-to-pc_name_max.patch b/SOURCES/sos-bz1026962-plugin-limit-names-to-pc_name_max.patch
new file mode 100644
index 0000000..fca14ce
--- /dev/null
+++ b/SOURCES/sos-bz1026962-plugin-limit-names-to-pc_name_max.patch
@@ -0,0 +1,118 @@
+From 48a99c95078bab306cb56bb1a05420d88bf15a64 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Mon, 20 Oct 2014 16:12:01 +0100
+Subject: [PATCH] [plugin] limit names to PC_NAME_MAX
+
+Commit 8bf7b0c removed the truncation of mangled command names to
+64 chars. This causes problems for some plugins (e.g. Issue #415)
+that generate long enough command lines to hit system name length
+limits.
+
+Instead of arbitrarily limiting to 64 characters limit to the
+lesser of the archive format limit (if present) or the value of
+PC_NAME_MAX for any intermediate FileCacheArchive path.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/archive.py          | 18 ++++++++++++++++++
+ sos/plugins/__init__.py |  7 ++++---
+ tests/plugin_tests.py   | 12 ++++++++----
+ 3 files changed, 30 insertions(+), 7 deletions(-)
+
+diff --git a/sos/archive.py b/sos/archive.py
+index 2e42bbd..6063625 100644
+--- a/sos/archive.py
++++ b/sos/archive.py
+@@ -98,6 +98,12 @@ class Archive(object):
+         to be included in the generated archive."""
+         raise NotImplementedError
+ 
++    def name_max(self):
++        """Return the maximum file name length this archive can support.
++        This is the lesser of the name length limit of the archive
++        format and any temporary file system based cache."""
++        raise NotImplementedError
++
+     def get_archive_path(self):
+         """Return a string representing the path to the temporary
+         archive. For archive classes that implement in-line handling
+@@ -206,6 +212,13 @@ class FileCacheArchive(Archive):
+     def _makedirs(self, path, mode=0o700):
+         os.makedirs(path, mode)
+ 
++    def name_max(self):
++        if 'PC_NAME_MAX' in os.pathconf_names:
++            pc_name_max = os.pathconf_names['PC_NAME_MAX']
++            return os.pathconf(self._archive_root, pc_name_max)
++        else:
++            return 255
++
+     def get_tmp_dir(self):
+         return self._archive_root
+ 
+@@ -355,6 +368,11 @@ class TarFileArchive(FileCacheArchive):
+     def name(self):
+         return "%s.%s" % (self._name, self._suffix)
+ 
++    def name_max(self):
++        # GNU Tar format supports unlimited file name length. Just return
++        # the limit of the underlying FileCacheArchive.
++        return super(TarFileArchive, self).name_max()
++
+     def _build_archive(self):
+         # python2.6 TarFile lacks the filter parameter
+         if not six.PY3 and sys.version_info[1] < 7:
+diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
+index 3e39100..b289144 100644
+--- a/sos/plugins/__init__.py
++++ b/sos/plugins/__init__.py
+@@ -42,11 +42,11 @@ def regex_findall(regex, fname):
+         return []
+ 
+ 
+-def _mangle_command(command):
+-    # FIXME: this can be improved
++def _mangle_command(command, name_max):
+     mangledname = re.sub(r"^/(usr/|)(bin|sbin)/", "", command)
+     mangledname = re.sub(r"[^\w\-\.\/]+", "_", mangledname)
+     mangledname = re.sub(r"/", ".", mangledname).strip(" ._-")
++    mangledname = mangledname[0:name_max]
+     return mangledname
+ 
+ 
+@@ -518,7 +518,8 @@ class Plugin(object):
+         return grep(regexp, *fnames)
+ 
+     def _mangle_command(self, exe):
+-        return _mangle_command(exe)
++        name_max = self.archive.name_max()
++        return _mangle_command(exe, name_max)
+ 
+     def _make_command_filename(self, exe):
+         """The internal function to build up a filename based on a command."""
+diff --git a/tests/plugin_tests.py b/tests/plugin_tests.py
+index 817e4f2..f73a003 100644
+--- a/tests/plugin_tests.py
++++ b/tests/plugin_tests.py
+@@ -115,10 +115,14 @@ class PluginToolTests(unittest.TestCase):
+         self.assertEquals(matches, [])
+ 
+     def test_mangle_command(self):
+-        self.assertEquals("foo", _mangle_command("/usr/bin/foo"))
+-        self.assertEquals("foo_-x", _mangle_command("/usr/bin/foo -x"))
+-        self.assertEquals("foo_--verbose", _mangle_command("/usr/bin/foo --verbose"))
+-        self.assertEquals("foo_.path.to.stuff", _mangle_command("/usr/bin/foo /path/to/stuff"))
++        name_max = 255
++        self.assertEquals("foo", _mangle_command("/usr/bin/foo", name_max))
++        self.assertEquals("foo_-x", _mangle_command("/usr/bin/foo -x", name_max))
++        self.assertEquals("foo_--verbose", _mangle_command("/usr/bin/foo --verbose", name_max))
++        self.assertEquals("foo_.path.to.stuff", _mangle_command("/usr/bin/foo /path/to/stuff", name_max))
++        longcmd ="foo is " + "a" * 256 + " long_command"
++        expected = longcmd[0:name_max].replace(' ', '_')
++        self.assertEquals(expected, _mangle_command(longcmd, name_max))
+ 
+ 
+ class PluginTests(unittest.TestCase):
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1026962-sosreport-fix-silent-exception-handling.patch b/SOURCES/sos-bz1026962-sosreport-fix-silent-exception-handling.patch
new file mode 100644
index 0000000..b3daec4
--- /dev/null
+++ b/SOURCES/sos-bz1026962-sosreport-fix-silent-exception-handling.patch
@@ -0,0 +1,52 @@
+diff -up sos-3.2/sos/sosreport.py.orig sos-3.2/sos/sosreport.py
+--- sos-3.2/sos/sosreport.py.orig	2015-01-20 14:39:34.149596845 +0000
++++ sos-3.2/sos/sosreport.py	2015-01-20 14:39:56.132654519 +0000
+@@ -1131,11 +1131,13 @@ class SoSReport(object):
+                                       % e.strerror)
+                     self.ui_log.error("")
+                     self._exit(1)
++                if self.raise_plugins:
++                    raise
++                self._log_plugin_exception(plugname, "setup")
+             except:
+                 if self.raise_plugins:
+                     raise
+-                else:
+-                    self._log_plugin_exception(plugname, "setup")
++                self._log_plugin_exception(plugname, "setup")
+ 
+     def version(self):
+         """Fetch version information from all plugins and store in the report
+@@ -1177,11 +1179,13 @@ class SoSReport(object):
+                                       % e.strerror)
+                     self.ui_log.error("")
+                     self._exit(1)
++                if self.raise_plugins:
++                    raise
++                self._log_plugin_exception(plugname, "collect")
+             except:
+                 if self.raise_plugins:
+                     raise
+-                else:
+-                    self._log_plugin_exception(plugname, "collect")
++                self._log_plugin_exception(plugname, "collect")
+         self.ui_log.info("")
+ 
+     def report(self):
+@@ -1324,12 +1328,13 @@ class SoSReport(object):
+                                       % e.strerror)
+                     self.ui_log.error("")
+                     self._exit(1)
++                if self.raise_plugins:
++                    raise
++                self._log_plugin_exception(plugname, "postproc")
+             except:
+                 if self.raise_plugins:
+                     raise
+-                else:
+-                    self._log_plugin_exception(plugname, "postproc")
+-
++                self._log_plugin_exception(plugname, "postproc")
+ 
+     def final_work(self):
+         # this must come before archive creation to ensure that log
diff --git a/SOURCES/sos-bz1026962-sosreport-log-plugin-exceptions-to-file.patch b/SOURCES/sos-bz1026962-sosreport-log-plugin-exceptions-to-file.patch
new file mode 100644
index 0000000..069f186
--- /dev/null
+++ b/SOURCES/sos-bz1026962-sosreport-log-plugin-exceptions-to-file.patch
@@ -0,0 +1,67 @@
+From 8b49485153cc7dc03cd974dbc3a100c81ef04720 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Mon, 19 Jan 2015 19:40:06 +0000
+Subject: [PATCH] [sosreport] log plugin exceptions to a file
+
+Add exception logging for the Plugin.postproc() method and move
+plugin exceptions into a separate per-plugin log file. This is
+less cluttered than pushing a multi-line traceback through the
+soslog.error logger and matches the behaviour of older releases.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/sosreport.py | 17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+diff --git a/sos/sosreport.py b/sos/sosreport.py
+index 3c0397c..f17194a 100644
+--- a/sos/sosreport.py
++++ b/sos/sosreport.py
+@@ -1071,8 +1071,14 @@ class SoSReport(object):
+                 self.ui_log.info("")
+                 self._exit()
+ 
+-    def _log_plugin_exception(self, plugin_name):
+-        self.soslog.error("%s\n%s" % (plugin_name, traceback.format_exc()))
++    def _log_plugin_exception(self, plugin, method):
++        trace = traceback.format_exc()
++        msg = "caught exception in plugin method"
++        plugin_err_log = "%s-plugin-errors.txt" % plugin
++        logpath = os.path.join(self.logdir, plugin_err_log)
++        self.soslog.error('%s "%s.%s()"' % (msg, plugin, method))
++        self.soslog.error('writing traceback to %s' % logpath)
++        self.archive.add_string("%s\n" % trace, logpath)
+ 
+     def prework(self):
+         self.policy.pre_work()
+@@ -1129,7 +1135,7 @@ class SoSReport(object):
+                 if self.raise_plugins:
+                     raise
+                 else:
+-                    self._log_plugin_exception(plugname)
++                    self._log_plugin_exception(plugname, "setup")
+ 
+     def version(self):
+         """Fetch version information from all plugins and store in the report
+@@ -1175,7 +1181,7 @@ class SoSReport(object):
+                 if self.raise_plugins:
+                     raise
+                 else:
+-                    self._log_plugin_exception(plugname)
++                    self._log_plugin_exception(plugname, "collect")
+         self.ui_log.info("")
+ 
+     def report(self):
+@@ -1321,6 +1327,9 @@ class SoSReport(object):
+             except:
+                 if self.raise_plugins:
+                     raise
++                else:
++                    self._log_plugin_exception(plugname, "postproc")
++
+ 
+     def final_work(self):
+         # this must come before archive creation to ensure that log
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1026962-squid-collect-var-log-squid.patch b/SOURCES/sos-bz1026962-squid-collect-var-log-squid.patch
new file mode 100644
index 0000000..0ad4c03
--- /dev/null
+++ b/SOURCES/sos-bz1026962-squid-collect-var-log-squid.patch
@@ -0,0 +1,32 @@
+From d0408ac43e1ec3b114e69b2950202f87f2fcd250 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Mon, 19 Jan 2015 18:12:15 +0000
+Subject: [PATCH] [squid] collect logs from /var/log/squid
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/squid.py | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/sos/plugins/squid.py b/sos/plugins/squid.py
+index 0d596e5..f1aea73 100644
+--- a/sos/plugins/squid.py
++++ b/sos/plugins/squid.py
+@@ -29,8 +29,12 @@ class RedHatSquid(Squid, RedHatPlugin):
+     packages = ('squid',)
+ 
+     def setup(self):
+-        self.add_copy_spec_limit("/etc/squid/squid.conf",
+-                                 sizelimit=self.get_option('log_size'))
++        log_size = self.get_option('log_size')
++        log_path = "/var/log/squid/"
++        self.add_copy_spec_limit("/etc/squid/squid.conf", sizelimit=log_size)
++        self.add_copy_spec_limit(log_path + "access.log", sizelimit=log_size)
++        self.add_copy_spec_limit(log_path + "cache.log", sizelimit=log_size)
++        self.add_copy_spec_limit(log_path + "squid.out", sizelimit=log_size)
+ 
+ 
+ class DebianSquid(Squid, DebianPlugin, UbuntuPlugin):
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1028072-add-nfs-client-plugin.patch b/SOURCES/sos-bz1028072-add-nfs-client-plugin.patch
deleted file mode 100644
index 0b52e36..0000000
--- a/SOURCES/sos-bz1028072-add-nfs-client-plugin.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-commit 9259b1ba0b19e4376815b3d77545cfb4f700c6dd
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Fri Nov 8 14:59:56 2013 +0000
-
-    Add simple nfs plug-in
-    
-    There has been an nfsserver plug-in for some time however no
-    corresponding client-side data is collected.
-    
-    This was added to sos-2.2 earlier this year. This commit is a
-    forward port of those changes:
-    
-        commit 71066b4a7d4fd97692b50bf231ad6810df5ec3d0
-        Author: root <root@rhel6-vm2.(none)>
-        Date:   Wed Jul 10 17:11:52 2013 +0100
-    
-            Collect additional nfs-client relevant files
-    
-            Additional NFS client-side data collection:
-    
-                "/etc/nfsmount.conf",
-                "/proc/fs/nfsfs/servers",
-                "/proc/fs/nfsfs/volumes"
-    
-            Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/nfs.py b/sos/plugins/nfs.py
-new file mode 100644
-index 0000000..4acbe38
---- /dev/null
-+++ b/sos/plugins/nfs.py
-@@ -0,0 +1,31 @@
-+### This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published by
-+## the Free Software Foundation; either version 2 of the License, or
-+## (at your option) any later version.
-+
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+
-+## You should have received a copy of the GNU General Public License
-+## along with this program; if not, write to the Free Software
-+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+class Nfs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-+    """NFS related information
-+    """
-+    plugin_name = 'nfs'
-+    packages = ['nfs-utils']
-+
-+    def setup(self):
-+	self.add_copy_specs([
-+                "/etc/nfsmount.conf",
-+                "/etc/idmapd.conf",
-+                "/proc/fs/nfsfs/servers",
-+                "/proc/fs/nfsfs/volumes"
-+        ])
-+        return
-+
diff --git a/SOURCES/sos-bz1028121-include-openhpi-config.patch b/SOURCES/sos-bz1028121-include-openhpi-config.patch
deleted file mode 100644
index 0a95010..0000000
--- a/SOURCES/sos-bz1028121-include-openhpi-config.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From c1e37e41831c8a9ce8c9901d604421b8b19a20e1 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Mon, 12 Aug 2013 20:11:29 +0100
-Subject: [PATCH 1/3] Add new plug-in to gather OpenHPI configuration
-
-New plug-in to collect OpenHPI configuration files. These files
-may contain passwords; a regex substitution rule has been added
-based on information from the reporter but this needs testing
-with a range of actual configuration files.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/openhpi.py | 34 ++++++++++++++++++++++++++++++++++
- 1 file changed, 34 insertions(+)
- create mode 100644 sos/plugins/openhpi.py
-
-diff --git a/sos/plugins/openhpi.py b/sos/plugins/openhpi.py
-new file mode 100644
-index 0000000..bb35206
---- /dev/null
-+++ b/sos/plugins/openhpi.py
-@@ -0,0 +1,34 @@
-+### This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published by
-+## the Free Software Foundation; either version 2 of the License, or
-+## (at your option) any later version.
-+
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+
-+## You should have received a copy of the GNU General Public License
-+## along with this program; if not, write to the Free Software
-+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin
-+import os
-+
-+class OpenHPI(Plugin, RedHatPlugin):
-+    """OpenHPI related information
-+    """
-+
-+    plugin_name = 'openhpi'
-+
-+    def setup(self):
-+        self.add_copy_specs([
-+            "/etc/openhpi/openhpi.conf",
-+            "/etc/openhpi/openhpiclient.conf"
-+        ])
-+
-+    def postproc(self):
-+        self.do_file_sub("/etc/openhpi/openhpi.conf"
-+                        r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"',
-+                        r"\1******")
-+
--- 
-1.7.11.7
-
-
-From a2be6462e40acc48c4271b2faddc4e9a03187712 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Mon, 12 Aug 2013 20:15:25 +0100
-Subject: [PATCH 2/3] Add file substitution rule for openhpiclient.conf
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/openhpi.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/sos/plugins/openhpi.py b/sos/plugins/openhpi.py
-index bb35206..a75f016 100644
---- a/sos/plugins/openhpi.py
-+++ b/sos/plugins/openhpi.py
-@@ -31,4 +31,7 @@ class OpenHPI(Plugin, RedHatPlugin):
-         self.do_file_sub("/etc/openhpi/openhpi.conf"
-                         r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"',
-                         r"\1******")
-+        self.do_file_sub("/etc/openhpi/openhpiclient.conf"
-+                        r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"',
-+                        r"\1******")
- 
--- 
-1.7.11.7
-
-
-From a70afd9562a3ba9ad193fa25c6079c45533b9887 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Thu, 7 Nov 2013 18:17:18 +0000
-Subject: [PATCH 3/3] Fix regex substitution in openhpi plug-in
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/openhpi.py | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/sos/plugins/openhpi.py b/sos/plugins/openhpi.py
-index a75f016..dbe004d 100644
---- a/sos/plugins/openhpi.py
-+++ b/sos/plugins/openhpi.py
-@@ -28,10 +28,6 @@ class OpenHPI(Plugin, RedHatPlugin):
-         ])
- 
-     def postproc(self):
--        self.do_file_sub("/etc/openhpi/openhpi.conf"
--                        r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"',
--                        r"\1******")
--        self.do_file_sub("/etc/openhpi/openhpiclient.conf"
--                        r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"',
--                        r"\1******")
-+        self.do_file_sub("/etc/openhpi/openhpi.conf",
-+                        r'(\s*[Pp]ass.*\s*=\s*).*', r'\1********')
- 
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1028125-fix-traceback-when-sar-module.patch b/SOURCES/sos-bz1028125-fix-traceback-when-sar-module.patch
deleted file mode 100644
index 248fa36..0000000
--- a/SOURCES/sos-bz1028125-fix-traceback-when-sar-module.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-commit e53f06e9a50b16a204d27049b83c3a32505a4ab6
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Thu Nov 7 17:48:03 2013 +0000
-
-    Fix traceback when sar module is force-enabled
-    
-    Forward port of the following sos-2.2 fix:
-    
-    commit d4e3bcc3ed247d8d9a1228c3661b6456f534daf4
-    Author: Bryn M. Reeves <bmr@redhat.com>
-    Date:   Mon Aug 12 18:42:48 2013 +0100
-    
-        Fix traceback when sar module is force-enabled
-    
-        The sar plug-in assumes that when it runs the /var/lib/sa
-        directory and binaries exist (they are part of checkenabled() for
-        this module).
-    
-        This leads to a traceback when the plug-in lists a non-existent
-        directory on hosts where sar is not installed but '-o sar' is
-        specified on the command line.
-    
-        Catch the exception and exit gracefully.
-    
-        (Edited by bmr to improve error message logged).
-    
-        Signed-off-by: David Kutálek <dkutalek@redhat.com>
-        Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py
-index 4f89b53..570262a 100644
---- a/sos/plugins/sar.py
-+++ b/sos/plugins/sar.py
-@@ -43,8 +43,12 @@ class Sar(Plugin,):
-         self.add_copy_spec_limit("/var/log/sa/sar[0-9]*",
-                                  sizelimit = self.sa_size)
-         self.add_copy_spec_limit("/var/log/sa/sa[0-9]*",
--                                 sizelimit = self.sa_size)
--        dirList = os.listdir(self.sa_path)
-+                              sizelimit = self.sa_size)
-+        try:
-+            dirList = os.listdir(self.sa_path)
-+        except:
-+            self.soslog.error("sar: could not list /var/log/sa")
-+            return
-         # find all the sa file that don't have an existing sar file
-         for fname in dirList:
-             if fname[0:2] == 'sa' and fname[2] != 'r':
diff --git a/SOURCES/sos-bz1028150-add-krb5-plugin-and-klist.patch b/SOURCES/sos-bz1028150-add-krb5-plugin-and-klist.patch
deleted file mode 100644
index 19ea04d..0000000
--- a/SOURCES/sos-bz1028150-add-krb5-plugin-and-klist.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-commit c18486621d2df774f270f8bc1dc602d6487681aa
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Thu Aug 1 16:43:43 2013 +0100
-
-    Split kerberos data collection into separate plug-in
-    
-    The krb5 data collection in the samba plug-in is misplaced. Since
-    this is collecting information about the system keytab move it
-    to its own plug-in that can be activated on any kerberos enabled
-    system.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/krb5.py b/sos/plugins/krb5.py
-new file mode 100644
-index 0000000..d9dca89
---- /dev/null
-+++ b/sos/plugins/krb5.py
-@@ -0,0 +1,29 @@
-+## Copyright (C) 2013 Red Hat, Inc., Bryn M. Reeves <bmr@redhat.com>
-+
-+### This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published by
-+## the Free Software Foundation; either version 2 of the License, or
-+## (at your option) any later version.
-+
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+
-+## You should have received a copy of the GNU General Public License
-+## along with this program; if not, write to the Free Software
-+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+class Krb5(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-+    """Kerberos related information
-+    """
-+    packages = ('krb5-libs', 'krb5-user')
-+    plugin_name = 'krb5'
-+
-+    def setup(self):
-+        self.add_copy_specs([
-+            "/etc/krb5.conf",
-+            "/etc/krb5.keytab"])
-+
-diff --git a/sos/plugins/samba.py b/sos/plugins/samba.py
-index f3a44b7..f3dc862 100644
---- a/sos/plugins/samba.py
-+++ b/sos/plugins/samba.py
-@@ -14,9 +14,10 @@
- 
- from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
- 
--class Samba(Plugin):
-+class Samba(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-     """Samba related information
-     """
-+    packages = ('samba-common',)
-     plugin_name = "samba"
- 
-     def setup(self):
-@@ -27,19 +28,3 @@ class Samba(Plugin):
-         self.add_cmd_output("wbinfo --domain='.' -u")
-         self.add_cmd_output("testparm -s -v")
- 
--
--class RedHatSamba(Samba, RedHatPlugin):
--    """Samba related information for RedHat based distributions
--    """
--    def setup(self):
--        super(RedHatSamba, self).setup()
--        # FIXME: krb5 specific
--        self.add_copy_specs([
--            "/etc/krb5.conf",
--            "/etc/krb5.keytab"])
--
--class DebianSamba(Samba, DebianPlugin, UbuntuPlugin):
--    """Samba related information for Debian based distributions
--    """
--    def setup(self):
--        super(DebianSamba, self).setup()
-commit 54eb134fb78a64782560df8f0aa2f5e51c6ae410
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Thu Aug 1 16:48:19 2013 +0100
-
-    Do not collect krb5.keytab
-    
-    Avoid collecting kerberos keytabs to prevent unintended
-    information disclosures. Instead retrieve a list using the klist
-    command.
-    
-    Also remove the duplicative collection of this information from
-    the ipa plug-in (which should only be collecting non-system
-    keytabs that are specific to the IPA tools).
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/ipa.py b/sos/plugins/ipa.py
-index 3244f34..0061659 100644
---- a/sos/plugins/ipa.py
-+++ b/sos/plugins/ipa.py
-@@ -73,7 +73,6 @@ class Ipa(Plugin, RedHatPlugin):
- 
-         self.add_cmd_output("klist -ket /etc/dirsrv/ds.keytab")
-         self.add_cmd_output("klist -ket /etc/httpd/conf/ipa.keytab")
--        self.add_cmd_output("klist -ket /etc/krb5.keytab")
- 
-         return
- 
-diff --git a/sos/plugins/krb5.py b/sos/plugins/krb5.py
-index d9dca89..0d33094 100644
---- a/sos/plugins/krb5.py
-+++ b/sos/plugins/krb5.py
-@@ -23,7 +23,6 @@ class Krb5(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-     plugin_name = 'krb5'
- 
-     def setup(self):
--        self.add_copy_specs([
--            "/etc/krb5.conf",
--            "/etc/krb5.keytab"])
-+        self.add_copy_spec("/etc/krb5.conf")
-+        self.add_cmd_output("klist -ket /etc/krb5.keytab")
- 
diff --git a/SOURCES/sos-bz1028484-remove-upload-option.patch b/SOURCES/sos-bz1028484-remove-upload-option.patch
deleted file mode 100644
index 01fa7ac..0000000
--- a/SOURCES/sos-bz1028484-remove-upload-option.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-commit 26bd7ddd523af051916954723f3edb2ab6bd297e
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Fri Jan 24 15:13:22 2014 +0000
-
-    Remove --upload option
-    
-    The --upload option has a lot of limitations and has not been
-    widely used. Recent trends are to handle uploading data in
-    higher-level tools (e.g. redhat-support-tool or web based
-    management UIs) and the python ftp library does not support
-    modern requirements like HTTP proxy traversal or encryption.
-    
-    Fixes Issue #217
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-    
-    Conflicts:
-    	sos/policies/__init__.py
-
-diff --git a/man/en/sos.conf.5 b/man/en/sos.conf.5
-index dc10b1b..b40a48e 100644
---- a/man/en/sos.conf.5
-+++ b/man/en/sos.conf.5
-@@ -6,26 +6,31 @@ sos.conf \- sosreport configuration
- sosreport uses a configuration file at /etc/sos.conf.
- .SH PARAMETERS
- .sp
--There are 3 sections of configuration in the sosreport configuration file: general,
--plugins, and tunables.
--.SH [general] OPTIONS
--.sp
--.in
--ftp_upload_url Default ftp server to send reports.
--.in
--gpg_keyring Default gpgkey.
--.in
--gpg_recipient GPG recipient
--.in
--smtp_server Mail server
--.SH [plugins] OPTIONS
--.sp
--.in
-+There are two sections in the sosreport configuration file:
-+plugins, and tunables. Options are set using 'ini'-style
-+\fBname = value\fP pairs.
-+
-+Some options accept a comma separated list of values.
-+
-+.TP
-+\fB[plugins]\fP
- disable Comma separated list of plugins to disable.
--.SH [tunables] OPTIONS
-+.TP
-+\fB[tunables]\fP
-+plugin.option Alter available options for defined plugin.
-+.SH EXAMPLES
-+To disable the 'general' and 'filesys' plugins:
-+.LP
-+[plugins]
-+.br
-+disable = general, filesys
- .sp
--.in
--(plugin, option) Alter available options for defined plugin.
-+To disable rpm package verification in the RPM plugin:
-+.LP
-+[tunables]
-+.br
-+rpm.rpmva = off
-+.br
- .SH FILES
- .sp
- /etc/sos.conf
-diff --git a/man/en/sosreport.1 b/man/en/sosreport.1
-index 87a099e..c800576 100644
---- a/man/en/sosreport.1
-+++ b/man/en/sosreport.1
-@@ -10,7 +10,7 @@ sosreport \- Collect and package diagnostic and support data
-           [-a|--alloptions] [-v|--verbose]\fR
-           [--report] [--config-file conf] [--batch]\fR
-           [--build] [--name name] [--ticket-number number]
--          [--debug] [--upload] [--tmp-dir directory]\fR
-+          [--debug] [--tmp-dir directory]\fR
-           [--profile] [--help]\fR
- .SH DESCRIPTION
- \fBsosreport\fR generates a compressed tar archive of diagnostic
-@@ -50,9 +50,6 @@ specified value in the plug-in PLUGNAME.
- .B \-a, \--alloptions
- Set all boolean options to True for all enabled plug-ins.
- .TP
--.B \--upload FTP_SERVER
--Upload the report to the configured destination.
--.TP
- .B \-v, \--verbose
- Increase logging verbosity. May be specified multiple times to enable
- additional debugging messages.
-diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
-index b681e77..47ace5c 100644
---- a/sos/policies/__init__.py
-+++ b/sos/policies/__init__.py
-@@ -280,79 +280,6 @@ No changes will be made to system configuration.
-             self._print(_("Please send this file to your support representative."))
-         self._print()
- 
--    def upload_results(self, final_filename):
--
--        # make sure a report exists
--        if not final_filename:
--            return False
--
--        self._print()
--        # make sure it's readable
--        try:
--            fp = open(final_filename, "r")
--        except:
--            return False
--
--        # read ftp URL from configuration
--        if self.commons['cmdlineopts'].upload:
--            upload_url = self.commons['cmdlineopts'].upload
--        else:
--            try:
--               upload_url = self.commons['config'].get("general", "ftp_upload_url")
--            except:
--               self._print(_("No URL defined in config file."))
--               return
--
--        from urlparse import urlparse
--        url = urlparse(upload_url)
--
--        if url[0] != "ftp":
--            self._print(_("Cannot upload to specified URL."))
--            return
--
--        # extract username and password from URL, if present
--        if url[1].find("@") > 0:
--            username, host = url[1].split("@", 1)
--            if username.find(":") > 0:
--                username, passwd = username.split(":", 1)
--            else:
--                passwd = None
--        else:
--            username, passwd, host = None, None, url[1]
--
--        # extract port, if present
--        if host.find(":") > 0:
--            host, port = host.split(":", 1)
--            port = int(port)
--        else:
--            port = 21
--
--        path = url[2]
--
--        try:
--            from ftplib import FTP
--            upload_name = os.path.basename(final_filename)
--
--            ftp = FTP()
--            ftp.connect(host, port)
--            if username and passwd:
--                ftp.login(username, passwd)
--            else:
--                ftp.login()
--            ftp.cwd(path)
--            ftp.set_pasv(True)
--            ftp.storbinary('STOR %s' % upload_name, fp)
--            ftp.quit()
--        except Exception, e:
--            self._print(_("There was a problem uploading your report to Red Hat support. " + str(e)))
--        else:
--            self._print(_("Your report was successfully uploaded to %s with name:" % (upload_url,)))
--            self._print("  " + upload_name)
--            self._print()
--            self._print(_("Please communicate this name to your support representative."))
--            self._print()
--
--        fp.close()
- 
-     def _print(self, msg=None):
-         """A wrapper around print that only prints if we are not running in
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 1c81af9..fb3aea7 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -202,7 +202,6 @@ class SoSOptions(object):
-     _onlyplugins = []
-     _plugopts = []
-     _usealloptions = False
--    _upload = False
-     _batch = False
-     _build = False
-     _verbosity = 0
-@@ -302,19 +301,6 @@ class SoSOptions(object):
-         self._usealloptions = value
- 
-     @property
--    def upload(self):
--        if self._options != None:
--            return self._options.upload
--        return self._upload
--
--    @upload.setter
--    def upload(self, value):
--        self._check_options_initialized()
--        if not isinstance(value, bool):
--            raise TypeError("SoSOptions.upload expects a boolean")
--        self._upload = value
--
--    @property
-     def batch(self):
-         if self._options != None:
-             return self._options.batch
-@@ -484,9 +470,6 @@ class SoSOptions(object):
-         parser.add_option("-a", "--alloptions", action="store_true",
-                              dest="usealloptions", default=False,
-                              help="enable all options for loaded plugins")
--        parser.add_option("-u", "--upload", action="store",
--                             dest="upload", default=False,
--                             help="upload the report to an ftp server")
-         parser.add_option("--batch", action="store_true",
-                              dest="batch", default=False,
-                              help="batch mode - do not prompt interactively")
-@@ -1130,12 +1113,7 @@ class SoSReport(object):
-         else:
-             final_filename = self.archive.get_archive_path()
- 
--        # automated submission will go here
--        if not self.opts.upload:
--            self.policy.display_results(final_filename, build = self.opts.build)
--        else:
--            self.policy.upload_results(final_filename)
--
-+        self.policy.display_results(final_filename, build = self.opts.build)
-         self.tempfile_util.clean()
- 
-         return True
diff --git a/SOURCES/sos-bz1030042-remove-logs-debug-statements.patch b/SOURCES/sos-bz1030042-remove-logs-debug-statements.patch
deleted file mode 100644
index 690c1ea..0000000
--- a/SOURCES/sos-bz1030042-remove-logs-debug-statements.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-commit 3304589f0e643b9f43dbc0fd042f747d0e4c27c2
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Nov 13 19:02:05 2013 +0000
-
-    Remove debug statements from logs plugin
-    
-    The 'all_logs' path of the logs plugin has three leftover debug
-    print statements. Remove them to avoid cluttering the console
-    output when the option is used.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-    
-    Conflicts:
-    	sos/plugins/logs.py
-
-diff --git a/sos/plugins/logs.py b/sos/plugins/logs.py
-index 8359e06..7e7545f 100644
---- a/sos/plugins/logs.py
-+++ b/sos/plugins/logs.py
-@@ -38,14 +38,11 @@ class Logs(Plugin):
-         self.add_copy_spec_limit("/var/log/boot*", sizelimit = self.limit)
- 
-         if self.get_option('all_logs'):
--            print "doing all_logs..."
-             logs = self.do_regex_find_all("^\S+\s+(-?\/.*$)\s+",
-                                 "/etc/syslog.conf")
--            print logs
-             if self.policy().pkg_by_name("rsyslog") \
-               or os.path.exists("/etc/rsyslog.conf"):
-                 logs += self.do_regex_find_all("^\S+\s+(-?\/.*$)\s+", "/etc/rsyslog.conf")
--                print logs
-             for i in logs:
-                 if i.startswith("-"):
-                     i = i[1:]
diff --git a/SOURCES/sos-bz1030553-fix-cluster-crm_report.patch b/SOURCES/sos-bz1030553-fix-cluster-crm_report.patch
deleted file mode 100644
index dea4055..0000000
--- a/SOURCES/sos-bz1030553-fix-cluster-crm_report.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 186b3317b1e8562bbbd7dddd191b8ab73d664d5c Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Fri, 31 Jan 2014 15:08:28 +0000
-Subject: [PATCH] Fix cluster module crm_report support
-
-The cluster plugin used an obsolete sos-2.2 method to determine
-the command output directory. This causes an excaption at runtime
-since the referenced properties no longer exist.
-
-The crm_report script also expects a --from date and will not
-collect data unless this is passed. Default to passing a value 72
-hours before the current time and add a 'crm_from' option to the
-cluster module to allow the user to override this.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/cluster.py | 27 +++++++++++++++++++--------
- 1 file changed, 19 insertions(+), 8 deletions(-)
-
-diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
-index 50e0e0b..c2ce42b 100644
---- a/sos/plugins/cluster.py
-+++ b/sos/plugins/cluster.py
-@@ -13,16 +13,17 @@
- ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- 
- from sos.plugins import Plugin, RedHatPlugin
--import re
-+import re, os
- from glob import glob
-+from datetime import datetime, timedelta
- 
- class Cluster(Plugin, RedHatPlugin):
-     """cluster suite and GFS related information
-     """
- 
-     plugin_name = 'cluster'
--    option_list = [("gfslockdump",
--                    'gather output of gfs lockdumps', 'slow', False),
-+    option_list = [("gfslockdump", 'gather output of gfs lockdumps', 'slow', False),
-+                    ("crm_from", 'specify the --from parameter passed to crm_report', 'fast', False),
-                     ('lockdump', 'gather dlm lockdumps', 'slow', False)]
- 
-     packages = [
-@@ -83,9 +84,21 @@ class Cluster(Plugin, RedHatPlugin):
-         self.add_cmd_output("dlm_tool dump")
-         self.add_cmd_output("dlm_tool ls -n")
-         self.add_cmd_output("mkqdisk -L")
--        crm_dest = os.path.join(self.cInfo['cmddir'],
--                                self.name(), 'crm_report')
--        self.collectExtOutput("crm_report -S --dest %s" % crm_dest)
-+        # crm_report needs to be given a --from "YYYY-MM-DD HH:MM:SS" start
-+        # time in order to collect data.
-+        crm_from = (datetime.today()
-+                    - timedelta(hours=72)).strftime("%Y-%m-%d %H:%m:%S")
-+        if self.get_option('crm_from') != False:
-+            if re.match(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}',
-+                        str(self.getOption('crm_from'))):
-+                crm_from = self.getOption('crm_from')
-+            else:
-+                self.soslog.error("crm_from parameter '%s' is not a valid date"
-+                            % self.getOption('crm_from'))
-+
-+        crm_dest = os.path.join(self.get_cmd_dir(), 'crm_report')
-+        self.add_cmd_output('crm_report -S -d --dest %s --from "%s"'
-+                    % (crm_dest, crm_from))
- 
-     def do_lockdump(self):
-         status, output, time = self.call_ext_prog("dlm_tool ls")
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1030553-fix-cluster-get_option-use.patch b/SOURCES/sos-bz1030553-fix-cluster-get_option-use.patch
deleted file mode 100644
index a8412c7..0000000
--- a/SOURCES/sos-bz1030553-fix-cluster-get_option-use.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 50c2821c6211a06ee356d4d8d2f0e7573e1a8159 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Mon, 3 Feb 2014 11:48:46 +0000
-Subject: [PATCH] Fix get_option() use in cluster plugin
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/cluster.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
-index 0fc4ded..eeacdab 100644
---- a/sos/plugins/cluster.py
-+++ b/sos/plugins/cluster.py
-@@ -90,11 +90,11 @@ class Cluster(Plugin, RedHatPlugin):
-                     - timedelta(hours=72)).strftime("%Y-%m-%d %H:%m:%S")
-         if self.get_option('crm_from') != False:
-             if re.match(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}',
--                        str(self.getOption('crm_from'))):
--                crm_from = self.getOption('crm_from')
-+                        str(self.get_option('crm_from'))):
-+                crm_from = self.get_option('crm_from')
-             else:
-                 self.soslog.error("crm_from parameter '%s' is not a valid date"
--                            % self.getOption('crm_from'))
-+                            % self.get_option('crm_from'))
- 
-         crm_dest = os.path.join(self.get_cmd_dir(), 'crm_report')
-         self.add_cmd_output('crm_report -S -d --dest %s --from "%s"'
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1030553-fix-command-output-substitution-exception.patch b/SOURCES/sos-bz1030553-fix-command-output-substitution-exception.patch
deleted file mode 100644
index 0daf875..0000000
--- a/SOURCES/sos-bz1030553-fix-command-output-substitution-exception.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From c6e2ab3f1e941ececc7a461fd46a1a40041ad2b5 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Sun, 6 Oct 2013 15:01:23 +0100
-Subject: [PATCH 1/3] Fix exception in command output substitution
-
-If an attempt is made to apply command output substitution via
-Plugin.do_cmd_output_sub() and no output has been collected (i.e.
-called['file'] == None) an exception is thrown by os.path.join().
-
-The exception is also not logged properly due to an attempt in
-the do_cmd_output_sub() exception handler to access an unbound
-local variable (path - the exception occurs before it is
-assigned).
-
-Fix both of these by checking for an empty file entry and avoiding
-access to the path variable from the exception handler.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/__init__.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
-index 4a72161..fc3a851 100644
---- a/sos/plugins/__init__.py
-+++ b/sos/plugins/__init__.py
-@@ -180,6 +180,9 @@ class Plugin(object):
- 
-         try:
-             for called in self.executed_commands:
-+                # was anything collected?
-+                if called['file'] == None:
-+                    continue
-                 if fnmatch.fnmatch(called['exe'], globstr):
-                     path = os.path.join(self.commons['cmddir'], called['file'])
-                     self.soslog.debug("applying substitution to %s" % path)
-@@ -192,7 +195,7 @@ class Plugin(object):
-                         replacements = 0
-         except Exception, e:
-             msg = 'regex substitution failed for %s in plugin %s with: "%s"'
--            self.soslog.error(msg % (path, self.name(), e))
-+            self.soslog.error(msg % (called['exe'], self.name(), e))
-             replacements = 0
-         if self.commons['cmdlineopts'].profiler:
-             time_passed = time() - start_time
--- 
-1.7.11.7
-
-
-From dafcbf33022ee2be24109c6c90bae97a1a4a2077 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Tue, 11 Feb 2014 16:53:16 +0000
-Subject: [PATCH 2/3] Fix command output substitution exception
-
-If a comand has a substitution registered via do_cmd_output_sub()
-but no data was collected (e.g. command not found) the postproc
-code will throw an exception as the return value ('replacements')
-is never assigned.
-
-Initialise replacements to None before scanning the list of run
-commands and return this if no substitutions were made.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-Conflicts:
-	sos/plugins/__init__.py
----
- sos/plugins/__init__.py | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
-index fc3a851..2bf8d98 100644
---- a/sos/plugins/__init__.py
-+++ b/sos/plugins/__init__.py
-@@ -178,6 +178,7 @@ class Plugin(object):
-         if not self.executed_commands:
-             return 0
- 
-+        replacements = None
-         try:
-             for called in self.executed_commands:
-                 # was anything collected?
-@@ -191,12 +192,12 @@ class Plugin(object):
-                             regexp, subst, readable.read())
-                     if replacements:
-                         self.archive.add_string(result, path)
--                    else:
--                        replacements = 0
--        except Exception, e:
-+
-+        except Exception as e:
-             msg = 'regex substitution failed for %s in plugin %s with: "%s"'
-             self.soslog.error(msg % (called['exe'], self.name(), e))
--            replacements = 0
-+            replacements = None
-+
-         if self.commons['cmdlineopts'].profiler:
-             time_passed = time() - start_time
-             self.proflog.debug("subst: %-75s time: %f"
--- 
-1.7.11.7
-
-
-From 59e7695c52ef77b9045e0f1737672728e6b0275a Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Tue, 11 Feb 2014 16:56:37 +0000
-Subject: [PATCH 3/3] Improve error message when cluster.crm_from is invalid
-
-If a user passes a non-date string value as the crm_from parameter
-of the cluster plugin an error message is logged:
-
-  crm_from parameter 'True' is not a valid date
-
-The plugin continues to run and uses the default value (T-72hrs)
-as the value of crm_from. Make this clear in the message displayed
-to users:
-
-  crm_from parameter 'True' is not a valid date: using default
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/cluster.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
-index eeacdab..8d73dc1 100644
---- a/sos/plugins/cluster.py
-+++ b/sos/plugins/cluster.py
-@@ -93,7 +93,8 @@ class Cluster(Plugin, RedHatPlugin):
-                         str(self.get_option('crm_from'))):
-                 crm_from = self.get_option('crm_from')
-             else:
--                self.soslog.error("crm_from parameter '%s' is not a valid date"
-+                self.soslog.error(
-+                    "crm_from parameter '%s' is not a valid date: using default"
-                             % self.get_option('crm_from'))
- 
-         crm_dest = os.path.join(self.get_cmd_dir(), 'crm_report')
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1030602-fix-ldap-postproc.patch b/SOURCES/sos-bz1030602-fix-ldap-postproc.patch
deleted file mode 100644
index 4afb202..0000000
--- a/SOURCES/sos-bz1030602-fix-ldap-postproc.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 2fd64785d330f6ff8090b9b01f15b7f75ab57e41 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Tue, 13 Aug 2013 14:54:20 +0100
-Subject: [PATCH 1/4] Improve readability of add_copy_specs() usage in ldap.py
-
-Use multi-line style for add_copy_specs() invocations in the ldap
-plug-in per the recommendations in Issue #173.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/ldap.py | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py
-index b16b7b3..4d33076 100644
---- a/sos/plugins/ldap.py
-+++ b/sos/plugins/ldap.py
-@@ -1,4 +1,4 @@
--### This program is free software; you can redistribute it and/or modify
-+## This program is free software; you can redistribute it and/or modify
- ## it under the terms of the GNU General Public License as published by
- ## the Free Software Foundation; either version 2 of the License, or
- ## (at your option) any later version.
-@@ -49,7 +49,10 @@ class RedHatLdap(Ldap, RedHatPlugin):
- 
-     def setup(self):
-         super(RedHatLdap, self).setup()
--        self.add_copy_specs(["/etc/openldap", "/etc/nslcd.conf"])
-+        self.add_copy_specs([
-+                "/etc/openldap",
-+                "/etc/nslcd.conf"
-+        ])
- 
-     def postproc(self):
-         self.do_file_sub("/etc/nslcd.conf", r"(\s*bindpw\s*)\S+", r"\1***")
-@@ -66,7 +69,11 @@ class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin):
- 
-         ldap_search = "ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// "
- 
--        self.add_copy_specs(["/etc/ldap/ldap.conf", "/etc/slapd.conf", "/etc/ldap/slapd.d"])
-+        self.add_copy_specs([
-+            "/etc/ldap/ldap.conf",
-+            "/etc/slapd.conf",
-+            "/etc/ldap/slapd.d"
-+        ])
- 
-         self.add_cmd_output("ldapsearch -x -b '' -s base 'objectclass=*'")
-         self.add_cmd_output(ldap_search + "-b cn=config '(!(objectClass=olcSchemaConfig))'",
--- 
-1.7.11.7
-
-
-From a4a686eb589f0d54bc3808ce57c792356aa36106 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Tue, 13 Aug 2013 15:19:02 +0100
-Subject: [PATCH 2/4] Add pam_ldap.conf collection to ldap plug-in
-
-Add the pam_ldap.conf file to the data collected by the ldap
-plug-in and tidy up substitution strings for this plug-in.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/ldap.py | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py
-index 4d33076..361de73 100644
---- a/sos/plugins/ldap.py
-+++ b/sos/plugins/ldap.py
-@@ -39,23 +39,28 @@ class Ldap(Plugin):
-         self.add_copy_spec("/etc/ldap.conf")
- 
-     def postproc(self):
--        self.do_file_sub("/etc/ldap.conf", r"(\s*bindpw\s*)\S+", r"\1***")
-+        self.do_file_sub("/etc/ldap.conf", r"(\s*bindpw\s*)\S+", r"\1******")
- 
- class RedHatLdap(Ldap, RedHatPlugin):
-     """LDAP related information for RedHat based distribution
-     """
- 
-     packages = ('openldap', 'nss-pam-ldapd')
-+    files = ('/etc/ldap.conf', '/etc/pam_ldap.conf')
- 
-     def setup(self):
-         super(RedHatLdap, self).setup()
-         self.add_copy_specs([
-                 "/etc/openldap",
--                "/etc/nslcd.conf"
-+                "/etc/nslcd.conf",
-+                "/etc/pam_ldap.conf"
-         ])
- 
-     def postproc(self):
--        self.do_file_sub("/etc/nslcd.conf", r"(\s*bindpw\s*)\S+", r"\1***")
-+        self.do_file_sub("/etc/nslcd.conf",
-+                        r"(\s*bindpw\s*)\S+", r"\1********")
-+        self.do_file_sub("/etc/pam_ldap.conf",
-+                        r"(\s*bindpw\s*)\S+", r"\1********")
- 
- class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin):
-     """LDAP related information for Debian based distribution
-@@ -86,4 +91,4 @@ class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin):
-     def postproc(self):
-         self.do_cmd_output_sub(
-         "ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(!(objectClass=olcSchemaConfig))'",
--            r"(olcRootPW\: \s*)\S+", r"\1***")
-+            r"(olcRootPW\: \s*)\S+", r"\1********")
--- 
-1.7.11.7
-
-
-From cfb53a07ba72a311d2962e0bd73cf74430a4cad8 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Fri, 31 Jan 2014 15:25:15 +0000
-Subject: [PATCH 3/4] Remove obsolete diagnostics code from ldap plugin
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/ldap.py | 12 ------------
- 1 file changed, 12 deletions(-)
-
-diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py
-index 361de73..f1032a9 100644
---- a/sos/plugins/ldap.py
-+++ b/sos/plugins/ldap.py
-@@ -22,18 +22,6 @@ class Ldap(Plugin):
-     plugin_name = "ldap"
-     ldap_conf = "/etc/openldap/ldap.conf"
- 
--    def get_ldap_opts(self):
--        # capture /etc/openldap/ldap.conf options in dict
--        # FIXME: possibly not hardcode these options in?
--        ldapopts=["URI","BASE","TLS_CACERTDIR"]
--        results={}
--        tmplist=[]
--        for i in ldapopts:
--            t=self.do_regex_find_all(r"^(%s)\s+(.*)" % i,self.ldap_conf)
--            for x in t:
--                results[x[0]]=x[1].rstrip("\n")
--        return results
--
-     def setup(self):
-         super(Ldap, self).setup()
-         self.add_copy_spec("/etc/ldap.conf")
--- 
-1.7.11.7
-
-
-From e1a30a6d63a376d892a10d9cec89b312356ba9c2 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Fri, 31 Jan 2014 15:43:44 +0000
-Subject: [PATCH 4/4] Ensure superclass postproc method is called in ldap
- plugin
-
-Since the ldap plugins add files and post-processing methods at
-multiple class levels (Ldap, RedHatLdap etc.) derived classes
-must explicitly call their parent class's postproc() method to
-apply all substitutions to collected data.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/ldap.py | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py
-index f1032a9..79d8394 100644
---- a/sos/plugins/ldap.py
-+++ b/sos/plugins/ldap.py
-@@ -45,6 +45,7 @@ class RedHatLdap(Ldap, RedHatPlugin):
-         ])
- 
-     def postproc(self):
-+        super(RedHatLdap, self).postproc()
-         self.do_file_sub("/etc/nslcd.conf",
-                         r"(\s*bindpw\s*)\S+", r"\1********")
-         self.do_file_sub("/etc/pam_ldap.conf",
-@@ -77,6 +78,7 @@ class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin):
-             suggest_filename="access_control_lists")
- 
-     def postproc(self):
-+        super(RedHatLdap, self).postproc()
-         self.do_cmd_output_sub(
-         "ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(!(objectClass=olcSchemaConfig))'",
-             r"(olcRootPW\: \s*)\S+", r"\1********")
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1030617-rhevm-treat-vdsmlogs-as-string.patch b/SOURCES/sos-bz1030617-rhevm-treat-vdsmlogs-as-string.patch
deleted file mode 100644
index 2c60fb9..0000000
--- a/SOURCES/sos-bz1030617-rhevm-treat-vdsmlogs-as-string.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 3d4afc252c9b65f350285d166d625067ee945934
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Feb 3 12:26:45 2014 +0000
-
-    Always treat rhevm vdsmlogs option as string
-    
-    The rhevm plugin has a 'vdsmlogs' option to pass in a set of log
-    files to be collected. When run with '-a' (or with
-    '-krhevm.vdsmlogs) this evaluates to 'True' (a bool) and causes
-    an exception when this is passed to add_copy_specs().
-    
-    Always treat the value as a string.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/rhevm.py b/sos/plugins/rhevm.py
-index 39b32f4..8068e05 100644
---- a/sos/plugins/rhevm.py
-+++ b/sos/plugins/rhevm.py
-@@ -13,7 +13,7 @@ class RhevM(Plugin, RedHatPlugin):
-         self.add_copy_spec("/etc/rhevm")
-         self.add_copy_spec("/var/log/rhevm")
-         if self.get_option("vdsmlogs"):
--            self.add_copy_spec(self.get_option("vdsmlogs"))
-+            self.add_copy_spec(str(self.get_option("vdsmlogs")))
- 
-     def postproc(self):
-         """
diff --git a/SOURCES/sos-bz1030824-make-ethernet-detection-more-robust.patch b/SOURCES/sos-bz1030824-make-ethernet-detection-more-robust.patch
deleted file mode 100644
index 16c14c5..0000000
--- a/SOURCES/sos-bz1030824-make-ethernet-detection-more-robust.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-commit 6fe3c9195b958e3b24a2dbf1768a45a459795f07
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Fri Nov 15 13:40:17 2013 +0000
-
-    Make ethernet interface detection more robust
-    
-    The networking module parses the link information in the output
-    of the 'ip -o addr' command to determine a list of ethernet
-    interfaces on which to run ethtool.
-    
-    An upstream change in the iproute package appears to have
-    introduced a regression in the output of this command which causes
-    link information to not be displayed:
-    
-    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000\    link/ether 52:54:00:ce:9d:6d brd ff:ff:ff:ff:ff:ff
-    2: eth0    inet 192.168.122.31/24 brd 192.168.122.255 scope global eth0\       valid_lft forever preferred_lft forever
-    2: eth0    inet6 fe80::5054:ff:fece:9d6d/64 scope link \       valid_lft forever preferred_lft forever
-    
-    vs:
-    
-    2: eth0    inet 192.168.122.31/24 brd 192.168.122.255 scope global eth0\       valid_lft forever preferred_lft forever
-    2: eth0    inet6 fe80::5054:ff:fece:9d6d/64 scope link \       valid_lft forever preferred_lft forever
-    
-    This breaks detection of ethernet interfaces and all ethtool data
-    collection.
-    
-    This was introduced in the following iproute commit:
-    
-        commit af9d406f99853848054162ed7aefbe71dc03e433
-        Author: Mike Frysinger <vapier@gentoo.org>
-        Date:   Mon Aug 13 08:09:52 2012 -0700
-    
-            Fix regression with 'ip address show'
-    
-    Which appears to fix a different problem (i.e. the change to link
-    info was unintended).
-    
-    Make this more robust by switching the networking module to use
-    'ip -o link' instead which explicitly requests the required
-    information.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py
-index 9724a4f..64fb962 100644
---- a/sos/plugins/networking.py
-+++ b/sos/plugins/networking.py
-@@ -41,16 +41,16 @@ class Networking(Plugin):
-             out.append(br_name)
-         return out
- 
--    def get_interface_name(self,ip_addr_out):
--        """Return a dictionary for which key are interface name according to the
--        output of ifconifg-a stored in ifconfig_file.
-+    def get_eth_interfaces(self,ip_link_out):
-+        """Return a dictionary for which keys are ethernet interface
-+        names taken from the output of "ip -o link".
-         """
-         out={}
--        for line in ip_addr_out[1].splitlines():
-+        for line in ip_link_out[1].splitlines():
-             match=re.match('.*link/ether', line)
-             if match:
--                int=match.string.split(':')[1].lstrip()
--                out[int]=True
-+                iface=match.string.split(':')[1].lstrip()
-+                out[iface]=True
-         return out
- 
-     def collect_iptable(self,tablename):
-@@ -85,7 +85,6 @@ class Networking(Plugin):
-         self.add_forbidden_path("/proc/net/rpc/*/flush")
- 
-         ip_addr_file=self.get_cmd_output_now("ip -o addr", root_symlink = "ip_addr")
--        ip_addr_out=self.call_ext_prog("ip -o addr")
-         self.add_cmd_output("route -n", root_symlink = "route")
-         self.collect_iptable("filter")
-         self.collect_iptable("nat")
-@@ -101,8 +100,9 @@ class Networking(Plugin):
-         self.add_cmd_output("ip mroute show")
-         self.add_cmd_output("ip maddr show")
-         self.add_cmd_output("ip neigh show")
--        if ip_addr_out:
--            for eth in self.get_interface_name(ip_addr_out):
-+        ip_link_out=self.call_ext_prog("ip -o link")
-+        if ip_link_out:
-+            for eth in self.get_eth_interfaces(ip_link_out):
-                 self.add_cmd_output("ethtool "+eth)
-                 self.add_cmd_output("ethtool -i "+eth)
-                 self.add_cmd_output("ethtool -k "+eth)
diff --git a/SOURCES/sos-bz1031124-fix-multiple-plugin-opts.patch b/SOURCES/sos-bz1031124-fix-multiple-plugin-opts.patch
deleted file mode 100644
index 9644c35..0000000
--- a/SOURCES/sos-bz1031124-fix-multiple-plugin-opts.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit b98878d0843b8da9c1c963dc855889ec104bb5df
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Nov 18 13:05:00 2013 +0000
-
-    Revert change to --plugin-options parser action
-    
-    Commit 6ea48cb changed the action for the -k/--plugin-option
-    command line argument from 'extend' to 'append'. This breaks the
-    handling of options that are chained with a ',':
-    
-     logs.logsize              1,logs.all_logs max size (MiB) to collect per syslog file
-     logs.all_logs             off             collect all log files defined in syslog.conf
-    
-    vs:
-    
-     logs.logsize              1               max size (MiB) to collect per syslog file
-     logs.all_logs             on              collect all log files defined in syslog.conf
-    
-    Revert to an 'append' action for this switch.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 48bb3af..4ea5f95 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -477,7 +477,7 @@ class SoSOptions(object):
-         parser.add_option("-o", "--only-plugins", action="extend",
-                              dest="onlyplugins", type="string",
-                              help="enable these plugins only", default = deque())
--        parser.add_option("-k", "--plugin-option", action="append",
-+        parser.add_option("-k", "--plugin-option", action="extend",
-                              dest="plugopts", type="string",
-                              help="plugin options in plugname.option=value format (see -l)",
-                              default = deque())
diff --git a/SOURCES/sos-bz1031126-correct-log-and-message-levels.patch b/SOURCES/sos-bz1031126-correct-log-and-message-levels.patch
deleted file mode 100644
index fb1ac2f..0000000
--- a/SOURCES/sos-bz1031126-correct-log-and-message-levels.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-commit c8ea3f5e17e48c577d8f6dde6ac0b782b72f98d6
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Nov 18 12:52:40 2013 +0000
-
-    Change default console log level to WARNING to match sos-2.2
-    
-    Commit 6ea48cb changed the default log level for console output
-    from WARNING to ERROR and reclassified several messages.
-    
-    This causes plug-in validation messages to be silent at the
-    default verbosity.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 4ea5f95..595015f 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -669,7 +669,7 @@ class SoSReport(object):
-             elif self.opts.verbosity > 0:
-                 console.setLevel(logging.INFO)
-             else:
--                console.setLevel(logging.ERROR)
-+                console.setLevel(logging.WARNING)
-             self.soslog.addHandler(console)
- 
-         # ui log
-commit c2ab28f7fb159f149314a83f2493739f2d2aa88b
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Nov 18 13:02:19 2013 +0000
-
-    Reclasify 'error' messages as 'warning'
-    
-    Several log messages used the 'error' level when reporting an
-    event that is not necessarily an error (and does not prevent sos
-    from continuing).
-    
-    Reclassify these to the 'warning' log level instead.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/kernel.py b/sos/plugins/kernel.py
-index 1afe9df..f96fe6c 100644
---- a/sos/plugins/kernel.py
-+++ b/sos/plugins/kernel.py
-@@ -32,7 +32,7 @@ class Kernel(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-             modules = os.listdir(self.sys_module)
-             self.add_cmd_output("modinfo " + " ".join(modules))
-         except OSError:
--            self.soslog.error("could not list %s" % self.sys_module)
-+            self.soslog.warning("could not list %s" % self.sys_module)
- 
-         self.add_cmd_output("dmesg")
-         self.add_cmd_output("sysctl -a")
-diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py
-index 570262a..1086208 100644
---- a/sos/plugins/sar.py
-+++ b/sos/plugins/sar.py
-@@ -47,7 +47,7 @@ class Sar(Plugin,):
-         try:
-             dirList = os.listdir(self.sa_path)
-         except:
--            self.soslog.error("sar: could not list /var/log/sa")
-+            self.soslog.warning("sar: could not list /var/log/sa")
-             return
-         # find all the sa file that don't have an existing sar file
-         for fname in dirList:
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 595015f..1c81af9 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -772,13 +772,13 @@ class SoSReport(object):
- 
-                 for plugin_class in plugin_classes:
-                     if not self.policy.validatePlugin(plugin_class):
--                        self.soslog.debug(_("plugin %s does not validate, skipping") % plug)
-+                        self.soslog.warning(_("plugin %s does not validate, skipping") % plug)
-                         if self.opts.verbosity > 0:
-                             self._skip(plugin_class, _("does not validate"))
-                         continue
- 
-                     if plugin_class.requires_root and not self._is_root:
--                        self.soslog.debug(_("plugin %s requires root permissions to execute, skipping") % plug)
-+                        self.soslog.info(_("plugin %s requires root permissions to execute, skipping") % plug)
-                         self._skip(plugin_class, _("requires root"))
-                         continue
- 
diff --git a/SOURCES/sos-bz1031126-fix-verbose-file-logging.patch b/SOURCES/sos-bz1031126-fix-verbose-file-logging.patch
deleted file mode 100644
index 12100fe..0000000
--- a/SOURCES/sos-bz1031126-fix-verbose-file-logging.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-commit 23cdbd97a6bd2e44d87f01d6bf90b66667c4d7be
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Feb 3 12:09:57 2014 +0000
-
-    Fix verbose file logging
-    
-    Prior versions of sos enable debug logging to the embedded log
-    file (sos_logs/sos.log) when a single '-v' is given. Restore this
-    behaviour and ensure that command-not-found messages are reported
-    at 'info' rather than 'warning' level.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
-index 681299a..b4768b0 100644
---- a/sos/plugins/__init__.py
-+++ b/sos/plugins/__init__.py
-@@ -482,7 +482,7 @@ class Plugin(object):
-             self.soslog.warning("command '%s' timed out after %ds"
-                     % (prog, timeout))
-         if status == 127:
--            self.soslog.warning("could not run '%s': command not found" % prog)
-+            self.soslog.info("could not run '%s': command not found" % prog)
-         return (status, output, runtime)
- 
-     def call_ext_prog(self, prog, timeout=300):
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index fb3aea7..22e0ab2 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -651,6 +651,7 @@ class SoSReport(object):
-                 flog.setLevel(logging.DEBUG)
-             elif self.opts.verbosity > 0:
-                 console.setLevel(logging.INFO)
-+                flog.setLevel(logging.DEBUG)
-             else:
-                 console.setLevel(logging.WARNING)
-             self.soslog.addHandler(console)
diff --git a/SOURCES/sos-bz1034865-remove-anaconda-ks-cfg-from-general.patch b/SOURCES/sos-bz1034865-remove-anaconda-ks-cfg-from-general.patch
deleted file mode 100644
index 4b5c4e1..0000000
--- a/SOURCES/sos-bz1034865-remove-anaconda-ks-cfg-from-general.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 8945cfd19c3d06d6cb79774a5d070016482f6976 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Tue, 26 Nov 2013 17:33:51 +0000
-Subject: [PATCH] Do not collect anaconda-ks.cfg in general plug-in
-
-The anaconda kickstart file is Red Hat specific and should not
-be collected in the general plugin. It may also contain plaintext
-or encrypted passwords - these are handled properly in the
-anaconda plugin itself but are missing from the copy in general.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/general.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sos/plugins/general.py b/sos/plugins/general.py
-index d7059e6..a6964c4 100644
---- a/sos/plugins/general.py
-+++ b/sos/plugins/general.py
-@@ -33,8 +33,8 @@ class General(Plugin):
-             "/etc/hostid",
-             "/var/lib/dbus/machine-id",
-             "/etc/exports",
--            "/etc/localtime",
--            "/root/anaconda-ks.cfg"])
-+            "/etc/localtime"
-+        ])
- 
-         self.add_cmd_output("hostname", root_symlink="hostname")
-         self.add_cmd_output("date", root_symlink="date")
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1034956-log-command-timeouts.patch b/SOURCES/sos-bz1034956-log-command-timeouts.patch
deleted file mode 100644
index 1790bfc..0000000
--- a/SOURCES/sos-bz1034956-log-command-timeouts.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-commit b4c768e38289e2cd85d09a1f465b233ba676b281
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Nov 26 18:35:37 2013 +0000
-
-    Log a warning when external commands time out
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
-index e25f035..b86351f 100644
---- a/sos/plugins/__init__.py
-+++ b/sos/plugins/__init__.py
-@@ -476,12 +476,21 @@ class Plugin(object):
-             if filespec not in self.copy_paths:
-                 self.copy_paths.append((filespec, sub))
- 
-+    def get_command_output(self, prog, timeout=300):
-+        (status, output, runtime) = sos_get_command_output(prog, timeout)
-+        if status == 124:
-+            self.soslog.warning("command %s timed out after %ds"
-+                    % (prog, timeout))
-+        if status == 127:
-+            self.soslog.warning("could not run '%s': command not found" % prog)
-+        return (status, output, runtime)
-+
-     def call_ext_prog(self, prog, timeout=300):
-         """Execute a command independantly of the output gathering part of
-         sosreport.
-         """
-         # pylint: disable-msg = W0612
--        return sos_get_command_output(prog, timeout)
-+        return self.get_command_output(prog, timeout)
- 
-     def check_ext_prog(self, prog):
-         """Execute a command independently of the output gathering part of
-@@ -541,9 +550,8 @@ class Plugin(object):
-             start_time = time()
- 
-         # pylint: disable-msg = W0612
--        status, shout, runtime = sos_get_command_output(exe, timeout=timeout)
-+        status, shout, runtime = self.get_command_output(exe, timeout=timeout)
-         if (status == 127):
--            self.soslog.debug("could not run '%s': command not found" % exe)
-             return None
- 
-         if suggest_filename:
-commit 4787ffa73970048eacc576081d4e35671d0fc408
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Nov 26 18:39:43 2013 +0000
-
-    Make command quoting in log messages consistent
-    
-    The last commit adds a log message for commands that time out but
-    is inconsistent with other messages that include an external
-    command string. Quote the command for better readability.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
-index b86351f..681299a 100644
---- a/sos/plugins/__init__.py
-+++ b/sos/plugins/__init__.py
-@@ -479,7 +479,7 @@ class Plugin(object):
-     def get_command_output(self, prog, timeout=300):
-         (status, output, runtime) = sos_get_command_output(prog, timeout)
-         if status == 124:
--            self.soslog.warning("command %s timed out after %ds"
-+            self.soslog.warning("command '%s' timed out after %ds"
-                     % (prog, timeout))
-         if status == 127:
-             self.soslog.warning("could not run '%s': command not found" % prog)
diff --git a/SOURCES/sos-bz1034970-update-sos-ui-text.patch b/SOURCES/sos-bz1034970-update-sos-ui-text.patch
deleted file mode 100644
index c85f620..0000000
--- a/SOURCES/sos-bz1034970-update-sos-ui-text.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-commit 93ddb343c48d7158f34c0e5e8f016b2798a078e8
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Fri Jan 24 15:42:53 2014 +0000
-
-    Tidy up formatting of UI preamble text
-    
-    The formatting of the template preamble used a narrow terminal
-    width since there is no native python method for obtaining the
-    actual terminal geometry and the common methods for doing this
-    are non-portable (e.g. Windows specific ioctls or shelling out
-    to stty).
-    
-    This causes the top of the message to scroll off the screen on
-    a standard 80x25 terminal (e.g. putty or a non-resized
-    gnome-terminal or xterm window).
-    
-    Remove the paragraph indentation and increase the assumed width
-    from 58 to 72 chars. This causes the message to fill a standard
-    80x25 terminal without scrolling.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
-index 47ace5c..c9cfd21 100644
---- a/sos/policies/__init__.py
-+++ b/sos/policies/__init__.py
-@@ -115,17 +115,21 @@ class PackageManager(object):
- class Policy(object):
- 
-     msg = _("""\
--This command will collect system configuration and diagnostic information \
--from this %(distro)s system. An archive containing the collected information \
--will be generated in %(tmpdir)s.
-+This command will collect diagnostic and configuration \
-+information from this %(distro)s system and installed \
-+applications.
- 
--For more information on %(vendor)s visit:
-+An archive containing the collected information will be \
-+generated in %(tmpdir)s and may be provided to a %(vendor)s \
-+support representative.
- 
-+Any information provided to %(vendor)s will be treated in \
-+accordance with the published support policies at:\n
-   %(vendor_url)s
- 
--The generated archive may contain data considered sensitive and its content \
--should be reviewed by the originating organization before being passed to \
--any third party.
-+The generated archive may contain data considered sensitive \
-+and its content should be reviewed by the originating \
-+organization before being passed to any third party.
- 
- No changes will be made to system configuration.
- %(vendor_text)s
-@@ -296,14 +300,14 @@ No changes will be made to system configuration.
-         the user in non-batch mode. If your policy sets self.distro that
-         text will be substituted accordingly. You can also override this
-         method to do something more complicated."""
--        width = 58
-+        width = 72
-         _msg = self.msg % {'distro': self.distro, 'vendor': self.vendor,
-                     'vendor_url': self.vendor_url,
-                     'vendor_text': self.vendor_text,
-                     'tmpdir': self.commons['tmpdir']}
-         _fmt = ""
-         for line in _msg.splitlines():
--            _fmt = _fmt + fill("  " + line, width, replace_whitespace = False) + '\n'
-+            _fmt = _fmt + fill(line, width, replace_whitespace = False) + '\n'
-         return _fmt
- 
- 
-diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py
-index 9321815..5b3a446 100644
---- a/sos/policies/redhat.py
-+++ b/sos/policies/redhat.py
-@@ -91,26 +91,6 @@ class RedHatPolicy(LinuxPolicy):
-         return self.host_name()
- 
- class RHELPolicy(RedHatPolicy):
--
--    msg = _("""\
--This command will collect system configuration and diagnostic information \
--from this %(distro)s system. An archive containing the collected information \
--will be generated in %(tmpdir)s and may be provided to a %(vendor)s support \
--representative or used for local diagnostic or recording purposes.
--
--Any information provided to %(vendor)s will be treated in strict confidence \
--in accordance with the published support policies at:
--
--  %(vendor_url)s
--
--The generated archive may contain data considered sensitive and its content \
--should be reviewed by the originating organization before being passed to \
--any third party.
--
--No changes will be made to system configuration.
--%(vendor_text)s
--""")
--
-     distro = "Red Hat Enterprise Linux"
-     vendor = "Red Hat"
-     vendor_url = "https://access.redhat.com/support/"
diff --git a/SOURCES/sos-bz1036752-fix-gluster-volume-name-extraction.patch b/SOURCES/sos-bz1036752-fix-gluster-volume-name-extraction.patch
deleted file mode 100644
index 288f8e0..0000000
--- a/SOURCES/sos-bz1036752-fix-gluster-volume-name-extraction.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit 8447dec1831feb4d93bf8d300880f87765efb1c8
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Feb 10 15:07:36 2014 +0000
-
-    Fix gluster volume name extraction
-    
-    The get_volume_names() function in the gluster plugin tries to
-    extract volume names from the output of the "gluster volume info"
-    command using a slice range. The range start should be 12 to
-    account for the "Volume Name:" label at the start of the line.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py
-index 02dbac3..4286b59 100644
---- a/sos/plugins/gluster.py
-+++ b/sos/plugins/gluster.py
-@@ -39,7 +39,7 @@ class Gluster(Plugin, RedHatPlugin):
-         for line in fp.readlines():
-             if not line.startswith("Volume Name:"):
-                 continue
--            volname = line[14:-1]
-+            volname = line[12:-1]
-             out.append(volname)
-         fp.close()
-         return out
diff --git a/SOURCES/sos-bz1036752-gluster-include-geo-replication.patch b/SOURCES/sos-bz1036752-gluster-include-geo-replication.patch
deleted file mode 100644
index 3ae6a15..0000000
--- a/SOURCES/sos-bz1036752-gluster-include-geo-replication.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From e05bfa7444cacc91972dfbf766f0a9495a7715fb Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Mon, 3 Feb 2014 14:36:46 +0000
-Subject: [PATCH 1/2] Make get_cmd_output_now() behaviour match 2.2
-
-The equivalent method in sos-2.2, collectOutputNow() returned an
-absolute path to the collected file. Since the archive changes in
-3.0 this now returns a path relative to the root of the archive.
-
-This breaks existing users of the interface that try to open and
-process the content of the collected file (e.g. gluster).
-
-Return a join of the archive path and file path to the caller.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/__init__.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
-index b4768b0..4a72161 100644
---- a/sos/plugins/__init__.py
-+++ b/sos/plugins/__init__.py
-@@ -572,7 +572,7 @@ class Plugin(object):
-             time_passed = time() - start_time
-             self.proflog.debug("output: %-75s time: %f" % (exe, time_passed))
- 
--        return outfn
-+        return os.path.join(self.archive.get_archive_path(), outfn)
- 
-     # For adding output
-     def add_alert(self, alertstring):
--- 
-1.7.11.7
-
-
-From febb52040123293b9de01bc86c4f5c485e3bfc77 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Mon, 3 Feb 2014 15:17:55 +0000
-Subject: [PATCH 2/2] Include geo-replication status in gluster plugin
-
-Add the output of 'gluster volume geo-replication status' for
-each discovered gluster volume to the report.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/gluster.py | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py
-index 7c54fa0..02dbac3 100644
---- a/sos/plugins/gluster.py
-+++ b/sos/plugins/gluster.py
-@@ -102,6 +102,13 @@ class Gluster(Plugin, RedHatPlugin):
-         self.add_copy_spec('/tmp/glusterdump.options')
-         self.add_copy_spec(self.statedump_dir)
- 
-+        volume_file = self.get_cmd_output_now("gluster volume info",
-+                        "gluster_volume_info")
-+        if volume_file:
-+            for volname in self.get_volume_names(volume_file):
-+                self.add_cmd_output("gluster volume geo-replication %s status"
-+                                    % volname)
-+
-         self.add_cmd_output("gluster volume status")
-         # collect this last as some of the other actions create log entries
-         self.add_copy_spec("/var/log/glusterfs")
--- 
-1.7.11.7
-
diff --git a/SOURCES/sos-bz1039036-add-rhsm-debug-to-yum.patch b/SOURCES/sos-bz1039036-add-rhsm-debug-to-yum.patch
deleted file mode 100644
index 43335a6..0000000
--- a/SOURCES/sos-bz1039036-add-rhsm-debug-to-yum.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit eaa0d9442972a38635967d855c57bbfbe6ba7023
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Feb 3 13:03:04 2014 +0000
-
-    Add rhsm-debug collection to yum plugin
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py
-index 867302c..a9ae4e4 100644
---- a/sos/plugins/yum.py
-+++ b/sos/plugins/yum.py
-@@ -48,6 +48,8 @@ class Yum(Plugin, RedHatPlugin):
-             "/var/log/rhsm/rhsmcertd.log"])
-         self.add_cmd_output("subscription-manager list --installed")
-         self.add_cmd_output("subscription-manager list --consumed")
-+        self.add_cmd_output("rhsm-debug system --destination %s"
-+                % self.get_cmd_dir())
- 
-         if self.get_option("yumlist"):
-             # List various information about available packages
diff --git a/SOURCES/sos-bz1039036-call-rhsm-debug-with-sos.patch b/SOURCES/sos-bz1039036-call-rhsm-debug-with-sos.patch
deleted file mode 100644
index 5b221aa..0000000
--- a/SOURCES/sos-bz1039036-call-rhsm-debug-with-sos.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-commit 23f9f34afc7f87bf72683909ca947a82b50cad4e
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Thu Mar 20 18:56:58 2014 +0000
-
-    Call rhsm-debug with the --sos switch
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py
-index 81788f1..9953a50 100644
---- a/sos/plugins/yum.py
-+++ b/sos/plugins/yum.py
-@@ -48,8 +48,8 @@ class Yum(Plugin, RedHatPlugin):
-             "/var/log/rhsm/rhsmcertd.log"])
-         self.add_cmd_output("subscription-manager list --installed")
-         self.add_cmd_output("subscription-manager list --consumed")
--        self.add_cmd_output("rhsm-debug system --no-archive --destination %s"
--                % self.get_cmd_dir())
-+        self.add_cmd_output("rhsm-debug system --sos --no-archive --destination %s"
-+                             % self.get_cmd_dir())
- 
-         if self.get_option("yumlist"):
-             # List various information about available packages
diff --git a/SOURCES/sos-bz1039036-pass-no-archive-to-rhsm-debug.patch b/SOURCES/sos-bz1039036-pass-no-archive-to-rhsm-debug.patch
deleted file mode 100644
index 363d3f8..0000000
--- a/SOURCES/sos-bz1039036-pass-no-archive-to-rhsm-debug.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit d5cbe4470b7bd6019b20e8c9d1de478fac622aad
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Feb 4 15:43:56 2014 +0000
-
-    Pass --no-archive to rhsm-debug script
-    
-    Versions of subscription-manager since 1.10.11-2.el7 support the
-    --no-archive option to disable creation of a zip archive. Pass
-    this to the script to have the output stored in a directory in
-    the archive.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py
-index a9ae4e4..81788f1 100644
---- a/sos/plugins/yum.py
-+++ b/sos/plugins/yum.py
-@@ -48,7 +48,7 @@ class Yum(Plugin, RedHatPlugin):
-             "/var/log/rhsm/rhsmcertd.log"])
-         self.add_cmd_output("subscription-manager list --installed")
-         self.add_cmd_output("subscription-manager list --consumed")
--        self.add_cmd_output("rhsm-debug system --destination %s"
-+        self.add_cmd_output("rhsm-debug system --no-archive --destination %s"
-                 % self.get_cmd_dir())
- 
-         if self.get_option("yumlist"):
diff --git a/SOURCES/sos-bz1051009-fix-fd-leaks-on-popen.patch b/SOURCES/sos-bz1051009-fix-fd-leaks-on-popen.patch
deleted file mode 100644
index 232a181..0000000
--- a/SOURCES/sos-bz1051009-fix-fd-leaks-on-popen.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-commit 4f7231a897fb65aaf6ec7f079784ff9d3da44266
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Feb 4 11:37:15 2014 +0000
-
-    Ensure unused fds are closed when calling subprocesses via Popen
-    
-    When sos communicates with a child process using Popen all IO
-    takes place on stdin/stdout/stderr (or a subset). No other open
-    file descriptors should be inherited by the child.
-    
-    Make all calls to Popen set close_fds=True.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/archive.py b/sos/archive.py
-index 28bf197..67270db 100644
---- a/sos/archive.py
-+++ b/sos/archive.py
-@@ -250,8 +250,12 @@ class TarFileArchive(FileCacheArchive):
-             if cmd != "gzip":
-                 cmd = "%s -1" % cmd
-             try:
--                command = shlex.split("%s %s" % (cmd,self.name()))
--                p = Popen(command, stdout=PIPE, stderr=PIPE, bufsize=-1)
-+                command = shlex.split("%s %s" % (cmd, self.name()))
-+                p = Popen(command,
-+                          stdout=PIPE,
-+                          stderr=PIPE,
-+                          bufsize=-1,
-+                          close_fds=True)
-                 stdout, stderr = p.communicate()
-                 if stdout:
-                     log.info(stdout)
-diff --git a/sos/plugins/emc.py b/sos/plugins/emc.py
-index 89d0734..f73bccd 100644
---- a/sos/plugins/emc.py
-+++ b/sos/plugins/emc.py
-@@ -196,7 +196,8 @@ class Emc(Plugin, RedHatPlugin):
-             while CLARiiON_IP_loop == "stay_in":
-                 ans = raw_input("CLARiiON SP IP Address or [Enter] to exit: ")
-                 ## Check to make sure the CLARiiON SP IP address provided is valid
--                p = Popen("navicli -h %s getsptime" % (ans,), shell=True, stdout=PIPE, stderr=PIPE)
-+                p = Popen("navicli -h %s getsptime" % (ans,),
-+                            shell=True, stdout=PIPE, stderr=PIPE, close_fds=True)
-                 out, err = p.communicate()
-                 if p.returncode == 0:
-                     CLARiiON_IP_address_list.append(ans)
-diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py
-index 5b3a446..4e5b363 100644
---- a/sos/policies/redhat.py
-+++ b/sos/policies/redhat.py
-@@ -68,7 +68,8 @@ class RedHatPolicy(LinuxPolicy):
-                   shell=True,
-                   stdout=PIPE,
-                   stderr=PIPE,
--                  bufsize=-1)
-+                  bufsize=-1,
-+                  close_fds=True)
-         out, err = p.communicate()
-         if err:
-             return ret
-diff --git a/sos/utilities.py b/sos/utilities.py
-index fcc78c5..f1728fd 100644
---- a/sos/utilities.py
-+++ b/sos/utilities.py
-@@ -159,7 +159,7 @@ def sos_get_command_output(command, timeout=300):
- 
-         p = Popen(command, shell=True,
-                 stdout=PIPE, stderr=STDOUT,
--                bufsize=-1, env = cmd_env)
-+                bufsize=-1, env = cmd_env, close_fds = True)
-         stdout, stderr = p.communicate()
-         return (p.returncode, stdout, 0)
-     else:
diff --git a/SOURCES/sos-bz1059760-add-distupgrade-plugin.patch b/SOURCES/sos-bz1059760-add-distupgrade-plugin.patch
deleted file mode 100644
index f65a14c..0000000
--- a/SOURCES/sos-bz1059760-add-distupgrade-plugin.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-commit 19b479bb0686ff1079300f417505503f8ba8f3d5
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Feb 10 15:27:24 2014 +0000
-
-    Add distupgrade plugin
-    
-    Add a new plugin to collect data relating to completed or
-    attempted distribution upgrades. Currently supports the Red Hat
-    set of tools and files but other distributions can supply their
-    own filelists or override setup() to perform other distribution
-    specific actions.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/distupgrade.py b/sos/plugins/distupgrade.py
-new file mode 100644
-index 0000000..b45d099
---- /dev/null
-+++ b/sos/plugins/distupgrade.py
-@@ -0,0 +1,39 @@
-+## Copyright (C) 2014 Red Hat, Inc., Bryn M. Reeves <bmr@redhat.com>
-+
-+### This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published by
-+## the Free Software Foundation; either version 2 of the License, or
-+## (at your option) any later version.
-+
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+
-+## You should have received a copy of the GNU General Public License
-+## along with this program; if not, write to the Free Software
-+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+import os
-+from sos.plugins import Plugin, RedHatPlugin
-+
-+class DistUpgrade(Plugin):
-+    """ Distribution upgrade data """
-+
-+    plugin_name = "distupgrade"
-+
-+    files = None
-+
-+    def setup(self):
-+        self.add_copy_specs(list(self.files))
-+
-+class RedHatDistUpgrade(DistUpgrade, RedHatPlugin):
-+
-+    files = (
-+        "/var/log/upgrade.log",
-+        "/var/log/redhat_update_tool.log",
-+        "/root/preupgrade/all-xccdf*",
-+        "/root/preupgrade/kickstart"
-+    )
-+
-+
diff --git a/SOURCES/sos-bz1067769-fix-anacron-checks.patch b/SOURCES/sos-bz1067769-fix-anacron-checks.patch
deleted file mode 100644
index f76b94d..0000000
--- a/SOURCES/sos-bz1067769-fix-anacron-checks.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 4b20ae8823032918df1f1aee1c2b649d8c316f35
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Mar 3 13:56:23 2014 +0000
-
-    Replace package check with file check in anacron
-    
-    The anacron facility may be provided by packages named 'anacron',
-    'chronie-anacron' etc. They all use a common /etc/anacrontab file
-    so check for this instead.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/anacron.py b/sos/plugins/anacron.py
-index 04b0dcb..b337c18 100644
---- a/sos/plugins/anacron.py
-+++ b/sos/plugins/anacron.py
-@@ -20,7 +20,9 @@ class Anacron(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
- 
-     plugin_name = 'anacron'
- 
--    packages = ('anacron',)
-+    # anacron may be provided by anacron, cronie-anacron etc.
-+    # just look for the configuration file which is common
-+    files = ('/etc/anacrontab',)
- 
-     def setup(self):
--        self.add_copy_spec("/etc/anacrontab")
-+        self.add_copy_specs(list(self.files))
diff --git a/SOURCES/sos-bz1087515-corosync-add-postprocessing-for-corosync-objctl.patch b/SOURCES/sos-bz1087515-corosync-add-postprocessing-for-corosync-objctl.patch
new file mode 100644
index 0000000..f76548b
--- /dev/null
+++ b/SOURCES/sos-bz1087515-corosync-add-postprocessing-for-corosync-objctl.patch
@@ -0,0 +1,35 @@
+From 77ea53cf7c13c59c2a1f4608d59e1b9e8f4da835 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Wed, 15 Oct 2014 15:57:47 +0100
+Subject: [PATCH] [corosync] add postprocessing for corosync-objctl output
+
+The corosync-objctl command may include fence device passwords in
+its output. Remove them with the same postprocessing regex as the
+cluster plugin uses.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/corosync.py | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/sos/plugins/corosync.py b/sos/plugins/corosync.py
+index 2cd22c3..db9b547 100644
+--- a/sos/plugins/corosync.py
++++ b/sos/plugins/corosync.py
+@@ -40,6 +40,13 @@ class Corosync(Plugin):
+         ])
+         self.call_ext_prog("killall -USR2 corosync")
+ 
++    def postproc(self):
++        self.do_cmd_output_sub(
++            "corosync-objctl",
++            r"(.*fence.*\.passwd=)(.*)",
++            r"\1******"
++        )
++
+ 
+ class RedHatCorosync(Corosync, RedHatPlugin):
+ 
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1087977-sosreport-catch-oserror-in-execute.patch b/SOURCES/sos-bz1087977-sosreport-catch-oserror-in-execute.patch
new file mode 100644
index 0000000..a516793
--- /dev/null
+++ b/SOURCES/sos-bz1087977-sosreport-catch-oserror-in-execute.patch
@@ -0,0 +1,71 @@
+From 95bb5df9eda253afed15fa81340d31e03c40fe94 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Tue, 13 Jan 2015 17:10:06 +0000
+Subject: [PATCH] [sosreport] catch OSError exceptions in SoSReport.execute()
+
+OSError exceptions during logging setup and tear down are not
+currently handled:
+
+  Traceback (most recent call last):
+    File "/usr/sbin/sosreport", line 25, in <module>
+      main(sys.argv[1:])
+    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1409, in main
+      sos.execute()
+    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1366, in execute
+      self._setup_logging()
+    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 739, in _setup_logging
+      self.sos_log_file = self.get_temp_file()
+    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 670, in get_temp_file
+      return self.tempfile_util.new()
+    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 82, in new
+      fd, fname = tempfile.mkstemp(dir=self.tmp_dir)
+    File "/usr/lib64/python2.7/tempfile.py", line 304, in mkstemp
+      return _mkstemp_inner(dir, prefix, suffix, flags)
+    File "/usr/lib64/python2.7/tempfile.py", line 239, in _mkstemp_inner
+      fd = _os.open(file, flags, 0600)
+  OSError: [Errno 28] No space left on device: '/tmp/tmp.4ejNitjwcr/nospace_tmp/tmpBjPTOm'
+
+Address this by adding OSError to the list of caught exceptions
+in the main SoSReport.execute() method. Wrap the exception branch
+clean up in a try/except block to catch additional exceptions
+while attempting to clean up (e.g. unlink failures following an
+EROFS on the temporary archive path).
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/sosreport.py | 19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/sos/sosreport.py b/sos/sosreport.py
+index 0dd26ad..2a16555 100644
+--- a/sos/sosreport.py
++++ b/sos/sosreport.py
+@@ -1395,12 +1395,19 @@ class SoSReport(object):
+             self.version()
+ 
+             return self.final_work()
+-        except (SystemExit, KeyboardInterrupt):
+-            if self.archive:
+-                self.archive.cleanup()
+-            if self.tempfile_util:
+-                self.tempfile_util.clean()
+-            return False
++
++        except (OSError, SystemExit, KeyboardInterrupt):
++            try:
++                # archive and tempfile cleanup may fail due to a fatal
++                # OSError exception (ENOSPC, EROFS etc.).
++                if self.archive:
++                    self.archive.cleanup()
++                if self.tempfile_util:
++                    self.tempfile_util.clean()
++            except:
++                pass
++
++        return False
+ 
+ 
+ def main(args):
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1087977-sosreport-do-not-make-logging-calls-after-oserror.patch b/SOURCES/sos-bz1087977-sosreport-do-not-make-logging-calls-after-oserror.patch
new file mode 100644
index 0000000..6a3b057
--- /dev/null
+++ b/SOURCES/sos-bz1087977-sosreport-do-not-make-logging-calls-after-oserror.patch
@@ -0,0 +1,41 @@
+From ed44939d5988098feb3f3ddededd68a0a4b9a9df Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Tue, 13 Jan 2015 17:26:33 +0000
+Subject: [PATCH] [sosreport] do not make logging calls after OSError
+
+Following an OSError during archive setup the logging subsystem
+is potentially in an inconsistent or unusable state (e.g. due to
+a readonly file system error).
+
+Use the print function directly since we just need to report the
+error and exit.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/sosreport.py | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/sos/sosreport.py b/sos/sosreport.py
+index 2a16555..3c0397c 100644
+--- a/sos/sosreport.py
++++ b/sos/sosreport.py
+@@ -1091,10 +1091,13 @@ class SoSReport(object):
+             self._make_archive_paths()
+             return
+         except (OSError, IOError) as e:
++            # we must not use the logging subsystem here as it is potentially
++            # in an inconsistent or unreliable state (e.g. an EROFS for the
++            # file system containing our temporary log files).
+             if e.errno in fatal_fs_errors:
+-                self.ui_log.error("")
+-                self.ui_log.error(" %s while setting up archive" % e.strerror)
+-                self.ui_log.error("")
++                print("")
++                print(" %s while setting up archive" % e.strerror)
++                print("")
+             else:
+                 raise e
+         except Exception as e:
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1110918-fix-kpatch-force-enabled.patch b/SOURCES/sos-bz1110918-fix-kpatch-force-enabled.patch
new file mode 100644
index 0000000..aa8ef94
--- /dev/null
+++ b/SOURCES/sos-bz1110918-fix-kpatch-force-enabled.patch
@@ -0,0 +1,33 @@
+From 6b43c42078604b0551923c2801108848e97ba3b9 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Tue, 14 Oct 2014 15:43:20 +0100
+Subject: [PATCH] [kpatch] do not try to read kpatch data if it could not be
+ run
+
+Everything the kpatch plugin does requires the list of available
+kpatch patches obtained from 'kpatch list'. If this fails return
+immediately from the setup method.
+
+Fixes #417.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/kpatch.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sos/plugins/kpatch.py b/sos/plugins/kpatch.py
+index 7909926..6ef557e 100644
+--- a/sos/plugins/kpatch.py
++++ b/sos/plugins/kpatch.py
+@@ -27,6 +27,8 @@ class Kpatch(Plugin, RedHatPlugin):
+ 
+     def setup(self):
+         kpatch_list = self.get_cmd_output_now("kpatch list")
++        if not kpatch_list:
++            return
+         kpatches = open(kpatch_list, "r").read().splitlines()
+         for patch in kpatches:
+             if not re.match("^kpatch-.*\(.*\)", patch):
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1112175-anaconda-make-useradd-password-regex-tolerant.patch b/SOURCES/sos-bz1112175-anaconda-make-useradd-password-regex-tolerant.patch
new file mode 100644
index 0000000..e7b5f5e
--- /dev/null
+++ b/SOURCES/sos-bz1112175-anaconda-make-useradd-password-regex-tolerant.patch
@@ -0,0 +1,26 @@
+From 5a97e0e2571b948f1f7bc602e6f190976de99eee Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Tue, 13 Jan 2015 16:31:58 +0000
+Subject: [PATCH] [anaconda] make useradd password regex tolerant of whitespace
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/anaconda.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sos/plugins/anaconda.py b/sos/plugins/anaconda.py
+index 08d300b..aea3300 100644
+--- a/sos/plugins/anaconda.py
++++ b/sos/plugins/anaconda.py
+@@ -54,7 +54,7 @@ class Anaconda(Plugin, RedHatPlugin):
+         )
+         self.do_file_sub(
+             "/root/anaconda-ks.cfg",
+-            r"(user.*--password=*)(\S*)",
++            r"(user.*--password=*\s*)\s*(\S*)",
+             r"\1********"
+         )
+ 
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1116349-call-rhsm-debug-with-no-subscriptions.patch b/SOURCES/sos-bz1116349-call-rhsm-debug-with-no-subscriptions.patch
new file mode 100644
index 0000000..4e97a53
--- /dev/null
+++ b/SOURCES/sos-bz1116349-call-rhsm-debug-with-no-subscriptions.patch
@@ -0,0 +1,26 @@
+From e8428d458cfd65bdc34d69f32db0bf4f5aca7540 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Thu, 2 Oct 2014 17:16:55 +0100
+Subject: [PATCH] [yum] call rhsm-debug with --no-subscriptions
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/yum.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py
+index 7dac5e4..816e2b0 100644
+--- a/sos/plugins/yum.py
++++ b/sos/plugins/yum.py
+@@ -54,7 +54,7 @@ class Yum(Plugin, RedHatPlugin):
+             "subscription-manager list --consumed"
+         ])
+         self.add_cmd_output("rhsm-debug system --sos --no-archive "
+-                            "--destination %s"
++                            "--no-subscriptions --destination %s"
+                             % self.get_cmd_output_path())
+ 
+         if self.get_option("yumlist"):
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1118152-disable-the-zip-compression-type.patch b/SOURCES/sos-bz1118152-disable-the-zip-compression-type.patch
new file mode 100644
index 0000000..7d3dfd7
--- /dev/null
+++ b/SOURCES/sos-bz1118152-disable-the-zip-compression-type.patch
@@ -0,0 +1,60 @@
+From 081e1ce9f9ad7570d057babd81b474fd407149d7 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Tue, 9 Dec 2014 17:32:45 +0000
+Subject: [PATCH] [sosreport] disable the 'zip' compression type
+
+The Zip archive format is little used and has been broken for
+some time:
+
+   Unexpected exception setting up archive:
+  Traceback (most recent call last):
+    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1092, in prework
+      self._set_archive()
+    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 679, in _set_archive
+      self.archive = ZipFileArchive(archive_name, self.tmpdir)
+  TypeError: __init__() takes exactly 2 arguments (3 given)
+  __init__() takes exactly 2 arguments (3 given)
+
+Remove it from the allowed options list for --compression-type.
+
+The supporting Archive classes can be removed in a separate commit.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/sosreport.py | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/sos/sosreport.py b/sos/sosreport.py
+index 99b5f47..a697380 100644
+--- a/sos/sosreport.py
++++ b/sos/sosreport.py
+@@ -599,7 +599,7 @@ class SoSOptions(object):
+                           dest="report",
+                           help="Disable HTML/XML reporting", default=False)
+         parser.add_option("-z", "--compression-type", dest="compression_type",
+-                          help="compression technology to use [auto, zip, "
++                          help="compression technology to use [auto, "
+                                "gzip, bzip2, xz] (default=auto)",
+                           default="auto")
+ 
+@@ -675,8 +675,6 @@ class SoSReport(object):
+         if self.opts.compression_type == 'auto':
+             auto_archive = self.policy.get_preferred_archive()
+             self.archive = auto_archive(archive_name, self.tmpdir)
+-        elif self.opts.compression_type == 'zip':
+-            self.archive = ZipFileArchive(archive_name, self.tmpdir)
+         else:
+             self.archive = TarFileArchive(archive_name, self.tmpdir)
+         self.archive.set_debug(True if self.opts.debug else False)
+@@ -1080,7 +1078,7 @@ class SoSReport(object):
+         self.policy.pre_work()
+         try:
+             self.ui_log.info(_(" Setting up archive ..."))
+-            compression_methods = ('auto', 'zip', 'bzip2', 'gzip', 'xz')
++            compression_methods = ('auto', 'bzip2', 'gzip', 'xz')
+             method = self.opts.compression_type
+             if method not in compression_methods:
+                 compression_list = ', '.join(compression_methods)
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1126001-mysql-fix-command-line-dbpass-handling.patch b/SOURCES/sos-bz1126001-mysql-fix-command-line-dbpass-handling.patch
new file mode 100644
index 0000000..1cfa94e
--- /dev/null
+++ b/SOURCES/sos-bz1126001-mysql-fix-command-line-dbpass-handling.patch
@@ -0,0 +1,39 @@
+From db9ac3fb615b731be87b4116a8939105bf5ced56 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Tue, 23 Dec 2014 14:40:50 +0000
+Subject: [PATCH] [mysql] fix command-line dbpass handling
+
+The logic for chosing between a command-line and environment
+variable passed password in the MySQL plugin was incorrect. This
+prevents a database dump from being collected when a password is
+given on the command line.
+
+Altough use of the command line to pass authentication tokens
+is discouraged we should ensure the case works.
+
+Fixes #456.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/mysql.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py
+index d148472..edab6d0 100644
+--- a/sos/plugins/mysql.py
++++ b/sos/plugins/mysql.py
+@@ -45,9 +45,9 @@ class Mysql(Plugin):
+         if self.get_option("dbdump"):
+             dbuser = self.get_option("dbuser")
+             dbpass = self.get_option("dbpass")
+-            if dbpass is False and 'MYSQL_PWD' in os.environ:
++            if 'MYSQL_PWD' in os.environ:
+                 dbpass = os.environ['MYSQL_PWD']
+-            else:
++            if not dbpass or dbpass is False:
+                 # no MySQL password
+                 return
+             os.environ['MYSQL_PWD'] = dbpass
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1126001-obtain-mysql-password-from-env.patch b/SOURCES/sos-bz1126001-obtain-mysql-password-from-env.patch
new file mode 100644
index 0000000..fcd3980
--- /dev/null
+++ b/SOURCES/sos-bz1126001-obtain-mysql-password-from-env.patch
@@ -0,0 +1,89 @@
+From 3d4cf0365d520be81abfe3435fa9a8a56a933961 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Mon, 20 Oct 2014 09:31:32 +0100
+Subject: [PATCH 1/2] [mysql] obtain dbpass from the environment
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/mysql.py | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py
+index 8bc6e72..1203f5c 100644
+--- a/sos/plugins/mysql.py
++++ b/sos/plugins/mysql.py
+@@ -13,7 +13,7 @@
+ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ 
+ from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+-
++import os
+ 
+ class Mysql(Plugin):
+     """MySQL and MariaDB RDBMS
+@@ -25,7 +25,7 @@ class Mysql(Plugin):
+ 
+     option_list = [
+         ("dbuser", "username for database dumps", "", "mysql"),
+-        ("dbpass", "password for database dumps", "", ""),
++        ("dbpass", "password for database dumps", "", False),
+         ("dbdump", "collect a database dump", "", False)
+     ]
+ 
+@@ -44,7 +44,14 @@ class Mysql(Plugin):
+         if self.get_option("dbdump"):
+             dbuser = self.get_option("dbuser")
+             dbpass = self.get_option("dbpass")
+-            opts = "--user=%s --password=%s --all-databases" % (dbuser, dbpass)
++            if dbpass == False and 'MYSQL_PWD' in os.environ:
++                dbpass = os.environ['MYSQL_PWD']
++            else:
++                # no MySQL password
++                return
++            os.environ['MYSQL_PWD'] = dbpass
++
++            opts = "--user=%s --all-databases" % dbuser
+             name = "mysqldump_--all-databases"
+             self.add_cmd_output("mysqldump %s" % opts, suggest_filename=name)
+ 
+-- 
+1.9.3
+
+
+From 6ce502113f550c027424fa477edc091283c32e50 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Mon, 20 Oct 2014 14:33:57 +0100
+Subject: [PATCH 2/2] [mysql] fix pep8 violations
+
+The previous commit had a couple of pep8 errors that were fixed
+in the working tree but not added to the commit; fix them.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/mysql.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py
+index 1203f5c..d148472 100644
+--- a/sos/plugins/mysql.py
++++ b/sos/plugins/mysql.py
+@@ -15,6 +15,7 @@
+ from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+ import os
+ 
++
+ class Mysql(Plugin):
+     """MySQL and MariaDB RDBMS
+     """
+@@ -44,7 +45,7 @@ class Mysql(Plugin):
+         if self.get_option("dbdump"):
+             dbuser = self.get_option("dbuser")
+             dbpass = self.get_option("dbpass")
+-            if dbpass == False and 'MYSQL_PWD' in os.environ:
++            if dbpass is False and 'MYSQL_PWD' in os.environ:
+                 dbpass = os.environ['MYSQL_PWD']
+             else:
+                 # no MySQL password
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1139339-foreman-add-plugin.patch b/SOURCES/sos-bz1139339-foreman-add-plugin.patch
deleted file mode 100644
index 235a88e..0000000
--- a/SOURCES/sos-bz1139339-foreman-add-plugin.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up sos-3.0/sos/plugins/foreman.py.orig sos-3.0/sos/plugins/foreman.py
---- sos-3.0/sos/plugins/foreman.py.orig	2014-10-03 17:17:51.218891639 +0100
-+++ sos-3.0/sos/plugins/foreman.py	2014-10-03 17:17:30.861758765 +0100
-@@ -0,0 +1,32 @@
-+# Copyright (C) 2013 Red Hat, Inc., Lukas Zapletal <lzap@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin
-+import os
-+
-+class Foreman(Plugin, RedHatPlugin):
-+    """Foreman systems management
-+    """
-+
-+    plugin_name = 'foreman'
-+    packages = ('foreman')
-+
-+    def setup(self):
-+        cmd = "foreman-debug"
-+        path = os.path.join(self.get_cmd_dir(), "foreman-debug")
-+        self.add_cmd_output("%s -q -a -d %s" % (cmd, path))
-+
-+# vim: et ts=4 sw=4
diff --git a/SOURCES/sos-bz1140427-powerpc-allow-powerpc-plugin-to-run-on-ppc64le.patch b/SOURCES/sos-bz1140427-powerpc-allow-powerpc-plugin-to-run-on-ppc64le.patch
new file mode 100644
index 0000000..4bf9824
--- /dev/null
+++ b/SOURCES/sos-bz1140427-powerpc-allow-powerpc-plugin-to-run-on-ppc64le.patch
@@ -0,0 +1,31 @@
+From 988fee7e6d0c2c91cf1f2c9363d4e3cea7244163 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Thu, 2 Oct 2014 17:25:17 +0100
+Subject: [PATCH] [powerpc] allow PowerPC plugin to run on ppc64le
+
+The plugin currently tests whether policy().get_arch() is equal
+to "ppc64". On little endian PowerPC machines this method returns
+"ppc64le". Change the check_enabled() method to test whether the
+returned string contains "ppc64".
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/powerpc.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sos/plugins/powerpc.py b/sos/plugins/powerpc.py
+index 896d1d4..39b52f6 100644
+--- a/sos/plugins/powerpc.py
++++ b/sos/plugins/powerpc.py
+@@ -27,7 +27,7 @@ class PowerPC(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
+     profiles = ('system', 'hardware')
+ 
+     def check_enabled(self):
+-        return (self.policy().get_arch() == "ppc64")
++        return "ppc64" in self.policy().get_arch()
+ 
+     def setup(self):
+         try:
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1148375-add-support-for-tomcat7.patch b/SOURCES/sos-bz1148375-add-support-for-tomcat7.patch
new file mode 100644
index 0000000..372e887
--- /dev/null
+++ b/SOURCES/sos-bz1148375-add-support-for-tomcat7.patch
@@ -0,0 +1,48 @@
+From 874cc7d0889adf32b8c36bb218212d3304d43d5b Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Mon, 20 Oct 2014 09:13:07 +0100
+Subject: [PATCH] [tomcat] add support for tomcat7 and log size limits
+
+Based on a patch from Pavel Moravec in Issue #412.
+
+Fixes #412.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/tomcat.py | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/sos/plugins/tomcat.py b/sos/plugins/tomcat.py
+index b7aea2c..4f78c1d 100644
+--- a/sos/plugins/tomcat.py
++++ b/sos/plugins/tomcat.py
+@@ -22,17 +22,21 @@ class Tomcat(Plugin, RedHatPlugin):
+     plugin_name = 'tomcat'
+     profiles = ('webserver', 'java', 'services')
+ 
+-    packages = ('tomcat6',)
++    packages = ('tomcat6', 'tomcat')
+ 
+     def setup(self):
+         self.add_copy_spec([
+-            "/etc/tomcat6",
+-            "/var/log/tomcat6/catalina.out"
++            "/etc/tomcat",
++            "/etc/tomcat6"
+         ])
+ 
++        limit = self.get_option("log_size")
++        log_glob = "/var/log/tomcat*/catalina.out"
++        self.add_copy_spec_limit(log_glob, sizelimit=limit)
++
+     def postproc(self):
+-        self.do_file_sub(
+-            "/etc/tomcat6/tomcat-users.xml",
++        self.do_path_regex_sub(
++            r"\/etc\/tomcat.*\/tomcat-users.xml",
+             r"password=(\S*)",
+             r'password="********"'
+         )
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1148551-ovirt_hosted_engine-fix-exception-when-force-enabled.patch b/SOURCES/sos-bz1148551-ovirt_hosted_engine-fix-exception-when-force-enabled.patch
new file mode 100644
index 0000000..c94d710
--- /dev/null
+++ b/SOURCES/sos-bz1148551-ovirt_hosted_engine-fix-exception-when-force-enabled.patch
@@ -0,0 +1,31 @@
+From f9aefde0d7f74867031a00b52f72d0ad1ff9463b Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Wed, 15 Oct 2014 15:51:13 +0100
+Subject: [PATCH] [ovirt_hosted_engine] fix exception when force-enabled
+
+Fixes #416.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/ovirt_hosted_engine.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/sos/plugins/ovirt_hosted_engine.py b/sos/plugins/ovirt_hosted_engine.py
+index aee8bc0..02cb2b6 100644
+--- a/sos/plugins/ovirt_hosted_engine.py
++++ b/sos/plugins/ovirt_hosted_engine.py
+@@ -56,8 +56,9 @@ class OvirtHostedEngine(Plugin, RedHatPlugin):
+ 
+         all_setup_logs = glob.glob(self.SETUP_LOG_GLOB)
+         all_setup_logs.sort(reverse=True)
+-        # Add latest ovirt-hosted-engine-setup log file
+-        self.add_copy_spec(all_setup_logs[0])
++        if len(all_setup_logs):
++            # Add latest ovirt-hosted-engine-setup log file
++            self.add_copy_spec(all_setup_logs[0])
+         # Add older ovirt-hosted-engine-setup log files only if requested
+         if self.get_option('all_logs'):
+             self.add_copy_spec_limit(
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1148560-add-kpatch-plugin.patch b/SOURCES/sos-bz1148560-add-kpatch-plugin.patch
deleted file mode 100644
index 1841567..0000000
--- a/SOURCES/sos-bz1148560-add-kpatch-plugin.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From bf1dd84ad4049246d79a63f3448b1e855d159a5d Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Thu, 19 Jun 2014 10:49:17 +0100
-Subject: [PATCH] [kpatch] new plugin
-
-Based on a suggestion from Marc Milgram in rhbz#1110918.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/kpatch.py | 38 ++++++++++++++++++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
- create mode 100644 sos/plugins/kpatch.py
-
-diff --git a/sos/plugins/kpatch.py b/sos/plugins/kpatch.py
-new file mode 100644
-index 0000000..7909926
---- /dev/null
-+++ b/sos/plugins/kpatch.py
-@@ -0,0 +1,38 @@
-+# Copyright (C) 2014 Red Hat, Inc. Bryn M. Reeves <bmr@redhat.com>
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin
-+import re
-+
-+
-+class Kpatch(Plugin, RedHatPlugin):
-+    """Kpatch information
-+    """
-+
-+    plugin_name = 'kpatch'
-+
-+    packages = ('kpatch',)
-+
-+    def setup(self):
-+        kpatch_list = self.get_cmd_output_now("kpatch list")
-+        kpatches = open(kpatch_list, "r").read().splitlines()
-+        for patch in kpatches:
-+            if not re.match("^kpatch-.*\(.*\)", patch):
-+                continue
-+            (module, version) = patch.split()
-+            self.add_cmd_output("kpatch info " + module)
-+
-+
-+# vim: et ts=4 sw=4
--- 
-1.9.3
-
-From 6b43c42078604b0551923c2801108848e97ba3b9 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Tue, 14 Oct 2014 15:43:20 +0100
-Subject: [PATCH] [kpatch] do not try to read kpatch data if it could not be
- run
-
-Everything the kpatch plugin does requires the list of available
-kpatch patches obtained from 'kpatch list'. If this fails return
-immediately from the setup method.
-
-Fixes #417.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/kpatch.py | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/sos/plugins/kpatch.py b/sos/plugins/kpatch.py
-index 7909926..6ef557e 100644
---- a/sos/plugins/kpatch.py
-+++ b/sos/plugins/kpatch.py
-@@ -27,6 +27,8 @@ class Kpatch(Plugin, RedHatPlugin):
- 
-     def setup(self):
-         kpatch_list = self.get_cmd_output_now("kpatch list")
-+        if not kpatch_list:
-+            return
-         kpatches = open(kpatch_list, "r").read().splitlines()
-         for patch in kpatches:
-             if not re.match("^kpatch-.*\(.*\)", patch):
--- 
-1.9.3
-
diff --git a/SOURCES/sos-bz1148784-openstack-backport-plugins-from-master.patch b/SOURCES/sos-bz1148784-openstack-backport-plugins-from-master.patch
deleted file mode 100644
index 38c56c6..0000000
--- a/SOURCES/sos-bz1148784-openstack-backport-plugins-from-master.patch
+++ /dev/null
@@ -1,1125 +0,0 @@
-From dda4e7261e77e92434294fe671a7310ab4fc79d2 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Thu, 11 Sep 2014 12:53:51 +0100
-Subject: [PATCH] [openstack] backport OpenStack plugins from master
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/openstack.py            | 207 ------------------------------------
- sos/plugins/openstack_ceilometer.py |  67 ++++++++++++
- sos/plugins/openstack_cinder.py     |  86 +++++++++++++++
- sos/plugins/openstack_glance.py     |  64 +++++++++++
- sos/plugins/openstack_heat.py       |  68 ++++++++++++
- sos/plugins/openstack_horizon.py    |  81 ++++++++++++++
- sos/plugins/openstack_keystone.py   |  79 ++++++++++++++
- sos/plugins/openstack_neutron.py    | 178 +++++++++++++++++++++++++++++++
- sos/plugins/openstack_nova.py       | 152 ++++++++++++++++++++++++++
- sos/plugins/openstack_swift.py      |  62 +++++++++++
- 10 files changed, 837 insertions(+), 207 deletions(-)
- delete mode 100644 sos/plugins/openstack.py
- create mode 100644 sos/plugins/openstack_ceilometer.py
- create mode 100644 sos/plugins/openstack_cinder.py
- create mode 100644 sos/plugins/openstack_glance.py
- create mode 100644 sos/plugins/openstack_heat.py
- create mode 100644 sos/plugins/openstack_horizon.py
- create mode 100644 sos/plugins/openstack_keystone.py
- create mode 100644 sos/plugins/openstack_neutron.py
- create mode 100644 sos/plugins/openstack_nova.py
- create mode 100644 sos/plugins/openstack_swift.py
-
-diff --git a/sos/plugins/openstack.py b/sos/plugins/openstack.py
-deleted file mode 100644
-index 8c52136..0000000
---- a/sos/plugins/openstack.py
-+++ /dev/null
-@@ -1,207 +0,0 @@
--## Copyright (C) 2009 Red Hat, Inc., Joey Boggs <jboggs@redhat.com>
--## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd <jshepher@rackspace.com>
--
--### This program is free software; you can redistribute it and/or modify
--## it under the terms of the GNU General Public License as published by
--## the Free Software Foundation; either version 2 of the License, or
--## (at your option) any later version.
--
--## This program is distributed in the hope that it will be useful,
--## but WITHOUT ANY WARRANTY; without even the implied warranty of
--## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--## GNU General Public License for more details.
--
--## You should have received a copy of the GNU General Public License
--## along with this program; if not, write to the Free Software
--## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
--
--import os
--
--from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
--
--
--class OpenStack(Plugin):
--    """openstack related information
--    """
--    plugin_name = "openstack"
--
--    option_list = [("log", "gathers all openstack logs", "slow", False)]
--
--
--class DebianOpenStack(OpenStack, DebianPlugin, UbuntuPlugin):
--    """OpenStack related information for Debian based distributions
--    """
--
--    packages = ('cinder-api',
--                'cinder-backup',
--                'cinder-common',
--                'cinder-scheduler',
--                'cinder-volume',
--                'glance',
--                'glance-api',
--                'glance-client',
--                'glance-common',
--                'glance-registry',
--                'keystone',
--                'melange',
--                'nova-api-ec2',
--                'nova-api-metadata',
--                'nova-api-os-compute',
--                'nova-api-os-volume',
--                'nova-common',
--                'nova-compute',
--                'nova-compute-kvm',
--                'nova-compute-lxc',
--                'nova-compute-qemu',
--                'nova-compute-uml',
--                'nova-compute-xcp',
--                'nova-compute-xen',
--                'nova-xcp-plugins',
--                'nova-consoleauth',
--                'nova-network',
--                'nova-scheduler',
--                'nova-volume',
--                'novnc',
--                'openstack-dashboard',
--                'quantum-common',
--                'quantum-plugin-cisco',
--                'quantum-plugin-linuxbridge-agent',
--                'quantum-plugin-nicira',
--                'quantum-plugin-openvswitch',
--                'quantum-plugin-openvswitch-agent',
--                'quantum-plugin-ryu',
--                'quantum-plugin-ryu-agent',
--                'quantum-server',
--                'swift',
--                'swift-account',
--                'swift-container',
--                'swift-object',
--                'swift-proxy',
--                'swauth',
--                'python-cinder',
--                'python-cinderclient',
--                'python-django-horizon',
--                'python-glance',
--                'python-keystone',
--                'python-keystoneclient',
--                'python-melange',
--                'python-nova',
--                'python-novaclient',
--                'python-novnc',
--                'python-quantum',
--                'python-quantumclient',
--                'python-swift',
--                'python-swauth')
--
--    def setup(self):
--        # Nova
--        if os.path.exists("nova-manage"):
--            self.add_cmd_output(
--                "nova-manage config list 2>/dev/null | sort",
--                suggest_filename="nova_config_list")
--            self.add_cmd_output(
--                "nova-manage service list 2>/dev/null",
--                suggest_filename="nova_service_list")
--            self.add_cmd_output(
--                "nova-manage db version 2>/dev/null",
--                suggest_filename="nova_db_version")
--            self.add_cmd_output(
--                "nova-manage fixed list 2>/dev/null",
--                suggest_filename="nova_fixed_ip_list")
--            self.add_cmd_output(
--                "nova-manage floating list 2>/dev/null",
--                suggest_filename="nova_floating_ip_list")
--            self.add_cmd_output(
--                "nova-manage flavor list 2>/dev/null",
--                suggest_filename="nova_flavor_list")
--            self.add_cmd_output(
--                "nova-manage network list 2>/dev/null",
--                suggest_filename="nova_network_list")
--            self.add_cmd_output(
--                "nova-manage vm list 2>/dev/null",
--                suggest_filename="nova_vm_list")
--        self.add_copy_specs(["/etc/nova/",
--                           "/var/log/nova/",
--                           "/etc/default/nova-volume",
--                           "/etc/sudoers.d/nova_sudoers",
--                           "/etc/logrotate.d/nova-*"])
--        # Cinder
--        if os.path.exists("/usr/bin/cinder-manage"):
--            self.addCmdOutput(
--                "/usr/bin/cinder-manage db version",
--                suggest_filename="cinder_db_version")
--        self.addCopySpecs(["/etc/cinder/",
--                           "/var/log/cinder/",
--                           "/etc/logrotate.d/cinder-*"])
--        # Glance
--        if os.path.exists("glance-manage"):
--            self.add_cmd_output(
--                "glance-manage db_version",
--                suggest_filename="glance_db_version")
--        self.add_copy_specs(["/etc/glance/",
--                           "/var/log/glance/",
--                           "/etc/logrotate.d/glance-*"])
--        # Keystone
--        self.add_copy_specs(["/etc/keystone/",
--                           "/var/log/keystone/",
--                           "/etc/logrotate.d/keystone"])
--        # Swift
--        self.add_copy_specs(["/etc/swift/"])
--        # Quantum
--        self.add_copy_specs(["/etc/quantum/",
--                           "/var/log/quantum/"])
--
--
--class RedHatOpenStack(OpenStack, RedHatPlugin):
--    """OpenStack related information for Red Hat distributions
--    """
--
--    packages = ('openstack-nova',
--                'openstack-glance',
--                'openstack-dashboard',
--                'openstack-keystone',
--                'openstack-quantum',
--                'openstack-swift',
--                'openstack-swift-account',
--                'openstack-swift-container',
--                'openstack-swift-object',
--                'openstack-swift-proxy',
--                'swift',
--                'python-nova',
--                'python-glanceclient',
--                'python-keystoneclient',
--                'python-novaclient',
--                'python-openstackclient',
--                'python-quantumclient')
--
--    def setup(self):
--        # If RHEL or Fedora then invoke script for openstack-status
--        if (os.path.isfile('/etc/redhat-release')
--            or os.path.isfile('/etc/fedora-release')):
--            self.add_cmd_output("openstack-status")
--
--        # Nova
--        self.add_copy_specs(["/etc/nova/",
--                           "/var/log/nova/",
--                           "/var/lib/nova/",
--                           "/etc/polkit-1/localauthority/50-local.d/50-nova.pkla",
--                           "/etc/sudoers.d/nova",
--                           "/etc/logrotate.d/openstack-nova"])
--
--        # Glance
--        self.add_copy_specs(["/etc/glance/",
--                           "/var/log/glance/",
--                           "/etc/logrotate.d/openstack-glance"])
--
--        # Keystone
--        self.add_copy_specs(["/etc/keystone/",
--                           "/var/log/keystone/"])
--
--        # Quantum
--        self.add_copy_specs(["/etc/quantum/",
--                           "/var/log/quantum/"])
--
--    def postproc(self):
--        self.do_file_sub('/etc/keystone/keystone.conf',
--                    r"(admin_password\s*=\s*)(.*)",
--                    r"\1******")
-diff --git a/sos/plugins/openstack_ceilometer.py b/sos/plugins/openstack_ceilometer.py
-new file mode 100644
---- /dev/null
-+++ b/sos/plugins/openstack_ceilometer.py
-@@ -0,0 +1,67 @@
-+# Copyright (C) 2013 Red Hat, Inc., Eoghan Lynn <eglynn@redhat.com>
-+# Copyright (C) 2012 Rackspace US, Inc.
-+#               2012 Justin Shepherd <jshepher@rackspace.com>
-+# Copyright (C) 2009 Red Hat, Inc.
-+#               2009 Joey Boggs <jboggs@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+
-+class OpenStackCeilometer(Plugin):
-+    """Openstack Ceilometer related information."""
-+    plugin_name = "openstack_ceilometer"
-+
-+    option_list = [("log", "gathers openstack-ceilometer logs", "slow", False)]
-+
-+    def setup(self):
-+        # Ceilometer
-+        self.add_copy_specs([
-+            "/etc/ceilometer/",
-+            "/var/log/ceilometer"
-+        ])
-+
-+
-+class DebianOpenStackCeilometer(OpenStackCeilometer, DebianPlugin,
-+                                UbuntuPlugin):
-+    """OpenStackCeilometer related information for Debian based distributions.
-+    """
-+
-+    packages = (
-+        'ceilometer-api',
-+        'ceilometer-agent-central',
-+        'ceilometer-agent-compute',
-+        'ceilometer-collector',
-+        'ceilometer-common',
-+        'python-ceilometer',
-+        'python-ceilometerclient'
-+    )
-+
-+
-+class RedHatOpenStackCeilometer(OpenStackCeilometer, RedHatPlugin):
-+    """OpenStackCeilometer related information for Red Hat distributions."""
-+
-+    packages = (
-+        'openstack-ceilometer',
-+        'openstack-ceilometer-api',
-+        'openstack-ceilometer-central',
-+        'openstack-ceilometer-collector',
-+        'openstack-ceilometer-common',
-+        'openstack-ceilometer-compute',
-+        'python-ceilometerclient'
-+    )
-+
-+# vim: et ts=4 sw=4
-diff --git a/sos/plugins/openstack_cinder.py b/sos/plugins/openstack_cinder.py
-new file mode 100644
---- /dev/null
-+++ b/sos/plugins/openstack_cinder.py
-@@ -0,0 +1,86 @@
-+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs <jboggs@redhat.com>
-+# Copyright (C) 2012 Rackspace US, Inc.,
-+#                    Justin Shepherd <jshepher@rackspace.com>
-+# Copyright (C) 2013 Red Hat, Inc., Flavio Percoco <fpercoco@redhat.com>
-+# Copyright (C) 2013 Red Hat, Inc., Jeremy Agee <jagee@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+
-+class OpenStackCinder(Plugin):
-+    """openstack cinder related information
-+    """
-+    plugin_name = "openstack_cinder"
-+
-+    option_list = [("log", "gathers openstack cinder logs", "slow", True),
-+                   ("db", "gathers openstack cinder db version", "slow",
-+                    False)]
-+
-+    def setup(self):
-+        if self.get_option("db"):
-+            self.add_cmd_output(
-+                "cinder-manage db version",
-+                suggest_filename="cinder_db_version")
-+
-+        self.add_copy_specs(["/etc/cinder/"])
-+
-+        if self.get_option("log"):
-+            self.add_copy_specs(["/var/log/cinder/"])
-+
-+
-+class DebianOpenStackCinder(OpenStackCinder, DebianPlugin, UbuntuPlugin):
-+    """OpenStack Cinder related information for Debian based distributions
-+    """
-+
-+    cinder = False
-+    packages = (
-+        'cinder-api',
-+        'cinder-backup',
-+        'cinder-common',
-+        'cinder-scheduler',
-+        'cinder-volume',
-+        'python-cinder',
-+        'python-cinderclient'
-+    )
-+
-+    def check_enabled(self):
-+        self.cinder = self.is_installed("cinder-common")
-+        return self.cinder
-+
-+    def setup(self):
-+        super(DebianOpenStackCinder, self).setup()
-+
-+
-+class RedHatOpenStackCinder(OpenStackCinder, RedHatPlugin):
-+    """OpenStack related information for Red Hat distributions
-+    """
-+
-+    cinder = False
-+    packages = ('openstack-cinder',
-+                'python-cinder',
-+                'python-cinderclient')
-+
-+    def check_enabled(self):
-+        self.cinder = self.is_installed("openstack-cinder")
-+        return self.cinder
-+
-+    def setup(self):
-+        super(RedHatOpenStackCinder, self).setup()
-+        self.add_copy_specs(["/etc/sudoers.d/cinder"])
-+
-+
-+# vim: et ts=4 sw=4
-diff --git a/sos/plugins/openstack_glance.py b/sos/plugins/openstack_glance.py
-new file mode 100644
---- /dev/null
-+++ b/sos/plugins/openstack_glance.py
-@@ -0,0 +1,64 @@
-+# Copyright (C) 2013 Red Hat, Inc., Flavio Percoco <fpercoco@redhat.com>
-+# Copyright (C) 2012 Rackspace US, Inc.,
-+#                    Justin Shepherd <jshepher@rackspace.com>
-+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs <jboggs@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos import plugins
-+
-+
-+class OpenStackGlance(plugins.Plugin):
-+    """OpenstackGlance related information."""
-+    plugin_name = "openstack_glance"
-+
-+    option_list = [("log", "gathers openstack-glance logs", "slow", False)]
-+
-+    def setup(self):
-+        # Glance
-+        self.add_cmd_output(
-+            "glance-manage db_version",
-+            suggest_filename="glance_db_version"
-+        )
-+        self.add_copy_specs([
-+            "/etc/glance/",
-+            "/var/log/glance/"
-+        ])
-+
-+
-+class DebianOpenStackGlance(OpenStackGlance,
-+                            plugins.DebianPlugin,
-+                            plugins.UbuntuPlugin):
-+    """OpenStackGlance related information for Debian based distributions."""
-+
-+    packages = (
-+        'glance',
-+        'glance-api',
-+        'glance-client',
-+        'glance-common',
-+        'glance-registry',
-+        'python-glance'
-+    )
-+
-+
-+class RedHatOpenStackGlance(OpenStackGlance, plugins.RedHatPlugin):
-+    """OpenStackGlance related information for Red Hat distributions."""
-+
-+    packages = (
-+        'openstack-glance',
-+        'python-glanceclient'
-+    )
-+
-+# vim: et ts=4 sw=4
-diff --git a/sos/plugins/openstack_heat.py b/sos/plugins/openstack_heat.py
-new file mode 100644
---- /dev/null
-+++ b/sos/plugins/openstack_heat.py
-@@ -0,0 +1,68 @@
-+# Copyright (C) 2013 Red Hat, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos import plugins
-+
-+
-+class OpenStackHeat(plugins.Plugin):
-+    """openstack related information
-+    """
-+    plugin_name = "openstack_heat"
-+
-+    option_list = [("log", "gathers openstack-heat logs", "slow", False)]
-+
-+    def setup(self):
-+        # Heat
-+        self.add_cmd_output(
-+            "heat-manage db_version",
-+            suggest_filename="heat_db_version"
-+        )
-+        self.add_copy_specs([
-+            "/etc/heat/",
-+            "/var/log/heat/"
-+        ])
-+
-+
-+class DebianOpenStack(OpenStackHeat,
-+                      plugins.DebianPlugin,
-+                      plugins.UbuntuPlugin):
-+    """OpenStackHeat related information for Debian based distributions."""
-+
-+    packages = (
-+        'heat-api',
-+        'heat-api-cfn',
-+        'heat-api-cloudwatch',
-+        'heat-common',
-+        'heat-engine',
-+        'python-heat',
-+        'python-heatclient'
-+    )
-+
-+
-+class RedHatOpenStack(OpenStackHeat, plugins.RedHatPlugin):
-+    """OpenStackHeat related information for Red Hat distributions."""
-+
-+    packages = (
-+        'openstack-heat-api',
-+        'openstack-heat-api-cfn',
-+        'openstack-heat-api-cloudwatch',
-+        'openstack-heat-cli',
-+        'openstack-heat-common',
-+        'openstack-heat-engine',
-+        'python-heatclient'
-+    )
-+
-+# vim: et ts=4 sw=4
-diff --git a/sos/plugins/openstack_horizon.py b/sos/plugins/openstack_horizon.py
-new file mode 100644
---- /dev/null
-+++ b/sos/plugins/openstack_horizon.py
-@@ -0,0 +1,81 @@
-+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs <jboggs@redhat.com>
-+# Copyright (C) 2012 Rackspace US, Inc.,
-+#                    Justin Shepherd <jshepher@rackspace.com>
-+# Copyright (C) 2013 Red Hat, Inc., Jeremy Agee <jagee@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+
-+class OpenStackHorizon(Plugin):
-+    """openstack horizon related information
-+    """
-+
-+    plugin_name = "openstack_horizon"
-+    option_list = [("log", "gathers openstack horizon logs", "slow", True)]
-+
-+    def setup(self):
-+        self.add_copy_spec("/etc/openstack-dashboard/")
-+        if self.get_option("log"):
-+            self.add_copy_spec("/var/log/horizon/")
-+
-+
-+class DebianOpenStackHorizon(OpenStackHorizon, DebianPlugin):
-+    """OpenStack Horizon related information for Debian based distributions
-+    """
-+
-+    packages = (
-+        'python-django-horizon',
-+        'openstack-dashboard',
-+        'openstack-dashboard-apache'
-+    )
-+
-+    def setup(self):
-+        super(DebianOpenStackHorizon, self).setup()
-+        self.add_copy_spec("/etc/apache2/sites-available/")
-+
-+
-+class UbuntuOpenStackHorizon(OpenStackHorizon, UbuntuPlugin):
-+    """OpenStack Horizon related information for Ubuntu based distributions
-+    """
-+
-+    packages = (
-+        'python-django-horizon',
-+        'openstack-dashboard',
-+        'openstack-dashboard-ubuntu-theme'
-+    )
-+
-+    def setup(self):
-+        super(UbuntuOpenStackHorizon, self).setup()
-+        self.add_copy_spec("/etc/apache2/conf.d/openstack-dashboard.conf")
-+
-+
-+class RedHatOpenStackHorizon(OpenStackHorizon, RedHatPlugin):
-+    """OpenStack Horizon related information for Red Hat distributions
-+    """
-+
-+    packages = (
-+        'python-django-horizon',
-+        'openstack-dashboard'
-+    )
-+
-+    def setup(self):
-+        super(RedHatOpenStackHorizon, self).setup()
-+        self.add_copy_spec("/etc/httpd/conf.d/openstack-dashboard.conf")
-+        if self.get_option("log"):
-+            self.add_copy_spec("/var/log/httpd/")
-+
-+# vim: et ts=4 sw=4
-diff --git a/sos/plugins/openstack_keystone.py b/sos/plugins/openstack_keystone.py
-new file mode 100644
---- /dev/null
-+++ b/sos/plugins/openstack_keystone.py
-@@ -0,0 +1,79 @@
-+# Copyright (C) 2013 Red Hat, Inc., Jeremy Agee <jagee@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+
-+class OpenStackKeystone(Plugin):
-+    """openstack keystone related information
-+    """
-+    plugin_name = "openstack_keystone"
-+
-+    option_list = [("log", "gathers openstack keystone logs", "slow", True),
-+                   ("nopw", "dont gathers keystone passwords", "slow", True)]
-+
-+    def setup(self):
-+        self.add_copy_specs([
-+            "/etc/keystone/default_catalog.templates",
-+            "/etc/keystone/keystone.conf",
-+            "/etc/keystone/logging.conf",
-+            "/etc/keystone/policy.json"
-+        ])
-+
-+        if self.get_option("log"):
-+            self.add_copy_spec("/var/log/keystone/")
-+
-+    def postproc(self):
-+        self.do_file_sub('/etc/keystone/keystone.conf',
-+                         r"(?m)^(admin_password.*=)(.*)",
-+                         r"\1 ******")
-+        self.do_file_sub('/etc/keystone/keystone.conf',
-+                         r"(?m)^(admin_token.*=)(.*)",
-+                         r"\1 ******")
-+        self.do_file_sub('/etc/keystone/keystone.conf',
-+                         r"(?m)^(connection.*=.*mysql://)(.*)(:)(.*)(@)(.*)",
-+                         r"\1\2:******@\6")
-+        self.do_file_sub('/etc/keystone/keystone.conf',
-+                         r"(?m)^(password.*=)(.*)",
-+                         r"\1 ******")
-+        self.do_file_sub('/etc/keystone/keystone.conf',
-+                         r"(?m)^(ca_password.*=)(.*)",
-+                         r"\1 ******")
-+
-+
-+class DebianOpenStackKeystone(OpenStackKeystone, DebianPlugin, UbuntuPlugin):
-+    """OpenStack Keystone related information for Debian based distributions
-+    """
-+
-+    packages = (
-+        'keystone',
-+        'python-keystone',
-+        'python-keystoneclient'
-+    )
-+
-+
-+class RedHatOpenStackKeystone(OpenStackKeystone, RedHatPlugin):
-+    """OpenStack Keystone related information for Red Hat distributions
-+    """
-+
-+    packages = (
-+        'openstack-keystone',
-+        'python-keystone',
-+        'python-django-openstack-auth',
-+        'python-keystoneclient'
-+    )
-+
-+# vim: et ts=4 sw=4
-diff --git a/sos/plugins/openstack_neutron.py b/sos/plugins/openstack_neutron.py
-new file mode 100644
---- /dev/null
-+++ b/sos/plugins/openstack_neutron.py
-@@ -0,0 +1,175 @@
-+# Copyright (C) 2013 Red Hat, Inc., Brent Eagles <beagles@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+import os
-+import re
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+# The Networking plugin includes most of what is needed from a snapshot
-+# of the networking, so we only need to focus on the parts that are specific
-+# to OpenStack Networking. The Process plugin should capture the dnsmasq
-+# command line. The libvirt plugin grabs the instance's XML definition which
-+# has the interface names for an instance. So what remains is relevant database
-+# info...
-+
-+
-+class Neutron(Plugin):
-+    """OpenStack Networking (quantum/neutron) related information
-+    """
-+    plugin_name = "neutron"
-+
-+    option_list = [("log", "Gathers all Neutron logs", "slow", False),
-+                   ("quantum", "Overrides checks for newer Neutron components",
-+                    "fast", False)]
-+
-+    component_name = "neutron"
-+
-+    def setup(self):
-+        if os.path.exists("/etc/neutron/") and not self.get_option("quantum"):
-+            self.component_name = self.plugin_name
-+        else:
-+            self.component_name = "quantum"
-+        self.add_copy_specs([
-+            "/etc/%s/" % self.component_name,
-+            "/var/log/%s/" % self.component_name
-+        ])
-+
-+        self.netns_dumps()
-+
-+    def netns_dumps(self):
-+        # It would've been beautiful if we could get parts of the networking
-+        # plugin to run in different namespaces. There are a couple of options
-+        # in the short term: create a local instance and "borrow" some of the
-+        # functionality, or simply copy some of the functionality.
-+        prefixes = ["qdhcp", "qrouter"]
-+        ip_netns_result = self.call_ext_prog("ip netns")
-+        if not (ip_netns_result[0] == 0):
-+            return
-+        nslist = ip_netns_result[1]
-+        lease_directories = []
-+        if nslist:
-+            for nsname in nslist.splitlines():
-+                prefix, netid = nsname.split('-', 1)
-+                if len(netid) > 0 and prefix in prefixes:
-+                    self.ns_gather_data(nsname)
-+                    lease_directories.append(
-+                        "/var/lib/%s/dhcp/%s/" %
-+                        (self.component_name, netid))
-+            self.add_copy_specs(lease_directories)
-+
-+    # TODO: Refactor! Copied from Networking plugin.
-+    def get_interface_name(self, ip_addr_out):
-+        """Return a dictionary for which key are interface name according to
-+        the output of ifconifg-a stored in ifconfig_file.
-+        """
-+        out = {}
-+        for line in ip_addr_out.splitlines():
-+            match = re.match('.*link/ether', line)
-+            if match:
-+                int = match.string.split(':')[1].lstrip()
-+                out[int] = True
-+        return out
-+
-+    def ns_gather_data(self, nsname):
-+        cmd_prefix = "ip netns exec %s " % nsname
-+        self.add_cmd_outputs([
-+            cmd_prefix + "iptables-save",
-+            cmd_prefix + "ifconfig -a",
-+            cmd_prefix + "route -n"
-+        ])
-+        # borrowed from networking plugin
-+        ip_addr_result = self.call_ext_prog(cmd_prefix + "ip -o link")
-+        if ip_addr_result[0] == 0:
-+            for eth in self.get_interface_name(ip_addr_result[1]):
-+                # Most, if not all, IFs in the namespaces are going to be
-+                # virtual. The '-a', '-c' and '-g' options are not likely to be
-+                # supported so these ops are not copied from the network
-+                # plugin.
-+                self.add_cmd_outputs([
-+                    cmd_prefix + "ethtool "+eth,
-+                    cmd_prefix + "ethtool -i "+eth,
-+                    cmd_prefix + "ethtool -k "+eth,
-+                    cmd_prefix + "ethtool -S "+eth
-+                ])
-+
-+        # As all of the bridges are in the "global namespace", we do not need
-+        # to gather info on them.
-+
-+    def gen_pkg_tuple(self, packages):
-+        names = []
-+        for p in packages:
-+            names.append(p % {"comp": self.component_name})
-+        return tuple(names)
-+
-+
-+class DebianNeutron(Neutron, DebianPlugin, UbuntuPlugin):
-+    """OpenStack Neutron related information for Debian based distributions
-+    """
-+    package_list_template = [
-+        '%(comp)s-common',
-+        '%(comp)s-plugin-cisco',
-+        '%(comp)s-plugin-linuxbridge-agent',
-+        '%(comp)s-plugin-nicira',
-+        '%(comp)s-plugin-openvswitch',
-+        '%(comp)s-plugin-openvswitch-agent',
-+        '%(comp)s-plugin-ryu',
-+        '%(comp)s-plugin-ryu-agent',
-+        '%(comp)s-server',
-+        'python-%(comp)s',
-+        'python-%(comp)sclient'
-+    ]
-+
-+    def check_enabled(self):
-+        return self.is_installed("%s-common" % self.component_name)
-+
-+    def setup(self):
-+        super(DebianNeutron, self).setup()
-+        self.packages = self.gen_pkg_tuple(self.package_list_template)
-+        self.add_copy_spec("/etc/sudoers.d/%s_sudoers" % self.component_name)
-+
-+
-+class RedHatNeutron(Neutron, RedHatPlugin):
-+    """OpenStack Neutron related information for Red Hat distributions
-+    """
-+
-+    package_list_template = [
-+        'openstack-%(comp)s',
-+        'openstack-%(comp)s-linuxbridge'
-+        'openstack-%(comp)s-metaplugin',
-+        'openstack-%(comp)s-openvswitch',
-+        'openstack-%(comp)s-bigswitch',
-+        'openstack-%(comp)s-brocade',
-+        'openstack-%(comp)s-cisco',
-+        'openstack-%(comp)s-hyperv',
-+        'openstack-%(comp)s-midonet',
-+        'openstack-%(comp)s-nec'
-+        'openstack-%(comp)s-nicira',
-+        'openstack-%(comp)s-plumgrid',
-+        'openstack-%(comp)s-ryu',
-+        'python-%(comp)s',
-+        'python-%(comp)sclient'
-+    ]
-+
-+    def check_enabled(self):
-+        return self.is_installed("openstack-%s" % self.component_name)
-+
-+    def setup(self):
-+        super(RedHatNeutron, self).setup()
-+        self.packages = self.gen_pkg_tuple(self.package_list_template)
-+        self.add_copy_spec("/etc/sudoers.d/%s-rootwrap" % self.component_name)
-+
-+# vim: et ts=4 sw=4
-diff --git a/sos/plugins/openstack_nova.py b/sos/plugins/openstack_nova.py
-new file mode 100644
-index 0000000..a4186af
---- /dev/null
-+++ b/sos/plugins/openstack_nova.py
-@@ -0,0 +1,152 @@
-+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs <jboggs@redhat.com>
-+# Copyright (C) 2012 Rackspace US, Inc.,
-+#                    Justin Shepherd <jshepher@rackspace.com>
-+# Copyright (C) 2013 Red Hat, Inc., Jeremy Agee <jagee@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+
-+class OpenStackNova(Plugin):
-+    """openstack nova related information
-+    """
-+    plugin_name = "openstack_nova"
-+
-+    option_list = [("log", "gathers openstack nova logs", "slow", True),
-+                   ("cmds", "gathers openstack nova commands", "slow", False)]
-+
-+    def setup(self):
-+        if self.get_option("cmds"):
-+            self.add_cmd_output(
-+                "nova-manage config list",
-+                suggest_filename="nova_config_list")
-+            self.add_cmd_output(
-+                "nova-manage service list",
-+                suggest_filename="nova_service_list")
-+            self.add_cmd_output(
-+                "nova-manage db version",
-+                suggest_filename="nova_db_version")
-+            self.add_cmd_output(
-+                "nova-manage fixed list",
-+                suggest_filename="nova_fixed_ip_list")
-+            self.add_cmd_output(
-+                "nova-manage floating list",
-+                suggest_filename="nova_floating_ip_list")
-+            self.add_cmd_output(
-+                "nova-manage flavor list",
-+                suggest_filename="nova_flavor_list")
-+            self.add_cmd_output(
-+                "nova-manage network list",
-+                suggest_filename="nova_network_list")
-+            self.add_cmd_output(
-+                "nova-manage vm list",
-+                suggest_filename="nova_vm_list")
-+
-+        if self.get_option("log"):
-+            self.add_copy_spec("/var/log/nova/")
-+
-+        self.add_copy_spec("/etc/nova/")
-+
-+    def postproc(self):
-+        protect_keys = [
-+            "ldap_dns_password", "neutron_admin_password", "rabbit_password",
-+            "qpid_password", "powervm_mgr_passwd", "virtual_power_host_pass",
-+            "xenapi_connection_password", "password", "host_password",
-+            "vnc_password", "connection", "sql_connection", "admin_password"
-+        ]
-+
-+        regexp = r"((?m)^\s*#*(%s)\s*=\s*)(.*)" % "|".join(protect_keys)
-+
-+        for conf_file in ["/etc/nova/nova.conf", "/etc/nova/api-paste.ini"]:
-+            self.do_file_sub(conf_file, regexp, r"\1*********")
-+
-+
-+class DebianOpenStackNova(OpenStackNova, DebianPlugin, UbuntuPlugin):
-+    """OpenStack nova related information for Debian based distributions
-+    """
-+
-+    nova = False
-+    packages = (
-+        'nova-api-ec2',
-+        'nova-api-metadata',
-+        'nova-api-os-compute',
-+        'nova-api-os-volume',
-+        'nova-common',
-+        'nova-compute',
-+        'nova-compute-kvm',
-+        'nova-compute-lxc',
-+        'nova-compute-qemu',
-+        'nova-compute-uml',
-+        'nova-compute-xcp',
-+        'nova-compute-xen',
-+        'nova-xcp-plugins',
-+        'nova-consoleauth',
-+        'nova-network',
-+        'nova-scheduler',
-+        'nova-volume',
-+        'novnc',
-+        'python-nova',
-+        'python-novaclient',
-+        'python-novnc'
-+    )
-+
-+    def check_enabled(self):
-+        self.nova = self.is_installed("nova-common")
-+        return self.nova
-+
-+    def setup(self):
-+        super(DebianOpenStackNova, self).setup()
-+        self.add_copy_specs(["/etc/sudoers.d/nova_sudoers"])
-+
-+
-+class RedHatOpenStackNova(OpenStackNova, RedHatPlugin):
-+    """OpenStack nova related information for Red Hat distributions
-+    """
-+
-+    nova = False
-+    packages = (
-+        'openstack-nova-common',
-+        'openstack-nova-network',
-+        'openstack-nova-conductor',
-+        'openstack-nova-conductor',
-+        'openstack-nova-scheduler',
-+        'openstack-nova-console',
-+        'openstack-nova-novncproxy',
-+        'openstack-nova-compute',
-+        'openstack-nova-api',
-+        'openstack-nova-cert',
-+        'openstack-nova-cells',
-+        'openstack-nova-objectstore',
-+        'python-nova',
-+        'python-novaclient',
-+        'novnc'
-+    )
-+
-+    def check_enabled(self):
-+        self.nova = self.is_installed("openstack-nova-common")
-+        return self.nova
-+
-+    def setup(self):
-+        super(RedHatOpenStackNova, self).setup()
-+        self.add_copy_specs([
-+            "/etc/logrotate.d/openstack-nova",
-+            "/etc/polkit-1/localauthority/50-local.d/50-nova.pkla",
-+            "/etc/sudoers.d/nova",
-+            "/etc/security/limits.d/91-nova.conf",
-+            "/etc/sysconfig/openstack-nova-novncproxy"
-+        ])
-+
-+# vim: et ts=4 sw=4
-diff --git a/sos/plugins/openstack_swift.py b/sos/plugins/openstack_swift.py
-new file mode 100644
---- /dev/null
-+++ b/sos/plugins/openstack_swift.py
-@@ -0,0 +1,62 @@
-+# Copyright (C) 2013 Red Hat, Inc., Flavio Percoco <fpercoco@redhat.com>
-+# Copyright (C) 2012 Rackspace US, Inc.,
-+#               Justin Shepherd <jshepher@rackspace.com>
-+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs <jboggs@redhat.com>
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+
-+
-+class OpenStackSwift(Plugin):
-+    """OpenstackSwift related information."""
-+    plugin_name = "openstack_swift"
-+
-+    option_list = [("log", "gathers openstack-swift logs", "slow", False)]
-+
-+    def setup(self):
-+        # Swift
-+        self.add_copy_spec("/etc/swift/")
-+
-+
-+class DebianOpenStackSwift(OpenStackSwift, DebianPlugin, UbuntuPlugin):
-+    """OpenStackSwift related information for Debian based distributions."""
-+
-+    packages = (
-+        'swift',
-+        'swift-account',
-+        'swift-container',
-+        'swift-object',
-+        'swift-proxy',
-+        'swauth',
-+        'python-swift',
-+        'python-swauth'
-+    )
-+
-+
-+class RedHatOpenStackSwift(OpenStackSwift, RedHatPlugin):
-+    """OpenStackSwift related information for Red Hat distributions."""
-+
-+    packages = (
-+        'openstack-swift',
-+        'openstack-swift-account',
-+        'openstack-swift-container',
-+        'openstack-swift-object',
-+        'openstack-swift-proxy',
-+        'swift',
-+        'python-swiftclient'
-+    )
-+
-+# vim: et ts=4 sw=4
--- 
-1.9.3
-
diff --git a/SOURCES/sos-bz1148784-plugin-backport-add_cmd_outputs.patch b/SOURCES/sos-bz1148784-plugin-backport-add_cmd_outputs.patch
deleted file mode 100644
index 071aaf9..0000000
--- a/SOURCES/sos-bz1148784-plugin-backport-add_cmd_outputs.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 4fc8b401992402f9cb45e68db883c90875107572 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Thu, 11 Sep 2014 12:52:16 +0100
-Subject: [PATCH] [plugin] backport add_cmd_outputs
-
-  commit 40646007c03f9088f0d6136b50a83077b1b8934c
-  Author: Bryn M. Reeves <bmr@redhat.com>
-  Date:   Sun Apr 6 20:13:59 2014 +0100
-
-    Add add_cmd_outputs() and convert plugins to use it
-
-    Add a new method to Plugin to add a list of commands to be run,
-    analogous to add_copy_specs() vs add_copy_spec().
-
-    Also convert a few plugins not using add_copy_specs() for long
-    file lists (or using it inconsistently).
-
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/__init__.py | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
-index 2bf8d98..f50df79 100644
---- a/sos/plugins/__init__.py
-+++ b/sos/plugins/__init__.py
-@@ -504,6 +504,12 @@ class Plugin(object):
-         (status, output, runtime) = self.call_ext_prog(prog)
-         return (status == 0)
- 
-+    def add_cmd_outputs(self, cmds, timeout=300):
-+        """Run a list of programs and collect the output"""
-+        if isinstance(cmds, basestring):
-+            raise TypeError("Plugin.add_cmd_outputs called with string argument")
-+        for cmd in cmds:
-+            self.add_cmd_output(cmd, timeout=timeout)
- 
-     def add_cmd_output(self, exe, suggest_filename=None, root_symlink=None, timeout=300):
-         """Run a program and collect the output"""
--- 
-1.9.3
-
diff --git a/SOURCES/sos-bz1158891-sosreport-fix-archive-permissions-regression.patch b/SOURCES/sos-bz1158891-sosreport-fix-archive-permissions-regression.patch
new file mode 100644
index 0000000..7540058
--- /dev/null
+++ b/SOURCES/sos-bz1158891-sosreport-fix-archive-permissions-regression.patch
@@ -0,0 +1,39 @@
+From d7759d3ddae5fe99a340c88a1d370d65cfa73fd6 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Thu, 30 Oct 2014 16:46:01 +0000
+Subject: [PATCH] [sosreport] fix archive permissions regression
+
+Restore the umask save/restore around archive creation and ensure
+the effective umask is 077 at the time of archive creation.
+
+Fixes #425.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/sosreport.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/sos/sosreport.py b/sos/sosreport.py
+index 664414f..99b5f47 100644
+--- a/sos/sosreport.py
++++ b/sos/sosreport.py
+@@ -1327,6 +1327,7 @@ class SoSReport(object):
+         self._finish_logging()
+         # package up the results for the support organization
+         if not self.opts.build:
++            old_umask = os.umask(0o077)
+             if not self.opts.quiet:
+                 print(_("Creating compressed archive..."))
+             # compression could fail for a number of reasons
+@@ -1345,6 +1346,8 @@ class SoSReport(object):
+                     raise
+                 else:
+                     return False
++            finally:
++                os.umask(old_umask)
+         else:
+             final_filename = self.archive.get_archive_path()
+         self.policy.display_results(final_filename, build=self.opts.build)
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1159835-obtain-postgres-password-from-environment.patch b/SOURCES/sos-bz1159835-obtain-postgres-password-from-environment.patch
deleted file mode 100644
index 8b19053..0000000
--- a/SOURCES/sos-bz1159835-obtain-postgres-password-from-environment.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff -up sos-3.0/sos/plugins/postgresql.py.orig sos-3.0/sos/plugins/postgresql.py
---- sos-3.0/sos/plugins/postgresql.py.orig	2014-11-11 17:22:24.973592961 +0000
-+++ sos-3.0/sos/plugins/postgresql.py	2014-11-11 17:29:02.374434446 +0000
-@@ -13,23 +13,27 @@ class PostgreSQL(Plugin):
- 
-     tmp_dir = None
- 
-+    password_warn_text = " (password visible in process listings)"
-+
-     option_list = [
-         ("pghome",  'PostgreSQL server home directory.', '', '/var/lib/pgsql'),
-         ("username",  'username for pg_dump', '', 'postgres'),
--        ("password",  'password for pg_dump', '', ''),
--        ("dbname",  'database name to dump for pg_dump', '', ''),
-+        ('password', 'password for pg_dump' + password_warn_text, '', ''),
-+        ("dbname",  'database name to dump for pg_dump', '', '')
-     ]
- 
-     def pg_dump(self):
-         dest_file = os.path.join(self.tmp_dir, "sos_pgdump.tar")
--        old_env_pgpassword = os.environ.get("PGPASSWORD")
--        os.environ["PGPASSWORD"] = self.get_option("password")
-+        # We're only modifying this for ourself and our children so there
-+        # is no need to save and restore environment variables if the user
-+        # decided to pass the password on the command line.
-+        if self.get_option("password") is not None:
-+            os.environ["PGPASSWORD"] = self.get_option("password")
-+
-         (status, output, rtime) = self.call_ext_prog("pg_dump %s -U %s -w -f %s -F t" %
-                                                    (self.get_option("dbname"),
-                                                     self.get_option("username"),
-                                                     dest_file))
--        if old_env_pgpassword is not None:
--            os.environ["PGPASSWORD"] = old_env_pgpassword
-         if (status == 0):
-             self.add_copy_spec(dest_file)
-         else:
-@@ -37,7 +41,7 @@ class PostgreSQL(Plugin):
- 
-     def setup(self):
-         if self.get_option("dbname"):
--            if self.get_option("password"):
-+            if self.get_option("password") or "PGPASSWORD" in os.environ:
-                 self.tmp_dir = tempfile.mkdtemp()
-                 self.pg_dump()
-             else:
diff --git a/SOURCES/sos-bz1164267-sos-unicode-use-errors-ignore.patch b/SOURCES/sos-bz1164267-sos-unicode-use-errors-ignore.patch
new file mode 100644
index 0000000..1e9f66b
--- /dev/null
+++ b/SOURCES/sos-bz1164267-sos-unicode-use-errors-ignore.patch
@@ -0,0 +1,61 @@
+diff -up sos-3.2/sos/archive.py.orig sos-3.2/sos/archive.py
+--- sos-3.2/sos/archive.py.orig	2014-12-17 13:08:57.492362543 +0000
++++ sos-3.2/sos/archive.py	2014-12-17 13:09:22.256522491 +0000
+@@ -388,9 +388,9 @@ class TarFileArchive(FileCacheArchive):
+                           close_fds=True)
+                 stdout, stderr = p.communicate()
+                 if stdout:
+-                    self.log_info(stdout.decode('utf-8'))
++                    self.log_info(stdout.decode('utf-8', 'ignore'))
+                 if stderr:
+-                    self.log_error(stderr.decode('utf-8'))
++                    self.log_error(stderr.decode('utf-8', 'ignore'))
+                 self._suffix += suffix
+                 return self.name()
+             except Exception as e:
+diff -up sos-3.2/sos/plugins/__init__.py.orig sos-3.2/sos/plugins/__init__.py
+--- sos-3.2/sos/plugins/__init__.py.orig	2014-12-17 13:08:57.493362550 +0000
++++ sos-3.2/sos/plugins/__init__.py	2014-12-17 13:09:22.257522498 +0000
+@@ -541,7 +541,7 @@ class Plugin(object):
+     def add_string_as_file(self, content, filename):
+         """Add a string to the archive as a file named `filename`"""
+         self.copy_strings.append((content, filename))
+-        content = "..." + (content.splitlines()[0]).decode('utf8')
++        content = "..." + (content.splitlines()[0]).decode('utf8', 'ignore')
+         self._log_debug("added string '%s' as '%s'" % (content, filename))
+ 
+     def get_cmd_output_now(self, exe, suggest_filename=None,
+@@ -610,7 +610,8 @@ class Plugin(object):
+ 
+     def _collect_strings(self):
+         for string, file_name in self.copy_strings:
+-            content = "..." + (string.splitlines()[0]).decode('utf8')
++            content = "..."
++            content += (string.splitlines()[0]).decode('utf8', 'ignore')
+             self._log_info("collecting string '%s' as '%s'"
+                            % (content, file_name))
+             try:
+diff -up sos-3.2/sos/utilities.py.orig sos-3.2/sos/utilities.py
+--- sos-3.2/sos/utilities.py.orig	2014-12-17 13:09:16.709486664 +0000
++++ sos-3.2/sos/utilities.py	2014-12-17 13:09:22.257522498 +0000
+@@ -140,7 +140,7 @@ def sos_get_command_output(command, time
+ 
+     # shlex.split() reacts badly to unicode on older python runtimes.
+     if not six.PY3:
+-        command = command.encode('utf-8')
++        command = command.encode('utf-8', 'ignore')
+     args = shlex.split(command)
+     try:
+         p = Popen(args, shell=False, stdout=PIPE, stderr=STDOUT,
+@@ -159,7 +159,10 @@ def sos_get_command_output(command, time
+     if p.returncode == 126 or p.returncode == 127:
+         stdout = six.binary_type(b"")
+ 
+-    return {'status': p.returncode, 'output': stdout.decode('utf-8')}
++    return {
++        'status': p.returncode,
++        'output': stdout.decode('utf-8', 'ignore')
++    }
+ 
+ 
+ def import_module(module_fqname, superclasses=None):
diff --git a/SOURCES/sos-bz1166039-navicli-catch-unreadable-stdin.patch b/SOURCES/sos-bz1166039-navicli-catch-unreadable-stdin.patch
new file mode 100644
index 0000000..44c2667
--- /dev/null
+++ b/SOURCES/sos-bz1166039-navicli-catch-unreadable-stdin.patch
@@ -0,0 +1,42 @@
+From 465746d768ce69684eee57eaa3509d9ae898fee2 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Wed, 17 Dec 2014 12:39:05 +0000
+Subject: [PATCH] [navicli] catch exception if input is unreadable
+
+CLARiiON SP IP Address or [Enter] to exit: Traceback (most recent call last):
+  File "/usr/sbin/sosreport", line 25, in <module>
+    main(sys.argv[1:])
+  File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1408, in main
+    sos.execute()
+  File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1387, in execute
+    self.setup()
+  File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1117, in setup
+    plug.setup()
+  File "/usr/lib/python2.7/site-packages/sos/plugins/navicli.py", line 72, in setup
+    ans = input("CLARiiON SP IP Address or [Enter] to exit: ")
+EOFError: EOF when reading a line
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/navicli.py | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/sos/plugins/navicli.py b/sos/plugins/navicli.py
+index 5175f89..3ee7d50 100644
+--- a/sos/plugins/navicli.py
++++ b/sos/plugins/navicli.py
+@@ -69,7 +69,10 @@ class Navicli(Plugin, RedHatPlugin):
+         CLARiiON_IP_address_list = []
+         CLARiiON_IP_loop = "stay_in"
+         while CLARiiON_IP_loop == "stay_in":
+-            ans = input("CLARiiON SP IP Address or [Enter] to exit: ")
++            try:
++                ans = input("CLARiiON SP IP Address or [Enter] to exit: ")
++            except:
++                return
+             if self.check_ext_prog("navicli -h %s getsptime" % (ans,)):
+                 CLARiiON_IP_address_list.append(ans)
+             else:
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1171658-docs-update-man-page-for-new-options.patch b/SOURCES/sos-bz1171658-docs-update-man-page-for-new-options.patch
new file mode 100644
index 0000000..a05d692
--- /dev/null
+++ b/SOURCES/sos-bz1171658-docs-update-man-page-for-new-options.patch
@@ -0,0 +1,91 @@
+From 0be76caf77b53ce2726cb419262ceb8f52081c9e Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Wed, 17 Dec 2014 13:01:03 +0000
+Subject: [PATCH] [docs] update man page for new options
+
+The man page was missing:
+
+  --verify
+  --all-logs
+  --log-size
+  --plugin-option
+
+And listed the old '--ticket' (now --ticket-number).
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ man/en/sosreport.1 | 29 +++++++++++++++++++++++++----
+ 1 file changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/man/en/sosreport.1 b/man/en/sosreport.1
+index 88589cf..1066b1d 100644
+--- a/man/en/sosreport.1
++++ b/man/en/sosreport.1
+@@ -8,14 +8,19 @@ sosreport \- Collect and package diagnostic and support data
+           [-e|--enable-plugins plugin-names]\fR
+           [-o|--only-plugins plugin-names]\fR
+           [-a|--alloptions] [-v|--verbose]\fR
++          [-k plug.opt|--plugin-option plug.opt]\fR
+           [--no-report] [--config-file conf]\fR
+           [--batch] [--build] [--debug]\fR
+           [--name name] [--case-id id] [--ticket-number nr]
+           [--tmp-dir directory]\fR
+           [-p|--profile profile-name]\fR
+           [--list-profiles]\fR
++          [--verify]\fR
++          [--log-size]\fR
++          [--all-logs]\fR
+           [-z|--compression-type method]\fR
+-          [--help]\fR
++          [-h|--help]\fR
++
+ .SH DESCRIPTION
+ \fBsosreport\fR generates an archive of configuration and diagnostic
+ information from the running system. The archive may be stored locally
+@@ -46,7 +51,7 @@ Enable the specified plugin(s) only (all other plugins should be
+ disabled). Multiple plugins may be specified by repeating the option
+ or as a comma-separated list.
+ .TP
+-.B \-k PLUGNAME.PLUGOPT[=VALUE]
++.B \-k PLUGNAME.PLUGOPT[=VALUE], \--plugin-option=PLUGNAME.PLUGOPT[=VALUE]
+ Specify plug-in options. The option PLUGOPT is enabled, or set to the
+ specified value in the plug-in PLUGNAME.
+ .TP
+@@ -81,6 +86,22 @@ profiles include: boot, cluster, desktop, debug, hardware, identity,
+ network, openstack, packagemanager, security, services, storage,
+ sysmgmt, system, performance, virt, and webserver.
+ .TP
++.B \--verify
++Instructs plugins to perform plugin-specific verification during data
++collection. This may include package manager verification, log integrity
++testing or other plugin defined behaviour. Use of \--verify may cause
++the time taken to generate a report to be considerably longer.
++.TP
++.B \--log-size
++Places a global limit on the size of any collected set of logs. The
++limit is applied separately for each set of logs collected by any
++plugin.
++.TP
++.B \--all-logs
++Tell plugins to collect all possible log data ignoring any size limits
++and including logs in non-default locations. This option may significantly
++increase the size of reports.
++.TP
+ .B \-z, \--compression-type METHOD
+ Override the default compression type specified by the active policy.
+ .TP
+@@ -94,9 +115,9 @@ Specify a name to be used for the archive.
+ .B \--case-id NUMBER
+ Specify a case identifier to associate with the archive.
+ Identifiers may include alphanumeric characters, commas and periods ('.').
+-Synonymous with \--ticket, \--ticket-number.
++Synonymous with \--ticket-number.
+ .TP
+-.B \--ticket, \--ticket-number NUMBER
++.B \--ticket-number NUMBER
+ Specify a ticket number or other identifier to associate with the archive.
+ Identifiers may include alphanumeric characters, commas and periods ('.').
+ Synonymous with \--case-id.
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1176159-backport-mysql-mariadb-support.patch b/SOURCES/sos-bz1176159-backport-mysql-mariadb-support.patch
deleted file mode 100644
index f280feb..0000000
--- a/SOURCES/sos-bz1176159-backport-mysql-mariadb-support.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-diff -up sos-3.0/sos/plugins/mysql.py.orig sos-3.0/sos/plugins/mysql.py
---- sos-3.0/sos/plugins/mysql.py.orig	2015-02-16 18:28:09.372835852 +0000
-+++ sos-3.0/sos/plugins/mysql.py	2015-02-16 18:33:21.888227451 +0000
-@@ -1,52 +1,91 @@
--### This program is free software; you can redistribute it and/or modify
--## it under the terms of the GNU General Public License as published by
--## the Free Software Foundation; either version 2 of the License, or
--## (at your option) any later version.
--
--## This program is distributed in the hope that it will be useful,
--## but WITHOUT ANY WARRANTY; without even the implied warranty of
--## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--## GNU General Public License for more details.
--
--## You should have received a copy of the GNU General Public License
--## along with this program; if not, write to the Free Software
--## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- 
- from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
--from os.path import exists
-+import os
-+
- 
- class Mysql(Plugin):
--    """MySQL related information
-+    """MySQL and MariaDB RDBMS
-     """
- 
-     plugin_name = "mysql"
-     mysql_cnf = "/etc/my.cnf"
- 
-+    option_list = [
-+        ("dbuser", "username for database dumps", "", "mysql"),
-+        ("dbpass", "password for database dumps", "", False),
-+        ("dbdump", "collect a database dump", "", False),
-+        ("all_logs", "collect all database logs", "", False)
-+    ]
-+
-     def setup(self):
-         super(Mysql, self).setup()
--        self.add_copy_specs([self.mysql_cnf,
--                            "/var/log/mysql*"])
-+        self.add_copy_specs([
-+            self.mysql_cnf,
-+            "/var/log/mysql/mysqld.log",
-+            "/var/log/mariadb/mariadb.log",
-+        ])
-+        if self.get_option("all_logs"):
-+            self.add_copy_specs([
-+                "/var/log/mysql*",
-+                "/var/log/mariadb*"
-+            ])
-+        if self.get_option("dbdump"):
-+            dbuser = self.get_option("dbuser")
-+            dbpass = self.get_option("dbpass")
-+            if dbpass is False and 'MYSQL_PWD' in os.environ:
-+                dbpass = os.environ['MYSQL_PWD']
-+            else:
-+                # no MySQL password
-+                return
-+            os.environ['MYSQL_PWD'] = dbpass
-+
-+            opts = "--user=%s --all-databases" % dbuser
-+            name = "mysqldump_--all-databases"
-+            self.add_cmd_output("mysqldump %s" % opts, suggest_filename=name)
- 
- 
- class RedHatMysql(Mysql, RedHatPlugin):
--    """MySQL related information for RedHat based distributions
--    """
- 
--    packages = ('mysql-server', 'mysql')
-+    packages = (
-+        'mysql-server',
-+        'mysql',
-+        'mariadb-server',
-+        'mariadb'
-+    )
- 
-     def setup(self):
--        self.mysql_cnf = "/etc/my.cnf"
-         super(RedHatMysql, self).setup()
--        self.add_copy_spec("/etc/ld.so.conf.d/mysql*")
-+        self.add_copy_specs([
-+            "/etc/ld.so.conf.d/mysql-*.conf",
-+            "/etc/ld.so.conf.d/mariadb-*.conf"
-+        ])
-+        self.add_copy_spec("/etc/my.cnf.d/*")
- 
- 
- class DebianMysql(Mysql, DebianPlugin, UbuntuPlugin):
--    """MySQL related information for Debian based distributions
--    """
- 
--    packages = ('mysql-server', 'mysql-common')
-+    packages = (
-+        'mysql-server',
-+        'mysql-common',
-+        'mariadb-server',
-+        'mariadb-common'
-+    )
- 
-     def setup(self):
--        self.mysql_cnf = "/etc/mysql/my.cnf"
-         super(DebianMysql, self).setup()
-         self.add_copy_spec("/etc/mysql/conf.d/mysql*")
-+
-+# vim: et ts=4 sw=4
diff --git a/SOURCES/sos-bz1176159-mysql-fix-command-line-dbpass-handling.patch b/SOURCES/sos-bz1176159-mysql-fix-command-line-dbpass-handling.patch
deleted file mode 100644
index 7c492e3..0000000
--- a/SOURCES/sos-bz1176159-mysql-fix-command-line-dbpass-handling.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From db9ac3fb615b731be87b4116a8939105bf5ced56 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Tue, 23 Dec 2014 14:40:50 +0000
-Subject: [PATCH] [mysql] fix command-line dbpass handling
-
-The logic for chosing between a command-line and environment
-variable passed password in the MySQL plugin was incorrect. This
-prevents a database dump from being collected when a password is
-given on the command line.
-
-Altough use of the command line to pass authentication tokens
-is discouraged we should ensure the case works.
-
-Fixes #456.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/mysql.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py
-index d148472..edab6d0 100644
---- a/sos/plugins/mysql.py
-+++ b/sos/plugins/mysql.py
-@@ -44,9 +44,9 @@ class Mysql(Plugin):
-         if self.get_option("dbdump"):
-             dbuser = self.get_option("dbuser")
-             dbpass = self.get_option("dbpass")
--            if dbpass is False and 'MYSQL_PWD' in os.environ:
-+            if 'MYSQL_PWD' in os.environ:
-                 dbpass = os.environ['MYSQL_PWD']
--            else:
-+            if not dbpass or dbpass is False:
-                 # no MySQL password
-                 return
-             os.environ['MYSQL_PWD'] = dbpass
--- 
-1.9.3
-
diff --git a/SOURCES/sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch b/SOURCES/sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch
index daa7dca..e6f2d49 100644
--- a/SOURCES/sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch
+++ b/SOURCES/sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch
@@ -1,8 +1,26 @@
-diff -up sos-3.0/sos/plugins/mysql.py.orig sos-3.0/sos/plugins/mysql.py
---- sos-3.0/sos/plugins/mysql.py.orig	2015-01-22 16:42:58.790365255 +0000
-+++ sos-3.0/sos/plugins/mysql.py	2015-01-22 16:43:18.040498536 +0000
-@@ -23,36 +23,52 @@ class Mysql(Plugin):
-     plugin_name = "mysql"
+From 7c12e6c994b3320ef57a13e06f5c445b6bca7935 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Thu, 22 Jan 2015 15:37:15 +0000
+Subject: [PATCH] [mysql] improve handling of dbuser, dbpass and MYSQL_PWD
+
+Make sure that the mysql plugin behaves correctly when given
+different combinations of values for dbuser, dbpass and MYSQL_PWD.
+
+* If dbdump is set then either dbpass or MYSQL_PWD must be set
+* Warn if dbdump is set and dbuser or dbpass is True/False/null
+  (indicates either 'sosreport -a' or '-k mysql.dbpass')
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/mysql.py | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py
+index dd899a3..8dba204 100644
+--- a/sos/plugins/mysql.py
++++ b/sos/plugins/mysql.py
+@@ -24,35 +24,51 @@ class Mysql(Plugin):
+     profiles = ('services',)
      mysql_cnf = "/etc/my.cnf"
  
 +    pw_warn_text = " (password visible in process listings)"
@@ -11,21 +29,20 @@ diff -up sos-3.0/sos/plugins/mysql.py.orig sos-3.0/sos/plugins/mysql.py
          ("dbuser", "username for database dumps", "", "mysql"),
 -        ("dbpass", "password for database dumps", "", False),
 +        ("dbpass", "password for database dumps" + pw_warn_text, "", False),
-         ("dbdump", "collect a database dump", "", False),
-         ("all_logs", "collect all database logs", "", False)
+         ("dbdump", "collect a database dump", "", False)
      ]
  
      def setup(self):
          super(Mysql, self).setup()
 +
-         self.add_copy_specs([
+         self.add_copy_spec([
              self.mysql_cnf,
              "/var/log/mysql/mysqld.log",
              "/var/log/mariadb/mariadb.log",
          ])
 +
          if self.get_option("all_logs"):
-             self.add_copy_specs([
+             self.add_copy_spec([
                  "/var/log/mysql*",
                  "/var/log/mariadb*"
              ])
@@ -58,3 +75,6 @@ diff -up sos-3.0/sos/plugins/mysql.py.orig sos-3.0/sos/plugins/mysql.py
              os.environ['MYSQL_PWD'] = dbpass
  
              opts = "--user=%s --all-databases" % dbuser
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz1176159-mysql-test-for-boolean-values.patch b/SOURCES/sos-bz1176159-mysql-test-for-boolean-values.patch
deleted file mode 100644
index cb291c5..0000000
--- a/SOURCES/sos-bz1176159-mysql-test-for-boolean-values.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 05466cd6d9d70321fc7a0097334ef36af8dfeb43 Mon Sep 17 00:00:00 2001
-From: "Bryn M. Reeves" <bmr@redhat.com>
-Date: Tue, 20 Jan 2015 16:16:17 +0000
-Subject: [PATCH] [mysql] test for boolean values in user and password options
-
-If sosreport is run with '-a' all options will be set to boolean
-True. This causes an exception if an attempt is made to set an
-environment variable to the option value:
-
-  Traceback (most recent call last):
-    File "/usr/sbin/sosreport", line 25, in <module>
-      main(sys.argv[1:])
-    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1435, in main
-      sos.execute()
-  TypeError: must be string, not bool
-
-  > /usr/lib64/python2.7/os.py(471)__setitem__()
-  -> putenv(key, item)
-
-Test both values with isinstance(val, bool) and do not attempt to
-collect a database dump if either is a boolean.
-
-Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
----
- sos/plugins/mysql.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py
-index edab6d0..dd899a3 100644
---- a/sos/plugins/mysql.py
-+++ b/sos/plugins/mysql.py
-@@ -44,6 +44,9 @@ class Mysql(Plugin):
-         if self.get_option("dbdump"):
-             dbuser = self.get_option("dbuser")
-             dbpass = self.get_option("dbpass")
-+            if isinstance(dbuser, bool) or isinstance(dbpass, bool):
-+                # sosreport -a
-+                return
-             if 'MYSQL_PWD' in os.environ:
-                 dbpass = os.environ['MYSQL_PWD']
-             if not dbpass or dbpass is False:
--- 
-1.9.3
-
diff --git a/SOURCES/sos-bz1180919-mysql-test-for-boolean-values.patch b/SOURCES/sos-bz1180919-mysql-test-for-boolean-values.patch
new file mode 100644
index 0000000..8eecd34
--- /dev/null
+++ b/SOURCES/sos-bz1180919-mysql-test-for-boolean-values.patch
@@ -0,0 +1,44 @@
+From 05466cd6d9d70321fc7a0097334ef36af8dfeb43 Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Tue, 20 Jan 2015 16:16:17 +0000
+Subject: [PATCH] [mysql] test for boolean values in user and password options
+
+If sosreport is run with '-a' all options will be set to boolean
+True. This causes an exception if an attempt is made to set an
+environment variable to the option value:
+
+  Traceback (most recent call last):
+    File "/usr/sbin/sosreport", line 25, in <module>
+      main(sys.argv[1:])
+    File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1435, in main
+      sos.execute()
+  TypeError: must be string, not bool
+
+  > /usr/lib64/python2.7/os.py(471)__setitem__()
+  -> putenv(key, item)
+
+Test both values with isinstance(val, bool) and do not attempt to
+collect a database dump if either is a boolean.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/plugins/mysql.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py
+index edab6d0..dd899a3 100644
+--- a/sos/plugins/mysql.py
++++ b/sos/plugins/mysql.py
+@@ -45,6 +45,9 @@ class Mysql(Plugin):
+         if self.get_option("dbdump"):
+             dbuser = self.get_option("dbuser")
+             dbpass = self.get_option("dbpass")
++            if isinstance(dbuser, bool) or isinstance(dbpass, bool):
++                # sosreport -a
++                return
+             if 'MYSQL_PWD' in os.environ:
+                 dbpass = os.environ['MYSQL_PWD']
+             if not dbpass or dbpass is False:
+-- 
+1.9.3
+
diff --git a/SOURCES/sos-bz829069-normalise-tmp-dir-path.patch b/SOURCES/sos-bz829069-normalise-tmp-dir-path.patch
deleted file mode 100644
index b9ebb1b..0000000
--- a/SOURCES/sos-bz829069-normalise-tmp-dir-path.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-commit 2b2fa228391a0188a375a9e3c1e8f03f69c7eafd
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Thu Nov 7 16:27:44 2013 +0000
-
-    Normalize temporary directory path
-    
-    The archive and temporary file handling classes expect to operate
-    on absolute paths. If a user specifies a relative path via the
-    command line --tmp-dir switch it must be normalized before being
-    passed to these classes to provide correct behaviour. Failing to
-    do this causes a variety of errors: the final archive cannot be
-    created since the path is constructed incorrectly and temporary
-    files are not cleaned up since they are not at the "expected"
-    location.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/sosreport.py b/sos/sosreport.py
-index 2451439..b1f2e1d 100644
---- a/sos/sosreport.py
-+++ b/sos/sosreport.py
-@@ -534,7 +534,8 @@ class SoSReport(object):
-         self._read_config()
-         self.policy = sos.policies.load()
-         self._is_root = self.policy.is_root()
--        self.tmpdir = self.policy.get_tmp_dir(self.opts.tmp_dir)
-+        self.tmpdir = os.path.abspath(
-+            self.policy.get_tmp_dir(self.opts.tmp_dir))
-         if not os.path.isdir(self.tmpdir) \
-         or not os.access(self.tmpdir, os.W_OK):
-             # write directly to stderr as logging is not initialised yet
diff --git a/SOURCES/sos-bz829297-fix-typo-in-yum-add_forbidden_paths.patch b/SOURCES/sos-bz829297-fix-typo-in-yum-add_forbidden_paths.patch
deleted file mode 100644
index 56cc21c..0000000
--- a/SOURCES/sos-bz829297-fix-typo-in-yum-add_forbidden_paths.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit dedffd8549bcaf4688f090d800bff7f4ed7b9d43
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Nov 12 13:44:09 2013 +0000
-
-    Fix typo in yum add_forbidden_paths()
-    
-    The PKI files that should be omitted are in /etc/pki/entitlement,
-    not /etc/pki/entitlements as the plug-in currently uses.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py
-index 6d473c9..5abf06f 100644
---- a/sos/plugins/yum.py
-+++ b/sos/plugins/yum.py
-@@ -39,8 +39,8 @@ class Yum(Plugin, RedHatPlugin):
-         self.add_cmd_output("yum -C repolist")
- 
-         # candlepin info
--        self.add_forbidden_path("/etc/pki/entitlements/key.pem")
--        self.add_forbidden_path("/etc/pki/entitlements/*-key.pem")
-+        self.add_forbidden_path("/etc/pki/entitlement/key.pem")
-+        self.add_forbidden_path("/etc/pki/entitlement/*-key.pem")
-         self.add_copy_specs([
-             "/etc/pki/product/*.pem",
-             "/etc/pki/consumer/cert.pem",
diff --git a/SOURCES/sos-bz839342-cluster-collect-crm_report.patch b/SOURCES/sos-bz839342-cluster-collect-crm_report.patch
deleted file mode 100644
index e9e7fe1..0000000
--- a/SOURCES/sos-bz839342-cluster-collect-crm_report.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 89a479f315302e87267ec17e1b5d8e5f4b6d8a19
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Aug 14 18:36:25 2013 +0100
-
-    Add crm_report support to cluster plug-in
-    
-    Recent cluster stacks using the pacemaker stack include a
-    crm_report script to generate debugging information for the
-    cluster.
-    
-    Call it in single-node mode in the cluster module.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
-index 0ed3cb4..809f6fd 100644
---- a/sos/plugins/cluster.py
-+++ b/sos/plugins/cluster.py
-@@ -82,6 +82,9 @@ class Cluster(Plugin, RedHatPlugin):
-         self.add_cmd_output("dlm_tool dump")
-         self.add_cmd_output("dlm_tool ls -n")
-         self.add_cmd_output("mkqdisk -L")
-+        crm_dest = os.path.join(self.cInfo['cmddir'],
-+                                self.name(), 'crm_report')
-+        self.collectExtOutput("crm_report -S --dest %s" % crm_dest)
- 
-     def do_lockdump(self):
-         status, output, time = self.call_ext_prog("dlm_tool ls")
diff --git a/SOURCES/sos-bz916705-fix-rhel_version-problems.patch b/SOURCES/sos-bz916705-fix-rhel_version-problems.patch
deleted file mode 100644
index 5cce11c..0000000
--- a/SOURCES/sos-bz916705-fix-rhel_version-problems.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-commit c8fb8ff10de13b9f39044e2196976b15343a4d8e
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Aug 14 18:22:28 2013 +0100
-
-    Remove obsolete checks and exception handling from s390 plug-in
-    
-    The s390 plug-in has some strange checks on the distribution
-    version before collecting a couple of s390-specific commands. The
-    entire code block is also wrapped in try/except.
-    
-    Remove this: all add_cmd_output() succeed without exceptions even
-    if the command does not exist or cannot be run. The exception
-    handling also does nothing useful.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/s390.py b/sos/plugins/s390.py
-index 7254649..ed9546b 100644
---- a/sos/plugins/s390.py
-+++ b/sos/plugins/s390.py
-@@ -58,14 +58,10 @@ class S390(Plugin, RedHatPlugin):
-         self.add_cmd_output("find /sys -type f")
-         self.add_cmd_output("find /proc/s390dbf -type f")
-         self.add_cmd_output("qethconf list_all")
-+        self.add_cmd_output("lsqeth")
-+        self.add_cmd_output("lszfcp")
-         ret, dasd_dev, rtime = self.call_ext_prog("ls /dev/dasd?")
-         for x in dasd_dev.split('\n'):
-             self.add_cmd_output("dasdview -x -i -j -l -f %s" % (x,))
-             self.add_cmd_output("fdasd -p %s" % (x,))
--        try:
--            rhelver = self.policy().rhel_version()
--            if rhelver == 5:
--                self.add_cmd_output("lsqeth")
--                self.add_cmd_output("lszfcp")
--        except:
--            rhelver = None
-+
-commit 27ce4dcc524c0af2ed8c2e8449ed9783e35c174e
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Aug 14 18:26:08 2013 +0100
-
-    Remove legacy system support from cluster plug-in
-    
-    The cluster plug-in attempted to support three prior generations
-    of cluster components in a single plug-in. These will never be
-    required today since all current versions where sos-3.x would be
-    used are all using much later packages.
-    
-    Remove this code and simplify the overall plug-in organisation.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
-index 8a3432e..0ed3cb4 100644
---- a/sos/plugins/cluster.py
-+++ b/sos/plugins/cluster.py
-@@ -25,28 +25,19 @@ class Cluster(Plugin, RedHatPlugin):
-                     'gather output of gfs lockdumps', 'slow', False),
-                     ('lockdump', 'gather dlm lockdumps', 'slow', False)]
- 
--    def check_enabled(self):
--        rhelver = self.policy().rhel_version()
--        if rhelver == 4:
--            self.packages = [ "ccs", "cman", "cman-kernel", "magma",
--                              "magma-plugins", "rgmanager", "fence", "dlm",
--                              "dlm-kernel", "gulm", "GFS", "GFS-kernel",
--                              "lvm2-cluster" ]
--        elif rhelver == 5:
--            self.packages = [ "rgmanager", "luci", "ricci",
--                              "system-config-cluster", "gfs-utils", "gnbd",
--                              "kmod-gfs", "kmod-gnbd", "lvm2-cluster",
--                              "gfs2-utils" ]
--
--        elif rhelver == 6:
--            self.packages = [ "ricci", "corosync", "openais",
--                              "cman", "clusterlib", "fence-agents" ]
--
--        self.files = [ "/etc/cluster/cluster.conf" ]
--        return Plugin.check_enabled(self)
-+    packages = [
-+        "ricci",
-+        "corosync",
-+        "openais",
-+        "cman",
-+        "clusterlib",
-+        "fence-agents",
-+        "pacemaker"
-+    ]
-+
-+    files = [ "/etc/cluster/cluster.conf" ]
- 
-     def setup(self):
--        rhelver = self.policy().rhel_version()
- 
-         self.add_copy_spec("/etc/cluster.conf")
-         self.add_copy_spec("/etc/cluster.xml")
-@@ -61,13 +52,13 @@ class Cluster(Plugin, RedHatPlugin):
-         self.add_copy_spec("/etc/fence_virt.conf")
- 
-         if self.get_option('gfslockdump'):
--          self.do_gfslockdump()
-+            self.do_gfslockdump()
- 
-         if self.get_option('lockdump'):
--          self.do_lockdump()
-+            self.do_lockdump()
- 
-         self.add_cmd_output("rg_test test "
--                        + "/etc/cluster/cluster.conf" )
-+                            + "/etc/cluster/cluster.conf" )
-         self.add_cmd_output("fence_tool ls -n")
-         self.add_cmd_output("gfs_control ls -n")
-         self.add_cmd_output("dlm_tool log_plock")
-@@ -80,56 +71,23 @@ class Cluster(Plugin, RedHatPlugin):
-         self.add_cmd_output("ccs_tool lsnode")
-         self.add_cmd_output("ipvsadm -L")
- 
--        if rhelver is 4:
--            self.add_copy_spec("/proc/cluster/*")
--            self.add_cmd_output("cman_tool nodes")
--
--        if rhelver is not 4: # 5+
--            self.add_cmd_output("cman_tool -a nodes")
--
--        if rhelver is 5:
--            self.add_cmd_output("group_tool -v")
--            self.add_cmd_output("group_tool dump fence")
--            self.add_cmd_output("group_tool dump gfs")
--
--        if rhelver not in (4,5): # 6+
--            self.add_cmd_output("corosync-quorumtool -l")
--            self.add_cmd_output("corosync-quorumtool -s")
--            self.add_cmd_output("corosync-cpgtool")
--            self.add_cmd_output("corosync-objctl")
--            self.add_cmd_output("group_tool ls -g1")
--            self.add_cmd_output("gfs_control ls -n")
--            self.add_cmd_output("gfs_control dump")
--            self.add_cmd_output("fence_tool dump")
--            self.add_cmd_output("dlm_tool dump")
--            self.add_cmd_output("dlm_tool ls -n")
--            self.add_cmd_output("mkqdisk -L")
-+        self.add_cmd_output("corosync-quorumtool -l")
-+        self.add_cmd_output("corosync-quorumtool -s")
-+        self.add_cmd_output("corosync-cpgtool")
-+        self.add_cmd_output("corosync-objctl")
-+        self.add_cmd_output("group_tool ls -g1")
-+        self.add_cmd_output("gfs_control ls -n")
-+        self.add_cmd_output("gfs_control dump")
-+        self.add_cmd_output("fence_tool dump")
-+        self.add_cmd_output("dlm_tool dump")
-+        self.add_cmd_output("dlm_tool ls -n")
-+        self.add_cmd_output("mkqdisk -L")
- 
-     def do_lockdump(self):
--        rhelver = self.policy().rhel_version()
--
--        if rhelver is 4:
--            status, output, time = self.call_ext_prog("cman_tool services")
--            for lockspace in re.compile(r'^DLM Lock Space:\s*"([^"]*)".*$',
--                    re.MULTILINE).findall(output):
--                self.call_ext_prog("echo %s > /proc/cluster/dlm_locks" 
--                        % lockspace)
--                self.get_cmd_output_now("cat /proc/cluster/dlm_locks",
--                        suggest_filename = "dlm_locks_%s" % lockspace)
--
--        if rhelver is 5:
--            status, output, time = self.call_ext_prog("group_tool")
--            for lockspace in re.compile(r'^dlm\s+[^\s]+\s+([^\s]+)$',
--                    re.MULTILINE).findall(output):
--                self.add_cmd_output("dlm_tool lockdebug '%s'" % lockspace,
--                        suggest_filename = "dlm_locks_%s" % lockspace)
--
--        else: # RHEL6 or recent Fedora
--            status, output, time = self.call_ext_prog("dlm_tool ls")
--            for lockspace in re.compile(r'^name\s+([^\s]+)$',
--                    re.MULTILINE).findall(output):
--                self.add_cmd_output("dlm_tool lockdebug -svw '%s'"
--                        % lockspace,
-+        status, output, time = self.call_ext_prog("dlm_tool ls")
-+        for lockspace in re.compile(r'^name\s+([^\s]+)$',
-+                re.MULTILINE).findall(output):
-+            self.add_cmd_output("dlm_tool lockdebug -svw '%s'" % lockspace,
-                         suggest_filename = "dlm_locks_%s" % lockspace)
- 
-     def do_gfslockdump(self):
diff --git a/SOURCES/sos-bz916705-remove-rhel_version-from-yum-plugin.patch b/SOURCES/sos-bz916705-remove-rhel_version-from-yum-plugin.patch
deleted file mode 100644
index 83595c2..0000000
--- a/SOURCES/sos-bz916705-remove-rhel_version-from-yum-plugin.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit ce04c7d20ccaec04d79d625446960195229a8953
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Fri Jan 24 15:24:28 2014 +0000
-
-    Remove obsolete rhel_version() usage from yum plugin
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py
-index 5abf06f..867302c 100644
---- a/sos/plugins/yum.py
-+++ b/sos/plugins/yum.py
-@@ -26,8 +26,6 @@ class Yum(Plugin, RedHatPlugin):
-                   ("yumdebug", "gather yum debugging data", "slow", False)]
- 
-     def setup(self):
--        rhelver = self.policy().rhel_version()
--
-         # Pull all yum related information
-         self.add_copy_specs([
-             "/etc/yum",
diff --git a/SOURCES/sos-bz971420-strip-trailing-newline.patch b/SOURCES/sos-bz971420-strip-trailing-newline.patch
deleted file mode 100644
index e675d66..0000000
--- a/SOURCES/sos-bz971420-strip-trailing-newline.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-commit dc1e011f3035646c81b54c265dff638ffe282ff1
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Aug 6 21:53:41 2013 +0100
-
-    Strip trailing newline from command output
-    
-    This commit brings sos-3.x behaviour into line with earlier
-    releases and produces captured command output that is consistent
-    with typical shell redirection use.
-    
-    Resolves: bz971420
-
-diff --git a/sos/utilities.py b/sos/utilities.py
-index fcc78c5..4279b12 100644
---- a/sos/utilities.py
-+++ b/sos/utilities.py
-@@ -161,6 +161,8 @@ def sos_get_command_output(command, timeout=300):
-                 stdout=PIPE, stderr=STDOUT,
-                 bufsize=-1, env = cmd_env)
-         stdout, stderr = p.communicate()
-+        # hack to delete trailing '\n' added by p.communicate()
-+        if stdout[-1:] == '\n': stdout = stdout[:-1]
-         return (p.returncode, stdout, 0)
-     else:
-         return (127, "", 0)
diff --git a/SOURCES/sos-bz996992-do-not-attempt-to-read-use-gss-proxy.patch b/SOURCES/sos-bz996992-do-not-attempt-to-read-use-gss-proxy.patch
deleted file mode 100644
index 40a89a8..0000000
--- a/SOURCES/sos-bz996992-do-not-attempt-to-read-use-gss-proxy.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 36140249bcab17d1a3a69467208ca25af85a75f1
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Wed Aug 14 15:59:45 2013 +0100
-
-    Do not attempt to read use-gss-proxy file in procfs
-    
-    The networking plug-in scoops up /proc/net. There are some pseudo-
-    files in here that we should avoid touching. These either have
-    side-effects or hang the reading process.
-    
-    Add a forbidden path for the /proc/net/rpc/*/{channel,flush}
-    files as these will cause side-effects for RPC applications
-    running on the host.
-    
-    Forward port of commit 61585d4 on rhel-6 branch.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-    
-    Conflicts:
-    	sos/plugins/networking.py
-
-diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py
-index 90b740c..90e1b58 100644
---- a/sos/plugins/networking.py
-+++ b/sos/plugins/networking.py
-@@ -80,6 +80,9 @@ class Networking(Plugin):
-             "/etc/NetworkManager/NetworkManager.conf",
-             "/etc/NetworkManager/system-connections",
-             "/etc/dnsmasq*"])
-+        self.add_forbidden_path("/proc/net/rpc/use-gss-proxy")
-+        self.add_forbidden_path("/proc/net/rpc/*/channel")
-+        self.add_forbidden_path("/proc/net/rpc/*/flush")
- 
-         ip_addr_file=self.get_cmd_output_now("ip -o addr", root_symlink = "ip_addr")
-         ip_addr_out=self.call_ext_prog("ip -o addr")
diff --git a/SOURCES/sos-bz997083-Fix-policy-classes-for--tmp-dir.patch b/SOURCES/sos-bz997083-Fix-policy-classes-for--tmp-dir.patch
deleted file mode 100644
index c089c41..0000000
--- a/SOURCES/sos-bz997083-Fix-policy-classes-for--tmp-dir.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 420f6ee7a25833ebaaea224fc0955cacdecdd6c2
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Jun 10 20:32:20 2013 +0100
-
-    Fix policy classes for --tmp-dir
-    
-    Policy classes need to return the user-supplied temporary
-    directory if they decide not to override it.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
-index 752d480..983842d 100644
---- a/sos/policies/__init__.py
-+++ b/sos/policies/__init__.py
-@@ -190,6 +190,7 @@ No changes will be made to system configuration.
-     def get_tmp_dir(self, opt_tmp_dir):
-         if not opt_tmp_dir:
-             return tempfile.gettempdir()
-+        return opt_tmp_dir
- 
-     def validatePlugin(self, plugin_class):
-         """
-diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py
-index c3740dc..9321815 100644
---- a/sos/policies/redhat.py
-+++ b/sos/policies/redhat.py
-@@ -85,6 +85,7 @@ class RedHatPolicy(LinuxPolicy):
-     def get_tmp_dir(self, opt_tmp_dir):
-         if not opt_tmp_dir:
-             return self._tmp_dir
-+        return opt_tmp_dir
- 
-     def get_local_name(self):
-         return self.host_name()
diff --git a/SOURCES/sos-bz997090-cluster-plugin-add-obfuscation-of-luci-secrets.patch b/SOURCES/sos-bz997090-cluster-plugin-add-obfuscation-of-luci-secrets.patch
deleted file mode 100644
index 49fa317..0000000
--- a/SOURCES/sos-bz997090-cluster-plugin-add-obfuscation-of-luci-secrets.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 08ddb0559f29f3525c3b43bf59cc79467e0f75fb
-Author: Jan Pokorný <jpokorny@redhat.com>
-Date:   Sat Jul 20 09:16:13 2013 +0200
-
-    cluster plugin: restrict data collected for luci
-    
-    Notably, avoid server cert being added.  On the other hand, allow
-    collection of rotated log files for luci.
-    
-    Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
-
-diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
-index b9fa8b3..50e0e0b 100644
---- a/sos/plugins/cluster.py
-+++ b/sos/plugins/cluster.py
-@@ -46,9 +46,10 @@ class Cluster(Plugin, RedHatPlugin):
-         self.add_copy_spec("/etc/sysconfig/cman")
-         self.add_copy_spec("/etc/fence_virt.conf")
-         self.add_copy_spec("/var/lib/ricci")
--        self.add_copy_spec("/var/lib/luci")
-+        self.add_copy_spec("/var/lib/luci/data/luci.db")
-+        self.add_copy_spec("/var/lib/luci/etc")
-         self.add_copy_spec("/var/log/cluster")
--        self.add_copy_spec("/var/log/luci/luci.log")
-+        self.add_copy_spec("/var/log/luci")
-         self.add_copy_spec("/etc/fence_virt.conf")
- 
-         if self.get_option('gfslockdump'):
diff --git a/SOURCES/sos-bz997094-Added-XFS-plugin.patch b/SOURCES/sos-bz997094-Added-XFS-plugin.patch
deleted file mode 100644
index fe57b96..0000000
--- a/SOURCES/sos-bz997094-Added-XFS-plugin.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-commit dc11544c78dda4625cb6d985f6e1d76036ba6faf
-Author: Pierguido Lambri <plambri@redhat.com>
-Date:   Sat Jul 6 21:21:42 2013 +0100
-
-    Added XFS plugin
-    
-    Signed-off-by: Pierguido Lambri <plambri@redhat.com>
-
-diff --git a/sos/plugins/xfs.py b/sos/plugins/xfs.py
-new file mode 100644
-index 0000000..fe84b03
---- /dev/null
-+++ b/sos/plugins/xfs.py
-@@ -0,0 +1,40 @@
-+### This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published by
-+## the Free Software Foundation; either version 2 of the License, or
-+## (at your option) any later version.
-+
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+
-+## You should have received a copy of the GNU General Public License
-+## along with this program; if not, write to the Free Software
-+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-+import os
-+import re
-+from itertools import *
-+
-+class Xfs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
-+    """information on the XFS filesystem
-+    """
-+
-+    plugin_name = 'xfs'
-+
-+    option_list = [("logprint", 'gathers the log information', 'slow', False)]
-+
-+    def setup(self):
-+        mounts = '/proc/mounts'
-+        ext_fs_regex = r"^(/dev/.+).+xfs\s+"
-+        for dev in izip(self.do_regex_find_all(ext_fs_regex, mounts)):
-+            for e in dev:
-+                parts = e.split(' ')
-+                self.add_cmd_output("xfs_info %s" % (parts[1]))
-+
-+        if self.get_option('logprint'):
-+            for dev in izip(self.do_regex_find_all(ext_fs_regex, mounts)):
-+                for e in dev:
-+                    parts = e.split(' ')
-+                    self.add_cmd_output("xfs_logprint -c %s" % (parts[0]))
diff --git a/SOURCES/sos-bz997101-restrict-wbinfo-collection-to-the-current-domain.patch b/SOURCES/sos-bz997101-restrict-wbinfo-collection-to-the-current-domain.patch
deleted file mode 100644
index 2bde947..0000000
--- a/SOURCES/sos-bz997101-restrict-wbinfo-collection-to-the-current-domain.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 10cc09bf4d84d76cbcceccc6f3246bd9f8e9bd93
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Tue Jul 30 17:42:40 2013 +0100
-
-    Restrict wbinfo collection to the current domain.
-    
-    The samba module calls the wbinfo command to collect user and
-    group information. This by default will search all domains to
-    which the host has access. In a large AD environment with a number
-    of trusted domains this causes the winbindd process to consume
-    excessive CPU and memory resources.
-    
-    The Samba developers have commented that fixing this would require
-    a complete rewrite of the winbind protocol and wbinfo client.
-    
-    Since listing out the _entire_ set of visible users is unlikely
-    to be of any use anyway pass the --domain='.' option to restrict
-    the search to the current domain of the system.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/samba.py b/sos/plugins/samba.py
-index d4e2fe8..f3a44b7 100644
---- a/sos/plugins/samba.py
-+++ b/sos/plugins/samba.py
-@@ -23,8 +23,8 @@ class Samba(Plugin):
-         self.add_copy_specs([
-             "/etc/samba",
-             "/var/log/samba/*",])
--        self.add_cmd_output("wbinfo -g")
--        self.add_cmd_output("wbinfo -u")
-+        self.add_cmd_output("wbinfo --domain='.' -g")
-+        self.add_cmd_output("wbinfo --domain='.' -u")
-         self.add_cmd_output("testparm -s -v")
- 
- 
diff --git a/SOURCES/sos-centos-branding.patch b/SOURCES/sos-centos-branding.patch
deleted file mode 100644
index 4353529..0000000
--- a/SOURCES/sos-centos-branding.patch
+++ /dev/null
@@ -1,1558 +0,0 @@
-diff -uNrp sos-3.0.orig/po/af.po sos-3.0/po/af.po
---- sos-3.0.orig/po/af.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/af.po	2014-06-21 11:15:36.435724571 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/am.po sos-3.0/po/am.po
---- sos-3.0.orig/po/am.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/am.po	2014-06-21 11:15:36.436724563 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/ar.po sos-3.0/po/ar.po
---- sos-3.0.orig/po/ar.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ar.po	2014-06-21 11:16:38.081245080 -0500
-@@ -179,8 +179,8 @@ msgid "Cannot upload to specified URL."
- msgstr "لا يمكن الرفع للعنوان المحدّد"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "صودفت مشكلة برفع تقريرك إلى دعم Red Hat. "
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "صودفت مشكلة برفع تقريرك إلى دعم CentOS. "
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/as.po sos-3.0/po/as.po
---- sos-3.0.orig/po/as.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/as.po	2014-06-21 11:15:36.437724555 -0500
-@@ -85,11 +85,11 @@ msgid ""
- "No changes will be made to your system.\n"
- "\n"
- msgstr ""
--"এই সামগ্ৰীৰ সহায়ত যান্ত্ৰিক সামগ্ৰী আৰু Red Hat Enterprise Linux\n"
-+"এই সামগ্ৰীৰ সহায়ত যান্ত্ৰিক সামগ্ৰী আৰু CentOS Enterprise Linux\n"
- "প্ৰণালীৰ প্ৰতিষ্ঠা সম্পৰ্কে বিশদ তথ্য সংগ্ৰহ কৰা হ'ব ।\n"
- "তথ্য সংগ্ৰহৰ পিছত /tmp পঞ্জিকাৰ অধীন এটা আৰ্কাইভ নিৰ্মিত হয় ।\n"
- "এই আৰ্কাইভ আপুনি সহায়তা প্ৰতিনিধিৰ কাশত পঠায় দিব পাৰে ।\n"
--"Red Hat দ্বাৰা এই তথ্য অকল সমস্যাৰ কাৰণ নিৰ্ণয় কৰাৰ বাবে ব্যৱহাৰ কৰা হ'ব\n"
-+"CentOS দ্বাৰা এই তথ্য অকল সমস্যাৰ কাৰণ নিৰ্ণয় কৰাৰ বাবে ব্যৱহাৰ কৰা হ'ব\n"
- "আৰু ইয়াৰ গোপনীয়তা বজায় ৰাখা হ'ব ।\n"
- "\n"
- "এই কাম সম্পন্ন হ'বলৈ কিছু সময় ব্যয় হ'ব পাৰে ।\n"
-@@ -184,14 +184,14 @@ msgid "Cannot upload to specified URL."
- msgstr "উল্লিখিত URL-এ আপলোড কৰিবলৈ ব্যৰ্থ ।"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "আপোনাৰ ৰিপোৰ্টটি Red Hat সহায়তা ব্যৱস্থাত আপলোড কৰিবলৈ সমস্যা ।"
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "আপোনাৰ ৰিপোৰ্টটি CentOS সহায়তা ব্যৱস্থাত আপলোড কৰিবলৈ সমস্যা ।"
- 
- #: ../sos/policyredhat.py:401
- #, fuzzy, python-format
- msgid "Your report was successfully uploaded to %s with name:"
- msgstr ""
--"আপোনাৰ প্ৰদত্ত ৰিপোৰ্ট সফলতাৰে সৈতে Red Hat-ৰ ftp সেৱকত নিম্নলিখিত নামত আপলোড "
-+"আপোনাৰ প্ৰদত্ত ৰিপোৰ্ট সফলতাৰে সৈতে CentOS-ৰ ftp সেৱকত নিম্নলিখিত নামত আপলোড "
- "কৰা হৈছে:"
- 
- #: ../sos/policyredhat.py:404
-diff -uNrp sos-3.0.orig/po/ast.po sos-3.0/po/ast.po
---- sos-3.0.orig/po/ast.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ast.po	2014-06-21 11:17:08.318010034 -0500
-@@ -86,10 +86,10 @@ msgid ""
- "\n"
- msgstr ""
- "Esta utilidá recueyerá dalguna información detallada sobro'l\n"
--"hardware y la configuración del to sistema Red Hat Enterprise Linux.\n"
-+"hardware y la configuración del to sistema CentOS Enterprise Linux.\n"
- "La información recuéyese y críase un ficheru baxo /tmp.\n"
- "Ésti puede mandase al to representante de sofitu.\n"
--"Red Hat usará esta información pa diagnosticar el sistema\n"
-+"CentOS usará esta información pa diagnosticar el sistema\n"
- "únicamente y considerará esta información como confidencial.\n"
- "\n"
- "Esti procesu va llevar un tiempu pa completase.\n"
-@@ -184,14 +184,14 @@ msgid "Cannot upload to specified URL."
- msgstr "Nun se puede cargar a la URL especificada."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
--"Hebo un problema al cargar el to informe al equipu d'asistencia de Red Hat"
-+"Hebo un problema al cargar el to informe al equipu d'asistencia de CentOS"
- 
- #: ../sos/policyredhat.py:401
- #, fuzzy, python-format
- msgid "Your report was successfully uploaded to %s with name:"
--msgstr "El to informe cargóse bien a los sirvidores ftp e Red Hat col nome:"
-+msgstr "El to informe cargóse bien a los sirvidores ftp e CentOS col nome:"
- 
- #: ../sos/policyredhat.py:404
- msgid "Please communicate this name to your support representative."
-diff -uNrp sos-3.0.orig/po/be.po sos-3.0/po/be.po
---- sos-3.0.orig/po/be.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/be.po	2014-06-21 11:15:36.438724547 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/bg.po sos-3.0/po/bg.po
---- sos-3.0.orig/po/bg.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/bg.po	2014-06-21 11:15:36.439724539 -0500
-@@ -172,9 +172,9 @@ msgid "Cannot upload to specified URL."
- msgstr "Не може да се качи на посочения URL"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
--"Възникна проблем при качването на вашия отчет на проддръжката на Red Hat."
-+"Възникна проблем при качването на вашия отчет на проддръжката на CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/bn_IN.po sos-3.0/po/bn_IN.po
---- sos-3.0.orig/po/bn_IN.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/bn_IN.po	2014-06-21 11:15:36.440724532 -0500
-@@ -184,8 +184,8 @@ msgid "Cannot upload to specified URL."
- msgstr "উল্লিখিত URL-এ আপলোড করতে ব্যর্থ।"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "আপনার রিপোর্টটি Red Hat সহায়তা ব্যবস্থায় আপলোড করতে সমস্যা।"
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "আপনার রিপোর্টটি CentOS সহায়তা ব্যবস্থায় আপলোড করতে সমস্যা।"
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/bn.po sos-3.0/po/bn.po
---- sos-3.0.orig/po/bn.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/bn.po	2014-06-21 11:15:36.440724532 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/bs.po sos-3.0/po/bs.po
---- sos-3.0.orig/po/bs.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/bs.po	2014-06-21 11:15:36.441724524 -0500
-@@ -189,8 +189,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Nije se mogao postaviti specificirani URL,"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Bilo je problema u postavljanju vaseg izvjestaja na Red Hat podrsku. "
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Bilo je problema u postavljanju vaseg izvjestaja na CentOS podrsku. "
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/ca.po sos-3.0/po/ca.po
---- sos-3.0.orig/po/ca.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ca.po	2014-06-21 11:15:36.442724516 -0500
-@@ -194,8 +194,8 @@ msgid "Cannot upload to specified URL."
- msgstr "No es pot pujar a la URL especificada."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Hi ha hagut un problema en pujar l'informe al manteniment de Red Hat."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Hi ha hagut un problema en pujar l'informe al manteniment de CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/cs.po sos-3.0/po/cs.po
---- sos-3.0.orig/po/cs.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/cs.po	2014-06-21 11:15:36.443724508 -0500
-@@ -183,8 +183,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Nelze uložit na uvedené URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Při odesílání zprávy do firmy Red Hat vznikla chyba."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Při odesílání zprávy do firmy CentOS vznikla chyba."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/cy.po sos-3.0/po/cy.po
---- sos-3.0.orig/po/cy.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/cy.po	2014-06-21 11:15:36.443724508 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/da.po sos-3.0/po/da.po
---- sos-3.0.orig/po/da.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/da.po	2014-06-21 11:15:36.444724501 -0500
-@@ -184,9 +184,9 @@ msgid "Cannot upload to specified URL."
- msgstr "Kan ikke overføre til den angivne URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
--"Der opstod et problem under overførsel af din rapport til Red Hat-support."
-+"Der opstod et problem under overførsel af din rapport til CentOS-support."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/de_CH.po sos-3.0/po/de_CH.po
---- sos-3.0.orig/po/de_CH.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/de_CH.po	2014-06-21 11:15:36.444724501 -0500
-@@ -87,10 +87,10 @@ msgid ""
- "\n"
- msgstr ""
- "Dieses Dienstprogramm sammelt einige detaillierte Informationen\n"
--"zur Hardware und Einrichtung Ihres Red Hat Enterprise Linux Systems.\n"
-+"zur Hardware und Einrichtung Ihres CentOS Enterprise Linux Systems.\n"
- "Die Informationen werden gesammelt und in einem Archiv unter /tmp\n"
- "zusammengefasst, welches Sie an einen Support-Vertreter schicken\n"
--"können. Red Hat verwendet diese Informationen AUSSCHLIESSLICH zu\n"
-+"können. CentOS verwendet diese Informationen AUSSCHLIESSLICH zu\n"
- "Diagnosezwecken und behandelt sie als vertrauliche Informationen.\n"
- "\n"
- "Die Fertigstellung dieses Prozesses kann eine Weile dauern.\n"
-@@ -188,14 +188,14 @@ msgid "Cannot upload to specified URL."
- msgstr "Hochladen zu speziellem URL scheiterte."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Beim Hochladen Ihres Berichts zum Red Hat Support trat ein Fehler auf."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Beim Hochladen Ihres Berichts zum CentOS Support trat ein Fehler auf."
- 
- #: ../sos/policyredhat.py:401
- #, fuzzy, python-format
- msgid "Your report was successfully uploaded to %s with name:"
- msgstr ""
--"Ihr Bericht wurde erfolgreich auf den Red Hat FTP-Server hochgeladen, mit "
-+"Ihr Bericht wurde erfolgreich auf den CentOS FTP-Server hochgeladen, mit "
- "dem Namen:"
- 
- #: ../sos/policyredhat.py:404
-diff -uNrp sos-3.0.orig/po/de.po sos-3.0/po/de.po
---- sos-3.0.orig/po/de.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/de.po	2014-06-21 11:15:36.445724493 -0500
-@@ -191,8 +191,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Hochladen zu spezieller URL scheiterte."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Beim Hochladen Ihres Berichts zum Red Hat Support trat ein Fehler auf."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Beim Hochladen Ihres Berichts zum CentOS Support trat ein Fehler auf."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/el.po sos-3.0/po/el.po
---- sos-3.0.orig/po/el.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/el.po	2014-06-21 11:15:36.445724493 -0500
-@@ -84,10 +84,10 @@ msgid ""
- "\n"
- msgstr ""
- "Αυτό το εργαλείο θα συγκετρώσει ορισμένες πληροφορίες για τον υπολογιστή σας "
--"και την εγκατάσταση του Red Hat Enterprise Linux συστήματος.\n"
-+"και την εγκατάσταση του CentOS Enterprise Linux συστήματος.\n"
- "Οι πληροφορίες συγκετρώνονται και το archive δημιουργήται στο\n"
- "/tmp,το οποίο και μπορείτε να στείλετε σε έναν αντιπρόσωπο υποστήριξης.\n"
--"Η Red Hat θα χρησιμοποιήσει αυτα τα δεδομένα ΜΟΝΟ για διαγνωστικούς σκοπούς\n"
-+"Η CentOS θα χρησιμοποιήσει αυτα τα δεδομένα ΜΟΝΟ για διαγνωστικούς σκοπούς\n"
- "και θα παραμείνουν εμπιστευτηκά.\n"
- "\n"
- 
-@@ -180,8 +180,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Δεν είναι δυνατό το upload στο καθορισμένο URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Υπήρξε ένα πρόβλημα κατα το upload της αναφοράς σας στην Red Hat."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Υπήρξε ένα πρόβλημα κατα το upload της αναφοράς σας στην CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/en_GB.po sos-3.0/po/en_GB.po
---- sos-3.0.orig/po/en_GB.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/en_GB.po	2014-06-21 11:15:36.446724485 -0500
-@@ -83,10 +83,10 @@ msgid ""
- "\n"
- msgstr ""
- "This utility will collect some detailed  information about the\n"
--"hardware and  setup of your  Red Hat Enterprise Linux  system.\n"
-+"hardware and  setup of your  CentOS Enterprise Linux  system.\n"
- "The information is collected and an archive is  packaged under\n"
- "/tmp, which you can send to a support representative.\n"
--"Red Hat will use this information for diagnostic purposes ONLY\n"
-+"CentOS will use this information for diagnostic purposes ONLY\n"
- "and it will be considered confidential information.\n"
- "\n"
- "This process may take a while to complete.\n"
-@@ -181,14 +181,14 @@ msgid "Cannot upload to specified URL."
- msgstr "Cannot upload to specified URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "There was a problem uploading your report to CentOS support."
- 
- #: ../sos/policyredhat.py:401
- #, fuzzy, python-format
- msgid "Your report was successfully uploaded to %s with name:"
- msgstr ""
--"Your report was successfully uploaded to Red Hat's ftp server with name:"
-+"Your report was successfully uploaded to CentOS's ftp server with name:"
- 
- #: ../sos/policyredhat.py:404
- msgid "Please communicate this name to your support representative."
-diff -uNrp sos-3.0.orig/po/en.po sos-3.0/po/en.po
---- sos-3.0.orig/po/en.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/en.po	2014-06-21 11:15:36.446724485 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/es.po sos-3.0/po/es.po
---- sos-3.0.orig/po/es.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/es.po	2014-06-21 11:17:24.153886936 -0500
-@@ -189,9 +189,9 @@ msgid "Cannot upload to specified URL."
- msgstr "No se puede cargar a la URL especificada."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
--"Hubo un problema al cargar su reporte al equipo de asistencia de Red Hat"
-+"Hubo un problema al cargar su reporte al equipo de asistencia de CentOS"
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/et.po sos-3.0/po/et.po
---- sos-3.0.orig/po/et.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/et.po	2014-06-21 11:15:36.447724477 -0500
-@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/eu_ES.po sos-3.0/po/eu_ES.po
---- sos-3.0.orig/po/eu_ES.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/eu_ES.po	2014-06-21 11:15:36.448724469 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/fa.po sos-3.0/po/fa.po
---- sos-3.0.orig/po/fa.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/fa.po	2014-06-21 11:15:36.448724469 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/fi.po sos-3.0/po/fi.po
---- sos-3.0.orig/po/fi.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/fi.po	2014-06-21 11:17:38.280777198 -0500
-@@ -179,8 +179,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Annettuun osoitteeseen ei voida lähettää."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Raportin lähettämisessä Red Hatin käyttötukeen oli ongelmia."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Raportin lähettämisessä CentOSin käyttötukeen oli ongelmia."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/fr.po sos-3.0/po/fr.po
---- sos-3.0.orig/po/fr.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/fr.po	2014-06-21 11:15:36.449724462 -0500
-@@ -188,10 +188,10 @@ msgid "Cannot upload to specified URL."
- msgstr "Impossible de le télécharger vers l'URL spécifié."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- "Une erreur s'est produite lors du téléchargement de votre rapport vers le "
--"support Red Hat."
-+"support CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/gl.po sos-3.0/po/gl.po
---- sos-3.0.orig/po/gl.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/gl.po	2014-06-21 11:15:36.450724454 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/gu.po sos-3.0/po/gu.po
---- sos-3.0.orig/po/gu.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/gu.po	2014-06-21 11:15:36.450724454 -0500
-@@ -186,8 +186,8 @@ msgid "Cannot upload to specified URL."
- msgstr "સ્પષ્ટ કરેલ URL અપલોડ કરી શકતા નથી."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "તમારા અહેવાલને Red Hat આધારમાં અપલોડ કરવામાં સમસ્યા હતી."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "તમારા અહેવાલને CentOS આધારમાં અપલોડ કરવામાં સમસ્યા હતી."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/he.po sos-3.0/po/he.po
---- sos-3.0.orig/po/he.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/he.po	2014-06-21 11:15:36.450724454 -0500
-@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/hi.po sos-3.0/po/hi.po
---- sos-3.0.orig/po/hi.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/hi.po	2014-06-21 11:15:36.451724446 -0500
-@@ -187,8 +187,8 @@ msgid "Cannot upload to specified URL."
- msgstr "निर्दिष्ट URL अपलोड नहीं कर सकता है."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "आपके रिपोर्ट को Red Hat समर्थन में अपलोड करने में समस्या थी."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "आपके रिपोर्ट को CentOS समर्थन में अपलोड करने में समस्या थी."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/hr.po sos-3.0/po/hr.po
---- sos-3.0.orig/po/hr.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/hr.po	2014-06-21 11:15:36.451724446 -0500
-@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/hu.po sos-3.0/po/hu.po
---- sos-3.0.orig/po/hu.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/hu.po	2014-06-21 11:15:36.452724438 -0500
-@@ -180,8 +180,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Nem lehet az URL-re feltölteni."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "A jelentést a Red Hat támogatáshoz feltöltvén baj történt."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "A jelentést a CentOS támogatáshoz feltöltvén baj történt."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/hy.po sos-3.0/po/hy.po
---- sos-3.0.orig/po/hy.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/hy.po	2014-06-21 11:15:36.452724438 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/id.po sos-3.0/po/id.po
---- sos-3.0.orig/po/id.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/id.po	2014-06-21 11:15:36.453724430 -0500
-@@ -171,7 +171,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/ilo.po sos-3.0/po/ilo.po
---- sos-3.0.orig/po/ilo.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ilo.po	2014-06-21 11:15:36.453724430 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/is.po sos-3.0/po/is.po
---- sos-3.0.orig/po/is.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/is.po	2014-06-21 11:15:36.453724430 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/it.po sos-3.0/po/it.po
---- sos-3.0.orig/po/it.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/it.po	2014-06-21 11:15:36.454724423 -0500
-@@ -181,7 +181,7 @@ msgid "Cannot upload to specified URL."
- msgstr "Impossibile inviare all'URL specificato."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- "Si è verificato un problema nell'inviare il report al supporto tecnico Red "
- "Hat."
-diff -uNrp sos-3.0.orig/po/ja.po sos-3.0/po/ja.po
---- sos-3.0.orig/po/ja.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ja.po	2014-06-21 11:15:36.454724423 -0500
-@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL."
- msgstr "指定された URL にアップロードできません。"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "レポートを Red Hat サポートにアップロードするのに問題がありました。"
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "レポートを CentOS サポートにアップロードするのに問題がありました。"
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/ka.po sos-3.0/po/ka.po
---- sos-3.0.orig/po/ka.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ka.po	2014-06-21 11:15:36.455724415 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/kn.po sos-3.0/po/kn.po
---- sos-3.0.orig/po/kn.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/kn.po	2014-06-21 11:15:36.455724415 -0500
-@@ -185,9 +185,9 @@ msgid "Cannot upload to specified URL."
- msgstr "ಸೂಚಿಸಲಾದ URL ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
--"ನಿಮ್ಮ ವರದಿಯನ್ನು Red Hat ಬೆಂಬಲದ ಸ್ಥಳಕ್ಕೆ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಒಂದು ತೊಂದರೆ ಉಂಟಾಗಿದೆ."
-+"ನಿಮ್ಮ ವರದಿಯನ್ನು CentOS ಬೆಂಬಲದ ಸ್ಥಳಕ್ಕೆ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಒಂದು ತೊಂದರೆ ಉಂಟಾಗಿದೆ."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/ko.po sos-3.0/po/ko.po
---- sos-3.0.orig/po/ko.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ko.po	2014-06-21 11:17:58.331621414 -0500
-@@ -84,10 +84,10 @@ msgid ""
- "No changes will be made to your system.\n"
- "\n"
- msgstr ""
--"이 유틸리티는 Red Hat Enterprise Linux 시스템의 하드웨어와 \n"
-+"이 유틸리티는 CentOS Enterprise Linux 시스템의 하드웨어와 \n"
- "시스템 설정 사항에 대한 상세 정보를 수집하게 됩니다. 수집된 \n"
- "정보는 지원 담당자에게 보낼 수 있도록 /tmp 디렉토리 안에 \n"
--"아카이브로 저장됩니다. Red Hat은 이 정보를 문제 해결 목적으로만 사용하며 기"
-+"아카이브로 저장됩니다. CentOS은 이 정보를 문제 해결 목적으로만 사용하며 기"
- "밀 정보로 \n"
- "취급할 것입니다. \n"
- "\n"
-@@ -183,8 +183,8 @@ msgid "Cannot upload to specified URL."
- msgstr "지정된 URL에서 업로드할 수 없습니다."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "리포트를 Red Hat 지원 센터로 업로드하는 데 문제가 발생했습니다."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "리포트를 CentOS 지원 센터로 업로드하는 데 문제가 발생했습니다."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/ku.po sos-3.0/po/ku.po
---- sos-3.0.orig/po/ku.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ku.po	2014-06-21 11:15:36.456724407 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/lo.po sos-3.0/po/lo.po
---- sos-3.0.orig/po/lo.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/lo.po	2014-06-21 11:15:36.457724399 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/lt.po sos-3.0/po/lt.po
---- sos-3.0.orig/po/lt.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/lt.po	2014-06-21 11:15:36.457724399 -0500
-@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/lv.po sos-3.0/po/lv.po
---- sos-3.0.orig/po/lv.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/lv.po	2014-06-21 11:15:36.458724392 -0500
-@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/mk.po sos-3.0/po/mk.po
---- sos-3.0.orig/po/mk.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/mk.po	2014-06-21 11:15:36.459724384 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/ml.po sos-3.0/po/ml.po
---- sos-3.0.orig/po/ml.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ml.po	2014-06-21 11:15:36.459724384 -0500
-@@ -183,8 +183,8 @@ msgid "Cannot upload to specified URL."
- msgstr "നല്‍കിയിരിക്കുന്ന URL-ലേക്ക് ഫയല്‍ അപ്ലോഡ് ചെയ്യുവാന്‍ സാധ്യമായില്ല "
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Red Hat-ലേക്ക് നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് അയയ്ക്കുന്നതില്‍ ഏതോ പ്റശ്നം ഉണ്ടായിരിക്കുന്നു."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "CentOS-ലേക്ക് നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് അയയ്ക്കുന്നതില്‍ ഏതോ പ്റശ്നം ഉണ്ടായിരിക്കുന്നു."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/mr.po sos-3.0/po/mr.po
---- sos-3.0.orig/po/mr.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/mr.po	2014-06-21 11:15:36.460724376 -0500
-@@ -184,8 +184,8 @@ msgid "Cannot upload to specified URL."
- msgstr "निर्देशीत URL अपलोड करण्यास अशक्य."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "तुमचा अहवाल Red Hat सपोर्टकडे पाठवतेवेळी अडचण आढळली."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "तुमचा अहवाल CentOS सपोर्टकडे पाठवतेवेळी अडचण आढळली."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/ms.po sos-3.0/po/ms.po
---- sos-3.0.orig/po/ms.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ms.po	2014-06-21 11:15:36.461724368 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/my.po sos-3.0/po/my.po
---- sos-3.0.orig/po/my.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/my.po	2014-06-21 11:15:36.461724368 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/nb.po sos-3.0/po/nb.po
---- sos-3.0.orig/po/nb.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/nb.po	2014-06-21 11:15:36.462724360 -0500
-@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL."
- msgstr "Kan ikke laste opp til oppgitt URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/nds.po sos-3.0/po/nds.po
---- sos-3.0.orig/po/nds.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/nds.po	2014-06-21 11:15:36.462724360 -0500
-@@ -165,7 +165,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/nl.po sos-3.0/po/nl.po
---- sos-3.0.orig/po/nl.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/nl.po	2014-06-21 11:15:36.462724360 -0500
-@@ -183,9 +183,9 @@ msgid "Cannot upload to specified URL."
- msgstr "Kan niet naar de opgegeven URL uploaden."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
--"Er trad een probleem op bij het uploaden van jouw rapport naar Red Hat "
-+"Er trad een probleem op bij het uploaden van jouw rapport naar CentOS "
- "support."
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/nn.po sos-3.0/po/nn.po
---- sos-3.0.orig/po/nn.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/nn.po	2014-06-21 11:15:36.462724360 -0500
-@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/nso.po sos-3.0/po/nso.po
---- sos-3.0.orig/po/nso.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/nso.po	2014-06-21 11:15:36.463724353 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/or.po sos-3.0/po/or.po
---- sos-3.0.orig/po/or.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/or.po	2014-06-21 11:15:36.463724353 -0500
-@@ -188,8 +188,8 @@ msgid "Cannot upload to specified URL."
- msgstr "ଉଲ୍ଲିଖିତ URL କୁ ଧାରଣ କରିପାରିବେ ନାହିଁ।"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Red Hat ସହାୟତାରେ ଆପଣଙ୍କର ବିବରଣୀକୁ ଧାରଣ କରିବାରେ ସମସ୍ୟା ଦୋଇଥିଲା।"
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "CentOS ସହାୟତାରେ ଆପଣଙ୍କର ବିବରଣୀକୁ ଧାରଣ କରିବାରେ ସମସ୍ୟା ଦୋଇଥିଲା।"
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/pa.po sos-3.0/po/pa.po
---- sos-3.0.orig/po/pa.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/pa.po	2014-06-21 11:15:36.463724353 -0500
-@@ -184,8 +184,8 @@ msgid "Cannot upload to specified URL."
- msgstr "ਦਿੱਤੇ URL ਤੇ ਅੱਪਲੋਡ ਨਹੀਂ ਕਰ ਸਕਦਾ।"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਨੂੰ Red Hat ਸਹਿਯੋਗ ਤੇ ਅੱਪਲੋਡ ਕਰਨ ਵੇਲੇ ਗਲਤੀ ਆਈ ਹੈ।"
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਨੂੰ CentOS ਸਹਿਯੋਗ ਤੇ ਅੱਪਲੋਡ ਕਰਨ ਵੇਲੇ ਗਲਤੀ ਆਈ ਹੈ।"
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/pl.po sos-3.0/po/pl.po
---- sos-3.0.orig/po/pl.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/pl.po	2014-06-21 11:15:36.463724353 -0500
-@@ -179,10 +179,10 @@ msgid "Cannot upload to specified URL."
- msgstr "Nie można wysłać na podany adres URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- "Wystąpił problem podczas wysyłania raportu do wsparcia technicznego firmy "
--"Red Hat."
-+"CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/pt_BR.po sos-3.0/po/pt_BR.po
---- sos-3.0.orig/po/pt_BR.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/pt_BR.po	2014-06-21 11:15:36.463724353 -0500
-@@ -182,8 +182,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Não foi possível enviar para a URL especificada."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Houve um problema ao enviar o seu relatório para o suporte da Red Hat."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Houve um problema ao enviar o seu relatório para o suporte da CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/pt.po sos-3.0/po/pt.po
---- sos-3.0.orig/po/pt.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/pt.po	2014-06-21 11:15:36.463724353 -0500
-@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Não foi possível submeter para o URL especificado."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Ocorreu um erro ao submeter o seu relatório para o suporte Red Hat."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Ocorreu um erro ao submeter o seu relatório para o suporte CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/ro.po sos-3.0/po/ro.po
---- sos-3.0.orig/po/ro.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ro.po	2014-06-21 11:15:36.464724345 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/ru.po sos-3.0/po/ru.po
---- sos-3.0.orig/po/ru.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ru.po	2014-06-21 11:15:36.464724345 -0500
-@@ -186,9 +186,9 @@ msgid "Cannot upload to specified URL."
- msgstr "Не удалось отправить файл."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
--"Произошла ошибка при попытке отправить отчёт в службу поддержки Red Hat."
-+"Произошла ошибка при попытке отправить отчёт в службу поддержки CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/si.po sos-3.0/po/si.po
---- sos-3.0.orig/po/si.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/si.po	2014-06-21 11:15:36.464724345 -0500
-@@ -85,11 +85,11 @@ msgid ""
- "No changes will be made to your system.\n"
- "\n"
- msgstr ""
--"මෙම උපයෝගි තාවය දෘඩාංග පිළිබදව සවිස්තරාත්මක තොරතුරු රැස්කරණ අතර ඔබගේ  Red Hat "
-+"මෙම උපයෝගි තාවය දෘඩාංග පිළිබදව සවිස්තරාත්මක තොරතුරු රැස්කරණ අතර ඔබගේ  CentOS "
- "Enterprise Linux  පද්ධතිය පිහිටවනු ලැබේ.\n"
- "රැස් කළ තොරතුරු සහ සංරක්‍ෂකය /tmp යටතේ ඇසුරුම් ගත කර ඇති අතර ඔබට එය සහායක නියෝජිත වෙත "
- "යැවිය හැක.\n"
--"Red Hat මෙම තොරතුරු  භාවිතා කරන්නේ දෝෂ විනිශ්චය පමණක් වන අතර එම තොරතුරු රහසිගත තොරතුරු "
-+"CentOS මෙම තොරතුරු  භාවිතා කරන්නේ දෝෂ විනිශ්චය පමණක් වන අතර එම තොරතුරු රහසිගත තොරතුරු "
- "ලෙස සළකණු ලබයි.\n"
- "\n"
- "මෙම ක්‍රියාව නිම වීමට වේලාවක් ගතවනු ඇත.\n"
-@@ -184,13 +184,13 @@ msgid "Cannot upload to specified URL."
- msgstr "දක්වන ලඳ URL වෙත ලබා දිය නොහැක."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "ඔබගේ වාර්තාව Red Hat සහය වෙතට ලබා දිමේදි දෝෂයල් ඇති විය."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "ඔබගේ වාර්තාව CentOS සහය වෙතට ලබා දිමේදි දෝෂයල් ඇති විය."
- 
- #: ../sos/policyredhat.py:401
- #, fuzzy, python-format
- msgid "Your report was successfully uploaded to %s with name:"
--msgstr "ඔබගේ වාර්තාව සාර්තකව Red Hat's ftp සේවාදායකයට ලබාදුන් අතර නම වූයේ:"
-+msgstr "ඔබගේ වාර්තාව සාර්තකව CentOS's ftp සේවාදායකයට ලබාදුන් අතර නම වූයේ:"
- 
- #: ../sos/policyredhat.py:404
- msgid "Please communicate this name to your support representative."
-diff -uNrp sos-3.0.orig/po/sk.po sos-3.0/po/sk.po
---- sos-3.0.orig/po/sk.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/sk.po	2014-06-21 11:15:36.464724345 -0500
-@@ -182,8 +182,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Nie je možné odoslať na zadanú adresu URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Nastal problém pri odosielaní vašej správy na podporu Red Hat."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Nastal problém pri odosielaní vašej správy na podporu CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/sl.po sos-3.0/po/sl.po
---- sos-3.0.orig/po/sl.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/sl.po	2014-06-21 11:15:36.464724345 -0500
-@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/sos.pot sos-3.0/po/sos.pot
---- sos-3.0.orig/po/sos.pot	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/sos.pot	2014-06-21 11:15:36.464724345 -0500
-@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/sq.po sos-3.0/po/sq.po
---- sos-3.0.orig/po/sq.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/sq.po	2014-06-21 11:15:36.464724345 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/sr@latin.po sos-3.0/po/sr@latin.po
---- sos-3.0.orig/po/sr@latin.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/sr@latin.po	2014-06-21 11:15:36.465724337 -0500
-@@ -182,8 +182,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Ne mogu da pošaljem na navedeni URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Pojavio se problem pri slanju vašeg izveštaja Red Hat podršci."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Pojavio se problem pri slanju vašeg izveštaja CentOS podršci."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/sr.po sos-3.0/po/sr.po
---- sos-3.0.orig/po/sr.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/sr.po	2014-06-21 11:15:36.465724337 -0500
-@@ -182,8 +182,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Не могу да пошаљем на наведени УРЛ."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Појавио се проблем при слању вашег извештаја Red Hat подршци."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Појавио се проблем при слању вашег извештаја CentOS подршци."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/sv.po sos-3.0/po/sv.po
---- sos-3.0.orig/po/sv.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/sv.po	2014-06-21 11:15:36.465724337 -0500
-@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Kan inte skicka till angiven URL."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Ett problem uppstod när din rapport skickades till Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Ett problem uppstod när din rapport skickades till CentOS support."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/ta.po sos-3.0/po/ta.po
---- sos-3.0.orig/po/ta.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ta.po	2014-06-21 11:15:36.465724337 -0500
-@@ -188,8 +188,8 @@ msgid "Cannot upload to specified URL."
- msgstr "குறிப்பிட்ட இணைய முகவரியில் ஏற்ற முடியவில்லை."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "உங்கள் அறிக்கையை Red Hat சேவைக்கு அனுப்புவதில் சிக்கல்."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "உங்கள் அறிக்கையை CentOS சேவைக்கு அனுப்புவதில் சிக்கல்."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/te.po sos-3.0/po/te.po
---- sos-3.0.orig/po/te.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/te.po	2014-06-21 11:15:36.465724337 -0500
-@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL."
- msgstr "తెలుపబడిన URLకు అప్‌లోడ్ చేయలేదు."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "మీ సమస్యను Red Hat మద్దతునకు అప్‌లోడు చేయుటలో వొక సమస్యవుంది."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "మీ సమస్యను CentOS మద్దతునకు అప్‌లోడు చేయుటలో వొక సమస్యవుంది."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/th.po sos-3.0/po/th.po
---- sos-3.0.orig/po/th.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/th.po	2014-06-21 11:18:12.876508348 -0500
-@@ -84,9 +84,9 @@ msgid ""
- "\n"
- msgstr ""
- "เครื่องมือนี้จะเก็บข้อมูลโดยละเอียดเกี่ยวกับฮาร์ดแวร์และการตั้งค่า\n"
--"ระบบ Red Hat Enterprise Linux ของคุณ ข้อมูลจะถูกเก็บและ\n"
-+"ระบบ CentOS Enterprise Linux ของคุณ ข้อมูลจะถูกเก็บและ\n"
- "สร้างเป็นไฟล์ที่ /tmp ซึ่งคุณสามารถส่งไปยังผู้สนับสนุนได้\n"
--"Red Hat จะใช้ข้อมูลนี้ในการแก้ไขปัญหาเท่านั้น และจะถือว่าเป็น\n"
-+"CentOS จะใช้ข้อมูลนี้ในการแก้ไขปัญหาเท่านั้น และจะถือว่าเป็น\n"
- "ความลับ\n"
- "\n"
- "กระบวนการนี้อาจจะใช้เวลาสักครู่ในการทำงาน จะไม่มีการแก้ไข\n"
-@@ -180,13 +180,13 @@ msgid "Cannot upload to specified URL."
- msgstr "ไม่สามารถอัพโหลดไปยัง URL ที่ระบุ"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "มีปัญหาในการอัพโหลดรายงานของคุณไปยังฝ่ายสนับสนุน Red Hat"
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "มีปัญหาในการอัพโหลดรายงานของคุณไปยังฝ่ายสนับสนุน CentOS"
- 
- #: ../sos/policyredhat.py:401
- #, fuzzy, python-format
- msgid "Your report was successfully uploaded to %s with name:"
--msgstr "รายงานของคุณได้ถูกส่งไปยังเซิร์ฟเวอร์ ftp ของ Red Hat ในชื่อ:"
-+msgstr "รายงานของคุณได้ถูกส่งไปยังเซิร์ฟเวอร์ ftp ของ CentOS ในชื่อ:"
- 
- #: ../sos/policyredhat.py:404
- msgid "Please communicate this name to your support representative."
-diff -uNrp sos-3.0.orig/po/tr.po sos-3.0/po/tr.po
---- sos-3.0.orig/po/tr.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/tr.po	2014-06-21 11:15:36.466724329 -0500
-@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Belirtilen URL 'ye yükleme yapılamadı."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Raporunuz Red Hat desteğe yüklenirken bir sorunla karşılaşıldı."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Raporunuz CentOS desteğe yüklenirken bir sorunla karşılaşıldı."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/uk.po sos-3.0/po/uk.po
---- sos-3.0.orig/po/uk.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/uk.po	2014-06-21 11:15:36.466724329 -0500
-@@ -183,8 +183,8 @@ msgid "Cannot upload to specified URL."
- msgstr "Не вдається надіслати файл."
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "Виникла помилка при спробі надіслати звіт до служби підтримки Red Hat."
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "Виникла помилка при спробі надіслати звіт до служби підтримки CentOS."
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/ur.po sos-3.0/po/ur.po
---- sos-3.0.orig/po/ur.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/ur.po	2014-06-21 11:15:36.466724329 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/vi.po sos-3.0/po/vi.po
---- sos-3.0.orig/po/vi.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/vi.po	2014-06-21 11:15:36.466724329 -0500
-@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/zh_CN.po sos-3.0/po/zh_CN.po
---- sos-3.0.orig/po/zh_CN.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/zh_CN.po	2014-06-21 11:15:36.466724329 -0500
-@@ -184,7 +184,7 @@ msgid "Cannot upload to specified URL."
- msgstr "无法上传到指定的网址。"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr "在将您的报告上传到红帽支持时出错。"
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/po/zh_TW.po sos-3.0/po/zh_TW.po
---- sos-3.0.orig/po/zh_TW.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/zh_TW.po	2014-06-21 11:15:36.466724329 -0500
-@@ -180,8 +180,8 @@ msgid "Cannot upload to specified URL."
- msgstr "無法上傳指定的網址。"
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
--msgstr "將報告上傳至 Red Hat 技術支援時,出現問題。"
-+msgid "There was a problem uploading your report to CentOS support."
-+msgstr "將報告上傳至 CentOS 技術支援時,出現問題。"
- 
- #: ../sos/policyredhat.py:401
- #, python-format
-diff -uNrp sos-3.0.orig/po/zu.po sos-3.0/po/zu.po
---- sos-3.0.orig/po/zu.po	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/po/zu.po	2014-06-21 11:15:36.467724321 -0500
-@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL."
- msgstr ""
- 
- #: ../sos/policyredhat.py:399
--msgid "There was a problem uploading your report to Red Hat support."
-+msgid "There was a problem uploading your report to CentOS support."
- msgstr ""
- 
- #: ../sos/policyredhat.py:401
-diff -uNrp sos-3.0.orig/sos/plugins/apache.py sos-3.0/sos/plugins/apache.py
---- sos-3.0.orig/sos/plugins/apache.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/apache.py	2014-06-21 11:20:20.422520121 -0500
-@@ -22,7 +22,7 @@ class Apache(Plugin):
-     option_list = [("log", "gathers all apache logs", "slow", False)]
- 
- class RedHatApache(Apache, RedHatPlugin):
--    """Apache related information for Red Hat distributions
-+    """Apache related information for CentOS distributions
-     """
-     files = ('/etc/httpd/conf/httpd.conf',)
- 
-diff -uNrp sos-3.0.orig/sos/plugins/cgroups.py sos-3.0/sos/plugins/cgroups.py
---- sos-3.0.orig/sos/plugins/cgroups.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/cgroups.py	2014-06-21 11:20:20.424520105 -0500
-@@ -30,7 +30,7 @@ class DebianCgroups(Cgroups, DebianPlugi
-         return
- 
- class RedHatCgroups(Cgroups, RedHatPlugin):
--    """Red Hat specific cgroup subsystem information
-+    """CentOS specific cgroup subsystem information
-     """
- 
-     def setup(self):
-diff -uNrp sos-3.0.orig/sos/plugins/cs.py sos-3.0/sos/plugins/cs.py
---- sos-3.0.orig/sos/plugins/cs.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/cs.py	2014-06-21 11:20:20.425520098 -0500
-@@ -21,7 +21,7 @@ from os.path import exists
- from glob import glob
- 
- class CertificateSystem(Plugin, RedHatPlugin):
--    """Red Hat Certificate System 7.1, 7.3, 8.0 and dogtag related information
-+    """CentOS Certificate System 7.1, 7.3, 8.0 and dogtag related information
-     """
- 
-     plugin_name = 'certificatesystem'
-@@ -49,7 +49,7 @@ class CertificateSystem(Plugin, RedHatPl
-     def setup(self):
-         csversion = self.checkversion()
-         if not csversion:
--            self.add_alert("Red Hat Certificate System not found.")
-+            self.add_alert("CentOS Certificate System not found.")
-             return
-         if csversion == 71:
-             self.add_copy_specs([
-diff -uNrp sos-3.0.orig/sos/plugins/dhcp.py sos-3.0/sos/plugins/dhcp.py
---- sos-3.0.orig/sos/plugins/dhcp.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/dhcp.py	2014-06-21 11:20:20.426520091 -0500
-@@ -21,7 +21,7 @@ class Dhcp(Plugin):
-     plugin_name = "dhcp"
- 
- class RedHatDhcp(Dhcp, RedHatPlugin):
--    """DHCP related information for Red Hat based distributions"""
-+    """DHCP related information for CentOS based distributions"""
- 
-     files = ('/etc/rc.d/init.d/dhcpd',)
-     packages = ('dhcp',)
-diff -uNrp sos-3.0.orig/sos/plugins/hardware.py sos-3.0/sos/plugins/hardware.py
---- sos-3.0.orig/sos/plugins/hardware.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/hardware.py	2014-06-21 11:20:20.429520069 -0500
-@@ -36,7 +36,7 @@ class Hardware(Plugin):
-         
- 
- class RedHatHardware(Hardware, RedHatPlugin):
--    """hardware related information for Red Hat distribution
-+    """hardware related information for CentOS distribution
-     """
- 
-     def setup(self):
-diff -uNrp sos-3.0.orig/sos/plugins/hts.py sos-3.0/sos/plugins/hts.py
---- sos-3.0.orig/sos/plugins/hts.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/hts.py	2014-06-21 11:20:20.429520069 -0500
-@@ -15,7 +15,7 @@
- from sos.plugins import Plugin, RedHatPlugin
- 
- class HardwareTestSuite(Plugin, RedHatPlugin):
--    """Red Hat Hardware Test Suite related information
-+    """CentOS Hardware Test Suite related information
-     """
- 
-     plugin_name = 'hardwaretestsuite'
-diff -uNrp sos-3.0.orig/sos/plugins/__init__.py sos-3.0/sos/plugins/__init__.py
---- sos-3.0.orig/sos/plugins/__init__.py	2014-06-21 11:11:15.843754983 -0500
-+++ sos-3.0/sos/plugins/__init__.py	2014-06-21 11:20:20.431520054 -0500
-@@ -711,7 +711,7 @@ class Plugin(object):
- 
- 
- class RedHatPlugin(object):
--    """Tagging class to indicate that this plugin works with Red Hat Linux"""
-+    """Tagging class to indicate that this plugin works with CentOS Linux"""
-     pass
- 
- class UbuntuPlugin(object):
-diff -uNrp sos-3.0.orig/sos/plugins/ipsec.py sos-3.0/sos/plugins/ipsec.py
---- sos-3.0.orig/sos/plugins/ipsec.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/ipsec.py	2014-06-21 11:20:20.432520046 -0500
-@@ -24,7 +24,7 @@ class IPSec(Plugin):
-     packages = ('ipsec-tools',)
- 
- class RedHatIpsec(IPSec, RedHatPlugin):
--    """ipsec related information for Red Hat distributions
-+    """ipsec related information for CentOS distributions
-     """
- 
-     files = ('/etc/racoon/racoon.conf',)
-diff -uNrp sos-3.0.orig/sos/plugins/iscsi.py sos-3.0/sos/plugins/iscsi.py
---- sos-3.0.orig/sos/plugins/iscsi.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/iscsi.py	2014-06-21 11:20:20.432520046 -0500
-@@ -22,7 +22,7 @@ class Iscsi(Plugin):
-     plugin_name = "iscsi"
- 
- class RedHatIscsi(Iscsi, RedHatPlugin):
--    """iscsi-initiator related information Red Hat based distributions
-+    """iscsi-initiator related information CentOS based distributions
-     """
- 
-     packages = ('iscsi-initiator-utils',)
-diff -uNrp sos-3.0.orig/sos/plugins/iscsitarget.py sos-3.0/sos/plugins/iscsitarget.py
---- sos-3.0.orig/sos/plugins/iscsitarget.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/iscsitarget.py	2014-06-21 11:20:20.432520046 -0500
-@@ -24,7 +24,7 @@ class IscsiTarget(Plugin):
-     plugin_name = "iscsitarget"
- 
- class RedHatIscsiTarget(IscsiTarget, RedHatPlugin):
--    """iscsi-target related information for Red Hat distributions
-+    """iscsi-target related information for CentOS distributions
-     """
- 
-     packages = ('scsi-target-utils',)
-diff -uNrp sos-3.0.orig/sos/plugins/kdump.py sos-3.0/sos/plugins/kdump.py
---- sos-3.0.orig/sos/plugins/kdump.py	2014-06-21 11:11:15.785755436 -0500
-+++ sos-3.0/sos/plugins/kdump.py	2014-06-21 11:20:20.433520039 -0500
-@@ -26,7 +26,7 @@ class KDump(Plugin):
-         ])
- 
- class RedHatKDump(KDump, RedHatPlugin):
--    """Kdump related information for Red Hat distributions
-+    """Kdump related information for CentOS distributions
-     """
- 
-     files = ('/etc/kdump.conf',)
-diff -uNrp sos-3.0.orig/sos/plugins/openssl.py sos-3.0/sos/plugins/openssl.py
---- sos-3.0.orig/sos/plugins/openssl.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/openssl.py	2014-06-21 11:20:20.437520009 -0500
-@@ -24,7 +24,7 @@ class OpenSSL(Plugin):
-     packages = ('openssl',)
- 
- class RedHatOpenSSL(OpenSSL, RedHatPlugin):
--    """openssl related information for Red Hat distributions
-+    """openssl related information for CentOS distributions
-     """
- 
-     files = ('/etc/pki/tls/openssl.cnf',)
-diff -uNrp sos-3.0.orig/sos/plugins/postgresql.py sos-3.0/sos/plugins/postgresql.py
---- sos-3.0.orig/sos/plugins/postgresql.py	2013-06-10 12:35:56.000000000 -0500
-+++ sos-3.0/sos/plugins/postgresql.py	2014-06-21 11:20:20.438520002 -0500
-@@ -49,7 +49,7 @@ class PostgreSQL(Plugin):
-             shutil.rmtree(self.tmp_dir)
- 
- class RedHatPostgreSQL(PostgreSQL, RedHatPlugin):
--    """PostgreSQL related information for Red Hat distributions"""
-+    """PostgreSQL related information for CentOS distributions"""
- 
-     def setup(self):
-         super(RedHatPostgreSQL, self).setup()
-diff -uNrp sos-3.0.orig/sos/plugins/radius.py sos-3.0/sos/plugins/radius.py
---- sos-3.0.orig/sos/plugins/radius.py	2013-06-10 12:35:57.000000000 -0500
-+++ sos-3.0/sos/plugins/radius.py	2014-06-21 11:20:20.440519987 -0500
-@@ -24,7 +24,7 @@ class Radius(Plugin):
-     packages = ('freeradius',)
- 
- class RedHatRadius(Radius, RedHatPlugin):
--    """radius related information on Red Hat distributions
-+    """radius related information on CentOS distributions
-     """
- 
-     files = ('/etc/raddb',)
-diff -uNrp sos-3.0.orig/sos/plugins/rhui.py sos-3.0/sos/plugins/rhui.py
---- sos-3.0.orig/sos/plugins/rhui.py	2013-06-10 12:35:57.000000000 -0500
-+++ sos-3.0/sos/plugins/rhui.py	2014-06-21 11:20:20.440519987 -0500
-@@ -16,7 +16,7 @@ from sos.plugins import Plugin, RedHatPl
- import os
- 
- class Rhui(Plugin, RedHatPlugin):
--    """Red Hat Update Infrastructure for Cloud Providers data
-+    """CentOS Update Infrastructure for Cloud Providers data
-     """
- 
-     plugin_name = 'rhui'
-diff -uNrp sos-3.0.orig/sos/plugins/sssd.py sos-3.0/sos/plugins/sssd.py
---- sos-3.0.orig/sos/plugins/sssd.py	2013-06-10 12:35:57.000000000 -0500
-+++ sos-3.0/sos/plugins/sssd.py	2014-06-21 11:20:20.443519965 -0500
-@@ -27,7 +27,7 @@ class Sssd(Plugin):
-         self.add_copy_specs(["/etc/sssd", "/var/log/sssd/*"])
- 
- class RedHatSssd(Sssd, RedHatPlugin):
--    """sssd-related Diagnostic Information on Red Hat based distributions
-+    """sssd-related Diagnostic Information on CentOS based distributions
-     """
- 
-     def setup(self):
-diff -uNrp sos-3.0.orig/sos/plugins/sunrpc.py sos-3.0/sos/plugins/sunrpc.py
---- sos-3.0.orig/sos/plugins/sunrpc.py	2013-06-10 12:35:57.000000000 -0500
-+++ sos-3.0/sos/plugins/sunrpc.py	2014-06-21 11:20:20.443519965 -0500
-@@ -34,7 +34,7 @@ class SunRPC(Plugin):
-         return
- 
- class RedHatSunRPC(SunRPC, RedHatPlugin):
--    """Sun RPC related information for Red Hat systems
-+    """Sun RPC related information for CentOS systems
-     """
- 
-     service = 'rpcbind'
-@@ -42,7 +42,7 @@ class RedHatSunRPC(SunRPC, RedHatPlugin)
- # FIXME: depends on addition of runlevel_by_service (or similar)
- # in Debian/Ubuntu policy classes
- #class DebianSunRPC(SunRPC, DebianPlugin, UbuntuPlugin):
--#    """Sun RPC related information for Red Hat systems
-+#    """Sun RPC related information for CentOS systems
- #    """
- #
- #    service = 'rpcbind-boot'
-diff -uNrp sos-3.0.orig/sos/policies/redhat.py sos-3.0/sos/policies/redhat.py
---- sos-3.0.orig/sos/policies/redhat.py	2014-06-21 11:11:15.838755022 -0500
-+++ sos-3.0/sos/policies/redhat.py	2014-06-21 11:22:10.554703632 -0500
-@@ -32,9 +32,9 @@ except:
-     pass
- 
- class RedHatPolicy(LinuxPolicy):
--    distro = "Red Hat"
--    vendor = "Red Hat"
--    vendor_url = "http://www.redhat.com/"
-+    distro = "CentOS"
-+    vendor = "CentOS"
-+    vendor_url = "http://www.centos.org/"
-     _tmp_dir = "/var/tmp"
- 
-     def __init__(self):
-@@ -56,9 +56,9 @@ class RedHatPolicy(LinuxPolicy):
- 
-     @classmethod
-     def check(self):
--        """This method checks to see if we are running on Red Hat. It must be
-+        """This method checks to see if we are running on CentOS. It must be
-         overriden by concrete subclasses to return True when running on a
--        Fedora, RHEL or other Red Hat distribution or False otherwise."""
-+        CentOS distribution or False otherwise."""
-         return False
- 
-     def runlevel_by_service(self, name):
-@@ -92,9 +92,9 @@ class RedHatPolicy(LinuxPolicy):
-         return self.host_name()
- 
- class RHELPolicy(RedHatPolicy):
--    distro = "Red Hat Enterprise Linux"
--    vendor = "Red Hat"
--    vendor_url = "https://access.redhat.com/support/"
-+    distro = "CentOS Linux"
-+    vendor = "CentOS"
-+    vendor_url = "https://www.centos.org/"
- 
-     def __init__(self):
-         super(RHELPolicy, self).__init__()
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_ceilometer.py sos-3.0/sos/plugins/openstack_ceilometer.py
---- sos-3.0.orig/sos/plugins/openstack_ceilometer.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_ceilometer.py	2014-11-24 07:46:31.458305712 -0600
-@@ -52,7 +52,7 @@ class DebianOpenStackCeilometer(OpenStac
- 
- 
- class RedHatOpenStackCeilometer(OpenStackCeilometer, RedHatPlugin):
--    """OpenStackCeilometer related information for Red Hat distributions."""
-+    """OpenStackCeilometer related information for CentOS distributions."""
- 
-     packages = (
-         'openstack-ceilometer',
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_cinder.py sos-3.0/sos/plugins/openstack_cinder.py
---- sos-3.0.orig/sos/plugins/openstack_cinder.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_cinder.py	2014-11-24 07:46:31.458305712 -0600
-@@ -66,7 +66,7 @@ class DebianOpenStackCinder(OpenStackCin
- 
- 
- class RedHatOpenStackCinder(OpenStackCinder, RedHatPlugin):
--    """OpenStack related information for Red Hat distributions
-+    """OpenStack related information for CentOS distributions
-     """
- 
-     cinder = False
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_glance.py sos-3.0/sos/plugins/openstack_glance.py
---- sos-3.0.orig/sos/plugins/openstack_glance.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_glance.py	2014-11-24 07:46:31.459305705 -0600
-@@ -54,7 +54,7 @@ class DebianOpenStackGlance(OpenStackGla
- 
- 
- class RedHatOpenStackGlance(OpenStackGlance, plugins.RedHatPlugin):
--    """OpenStackGlance related information for Red Hat distributions."""
-+    """OpenStackGlance related information for CentOS distributions."""
- 
-     packages = (
-         'openstack-glance',
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_heat.py sos-3.0/sos/plugins/openstack_heat.py
---- sos-3.0.orig/sos/plugins/openstack_heat.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_heat.py	2014-11-24 07:46:31.459305705 -0600
-@@ -53,7 +53,7 @@ class DebianOpenStack(OpenStackHeat,
- 
- 
- class RedHatOpenStack(OpenStackHeat, plugins.RedHatPlugin):
--    """OpenStackHeat related information for Red Hat distributions."""
-+    """OpenStackHeat related information for CentOS distributions."""
- 
-     packages = (
-         'openstack-heat-api',
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_horizon.py sos-3.0/sos/plugins/openstack_horizon.py
---- sos-3.0.orig/sos/plugins/openstack_horizon.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_horizon.py	2014-11-24 07:46:31.459305705 -0600
-@@ -64,7 +64,7 @@ class UbuntuOpenStackHorizon(OpenStackHo
- 
- 
- class RedHatOpenStackHorizon(OpenStackHorizon, RedHatPlugin):
--    """OpenStack Horizon related information for Red Hat distributions
-+    """OpenStack Horizon related information for CentOS distributions
-     """
- 
-     packages = (
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_keystone.py sos-3.0/sos/plugins/openstack_keystone.py
---- sos-3.0.orig/sos/plugins/openstack_keystone.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_keystone.py	2014-11-24 07:46:31.459305705 -0600
-@@ -66,7 +66,7 @@ class DebianOpenStackKeystone(OpenStackK
- 
- 
- class RedHatOpenStackKeystone(OpenStackKeystone, RedHatPlugin):
--    """OpenStack Keystone related information for Red Hat distributions
-+    """OpenStack Keystone related information for CentOS distributions
-     """
- 
-     packages = (
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_neutron.py sos-3.0/sos/plugins/openstack_neutron.py
---- sos-3.0.orig/sos/plugins/openstack_neutron.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_neutron.py	2014-11-24 07:46:31.459305705 -0600
-@@ -143,7 +143,7 @@ class DebianNeutron(Neutron, DebianPlugi
- 
- 
- class RedHatNeutron(Neutron, RedHatPlugin):
--    """OpenStack Neutron related information for Red Hat distributions
-+    """OpenStack Neutron related information for CentOS distributions
-     """
- 
-     package_list_template = [
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_nova.py sos-3.0/sos/plugins/openstack_nova.py
---- sos-3.0.orig/sos/plugins/openstack_nova.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_nova.py	2014-11-24 07:46:31.459305705 -0600
-@@ -113,7 +113,7 @@ class DebianOpenStackNova(OpenStackNova,
- 
- 
- class RedHatOpenStackNova(OpenStackNova, RedHatPlugin):
--    """OpenStack nova related information for Red Hat distributions
-+    """OpenStack nova related information for CentOS distributions
-     """
- 
-     nova = False
-diff -uNrp sos-3.0.orig/sos/plugins/openstack_swift.py sos-3.0/sos/plugins/openstack_swift.py
---- sos-3.0.orig/sos/plugins/openstack_swift.py	2014-11-24 07:46:02.257461867 -0600
-+++ sos-3.0/sos/plugins/openstack_swift.py	2014-11-24 07:46:31.459305705 -0600
-@@ -47,7 +47,7 @@ class DebianOpenStackSwift(OpenStackSwif
- 
- 
- class RedHatOpenStackSwift(OpenStackSwift, RedHatPlugin):
--    """OpenStackSwift related information for Red Hat distributions."""
-+    """OpenStackSwift related information for CentOS distributions."""
- 
-     packages = (
-         'openstack-swift',
diff --git a/SOURCES/sos-silence-could-not-run.patch b/SOURCES/sos-silence-could-not-run.patch
deleted file mode 100644
index 1bb0d97..0000000
--- a/SOURCES/sos-silence-could-not-run.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-commit f81df25a32ff525f965a52581711ff06563166b5
-Author: Bryn M. Reeves <bmr@redhat.com>
-Date:   Mon Jun 10 19:50:28 2013 +0100
-
-    Reduce level of 'could not run' messages info->debug
-    
-    We expect not to find all commands; don't output a log message on
-    each missing binary.
-    
-    Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-
-diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
-index 70711a3..e25f035 100644
---- a/sos/plugins/__init__.py
-+++ b/sos/plugins/__init__.py
-@@ -543,7 +543,7 @@ class Plugin(object):
-         # pylint: disable-msg = W0612
-         status, shout, runtime = sos_get_command_output(exe, timeout=timeout)
-         if (status == 127):
--            self.soslog.info("could not run '%s': command not found" % exe)
-+            self.soslog.debug("could not run '%s': command not found" % exe)
-             return None
- 
-         if suggest_filename:
diff --git a/SOURCES/sos-six-compat.patch b/SOURCES/sos-six-compat.patch
new file mode 100644
index 0000000..576b77c
--- /dev/null
+++ b/SOURCES/sos-six-compat.patch
@@ -0,0 +1,63 @@
+From b61a193b98b896164a8caefa088bb09297f1e3ca Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Wed, 1 Oct 2014 17:08:50 +0100
+Subject: [PATCH 1/2] [utilities] invert sense of six.PY2 test
+
+Old versions of six do not include a 'PY2' attribute leading to
+an exception in sos_get_command_output(). Invert the sense of the
+test and check that six.PY3 is false instead as all versions of
+the module include this attribute.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/utilities.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sos/utilities.py b/sos/utilities.py
+index 7c06781..7e8cd7e 100644
+--- a/sos/utilities.py
++++ b/sos/utilities.py
+@@ -139,7 +139,7 @@ def sos_get_command_output(command, timeout=300, runat=None):
+         command = "timeout %ds %s" % (timeout, command)
+ 
+     # shlex.split() reacts badly to unicode on older python runtimes.
+-    if six.PY2:
++    if not six.PY3:
+         command = command.encode('utf-8')
+     args = shlex.split(command)
+     try:
+-- 
+1.9.3
+
+
+From f9c811abc07f1e3044b1dbf29fdd5cd1f68812bc Mon Sep 17 00:00:00 2001
+From: "Bryn M. Reeves" <bmr@redhat.com>
+Date: Wed, 1 Oct 2014 17:34:56 +0100
+Subject: [PATCH 2/2] [archive] invert sense of six.PY2 test
+
+Old versions of six do not include a 'PY2' attribute leading to
+an exception in sos_get_command_output(). Invert the sense of the
+test and check that six.PY3 is false instead as all versions of
+the module include this attribute.
+
+Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
+---
+ sos/archive.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sos/archive.py b/sos/archive.py
+index 245f904..2e42bbd 100644
+--- a/sos/archive.py
++++ b/sos/archive.py
+@@ -357,7 +357,7 @@ class TarFileArchive(FileCacheArchive):
+ 
+     def _build_archive(self):
+         # python2.6 TarFile lacks the filter parameter
+-        if six.PY2 and sys.version_info[1] < 7:
++        if not six.PY3 and sys.version_info[1] < 7:
+             tar = _TarFile.open(self._archive_name, mode="w")
+         else:
+             tar = tarfile.open(self._archive_name, mode="w")
+-- 
+1.9.3
+
diff --git a/SPECS/sos.spec b/SPECS/sos.spec
index 4c76647..0dacfd7 100644
--- a/SPECS/sos.spec
+++ b/SPECS/sos.spec
@@ -1,89 +1,45 @@
 %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-
 Summary: A set of tools to gather troubleshooting information from a system
 Name: sos
-Version: 3.0
-Release: 23%{?dist}.11
+Version: 3.2
+Release: 15%{?dist}
 Group: Applications/System
-Source0: https://people.redhat.com/breeves/sos/releases/sos-3.0.tar.gz
+Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz
 License: GPLv2+
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
 BuildArch: noarch
-Url: http://fedorahosted.org/sos
+Url: http://github.com/sosreport/sos
 BuildRequires: python-devel
 BuildRequires: gettext
 Requires: libxml2-python
-Requires: rpm-python
-Requires: tar
+Requires: python-six
 Requires: bzip2
 Requires: xz
 Obsoletes: sos-plugins-openstack
-Patch0: sos-silence-could-not-run.patch
-Patch1: sos-bz971420-strip-trailing-newline.patch
-Patch2: sos-bz916705-fix-rhel_version-problems.patch
-Patch3: sos-bz839342-cluster-collect-crm_report.patch
-Patch4: sos-bz1002943-No-TTY-should-not-imply-batch-mode.patch
-Patch5: sos-bz1002943-Do-not-exit-on-interactive-mode-read-exceptions.patch
-Patch6: sos-bz997083-Fix-policy-classes-for--tmp-dir.patch
-Patch7: sos-bz997094-Added-XFS-plugin.patch
-Patch8: sos-bz997090-cluster-plugin-add-obfuscation-of-luci-secrets.patch
-Patch9: sos-bz997101-restrict-wbinfo-collection-to-the-current-domain.patch
-Patch10: sos-bz996992-do-not-attempt-to-read-use-gss-proxy.patch
-Patch11: sos-bz1001966-include-etc-yaboot-conf-in-boot.patch
-Patch12: sos-bz1019235-remove-useless-os-path-check-for-brctl.patch
-Patch13: sos-bz1019863-rpm-restricted-verify.patch
-Patch14: sos-bz1019338-remove-pipe-communicate-newline-workaround.patch
-Patch15: sos-bz1001599-add-file-size-restriction-to-sar.patch
-Patch16: sos-bz1015606-remove-version-checks-in-gluster.patch
-Patch17: sos-bz1019517-check-for-usable-temporary-directory.patch
-Patch18: sos-bz1019356-fix-alloptions.patch
-Patch19: sos-bz1019516-fix-config-file-regression.patch
-Patch20: sos-bz1025236-add-powerpc-plugin.patch
-Patch21: sos-bz1026869-collect-proc-self-mountstats.patch
-Patch22: sos-bz1026829-collect-var-log-squid.patch
-Patch23: sos-bz1026906-nis-add-domainname-output.patch
-Patch24: sos-bz829069-normalise-tmp-dir-path.patch
-Patch25: sos-bz1026959-collect-saved-vmcore-dmesg.patch
-Patch26: sos-bz1015599-restore-build-command-line-option.patch
-Patch27: sos-bz1028072-add-nfs-client-plugin.patch
-Patch28: sos-bz1028125-fix-traceback-when-sar-module.patch
-Patch29: sos-bz829297-fix-typo-in-yum-add_forbidden_paths.patch
-Patch30: sos-bz1028150-add-krb5-plugin-and-klist.patch
-Patch31: sos-bz1015599-fix-dash-dash-build-regressions.patch
-Patch32: sos-bz1030042-remove-logs-debug-statements.patch
-Patch33: sos-bz1030824-make-ethernet-detection-more-robust.patch
-Patch34: sos-bz1031124-fix-multiple-plugin-opts.patch
-Patch35: sos-bz1031126-correct-log-and-message-levels.patch
-Patch36: sos-bz1034956-log-command-timeouts.patch
-Patch37: sos-bz1028484-remove-upload-option.patch
-Patch38: sos-bz1034970-update-sos-ui-text.patch
-Patch39: sos-bz1028121-include-openhpi-config.patch
-Patch40: sos-bz1030553-fix-cluster-crm_report.patch
-Patch41: sos-bz1030602-fix-ldap-postproc.patch
-Patch42: sos-bz1034865-remove-anaconda-ks-cfg-from-general.patch
-Patch43: sos-bz1030553-fix-cluster-get_option-use.patch
-Patch44: sos-bz1031126-fix-verbose-file-logging.patch
-Patch45: sos-bz1030617-rhevm-treat-vdsmlogs-as-string.patch
-Patch46: sos-bz1039036-add-rhsm-debug-to-yum.patch
-Patch47: sos-bz1036752-gluster-include-geo-replication.patch
-Patch48: sos-bz1039036-pass-no-archive-to-rhsm-debug.patch
-Patch49: sos-bz1051009-fix-fd-leaks-on-popen.patch
-Patch50: sos-bz1036752-fix-gluster-volume-name-extraction.patch
-Patch51: sos-bz1059760-add-distupgrade-plugin.patch
-Patch52: sos-bz1030553-fix-command-output-substitution-exception.patch
-Patch53: sos-bz916705-remove-rhel_version-from-yum-plugin.patch
-Patch54: sos-bz1067769-fix-anacron-checks.patch
-Patch55: sos-bz1039036-call-rhsm-debug-with-sos.patch
-Patch56: sos-bz1139339-foreman-add-plugin.patch
-Patch57: sos-bz1148784-plugin-backport-add_cmd_outputs.patch
-Patch58: sos-bz1148784-openstack-backport-plugins-from-master.patch
-Patch59: sos-bz1148560-add-kpatch-plugin.patch
-Patch60: sos-bz1159835-obtain-postgres-password-from-environment.patch
-Patch61: sos-bz1176159-backport-mysql-mariadb-support.patch
-Patch62: sos-bz1176159-mysql-fix-command-line-dbpass-handling.patch
-Patch63: sos-bz1176159-mysql-test-for-boolean-values.patch
-Patch64: sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch
-Patch65: sos-centos-branding.patch
+Patch0: sos-six-compat.patch
+Patch1: sos-bz1116349-call-rhsm-debug-with-no-subscriptions.patch
+Patch2: sos-bz1140427-powerpc-allow-powerpc-plugin-to-run-on-ppc64le.patch
+Patch3: sos-bz1148551-ovirt_hosted_engine-fix-exception-when-force-enabled.patch
+Patch4: sos-bz1087515-corosync-add-postprocessing-for-corosync-objctl.patch
+Patch5: sos-bz1148375-add-support-for-tomcat7.patch
+Patch6: sos-bz1126001-obtain-mysql-password-from-env.patch
+Patch7: sos-bz1158891-sosreport-fix-archive-permissions-regression.patch
+Patch8: sos-bz1110918-fix-kpatch-force-enabled.patch
+Patch9: sos-bz1118152-disable-the-zip-compression-type.patch
+Patch10: sos-bz1166039-navicli-catch-unreadable-stdin.patch
+Patch11: sos-bz1171658-docs-update-man-page-for-new-options.patch
+Patch12: sos-bz1164267-sos-unicode-use-errors-ignore.patch
+Patch13: sos-bz1126001-mysql-fix-command-line-dbpass-handling.patch
+Patch14: sos-bz1112175-anaconda-make-useradd-password-regex-tolerant.patch
+Patch15: sos-bz1087977-sosreport-catch-oserror-in-execute.patch
+Patch16: sos-bz1087977-sosreport-do-not-make-logging-calls-after-oserror.patch
+Patch17: sos-bz1026962-plugin-limit-names-to-pc_name_max.patch
+Patch18: sos-bz1026962-squid-collect-var-log-squid.patch
+Patch19: sos-bz1026962-sosreport-log-plugin-exceptions-to-file.patch
+Patch20: sos-bz1026962-ctdb-fix-redhatplugin-tagging-use.patch
+Patch21: sos-bz1026962-sosreport-fix-silent-exception-handling.patch
+Patch22: sos-bz1180919-mysql-test-for-boolean-values.patch
+Patch23: sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch
 
 %description
 Sos is a set of tools that gathers information about system
@@ -92,7 +48,7 @@ diagnostic purposes and debugging. Sos is commonly used to help
 support technicians and developers.
 
 %prep
-%setup -q
+%setup -qn %{name}-%{version}
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
@@ -117,48 +73,6 @@ support technicians and developers.
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
-%patch24 -p1
-%patch25 -p1
-%patch26 -p1
-%patch27 -p1
-%patch28 -p1
-%patch29 -p1
-%patch30 -p1
-%patch31 -p1
-%patch32 -p1
-%patch33 -p1
-%patch34 -p1
-%patch35 -p1
-%patch36 -p1
-%patch37 -p1
-%patch38 -p1
-%patch39 -p1
-%patch40 -p1
-%patch41 -p1
-%patch42 -p1
-%patch43 -p1
-%patch44 -p1
-%patch45 -p1
-%patch46 -p1
-%patch47 -p1
-%patch48 -p1
-%patch49 -p1
-%patch50 -p1
-%patch51 -p1
-%patch52 -p1
-%patch53 -p1
-%patch54 -p1
-%patch55 -p1
-%patch56 -p1
-%patch57 -p1
-%patch58 -p1
-%patch59 -p1
-%patch60 -p1
-%patch61 -p1
-%patch62 -p1
-%patch63 -p1
-%patch64 -p1
-%patch65 -p1
 
 %build
 make
@@ -182,49 +96,127 @@ rm -rf ${RPM_BUILD_ROOT}
 %config(noreplace) %{_sysconfdir}/sos.conf
 
 %changelog
-* Mon Mar 02 2015 CentOS Sources <bugs@centos.org> - 3.0-23.el7.centos.11
-- Roll in CentOS Branding
-
-* Mon Feb 16 2015 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.11
-- Add 'all_logs' option to the mysql plugin
-  Resolves: bz1176159
-
-* Thu Jan 22 2015 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.10
+* Thu Jan 22 2015 Bryn M. Reeves <bmr@redhat.com> = 3.2-15
 - [mysql] improve handling of dbuser, dbpass and MYSQL_PWD
-  Resolves: bz1176159
+  Resolves: bz1180919
 
-* Wed Jan 21 2015 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.9
+* Tue Jan 20 2015 Bryn M. Reeves <bmr@redhat.com> = 3.2-14
 - [mysql] test for boolean values in dbuser and dbpass
-  Resolves: bz1176159
-- [mysql] use add_copy_specs to capture file lists
-  Resolves: bz1176159
-
-* Tue Dec 22 2014 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.7
+  Resolves: bz1180919
+
+* Mon Jan 19 2015 Bryn M. Reeves <bmr@redhat.com> = 3.2-12
+- [plugin] limit path names to PC_NAME_MAX
+  Resolves: bz1026962
+- [squid] collect files from /var/log/squid
+  Resolves: bz1026962
+- [sosreport] log plugin exceptions to a file
+  Resolves: bz1026962
+- [ctdb] fix collection of /etc/sysconfig/ctdb
+  Resolves: bz1026962
+- [sosreport] fix silent exception handling
+  Resolves: bz1026962
+
+* Tue Jan 13 2015 Bryn M. Reeves <bmr@redhat.com> = 3.2-11
+- [sosreport] do not make logging calls after OSError
+  Resolves: bz1087977
+- [sosreport] catch OSError exceptions in SoSReport.execute()
+  Resolves: bz1087977
+- [anaconda] make useradd password regex tolerant of whitespace
+  Resolves: bz1112175
+
+* Tue Dec 23 2014 Bryn M. Reeves <bmr@redhat.com> = 3.2-10
 - [mysql] fix handling of mysql.dbpass option
-  Resolves: bz1176159
-
-* Fri Dec 19 2014 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.6
-- Add MariaDB support to the MySQL plugin
-  Resolves: bz1176159
-
-* Wed Nov 12 2014 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.4
-- Ensure sos obsoletes sos-plugins-openstack
-  Resolves: bz1148784
-
-* Tue Nov 11 2014 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.3
-- Obtain postgresql password from the environment
-  Resolves: bz1159835
-
-* Tue Oct 14 2014 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.2
-- Add kpatch plugin
-  Resolves: bz1148560
-- Backport updated OpenStack plugins from upstream
-- Backport add_cmd_outputs interface from upstream
-  Resolves: bz1148784, bz1148554
-
-* Fri Oct 03 2014 Bryn M. Reeves <bmr@redhat.com> = 3.0-23.el7_0.1
-- Add foreman plugin
-  Resolves: bz1139339
+  Resolves: bz1126001
+
+* Wed Dec 17 2014 Bryn M. Reeves <bmr@redhat.com> = 3.2-9
+- [navicli] catch exceptions if stdin is unreadable
+  Resolves: bz1166039
+- [docs] update man page for new options
+  Resolves: bz1171658
+- [sosreport] make all utf-8 handling user errors=ignore
+  Resolves: bz1164267
+
+* Tue Dec 09 2014 Bryn M. Reeves <bmr@redhat.com> = 3.2-8
+- [kpatch] do not attempt to collect data if kpatch is not installed
+  Resolves: bz1110918
+- [archive] drop support for Zip archives
+  Resolves: bz1118152
+
+* Thu Oct 30 2014 Bryn M. Reeves <bmr@redhat.com> = 3.2-7
+- [sosreport] fix archive permissions regression
+  Resolves: bz1158891
+
+* Mon Oct 20 2014 Bryn M. Reeves <bmr@redhat.com> = 3.2-6
+- [tomcat] add support for tomcat7 and default log size limits
+  Resolves: bz1148375
+- [mysql] obtain database password from the environment
+  Resolves: bz1126001
+
+* Wed Oct 15 2014 Bryn M. Reeves <bmr@redhat.com> = 3.2-5
+- [corosync] add postprocessing for corosync-objctl output
+  Resolves: bz1087515
+- [ovirt_hosted_engine] fix exception when force-enabled
+  Resolves: bz1148551
+
+* Thu Oct 02 2014 Bryn M. Reeves <bmr@redhat.com> = 3.2-4
+- [yum] call rhsm-debug with --no-subscriptions
+  Resolves: bz1116349
+- [powerpc] allow PowerPC plugin to run on ppc64le
+  Resolves: bz1140427
+- [package] add Obsoletes for sos-plugins-openstack
+  Resolves: bz1140756
+
+* Wed Oct 01 2014 Bryn M. Reeves <bmr@redhat.com> = 3.2-3
+- [pam] add pam_tally2 and faillock support
+  Resolves: bz1127631
+- [postgresql] obtain db password from the environment
+  Resolves: bz1126001
+- [pcp] add Performance Co-Pilot plugin
+  Resolves: bz1119833
+- [nfsserver] collect /etc/exports.d
+  Resolves: bz1118921
+- [sosreport] handle --compression-type correctly
+  Resolves: bz1118152
+- [anaconda] redact passwords in kickstart configurations
+  Resolves: bz1112175
+- [haproxy] add new plugin
+  Resolves: bz1107865
+- [keepalived] add new plugin
+  Resolves: bz1105247
+- [lvm2] set locking_type=0 when calling lvm commands
+  Resolves: bz1102285
+- [tuned] add new plugin
+  Resolves: bz1095447
+- [cgroups] collect /etc/sysconfig/cgred
+  Resolves: bz1083677
+- [plugins] ensure doc text is always displayed for plugins
+  Resolves: bz1065473
+- [sosreport] fix the distribution version API call
+  Resolves: bz1028111
+- [docker] add new plugin
+  Resolves: bz1084990
+- [openstack_*] include broken-out openstack plugins
+  Resolves: bz1140756
+- [mysql] support MariaDB
+  Resolves: bz1106600
+- [openstack] do not collect /var/lib/nova
+  Resolves: bz1106423
+- [grub2] collect grub.cfg on UEFI systems
+  Resolves: bz1086648
+- [sosreport] handle out-of-space errors gracefully
+  Resolves: bz1087977
+- [firewalld] new plugin
+  Resolves: bz1100505
+- [networking] collect NetworkManager status
+  Resolves: bz1100505
+- [kpatch] new plugin
+  Resolves: bz1110918
+- [global] update to upstream 3.2 release
+  Resolves: bz1026962
+
+* Mon Sep 08 2014 Bryn M. Reeves <bmr@redhat.com> = 3.0-24
+- [foreman] add new plugin
+  Resolves: bz1130273
 
 * Thu Mar 20 2014 Bryn M. Reeves <bmr@redhat.com> = 3.0-23
 - Call rhsm-debug with the --sos switch
@@ -569,238 +561,3 @@ rm -rf ${RPM_BUILD_ROOT}
 - rhbz fixes from RHEL version merged into trunk
 - progressbar update
 
-* Tue Nov 19 2009 Adam Stokes <ajs at redhat dot com> = 1.8-20
-- dont copy unwanted files due to symlinks
-- More plugin enhancements
-
-* Tue Nov 5 2009 Adam Stokes <ajs at redhat dot com> = 1.8-18
-- Option to enable selinux fixfiles check
-- Start of replacing Thread module with multiprocessing
-- Update translations
-- More checks against conf file versus command line opts
-
-* Tue Sep 9 2009 Adam Stokes <ajs at redhat dot com> = 1.8-16
-- Update rh-upload-core to rh-upload and allows general files
-- Fix cluster plugin with pwd mangling invalidating xml
-- Cluster support detecting invalid fence_id and fence states
-- Read variables from conf file
-
-* Thu Jul 23 2009 Adam Stokes <ajs at redhat dot com> = 1.8-14
-- resolves: rhbz512536 wrong group in spec file
-- resolves: rhbz498398 A series of refactoring patches to sos
-- resolves: rhbz501149 A series of refactoring patches to sos (2)
-- resolves: rhbz503804 remove obsolete translation
-- resolves: rhbz502455 tricking sosreport into rm -rf /
-- resolves: rhbz501146 branding in fedora
-
-* Mon Jul 20 2009 Adam Stokes <ajs at redhat dot com> = 1.8-13
-- Add requirements for tar,bzip2 during minimal installs
-- More merges from reports against RHEL version of plugins
-- Remove unecessary definition of localdir in spec
-
-* Wed May 05 2009 Adam Stokes <ajs at redhat dot com> - 1.8-11
-- Remove all instances of sysrq
-- Consistent macro usage in spec
-
-* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8-10
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
-
-* Mon Dec 29 2008 Adam Stokes <ajs at redhat dot com> - 1.8-5
-- removed source defines as python manifest handles this
-
-* Fri Dec 19 2008 Adam Stokes <ajs at redhat dot com> - 1.8-4
-- spec cleanup, fixed license, source
-- reworked Makefile to build properly
-
-* Thu Oct 23 2008 Adam Stokes <astokes at redhat dot com> - 1.8-1
-
-* Wed Nov 21 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.8-0
-- selinux: always collect sestatus
-- added many languages
-- added --debug option which causes exceptions not to be trapped
-- updated to sysreport-1.4.3-13.el5
-- ftp upload to dropbox with --upload
-- cluster: major rewrite to support different versions of RHEL
-- cluster: check rg_test for errors
-- minor changes in various plug-ins (yum, networking, process, kernel)
-- fixed some exceptions in threads which were not properly trapped
-- veritas: don't run rpm -qa every time
-- using rpm's python bindings instead of external binary
-- corrected autofs and ldap plugin that were failing when debug option was not found in config file.
-- implemented built-in checkdebug() that uses self.files and self.packages to make the decision
-- missing binaries are properly detected now.
-- better doExitCode handling
-- fixed problem with rpm module intercepting SIGINT
-- error when user specifies an invalid plugin or plugin option
-- named: fixed indentation
-- replaced isOptionEnabled() with getOption()
-- tune2fs and fdisk were not always run against the correct devices/mountpoint
-- added gpg key to package
-- updated README with new svn repo and contributors
-- updated manpage
-- better signal handling
-- caching of rpm -q outputs
-- report filename includes rhnUsername if available
-- report encryption via gpg and support pubkey
-- autofs: removed redundant files
-- filesys: better handling of removable devices
-- added sosReadFile() returns a file's contents
-- return after looping inside a directory
-- collect udevinfo for each block device
-- simply collect output of fdisk -l in one go
-- handle sysreport invocation properly (warn if shell is interactive, otherwise spawn sysreport.legacy)
-- progress bar don't show 100% until finished() is called
-- now runs on RHEL3 as well (python 2.2)
-- replaced commonPrefix() with faster code
-- filesys: one fdisk -l for all
-- selinux: collect fixfilex check output
-- devicemapper: collect udevinfo for all block devices
-- cluster: validate node names according to RFC 2181
-- systemtap: cleaned up and added checkenabled() method
-- added kdump plugin
-- added collection of /etc/inittab
-
-* Wed Aug 13 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-8
-- added README.rh-upload-core
-
-* Mon Aug 13 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-7
-- added extras/rh-upload-core script from David Mair <dmair@redhat.com>
-
-* Mon Aug  9 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-6
-- more language fixes
-- added arabic, italian and french
-- package prepared for release
-- included sysreport as sysreport.legacy
-
-* Mon Aug  9 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-5
-- package obsoletes sysreport and creates a link pointing to sosreport
-- added some commands in cluster and process plugins
-- fixed html output (wrong links to cmds, thanks streeter)
-- process: back down sleep if D state doesn't change
-
-* Mon Aug  1 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-4
-- catch KeyboardInterrupt when entering sosreport name
-- added color output for increased readability
-- list was sorted twice, removing latter .sort()
-
-* Mon Jul 31 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-3
-- added preliminary problem diagnosis support
-- better i18n initialization
-- better user messages
-- more progressbar fixes
-- catch and log python exceptions in report
-- use python native commands to create symlinks
-- limit concurrent running threads
-
-* Mon Jul 28 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-2
-- initial language localization support
-- added italian translation
-
-* Mon Jul 16 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-1
-- split up command outputs in sub-directories (sos_command/plugin/command instead of sos_command/plugin.command)
-- fixed doExitCode() calling thread.wait() instead of join()
-- curses menu is disabled by default
-- multithreading is enabled by default
-- major progressbar changes (now has ETA)
-- multithreading fixes
-- plugins class descriptions shortened to fix better in --list-plugins
-- rpm -Va in plugins/rpm.py sets eta_weight to 200 (plugin 200 longer than other plugins, for ETA calculation)
-- beautified command output filenames in makeCommandFilename()
-
-* Mon Jul 12 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.7-0
-- curses menu disabled by default (enable with -c)
-- sosreport output friendlier to the user (and similar to sysreport)
-- smarter plugin listing which also shows options and disable/enabled plugins
-- require root permissions only for actual sosreport generation
-- fix in -k where option value was treated as string instead of int
-- made progressbar wider (60 chars)
-- selinux plugin is enabled only if selinux is also enabled on the system
-- made some errors less verbose to the user
-- made sosreport not copy files pointed by symbolic links (same as sysreport, we don't need /usr/bin/X or /sbin/ifup)
-- copy links as links (cp -P)
-- added plugin get_description() that returns a short decription for the plugin
-- guess sosreport name from system's name
-
-* Mon Jul  5 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.6-5
-- Yet more fixes to make package Fedora compliant.
-
-* Mon Jul  5 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.6-4
-- More fixes to make package Fedora compliant.
-
-* Mon Jul  2 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.6-3
-- Other fixes to make package Fedora compliant.
-
-* Mon Jul  2 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.6-2
-- Minor fixes.
-
-* Mon Jul  2 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.6-1
-- Beautified output of --list-plugins.
-- GPL licence is now included in the package.
-- added python-devel requirement for building package
-
-* Fri May 25 2007 Steve Conklin <sconklin at redhat dot com> - 1.5-1
-- Bumped version
-
-* Fri May 25 2007 Steve Conklin <sconklin at redhat dot com> - 1.4-2
-- Fixed a backtrace on nonexistent file in kernel plugin (thanks, David Robinson)
-
-* Mon Apr 30 2007 Steve Conklin <sconklin at redhat dot com> - 1.4-1
-- Fixed an error in option handling
-- Forced the file generated by traceroute to not end in .com
-- Fixed a problem with manpage
-- Added optional traceroute collection to networking plugin
-- Added clalance's patch to gather iptables info.
-- Fixes to the device-mapper plugin
-- Fixed a problem with installation of man page
-
-* Mon Apr 16 2007 Steve Conklin <sconklin at redhat dot com> - 1.3-3
-- including patches to fix the following:
-
-* Tue Feb 20 2007 John Berninger <jwb at redhat dot com> - 1.3-2
-- Add man page
-
-* Fri Dec 15 2006 Steve Conklin <sconklin at redhat dot com> - 1.3-1
-- really fixed bz_219654
-
-* Fri Dec 15 2006 Steve Conklin <sconklin at redhat dot com> - 1.2-1
-- fixed a build problem
-
-* Fri Dec 15 2006 Steve Conklin <sconklin at redhat dot com> - 1.1-1
-- Tighten permissions of tmp directory so only readable by creator bz_219657
-- Don't print message 'Problem at path ...'  bz_219654
-- Removed useless message bz_219670
-- Preserve file modification times bz_219674
-- Removed unneeded message about files on copyProhibitedList bz_219712
-
-* Wed Aug 30 2006 Steve Conklin <sconklin at redhat dot com> - 1.0-1
-- Seperated upstream and RPM versioning
-
-* Mon Aug 21 2006 Steve Conklin <sconklin at redhat dot com> - 0.1-11
-- Code cleanup, fixed a regression in threading
-
-* Mon Aug 14 2006 Steve Conklin <sconklin at redhat dot com> - 0.1-10
-- minor bugfixes, added miltithreading option, setup now quiet
-
-* Mon Jul 17 2006 Steve Conklin <sconklin at redhat dot com> - 0.1-9
-- migrated to svn on 108.redhat.com, fixed a problem with command output linking in report
-
-* Mon Jun 19 2006 Steve Conklin <sconklin at redhat dot com> - 0.1-6
-- Added LICENSE file containing GPL
-
-* Wed May 31 2006 Steve Conklin <sconklin at redhat dot com> - 0.1-5
-- Added fixes to network plugin and prepped for Fedora submission
-
-* Wed May 31 2006 John Berninger <jwb at redhat dot com> - 0.1-4
-- Reconsolidated subpackages into one package per discussion with sconklin
-
-* Mon May 22 2006 John Berninger <jwb at redhat dot com> - 0.1-3
-- Added ftp, ldap, mail, named, samba, squid SOS plugins
-- Fixed various errors in kernel and hardware plugins
-
-* Mon May 22 2006 John Benringer <jwb at redhat dot com> - 0.1-2
-- split off cluster plugin into subpackage
-- correct file payload lists
-
-* Mon May 22 2006 John Berninger <jwb at redhat dot com> - 0.1-1
-- initial package build
-