aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorastokes <astokes@ef72aa8b-4018-0410-8976-d6e080ef94d8>2010-02-17 16:28:17 +0000
committerastokes <astokes@ef72aa8b-4018-0410-8976-d6e080ef94d8>2010-02-17 16:28:17 +0000
commit18191c43943661b2d61b191ea95a9c9351bd465c (patch)
treedd426874c830ec029dbd44eec4e469131d4fadc9
parent494f1de1db6c29a3f5f6d0e5cabc29b86eaf99e8 (diff)
downloadsos-18191c43943661b2d61b191ea95a9c9351bd465c.tar.gz
- moved 1.9 to trunkr1.9
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/sos/trunk@778 ef72aa8b-4018-0410-8976-d6e080ef94d8
-rw-r--r--ChangeLog248
-rw-r--r--LICENSE340
-rw-r--r--MANIFEST.in12
-rw-r--r--Makefile94
-rw-r--r--README35
-rw-r--r--README.rh-upload54
-rw-r--r--TODO19
-rw-r--r--docs/Makefile89
-rw-r--r--docs/conf.py194
-rw-r--r--docs/index.rst20
-rw-r--r--docs/make.bat113
-rwxr-xr-xexample_plugins/example.py94
-rw-r--r--example_plugins/fsusage.py23
-rw-r--r--example_plugins/release.py21
-rwxr-xr-xexample_plugins/runcommand.py45
-rwxr-xr-xextras/rh-upload283
-rwxr-xr-xextras/sos-open151
-rwxr-xr-xextras/sysreport/functions132
-rwxr-xr-xextras/sysreport/sysreport-fdisk8
-rwxr-xr-xextras/sysreport/sysreport.legacy766
-rw-r--r--extras/sysreport/text.xsl33
-rw-r--r--gpgkeys/gpg.template14
-rw-r--r--po/af.po176
-rw-r--r--po/am.po176
-rw-r--r--po/ar.po191
-rw-r--r--po/as.po195
-rw-r--r--po/ast.po192
-rw-r--r--po/be.po176
-rw-r--r--po/bg.po176
-rw-r--r--po/bn.po176
-rw-r--r--po/bn_IN.po192
-rw-r--r--po/bs.po176
-rw-r--r--po/ca.po201
-rw-r--r--po/cs.po177
-rw-r--r--po/cy.po176
-rw-r--r--po/da.po191
-rw-r--r--po/de.po194
-rw-r--r--po/de_CH.po193
-rw-r--r--po/el.po177
-rw-r--r--po/en.po99
-rw-r--r--po/en_GB.po190
-rw-r--r--po/es.po192
-rw-r--r--po/et.po177
-rw-r--r--po/eu_ES.po176
-rw-r--r--po/fa.po176
-rw-r--r--po/fi.po186
-rw-r--r--po/fr.po192
-rw-r--r--po/gl.po176
-rw-r--r--po/gu.po192
-rw-r--r--po/he.po177
-rw-r--r--po/hi.po192
-rw-r--r--po/hr.po178
-rw-r--r--po/hu.po191
-rw-r--r--po/hy.po176
-rw-r--r--po/id.po176
-rw-r--r--po/ilo.po176
-rw-r--r--po/is.po176
-rw-r--r--po/it.po189
-rw-r--r--po/ja.po191
-rw-r--r--po/ka.po176
-rw-r--r--po/kn.po192
-rw-r--r--po/ko.po191
-rw-r--r--po/ku.po176
-rw-r--r--po/lo.po176
-rw-r--r--po/lt.po178
-rw-r--r--po/lv.po178
-rw-r--r--po/mk.po176
-rw-r--r--po/ml.po191
-rw-r--r--po/mr.po192
-rw-r--r--po/ms.po176
-rw-r--r--po/my.po176
-rw-r--r--po/nb.po177
-rw-r--r--po/nl.po190
-rw-r--r--po/nn.po177
-rw-r--r--po/nso.po176
-rw-r--r--po/or.po195
-rw-r--r--po/pa.po191
-rw-r--r--po/pl.po190
-rw-r--r--po/pt.po191
-rw-r--r--po/pt_BR.po188
-rw-r--r--po/ro.po176
-rw-r--r--po/ru.po193
-rw-r--r--po/si.po192
-rw-r--r--po/sk.po190
-rw-r--r--po/sl.po178
-rw-r--r--po/sos.pot177
-rw-r--r--po/sq.po176
-rw-r--r--po/sr.po191
-rw-r--r--po/sr@latin.po191
-rw-r--r--po/sv.po193
-rw-r--r--po/ta.po190
-rw-r--r--po/te.po191
-rw-r--r--po/th.po189
-rw-r--r--po/tr.po177
-rw-r--r--po/uk.po195
-rw-r--r--po/ur.po176
-rw-r--r--po/vi.po177
-rw-r--r--po/zh_CN.po192
-rw-r--r--po/zh_TW.po190
-rw-r--r--po/zu.po176
-rw-r--r--pylintrc354
-rw-r--r--setup.cfg3
-rw-r--r--setup.py64
-rw-r--r--sos.conf16
-rw-r--r--sos.spec349
-rw-r--r--sos/__init__.py0
-rwxr-xr-xsos/helpers.py79
-rw-r--r--sos/plugins/__init__.py0
-rw-r--r--sos/plugins/acpid.py24
-rw-r--r--sos/plugins/amd.py36
-rw-r--r--sos/plugins/anaconda.py34
-rw-r--r--sos/plugins/apache.py28
-rw-r--r--sos/plugins/auditd.py27
-rw-r--r--sos/plugins/autofs.py61
-rw-r--r--sos/plugins/bootloader.py32
-rw-r--r--sos/plugins/cluster.py301
-rw-r--r--sos/plugins/cobbler.py31
-rw-r--r--sos/plugins/crontab.py27
-rw-r--r--sos/plugins/cs.py50
-rw-r--r--sos/plugins/devicemapper.py66
-rw-r--r--sos/plugins/dhcp.py29
-rw-r--r--sos/plugins/dovecot.py26
-rw-r--r--sos/plugins/ds.py50
-rw-r--r--sos/plugins/emc.py225
-rw-r--r--sos/plugins/filesys.py65
-rw-r--r--sos/plugins/ftp.py30
-rw-r--r--sos/plugins/gdm.py22
-rw-r--r--sos/plugins/general.py59
-rw-r--r--sos/plugins/hardware.py52
-rw-r--r--sos/plugins/hts.py23
-rw-r--r--sos/plugins/i18n.py26
-rw-r--r--sos/plugins/initrd.py28
-rw-r--r--sos/plugins/ipa.py37
-rw-r--r--sos/plugins/ipsec.py30
-rw-r--r--sos/plugins/iscsi.py24
-rw-r--r--sos/plugins/kdump.py31
-rw-r--r--sos/plugins/kernel.py118
-rw-r--r--sos/plugins/kvm.py51
-rw-r--r--sos/plugins/ldap.py50
-rw-r--r--sos/plugins/libraries.py31
-rw-r--r--sos/plugins/logrotate.py27
-rw-r--r--sos/plugins/lsbrelease.py30
-rw-r--r--sos/plugins/memory.py30
-rw-r--r--sos/plugins/mrggrid.py23
-rw-r--r--sos/plugins/mrgmessg.py24
-rw-r--r--sos/plugins/mysql.py32
-rw-r--r--sos/plugins/named.py44
-rw-r--r--sos/plugins/netdump.py28
-rw-r--r--sos/plugins/networking.py79
-rw-r--r--sos/plugins/nfsserver.py44
-rw-r--r--sos/plugins/nscd.py43
-rw-r--r--sos/plugins/ntp.py23
-rw-r--r--sos/plugins/oddjob.py31
-rw-r--r--sos/plugins/openais.py39
-rw-r--r--sos/plugins/openssl.py29
-rw-r--r--sos/plugins/openswan.py32
-rw-r--r--sos/plugins/pam.py25
-rw-r--r--sos/plugins/postfix.py32
-rw-r--r--sos/plugins/ppp.py32
-rw-r--r--sos/plugins/printing.py33
-rw-r--r--sos/plugins/process.py64
-rw-r--r--sos/plugins/psacct.py22
-rw-r--r--sos/plugins/pxe.py34
-rw-r--r--sos/plugins/quagga.py30
-rw-r--r--sos/plugins/radius.py36
-rw-r--r--sos/plugins/rhn.py89
-rw-r--r--sos/plugins/rpm.py32
-rw-r--r--sos/plugins/s390.py73
-rw-r--r--sos/plugins/samba.py29
-rw-r--r--sos/plugins/sanitize.py41
-rw-r--r--sos/plugins/sar.py37
-rw-r--r--sos/plugins/selinux.py49
-rw-r--r--sos/plugins/sendmail.py32
-rw-r--r--sos/plugins/smartcard.py37
-rw-r--r--sos/plugins/snmp.py31
-rw-r--r--sos/plugins/soundcard.py34
-rw-r--r--sos/plugins/squid.py29
-rw-r--r--sos/plugins/ssh.py26
-rw-r--r--sos/plugins/startup.py30
-rw-r--r--sos/plugins/system.py33
-rw-r--r--sos/plugins/systemtap.py37
-rw-r--r--sos/plugins/tftpserver.py31
-rw-r--r--sos/plugins/tomcat.py28
-rw-r--r--sos/plugins/udev.py23
-rw-r--r--sos/plugins/veritas.py221
-rw-r--r--sos/plugins/vmware.py30
-rw-r--r--sos/plugins/x11.py41
-rw-r--r--sos/plugins/xen.py99
-rw-r--r--sos/plugins/xinetd.py32
-rw-r--r--sos/plugins/yum.py59
-rw-r--r--sos/plugintools.py567
-rwxr-xr-xsos/policyredhat.py406
-rwxr-xr-xsos/sosreport.py820
-rwxr-xr-xsosreport27
-rw-r--r--sosreport.189
-rw-r--r--test/__init__.py1
-rw-r--r--test/commons.py32
-rw-r--r--test/fixture/__init__.py0
-rw-r--r--test/fixture/dummyPluginDisabled.py31
-rw-r--r--test/fixture/dummyPluginEnabled.py32
-rw-r--r--test/testbasic.py59
-rw-r--r--test/testldap.py41
-rw-r--r--tools/msgfmt.py203
-rwxr-xr-xtools/profiler/report145
204 files changed, 24175 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 00000000..92947fd9
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,248 @@
+2007-06-15 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * [BZ#241282] initial port to RHEL4 :) sos core now runs happily, plugins will probably need to be fixed as well.
+ * Initial commit of XML reporting to gather details about commands executed and files gathered.
+ * Exceptions in plugin.analyse() were not catched allowing a bad plugin to break sosreport.
+
+2007-06-15 Eugene Teo <eteo@redhat.com>
+
+ * lib/sos/plugins/apache.py, lib/sos/plugins/nfsserver.py, lib/sos/plugins/selinux.py, lib/sos/plugins/xinetd.py, lib/sos/plugins/ssh.py, lib/sos/plugins/sendmail.py, lib/sos/plugins/samba.py, lib/sos/plugins/named.py, lib/sos/plugins/cluster.py:
+ - Edited apache.py to gather /var/log/httpd/* log files
+ - Added nfsserver.py to gather NFS server-related debugging information
+ - Edited selinux.py to gather /etc/selinux/* configuration files
+ - Added xinetd.py to gather xinetd-related information
+ - Added ssh.py to gather ssh-related information
+ - Added sendmail.py to gather sendmail information
+ - Edited samba.py to gather /var/log/samba/* log files
+ - Edited named.py to gather /etc/sysconfig/named
+ - Edited cluster.py to gather the output of fdisk -l to show the
+ shared storage devices that should be available to each system
+
+2007-05-28 Eugene Teo <eteo@redhat.com>
+
+ * lib/sos/plugins/systemtap.py:
+ - Added systemtap.py to gather SystemTap pre-requisites information
+
+2007-05-28 Eugene Teo <eteo@redhat.com>
+
+ * lib/sos/plugins/amd.py:
+ - Added amd.py to gather Amd automounter information
+
+2007-05-25 Eugene Teo <eteo@redhat.com>
+
+ * lib/sos/plugins/xen.py, lib/sos/plugins/pam.py, lib/sos/plugins/memory.py:
+ - Edited xen.py to determine if CPU has PAE/Intel VT/AMD-V support
+ - Edited pam.py to gather configurations in /etc/security, and files
+ listing of /lib/security/pam_*so
+ - Edited memory.py to gather /proc/{vmstat,slabinfo}, and free -m
+ output
+
+2007-04-23 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Running "multipath" without arguments might change the device-mapper maps, which we want to avoid if things are broken.
+
+2007-04-02 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Replaced xen plugin with (better) version from Chris Lalancette <clalance@redhat.com>
+
+2007-03-29 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Added a checkenabled() function which can be used to disable a plugin at run-time.
+ * Disable the progress-bar if verbosity is enabled.
+
+2007-03-27 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Fixed hardware plugin to use modules.pcimap instead of deprecated pcitable.
+ * Added a random suffix to sosreport tree to avoid overwriting an existing tree with same name.
+ * Better logging using python's logging module.
+ * Verbose logs included in sosreport (sos_logs/sos.log)
+
+2007-03-15 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Implemented a progress bar (RFE BZ#219672) which can be disabled from the command line.
+ * Added check to see if the loaded module matches the copy on the file-system
+
+2007-03-14 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * fixed BZ#219877 (ncurses "Cancel" button makes sosreport exit)
+
+2007-03-07 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Allow passing multiple comma-separated plugin names to -n (--noplugin) and -o (--onlyplugin) options.
+ * Added further commands' output to gather from lvm_dump
+
+
+2007-02-20 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Added a specialized plugin for device-mapper related configuration files and command outputs (device-mapper, LVM and multipath)
+ * Added --onlyplugin option (-o) to selectively choose which plugins to load (complementary to existing --noplugin)
+ * Exit if no valid plugin was selected (rather than building an empty sosreport).
+
+2007-02-16 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Strip out the shared secret (bindpw) from /etc/ldap.conf
+ * Collect parsed configuration tree directly from ccsd (useful for troubleshooting parsing issues)
+ * Scamble password information for fencing devices.
+
+2007-01-26 Navid Sheikhol-Eslami <navid@redhat.com>
+
+ * Added doRegexSub() to be called in postproc() to apply a regexp substitution to files
+ * Added radius plugin for freeradius data collection
+ * Ask full name to prevent errors when moving the sos tree before packaging
+ * Reformat tar file name is no ticket number is given
+
+2006-06-19 Steve Conklin <sconklin@tintin>
+
+ * ChangeLog, LICENSE, setup.py, sos.spec:
+ Added License file and bumped release
+
+2006-06-08 dlehman <dlehman@tintin>
+
+ * example_plugins/example.py, example_plugins/fsusage.py, example_plugins/release.py, example_plugins/template.py, lib/sos/helpers.py, lib/sos/plugins/apache.py, lib/sos/plugins/bootloader.py, lib/sos/plugins/cluster.py, lib/sos/plugins/filesys.py, lib/sos/plugins/ftp.py, lib/sos/plugins/general.py, lib/sos/plugins/hardware.py, lib/sos/plugins/kernel.py, lib/sos/plugins/ldap.py, lib/sos/plugins/libraries.py, lib/sos/plugins/mail.py, lib/sos/plugins/memory.py, lib/sos/plugins/named.py, lib/sos/plugins/networking.py, lib/sos/plugins/pam.py, lib/sos/plugins/process.py, lib/sos/plugins/rhn.py, lib/sos/plugins/rpm.py, lib/sos/plugins/samba.py, lib/sos/plugins/selinux.py, lib/sos/plugins/squid.py, lib/sos/plugins/startup.py, lib/sos/plugins/system.py, lib/sos/plugins/tarball.py, lib/sos/plugins/x11.py, lib/sos/plugintools.py, lib/sos/policyredhat.py, setup.py, sosreport:
+ - Flesh out rhn plugin to handle Proxy or Satellite
+ - Add package queries to policyredhat.py (allPkgsByName, pkgByName, pkgNVRA)
+ - Add policy instance to the commons dict for access from plugins
+ - Use string objects' methods instead of the string module where possible
+ - Remove imports of unused string module
+ - Cleanup some typos, redundant initializations, &c
+
+2006-06-08 dlehman <dlehman@tintin>
+
+ * example_plugins/example.py, example_plugins/fsusage.py, example_plugins/release.py, example_plugins/template.py, lib/sos/helpers.py, lib/sos/plugins/apache.py, lib/sos/plugins/bootloader.py, lib/sos/plugins/cluster.py, lib/sos/plugins/filesys.py, lib/sos/plugins/ftp.py, lib/sos/plugins/general.py, lib/sos/plugins/hardware.py, lib/sos/plugins/kernel.py, lib/sos/plugins/ldap.py, lib/sos/plugins/libraries.py, lib/sos/plugins/mail.py, lib/sos/plugins/memory.py, lib/sos/plugins/named.py, lib/sos/plugins/networking.py, lib/sos/plugins/pam.py, lib/sos/plugins/process.py, lib/sos/plugins/rhn.py, lib/sos/plugins/rpm.py, lib/sos/plugins/samba.py, lib/sos/plugins/selinux.py, lib/sos/plugins/squid.py, lib/sos/plugins/startup.py, lib/sos/plugins/system.py, lib/sos/plugins/tarball.py, lib/sos/plugins/x11.py, lib/sos/plugintools.py, lib/sos/policyredhat.py, setup.py, sosreport:
+ - Flesh out rhn plugin to handle Proxy or Satellite
+ - Add package queries to policyredhat.py (allPkgsByName, pkgByName, pkgNVRA)
+ - Add policy instance to the commons dict for access from plugins
+ - Use string objects' methods instead of the string module where possible
+ - Remove imports of unused string module
+ - Cleanup some typos, redundant initializations, &c
+
+2006-06-05 jwhiter <jwhiter@tintin>
+
+ * lib/sos/plugins/system.py:
+ adding the abilit to capture the autofs maps to system.py
+
+2006-05-31 Steve Conklin <sconklin@tintin>
+
+ * ChangeLog, Makefile: New Makefile and ChangeLog (autogenerated)
+
+ * Changelog, setup.py, sos.spec:
+ Removed old Changelog file and sync'd version and Changelog in spec file
+
+ * lib/sos/plugins/networking.py, TODO, setup.py, sos.spec:
+ Final patches and version change before submission to Fedora
+
+2006-05-31 Steve Conklin <sconklin@tintin>
+
+ * Changelog, setup.py, sos.spec:
+ Removed old Changelog file and sync'd version and Changelog in spec file
+
+ * lib/sos/plugins/networking.py, TODO, setup.py, sos.spec:
+ Final patches and version change before submission to Fedora
+
+2006-05-26 Steve Conklin <sconklin@tintin>
+
+ * Changelog, lib/sos/helpers.py, lib/sos/plugintools.py, setup.py, sosreport:
+ Added pamadio's curses UI for selecting plugin options
+ Added flushing stdout after informational messages
+
+2006-05-26 jwhiter <jwhiter@tintin>
+
+ * lib/sos/plugins/filesys.py:
+ - making the filesys.py plugin call 'blkid' when running at the request of L1, this will allow us to map labels with actual devices.
+
+ * lib/sos/plugins/tarball.py, lib/sos/plugintools.py, sosreport:
+ - Adding tarball.py to create a tarball of the report after it is run
+ - Updated sosreport to call postproc() in all the plugins, which handles the post run
+ - Added runExeInd() which will just run the exe and return the status to plugintools.py
+ - Added postproc() to plugintools.py so that plugins can implement it
+
+2006-05-25 Steve Conklin <sconklin@tintin>
+
+ * lib/sos/plugintools.py, sosreport:
+ Fixed file naming for commands to eliminate special chars and prevent
+ name collisions. Added sorting of plugins by name before reporting.
+
+ * TODO, lib/sos/plugins/kernel.py, lib/sos/plugintools.py, setup.py:
+ Fixed option handling
+
+2006-05-23 jwhiter <jwhiter@tintin>
+
+ * Changelog, lib/sos/plugins/kernel.py, setup.py:
+ Adding jwb's patch to have sosreport grab sysrq data.
+
+2006-05-22 Steve Conklin <sconklin@tintin>
+
+ * lib/sos/plugins/apache.py: oops, forgot this file
+
+ * lib/sos/plugins/bootloader.py, lib/sos/plugins/filesys.py, lib/sos/plugins/ftp.py, lib/sos/plugins/general.py, lib/sos/plugins/hardware.py, lib/sos/plugins/kernel.py, lib/sos/plugins/ldap.py, lib/sos/plugins/mail.py, lib/sos/plugins/memory.py, lib/sos/plugins/named.py, lib/sos/plugins/samba.py, lib/sos/plugins/squid.py, lib/sos/plugins/x11.py, sos.spec:
+ Patch from jwb
+
+ * lib/sos/plugins/filesys.py, lib/sos/plugins/kernel.py:
+ jwb's patches for kernel.py and filesys.py
+
+ * sosreport: minor fix to the dir perms patch
+
+ * lib/sos/plugins/bootloader.py, lib/sos/plugins/cluster.py, lib/sos/plugins/filesys.py, lib/sos/plugins/general.py, lib/sos/plugins/hardware.py, lib/sos/plugins/kernel.py, lib/sos/plugins/libraries.py, lib/sos/plugins/memory.py, lib/sos/plugins/networking.py, lib/sos/plugins/pam.py, lib/sos/plugins/process.py, lib/sos/plugins/rhn.py, lib/sos/plugins/rpm.py, lib/sos/plugins/selinux.py, lib/sos/plugins/startup.py, lib/sos/plugins/system.py, lib/sos/plugins/template.py, lib/sos/plugins/x11.py, Changelog, example_plugins/template.py, lib/sos/plugintools.py, setup.py, sosreport:
+ Merged all of jwb's weekend patches. Make output dirs world readable, check before
+ executing executables, and added a lot of plugins.
+
+2006-05-19 Steve Conklin <sconklin@tintin>
+
+ * lib/sos/plugins/template.py: Removed unneeded variabled from plugin.
+
+ * Changelog, TODO, example_plugins/example.py, example_plugins/fsusage.py, example_plugins/release.py, example_plugins/runcommand.py, lib/sos/plugins/template.py, lib/sos/plugintools.py, setup.py, sosreport:
+ Applied jwb's fix, added his examples, improved html output
+
+2006-05-18 Steve Conklin <sconklin@tintin>
+
+ * example_plugins/example.py, example_plugins/runcommand.py, lib/sos/plugins/template.py:
+ Put instance variables in plugins in addition to base class
+
+ * example_plugins/example.py, example_plugins/runcommand.py, lib/sos/plugins/template.py, lib/sos/plugintools.py, setup.py, sosreport:
+ Removed separate pit class, and put everything having to do with the plugin in
+ pluginBase. Still incorrectly aggregates data across all plugins.
+
+ * README: Added Jwb as a contributor
+
+ * Changelog, TODO, lib/sos/plugins/template.py, lib/sos/plugintools.py, sosreport:
+ Implemented a base class for plugins
+
+2006-05-17 Steve Conklin <sconklin@tintin>
+
+ * Changelog, TODO, lib/sos/helpers.py, lib/sos/plugins/template.py, lib/sos/plugintools.py, sosreport, tests/maketesttree.sh:
+ Cleaned up code, added comments, fixed dir copying bug, changed option
+ handling. See Changelog
+
+2006-05-16 Steve Conklin <sconklin@tintin>
+
+ * lib/sos/helpers.py, lib/sos/plugintools.py:
+ Missed an edit to change log file descriptor to the dictionary. Fixed.
+
+ * TODO: Added documentation to list
+
+ * TODO: Added need for example plugin
+
+2006-05-15 Steve Conklin <sconklin@tintin>
+
+ * README, TODO, lib/sos/plugins/template.py, lib/sos/plugintools.py, setup.py, sosreport:
+ Added a dictionary of things that need to be known to all, like paths for
+ reports.
+
+ Added Pierre Amadio's command line arg handling
+
+ Fixed incorrect handling of command completion status
+
+ Added html generation
+
+2006-05-09 Steve Conklin <sconklin@tintin>
+
+ * TODO: changed it
+
+ * setup.cfg: removed RFC file
+
+ * MANIFEST.in, Notes.txt, README, TODO, lib/sos/__init__.py, lib/sos/helpers.py, lib/sos/plugins/__init__.py, lib/sos/plugins/template.py, lib/sos/plugintools.py, lib/sos/policyredhat.py, setup.cfg, setup.py, sosreport:
+ Initial checkin of the sos project
+
+ * MANIFEST.in, Notes.txt, README, TODO, lib/sos/__init__.py, lib/sos/helpers.py, lib/sos/plugins/__init__.py, lib/sos/plugins/template.py, lib/sos/plugintools.py, lib/sos/policyredhat.py, setup.cfg, setup.py, sosreport:
+ New file.
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..7a8e8abf
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 00000000..4e1cc6fe
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,12 @@
+recursive-include po *.mo
+recursive-include extras *
+recursive-include test *
+include sosreport*
+include README*
+include LICENSE
+include TODO
+include ChangeLog
+include gpgkeys/*.pub
+include sos.conf
+include docs/*.rst
+include docs/conf.py
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..0051eb30
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,94 @@
+#
+# Makefile for sos system support tools
+#
+
+NAME = sos
+VERSION = $(shell echo `awk '/^Version:/ {print $$2}' sos.spec`)
+RELEASE = $(shell echo `awk '/^Release:/ {gsub(/\%.*/,""); print $2}' cas.spec`)
+#RELEASE = 6
+REPO = http://svn.fedorahosted.org/svn/sos
+#SVNTAG = r$(subst .,-,$(VERSION))_$(RELEASE)
+SRCDIR = $(PWD)
+# Needs to be changed to reflect
+# your rpm development tree.
+TOPDIR = $(HOME)/rpmbuild/SOURCES
+TMPDIR = /tmp/$(NAME)-$(VERSION)
+MANPAGE = $(PWD)/sosreport.1
+SOURCE1 = $(PWD)/sos.conf
+SOURCE2 = $(PWD)/sosreport.1.gz
+SOURCE3 = $(PWD)/gpgkeys/rhsupport.pub
+
+all:
+
+.PHONY: tarball install clean rpm
+
+tarball: clean mo gpgkey
+ @echo "Build Archive"
+ @test -f $(SOURCE2) || gzip -c $(MANPAGE) > $(SOURCE2)
+ @mkdir $(TMPDIR)
+ @python setup.py sdist -d $(TMPDIR)
+ @mkdir $(PWD)/dist
+ @cp $(TMPDIR)/* $(PWD)/dist
+ @echo " "
+ @echo "The final archive is $(PWD)/dist/"
+
+install:gpgkey mo
+ python setup.py install
+ @rm -rf build/lib
+
+clean:
+ @rm -fv *~ .*~ changenew ChangeLog.old $(NAME)-$(VERSION).tar.gz
+ @rm -rfv {dist,build,sos.egg-info}
+ @rm -rf MANIFEST
+ @rm -rfv $(TMPDIR)
+ @rm -rf {$(SOURCE2),$(SOURCE3)}
+ @for i in `ls po`; do \
+ if [ -d po/$$i ]; then \
+ rm -rf po/$$i; \
+ fi; \
+ done;
+ @for i in `find . -iname *.pyc`; do \
+ rm $$i; \
+ done; \
+
+# TODO: This needs work
+internal-rpm: gpgkey
+ @test -f sos-internal.spec
+ @mkdir -p $(TOPDIR)/SOURCES $(TOPDIR)/SRPMS $(TOPDIR)/RPMS $(TOPDIR)/BUILD $(SRCDIR)/dist
+ cp gpgkeys/rhsupport.pub gpgkeys/rhsupport.key $(TOPDIR)/SOURCES
+
+# this builds an RPM from the current working copy
+ @cd $(TOPDIR)/BUILD ; \
+ rm -rf $(NAME)-$(VERSION) ; \
+ ln -s $(SRCDIR) $(NAME)-$(VERSION) ; \
+ tar --gzip --exclude=.svn --exclude=svn-commit.tmp --exclude=$(NAME)-$(VERSION)/build --exclude=$(NAME)-$(VERSION)/dist \
+ --exclude gpgkeys/rhsupport.pub --exclude gpgkeys/rhsupport.key \
+ -chSpf $(TOPDIR)/SOURCES/$(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION) ; \
+ rm -f $(NAME)-$(VERSION)
+
+ rpmbuild -ba --define="_topdir $(TOPDIR)" sos-internal.spec
+ @mv $(TOPDIR)/RPMS/noarch/$(NAME)-internal-*.rpm $(TOPDIR)/SRPMS/$(NAME)-internal-*.rpm dist/
+ cp gpgkeys/rhsupport.key dist/
+
+rpm:
+ @test -d $(TOPDIR) || mkdir -p $(TOPDIR)
+ @mv dist/* $(TOPDIR)
+ @test -f sos.spec
+ rpmbuild -ba sos.spec
+
+pot:
+ xgettext -o po/sos.pot sos/sosreport.py sos/policyredhat.py
+
+mo:
+ @echo "Generating mo files"
+ @for i in `ls po`; do \
+ if [ $$i != 'sos.pot' ]; then \
+ mkdir po/$${i%.po}; \
+ python tools/msgfmt.py -o po/$${i%.po}/sos.mo po/$$i; \
+ fi; \
+ done; \
+
+gpgkey:
+ @echo "Building gpg key"
+ @test -f gpgkeys/rhsupport.pub && echo "GPG key already exists." || \
+ gpg --batch --gen-key gpgkeys/gpg.template
diff --git a/README b/README
new file mode 100644
index 00000000..d46c33fd
--- /dev/null
+++ b/README
@@ -0,0 +1,35 @@
+This set of tools is designed to provide information to support
+organizations in an extensible manner, allowing third parties,
+package maintainers, and anyone else to provide plugins that will
+collect, analyze, and report information that is useful for supporting
+software packages.
+
+This project is hosted at http://fedorahosted.org/sos
+For the latest version, to contribute, and for more information, please visit there.
+
+To access to the public source code repository for this project run:
+
+ svn export http://svn.fedorahosted.org/svn/sos/trunk sos --username guest
+
+to install locally (as root) ==> make install
+to build an rpm ==> make rpm
+
+See the Makefile.
+
+Maintainer:
+
+ Adam Stokes <ajs@redhat.com>
+
+Developers and Contributors:
+
+ Steve Conklin <sconklin@redhat.com>
+ Pierre Amadio <pamadio@redhat.com>
+ John Berninger <jwb@redhat.com>
+ Navid Sheikhol-Eslami <navid at redhat dot com>
+
+Thanks to:
+
+ Eva Schaller <eschaller@redhat.com> for providing an Italian translation
+ Marco Ceci <mceci@redhat.com> for helping me out with the cluster plugin
+ Leonardo Macchia <lmacchia@redhat.com> for being my personal regexp generator
+ Imed Chihi <ichihi@redhat.com> for providing Arabic and French translations
diff --git a/README.rh-upload b/README.rh-upload
new file mode 100644
index 00000000..6dd36aef
--- /dev/null
+++ b/README.rh-upload
@@ -0,0 +1,54 @@
+
+rh-upload
+
+This is a script provided with the SOS RPM which provides some automation for RHEL kernel vmcore file
+handling. The script is capable of compressing, encrypting, checksumming, splitting and uploading a
+vmcore file by passing a few options and answering two questions.
+
+The script requires that the system (it is run on) has lftp, openssl, and gzip installed otherwise it
+will die.
+
+#### Recommendations ####
+
+Red Hat absolutely recommends that you perform an md5checksum and provide the result file to your
+technician. This only takes a few extra minutes and can save a lot of headaches if the file somehow
+is corrupted during transfer.
+
+It is not recommended to split the core file unless you are on an unreliable or low throughput
+connection. Lftp will automatically resume uploads if there are connection interruptions but in
+some cases splitting the core file into smaller hunks may be desirable.
+
+Because your core could potentially contain data sensitive to your company it is recommended that
+core file encryption is at least considered. While it's not very likely that someone could sniff
+that sensitive information while in transit it is possible. Even with very large core files it takes
+less time to encrypt a compressed core file than it does to actually compress it the core file.
+The 10 or so extra minutes it takes may be worth it.
+
+It's likely that you will be running the script remotely so it is recommended that you launch a
+screen session _before_ kicking off this script. That way if your connection is dropped for some
+reason the script will continue until it's ready to prompt for destination input.
+
+#### Questions ####
+
+A couple of comments regarding choices made in the design of the script.
+
+Why use gzip instead of bzip2?
+While bzip2 /does/ compress tighter than gzip it is significantly slower on large files like
+vmcore files. When compressing a core file speed is more of the essence rather than overall
+compression ratio.
+
+Why not have a switch to provide the ticket number and/or upload destination?
+Good question. While there isn't really a technical reason it seemed more logical to prompt
+for this information at the beginning and end of the script run.
+
+Do I have to use this script to upload kernel vmcore files?
+No you don't have to use it; however, we would prefer you did. It standardizes the core file
+naming convention on the dropbox for one thing. Secondly it allows you to run this script
+and then go work on something else while all of the file operations run; however, if you wish to
+stare blankly at a screen waiting for compression to complete so you can upload that's entirely
+your perogative. ;-)
+
+I have a suggestion for this script who do I give it to?
+Open a ticket with Red Hat support with your request. It will certainly be considered. That said,
+this was written in a shell script with the idea being that anyone could alter it in any way
+they see fit.
diff --git a/TODO b/TODO
new file mode 100644
index 00000000..fd3c8f38
--- /dev/null
+++ b/TODO
@@ -0,0 +1,19 @@
+To Do List:
+
+ * --batch option
+
+ * Gather statistics (time, files collected, commands run) per plugin
+
+ * Choose sane defaults to satisfy Red Hat support requirements (ie. what
+ plugins should be loaded by default, with what options, etc)
+
+ * Display on screen what files/commands are being gathered.
+
+ * Allow to use a different rootdir than /
+
+ * Make it easier to select a policy module and perhaps optionally include
+ plugins from the library, to allow per-distribution customization.
+
+ * Documentation - plugin howto doc, inline doc in plugin template
+
+ * Review and test error handling for things like a full tmp file system
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 00000000..181ab3ef
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,89 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = _build
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SOS.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SOS.qhc"
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
+ "run these through (pdf)latex."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 00000000..e7e1c162
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,194 @@
+# -*- coding: utf-8 -*-
+#
+# SOS documentation build configuration file, created by
+# sphinx-quickstart on Mon Feb 8 17:58:11 2010.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.append(os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = []
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'SOS'
+copyright = u'2010, Adam Stokes'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '1.9'
+# The full version, including alpha/beta/rc tags.
+release = '1.9'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of documents that shouldn't be included in the build.
+#unused_docs = []
+
+# List of directories, relative to source directory, that shouldn't be searched
+# for source files.
+exclude_trees = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. Major themes that come with
+# Sphinx are currently 'default' and 'sphinxdoc'.
+html_theme = 'default'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_use_modindex = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = ''
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'SOSdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', 'SOS.tex', u'SOS Documentation',
+ u'Adam Stokes', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_use_modindex = True
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 00000000..cb2cbe67
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,20 @@
+.. SOS documentation master file, created by
+ sphinx-quickstart on Mon Feb 8 17:58:11 2010.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+Welcome to SOS's documentation!
+===============================
+
+Contents:
+
+.. toctree::
+ :maxdepth: 2
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
diff --git a/docs/make.bat b/docs/make.bat
new file mode 100644
index 00000000..104ca9b0
--- /dev/null
+++ b/docs/make.bat
@@ -0,0 +1,113 @@
+@ECHO OFF
+
+REM Command file for Sphinx documentation
+
+set SPHINXBUILD=sphinx-build
+set BUILDDIR=_build
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
+if NOT "%PAPER%" == "" (
+ set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+)
+
+if "%1" == "" goto help
+
+if "%1" == "help" (
+ :help
+ echo.Please use `make ^<target^>` where ^<target^> is one of
+ echo. html to make standalone HTML files
+ echo. dirhtml to make HTML files named index.html in directories
+ echo. pickle to make pickle files
+ echo. json to make JSON files
+ echo. htmlhelp to make HTML files and a HTML help project
+ echo. qthelp to make HTML files and a qthelp project
+ echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
+ echo. changes to make an overview over all changed/added/deprecated items
+ echo. linkcheck to check all external links for integrity
+ echo. doctest to run all doctests embedded in the documentation if enabled
+ goto end
+)
+
+if "%1" == "clean" (
+ for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
+ del /q /s %BUILDDIR%\*
+ goto end
+)
+
+if "%1" == "html" (
+ %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/html.
+ goto end
+)
+
+if "%1" == "dirhtml" (
+ %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
+ goto end
+)
+
+if "%1" == "pickle" (
+ %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
+ echo.
+ echo.Build finished; now you can process the pickle files.
+ goto end
+)
+
+if "%1" == "json" (
+ %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
+ echo.
+ echo.Build finished; now you can process the JSON files.
+ goto end
+)
+
+if "%1" == "htmlhelp" (
+ %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
+ echo.
+ echo.Build finished; now you can run HTML Help Workshop with the ^
+.hhp project file in %BUILDDIR%/htmlhelp.
+ goto end
+)
+
+if "%1" == "qthelp" (
+ %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
+ echo.
+ echo.Build finished; now you can run "qcollectiongenerator" with the ^
+.qhcp project file in %BUILDDIR%/qthelp, like this:
+ echo.^> qcollectiongenerator %BUILDDIR%\qthelp\SOS.qhcp
+ echo.To view the help file:
+ echo.^> assistant -collectionFile %BUILDDIR%\qthelp\SOS.ghc
+ goto end
+)
+
+if "%1" == "latex" (
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+ echo.
+ echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
+ goto end
+)
+
+if "%1" == "changes" (
+ %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
+ echo.
+ echo.The overview file is in %BUILDDIR%/changes.
+ goto end
+)
+
+if "%1" == "linkcheck" (
+ %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
+ echo.
+ echo.Link check complete; look for any errors in the above output ^
+or in %BUILDDIR%/linkcheck/output.txt.
+ goto end
+)
+
+if "%1" == "doctest" (
+ %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
+ echo.
+ echo.Testing of doctests in the sources finished, look at the ^
+results in %BUILDDIR%/doctest/output.txt.
+ goto end
+)
+
+:end
diff --git a/example_plugins/example.py b/example_plugins/example.py
new file mode 100755
index 00000000..1e650417
--- /dev/null
+++ b/example_plugins/example.py
@@ -0,0 +1,94 @@
+## example.py
+## An example sos plugin
+
+### 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 sos.plugintools
+
+# Class name must be the same as file name and method names must not change
+class example(sos.plugintools.PluginBase):
+ """This is an example plugin for sos. Plugins gather, analyze, and report on various aspects
+ of system operation that are of interest. plugins are based on the PluginBase class, which
+ you should inspect if you wish to override any methods in your plugin. The methods of use
+ to plugin developers are:
+ collect() - use the functions sosCp and sosRunExe to gether information
+ analyze() - perform any special analysis you require beyond just saving the
+ information gathered by collect(). Use sosAlert() and sosAddCustomText()
+ to add information to the report.
+ report() - override this method if you wish to replace the default reporting
+
+ All plugins will use collect(), some will use analyze(), few will override report()
+ """
+
+ # Add your options here, indicate whether they are slow to run, and set whether they are enabled by default
+ # Options are python dictionaries that conatin a short name, long description, speed, and whether they are enabled by default
+ optionList = [("init.d", 'Gathers the init.d directory', 'slow', 0),
+ ('follicles', 'Gathers information about each follicle on every toe', 'slow', 0),
+ ('color', 'Gathers toenail polish color', 'fast', 0)]
+
+ def setup(self):
+ ''' First phase - Collect all the information we need.
+ Directories are copied recursively. arbitrary commands may be
+ executed using the susRunExe method. Information is automatically saved, and
+ links are presented in the report to each file or directory which has been
+ copied to the saved tree. Also, links are provided to the output from each command.
+ '''
+ # Here's how to copy files and directory trees
+ self.addCopySpec("/etc/hosts")
+ # this one saves a file path to the copy for later analysis
+ # FIXME: Need to figure out how to do this
+ # self.fooFilePath = self.copyFileOrDir("/proc/cpuinfo")
+
+ # Here's how to test your options and execute if enabled
+ if self.isOptionEnabled("init.d"):
+ self.addCopySpec("/etc/init.d") # copies a whole directory tree
+
+ # Here's how to execute a command
+ # you can save the path to the copied file for later analysis if desired
+ # FIXME: Need to figure out how to do this
+ self.psCmdDstFileName = self.runExe("/bin/ps -ef")
+ return
+
+ def analyze(self):
+ ''' This is optional and need not be defined.
+ If you wish to perform some analysis on either files
+ that were gathered or on the output of commands, then save the filenames on the
+ destination file system when gathering that information in the collect() method
+ and use them here
+ '''
+ # This is an example of opening and reading the output of a command that
+ # was run in the collect() method. Note that the output of the command is
+ # included in the report anyway
+ fd = open(self.fooFilePath)
+ lines = fd.readlines()
+ fd.close()
+ for line in lines:
+ if line.count("vendor_id"):
+ self.addCustomText("Vendor ID string is: %s <br>\n" % line)
+ #
+ # Alerts can optionally be generated, and will be included in the
+ # report automatically
+ #
+ self.addAlert("This is an alert")
+ return
+
+# def report(self):
+# """ Usually, this doesn't even need to be defined, and you can inherit the
+# base class, unless you want to replace what sosGetResults()
+# does with your own custom report generator. If you are going to do that, have a good
+# look at that method to see what it does. Custom text and alerts can still be added
+# here using sosAddCustomText() and sosAddAlert()
+# This method returns html that will be included inline in the report
+# """
diff --git a/example_plugins/fsusage.py b/example_plugins/fsusage.py
new file mode 100644
index 00000000..2532c5f7
--- /dev/null
+++ b/example_plugins/fsusage.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env python
+
+### 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 sos.plugintools
+
+# Class name must be the same as file name and method names must not change
+class fsusage(sos.plugintools.PluginBase):
+ def setup(self):
+ self.psCmdDstFileName = self.collectExtOutput("/bin/df -al")
+ return
diff --git a/example_plugins/release.py b/example_plugins/release.py
new file mode 100644
index 00000000..db4d7581
--- /dev/null
+++ b/example_plugins/release.py
@@ -0,0 +1,21 @@
+### 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 sos.plugintools
+
+# Class name must be the same as file name and method names must not change
+class release(sos.plugintools.PluginBase):
+ def setup(self):
+ self.addCopySpec("/etc/redhat-release")
+ return
diff --git a/example_plugins/runcommand.py b/example_plugins/runcommand.py
new file mode 100755
index 00000000..df8951d2
--- /dev/null
+++ b/example_plugins/runcommand.py
@@ -0,0 +1,45 @@
+## runcommand.py
+## An example plugin for sos
+
+### 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 sos.plugintools
+
+# Class name must be the same as file name and method names must not change
+class runcommand(sos.plugintools.PluginBase):
+ """This is a very simple example plugin that just runs one command in a shell. That
+ command could be a script supplied with your package which outputs information of interest
+ to support. When the script or command is run, stdout is collected and included in the
+ report generated by sosreport, and stderr is collected and copied into the sos log.
+
+ This is useful for people who have minimal knowledge of python, who wish to write
+ collection tools in other languages, or who have existing tools.
+
+ If your script or command generates output files that you want included in the sosreport
+ collection of files, include sosCp calls to include them.
+
+ The only method required for this simple plugin is collect().
+
+ Your finished plugin should be included with your package and installed in python's
+ site-packages/sos/plugins/ directory
+ """
+ def setup(self):
+ ''' Run a command. Output is automatically included in the report.
+ '''
+ self.collectExtOutput("/path/to/my/script --myoption --anotheroption")
+
+ # if (for example) that command created files /foo/bar/baz.txt and
+ # we want to include that in our report, we include the next line:
+ #self.pit.sosCp("/foo/bar/baz.txt")
diff --git a/extras/rh-upload b/extras/rh-upload
new file mode 100755
index 00000000..75a86f43
--- /dev/null
+++ b/extras/rh-upload
@@ -0,0 +1,283 @@
+#!/bin/bash
+
+#################################################################################
+# #
+# rh-upload #
+# Version - 0.3 #
+# Copyright (c) 2007 Red Hat, Inc. All rights reserved. #
+# #
+# #
+# Written by David Mair #
+# Cleanup and generalized for any kind of file by Olivier Arsac #
+# Idea stolen from Chris Snook :-) #
+# #
+# Purpose - To help in the automatic upload of files. #
+# Specifically, this script will compress, encrypt, md5sum, #
+# and upload the file automatically when invoked. #
+# Items are optional and specified by command line switch. #
+# ###############################################################################
+
+
+## Global directives
+umask 0077
+
+## Declare some variables
+Date=`/bin/date -u +%G%m%d%k%M%S | /usr/bin/tr -d ' '`
+Destination="dropbox.redhat.com"
+
+function usage {
+cat <<EOF
+rh-upload [-cehnNq] [-s size of hunks in MB] -f filename
+ rh-upload automates the upload of files to the Red Hat ftp.
+ The script helps the user to compress, checksum, encrypt and upload a file.
+ -c|--checksum : perform an md5 checksum on the file
+ -e|--encrypt : encrypt the file
+ -f|--file : file to act on (required)
+ -h|--help : show this usage help
+ -z|--compress : compress the file
+ -n|--noupload : Do NOT upload
+ -q|--quiet : Do everything I ask and do it quietly
+ -s|--split : split file into small hunks
+
+EOF
+}
+
+
+# echo to stderr
+function echoe(){
+ echo -e "$@" 1>&2
+}
+
+# echo unless in verbosity is too low
+function echov(){
+ local level="$1"
+ shift
+ if [[ $Verbose -ge "$level" ]]; then echo -e "$@"; fi
+}
+
+# Parse command line options (and perform some checks)
+function parse(){
+ if [ $# == 0 ]; then
+ usage
+ exit 0
+ fi
+
+ TEMP=`getopt -o heuczqs:f:n --long help,encrypt,quiet,noupload,checksum,compress,split:,file: -n 'rh-upload' -- "$@"`
+
+ if [ $? != 0 ]; then
+ echo "Options error -- Terminating..." >&2
+ usage
+ exit 1
+ fi
+
+ eval set -- "$TEMP"
+ Upload=1
+ Split=0
+ Verbose=1
+ Compress=0
+ Encrypt=0
+ Force=0
+ while true; do
+ case "$1" in
+ -h|--help) usage; exit 0;;
+ -e|--encrypt) Encrypt=1; shift;;
+ -N|--noupload) Upload=0; shift;;
+ -c|--checksum) Checksum=1; shift;;
+ -q|--quiet) Verbose=0; shift;;
+ -z|--compress) Compress=1; shift;;
+ -s|--split)
+ case $2 in
+ "") echoe "You must specify a hunk size."; exit 1 ;;
+ *) Split=$2; shift 2;;
+ esac ;;
+ -F|--force) Force=1; shift;;
+ -f|--file)
+ case "$2" in
+ "") echoe "You must specify a file name."; exit 1 ;;
+ *) File=$2; shift 2;;
+ esac ;;
+ --) shift; break ;;
+ *) echoe "Wrong options or flag specified"; usage; exit 1;;
+ esac
+ done
+
+ # Ensure the -f||--file flag was passed or die
+ if [ -z "$File" ]; then
+ echoe "The -f or --file flag is required! Terminating."
+ usage
+ exit 1
+ fi
+
+ # Validate the file exists or die
+ if [ ! -f "$File" ]; then
+ echoe "Invalid filename or file not found. Terminating."
+ exit 1
+ fi
+ File_dirname=${File%/*}
+ File_basename=${File##*/}
+ File_ext=${File_basename##*.}
+ Src_file="$File"
+ Dst_file="$File_basename"
+}
+
+function ticket(){
+ echov 1
+ echov 1 "We'll need to use your issue-tracker ticket number for a couple of things."
+ echo -n "Please enter ticket number: "
+ read Ticket_number
+ Dst_file="${Ticket_number}-${Date}-${File_basename}"
+}
+
+# Compress the file
+function compress(){
+ if [ "$Compress" != 0 ]; then
+ echov 1 "Starting file compression. This may take some time."
+ # Begin compression of file
+ if [ ! -x /usr/bin/gzip ]; then
+ echoe "Cannot find gzip in /usr/bin/. Terminating."
+ exit 1
+ else
+ /usr/bin/gzip --fast "$Src_file"
+ fi
+ Src_file="${Src_file}.gz"
+ Dst_file="${Dst_file}.gz"
+ fi
+}
+
+# Encrypt the file
+function encrypt(){
+ if [ "$Encrypt" != 0 ]; then
+ echov 1 "Encrypting file. This should only take a few minutes."
+ if [ ! -x /usr/bin/openssl ]; then
+ echoe "Cannot find openssl in /usr/bin. Terminating."
+ exit 1
+ fi
+ # Use the ticket number as the ssl keyfile name
+ Key_file="${Ticket_number}-${Date}.key"
+ /usr/bin/openssl rand -out "$Key_file" -base64 48
+ echov 1 "You have chosen to encrypt your file. Your passkey file is: $Key_file"
+ echov 1 "Please attach this key to your ticket."
+ /usr/bin/openssl aes-128-cbc -in $Src_file -out $Src_file.aes -pass file:"$Key_file"
+ Src_file="$Src_file.aes"
+ Dst_file="$Dst_file.aes"
+ fi
+}
+
+function checksum(){
+ if [ "$Checksum" != 0 ]; then
+ echov 1 "Cheksuming $Src_file... (This should only take a few minutes)"
+ if [ ! -x /usr/bin/md5sum ]; then
+ echoe "Cannot find md5sum in /usr/bin. Terminating."
+ exit 1
+ fi
+ MD5_file="${Ticket_number}-${Date}-checksum.out"
+ MD5_result=`/usr/bin/md5sum "$Src_file" | awk '{print $1}'`
+ echo "$MD5_result" > "$MD5_file"
+ echov 1 "The MD5 checksum is $MD5_result (in $MD5_file)."
+ fi
+}
+
+function split(){
+ if [ "$Split" -eq 0 ]; then
+ return
+ fi
+ local hunk_size="$Split"
+ if [[ "$hunk_size" -gt 0 ]] && [[ "$hunk_size" -lt 1001 ]]; then
+ if [ ! -x /usr/bin/split ]; then
+ echoe "Cannot find split in /usr/bin. Terminating."
+ exit 1
+ fi
+ Split_dir="${Ticket_number}-${Date}"
+ # We need to make a directory to keep things sane
+ echov 1 "Creating directory $Split_dir to house file hunks..."
+ /bin/mkdir "$Split_dir"
+ echov 1 "Splitting $Src_file..."
+ /usr/bin/split -b "$hunk_size"m -d "$Src_file" "${Split_dir}/${Dst_file}"
+ else
+ echoe "Invalid hunk size argument. Please enter a number greater than 0 and less than 1001. Terminating."
+ exit 1
+ fi
+}
+
+function upload(){
+ if [ "$Upload" -eq 0 ]; then
+ echov 1 "All file operations are complete. The file(s) is ready to upload at your convenience."
+ return
+ fi
+ echov 1 "The file(s) will now be uploaded."
+ echo -n "Please enter the destination host (default is $Destination): "
+ local destination_input
+ read destination_input
+ if [ "$destination_input" != "" ]; then
+ Destination=$destination_input
+ fi
+ echov 1
+ echov 1 "Uploading to $Destination... (This could take quite a while)."
+ if [ ! -x /usr/bin/lftp ]; then
+ # No lftp installed
+ echov 1 "lftp could not be found in /usr/bin. The file(s) will need to be uploaded manually."
+ Ftp_res=255
+ else
+ # Make the lftp script first
+ local script="/tmp/rh-upload-lftp.$$"
+ echo "lftp $Destination <<EOF" > $script
+ echo "cd incoming" >> $script
+ if [ "$Split" != 0 ]; then
+ echo "lcd $Split_dir" >> $script
+ echo "mirror -R" >> $script
+ else
+ echo "put $Src_file -o $Dst_file" >> $script
+ fi
+ echo "exit" >> $script
+ echo "EOF" >> $script
+ /usr/bin/lftp -f $script
+ Ftp_res=$?
+ fi
+}
+
+function closure(){
+ if [ "$Encrypt" != 0 ]; then
+ echov 1 "## File was encrypted with key $Key_file."
+ echov 1 "Please upload this key file to Issue Tracker or send it to your support representative for decryption after upload."
+ fi
+
+ if [ "$Checksum" != 0 ]; then
+ echov 1 "## A checksum was performed on your file."
+ echov 1 "The MD5 checksum is $MD5_result (in $MD5_file)."
+ echov 1 "Please include this when updating your ticket so your support representative can verify the copy uploaded."
+ fi
+
+ if [ "$Split" != 0 ]; then
+ echov 1 "## Your file was split and the hunks are in: $Split_dir/ "
+ fi
+
+ if [ -n "$Ftp_res" ] && [ "$Ftp_res" -eq 0 ]; then
+ echov 1 "This script has completed successfully the upload."
+ if [ "$Compress" != 0 ] || [ "$Split" != 0 ]; then
+ echov 1 "You performed file encryption and/or file splitting."
+ echov 1 "You may consider removing those temporary files."
+ fi
+ else
+ echoe "Sorry unable to upload the files to $Destination. You may want to retry or do it manually."
+ fi
+
+ if [ "$Compress" != 0 ]; then
+ echov 1 "It is NOT recommended to remove the gzipped copy of the file."
+ echov 1 "This is the only remaining copy of the file on your system."
+ echov 1 "It is recommended to retain the file until your support representative indicates that the problem has been identified and/or resolved."
+ fi
+}
+
+function main(){
+ # Run through the functions
+ parse $@
+ ticket
+ compress
+ encrypt
+ checksum
+ split
+ upload
+ closure
+}
+
+main $@
diff --git a/extras/sos-open b/extras/sos-open
new file mode 100755
index 00000000..ffc9f051
--- /dev/null
+++ b/extras/sos-open
@@ -0,0 +1,151 @@
+#!/usr/bin/python
+
+import os, commands, getopt, sys, tarfile
+
+# FILES NEEDED BY CHECKSYSREPORT: /etc/redhat-release /etc/sysconfig/rhn/up2date rpm-Va installed-rpms uname lsmod
+
+CONFIG = {}
+report_dirs = []
+
+CONFIG["outdir"] = "/tmp/sysreports"
+CONFIG["extract_reports"] = []
+CONFIG["spawn_terminal"] = False
+if not sys.stdin.isatty(): CONFIG["spawn_terminal"] = True
+else: CONFIG["spawn_terminal"] = False
+
+def cat(fname):
+ try:
+ fp = open(fname,"r")
+ print fp.read()
+ fp.close()
+ except: pass
+
+try:
+ opts, args = getopt.getopt(sys.argv[1:], "hi:w:vxf", ["help", "input="])
+except getopt.GetoptError:
+ # print help information and exit:
+ usage()
+ sys.exit(2)
+
+for o, a in opts:
+ if o == "-v":
+ verbose = True
+ if o == "-f":
+ CONFIG["spawn_terminal"] = False
+ if o == "-x":
+ CONFIG["spawn_terminal"] = True
+ sys.argv[sys.argv.index("-x")] = "-f"
+ if o in ("-h", "--help"):
+ usage()
+ sys.exit()
+ if o in ("-d"):
+ CONFIG["outdir"] = a
+ if o in ("-w"):
+ a = os.path.abspath(a)
+ try: os.stat(a)
+ except: print "ERROR: could not open", a
+ else: report_dirs.append(a)
+
+ if o in ("-i"):
+ a = os.path.abspath(a)
+ try: os.stat(a)
+ except: print "ERROR: could not open", a
+
+if CONFIG["spawn_terminal"]:
+ print "spawning new terminal"
+ sys.argv[0] = os.path.abspath(sys.argv[0])
+ os.system("gnome-terminal -e '%s'" % (' '.join(sys.argv)))
+ sys.exit()
+
+CONFIG["extract_reports"] = [os.path.abspath(a) for a in args]
+
+if not os.path.isdir(CONFIG["outdir"]):
+ if not os.path.exists(CONFIG["outdir"]):
+ exit("ERROR: working directory path exists but it's not a directory")
+ else:
+ try: os.mkdir(CONFIG["outdir"])
+ except: exit("ERROR: could not create working directory")
+
+try: os.chdir(CONFIG["outdir"])
+except: exit("ERROR: could not chdir into working directory, please check permissions")
+
+for report in CONFIG["extract_reports"]:
+ report_ext = report.rsplit(".",1)[-1]
+
+ if report_ext == "gpg":
+ clear_fname = os.path.join(CONFIG["outdir"],os.path.basename(report.rsplit(".",1)[0]))
+ status, output = commands.getstatusoutput("gpg --output %s %s" % (clear_fname,report))
+ if status:
+ sys.exit("ERROR: could not decrypt using gpg" + output )
+ report = clear_fname
+ report_ext = clear_fname.rsplit(".",1)[-1]
+ del clear_fname
+
+ outdir = None
+ tar = tarfile.open(report, "r")
+ for tarinfo in tar:
+ if tarinfo.isdir(): outdir = tarinfo.name ; break
+ tar.close()
+
+ if not outdir:
+ print("INFO: archive doesn't appear to be either a sysreport or sosreport")
+ cddir = os.path.basename(report)
+ for sout in [ ".tar.gz", ".tgz", ".tar.bz2" ]:
+ if cddir.endswith(sout): cddir = cddir[:-len(sout)]
+ cddir = os.path.abspath(os.path.join(CONFIG["outdir"],"extract_" + cddir))
+ outdir = cddir
+ else:
+ cddir = CONFIG["outdir"]
+ outdir = os.path.abspath(os.path.join(CONFIG["outdir"], outdir))
+
+ extract = True
+ if os.path.isdir(outdir):
+ extract = False
+ yorno = False
+ print "This report already seems to have been extracted in:"
+ print " " + outdir
+ print
+ while yorno not in ['y','n']: yorno = raw_input("Do you want to replace it with a fresh copy ? (y/n) ").lower()
+ if yorno == 'y':
+ print "Deleting previous copy..."
+ os.system("chmod -R u+rw %s" % outdir)
+ os.system("rm -rf %s" % outdir)
+ extract = True
+
+ if extract:
+ print "Extracting..."
+ if not os.path.isdir(cddir):
+ os.mkdir(cddir)
+ if report_ext == "bz2":
+ status, output = commands.getstatusoutput("tar xCfj %s %s" % (cddir,report))
+ elif report_ext == "gz" or report_ext == "tgz" :
+ status, output = commands.getstatusoutput("tar xCfz %s %s" % (cddir,report))
+
+ if status:
+ print("ERROR: there was some problem extracting the report (%s)" % report)
+
+ report_dirs.append(os.path.abspath(outdir))
+
+if len(report_dirs) == 1 and os.path.isdir(report_dirs[0]):
+ os.chdir(report_dirs[0])
+
+ if os.path.isfile("sos_reports/diagnose.txt"):
+ print
+ print "Diagnostics messages available:"
+ print
+ fp = open("sos_reports/diagnose.txt","r")
+ for line in fp.readlines():
+ print " " + line.strip("\n")
+ fp.close()
+ print
+
+ report_dirs[0]
+
+ print
+ print "The extracted report is located in: "
+ print " " + report_dirs[0]
+ print "Once finished, press exit to return."
+ print
+ cat("uname")
+ os.system("PS1='[SoS \W]\$ ' HOME='%s' /bin/bash -l" % (report_dirs[0]) )
+ sys.exit(-1)
diff --git a/extras/sysreport/functions b/extras/sysreport/functions
new file mode 100755
index 00000000..fff52ccd
--- /dev/null
+++ b/extras/sysreport/functions
@@ -0,0 +1,132 @@
+#! /bin/sh
+export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
+export LANG=C
+export LC_ALL=C
+export LC_CTYPE=C
+
+log="sysreport.log"
+
+fixupfile() {
+ if [ -f $2 ] ; then
+ /bin/sed -e$1 $2 > $2.newfile
+ /bin/mv $2.newfile $2
+ fi
+ return 0
+}
+
+getpartinfo() {
+ # Get fdisk -l output from all disks/partitionable raid devices from /proc/partitions
+ raiddevs=`/bin/cat /proc/partitions | /bin/egrep -v "^major|^$" | /bin/awk '{print $4}' | /bin/grep \/ | /bin/egrep -v "p[0123456789]$"`
+ disks=`/bin/cat /proc/partitions | /bin/egrep -v "^major|^$" | /bin/awk '{print $4}' | /bin/grep -v / | /bin/egrep -v "[0123456789]$"`
+ echo "fdisk -l output"
+ for d in $raiddevs $disks ; do
+ echo "<---- Disk: /dev/${d} ---->"
+ echo ""
+ /sbin/fdisk -l /dev/${d} 2>&1
+ echo ""
+ echo "<---- END ---->"
+ done
+}
+
+getpciinfo() {
+( echo "lspci"
+ echo
+ /sbin/lspci
+ echo
+ echo "lspci -n"
+ echo
+ /sbin/lspci -n
+ echo
+ echo "lspci -nv"
+ echo
+ /sbin/lspci -nv
+ echo
+ echo "lspci -nvv"
+ echo
+ /sbin/lspci -nvv ) 2>&1
+}
+
+catiffile() {
+ if [ -d $1 ]; then
+ /bin/cp -p -x --parents -R $1 $ROOT 2>>$ROOT/$log
+ find $ROOT/$1 -type b -o -type c | xargs rm -f 2>/dev/null || :
+ echo -n $STATUS
+ echo_success
+ return 1
+ fi
+ if [ -f $1 ]; then
+ /bin/cp -p --parents $1 $ROOT 2>>$ROOT/$log
+ echo -n $STATUS
+ echo_success
+ return 1
+ fi
+
+ return 0
+}
+
+catifexec() {
+ if [ -x $1 ]; then
+ echo -n $STATUS
+ echo "$*" >> $ROOT/`/bin/basename $1`
+ $* >> $ROOT/`/bin/basename $1` 2>&1
+ echo_success
+ return 1
+ fi
+ return 0
+}
+
+# The following was borrowed from the Red Hat 6.x init scripts function
+# to aid in letting the user know the application was still working.
+#
+# Get a sane screen width
+[ -z "$COLUMNS" ] && COLUMNS=80
+
+# Read in our configuration
+if [ -z "$BOOTUP" ]; then
+ if [ -f /etc/sysconfig/init ]; then
+ . /etc/sysconfig/init
+ else
+ # This all seem confusing? Look in /etc/sysconfig/init,
+ # or in /usr/doc/initscripts-*/sysconfig.txt
+ BOOTUP=color
+ RES_COL=60
+ MOVE_TO_COL="echo -en \\033[300C\\033[$[${COLUMNS}-${RES_COL}]D"
+ SETCOLOR_SUCCESS="echo -en \\033[1;32m"
+ SETCOLOR_FAILURE="echo -en \\033[1;31m"
+ SETCOLOR_WARNING="echo -en \\033[1;33m"
+ SETCOLOR_NORMAL="echo -en \\033[0;39m"
+ LOGLEVEL=1
+ fi
+fi
+
+echo_success() {
+ [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+ echo -n "[ "
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS
+ echo -n "OK"
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+ echo " ]"
+ return 0
+}
+
+echo_failure() {
+ [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+ echo -n "["
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
+ echo -n "FAILED"
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+ echo "]"
+ return 1
+}
+
+echo_passed() {
+ [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+ echo -n "["
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
+ echo -n "PASSED"
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+ echo "]"
+ return 1
+}
+
+
diff --git a/extras/sysreport/sysreport-fdisk b/extras/sysreport/sysreport-fdisk
new file mode 100755
index 00000000..451cb535
--- /dev/null
+++ b/extras/sysreport/sysreport-fdisk
@@ -0,0 +1,8 @@
+#! /bin/sh
+
+/sbin/fdisk -l /dev/hd[a-g]
+/sbin/fdisk -l /dev/sd[a-p]
+/sbin/fdisk -l /dev/md[0-9] /dev/md[1][0-5]
+for i in `/bin/ls /dev/rd/ | /bin/grep -v p[0-9]`; do
+ /sbin/fdisk -l /dev/rd/"$i" 2>&1
+done
diff --git a/extras/sysreport/sysreport.legacy b/extras/sysreport/sysreport.legacy
new file mode 100755
index 00000000..043ba026
--- /dev/null
+++ b/extras/sysreport/sysreport.legacy
@@ -0,0 +1,766 @@
+#! /bin/bash
+#
+# System Report
+# Copyright (c) 1999-2006 Red Hat, Inc. All rights reserved.
+#
+# Written by:
+# Wil Harris <wil@redhat.com>
+# Peter Jones <pjones@redhat.com>
+# Preston Brown <pbrown@redhat.com>
+# Than Ngo <than@redhat.com>
+
+umask 0077
+UTILDIR=/usr/share/sysreport
+VER=`/bin/uname -r`
+PATH=""
+PROGNAME="sysreport"
+DATE=`/bin/date -u +%G%m%d%k%M%S | /usr/bin/tr -d ' '`
+
+function usage {
+ echo "Sysreport is a utility that gathers information about a system's"
+ echo "hardware and configuration. The information can then be used for"
+ echo "diagnostic purposes and debugging. Sysreport is commonly used to help"
+ echo "support technicians and developers by providing a "snapshot" of a"
+ echo "system's current layout."
+ echo
+ echo "Usage: sysreport [OPTION]"
+ echo " -help : show help"
+ echo " -norpm : omit collecting information about currently installed packages"
+ echo " -dmidecode: enable dmidecode, getting information about the hardware"
+ echo " -firewall : collecting the system firewall rules"
+ echo " -home : place sysreport outputs within home directory"
+ echo " -usesysrq : collecting information about sysrq-trigger"
+ echo
+ exit 0
+}
+
+[ $# -lt 6 ] || usage
+for i
+do
+ case "$i" in
+ -help) usage;;
+ -norpm) NORPM=yes;;
+ -dmidecode) DMIDECODE=yes;;
+ -firewall) FIREWALL=yes;;
+ -home) HOMEDIR=yes;;
+ -sysrq) SYSRQ_TRIGGER=yes;;
+ -usesysrq) SYSRQ_TRIGGER=yes;;
+ *) usage;;
+ esac
+done
+
+if [ -f $UTILDIR/functions ]; then
+ . $UTILDIR/functions
+else
+ echo "Sysreport is not properly installed"
+ exit 1
+fi
+if [ $UID != 0 ]; then
+ echo "You must be root to use this utility"
+ exit 1
+fi
+
+if [ "$HOMEDIR" = yes ] ; then
+ TEMPDIR=$HOME
+ ROOT=$HOME/sysreport-$DATE
+ /bin/mkdir $ROOT >& /dev/null
+else
+ TEMPDIR=/tmp
+ ROOT=`/bin/mktemp -dq /tmp/sysreport.XXXXXXXX`
+fi
+if [ $? != 0 ] ; then
+ echo "Cannot make temp dir"
+ exit 1
+fi
+
+trap "{ rm -rf $ROOT ; exit ; }" EXIT
+
+if [ -f /etc/fedora-release ] ; then
+ release_name="Fedora Core"
+else
+ release_name="Red Hat Linux"
+fi
+
+echo
+echo "This utility will go through and collect some detailed information "
+echo "about the hardware and setup of your $release_name system."
+echo "This information will be used to diagnose problems with your system"
+echo "and will be considered confidential information. Red Hat will use"
+echo "this information for diagnostic purposes ONLY. "
+echo
+echo "Please wait while we collect information about your system."
+echo
+echo "This process may take a while to complete...."
+echo "No changes will be made to your system during this process."
+echo
+echo "NOTE: You can safely ignore a failed message. This only means a file"
+echo "we were checking for did not exist."
+echo
+echo "If your system hangs while gathering rpm information, please abort"
+echo "the script with CTRL-C and run it again after adding -norpm to the"
+echo "sysreport command line"
+echo
+echo "Press ENTER to continue, or CTRL-C to quit."
+read IGNORE
+
+echo
+echo "Getting system configuration information."
+echo
+STATUS="Determining $release_name version:"
+catiffile "/etc/redhat-release"
+
+STATUS="Determinding your current hostname: "
+catifexec "/bin/hostname"
+
+STATUS="Getting the date:"
+catifexec "/bin/date"
+
+STATUS="Checking your systems current uptime and load average:"
+catifexec "/usr/bin/uptime"
+
+STATUS="Checking available memory:"
+catifexec "/usr/bin/free"
+
+STATUS="Checking free disk space:"
+catifexec "/bin/df" "-al"
+
+STATUS="Checking currently running processes:"
+catifexec "/bin/ps" "-e -o euser,pid,ppid,tty,%cpu,%mem,rss,vsz,start_time,time,state,wchan,cmd"
+
+STATUS="Checking current process tree:"
+catifexec "/usr/bin/pstree"
+
+STATUS="Collecting information about ld.so.conf:"
+catiffile "/etc/ld.so.conf"
+
+STATUS="Collecting information about ld.so.conf.d:"
+catiffile "/etc/ld.so.conf.d"
+
+STATUS="Collecting IPC-related information:"
+catifexec "/usr/bin/ipcs" "-a"
+
+STATUS="Collecting information about chkconfig --list:"
+catifexec "/sbin/chkconfig" "--list"
+
+STATUS="Collecting information about /etc/rc.d:"
+catiffile "/etc/rc.d"
+/bin/ls /etc/rc.d/rc*.d/ > $ROOT/etc/rc.d/ls-output
+
+if [ -x /usr/sbin/lsof ] ; then
+ STATUS="Lists information about files opened (lsof)"
+ catifexec "/usr/sbin/lsof" "-b +M -n -l"
+fi
+
+STATUS="Collecting interprocess communication facilities status"
+catifexec "/usr/bin/ipcs" "-u"
+catifexec "/usr/bin/ipcs" "-l"
+
+# check to see if we want to run rpm, under some circumstances
+# rpm can hang and never complete
+# yes, command line parsing needs some work
+if [ "$NORPM" != "yes" ]; then
+ echo "Collecting information about currently installed packages:"
+ echo -n "This may take several minutes...."
+ /bin/rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH}\n" > $ROOT/installed-rpms
+ /bin/rpm -Va > $ROOT/rpm-Va 2>&1
+ echo_success
+fi
+
+STATUS="Getting bootloader information:"
+/bin/ls -alR /boot > $ROOT/ls-boot 2>&1
+
+# This covers sparc, alpha, and intel (respectively)
+# updated for grub -mpg
+if [ -f /etc/silo.conf ]; then
+ STATUS="Collecting information about the boot process (silo):"
+ catiffile "/etc/silo.conf"
+fi
+if [ -f /etc/milo.conf ]; then
+ STATUS="Collecting information about the boot process (milo):"
+ catiffile "/etc/milo.conf"
+fi
+if [ -f /etc/lilo.conf ]; then
+ STATUS="Collecting information about the boot process (lilo):"
+ catiffile "/etc/lilo.conf"
+ catifexec "/sbin/lilo" "-q"
+fi
+if [ -d /boot/grub -a -f /boot/grub/grub.conf -a -f /boot/grub/device.map ]; then
+ STATUS="Collecting information about the boot process (grub.conf):"
+ catiffile "/boot/grub/grub.conf"
+ STATUS="Collecting information about the boot process (grub.map):"
+ catiffile "/boot/grub/device.map"
+fi
+if [ -f /etc/cluster.conf -o -f /etc/cluster.xml -o -f /etc/cluster/cluster.conf ] ; then
+ STATUS="Gathering information on cluster setup"
+ # 2.1 AS
+ if [ -f /etc/cluster.conf ] ; then
+ catiffile "/etc/cluster.conf"
+ fi
+ # Taroon
+ if [ -f /etc/cluster.xml ] ; then
+ catiffile "/etc/cluster.xml"
+ fi
+ # RHEL4
+ if [ -d /etc/cluster ]; then
+ catiffile "/etc/cluster"
+ fi
+fi
+STATUS="Collecting init configuration:"
+catiffile "/etc/inittab"
+
+STATUS="Collecting information about X:"
+catiffile "/etc/X11"
+
+STATUS="Gathering sysctl information (/proc/sys):"
+catifexec "/sbin/sysctl" "-a"
+STATUS="Gathering sysctl information (/etc/sysctl.conf):"
+catiffile "/etc/sysctl.conf"
+
+for x in `/bin/ls -d /etc/cron*` ; do
+ STATUS="Collecting information about cron ($(/bin/basename $x)):"
+ catiffile "$x"
+done
+
+STATUS="Gathering Syslog config information:"
+catiffile "/etc/syslog.conf"
+
+STATUS="Gathering ntp configuration (/etc/ntp.conf):"
+catiffile "/etc/ntp.conf"
+STATUS="Gathering ntp configuration (/etc/ntp/step-tickers):"
+catiffile "/etc/ntp/step-tickers"
+STATUS="Gathering ntp configuration (/etc/ntp/ntpservers):"
+catiffile "/etc/ntp/ntpservers"
+
+STATUS="Gathering IP information (/sbin/ifconfig):"
+catifexec "/sbin/ifconfig" "-a"
+
+STATUS="Checking network routes:"
+catifexec "/sbin/route" "-n"
+
+STATUS="Collecting Name Service Switch config information:"
+catiffile "/etc/nsswitch.conf"
+STATUS="Collecting NIS client information:"
+catiffile "/etc/yp.conf"
+
+STATUS="Collecting system configuration information:"
+catiffile "/etc/sysconfig"
+fixupfile 's/\(.*Password=\)\(.*\)/\1********/' $ROOT/etc/sysconfig/rhn/up2date
+
+STATUS="Collecting information about system authentication (pam):"
+catiffile "/etc/pam.d"
+
+echo
+echo "Getting information about the kernel."
+echo
+STATUS="Getting kernel version:"
+catifexec "/bin/uname" "-a"
+STATUS="Checking module information:"
+catifexec "/sbin/lsmod"
+for x in $(/sbin/lsmod | /bin/cut -f1 -d" " 2>/dev/null | /bin/grep -v Module 2>/dev/null ) ; do
+ STATUS="Checking module information $x:"
+ catifexec "/sbin/modinfo" "$x"
+done
+
+STATUS="Currently getting ksysms information:"
+catifexec "/sbin/ksyms"
+
+STATUS="Gathering information about your filesystems:"
+catiffile "/proc/filesystems"
+
+STATUS="Gathering information about your system stat:"
+catiffile "/proc/stat"
+
+STATUS="Gathering information about your partitions:"
+catiffile "/proc/partitions"
+
+STATUS="Gathering information about your ksysms:"
+catiffile "/proc/ksyms"
+
+STATUS="Gathering information about slabinfo:"
+catiffile "/proc/slabinfo"
+
+# Added support to cover for the new modules.conf layout in Red Hat 7
+STATUS="Collecting information regarding kernel modules"
+catiffile "/lib/modules/$VER/modules.dep"
+if [ -f /etc/conf.modules ]; then
+ STATUS="Collecting information regarding kernel modules (conf.modules)"
+ catiffile "/etc/conf.modules"
+fi
+if [ -f /etc/modules.conf ]; then
+ STATUS="Collecting information regarding kernel modules (modules.conf)"
+ catiffile "/etc/modules.conf"
+fi
+if [ -f /etc/modprobe.conf ]; then
+ STATUS="Collecting information regarding kernel modules (modeprobe.conf)"
+ catiffile "/etc/modprobe.conf"
+fi
+
+if [ "$DMIDECODE" == "yes" ] ; then
+ echo "Getting information about the hardware."
+ echo
+ if [ -x /usr/sbin/dmidecode ] ; then
+ STATUS="Gathering DMI information:"
+ catifexec "/usr/sbin/dmidecode"
+ fi
+fi
+
+# dkms status
+STATUS="Gathering current status of modules, versions and kernels (dkms):"
+if [ -x /usr/sbin/dkms ] ; then
+ catifexec "/usr/sbin/dkms" "status"
+fi
+
+if [ -f /etc/sysconfig/isdncard ] ; then
+ STATUS="Gathering information about ISDN:"
+ catiffile "/etc/sysconfig/isdncard"
+fi
+
+STATUS="Collecting information from the proc directory:"
+catiffile "/proc/pci"
+
+STATUS="Getting kernel command line"
+catiffile "/proc/cmdline"
+
+STATUS="Gathering information about your CPU:"
+catiffile "/proc/cpuinfo"
+
+STATUS="Gathering information about your Ram:"
+catiffile "/proc/meminfo"
+
+STATUS="Gathering information about your ioports:"
+catiffile "/proc/ioports"
+
+STATUS="Gathering information about your interrupts:"
+catiffile "/proc/interrupts"
+
+STATUS="Gathering information about your scsi devices:"
+catiffile "/proc/scsi"
+
+STATUS="Gathering information about your dma:"
+catiffile "/proc/dma"
+
+STATUS="Gathering information about your devices (/proc/devices):"
+catiffile "/proc/devices"
+
+STATUS="Gathering information about your rtc:"
+catiffile "/proc/rtc"
+
+STATUS="Gathering information about your ide drivers:"
+catiffile "/proc/ide"
+
+STATUS="Gathering information about your bus:"
+getpciinfo > $ROOT/lspci
+catiffile "/proc/bus"
+
+STATUS="Gathering info on udev configuration:"
+catiffile "/etc/udev"
+
+echo
+echo "Getting disk and filesystem information."
+echo
+
+STATUS="Collecting information from /etc/fstab:"
+catiffile "/etc/fstab"
+
+STATUS="Collecting disk partition information:"
+PATH=/bin getpartinfo > $ROOT/fdisk-l
+
+STATUS="Checking mounted file systems (mount) "
+catifexec "/bin/mount"
+
+STATUS="Checking mounted file systems (/proc/mounts)"
+catiffile "/proc/mounts"
+
+STATUS="Collecting Software RAID information (/proc/mdstat)"
+catiffile "/proc/mdstat"
+
+STATUS="Collecting Software RAID information (/etc/raidtab)"
+catiffile "/etc/raidtab"
+
+STATUS="Collecting Software RAID information (/etc/mdadm.conf)"
+catiffile "/etc/mdadm.conf"
+
+STATUS="Collecting Software RAID information (mdadm -D /dev/md*)"
+catifexec "/sbin/mdadm" "-D /dev/md*"
+
+STATUS="Collecting Automount information (auto.master)"
+catiffile "/etc/auto.master"
+
+STATUS="Collecting Automount information (auto.misc)"
+catiffile "/etc/auto.misc"
+
+STATUS="Collecting Automount information (auto.net)"
+catiffile "/etc/auto.net"
+
+STATUS="Collecting LVM information:"
+catifexec "/usr/sbin/vgdisplay" "-vv"
+
+STATUS="Gathering LVM setup"
+catiffile "/etc/lvm"
+
+STATUS="Collecting SCSI Tape information (/etc/stinit.def)"
+catiffile "/etc/stinit.def"
+
+if [ -x /sbin/lsusb ] ; then
+ STATUS="Collecting USB devices list (lsusb):"
+ catifexec "/sbin/lsusb"
+fi
+
+if [ -x /usr/bin/lshal ] ; then
+ STATUS="Collecting global devices list (lshal):"
+ catifexec "/usr/bin/lshal"
+fi
+
+echo
+echo "collecting information about commonly used network services"
+echo
+# This covers backwards compatiablity for systems with inetd while keeping
+# support for the new 7.x xinetd
+if [ -f /etc/inetd.conf ]; then
+ STATUS="Collecting information about system services (inetd.conf)"
+ catiffile "/etc/inetd.conf"
+elif [ -f /etc/xinetd.conf ]; then
+ STATUS="Collecting information about system services (xinetd.conf)"
+ catiffile "/etc/xinetd.conf"
+ for x in `/bin/ls -d /etc/xinetd.d/*`; do
+ STATUS="Collecting information about system services ($(/bin/basename $x))"
+ catiffile "$x"
+ done
+fi
+for x in `/bin/ls -d /etc/host*` ; do
+ STATUS="Collecting information from $x:"
+ catiffile "$x"
+done
+
+STATUS="Collecting information about the ftp servers:"
+ftpconfigfiles=`/bin/ls -d /etc/ftp* /etc/vsftpd/* 2>/dev/null`
+for x in $ftpconfigfiles; do
+ STATUS="Collecting information about the ftp servers ($(/bin/basename $x)):"
+ catiffile "$x"
+done
+
+STATUS="Collecting information about ypbind configuration:"
+catiffile "/etc/yp.conf"
+
+if [ "$FIREWALL" == "yes" ]; then
+ KERNELMIN=`/bin/uname -r | /bin/sed -e 's,[^\.]*\.,,' -e 's,\..*,,'`
+ ipchainsmod=`/sbin/lsmod 2>/dev/null| /bin/grep ipchains`
+
+ if [ "$KERNELMIN" -lt 3 ] || [ -n "${ipchainsmod}" ] ; then
+ STATUS="Getting ipchains information:"
+ catifexec "/sbin/ipchains" "-nvL"
+ elif [ "$KERNELMIN" -gt 3 ]; then
+ STATUS="Getting iptables information:"
+ if [ -f /etc/sysconfig/iptables-config ] ; then
+ catiffile "/etc/sysconfig/iptables-config"
+ fi
+ STATUS="Getting iptables information (filter):"
+ catifexec "/sbin/iptables" "-t filter -nvL"
+ STATUS="Getting iptables information (mangle):"
+ catifexec "/sbin/iptables" "-t mangle -nvL"
+ STATUS="Getting iptables information (nat):"
+ catifexec "/sbin/iptables" "-t nat -nvL"
+ fi
+fi
+
+# ldap client and server config
+if [ -f /etc/ldap.conf ] ; then
+ STATUS="Getting LDAP configuration (ldap.conf)"
+ catiffile "/etc/ldap.conf"
+fi
+if [ -d /etc/openldap ] ; then
+ for x in `/bin/ls -d /etc/openldap/*` ; do
+ if [ -f $x ] ; then
+ STATUS="Getting LDAP configuration ($(/bin/basename $x))"
+ catiffile "$x"
+ fi
+ done
+fi
+
+# ssh
+STATUS="Getting ssh configuration (ssh_config)"
+catiffile "/etc/ssh/ssh_config"
+STATUS="Getting sshd configuration (sshd_config)"
+catiffile "/etc/ssh/sshd_config"
+
+# sendmail
+SENDMAIL_CF_FILE=/etc/mail/sendmail.cf
+SENDMAIL_CW_FILE=/etc/mail/sendmail.cw
+
+if [ -f /etc/sendmail.cf ] ; then
+ SENDMAIL_CF_FILE=/etc/sendmail.cf
+fi
+
+if [ -f /etc/sendmail.cw ] ; then
+ SENDMAIL_CW_FILE=/etc/sendmail.cw
+fi
+
+STATUS="Sendmail Configuration ($SENDMAIL_CF_FILE):"
+catiffile "$SENDMAIL_CF_FILE"
+if [ -f $SENDMAIL_CW_FILE ]; then
+ STATUS="Sendmail Machine aliases ($SENDMAIL_CW_FILE):"
+ catiffile "$SENDMAIL_CW_FILE"
+fi
+
+STATUS="Sendmail User aliases (/etc/aliases):"
+catiffile "/etc/aliases"
+
+for f in `/bin/ls -d /etc/mail/* | /bin/grep -v \.db`; do
+ STATUS="Getting files from ($(/bin/basename $f))"
+ catiffile $f
+done
+
+STATUS="Collecting Postfix Configuration (main.cf)"
+catiffile "/etc/postfix/main.cf"
+
+STATUS="Collecting Postfix Configuration (master.cf)"
+catiffile "/etc/postfix/master.cf"
+
+STATUS="Collecting exim configuration directory"
+catiffile "/etc/exim"
+
+STATUS="Collecting host resolution information"
+catiffile "/etc/resolv.conf"
+
+# Make sure we have support for both versions of bind
+if [ -f /etc/named.boot ]; then
+ STATUS="Collecting information about the nameserver (named.boot)"
+ catiffile "/etc/named.boot"
+elif [ -f /etc/named.conf ]; then
+ STATUS="Collecting information about the nameserver (named.conf)"
+ catiffile "/etc/named.conf"
+fi
+
+DNSDIR=""
+if [ -f /etc/named.conf ]; then
+ DNSDIR=$(/bin/grep -i directory /etc/named.conf |/bin/gawk '{ print $2 ;}'|\
+ /bin/sed s/\"//g|/bin/sed s/\;//g)
+elif [ -f /etc/named.boot ]; then
+ DNSDIR=$(/bin/grep -i directory /etc/named.boot|/bin/gawk '{ print $2 ;}')
+fi
+
+if [ -n "$DNSDIR" -a -d "$DNSDIR" ]; then
+ STATUS="Collecting information about the nameserver ($DNSDIR)"
+ catiffile "$DNSDIR"
+fi
+
+if [ -f /etc/exports ] ; then
+ STATUS="Collecting information about the NFS:"
+ catiffile "/etc/exports"
+fi
+
+SAMBADIR="/etc/samba"
+if [ -d $SAMBADIR ]; then
+ STATUS="Getting samba informations ($SAMBADIR)"
+ for x in `/bin/ls -d $SAMBADIR/* | grep -vE 'smbpasswd|secrets\.tdb|\.bak|\.rpmnew'` ; do
+ STATUS="Getting samba informations ($(/bin/basename $x))"
+ catiffile "$x"
+ done
+ /bin/ls -alR $SAMBADIR > $ROOT/ls-samba 2>&1
+ if [ -x /usr/bin/wbinfo ] ; then
+ STATUS="Getting samba informations (wbinfo -g):"
+ catifexec "/usr/bin/wbinfo" "-g"
+ STATUS="Getting samba informations (wbinfo -u):"
+ catifexec "/usr/bin/wbinfo" "-u"
+ fi
+fi
+
+STATUS="Getting /etc/securetty"
+catiffile "/etc/securetty"
+
+STATUS="Getting /etc/shells"
+catiffile "/etc/shells"
+
+STATUS="Getting ulimit info"
+catiffile "/etc/security/limits.conf"
+
+STATUS="Getting nscd configuration"
+catiffile "/etc/nscd.conf"
+
+STATUS="Getting Kerberos informations (/etc/krb5.conf)"
+catiffile "/etc/krb5.conf"
+
+STATUS="Getting Kerberos informations (/etc/krb.conf)"
+catiffile "/etc/krb.conf"
+
+STATUS="Getting Kerberos informations (/etc/krb.realms)"
+catiffile "/etc/krb.realms"
+
+STATUS="Getting information about apache"
+catiffile "/etc/httpd/conf/httpd.conf"
+
+for x in `/bin/ls -d /etc/httpd/conf.d/*.conf 2>/dev/null` ; do
+ STATUS="Getting information about apache ($(/bin/basename $x))"
+ catiffile "$x"
+done
+
+STATUS="Getting information about squid"
+catiffile "/etc/squid/squid.conf"
+
+STATUS="Getting information about CUPS"
+for x in `/bin/ls -d /etc/cups/*.conf 2>/dev/null` ; do
+ STATUS="Getting information about CUPS ($x)"
+ catiffile "$x"
+done
+
+echo
+echo "Gathering information from system logs"
+echo
+STATUS="Collecting information from dmesg:"
+catiffile "/var/log/dmesg"
+
+if [ "$SYSRQ_TRIGGER" == "yes" ]; then
+ STATUS="Collecting information from /proc/sysrq-trigger"
+ if [ -f /proc/sysrq-trigger -a -f /proc/sys/kernel/sysrq ] ; then
+ sysr_state="$(/bin/cat /proc/sys/kernel/sysrq)"
+ echo 1 > /proc/sys/kernel/sysrq
+ for key in m p t ; do
+ echo $key > /proc/sysrq-trigger
+ done
+ echo $sysr_state > /proc/sys/kernel/sysrq
+ fi
+fi
+
+for x in `/bin/ls /var/log/messages*` ; do
+ STATUS="Collecting messages files ($x)"
+ catiffile "$x"
+done
+for x in `/bin/ls /var/log/maillog*` ; do
+ STATUS="Collecting maillog files ($x)"
+ catiffile "$x"
+done
+
+
+STATUS="Collecting information (/var/log/sa)"
+catiffile "/var/log/sa"
+
+for x in `/bin/ls -d /var/log/Xorg.*.log /var/log/XFree86.*.log 2>/dev/null` ; do
+ STATUS="Collecting X logs ($x)"
+ catiffile "$x"
+done
+
+STATUS="Collecting information (/var/log/rpmpkgs)"
+catiffile "/var/log/rpmpkgs"
+
+STATUS="Collecting information (/var/log/boot.log)"
+catiffile "/var/log/boot.log"
+
+STATUS="Collecting information (/var/log/up2date)"
+catiffile "/var/log/up2date"
+
+STATUS="Collecting information (/var/log/secure)"
+catiffile "/var/log/secure"
+
+STATUS="Collecting log files from Apache"
+catiffile "/var/log/httpd"
+
+STATUS="Collecting log files from RHN"
+if `/bin/ls /var/log/rhn* >& /dev/null` ; then
+ catiffile "/var/log/rhn*"
+fi
+
+# General monitoring moc logs
+if [ -d /opt/notification ] ; then
+ for x in `/bin/ls -d /opt/notification/var/*.log* 2>/dev/null` ; do
+ STATUS="Collecting monitoring moc logs ($(/bin/basename $x))"
+ catiffile "$x"
+ done
+ for x in `/bin/ls -d /var/tmp/ack_handler.log* 2>/dev/null` ; do
+ STATUS="Collecting monitoring moc logs ($(/bin/basename $x))"
+ catiffile "$x"
+ done
+ for x in `/bin/ls -d /var/tmp/enqueue.log* 2>/dev/null` ; do
+ STATUS="Collecting monitoring moc logs ($(/bin/basename $x))"
+ catiffile "$x"
+ done
+fi
+
+# monitoring scout logs
+if [ -d /home/nocpulse/var ] ; then
+ for x in `/bin/ls -d /home/nocpulse/var/*.log* 2>/dev/null` ; do
+ STATUS="Collecting monitoring scout logs ($(/bin/basename $x))"
+ catiffile "$x"
+ done
+ for x in `/bin/ls -d /home/nocpulse/var/commands/*.log* 2>/dev/null` ; do
+ STATUS="Collecting monitoring scout logs ($(/bin/basename $x))"
+ catiffile "$x"
+ done
+fi
+
+/bin/echo
+/bin/echo "Getting information about RHN"
+/bin/echo
+RHNDIR=/etc/sysconfig/rhn
+/bin/mkdir -p $ROOT/$RHNDIR 2>/dev/null
+catiffile "/etc/rhn"
+if [ -f $RHNDIR/systemid ] ; then
+ echo -n "Gathering systemid information:"
+ if [ -x /usr/bin/xsltproc ] ; then
+ /usr/bin/xsltproc $UTILDIR/text.xsl $RHNDIR/systemid > $ROOT/$RHNDIR/systemid 2>/dev/null
+ echo_success
+ else
+ catiffile "$RHNDIR/systemid"
+ fi
+fi
+
+# Get hardware profile information (for verification with system state and RHN)
+if [ -x /usr/share/rhn/up2date_client/hardware.py ] ; then
+ STATUS="Gathering RHN hardware profile information"
+ catifexec /usr/share/rhn/up2date_client/hardware.py
+fi
+if [ -x /usr/bin/rhn-schema-version ] ; then
+ STATUS="Gathering schema version"
+ catifexec "/usr/bin/rhn-schema-version"
+fi
+if [ -x /usr/bin/rhn-charsets ] ; then
+ STATUS="Gathering database charactersets"
+ catifexec "/usr/bin/rhn-charsets"
+fi
+
+# Get SELinux information
+echo
+echo "Gathering information on SELinux setup"
+echo
+catifexec "/usr/bin/selinuxconfig"
+catifexec "/usr/sbin/sestatus"
+catifexec "rpm" "-q -V selinux-policy-targeted"
+catifexec "rpm" "-q -V selinux-policy-strict"
+
+cd $TEMPDIR
+/bin/echo
+/bin/echo -n "Please enter your case number (if you have one): "
+
+while read CASENUM
+do
+ case $CASENUM in
+ *[^0-9]*)
+ /bin/echo -e "\nError: Your input contains non-numeric characters!"
+ /bin/echo -e "Please enter your case number (if you have one): "
+ ;;
+ *)
+ break ;;
+ esac
+done
+if [ ! $CASENUM ]; then
+ NAME=$PROGNAME-$HOSTNAME.$DATE
+else
+ NAME="$PROGNAME-$HOSTNAME-$CASENUM.$DATE"
+fi
+/bin/rm -Rf $NAME
+/bin/mv $ROOT $NAME
+/bin/tar Scf $NAME.tar $NAME
+if [ -x /usr/bin/bzip2 ]; then
+ /usr/bin/bzip2 $NAME.tar
+ SUFFIX="tar.bz2"
+else
+ /bin/gzip -9 $NAME.tar
+ SUFFIX="tar.gz"
+fi
+
+/bin/rm -Rf $NAME
+/bin/echo
+/bin/echo "Please send $TEMPDIR/${NAME}.${SUFFIX} to your support"
+/bin/echo "representative."
+/bin/echo
+
+exit 0
diff --git a/extras/sysreport/text.xsl b/extras/sysreport/text.xsl
new file mode 100644
index 00000000..c381b3a8
--- /dev/null
+++ b/extras/sysreport/text.xsl
@@ -0,0 +1,33 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<xsl:output method="text" indent="no"/>
+
+<xsl:template match="array">
+ <xsl:text>[</xsl:text>
+ <xsl:for-each select="data/value">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::value">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>]&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="string">
+ <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template match="member">
+ <xsl:value-of select="name"/>
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="value"/>
+ <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="/">
+ <xsl:apply-templates select=".//member"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/gpgkeys/gpg.template b/gpgkeys/gpg.template
new file mode 100644
index 00000000..261f5b31
--- /dev/null
+++ b/gpgkeys/gpg.template
@@ -0,0 +1,14 @@
+%echo Generating key...
+Key-Type: DSA
+Key-Length: 1024
+Subkey-Type: ELG-E
+Subkey-Length: 1024
+Name-Real: Red Hat Support
+Name-Comment: SoS Encryption Key
+Name-Email: support@redhat.com
+Expire-Date: 0
+Passphrase: redhat
+%pubring gpgkeys/rhsupport.pub
+%secring gpgkeys/rhsupport.key
+%commit
+%echo done
diff --git a/po/af.po b/po/af.po
new file mode 100644
index 00000000..755d47b8
--- /dev/null
+++ b/po/af.po
@@ -0,0 +1,176 @@
+# Afrikaans translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/am.po b/po/am.po
new file mode 100644
index 00000000..2fda8a60
--- /dev/null
+++ b/po/am.po
@@ -0,0 +1,176 @@
+# Amharic translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 00000000..01bba8a9
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,191 @@
+# sos Arabic translation file
+# Copyright (C) 2007, Red Hat UK, Ltd.
+# Imed Chihi <ichihi@redhat.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos 1.7\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2007-08-02 20:16+01\n"
+"Last-Translator: Imed Chihi <ichihi@redhat.com>\n"
+"Language-Team: AR <navid@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: UTF-8\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "الرجاء إدخال الإسم [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "الرجاء إدخال رقم المعاملة المعنية بهذا التحقيق: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "جاري كتابة الحزمة المضغوطة..."
+
+#: lib/sos/policyredhat.py:253
+#, fuzzy
+msgid "Encrypting archive..."
+msgstr "جاري كتابة الحزمة المضغوطة..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"تم حفض الحزمة في: \n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "ناتج التدقيق md5sum هو: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "الرجاء إرسال هذه الحزمة إلى عملاء الدعم الفني."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+#, fuzzy
+msgid "Please communicate this name to your support representative."
+msgstr "الرجاء إرسال هذه الحزمة إلى عملاء الدعم الفني."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (الإصدار %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "الملحق %s غير سليم، تم تعطيله"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "تم تعطيل الملحق %s عبر --skip-plugins"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "الملحق %s معطل، إستعمل -e أو -o لإعادة تفعيله."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "الملحق %s لم يرد في قائمة --only-plugins."
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "لا يمكن تثبيت الملحق %s، تم تعطيله."
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "معالجة خيارات الملحق %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "لا توجد ملحقات صالحة"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "تم تفعيل الملحقات التالية"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "لم يتم تفعيل أي ملحق."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "تم تعطيل الملحقات الملحقات التالية"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "يمكن تحديد خيارات الملحقات التالية"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "لا توجد خيارات للملحقات"
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "هذا البرنامج يستوجب صلاحيات root"
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "لم يتم تفعيل أي ملحقات"
+
+#: sosreport:638
+#, fuzzy
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"سوف يقوم هذا البرنامج بتجميع معلومات مفصلة حول\n"
+"جهازكم و إعدادات نظام التشغيل\n"
+"سوف يتم تجميع هذه المعلومات في حزمة في /tmp\n"
+"تستطيعون إرسال هذه الحزمة لعملاء الدعم الفني في رد هات\n"
+"رد هات سوف تستعمل هذه المعلومات للتحقيق في أخطاء النظام حصريا\n"
+"و سوف يتم إعتبار هذه الحزمة معلومات سرية\n"
+"\n"
+"قد يستغرق تشغيل هذا البرنامج بعض الوقت\n"
+"لن يحدث أي تغيير على هذا النظام\n"
+"\n"
+"إضغط على ENTER للمواصلة أو CTRL-C للخروج\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "أحد الملحقات إكتشف خطأ في إعدادات النظام"
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "الرجاء مراجعة الإعلانات التالية"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "هل أنت متأكد؟ ن/ل"
+
+#: sosreport:686
+msgid "Y"
+msgstr "ن"
+
+#: sosreport:686
+msgid "y"
+msgstr ""
+
+#: sosreport:689
+msgid "N"
+msgstr "ل"
+
+#: sosreport:689
+msgid "n"
+msgstr ""
diff --git a/po/as.po b/po/as.po
new file mode 100644
index 00000000..634f5c18
--- /dev/null
+++ b/po/as.po
@@ -0,0 +1,195 @@
+# translation of sos.trunk.as.po to Assamese
+# Assamese translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Amitakhya Phukan <aphukan@fedoraproject.org>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: sos.trunk.as\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-08 19:15+0530\n"
+"Last-Translator: Amitakhya Phukan <aphukan@fedoraproject.org>\n"
+"Language-Team: Assamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "অনুগ্ৰহ কৰি নামৰ অদ্যাক্ষৰ আৰু পদবি লিখক [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "বৰ্তমান ৰিপোৰ্ট নিৰ্মাণৰ বাবে অনুগ্ৰহ কৰি প্ৰযোজ্য কেছ সংখ্যা উল্লেখ কৰক: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "কমপ্ৰেছ কৰা আৰ্কাইভ নিৰ্মাণ কৰক..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "আৰ্কাইভ এনক্ৰিপ্ট কৰা হৈছে..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "ৰিপোৰ্ট এনক্ৰিপ্ট কৰিবলৈ সমস্যা ।"
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"আপোনাৰ sosreport নিৰ্মাণ কৰি নিম্নলিখিত স্থানত সংৰক্ষিত হৈছে:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum হ'ল: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "অনুগ্ৰহ কৰি সহায়তা প্ৰতিনিধিক এই নথিপত্ৰটি পঠায় দিয়ক ।"
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "উল্লিখিত URL-এ আপলোড কৰিবলৈ ব্যৰ্থ ।"
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "আপোনাৰ ৰিপোৰ্টটি Red Hat সহায়তা ব্যৱস্থাত আপলোড কৰিবলৈ সমস্যা ।"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+"আপোনাৰ প্ৰদত্ত ৰিপোৰ্ট সফলতাৰে সৈতে Red Hat-ৰ ftp সেৱকত নিম্নলিখিত "
+"নামত আপলোড কৰা হৈছে:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "অনুগ্ৰহ কৰি সহায়তা প্ৰতিনিধিক এই নাম জনায় দিয়ক ।"
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "অস্থাতী পঞ্জিকা নিৰ্মাণ কৰিবলৈ ব্যৰ্থ ।"
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (সংস্কৰণ %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "প্লাগ-ইন %s অনুমোদন কৰা নাযায়, উপেক্ষা কৰা হৈছে"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "প্লাগ-ইন %s উপেক্ষা কৰা হৈছে (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "প্লাগ-ইন %s সক্ৰিয় নহয় (সক্ৰিয় কৰাৰ বাবে -e বা -o ব্যৱহাৰ কৰক) ।"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "--only-plugins তালিকাত প্লাগ-ইন %s উল্লিখিত নহয়"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "প্লাগ-ইন %s ইনস্টল কৰা নাযায়, উপেক্ষা কৰা হৈছে "
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "প্লাগ-ইনৰ পৰা বিকল্প প্ৰক্ৰিয়াকৰণ হৈছে: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "কোনো বৈধ প্লাগ-ইন পোৱা নাযায়"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "নিম্নলিখিত প্লাগ-ইনসমূহ বৰ্তমানে সক্ৰিয় কৰা হৈছে:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "কোনো প্লাগ-ইন সক্ৰিয় নাই ।"
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "নিম্নলিখিত প্লাগ-ইনসমূহ বৰ্তমানে নিষ্ক্ৰিয় অৱস্থাত আছে:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "প্লাগ-ইন সংক্ৰান্ত নিম্নলিখিত বিকল্পসমূহ উপলব্ধ আছে:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "প্লাগ-ইন সংক্ৰান্ত কোনো বিকল্প উপলব্ধ নহয় ।"
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport সঞ্চালনৰ বাবে root ব্যৱহাৰকাৰীৰ অনুমতি আৱশ্যক ।"
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "কোনো বৈধ প্লাগ-ইন সক্ৰিয় কৰা নহয়"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"এই সামগ্ৰীৰ সহায়ত যান্ত্ৰিক সামগ্ৰী আৰু Red Hat Enterprise Linux\n"
+"প্ৰণালীৰ প্ৰতিষ্ঠা সম্পৰ্কে বিশদ তথ্য সংগ্ৰহ কৰা হ'ব ।\n"
+"তথ্য সংগ্ৰহৰ পিছত /tmp পঞ্জিকাৰ অধীন এটা আৰ্কাইভ নিৰ্মিত হয় ।\n"
+"এই আৰ্কাইভ আপুনি সহায়তা প্ৰতিনিধিৰ কাশত পঠায় দিব পাৰে ।\n"
+"Red Hat দ্বাৰা এই তথ্য অকল সমস্যাৰ কাৰণ নিৰ্ণয় কৰাৰ বাবে ব্যৱহাৰ কৰা "
+"হ'ব\n"
+"আৰু ইয়াৰ গোপনীয়তা বজায় ৰাখা হ'ব ।\n"
+"\n"
+"এই কাম সম্পন্ন হ'বলৈ কিছু সময় ব্যয় হ'ব পাৰে ।\n"
+"ইয়াৰ ফলত প্ৰণালীত কোনো ধৰনৰ পৰিবৰ্তন কৰা ন'হ'ব ।\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "আগবঢ়াৰ বাবে ENTER টিপক বা প্ৰস্থান কৰিবলৈ CTRL-C টিপক ।\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "একাধিক প্লাগ-ইন দ্বাৰা আপোনাৰ বিন্যাসত সমস্যা চিনাক্ত কৰা হৈছে ।"
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "অনুগ্ৰহ কৰি নিম্নলিখিত বাৰ্তাসমূহ পৰিদৰ্শন কৰক:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "আপুনি নিশ্চিতৰূপে আগবাঢ়িবলৈ ইচ্ছুক নে (y/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/ast.po b/po/ast.po
new file mode 100644
index 00000000..dffc49a7
--- /dev/null
+++ b/po/ast.po
@@ -0,0 +1,192 @@
+# translation of ast.po to Asturian
+# Asturian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Astur <malditoastur@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ast\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-10-24 20:58+0100\n"
+"Last-Translator: Xandru Martino Ruz <xandru.martino@gmail.com>\n"
+"Language-Team: Asturian <alministradores@softastur.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Por favor pon la inicial del to nome nome y del to apellíu [%s]:"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Por favor pon el númberu de casu pal que tas xenerando esti informe:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Criando un ficheru comprimíu..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Encriptando'l ficheru..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Hebo un problema mientres s'encriptaba l'informe."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"El to informe sos xeneróse y guardóse en:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "El md5sum ye:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Por favor manda esti ficheru al to representante de sofitu."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Nun se puede cargar a la URL especificada."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Hebo un problema al cargar el to informe al equipu d'asistencia de Red Hat"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "El to informe cargóse bien a los sirvidores ftp e Red Hat col nome:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Por favor comunica esti nome al to representante de sofitu."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Nun se pudo criar un direutoriu temporal."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (versión %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "nun se validó'l plugin %s, inorándolu"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "plugin %s inoráu (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "plugin %s nun ta activu (usa -e o -o p'activalu)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "el plugin %s nun s'especifica na llista --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "nun s'instaló'l plugin %s, inorándolu"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "procesando les opciones del plugin: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "nun s'atopó un plugin válidu"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Los siguientes plugins tán activaos anguaño:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Dengún plugin ta activáu."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Los siguientes plugins nun tán activaos:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Les siguientes opciones del plugin tán disponibles:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Nun hai opciones de plugin disponibles."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport requier privilexos de root pa executalu."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "nun s'activó dengún plugin válidu"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\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"
+"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"
+"únicamente y considerará esta información como confidencial.\n"
+"\n"
+"Esti procesu va llevar un tiempu pa completase.\n"
+"Nun se fadrá dengún cambéu nel sistema.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Calca INTRO pa siguir o CTRL-C pa colar.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Ún o más plugins deteutaron un problema na to configuración."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Por favor revisa los siguientes mensaxes:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "¿Daveres quies siguir (s/n)?"
+
+#: sosreport:686
+msgid "Y"
+msgstr "S"
+
+#: sosreport:686
+msgid "y"
+msgstr "s"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/be.po b/po/be.po
new file mode 100644
index 00000000..16c8f3a9
--- /dev/null
+++ b/po/be.po
@@ -0,0 +1,176 @@
+# Belarusian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 00000000..f9ff3df3
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,176 @@
+# Bulgarian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/bn.po b/po/bn.po
new file mode 100644
index 00000000..938bd950
--- /dev/null
+++ b/po/bn.po
@@ -0,0 +1,176 @@
+# Bengali translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/bn_IN.po b/po/bn_IN.po
new file mode 100644
index 00000000..f11f705b
--- /dev/null
+++ b/po/bn_IN.po
@@ -0,0 +1,192 @@
+# translation of bn_IN.po to Bengali INDIA
+# Bengali translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Runa Bhattacharjee <runab@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: bn_IN\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-06 13:09+0530\n"
+"Last-Translator: Runa Bhattacharjee <runab@redhat.com>\n"
+"Language-Team: Bengali INDIA\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "অনুগ্রহ করে নামের অদ্যাক্ষর ও পদবি লিখুন [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "বর্তমান রিপোর্ট নির্মাণের জন্য অনুগ্রহ করে প্রযোজ্য কেস সংখ্যা উল্লেখ করুন: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "কমপ্রেস করা আর্কাইভ নির্মাণ করুন..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "আর্কাইভ এনক্রিপ্ট করা হচ্ছে..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "রিপোর্ট এনক্রিপ্ট করতে সমস্যা।"
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"আপনার sosreport নির্মাণ করে নিম্নলিখিত স্থানে সংরক্ষিত হয়েছে:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum হল: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "অনুগ্রহ করে সহায়তা প্রতিনিধিকে এই ফাইলটি পাঠিয়ে দিন।"
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "উল্লিখিত URL-এ আপলোড করতে ব্যর্থ।"
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "আপনার রিপোর্টটি Red Hat সহায়তা ব্যবস্থায় আপলোড করতে সমস্যা।"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "আপনার প্রদত্ত রিপোর্টটি সাফল্যের সাথে Red Hat-র ftp সার্ভারে নিম্নলিখিত নামে আপলোড করা হয়েছে:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "অনুগ্রহ করে সহায়তা প্রতিনিধিকে এই নামটি জানিয়ে দিন।"
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "অস্থায়ী ডিরেক্টরি নির্মাণ করতে ব্যর্থ।"
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (সংস্করণ %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "প্লাগ-ইন %s অনুমোদন করা যায়নি, উপেক্ষা করা হচ্ছে"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "প্লাগ-ইন %s উপেক্ষা করা হয়েছে (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "প্লাগ-ইন %s সক্রিয় নয় (সক্রিয় করার জন্য -e অথবা -o ব্যবহার করুন)।"
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "--only-plugins তালিকায় প্লাগ-ইন %s উল্লিখিত হয়নি"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "প্লাগ-ইন %s ইনস্টল করা যায়নি, উপেক্ষা করা হচ্ছে "
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "প্লাগ-ইন থেকে বিকল্প প্রক্রিয়াকরণ হচ্ছে: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "কোনো বৈধ প্লাগ-ইন পাওয়া যায়নি"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "নিম্নলিখিত প্লাগ-ইনগুলি বর্তমানে সক্রিয় করা হয়েছে:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "কোনো প্লাগ-ইন সক্রিয় নেই।"
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "নিম্নলিখিত প্লাগ-ইনগুলি বর্তমানে নিষ্ক্রিয় অবস্থায় রয়েছে:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "প্লাগ-ইন সংক্রান্ত নিম্নলিখিত বিকল্পগুলি উপলব্ধ রয়েছে:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "প্লাগ-ইন সংক্রান্ত কোনো বিকল্প উপলব্ধ নয়।"
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport সঞ্চালনের জন্য root ব্যবহারকারীর অনুমতি আবশ্যক।"
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "কোনো বৈধ প্লাগ-ইন সক্রিয় করা হয়নি"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"এই সামগ্রীর সাহায্যে হার্ডওয়্যার ও Red Hat Enterprise Linux\n"
+"সিস্টেমের পরিকাঠামো সম্পর্কে বিশদ তথ্য সংগ্রহ করা হবে।\n"
+"তথ্য সংগ্রহের পরে /tmp ডিরেক্টরির অধীন একটি আর্কাইভ নির্মিত হয়।\n"
+"এই আর্কাইভটি আপনি সহায়তা প্রতিনিধির কাছে পাঠিয়ে দিতে পারবেন।\n"
+"Red Hat দ্বারা এই তথ্য শুধমাত্র সমস্যার কারণ নির্ণয় করার জন্য ব্যবহার করা হবে\n"
+"এবং এর গোপনীয়তা বজায় রাখা হবে।\n"
+"\n"
+"এই কর্ম সম্পন্ন হতে কিছু সময় ব্যয় হতে পারে।\n"
+"এর ফলে সিস্টেমে কোনো ধরনের পরিবর্তন করা হবে না।\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "এগিয়ে চলার জন্য ENTER টিপুন অথবা প্রস্থান করতে CTRL-C টিপুন।\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "এক অথবা অধিক প্লাগ-ইন দ্বারা আপনার কনফিগারেশনে সমস্যা সনাক্ত করা হয়েছে।"
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "অনুগ্রহ করে নিম্নলিখিত বার্তাগুলি পরিদর্শন করুন:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "আপনি কি নিয়্চিতরূপে এগিয়ে যেতে ইচ্ছুক (y/n) ? "
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/bs.po b/po/bs.po
new file mode 100644
index 00000000..369d768c
--- /dev/null
+++ b/po/bs.po
@@ -0,0 +1,176 @@
+# Bosnian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 00000000..ae3a0070
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,201 @@
+# Catalan translation of iok by Softcatalà
+# Copyright (C) 2009 Free Software Foundation
+# This file is distributed under the same license as the iok package.
+# Xavier Conde Rueda <xavi.conde@gmail.com>, 2009.
+#
+# This file is translated according to the glossary and style guide of
+# Softcatalà. If you plan to modify this file, please read first the page
+# of the Catalan translation team for the Fedora project at:
+# http://www.softcatala.org/projectes/fedora/
+# and contact the previous translator.
+#
+# Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia
+# d'estil de Softcatalà. Si voleu modificar aquest fitxer, llegiu si
+# us plau la pàgina de catalanització del projecte Fedora a:
+# http://www.softcatala.org/projectes/fedora/
+# i contacteu l'anterior traductor/a.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-05-17 08:45\n"
+"Last-Translator: Xavier Faus i Torà <xfaus@diei.udl.cat>\n"
+"Language-Team: Catalan <fedora@softcatala.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Si us plau entreu la vostra inicial i el cognom [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Si us plau introduïu el número del cas per al qual esteu generant l'informe :"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "S'està creant l'arxiu comprimit..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "S'està xifrant l'arxiu..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Hi ha hagut un problema xifrant el vostre informe."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr "El vostre informe del sos ha estat generat i desat a:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "L'md5sum és:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Si us plau envieu aquest fitxer al vostre responsable del manteniment."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "No es pot pujar a la URL especificada."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+"L'informe s'ha pujat correctament al servidor d'ftp de Red Hat amb el nom:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Si us plau comuniqueu aquest nom a la vostra persona encarregada del "
+"manteniment."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "No es pot crear el directori temporal."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "informe d'ajuda (versió %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "el connector %s no es valida, ometent"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "el connector %s s'ha omés (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "el connector %s és inactiu (utilitzeu -e o -o per activar-lo)"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "el connector %s no s'ha especificat a la llista --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "el connector %s no s'instal·la, ometent"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "processant opcions del connector: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "cap connector vàlid trobat"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Els següents connectors estan actualment activats:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Cap connector activat."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Els següents connectors estan desactivats:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Les següents opcions dels connectors són disponibles:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "No hi ha cap opció disponible dels connectors."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "el sosreport necessita privilegis de root."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "cap connector vàlid està activat"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr "Aquesta utilitat recollirà informació detallada sobre\n"
+"el maquinari i la configuració del vostre sistema Red Had Enterprise Linux.\n"
+"La informació recollida és adjuntada i desada en un arxiu en el directori\n"
+"/tmp, que podeu enviar a la persona encarregada del manteniment.\n"
+"Red Hat utilitzarà aquesta informació únicament per a diagnòstics\n"
+"i es considerarà informació confidencial.\n"
+"\n"
+"Aquest procés pot tardar una mica en completar-se.\n"
+"No es realitzarà cap canvi al vostre sistema.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Premeu Entrar per continuar, o Control-C per sortir.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Un o més connectors han detectat un problema en la configuració."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Si us plau reviseu els següents missatges:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Esteu segurs que voleu continuar (s/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "S"
+
+#: sosreport:686
+msgid "y"
+msgstr "s"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 00000000..a38459da
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,177 @@
+# Czech translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/cy.po b/po/cy.po
new file mode 100644
index 00000000..f58bc815
--- /dev/null
+++ b/po/cy.po
@@ -0,0 +1,176 @@
+# Welsh translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 00000000..73fa83c0
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,191 @@
+# Danish translations for sos package.
+# Copyright (C) 2007
+# Automatically generated, 2007.
+# Kris Thomsen <lakristho@gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-05-14 00:55\n"
+"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Indtast venligst dit for- og efternavn [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Indtast venligst nummeret på sagen, som du opretter denne rapport for: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Opretter komprimeret arkiv..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Krypterer arkiv..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Der opstod et problem under kryptering af din rapport."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Din sosrapport er blevet oprettet og gemt i:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "MD5summen er: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Indsend venligst denne fil til din supportrepræsentant."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Kan ikke overføre til den angivne URL."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Der opstod et problem under overførsel af din rapport til Red Hat support."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+"Din rapport er overført til Red Hats ftp-server med succes, under navnet:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Giv venligst dit navn til din supportrepræsentant."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Kunne ikke oprette midlertidigt arkiv."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (version %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "udvidelsesmodulet %s kunne ikke validere, springer over"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "udvidelsesmodulet %s sprunget over (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "udvidelsesmodulet %s er inaktivt (brug -e eller -o for at aktivere)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "udvidelsesmodulet %s er er ikke angivet i --only-plugins listen"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "udvidelsesmodulet %s installerer ikke, springer over"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "bearbejder indstillinger fra udvidelsesmodul: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "ingen gyldige udvidelsesmoduler fundet"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Følgende udvidelsesmoduler er aktiveret i øjeblikket:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Ingen udvidelsesmoduler aktiveret."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Følgende udvidelsesmoduler er deaktiveret i øjeblikket:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Følgende indstillinger for udvidelsesmodul er tilgængelige:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Ingen indstillinger tilgængelige for udvidelsesmodul."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport behøver administratorrettigheder for at køre."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "ingen gyldige udvidelsesmoduler er aktiveret"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Dette hjælpeværktøj vil indsamle detaljeret information om\n"
+"hardwaren og din Red Hat Enterprise Linux systemopsætning\n"
+"Informationen er indsamlet og et arkiv er pakket under /tmp,\n"
+"som du kan sende til din supportrepræsentant.\n"
+"Red Hat vil KUN bruge denne information til diagnostiske\n"
+"formål, og det vil blive behandlet som fortrolig information.\n"
+"\n"
+"Denne proces kan tage et stykke tid at gennemføre.\n"
+"Ingen ændringer vil blive foretaget på dit system.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Tryk ENTER for at fortsætte, eller CTRL-C for at afslutte.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Èn eller flere udvidelsesmoduler har fundet et problem i din konfiguration."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Gennemse venligst følgende beskeder:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Er du sikker på, at du vil fortsætte (y/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 00000000..257f72b9
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,194 @@
+# German translation of sos
+# This file is distributed under the same license as the sos package.
+# Copyright (C) 2007 Red hat, Inc.
+#
+# Timo Trinks <ttrinks@redhat.com>, 2007.
+# Fabian Affolter <fab@fedoraproject.org>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SOS\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-03-30 23:21+0100\n"
+"Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
+"Language-Team: German <fedora-trans-de@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+"X-Poedit-Language: German\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Bitte geben Sie Ihren Vor- und Nachnamen ein [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Bitte geben Sie die Fallnummer an, für die Sie diesen Bericht generieren: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Erstelle komprimiertes Archiv..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Verschlüssele Archiv..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Beim Verschlüsseln Ihres Berichts trat ein Fehler auf."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Ihr \"sosreport\" wurde erstellt und gespeichert unter:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "Die md5sum lautet: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Bitte senden Sie diese Datei an Ihren Support-Vertreter."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Hochladen zu spezieller URL scheiterte."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Ihr Bericht wurde erfolgreich auf den Red Hat FTP-Server hochgeladen, mit dem Namen:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Bitte teilen Sie diesen Namen Ihrem Support-Vertreter mit."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Temporäres Verzeichnis konnte nicht erstellt werden."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (version %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "Plugin %s validiert nicht, wird ausgelassen"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "Plugin %s ausgelassen (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "Plugin %s ist inaktiv (verwenden Sie -e oder -o, um es zu aktivieren)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "Plugin %s nicht in der --only-plugins-Liste angegeben"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "Plugin %s installiert sich nicht, wird ausgelassen"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "Verarbeitung von Optionen des Plugins: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "keine gültigen Plugins gefunden"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Die folgenden Plugins sind derzeit aktiviert:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Kein Plugin aktiviert."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Die folgenden Plugins sind derzeit deaktiviert:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Die folgenden Plugin-Optionen stehen zur Verfügung:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Keine Plugin-Optionen verfügbar."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport benötigt zur Ausführung Root-Berechtigungen."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "keine gültigen Plugins wurden aktiviert"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Dieses Dienstprogramm sammelt einige detaillierte Informationen\n"
+"zur Hardware und Einrichtung Ihres Red Hat 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 AUSSCHLIEßLICH zu\n"
+"Diagnosezwecken und behandelt sie als vertrauliche Informationen.\n"
+"\n"
+"Die Fertigstellung dieses Prozesses kann eine Weile dauern.\n"
+"Es werden keinerlei Änderungen an Ihrem System vorgenommen.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Drücken Sie die EINGABETASTE, um fortzufahren, oder STRG-C, um abzubrechen.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Ein oder mehrere Plugins haben ein Problem in Ihrer Konfiguration entdeckt."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Bitte überprüfen Sie die folgenden Meldungen erneut:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Möchten Sie wirklich fortfahren (j/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "J"
+
+#: sosreport:686
+msgid "y"
+msgstr "j"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/de_CH.po b/po/de_CH.po
new file mode 100644
index 00000000..d5ff9401
--- /dev/null
+++ b/po/de_CH.po
@@ -0,0 +1,193 @@
+# German translation of sos
+# This file is distributed under the same license as the sos package.
+# Copyright (C) 2007 Red hat, Inc.
+#
+# Fabian Affolter <fab@fedoraproject.org>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SOS\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-04-18 01:15+0100\n"
+"Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
+"Language-Team: German <fedora-trans-de@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+"X-Poedit-Language: Swiss German\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Bitte geben Sie Ihren Vor- und Nachnamen ein [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Bitte geben Sie die Fallnummer an, für die Sie diesen Bericht generieren: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Erstelle komprimiertes Archiv ..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Verschlüssele Archiv ..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Beim Verschlüsseln Ihres Berichts trat ein Fehler auf."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Ihr \"sosreport\" wurde erstellt und gespeichert unter:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "Die md5sum lautet: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Bitte senden Sie diese Datei an Ihren Support-Vertreter."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Hochladen zu speziellem URL scheiterte."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Ihr Bericht wurde erfolgreich auf den Red Hat FTP-Server hochgeladen, mit dem Namen:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Bitte teilen Sie diesen Namen Ihrem Support-Vertreter mit."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Temporäres Verzeichnis konnte nicht erstellt werden."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (version %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "Plugin %s validiert nicht, wird ausgelassen"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "Plugin %s ausgelassen (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "Plugin %s ist inaktiv (verwenden Sie -e oder -o, um es zu aktivieren)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "Plugin %s nicht in der --only-plugins-Liste angegeben"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "Plugin %s installiert sich nicht, wird ausgelassen"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "Verarbeitung von Optionen des Plugins: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "keine gültigen Plugins gefunden"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Die folgenden Plugins sind derzeit aktiviert:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Kein Plugin aktiviert."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Die folgenden Plugins sind derzeit deaktiviert:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Die folgenden Plugin-Optionen stehen zur Verfügung:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Keine Plugin-Optionen verfügbar."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport benötigt zur Ausführung root-Rechte."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "keine gültigen Plugins wurden aktiviert"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Dieses Dienstprogramm sammelt einige detaillierte Informationen\n"
+"zur Hardware und Einrichtung Ihres Red Hat 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"
+"Diagnosezwecken und behandelt sie als vertrauliche Informationen.\n"
+"\n"
+"Die Fertigstellung dieses Prozesses kann eine Weile dauern.\n"
+"Es werden keinerlei Änderungen an Ihrem System vorgenommen.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Drücken Sie die EINGABETASTE, um fortzufahren, oder Ctrl-C, um abzubrechen.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Ein oder mehrere Plugins haben ein Problem in Ihrer Konfiguration entdeckt."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Bitte überprüfen Sie die folgenden Meldungen erneut:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Möchten Sie wirklich fortfahren (j/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "J"
+
+#: sosreport:686
+msgid "y"
+msgstr "j"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 00000000..6ea7ac4f
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,177 @@
+# Greek translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/en.po b/po/en.po
new file mode 100644
index 00000000..9f608ee5
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,99 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-07-14 11:57\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: utf-8\n"
+"Generated-By: pygettext.py 1.5\n"
+
+
+#: sosreport:399
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:417
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:421
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:425
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:433
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:438
+msgid "Plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:441
+msgid "plugin load failed for %s"
+msgstr ""
+
+#: sosreport:447
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:454
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:457
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:463
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:469
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:480
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:487
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:491
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat Enterprise Linux system.\n"
+"This information will be used to diagnose problems with your \n"
+"system and will be considered confidential information.\n"
+"Red Hat will use this information for diagnostic purposes ONLY.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+"Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:529
+msgid "Exiting."
+msgstr ""
+
+#: sosreport:676
+msgid "Collected information is in "
+msgstr ""
+
+#: sosreport:677
+msgid "Your html report is in "
+msgstr ""
+
diff --git a/po/en_GB.po b/po/en_GB.po
new file mode 100644
index 00000000..a4edc5b9
--- /dev/null
+++ b/po/en_GB.po
@@ -0,0 +1,190 @@
+# English translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Please enter your first initial and last name [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Please enter the case number that you are generating this report for: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Creating compressed archive..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Encrypting archive..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "There was a problem encrypting your report."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "The md5sum is: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Please send this file to your support representative."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Cannot upload to specified URL."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "There was a problem uploading your report to Red Hat support."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Please communicate this name to your support representative."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "Could not create temporary directory."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (version %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "plugin %s does not validate, skipping"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "plugin %s skipped (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "plugin %s is inactive (use -e or -o to enable)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "plugin %s not specified in --only-plugins list"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "plugin %s does not install, skipping"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "processing options from plugin: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "no valid plugins found"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "The following plugins are currently enabled:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "No plugin enabled."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "The following plugins are currently disabled:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "The following plugin options are available:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "No plugin options available."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport requires root permissions to run."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "no valid plugins were enabled"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Press ENTER to continue, or CTRL-C to quit.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "One or more plugins have detected a problem in your configuration."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "Please review the following messages:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Are you sure you would like to continue (y/n) ? "
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 00000000..175c6c19
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,192 @@
+# translation of es.po to Español
+# Spanish translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Manuel Ospina <mospina@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: es\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-07 09:08+1000\n"
+"Last-Translator: Manuel Ospina <mospina@redhat.com>\n"
+"Language-Team: Español <en@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Por favor introduzca la inicial de su primer nombre y su apellido [%s]:"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Por favor introduzca el número de caso para el cual está generando este reporte:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Creando un archivo comprimido..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Encriptando el archivo..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Hubo un problema mientras se encriptaba el reporte."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Su reporte sos ha sido generado y guardado en:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "El md5sum es:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Por favor envíe este archivo a su representante de soporte."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "No se puede cargar a la URL especificada."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Hubo un problema al cargar su reporte al equipo de asistencia de Red Hat"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Su reporte ha sido cargado satisfactoriamente a los servidores ftp e Red Hat con el nombre:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Por favor comunique este nombre a su representante de soporte."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "No se pudo crear un directorio temporal."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (versión %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "no se validó el plugin %s, ignorándolo"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "plugin %s ignorado (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "plugin %s no está activo (use -e o -o para activarlo)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "plugin %s no está especificado en la lista --only-plugins"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "no se instaló el plugin %s, ignorándolo"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "procesando las opciones del plugin: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "no se encontró un plugin válido"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "Los siguientes plugins están activados actualmente:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "Ningún plugin está activado."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "Los siguientes plugins no están activados:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "Las siguientes opciones del plugin están disponibles:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "No hay opciones de plugin disponibles."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport requiere privilegios de root para ser ejecutado."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "ningún plugin válido fue activado"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Esta utilidad recogerá alguna información detallada sobre el\n"
+"hardware y la configuración de su sistema Red Hat Enterprise Linux.\n"
+"La información es recolectada y un archivo es creado bajo /tmp.\n"
+"Éste puede ser enviado a su representante de soporte.\n"
+"Red Hat utilizará está información para diagnosticar el sistema\n"
+"únicamente y considerará esta información como confidencial.\n"
+"\n"
+"Este proceso tomará un rato para ser completado.\n"
+"Ningún cambio se realizará en su sistema.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Presione INTRO para continuar o CTRL-C para salir.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Uno o más plugins han detectado un problema en su configuración."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "Por favor revise los siguientes mensajes:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "¿Está seguro que desea continuar (s/n)?"
+
+#: sosreport:672
+msgid "Y"
+msgstr "S"
+
+#: sosreport:672
+msgid "y"
+msgstr "s"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 00000000..616eb47d
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,177 @@
+# Estonian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/eu_ES.po b/po/eu_ES.po
new file mode 100644
index 00000000..79661522
--- /dev/null
+++ b/po/eu_ES.po
@@ -0,0 +1,176 @@
+# Basque translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/fa.po b/po/fa.po
new file mode 100644
index 00000000..b76962c2
--- /dev/null
+++ b/po/fa.po
@@ -0,0 +1,176 @@
+# Persian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 00000000..12038329
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,186 @@
+# Finnish translations for sos package.
+# Ville-Pekka Vainio <vpivaini@cs.helsinki.fi>, 2009
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-06-18 23:25+0300\n"
+"Last-Translator: Ville-Pekka Vainio <vpivaini@cs.helsinki.fi>\n"
+"Language-Team: Finnish <laatu@lokalisointi.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Syötä etunimesi ensimmäinen kirjain ja sukunimesi [%s]:"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Syötä tapausnumero, jota varten olet tekemässä tätä raporttia:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Luodaan pakattua arkistoa..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Salataan arkistoa..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Raportin salaamisessa oli ongelma."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Sosreport-raportti on luotu ja tallennettu sijaintiin:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "Md5sum-tarkistussumma on:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Lähetä tämä tiedosto käyttötukeen."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Annettuun osoitteeseen ei voida lähettää."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Raportin lähettämisessä Red Hatin käyttötukeen oli ongelmia."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Raportin lähetys Red Hatin ftp-palvelimelle onnistui, käytettiin nimeä:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Kerro tämä nimi käyttötukeen."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Väliaikaista hakemistoa ei voitu luoda."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (versio %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "liitännäinen %s on virheellinen, ohitetaan"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "liitännäinen %s ohitettiin (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "liitännäinen %s ei ole käytössä (ota käyttöön valitsimella -e tai -o)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "liitännäinen %s ei ole --only-plugins-luettelossa"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "liitännäinen %s ei asennu, ohitetaan"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "käsitellään liitännäisen %s asetukset"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "kelvollisia liitännäisiä ei löytynyt"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Seuraavat liitännäiset ovat tällä hetkellä käytössä:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Yhtään liitännäistä ei ole käytössä."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Seuraavat liitännäiset ovat tällä hetkellä poissa käytöstä:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Seuraavat liitännäisen asetukset ovat käytettävissä:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Liitännäisellä ei ole asetuksia."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreportin käyttö vaatii root-oikeudet."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "yhtään kelvollista liitännäistä ei ole otettu käyttöön"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Tämä ohjelma kerää yksityiskohtaisia tietoja Red Hat\n"
+"Enterprise Linux -järjestelmän laitteistosta ja asetuksista.\n"
+"Tiedot kerätään arkistoon, joka tallennetaan /tmp-hakemistoon.\n"
+"Tämä arkisto voidaan lähettää käyttötukeen.\n"
+"Red Hat käyttää tätä tietoa vain vianetsintätarkoituksiin ja\n"
+"tietoa käsitellään luottamuksellisesti.\n"
+"\n"
+"Tämä toiminto voi kestää jonkin aikaa.\n"
+"Järjestelmään ei tehdä muutoksia.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Paina ENTER jatkaaksesi, CTRL-C lopettaaksesi.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Yksi tai useampi liitännäinen on huomannut ongelman järjestelmässä."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Tarkista seuraavat viestit:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Haluatko jatkaa (k/e)?"
+
+#: sosreport:686
+msgid "Y"
+msgstr "K"
+
+#: sosreport:686
+msgid "y"
+msgstr "k"
+
+#: sosreport:689
+msgid "N"
+msgstr "E"
+
+#: sosreport:689
+msgid "n"
+msgstr "e"
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 00000000..752355ab
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,192 @@
+# translation of fr.po to French
+# French translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Decroux Fabien <fdecroux@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: fr\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-08 10:11+1000\n"
+"Last-Translator: Decroux Fabien <fdecroux@redhat.com>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Veuillez saisir votre premier prénom (si vous en avez plusieurs) et votre nom [%s] :"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Veuillez saisir le numéro de cas pour lequel vous générez ce rapport :"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Création d'une archive compressée..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Cryptage de l'archive..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Une erreur s'est produire lors du cryptage de votre rapport."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Votre rapport sos a été généré et enregistré dans :\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "Le md5sum est :"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Veuillez envoyer ce fichier à votre représentant de support."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Impossible de le télécharger vers l'URL spécifié."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Une erreur s'est produite lors du téléchargement de votre rapport vers le support Red Hat."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Votre rapport a été téléchargé avec succès vers le serveur ftp de Red Hat avec le nom :"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Veuillez communiquer ce nom à votre représentant de support."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "Impossible de créer un répertoire temporaire."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (version %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "le plugin %s n'a pas été validé, ignoré"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "le plugin %s a été ignoré (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "le plugin %s est inactif (utilisez -e ou -o pour l'activer)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "le plugin %s n'a pas été spécifié dans la liste --only-plugins"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "le plugin %s ne s'installe pas, ignoré"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "traitement des options du plugin : %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "aucun plugin valide n'a été trouvé"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "Les plugins suivants sont activés :"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "Aucun plugin n'est activé."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "Les plugins suivants sont désactivés :"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "Les options du plugin suivant sont disponibles :"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "Aucune option n'est disponible pour ce plugin."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport requiert des permissions root pour démarrer."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "aucun plugin valide n'a été activé"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Cet utilitaire collectera des informations détaillées à propos du\n"
+"matériel et de l'installation de votre système Red Hat Enterprise Linux.\n"
+"Les informations sont collectées et une archive est créée sous /tmp.\n"
+"Vous pouvez l'envoyer à un représentant de support.\n"
+"Red Hat utilisera ces informations à des fins de diagnostique SEULEMENT\n"
+"et elles seront considérées commes des informations confidentielles.\n"
+"\n"
+"Ce processus peut prendre un certain temps avant d'être terminé.\n"
+"Aucun changement ne sera effectué sur votre système.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Appuyez sur Entrée pour continuer ou CTRL-C pour quitter.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Un ou plusieurs plugins ont détecté un problème dans votre configuration."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "Veuillez revoir les messages suivants :"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Êtes-vous sûr de vouloir continuer (y/n) ?"
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 00000000..895450bd
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,176 @@
+# Galician translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/gu.po b/po/gu.po
new file mode 100644
index 00000000..cb6bf9b4
--- /dev/null
+++ b/po/gu.po
@@ -0,0 +1,192 @@
+# translation of gu.po to Gujarati
+# Gujarati translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Ankit Patel <ankit@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: gu\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-06 16:53+0530\n"
+"Last-Translator: Ankit Patel <ankit@redhat.com>\n"
+"Language-Team: Gujarati <fedora-trans-gu@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "મહેરબાની કરીને તમારું પ્રથમ અને છેલ્લું નામ દાખલ કરો [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "મહેરબાની કરીને તમારો કેસ નંબર દાખલ કરો કે જેમાંથી તમે આ અહેવાલ બનાવી રહ્યા છો: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "સંકુચિત પેટી બનાવી રહ્યા છીએ..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "પેટી એનક્રિપ્ટ કરી રહ્યા છીએ..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "તમારો અહેવાલ એનક્રિપ્ટ કરવામાં સમસ્યા હતી."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"તમારો sosreport બની ગયેલ છે અને આમાં સંગ્રહાયેલ છે:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum આ છે: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "મહેરબાની કરીને આ ફાઈલ તમારા આધાર રજૂઆતકને મોકલો."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "સ્પષ્ટ કરેલ URL અપલોડ કરી શકતા નથી."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "તમારા અહેવાલને Red Hat આધારમાં અપલોડ કરવામાં સમસ્યા હતી."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "તમારો અહેવાલ Red Hat ના ftp સર્વરમાં આ નામ સાથે સફળતાપૂર્વક અપલોડ થયો હતો:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "મહેરબાની કરીને આ નામ તમારા આધાર રજૂઆતકને મોકલો."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "કામચલાઉ ડિરેક્ટરી બનાવી શક્યા નહિં."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (આવૃત્તિ %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "પ્લગઈન %s માન્ય થઈ શક્યું નહિં, અવગણી રહ્યા છીએ"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "પ્લગઈન %s છોડી દેવામાં આવ્યું (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "પ્લગઈન %s અસક્રિય છે (સક્રિય કરવા માટે -e અથવા -o વાપરો)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "પ્લગઈન %s --only-plugins યાદીમાં સ્પષ્ટ થયેલ નથી"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "પ્લગઈન %s સ્થાપિત થતું નથી, અવગણી રહ્યા છીએ"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "આ પ્લગઈનમાંથી પ્રક્રિયાકરણ વિકલ્પો: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "કોઈ માન્ય પ્લગઈનો મળ્યા નહિં"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "નીચેના પ્લગઈનો વર્તમાનમાં સક્રિય કરવામાં આવેલ છે:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "કોઈ પ્લગઈન સક્રિય કરેલ નથી."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "નીચેના પ્લગઈનો વર્તમાનમાં નિષ્ક્રિય કરેલ છે:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "નીચેના પ્લગઈન વિકલ્પો ઉપલબ્ધ છે:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "કોઈ પ્લગઈન વિકલ્પો ઉપલબ્ધ નથી."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport ને ચલાવવા માટે રુટ પરવાનગીઓ જરૂરી છે."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "કોઈ માન્ય પ્લગઈનો સક્રિય કરેલ હતા નહિં"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"આ ઉપયોગીતા હાર્ડવેર વિશે અમુક વિગતવાર જાણકારી\n"
+"ભેગી કરશે અને તમારી Red Hat Enterprise Linux સિસ્ટમ સુયોજીત કરશે.\n"
+"જાણકારી ભેગી થયેલ છે અને પેટી એ /tmp ડિરેક્ટરી હેઠળ પેકેજ\n"
+"થયેલ છે, કે જેને તમે આધાર રજૂઆતકને મોકલી શકો છો.\n"
+"Red Hat આ જાણકારીનો માત્ર તપાસ હેતુઓ માટે જ ઉપયોગ કરશે\n"
+"અને તે ખાનગી જાણકારી તરીકે ધ્યાનમાં લેવામાં આવશે.\n"
+"\n"
+"આ પ્રક્રિયા સમાપ્ત થવા માટે થોડો સમય લેશે.\n"
+"તમારી સિસ્ટમમાં કોઈ ફેરફારો કરવામાં આવશે નહિં.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "ચાલુ રાખવા માટે ENTER દબાવો, અથવા બંધ કરવા માટે CTRL-C દબાવો.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "એક અથવા વધુ પ્લગઈનોને તમારા રૂપરેખાંકનમાં સમસ્યા મળી આવી."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "મહેરબાની કરીને નીચેના સંદેશાઓ રીવ્યુ કરો:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "શું તમે ખરેખર ચાલુ રાખવા ઈચ્છો છો (y/n) ? "
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/he.po b/po/he.po
new file mode 100644
index 00000000..083dc7b4
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,177 @@
+# Hebrew translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/hi.po b/po/hi.po
new file mode 100644
index 00000000..8ce09410
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,192 @@
+# translation of hi.po to Hindi
+# Hindi translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Rajesh Ranjan <rranjan@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hi\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-06 17:17+0530\n"
+"Last-Translator: Rajesh Ranjan <rranjan@redhat.com>\n"
+"Language-Team: Hindi <hindi.sf.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "कृपया अपना आरंभिक व अंतिम नाम [%s] दें: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "कृपया केस संख्या दें जो आप इस रिपोर्ट के लिए बना रहे हैं: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "संकुचित अभिलेख बना रहा है..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "अभिलेख गोपित कर रहा है..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "आपके रिपोर्ट के गोपन में समस्या थी."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"आपका sosreport को यहां उत्पन्न व सहेजा गया है:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum है: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "कृपया इस फाइल को अपने समर्थन प्रतिनिधि को भेजें."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "निर्दिष्ट URL अपलोड नहीं कर सकता है."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "आपके रिपोर्ट को Red Hat समर्थन में अपलोड करने में समस्या थी."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "आपका रिपोर्ट Red Hat के ftp सर्वर में नाम के साथ सफलतापूर्वक अपलोड किया गया:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "कृपया इस नाम का अपने समर्थन प्रतिनिधि से संचार करें."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "अस्थायी निर्देशिका नहीं बना सका."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (संस्करण %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "प्लगिन %s वैध नहीं कर सकता है, छोड़ रहा है"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "प्लगिन %s छोड़ा गया (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "प्लगिन %s निष्क्रिय है (-e या -o को सक्रिय करने के लिए प्रयोग करें)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "%s प्लगिन --only-plugins सूची में निर्दिष्ट नहीं है"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "प्लगिन %s अधिष्ठापित नहीं कर रहा है, छोड़ रहा है"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "प्लगिन से विकल्प की प्रक्रिया कर रहा है: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "कोई वैध प्लगिन नहीं मिला"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "निम्नलिखित प्लगिन अभी सक्रिय है:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "कोई प्लगिन सक्रिय नहीं है."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "निम्न प्लगिन अभी निष्क्रिय है:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "निम्नलिखित प्लगिन विकल्प उपलब्ध है:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "कोई प्लगिन विकल्प उपलब्ध नहीं."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport के लिए रूट अनुमति को चलाने की जरूरत है."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "कोई वैध प्लगिन सक्रिय नहीं था"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"यह उपयोगिता कुछ विस्तृत सूचना को जमा करेगा\n"
+"हार्डवेयर और आपके Red Hat Enterprise Linux सिस्टम के बारे में.\n"
+"सूचना जमा की जाती है और एक अभिलेख को पैकेज किया जाता है\n"
+"/tmp के अंदर, जिसे आप समर्थन प्रतिनिधि के पास भेज सकते हैं.\n"
+"Red Hat इस सूचना को निदानार्थ सिर्फ प्रयोग करेगा\n"
+"और इसे गोपनीय सूचना माना जायेगा.\n"
+"\n"
+"यह प्रक्रिया पूरा करने के लिए कुछ समय लेगा.\n"
+"कोई बदलाव आपके सिस्टम में नहीं बनाया जायेगा.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "ENTER को जारी रखने के लिए दबाएं, या CTRL-C छोड़ने के लिए.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "एक या अधिक प्लगिन ने आपके विन्यास में समस्या पाया है."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "कृपया निम्नलिखित संदेश की समीक्षा करें:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "क्या आप निश्चित हैं कि आप जारी रखना चाहते हैं (y/n) ? "
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 00000000..cce1263a
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,178 @@
+# Croatian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 00000000..09e6e184
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,191 @@
+# Hungarian translations for sos package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos trunk\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-03-23 07:40+0100\n"
+"Last-Translator: Sulyok Péter <peti@fedoraproject.org>\n"
+"Language-Team: Hungarian <fedora-trans-hu@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Kérem adja meg utónevét és vezetéknevét [%s]:·"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Kérem adja meg az eset számát, amire e jelentést készíti: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Tömörített archívum teremtése…"
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Archívum titkosítása…"
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "A jelentést titkosítván hiba történt."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"A sos jelentés elkészült ide mentve:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "Az md5sum: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Kérem küldje e fájlt a támogatás képviselőjének."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Nem lehet az URL-re feltölteni."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+"A jelentést sikerült a Red Hat FTP szolgálójára feltölteni a következő néven:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Kérem e nevet adja meg a támogatás képviselőjének."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Nem sikerült ideiglenes mappát teremteni."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport·(%s változat)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "%s dugasz érvénytelen, kihagyás"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "%s dugasz kihagyva (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "%s dugasz kikapcsolva (-e vagy -o kapcsolóval engedélyezheti)"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "%s dugasz nincs megadva --only-plugins listában"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "%s dugasz nem települ, kihagyás"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "%s dugasz opcióinak feldolgozása"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "nincs érvényes dugasz"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "A következő dugaszokat engedélyezték:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Nincs engedélyezett dugasz."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "A következő dugaszokat tiltották le:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "A következő dugasz opciók érhetők el:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Nincs elérhető dugasz opció."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreportnak root jogsi kell a futáshoz."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "nem engedélyeztek érvényes dugaszt"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"E segédprogram részletes adatokat gyűjt a hardverről és a \n"
+"Red·Hat·Enterprise·Linux rendszer beállításáról.\n"
+"Az adatokat a /tmp mappába gyűjtik és az archíválják, amit \n"
+"elküldhet a támogatás képviselőjének.\n"
+"Red Hat CSAK diagnosztikai célból használja ezen adatokat, \n"
+"és bizalmasnak tekinti azokat.\n"
+"\n"
+"E folyamat befejezése eltarthat egy ideig.\n"
+"A rendszert nem változtatja meg.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Nyomjon ENTER-t a folytatáshoz, vagy CTRL-C-t a kilépéshez.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Egy vagy több dugasz bajt érzékelt a konfigurációban."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Kérem nézze át a következő üzeneteket:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Biztosan folytatni akarja? (i/n) "
+
+#: sosreport:686
+msgid "Y"
+msgstr "I"
+
+#: sosreport:686
+msgid "y"
+msgstr "i"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/hy.po b/po/hy.po
new file mode 100644
index 00000000..05b68c82
--- /dev/null
+++ b/po/hy.po
@@ -0,0 +1,176 @@
+# Armenian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 00000000..616b5d6e
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,176 @@
+# Indonesian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/ilo.po b/po/ilo.po
new file mode 100644
index 00000000..fd19366a
--- /dev/null
+++ b/po/ilo.po
@@ -0,0 +1,176 @@
+# Language ilo translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/is.po b/po/is.po
new file mode 100644
index 00000000..4402f77d
--- /dev/null
+++ b/po/is.po
@@ -0,0 +1,176 @@
+# Icelandic translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 00000000..7e6ee4c2
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,189 @@
+# translation of it.po to
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: it\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-06 15:02+1000\n"
+"Last-Translator: \n"
+"Language-Team: <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Inserire l'iniziale del nome e il cognome [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Inserire il numero del caso a cui si riferisce questo report: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Creazione di un archivio compresso in corso..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Cifratura archivio in corso..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Si è verificato un problema durante la cifratura di questo report."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Il sosreport é stato creato e salvato in:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "L'md5sum é: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Si prega di inviare questo file al rappresentante del supporto tecnico."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Impossibile caricare sull'URL specificato."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Si è verificato un problema durante il caricamento del vostro report su Red Hat support."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Il vostro report è stato caricato con successo sul server ftp di Red Hat con il nome:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Si prega di inviare questo nome al rappresentante del supporto tecnico."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "Impossibile creare le directory temporanea."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (versione %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "la plugin %s non é valida e verrà ignorata"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "plugin %s disattivata (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "plugin %s non é attiva (utilizzare -e o -o per riattivarla)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "plugin %s non specificata nella lista --only-plugins"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "non é stato possibile installare la plugin %s"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "sto processando le opzioni della plugin: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "nessuna plugin valida é stata trovata"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "Le seguenti plugin sono attive:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "Nessuna plugin abilitata."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "Le seguenti plugin sono disattivate:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "Sono disponibili le seguenti opzioni per la plugin:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "Nessuna opzione disponibile per le plugins attive."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport necessita dei permessi di root"
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "non é stata attivata nessuna plugin valida"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Questa utilità raccoglierà alcune informazioni dettagliate\n"
+"sull'hardware e sulla impostazione del vostro sistema Red Hat\n"
+"Enterprise Linux. Queste informazioni verranno archiviate in\n"
+"/tmp, e possono essere inviate ad un rappresentante del supporto tecnico.\n"
+"Red Hat utilizzerà questi dati ESCLUSIVAMENTE per scopi diagnostici e\n"
+"verranno considerate informazioni riservate\n"
+"\n"
+"Questo processo potrebbe durare alcuni minuti.\n"
+"Non verrà apportata alcuna modifica al vostro sistema.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Premere INVIO per continuare, o CTRL-C per usicre.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Una o più plugin hanno causato problemi nella configurazione del sistema:"
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "Si prega di verificare i seguenti messaggi:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "E' sicuro di voler continuare (s/n) ? "
+
+#: sosreport:672
+msgid "Y"
+msgstr "S"
+
+#: sosreport:672
+msgid "y"
+msgstr "s"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 00000000..c8bfc5c3
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,191 @@
+# translation of ja.po to Japanese
+# Japanese translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Kiyoto Hashida <khashida@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ja\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-25 15:42+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida@redhat.com>\n"
+"Language-Team: Japanese <jp@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "名前のイニシャルと姓を記入してください [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "作成しているレポートのケース番号を記入してください :"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "アーカイブを圧縮しています..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "アーカイブを暗号化しています..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "このレポートの暗号化に問題がありました。"
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"sos レポートが生成されて、以下の場所に保存されました:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum は :"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "このファイルを担当のサポート代表者に送信してください。"
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "指定された URL にアップロードできません。"
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "レポートを Red Hat サポートにアップロードするのに問題がありました。"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "レポートは以下の名前で正常に Red Hat の ftp サーバーにアップロードされました:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "担当のサポート代表者とはこの名前を使用して通信してください。"
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "一時ディレクトリを作成できませんでした。"
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sos レポート (バージョン %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "プラグイン %s は認証できません、スキップします"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "プラグイン %s スキップ済み (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "プラグイン %s は休止中です。(-e か -o を使用して有効にします)"
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "プラグイン %s は --only-plugins リストで指定されていません。"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "プラグイン %s は インストールできません。スキップします"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "プラグインからのオプションをプロセスしています: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "有効なプラグインは見付かりません"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "以下のプラグインが現在有効になっています:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "有効なプラグインはありません"
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "以下のプラグインは現在無効になっています:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "以下のプラグインオプションが使用できます:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "プラグインオプションは使用できません。"
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sos レポートは実行するのに root 権限が必要です。"
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "有効な正当プラグインはありませんでした"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"このユーティリティは、ご使用のハードウェアと Red Hat Enterprise Linux システムの \n"
+"セットアップに関する詳細情報を収集します。情報は収集されて、\n "
+"そのアーカイブが /tmp にパッケージされますので、 それをサポート代表者に \n "
+"送信することが出来ます。Red Hat では、この情報を分析の為にのみ使用し、\n "
+"これは個人の内密情報として扱われます。\n"
+"\n"
+"このプロセスは完了するまでしばらく時間がかかるかも知れません。\n "
+"ご使用のシステムは変更されません。\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "ENTER を押して継続するか、又は CTRL-C で終了します。\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "1つ、又は複数のプラグインが現在の設定に問題を検知しています。"
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "以下のメッセージを確認してください:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "本当に継続したいですか (y/n) ? "
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/ka.po b/po/ka.po
new file mode 100644
index 00000000..81661a75
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,176 @@
+# Georgian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/kn.po b/po/kn.po
new file mode 100644
index 00000000..24dc927a
--- /dev/null
+++ b/po/kn.po
@@ -0,0 +1,192 @@
+# translation of sos.trunk.kn.po to Kannada
+# Kannada translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Shankar Prasad <svenkate@redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: sos.trunk.kn\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-03 23:40+0530\n"
+"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
+"Language-Team: Kannada <en@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "ದಯವಿಟ್ಟು ನಿಮ್ಮ ಆರಂಭದ ಇನಿಶಿಯಲ್ ಹಾಗು ಕೊನೆಯ ಹೆಸರನ್ನು ನಮೂದಿಸಿ [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "ನೀವು ಯಾವ ಸನ್ನಿವೇಶಕ್ಕಾಗಿ ವರದಿಯನ್ನು ಸಿದ್ಧಪಡಿಸಲು ಅದರ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "ಸಂಕುಚನಗೊಳಿಸಲಾದ ಆರ್ಕೈವನ್ನು ನಿರ್ಮಿಸಲಾಗುತ್ತಿದೆ..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "ಆರ್ಕೈವ್ ಅನ್ನು ಗೂಢಲಿಪೀಕರಿಸಲಾಗುತ್ತಿದೆ..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "ನಿಮ್ಮ ವರದಿಯನ್ನು ಗೂಢಲಿಪೀಕರಿಸುವಲ್ಲಿ ಒಂದು ದೋಷ ಕಂಡುಬಂದಿದೆ."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"sosreport ಅನ್ನು ಸಿದ್ಧಪಡಿಸಿದೆ ಹಾಗು ಅದನ್ನು ಇಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum ಇದಾಗಿದೆ: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "ದಯವಿಟ್ಟು ಈ ಕಡತವನ್ನು ಬೆಂಬಲ ನೀಡುವ ನಿಮ್ಮ ಪ್ರತಿನಿಧಿಗೆ ಕಳುಹಿಸಿ."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "ಸೂಚಿಸಲಾದ URL ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "ನಿಮ್ಮ ವರದಿಯನ್ನು Red Hat ಬೆಂಬಲದ ಸ್ಥಳಕ್ಕೆ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಒಂದು ತೊಂದರೆ ಉಂಟಾಗಿದೆ."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "ನಿಮ್ಮ ವರದಿಯನ್ನು ಈ ಹೆಸರಿನೊಂದಿಗೆ Red Hat ನ ftp ಪರಿಚಾರಕಕ್ಕೆ ಯಶಸ್ವಿಯಾಗಿ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "ದಯವಿಟ್ಟು ಈ ಹೆಸರನ್ನು ನಿಮ್ಮ ಬೆಂಬಲ ನೀಡುವ ಪ್ರತಿನಿಧಿಗೆ ತಿಳಿಸಿ."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "ತಾತ್ಕಾಲಿಕ ಕೋಶವನ್ನು ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (ಆವೃತ್ತಿ %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "ಪ್ಲಗ್‌ಇನ್ %s ಮಾನ್ಯಗೊಂಡಿಲ್ಲ, ಉಪೇಕ್ಷಿಸಲಾಗುತ್ತಿದೆ"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "ಪ್ಲಗ್‌ಇನ್ %s ಅನ್ನು ಉಪೇಕ್ಷಿಸಲಾಗಿದೆ (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "ಪ್ಲಗ್‌ಇನ್ %s ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ (ಶಕ್ತಗೊಳಿಸಲು -e ಅಥವ -o ಅನ್ನು ಬಳಸಿ)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "ಪ್ಲಗ್‌ಇನ್ %s ಅನ್ನು --only-plugins ಪಟ್ಟಿಯಲ್ಲಿ ಸೂಚಿಸಲಾಗಿಲ್ಲ"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "ಪ್ಲಗ್‌ಇನ್ %s ಅನುಸ್ಥಾಪನೆಗೊಂಡಿಲ್ಲ, ಉಪೇಕ್ಷಿಸಲಾಗುತ್ತಿದೆ"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "ಪ್ಲಗ್‌ಇನ್‌ನಿಂದ ಸಂಸ್ಕರಿಸುವ ಆಯ್ಕೆ: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "ಮಾನ್ಯವಾದ ಯಾವುದೆ ಪ್ಲಗ್‌ಇನ್‌ಗಳಿಲ್ಲ"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "ಈ ಕೆಳಗಿನ ಪ್ಲಗ್‌ಇನ್‌ಗಳನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "ಯಾವುದೆ ಪ್ಲಗ್‌ಇನ್ ಅನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿಲ್ಲ."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "ಈ ಕೆಳಗಿನ ಪ್ಲಗ್‌ಇನ್‌ಗಳನ್ನು ಅಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "ಈ ಕೆಳಗಿನ ಪ್ಲಗ್‌ಇನ್‌ ಆಯ್ಕೆಗಳು ಲಭ್ಯವಿವೆ:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "ಯಾವುದೆ ಪ್ಲಗ್‌ಇನ್‌ ಆಯ್ಕೆಗಳು ಲಭ್ಯವಿಲ್ಲ."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport ಅನ್ನು ಚಲಾಯಿಸಲು ನಿರ್ವಾಹಕನ (ರೂಟ್) ಅನುಮತಿಯ ಅಗತ್ಯವಿರುತ್ತದೆ."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "ಮಾನ್ಯವಾದ ಯಾವುದೆ ಪ್ಲಗ್‌ಇನ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"ಈ ಸವಲತ್ತು ನಿಮ್ಮಲ್ಲಿರುವ ಗಣಕದ ಯಂತ್ರಾಂಶದ ಬಗೆಗಿನ ವಿಸ್ತಾರವಾದ ಕೆಲವು ಮಾಹಿತಿಯನ್ನು\n"
+"ಸಂಗ್ರಹಿಸಿ ನಂತರ ನಿಮ್ಮ Red Hat Enterprise Linux ವ್ಯವಸ್ಥೆಯನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತದೆ.\n"
+"ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಿದ ನಂತರ ಅದನ್ನು ಆರ್ಕೈವ್ ಮಾಡಿ \n"
+"/tmp ಯಲ್ಲಿ ಉಳಿಸಲಾಗುತ್ತದೆ, ಹಾಗು ಇದನ್ನು ಬೆಂಬಲ ಪ್ರತಿನಿಧಿಗೆ ಕಳುಹಿಸಬಹುದು.\n"
+"Red Hat ಇದನ್ನು ಕೇವಲ ದೋಷ ಪತ್ತೆ ಹಚ್ಚಲು ಮಾತ್ರವೆ ಬಳಸಲಾಗುತ್ತದೆ\n"
+"ಹಾಗು ಇದನ್ನು ಗೌಪ್ಯವಾದ ಮಾಹಿತಿ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ.\n"
+"\n"
+"ಈ ಪ್ರಕ್ರಿಯೆಯು ಮುಗಿಯಲು ಒಂದಿಷ್ಟು ಸಮಯ ತೆಗೆದು ಕೊಳ್ಳುತ್ತದೆ.\n"
+"ನಿಮ್ಮ ಗಣಕಕ್ಕೆ ಯಾವುದೆ ಬದಲಾವಣೆ ಮಾಡಲಾಗುವುದಿಲ್ಲ.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "ಮುಂದುವರೆಯಲು ENTER ಅನ್ನು ಒತ್ತಿ, ಅಥವ ನಿರ್ಗಮಿಸಲು CTRL-C ಅನ್ನು ಒತ್ತಿ.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "ನಿಮ್ಮ ಸಂರಚನೆಯಲ್ಲಿ ಒಂದು ದೋಷವಿದೆಯೆಂದು ಒಂದು ಅಥವ ಹೆಚ್ಚಿನ ಪ್ಲಗ್‌ಇನ್‌ಗಳು ಕಂಡುಹಿಡಿದಿವೆ."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "ದಯವಿಟ್ಟು ಈ ಕೆಳಗಿನ ಸಂದೇಶಗಳನ್ನು ಅವಲೋಕಿಸಿ:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "ನೀವು ಖಚಿತವಾಗಿಯೂ ಮುಂದುವರೆಯಲು ಬಯಸುತ್ತೀರೆ (y/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/ko.po b/po/ko.po
new file mode 100644
index 00000000..e0d39239
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,191 @@
+# translation of ko.po to
+# Korean translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ko\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-07 09:56+1000\n"
+"Last-Translator: \n"
+"Language-Team: <ko@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "영문 이름의 첫 글자와 성을 입력하십시오[%s]:"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "이 리포트에 해당하는 문제 번호를 입력하십시오:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "압축 아카이브를 생성 중입니다..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "아카이브를 암호화하고 있습니다..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "리포트를 암호화하는 데 문제가 발생했습니다."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"sos 리포트가 생성되었으며 아래에 저장되었습니다:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "이 파일을 지원 담당자에게 보내주시기 바랍니다."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "지정된 URL에서 업로드할 수 없습니다."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "리포트를 Red Hat 지원 센터로 업로드하는 데 문제가 발생했습니다."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "리포트가 다음과 같은 이름으로 Red Hat FTP 서버에 성공적으로 업로드되었습니다:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "지원 담당자와 연락할 때 이 이름을 사용하시기 바랍니다."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "임시 디렉토리를 생성할 수 없습니다."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sos 리포트 (버전 %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "%s 플러그인이 유효하지 않아 생략합니다."
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "%s 플러그인을 생략합니다. (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "%s 플러그인이 비활성화되어 있습니다. (-e 또는 -o 옵션으로 활성화할 수 있습니다.)"
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "%s 플러그인은 --only-plugins 목록에 지정되어 있지 않습니다."
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "%s 플러그인이 설치되지 않아 생략합니다."
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "%s 플러그인 옵션을 처리 중입니다."
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "사용 가능한 플러그인이 없습니다."
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "현재 다음과 같은 플러그인이 활성화되어 있습니다:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "활성화된 플러그인이 없습니다:"
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "현재 다음과 같은 플러그인이 비활성화되어 있습니다:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "다음과 같은 플러그인 옵션을 사용할 수 있습니다:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "사용 가능한 플러그인 옵션이 없습니다:"
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sos 리포트를 실행하려면 루트 권한이 필요합니다."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "활성화된 사용 가능한 플러그인이 없습니다."
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"이 유틸리티는 Red Hat Enterprise Linux 시스템의 하드웨어와 \n"
+"시스템 설정 사항에 대한 상세 정보를 수집하게 됩니다. 수집된 \n"
+"정보는 지원 담당자에게 보낼 수 있도록 /tmp 디렉토리 안에 \n"
+"아카이브로 저장됩니다. "
+"Red Hat은 이 정보를 문제 해결 목적으로만 사용하며 기밀 정보로 \n"
+"취급할 것입니다. \n"
+"\n"
+"이 과정을 모두 완료하는 데 약간의 시간이 소요될 수 있으며, \n"
+"시스템에 아무런 영향을 주지 않습니다. \n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "계속하려면 ENTER를 입력하고, 종료하려면 CTRL-C를 입력하십시오.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "하나 이상의 플러그인이 사용자 설정에서 문제를 발견했습니다."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "다음 메시지를 다시 살펴보시기 바랍니다:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "계속 진행하시겠습니까? (y/n)"
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/ku.po b/po/ku.po
new file mode 100644
index 00000000..01927c3d
--- /dev/null
+++ b/po/ku.po
@@ -0,0 +1,176 @@
+# Kurdish translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/lo.po b/po/lo.po
new file mode 100644
index 00000000..1814dec5
--- /dev/null
+++ b/po/lo.po
@@ -0,0 +1,176 @@
+# Laotian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/lt.po b/po/lt.po
new file mode 100644
index 00000000..865a1c24
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,178 @@
+# Lithuanian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/lv.po b/po/lv.po
new file mode 100644
index 00000000..1dca496c
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,178 @@
+# Latvian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
+"2);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/mk.po b/po/mk.po
new file mode 100644
index 00000000..93a9073f
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +1,176 @@
+# Macedonian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/ml.po b/po/ml.po
new file mode 100644
index 00000000..e570171d
--- /dev/null
+++ b/po/ml.po
@@ -0,0 +1,191 @@
+# translation of ml.po to Malayalam
+# Malayalam translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Ani Peter <apeter@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ml\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-06 16:05+0530\n"
+"Last-Translator: Ani Peter <apeter@redhat.com>\n"
+"Language-Team: Malayalam\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "ദയവായി നിങ്ങളുടെ ആദ്യത്തെ ഇനീഷ്യലും അവസാനത്തെ പേരും നല്‍കുക [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "ദയവായി ഈ റിപ്പോറ്‍ട്ടിനുള്ള കേസ് നംബറ്‍ ഇവിടെ നല്‍കുക: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "കംപ്രസ്സ്ഡ് ആറ്‍ക്കൈവ് ഉണ്ടാക്കുന്നു..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "ആറ്‍ക്കൈവ് എന്‍ക്രിപ്റ്റ് ചെയ്യുന്നു..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് എന്‍ക്രിപ്റ്റ് ചെയ്യുന്നതില്‍ ഒരു പ്രശ്നം നേരിട്ടു."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"നിങ്ങളുടെ sosreport ഉണ്ടാക്കി സൂക്ഷിച്ചിരിക്കുന്നത് ഇവിടെയാണ്:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum താഴെ പറഞ്ഞിരിക്കുന്നു: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "നിങ്ങള്‍ക്ക് പിന്തുണ നല്‍കുന്നവറ്‍ക്ക് ഈ ഫയല്‍ അയയ്ക്കുക."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "നല്‍കിയിരിക്കുന്ന URL-ലേക്ക് ഫയല്‍ അപ്ലോഡ് ചെയ്യുവാന്‍ സാധ്യമായില്ല "
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Red Hat-ലേക്ക് നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് അയയ്ക്കുന്നതില്‍ ഏതോ പ്റശ്നം ഉണ്ടായിരിക്കുന്നു."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന പേരില്‍ നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് Red Hat-ന്റെ ftp സറ്‍വറില്‍ സൂക്ഷിച്ചിരിക്കുന്നു:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "നിങ്ങള്‍ക്ക് പിന്തുണ ലഭ്യമാക്കുന്നവറ്‍ക്ക് ഈ പേര് അയയ്ക്കുക."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "താല്‍ക്കാലിക ഡയറക്ടറി ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (%s ലക്കം)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "%s എന്നത് ശരിയായ പ്ളഗ്ഗിന്‍ അല്ല, വേണ്ടെന്ന് വയ്ക്കുന്നു"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "%s എന്ന പ്ളഗ്ഗിന്‍ വേണ്ടെന്ന് വച്ചിരിക്കുന്നു (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "%s എന്ന പ്ളഗ്ഗിന്‍ (സജ്ജമാക്കുന്നതിനായി -e അല്ലെങ്കില്‍ -o ഉപയോഗിക്കുക)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "--only-plugins എന്ന ലിസ്റ്റില്‍ %s പ്ളഗ്ഗിന്‍ ലഭ്യമല്ല"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "%s എന്ന പ്ളഗ്ഗിന്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല, ഉപേക്ഷിക്കുന്നു"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "പ്ളഗ്ഗിനുകളില്‍ നിന്നുള്ള ഉപാധികള്‍ പ്റവറ്‍ത്തിപ്പിക്കുന്നു: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "ശരിയായ പ്ളഗ്ഗിനുകള്‍ ലഭ്യമല്ല"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന പ്ളഗ്ഗിനുകള്‍ നിലവില്‍ സജീവമാണ്:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "ഒരു പ്ളഗ്ഗിനും സജ്ജമല്ല."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന പ്ളഗ്ഗിനുകള്‍ നിലവില്‍ നിറ്‍ജ്ജീവമാണ്:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന പ്ളഗ്ഗിന്‍ ഉപാധികള്‍ ലഭ്യമാണ്:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "പ്ളഗ്ഗിന്‍ ഉപാധികള്‍ ലഭ്യമല്ല."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport പ്റവറ്‍ത്തിപ്പിക്കുന്നതിനായി റൂട്ട് ആയിരിക്കണം."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "ശരിയായ പ്ളഗ്ഗിനുകള്‍ സജ്ജമല്ല"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"ഈ പ്റയോഗം നിങ്ങളുടെ Red Hat Enterprise Linux സിസ്റ്റവും ഹാറ്‍ഡ്‌വെയറും\n"
+"സംബന്ധിച്ചുള്ള വിശദ വിവരങ്ങള്‍ ശേഖരിക്കുന്നു.ശേഖരിച്ച വിവരങ്ങള്‍\n"
+"ഒരു ആറ്‍ക്കൈവ് ആയി /tmp എന്ന ഫോള്‍ഡറില്‍ സൂക്ഷിക്കുന്നു. നിങ്ങള്‍ക്കിത്\n"
+"പിന്തുണ ലഭ്യമാക്കുന്നവറ്‍ക്ക് അയയ്ക്കുവാന്‍ സാധിക്കുന്നു. പ്റശ്നങ്ങള്‍ അറിയുന്നതിനും\n"
+"പരിഹരിക്കുന്നതിനും മാത്റം Red Hat ഈ വിവരങ്ങള്‍ ഉപയോഗിക്കുന്നതാകുന്നു.\n"
+"ഇവ അതീവ രഹസ്യമായി സൂക്ഷിക്കപ്പെടുന്നു.\n"
+"\n"
+"ഈ പ്റക്റിയയ്ക്കായി കുറച്ച് സമയമെടുക്കുന്നു.\n"
+"നിങ്ങളുടെ സിസ്റ്റമില്‍ മാറ്റങ്ങള്‍ വരുത്തുന്നതല്ല.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "മുമ്പോട്ട് തുടരുന്നതിനായി ENTER അല്ലെങ്കില്‍ പുറത്ത് കടക്കുന്നതിനായി CTRL-C അമറ്‍ത്തുക.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "ഒന്നോ അതിലധികമോ പ്ളഗ്ഗിനുകള്‍ക്ക് നിങ്ങളുടെ ക്റമികരണത്തില്‍ തകരാറുണ്ട്."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന സന്ദേശങ്ങള്‍ ദയവായി വായിക്കുക: "
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "നിങ്ങള്‍ക്ക് തുടരണമെന്ന് ഉറപ്പാണോ?"
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/mr.po b/po/mr.po
new file mode 100644
index 00000000..ed6b36d0
--- /dev/null
+++ b/po/mr.po
@@ -0,0 +1,192 @@
+# translation of sos.trunk.po to Marathi
+# Marathi translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Sandeep Shedmake <sshedmak@redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: sos.trunk\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-04 10:58+0530\n"
+"Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n"
+"Language-Team: Marathi <fedora-trans-mr@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "कृपया तुमची प्रथम व शेवटचे नाव द्या [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "ही तपशील निर्माणसाठी कृपया केस क्रमांक द्या: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "आकुंचीत आर्काइव्ह निर्माण करत आहे..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "आर्काइव्ह एनक्रिप्ट करत आहे..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "तुमचे तपशील एनक्रिप्ट करतेवेळी अडचण."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"तुमचे sosreport निर्माण झाले व येथे साठले गेले आहे:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum याप्रमाणे आहे: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "तुमच्या समर्थीत प्रतिनीधीकरीता कृपया फाइल पाठवा."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "निर्देशीत URL अपलोड करण्यास अशक्य."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "तुमचा अहवाल Red Hat सपोर्टकडे पाठवतेवेळी अडचण आढळली."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "तुमचा अहवाल यशस्वीरित्या नावासह Red Hat च्या ftp सर्व्हरवर अपलोड केले:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "कृपया हे नाव तुमच्या सपोर्ट प्रतिनीधीला कळवा."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "तात्पुर्ती डिरेक्ट्री निर्माण करण्यास अशक्य."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (आवृत्ती %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "प्लगइन %s तपासले गेले नाही, वगळत आहे"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "प्लगइन %s वगळले (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "प्लगइन %s निष्क्रीय आहे (कार्यक्षम करण्यासाठी -e किंवा -o वापरा)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr " --only-plugins सूचीमध्ये प्लगइन %s निर्देशीत केले नाही"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "प्लगइन %s चे प्रतिष्ठापान अशक्य, वगळत आहे"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "प्लगइनपासून पर्याय विश्लेषीत करत आहे: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "वैध प्लगइनस् आढळले नाही"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "खालील प्लगइनस् सध्या कार्यक्षम केले आहेत:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "प्लगइन कार्यक्षम केले नाही."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "खालील प्लगइनस् सध्या अकार्यक्षम केले आहे:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "खालील प्लगइन पर्याय उपलब्ध आहे:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "प्लगइन पर्याय उपलब्ध नाही."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport ला चालवण्यासाठी रूट परवानगी आवश्यक आहे."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "वैध प्लगइनस् कार्यक्षम केले नाही"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"ही युटीलीटी हार्डवेअर विषयी काहिक तपशील माहिती\n"
+"गोळा करते व तुमची Red Hat Enterprise Linux प्रणली सेटअप करते.\n"
+"माहिती गोळा केली जाते व एक आर्काइव्ह\n"
+"/tmp अंतर्गत पॅकेज्ड् केले जाते, जे तुम्ही सपोर्ट प्रतिनीधीकडे पाठवू शकता.\n"
+"Red Hat या माहितीचा वापर फक्त विश्लेषण कारणास्तवच करेल\n"
+"व त्यांस गोपणीय म्हणून ठरवते.\n"
+"\n"
+"हे कार्य पूर्ण व्हायला काहिक वेळ जरूर लागेल.\n"
+"परंतु तुमच्या प्रणलीत कोणताही बदल केला जाणार नाही.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "पुढे जाण्यासाठी ENTER दाबा, किंवा बाहेर पडण्यासाठी CTRL-C दाबा.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "तुमच्या संयोजनात एक किंवा जास्त प्लगइनमध्ये अडचणी आढळल्यात."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "कृपया खालील संदेशचे पूनरावलोकन करा:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "तुम्हाला नक्की पुढे जायचे (y/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/ms.po b/po/ms.po
new file mode 100644
index 00000000..8dd0d654
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,176 @@
+# Malay translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/my.po b/po/my.po
new file mode 100644
index 00000000..c9795f0b
--- /dev/null
+++ b/po/my.po
@@ -0,0 +1,176 @@
+# Burmese translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 00000000..60eda445
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,177 @@
+# Norwegian Bokmal translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 00000000..4d5f2b03
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,190 @@
+# translation of sos.trunk-nl.po to Dutch
+# Copyright (C) YEAR ORGANIZATION
+#
+# R.E. van der Luit <nippur@fedoraproject.org>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: sos.trunk-nl\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-02-10 22:54+0100\n"
+"Last-Translator: R.E. van der Luit <nippur@fedoraproject.org>\n"
+"Language-Team: Dutch <nippur@fedoraproject.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Voer uw eerste initiaal in en uw achternaam alstublieft [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Voer aub het zaaknummer in waarvoor u deze melding doet:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Gecomprimeerd archiefbestand wordt gemaakt....."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Archiefbestand wordt versleuteld....."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Er trad een probleem op bij het versleutelen van uw melding."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Uw sosmelding is gegenereerd en opgeslagen in:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "De md5sum is: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Zendt dit bestand naar uw support representant alstublieft."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Kan niet naar de opgegeven URL uploaden."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Er trad een probleem op bij het uploaden van uw melding naar Red Hat support."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Uw melding is succesvol geupload naar Red Hat's ftp server met de naam:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Meldt deze naam alstublieft aan uw support representant."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Kon geen tijdelijke directory maken."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosmelding (versie %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "plugin %s valideerde niet, wordt overgeslagen"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "plugin %s overgeslagen (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "plugin %s is niet actief (gebruik -e of -o om in te schakelen)"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "plugin %s is niet gespecificeerd in --only-plugin lijst"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "plugin %s laat zich niet installeren, wordt overgeslagen"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "verwerken opties van plugin: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "geen geldige plugin gevonden"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "De volgende plugins zijn momenteel actief:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Geen plugin ingeschakeld"
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "De volgende plugins zijn momenteel actief:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "De volgende opties zijn beschikbaar:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Geen plugin-opties beschikbaar"
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosmelding vereist root permissie om te draaien."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "er waren geen geldige plugins ingeschakeld"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Deze faciliteit zal enige gedetailleerde informatie over de hardware\n"
+"en setup van uw Red Hat Enterprise Linux system verzamelen.\n"
+"De informatie is verzameld en een archiefbestand is ingepakt onder\n"
+"/tmp, hetgeen u kunt sturen naar uw support representant.\n"
+"Red Hat zal deze informatie ALLEEN voor diagnose doeleinden\n"
+"gebruiken; het zal beschouwd worden als vertrouwelijke informatie.\n"
+"\n"
+"Dit proces kan enige tijd duren voordat het klaar is.\n"
+"Er zullen geen veranderingen aan uw systeem gemaakt worden.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Druk op ENTER om verder te gaan, of op CTRL-C om te stoppen.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Eén of meerdere plugins hebben een probleem in uw configuratie bemerkt."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Lees aub de volgende berichten goed door:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Weet u zeker dat u door wilt gaan (y/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/nn.po b/po/nn.po
new file mode 100644
index 00000000..009640f6
--- /dev/null
+++ b/po/nn.po
@@ -0,0 +1,177 @@
+# Norwegian Nynorsk translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/nso.po b/po/nso.po
new file mode 100644
index 00000000..f94fa245
--- /dev/null
+++ b/po/nso.po
@@ -0,0 +1,176 @@
+# Language nso translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/or.po b/po/or.po
new file mode 100644
index 00000000..f767714e
--- /dev/null
+++ b/po/or.po
@@ -0,0 +1,195 @@
+# translation of sos.trunk.or.po to Oriya
+# Oriya translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Manoj Kumar Giri <mgiri@redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: sos.trunk.or\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-02 17:02+0530\n"
+"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
+"Language-Team: Oriya <oriya-it@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"\n"
+"\n"
+"\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "ଦୟାକରି ଆପଣଙ୍କର ନାମର ପ୍ରଥମ ଏବଂ ଅନ୍ତିମ ଭାଗ ଭରଣ କରନ୍ତୁ [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "ଦୟାକରି ଅଭିଯୋଗ କ୍ରମ ସଂଖ୍ୟା ଭରଣ କରନ୍ତୁ ଯାହା ପାଇଁ ଆପଣ ଏହି ଖବରକୁ ସୃଷ୍ଟି କରିଛନ୍ତି: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "ସଙ୍କୁଚିତ ଅଭିଲେଖ ନିର୍ମାଣ କରୁଅଛି..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "ଅଭିଲେଖକୁ ସଂଗୁପ୍ତ ରଖୁଅଛି..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "ଆପଣଙ୍କର ଖବରକୁ ସଂଗୁପ୍ତ କରିବା ସମୟରେ ଗୋଟିଏ ସମସ୍ୟା ଦେଖାଦେଇଥିଲା।"
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"ଆପଣଙ୍କର sosreport ସୃଷ୍ଟିହୋଇଛି ଏବଂ ଏଥିରେ ସଂରକ୍ଷିତ ହୋଇଛି:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "ଏହି md5sum ଟି ହେଉଛି: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "ଦୟାକରି ଏହି ଫାଇଲକୁ ଆପଣଙ୍କର ସହାୟତା ପ୍ରତିନିଧିଙ୍କ ପାଖକୁ ପଠାନ୍ତୁ।"
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "ଉଲ୍ଲିଖିତ URL କୁ ଧାରଣ କରିପାରିବେ ନାହିଁ।"
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Red Hat ସହାୟତାରେ ଆପଣଙ୍କର ବିବରଣୀକୁ ଧାରଣ କରିବାରେ ସମସ୍ୟା ଦୋଇଥିଲା।"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "ଆପଣଙ୍କର ବିବରଣୀ Red Hat's ftp ସର୍ଭରରେ ନିମ୍ନଲିଖିତ ନାମରେ ସଫଳତାର ସହିତ ଧାରଣ ହୋଇଛି:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "ଦୟାକରି ଏହି ନାମକୁ ଆପଣଙ୍କର ସହାୟତା ପ୍ରତିନିଧିଙ୍କ ପାଖକୁ ପଠାନ୍ତୁ।"
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "ଅସ୍ଥାୟୀ ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିହେଲା ନାହିଁ।"
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (ସସ୍କରଣ %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "ପ୍ଲଗଇନ %s କୁ ବୈଧିକୃତ କରେ ନାହିଁ, ଏଡ଼ାଇଦେଉଅଛି"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "ପ୍ଲଗଇନ %s ଏଡ଼ାଇଦେଇଛି (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "ପ୍ଲଗଇନ %s ଟି ନିଷ୍କ୍ରିୟ ଅଛି (ସକ୍ରିୟ କରିବା ପାଇଁ -e ଅଥବା -o କୁ ବ୍ୟବହାର କରନ୍ତୁ)।"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "ପ୍ଲଗଇନ %s କୁ --only-plugins ତାଲିକାରେ ଉଲ୍ଲେଖ କରାଯାଇନାହିଁ"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "ପ୍ଲଗଇନ %s ସ୍ଥାପନ କରେନାହିଁ, ଏଡ଼ାଇ ଦେଉଛି"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "ପ୍ଲଗଇନରୁ ବିକଳ୍ପଗୁଡ଼ିକୁ କାର୍ଯ୍ୟକାରୀ କରୁଅଛି: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "କୌଣସି ବୈଧ ପ୍ଲଗଇନ ମିଳୁନାହିଁ"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "ନିମ୍ନଲିଖିତ ପ୍ଲଗଇନଗୁଡ଼ିକ ବର୍ତ୍ତମାନ ସକ୍ରିୟ ହୋଇଛି:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "କୌଣସି ପ୍ଲଗଇନ ସକ୍ରିୟ ହୋଇନାହିଁ।"
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "ନିମ୍ନଲିଖିତ ପ୍ଲଗଇନଗୁଡ଼ିକ ବର୍ତ୍ତମାନ ନିଷ୍କ୍ରିୟ ହୋଇଛି:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "ନିମ୍ନଲିଖିତ ପ୍ଲଗଇନ ବିକଳ୍ପଗୁଡ଼ିକ ଉପଲବ୍ଧ ଅଛି:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "କୌଣସି ପ୍ଲଗଇନ ବିକଳ୍ପ ଉପଲବ୍ଧ ନାହିଁ।"
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport ଚାଲିବା ପାଇଁ ମୂଖ୍ୟଚାଳକ ଅନୁମତି ଆବଶ୍ୟକ କରିଥାଏ।"
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "କୌଣସି ବୈଧ ପ୍ଲଗଇନକୁ ସକ୍ରିୟ କରାହୋଇନାହିଁ"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"ଏହି ଉପଯୋଗିତାଟି ହାର୍ଡୱେର ବିଷୟରେ କିଛି ବିସ୍ତୃତ ସୂଚନା ସଂଗ୍ରହ ସଂଗ୍ରହ କରିଥାଏ\n"
+"ଏବଂ ଆପଣଙ୍କର Red Hat Enterprise Linux ତନ୍ତ୍ରକୁ ବିନ୍ୟାସ କରିଥାଏ।\n"
+"ସୂଚନା ସଂଗ୍ରହ କରାଯାଇଥାଏ ଏବଂ ଅଭିଲେଖକୁ /tmp ଅନ୍ତର୍ଗତରେ ପ୍ୟାକେଜ ହୋଇଥାଏ\n"
+", ଯାହାକୁକି ଆପଣ ଜଣେ ସହାୟକ ପ୍ରତିନିଧିଙ୍କ ପାଖକୁ ପଠାଇପାରିବେ।\n"
+"Red Hat ଏହି ସୂଚନାକୁ କେବଳ ନିରୂପଣ କରିବା ଉଦ୍ଦେଶ୍ୟରେ ବ୍ୟବହାର କରିଥାଏ\n"
+"ଏବଂ ଏହାକୁ ଗୁପ୍ତ ସୂଚନା ଭାବରେ ଗ୍ରହଣ କରାଯାଇଥାଏ।\n"
+"\n"
+"ଏହି ପଦ୍ଧତି ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପାଇଁ କିଛି ସମୟ ନେଇପାରେ।\n"
+"ଆପଣଙ୍କର ତନ୍ତ୍ରରେ କୌଣସି ପରିବର୍ତ୍ତନ କରାଯିବ ନାହିଁ।\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "ଅଗ୍ରସର ହେବା ପାଇଁ ENTER ଦବାନ୍ତୁ, ଅଥବା ବିଦାୟ ନେବା ପାଇଁ CTRL-C ଦବାନ୍ତୁ।\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "ଆପଣଙ୍କର ସଂରଚନାରେ ଗୋଟିଏ କିମ୍ବା ଅଧିକ ପ୍ଲଗଇନରେ ସମସ୍ୟା ଦେଖାଦେଇଛି।"
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "ଦୟାକରି ନିମ୍ନଲିଖିତ ସନ୍ଦେଶଗୁଡ଼ିକୁ ପ୍ରାକଦର୍ଶନ କରନ୍ତୁ:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "ଆପଣ ଅଗ୍ରସର ହେବା ପାଇଁ ଚାହୁଁଛନ୍ତି ବୋଲି ନିଶ୍ଚିତ କି (y/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "ହଁ"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "ନାଁ"
+
diff --git a/po/pa.po b/po/pa.po
new file mode 100644
index 00000000..a1b82a6d
--- /dev/null
+++ b/po/pa.po
@@ -0,0 +1,191 @@
+# translation of pa.po to Punjabi
+# Punjabi translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Jaswinder Singh <jsingh@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: pa\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-06 16:55+0530\n"
+"Last-Translator: Jaswinder Singh <jsingh@redhat.com>\n"
+"Language-Team: Punjabi <fedora-trans-pa@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਪਹਿਲਾ ਅਤੇ ਆਖਰੀ ਨਾਂ ਦਿਓ [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "ਕਿਰਪਾ ਕਰਕੇ ਮੁੱਦਾ ਨੰਬਰ ਦਿਓ ਜੋ ਤੁਸੀਂ ਇਸ ਰਿਪੋਰਟ ਵਿੱਚ ਦੇ ਰਹੇ ਹੋ: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "ਸੰਕੁਚਿਤ ਆਰਚੀਵ ਬਣਾ ਰਿਹਾ ਹੈ..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "ਆਰਚੀਵ ਇਨਕ੍ਰਿਪਟ ਹੋ ਰਿਹਾ ਹੈ..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਇਨਕ੍ਰਿਪਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ ਹੈ..."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"ਤੁਹਾਡੀ sosreport ਬਣਾਈ ਗਈ ਹੈ ਅਤੇ ਇੱਥੇ ਸੰਭਾਲੀ ਗਈ ਹੈ:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum ਇਹ ਹੈ: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਫਾਇਲ ਨੂੰ ਆਪਣੇ ਸਹਿਯੋਗ ਪ੍ਰਤੀਨਿਧ ਨੂੰ ਭੇਜੋ।"
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "ਦਿੱਤੇ URL ਤੇ ਅੱਪਲੋਡ ਨਹੀਂ ਕਰ ਸਕਦਾ।"
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਨੂੰ Red Hat ਸਹਿਯੋਗ ਤੇ ਅੱਪਲੋਡ ਕਰਨ ਵੇਲੇ ਗਲਤੀ ਆਈ ਹੈ।"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਸਫਲਤਾਪੂਰਕ Red Hat ਦੇ ftp ਸਰਵਰ ਤੇ ਇਸ ਨਾਂ ਨਾਲ ਅੱਪਲੋਡ ਹੋ ਗਈ ਹੈ:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਨਾਂ ਨੂੰ ਸਹਿਯੋਗੀ ਪ੍ਰਤੀਨਿਧ ਨਾਲ ਜੋੜੋ।"
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "ਆਰਜੀ ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਬਣਾ ਸਕਦਾ।"
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (ਵਰਜਨ %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "ਪਲੱਗਇਨ %s ਪ੍ਰਮਾਣਿਤ ਨਹੀਂ ਹੈ, ਛੱਡ ਰਿਹਾ ਹੈ"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "ਪਲੱਗਇਨ %s ਛੱਡਿਆ ਹੈ (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "ਪਲੱਗਇਨ %s ਨਾ-ਸਰਗਰਮ ਹੈ ( ਯੋਗ ਕਰਨ ਲਈ use -e ਜਾਂ -o ਵਰਤੋ)।"
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "ਪਲੱਗਇਨ %s ਨੂੰ --only-plugins ਸੂਚੀ ਵਿੱਚ ਨਹੀਂ ਦਿੱਤਾ"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "ਪਲੱਗਇਨ %s ਇੰਸਟਾਲ ਨਹੀਂ ਹੋਇਆ, ਛੱਡ ਰਿਹਾ ਹੈ"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "ਪਲੱਗਇਨ ਤੋਂ ਚੋਣਾਂ ਲੈ ਰਿਹਾ ਹੈ: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "ਕੋਈ ਯੋਗ ਪਲੱਗਿਨ ਨਹੀਂ ਲੱਭਿਆ"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "ਹੇਠਲੇ ਪਲੱਗਇਨ ਯੋਗ ਕੀਤੇ ਹਨ:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "ਕੋਈ ਪਲੱਗਇਨ ਯੋਗ ਨਹੀਂ ਹੈ।"
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "ਹੇਠਲੇ ਪਲੱਗਇਨ ਅਯੋਗ ਹਨ।"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "ਹੇਠਲੀਆਂ ਪਲੱਗਇਨ ਚੋਣਾਂ ਉਪਲੱਬਧ ਹਨ:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "ਕੋਈ ਪਲੱਗਇਨ ਚੋਣ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ।"
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport ਚਲਾਉਣ ਲਈ ਪਰਬੰਧਕ ਅਧਿਕਾਰ ਹੋਣੇ ਜਰੂਰੀ ਹਨ।"
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "ਕੋਈ ਸਹੀ ਪਲੱਗਇਨ ਯੋਗ ਨਹੀਂ ਕੀਤਾ"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"ਇਹ ਸਹੂਲਤ ਹਾਰਡਵੇਅਰ ਬਾਰੇ ਕੁਝ ਵਿਸਥਾਰ ਜਾਣਕਾਰੀ ਇਕੱਠੀ\n"
+"ਕਰੇਗੀ ਅਤੇ ਤੁਹਾਡੇ Red Hat Enterprise Linux ਸਿਸਟਮ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰੇਗੀ।\n"
+"ਜਾਣਕਾਰੀ ਇਕੱਠੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ /tmp ਵਿੱਚ ਇੱਕ ਆਰਚੀਵ ਬਣਾਈ ਜਾਂਦੀ\n"
+"ਹੈ, ਜੋ ਤੁਸੀਂ ਸਹਿਯੋਗ ਪ੍ਰਤੀਨਿਧ ਨੂੰ ਭੇਜ ਸਕਦੇ ਹੋ।\n"
+"Red Hat ਇਸ ਜਾਣਕਾਰੀ ਨੂੰ ਸਿਰਫ ਹੱਲ ਕਰਨ ਲਈ ਵਰਤੇਗਾ\n"
+"ਅਤੇ ਇਹ ਜਾਣਕਾਰੀ ਗੁਪਤ ਰੱਖੀ ਜਾਏਗੀ।\n"
+"\n"
+"ਇਹ ਕਾਰਜ ਮੁਕੰਮਲ ਹੋਣ ਲਈ ਕੁਝ ਸਮਾਂ ਲੈ ਸਕਦਾ ਹੈ।\n"
+"ਤੁਹਾਡੇ ਸਿਸਟਮ ਉੱਪਰ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਕੀਤੀ ਜਾਏਗੀ।\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "ਜਾਰੀ ਰੱਖਣ ਲਈ ENTER ਦਬਾਓ, ਜਾਂ ਬੰਦ ਕਰਨ ਲਈ CTRL-C ਦਬਾਓ।\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "ਤੁਹਾਡੀ ਸੰਰਚਨਾ ਵਿੱਚ ਇੱਕ ਜਾਂ ਜਿਆਦਾ ਪਲੱਗਇਨ ਸਮੱਸਿਆ ਪੈਦਾ ਕਰਦੇ ਹਨ।"
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਲੇ ਸੁਨੇਹੇ ਵੇਖੋ:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "ਕੀ ਤੁਸੀਂ ਯਕੀਨਨ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ (y/n) ? "
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 00000000..0c2e86d4
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,190 @@
+# translation of pl.po to Polish
+# Piotr Drąg <piotrdrag@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pl\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-22 22:19+0200\n"
+"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
+"Language-Team: Polish <fedora-trans-pl@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Proszę podać imię i nazwisko [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Proszę podać numer sprawy, dla której ten raport jest tworzony: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Tworzenie skompresowanego archiwum..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Szyfrowanie archiwum..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Wystąpił problem podczas szyfrowania raportu."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Raport sos został utworzony i zapisany w:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "Suma MD5 to: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Proszę wysłać ten plik do reprezentanta wsparcia technicznego."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Nie można wysłać na podany adres URL."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+"Wystąpił problem podczas wysyłania raportu do wsparcia technicznego Red Hata."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+"Raport został pomyślnie wysłany do serwera FTP formy Red Hat za pomocą tej "
+"nazwy:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Proszę podać tę nazwę reprezentantowi wsparcia technicznego."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Nie można utworzyć katalogu tymczasowego."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (wersja %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "nie można sprawdzić wtyczki %s, pomijanie"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "wtyczka %s została pominięta (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "wtyczka %s jest nieaktywna (użycie -e lub -o, aby ją włączyć)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "nie podano wtyczki %s na liście --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "nie można zainstalować wtyczki %s, pomijanie"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "przetwarzanie opcji wtyczki: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "nie odnaleziono prawidłowych wtyczek"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Następujące wtyczki są obecnie włączone:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Brak włączonych wtyczek."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Następujące wtyczki są obecnie wyłączone:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Następujące wtyczki są dostępne:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Brak dostępnych wtyczek."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport wymaga uprawnień roota do uruchomienia."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "brak włączonych prawidłowych wtyczek"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"To narzędzie zbiera niektóre szczegółowe informacje o sprzęcie\n"
+"i ustawieniach systemu Red Hat Enterprise Linux. Informacje są\n"
+"zbierane i archiwizowane w formie pakietu w /tmp, który można\n"
+"wysłać reprezentantowi wsparcia technicznego. Firma Red Hat\n"
+"użyje tych informacji TYLKO do celów diagnostycznych i zachowa\n"
+"je jako informacje poufne.\n"
+"\n"
+"Ten proces może chwilę zająć.\n"
+"Żadne zmiany nie będą wprowadzane do systemu.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+"Należy nacisnąć przycisk Enter, aby kontynuować lub Ctrl-C, aby zakończyć.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Jedna lub więcej wtyczek wykryły problem w konfiguracji."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Proszę przejrzęć poniższe komunikaty:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Na pewno kontynuować (t/n)? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "T"
+
+#: sosreport:686
+msgid "y"
+msgstr "t"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 00000000..fd72db23
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,191 @@
+# Portuguese translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-05 04:14+0100\n"
+"Last-Translator: Rui Gouveia <rui.gouveia@globaltek.pt>\n"
+"Language-Team: PT <fedora-trans-pt@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Portuguese\n"
+"X-Poedit-Country: PORTUGAL\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Por favor, insira a sua primeira inicial e último nome [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Por favor, insira o número do processo para o qual está a gerar este relatório: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "A criar arquivo comprimido..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "A cifrar arquivo..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Ocorreu um erro ao cifrar o seu relatório."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"O seu relatório sosreport foi gerado e guardado em:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "O md5sum é: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Por favor, envie este ficheiro para o seu representante do suporte."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Não foi possível submeter para o URL especificado."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "O seu relatório foi submetido com sucesso para o servidor ftp da Red Hat com o nome:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Por favor, comunique este nome para o seu representante do suporte."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Não foi possível criar directório temporário."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (versão %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "plugin %s não valida. A passar ao seguinte"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "plugin %s ignorado (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "plugin %s está desactivado (utilize -e ou -o para activar)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "plugin %s não é especificado na lista --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "plugin %s não instala. A passar ao seguinte"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "A processar opções do plugin: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "Não foram encontrados plugins válidos"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Os seguintes plugins estão actualmente activos:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Nenhum plugin activo."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Os seguintes plugins estão actualmente desactivados:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "As seguintes opções de plugins estão disponíveis:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Nenhumas opções do plugin disponíveis."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "o sosreport necessita de permissões de root para executar."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "Não foram activados plugins válidos"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Este utilitário vai recolher informações detalhadas acerca do\n"
+"hardware e configuração do seu sistema Red Hat Enterprise Linux.\n"
+"Esta informação é recolhida e compilada num ficheiro em /tmp,\n"
+"o qual poderá ser enviado para um representante de suporte.\n"
+"A Red Hat irá utilizar esta informação UNICAMENTE para efeitos\n"
+"de diagnóstico e será considerada informação confidencial.\n"
+"\n"
+"Este processo pode demorar um pouco a completar.\n"
+"Nenhuma alteração será efectuada ao seu sistema.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Carregue em ENTER para continuar, ou CTRL-C para sair.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Um ou mais plugins detectaram um problema na sua configuração."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Por favor, reveja as seguintes mensagens:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Tem a certeza que deseja continuar (y para sim/n para não) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "s"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 00000000..429abb79
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,188 @@
+# Brazilian Portuguese translations for sos package.
+# Igor Pires Soares <igor@projetofedora.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-26 00:51-0300\n"
+"Last-Translator: Igor Pires Soares <igor@projetofedora.org>\n"
+"Language-Team: Brazilian Portuguese <fedora-trans-pt_br@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Por favor, insira a sua primeira inicial e o seu último nome [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Por favor, insira o número do caso para o qual você está gerando este relatório: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Criando pacote compactado..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Criptografando o pacote..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Houve um problema ao criptografar o seu relatório."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"O seu sosreport foi gerado e salvo em:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "O md5sum é: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Por favor, envie este arquivo para o seu representante de suporte."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Não foi possível enviar para a URL especificada."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "O seu relatório foi enviado com sucesso para o servidor ftp da Red Hat com o nome:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Por favor, comunique este nome para o seu representante de suporte."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "Não foi possível criar o diretório temporário."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (versão %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "o plugin %s não validou, ignorando"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "plugin %s ignorado (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "o plugin %s está inativo (use -e ou -o para habilitar)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "o plugin %s não está especificado na lista --only-plugins"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "o plugin %s não instala, ignorando"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "processando opções do plugin: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "nenhum plugin válido encontrado"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "Os seguintes plugins estão habilitados no momento:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "Nenhum plugin está habilitado."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "Os seguintes plugins estão desabilitados no momento:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "As seguintes opções de plugins estão disponíveis:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "Nenhuma opção de plugins está disponível."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "o sosreport precisa de permissões de root para ser executado."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "nenhum plugin válido estava habilitado"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Este utilitário irá coletar algumas informações detalhadas sobre o\n"
+"hardware e a configuração do seu sistema Red Hat Enterprise Linux.\n"
+"As informações são coletadas e um arquivo é empacotado no /tmp,\n"
+"o qual você pode enviar para um representante de suporte.\n"
+"A Red Hat irá utilizar estas informações SOMENTE para o propósito\n"
+"de diagnósticos e serão consideradas como informação confidencial.\n"
+"\n"
+"Este processo pode levar algum tempo para ser concluído.\n"
+"Nenhum alteração será feita no seu sistema.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Pressione ENTER para continuar ou CTRL-C para encerrar.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Um ou mais plugins detectaram problemas na sua configuração."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "Por favor, revise as seguintes mensagens:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Você tem certeza de que gostaria de continuar ? (s/n)"
+
+#: sosreport:672
+msgid "Y"
+msgstr "S"
+
+#: sosreport:672
+msgid "y"
+msgstr "s"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 00000000..f622e9b1
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,176 @@
+# Romanian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 00000000..6a0f5ecf
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,193 @@
+# translation of ru.po to
+# Russian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Yulia Poyarkova <yulia.poyarkova@redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: ru\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-03 16:17+1000\n"
+"Last-Translator: Yulia Poyarkova <yulia.poyarkova@redhat.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Пожалуйста, укажите имя и фамилию [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Пожалуйста, введите номер проверки для генерируемого отчёта:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Создаётся архив..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Выполняется кодирование архива..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Произошла ошибка при кодировании вашего отчёта."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Созданный отчёт сохранен в: "
+"\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Отправьте этот файл представителю службы поддержки."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Не удалось отправить файл."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Произошла ошибка при попытке отправить отчёт в службу поддержки Red Hat."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Ваш отчёт был успешно размещён на ftp-сервере Red Hat под именем:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Пожалуйста, сообщите это имя представителю службы поддержки."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Не удалось создать временный каталог."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (версия %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "модуль %s не прошёл проверку подлинности. Пропускается."
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "пропущен модуль %s (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "неактивный модуль %s (для активации используйте -e или -o)"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "модуль %s не указан в списке --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "модуль %s не устанавливается. Пропускается."
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "обрабатываются опции модуля: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "не найдены модули"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "В настоящее время включены модули:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Нет активных модулей."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "В настоящее время отключены модули:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Доступны следующие опции модулей:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Нет опций."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "Для выполнения sosreport необходимы права root."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "подходящие модули не включены"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Эта программа выполнит сбор подробной информации об оборудовании\n"
+"и настройках вашей системы Red Hat Enterprise Linux.\n"
+"Полученные сведения будут упакованы в архив, который будет помещён в каталог /tmp.\n"
+"Этот архив можно отправить в службу поддержки для анализа.\n"
+"Red Hat рассматривает эту информацию как конфиденциальную и использует\n"
+"исключительно в целях диагностики.\n"
+"\n"
+"Этот процесс может занять некоторое время.\n"
+"Система при этом изменена не будет.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Нажмите ENTER для продолжения или CTRL-C для выхода.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Модули обнаружили ошибки конфигурации."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Пожалуйста, просмотрите сообщения:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Вы действительно хотите продолжить? (y/n)"
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/si.po b/po/si.po
new file mode 100644
index 00000000..35e3550e
--- /dev/null
+++ b/po/si.po
@@ -0,0 +1,192 @@
+# translation of si.po to Sinhala
+# Sinhalese translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Danishka Navin <snavin@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: si\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-07 19:03+0530\n"
+"Last-Translator: Danishka Navin <snavin@redhat.com>\n"
+"Language-Team: Sinhala <en@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "කරුණාකර ඔබගේ පළමු මුළකුර සහ අවසාන නම ඇතුළත් කරන්න [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "කරුණාකර මෙම වාර්තාව ගොඩනැන්වීමට අදාල අවස්ථා අංකය ඇතුළත් කරන්න: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "හැකිලු සංරක්‍ෂක නිර්මාණය කරමින්..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "සංරක්‍ෂණ සංකේතාංකනය කරමින්..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "ඔබගේ වාර්තාව සංකේතාංනය කිරීමේදි දෝෂයක් ඇතිවිය."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"ඔබගේ sosreport නිර්මාණය වූ අතර සුරකිනු ලැබු යේ:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum වනුයේ: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "කරුණාකර මෙම ගොනුව ඔබගේ සහායක නියෝජිත වෙත යවන්න."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "දක්වන ලඳ URL වෙත ලබා දිය නොහැක."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "ඔබගේ වාර්තාව Red Hat සහය වෙතට ලබා දිමේදි දෝෂයල් ඇති විය."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "ඔබගේ වාර්තාව සාර්තකව Red Hat's ftp සේවාදායකයට ලබාදුන් අතර නම වූයේ:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "ඔබගේ සහායක නියෝජිත වෙතට සංනිවේදනයට මෙම නම භාවිතා කරන්න."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "තාවකාලීක බහලුම නිර්මාණය කළ නොහැකි විය."
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (%s වෙළුම)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "%s ප්ලගීනය සත්‍යාපනය වන්නේ නැත, මගහරිමින්"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "%s ප්ලගීනය මගහරින ලදි (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "%sප්ලගීනය අක්‍රීයව ඇත ( සක්‍රීය කිරීමට -e හෝ -o භාවිතා කරන්න)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "--only-plugins ලැයිස්තුව තුළ %s ප්ලගීනය විශේෂිතව දක්වා නැත"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "%s ප්ලගීනය ස්ථාපනය වන්නේ නැත, මගහරි"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "ප්ලගීන වෙතින් විකල්ප සකසමින්: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "නිරවද්‍ය පල්ගීන හමුවුයේ නැත"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "පහත දැක්වෙන ප්ලගීන දැනට සක්‍රීයව ඇත:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "ප්ලගීන කිසිවක් සක්‍රීය නැත."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "පහත පල්ගීන විකල්ප දැනට අක්‍රීයව ඇත:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "පහත පල්ගීන විකල්ප භාවිතයට ඇත:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "කිසිදු පල්ගීන විකල්පයක් භාවිතයට නැත."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport ක්‍රියාත්මක වීම සඳහා root අවසර අවශ්‍යව ඇත."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "කිසිදු නිරවද්‍ය පල්ගිනයක් සක්‍රිය කර නැත"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"මෙම උපයෝගි තාවය දෘඩාංග පිළිබදව සවිස්තරාත්මක තොරතුරු රැස්කරණ අතර "
+"ඔබගේ Red Hat Enterprise Linux පද්ධතිය පිහිටවනු ලැබේ.\n"
+"රැස් කළ තොරතුරු සහ සංරක්‍ෂකය /tmp යටතේ ඇසුරුම් ගත කර ඇති අතර ඔබට "
+"එය සහායක නියෝජිත වෙත යැවිය හැක.\n"
+"Red Hat මෙම තොරතුරු භාවිතා කරන්නේ දෝෂ විනිශ්චය පමණක් වන අතර එම "
+"තොරතුරු රහසිගත තොරතුරු ලෙස සළකණු ලබයි.\n"
+"\n"
+"මෙම ක්‍රියාව නිම වීමට වේලාවක් ගතවනු ඇත.\n"
+"ඔබගේ පද්ධතියට කිසිදු වෙනසක් සිදු නොවනු ඇත.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "දිගටම කරගෙන යාමට ENTER හෝ පිට වීමට CTRL-C ඔබන්න.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "ප්ලගීන එකක හෝ කිහිපයක් ඔබගේ ප්ධතිය තුළ වූ දෝෂයක් අනාවරණය කරගෙන ඇත."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "කරුණාකර පහත පණිවිඩ නැවත සළකා බලන්න:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "ඔබට විශ්වාසද? ඔබට දිගටම කරගෙන යාමට අවශ්‍යද (y/n) ? "
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 00000000..a3e9c552
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,190 @@
+# Slovak translations for sos package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Ondrej Šulek <feonsu@gmail.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-20 14:43+0200\n"
+"Last-Translator: Ondrej Šulek <feonsu@gmail.com>\n"
+"Language-Team: Slovak <fedora-trans-sk@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Lokalize 1.0\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Prosím zadajte svoje meno a priezvisko [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Prosím zadajte číslo, pod ktorým vygenerovať túto správu: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Vytváranie komprimovaného archívu..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Šifrovanie archívu..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Nastal problém pri šifrovaní vašej správy."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Váš sosreport bol vygenerovaný a uložený v :\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "Kontrolný súčet MD5: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Prosím pošlite tento súbor zástupcovi technickej podpory."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Nie je možné odoslať na zadanú adresu URL."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Vaša správa bola úspešne odoslaná na ftp server Red Hatu s názvom:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Prosím kontaktujte zástupcu technickej podpory s týmto názvom."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Nepodarilo sa vytvoriť dočasný adresár."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (verzia %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "nie je možné overiť modul %s, preskakujem"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "modul %s preskočený (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "modul %s je neaktívny (použite -e alebo -o na jeho povolenie)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "modul %s nie je špecifikovaný v zozname --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "nie je možné nainštalovať modul %s, preskakujem"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "spracovávanie možností modulu: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "nenájdené žiadne platné moduly"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Nasledujúce moduly sú aktuálne povolené:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Žiadny modul nie je povolený."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Nasledujúce moduly sú aktuálne zakázané:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Nasledujúce možnosti modulov sú dostupné:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Nie sú dostupné žiadne možnosti modulov."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport vyžaduje root-ovský prístup"
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "neboli povolené žiadne platné moduly"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Tento nástroj zhromažďuje podrobné informácie o\n"
+"hardvéry a nastavení systému Red Hat Enterprise Linux.\n"
+"Informácie sa zhromažďujú a archivujú v podobe balíčka \n"
+"v /tmp, odkiaľ ich môžete poslať zástupcovi technickej podpory.\n"
+"Red Hat bude používať tieto informácie LEN pre diagnostické\n"
+" účely a budú považované za dôverné.\n"
+"\n"
+"Tento proces môže chvíľu trvať.\n"
+"V systéme nebudú vykonané žiadne zmeny.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Stlačte ENTER na pokračovanie, alebo CTRL-C na ukončenie.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Jeden alebo viacero modulov má problémy s konfiguráciou."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Prosím skontrolujte nasledujúce správy:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Naozaj chcete pokračovať (a/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "A"
+
+#: sosreport:686
+msgid "y"
+msgstr "a"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 00000000..631cad61
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,178 @@
+# Slovenian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
+"%100==4 ? 2 : 3);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/sos.pot b/po/sos.pot
new file mode 100644
index 00000000..8ace28f4
--- /dev/null
+++ b/po/sos.pot
@@ -0,0 +1,177 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-10 14:45-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: sos/sosreport.py:345
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sos/sosreport.py:411
+#, python-format
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sos/sosreport.py:436
+#, python-format
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sos/sosreport.py:465
+#, python-format
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sos/sosreport.py:561
+msgid "no valid plugins found"
+msgstr ""
+
+#: sos/sosreport.py:565
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sos/sosreport.py:571
+msgid "No plugin enabled."
+msgstr ""
+
+#: sos/sosreport.py:575
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sos/sosreport.py:583
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sos/sosreport.py:604
+msgid "No plugin options available."
+msgstr ""
+
+#: sos/sosreport.py:612
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sos/sosreport.py:619
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sos/sosreport.py:637
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sos/sosreport.py:656
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sos/sosreport.py:658
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sos/sosreport.py:674
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sos/sosreport.py:676
+msgid "y"
+msgstr ""
+
+#: sos/sosreport.py:676
+msgid "Y"
+msgstr ""
+
+#: sos/sosreport.py:679
+msgid "n"
+msgstr ""
+
+#: sos/sosreport.py:679
+msgid "N"
+msgstr ""
+
+#: sos/sosreport.py:698
+msgid "\tRunning plugins. Please wait ..."
+msgstr ""
+
+#: sos/sosreport.py:796
+#, python-format
+msgid "\tsosreport build tree is located at : %s"
+msgstr ""
+
+#: sos/sosreport.py:622
+#, python-format
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your %(distroa)s system.\n"
+"The information is collected and an archive is packaged under\n"
+"/tmp, which you can send to a support representative.\n"
+"%(distrob)s 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"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sos/policyredhat.py:208
+#, python-format
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: sos/policyredhat.py:211
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: sos/policyredhat.py:251
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: sos/policyredhat.py:281
+msgid "Encrypting archive..."
+msgstr ""
+
+#: sos/policyredhat.py:301
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: sos/policyredhat.py:325
+#, python-format
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: sos/policyredhat.py:328
+msgid "The md5sum is: "
+msgstr ""
+
+#: sos/policyredhat.py:330
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: sos/policyredhat.py:356
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: sos/policyredhat.py:393
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: sos/policyredhat.py:395
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: sos/policyredhat.py:398
+msgid "Please communicate this name to your support representative."
+msgstr ""
diff --git a/po/sq.po b/po/sq.po
new file mode 100644
index 00000000..530f9aa7
--- /dev/null
+++ b/po/sq.po
@@ -0,0 +1,176 @@
+# Albanian translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 00000000..88401cc5
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,191 @@
+# Serbian translations for sos
+# Copyright (C) 2007 Red Hat, Inc.
+# This file is distributed under the same license as the sos package.
+# Miloš Komarčević <kmilos@gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-04-06 20:44+0100\n"
+"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
+"Language-Team: Serbian <fedora-trans-sr@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Унесите ваш први иницијал и презиме [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Унесите број случаја за који правите овај извештај:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Правим компримовану архиву..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Шифрирам архиву..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Дошло је до грешке при шифровању вашег извештаја."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Ваш sos извештај је направљен и сачуван у:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum је: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Пошаљите ову датотеку вашем представнику подршке."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Не могу да пошаљем на наведени УРЛ."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "Појавио се проблем при слању вашег извештаја Red Hat подршци."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Ваш извештај је успешно послат на Red Hat ftp сервер са именом:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Пренесите ово име вашем представнику подршке."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Не могу да направим привремени директоријум."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (верзија %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "додатак %s се није оверио, прескачем"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "додатак %s је прескочен (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "додатак %s није активан (употребите -e или -o да га укључите)"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "додатак %s није наведен у списку --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "додатак %s се није инсталирао, прескачем"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "обрађујем опције од додатка: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "нису пронађени ваљани додаци"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Следећи додаци су тренутно укључени:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Нема укључених додатака."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Следећи додаци су тренутно искључени:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Доступне су следеће опције додатка:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Нема доступних опција додатка."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport захтева root дозволе за извршавање."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "нису укључени ваљани додаци"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Ова алатка ће сакупити неке детаљне информације о\n"
+"хардверу и поставци вашег Red Hat Enterprise Linux система.\n"
+"Информације се сакупљају и пакује се архива под\n"
+"/tmp, коју можете послати представнику за подршку.\n"
+"Red Hat ће употребити ове информације САМО у дијагностичке\n"
+"сврхе и биће сматране за поверљиве информације.\n"
+"\n"
+"Овај процес може да потраје дуже док се не заврши.\n"
+"Никакве промене неће бите начињене на систему.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Притисните ENTER за наставак, или CTRL-C за излаз.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Један или више додатака су открили проблем са вашим подешавањима."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Прегледајте следеће поруке:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Да ли сигурно желите да наставите (d/n) ?"
+
+#: sosreport:686
+msgid "Y"
+msgstr "D"
+
+#: sosreport:686
+msgid "y"
+msgstr "d"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
diff --git a/po/sr@latin.po b/po/sr@latin.po
new file mode 100644
index 00000000..350d2e03
--- /dev/null
+++ b/po/sr@latin.po
@@ -0,0 +1,191 @@
+# Serbian(Latin) translations for sos
+# Copyright (C) 2007 Red Hat, Inc.
+# This file is distributed under the same license as the sos package.
+# Miloš Komarčević <kmilos@gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-04-06 20:44+0100\n"
+"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
+"Language-Team: Serbian <fedora-trans-sr@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Unesite vaš prvi inicijal i prezime [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Unesite broj slučaja za koji pravite ovaj izveštaj:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Pravim komprimovanu arhivu..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Šifriram arhivu..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Došlo je do greške pri šifrovanju vašeg izveštaja."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Vaš sos izveštaj je napravljen i sačuvan u:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum je: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Pošaljite ovu datoteku vašem predstavniku podrške."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Ne mogu da pošaljem na navedeni URL."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Vaš izveštaj je uspešno poslat na Red Hat ftp server sa imenom:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Prenesite ovo ime vašem predstavniku podrške."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Ne mogu da napravim privremeni direktorijum."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (verzija %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "dodatak %s se nije overio, preskačem"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "dodatak %s je preskočen (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "dodatak %s nije aktivan (upotrebite -e ili -o da ga uključite)"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "dodatak %s nije naveden u spisku --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "dodatak %s se nije instalirao, preskačem"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "obrađujem opcije od dodatka: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "nisu pronađeni valjani dodaci"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Sledeći dodaci su trenutno uključeni:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Nema uključenih dodataka."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Sledeći dodaci su trenutno isključeni:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Dostupne su sledeće opcije dodatka:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Nema dostupnih opcija dodatka."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport zahteva root dozvole za izvršavanje."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "nisu uključeni valjani dodaci"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Ova alatka će sakupiti neke detaljne informacije o\n"
+"hardveru i postavci vašeg Red Hat Enterprise Linux sistema.\n"
+"Informacije se sakupljaju i pakuje se arhiva pod\n"
+"/tmp, koju možete poslati predstavniku za podršku.\n"
+"Red Hat će upotrebiti ove informacije SAMO u dijagnostičke\n"
+"svrhe i biće smatrane za poverljive informacije.\n"
+"\n"
+"Ovaj proces može da potraje duže dok se ne završi.\n"
+"Nikakve promene neće bite načinjene na sistemu.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Pritisnite ENTER za nastavak, ili CTRL-C za izlaz.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Jedan ili više dodataka su otkrili problem sa vašim podešavanjima."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Pregledajte sledeće poruke:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Da li sigurno želite da nastavite (d/n) ?"
+
+#: sosreport:686
+msgid "Y"
+msgstr "D"
+
+#: sosreport:686
+msgid "y"
+msgstr "d"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 00000000..c90d016e
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,193 @@
+# Swedish translations for the sos package.
+# This file is distributed under the same license as the sos package.
+# Copyright © 2009 Free Software Foundation, Inc.
+# Göran Uddeborg <goeran@uddeborg.se>, 2009.
+#
+# $Revision: 1.4 $
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-10-18 17:19+0200\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Ange din förnamnsinitial och ditt efternam [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Ange ärendenumret som du genererar denna rapport för: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Skapar komprimerat arkiv ..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Krypterar arkiv ..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Ett problem uppstod vid kryptering av din rapport."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Din sos-rapport har genererats och sparats i:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "MD5-summan är: "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Skicka denna fil till din servicerepresentant."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Kan inte skicka till angiven URL."
+
+#: lib/sos/policyredhat.py:360
+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."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Din rapport har skickats till Red Hats ftp-server med namnet:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Berätta detta namn för din servicerepresentant."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Kunde inte skapa en temporärkatalog."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (version %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "insticksmodul %s validerar inte, hoppar över"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "insticksmodul %s hoppas över (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "insticksmodul %s är inaktiv (använd -e eller -o för att aktivera)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "instickmodul %s är inte angiven i listan --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "insticksmodul %s installerar inte, hoppar över"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "bearbetar flaggor från insticksmodul: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "inga giltiga insticksmoduler funna"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Följande insticksmoduler är för närvarande aktiva:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Inga insticksmoduler aktiverade."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Följande insticksmoduler är för närvarande inaktiva:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Följande flaggor för insticksmoduler är tillgängliga:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Inga flaggor för insticksmoduler finns tillgängliga."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport behöver root-rättigheter för att köra."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "inga giltiga insticksmoduler var aktiva"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Detta verktyg kommer att samla en del detaljerad information om\n"
+"hårdvaran och inställningarna hos dit Red Hat Enterprise Linux-system.\n"
+"Informationen samlas och ett akriv paketeras under /tmp, som du kan\n"
+"skicka till en servicerepresentant. Red Hat kommer använda denna\n"
+"information ENDAST för diagnostiksyften och det betraktas som\n"
+"konfidentiell information.\n"
+"\n"
+"Denna process kan ta ett tag att bli klar.\n"
+"Inga ändringar kommer att göras i ditt system.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Tryck RETUR för att fortsätta, eller CTRL-C för att avbryta.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+"En eller flera insticksmoduler har upptäckt problem i din konfiguration."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Se över följande meddelanden:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Är du säker på att du vill fortsätta (j/n)? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "J"
+
+#: sosreport:686
+msgid "y"
+msgstr "j"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
diff --git a/po/ta.po b/po/ta.po
new file mode 100644
index 00000000..e517e2e7
--- /dev/null
+++ b/po/ta.po
@@ -0,0 +1,190 @@
+# translation of ta.po to
+# Tamil translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ta\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-07 14:23+0530\n"
+"Last-Translator: \n"
+"Language-Team: <en@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "உங்கள் பெயரின் முதல் எழுத்து மற்றும் கடைசி பெயரை உள்ளிடவும் [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "இந்த அறிக்கையை உருவாக்க அதற்கான எண்ணை உள்ளிடவும்:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "குறுக்கப்பட்ட காப்பினை உருவாக்குகிறது..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "காப்பினை மறைகுறியாக்குகிறது..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "உங்கள் அறிக்கையை மறைகுறியாக்குவதில் சிக்கல்."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"உங்கள் sosreport உருவாக்கப்பட்டு இதில் சேமிக்கப்பட்டுள்ளது:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum : "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "இந்த கோப்பினை உங்கள் சேவை பிரதிநிதியிடம் அனுப்பவும்."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "குறிப்பிட்ட இணைய முகவரியில் ஏற்ற முடியவில்லை."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "உங்கள் அறிக்கையை Red Hat சேவைக்கு அனுப்புவதில் சிக்கல்."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "உங்கள் அறிக்கை வெற்றிகரமாக Red Hat ftp சேவையகத்தில் பெயருடன் ஏற்றப்பட்டது:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "இந்த பெயரை உங்கள் சேவை பிரதிநிதியிடம் தெரிவிக்கவும்."
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "தற்காலிக அடைவை உருவாக்க முடியவில்லை"
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (version %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "கூடுதல் இணைப்பு %s தவறாக உள்ளது, எனவே தவிர்க்கிறது"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "கூடுதல் இணைப்பு %s தவிர்க்கப்பட்டது (--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "கூடுதல் இணைப்பு %s செயலிழக்கப்பட்டுள்ளது (-e அல்லது -o ஐ பயன்படுத்தி செயல்படுத்தவும்)."
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "கூடுதல் இணைப்பு %s --only-plugins பட்டியலில் குறிப்பிடப்படவில்லை"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "கூடுதல் இணைப்பு %s நிறுவப்படவில்லை, தவிர்க்கப்படுகிறது"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "கூடுதல் இணைப்பிலிருந்து விருப்பம் செயல்படுகிறது: %s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "சரியான கூடுதல் இணைப்புகள் இல்லை"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "பின்வரும் கூடுதல் இணைப்புகள் தற்போது செயல்படுத்தப்படுகிறது:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "கூடுதல் இணைப்புகள் எதுவும் செயல்படுத்தப்படவில்லை."
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "பின்வரும் கூடுதல் இணைப்புகள் தற்போது செயல்நீக்கப்பட்டுள்ளது:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "பின்வரும் கூடுதல் இணைப்பு விருப்பங்கள் உள்ளன:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "கூடுதல் இணைப்பு விருப்பங்கள் எதுவும் இல்லை."
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreportஐ இயக்க ரூட் அனுமதிகள் வேண்டும்."
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "சரியான கூடுதல் இணைப்புகள் எதுவும் செயல்படுத்தப்படவில்லை"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"இந்த வசதி வன்பொருள் பற்றியும் மற்றும் உங்கள் Red Hat Enterprise \n"
+"Linux கணினியை அமைப்பது பற்றியும் விரிவான தகவலை கொண்டிருக்கும்.\n"
+"இந்த தகவல்கள் சேகரிக்கப்பட்டு /tmpஇல் தொகுக்கப்படுகிறது,\n"
+"இதனை நீங்கள் சேவை பிரதிநிதிக்கு அனுப்பலாம்.\n"
+"Red Hat இந்த தகவலை ஆராய மட்டுமே பயன்படுத்தி\n"
+"இரகசியமாக வைத்து கொள்ளும்.\n"
+"\n"
+"இந்தப் பணி முடிய சிறிது நேரம் ஆகும்.\n"
+"உங்கள் கணினியில் எந்த மாற்றமும் செய்யப்படாது.\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "ENTER ஐ அழுத்தவும் அல்லது CTRL-C ஐ அழுத்தி வெளியேறவும்.\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "ஒன்று அல்லது அதற்கு மேல் கூடுதல் இணைப்புகள் கண்டறியப்பட்டதால் உங்கள் கட்டமைப்பில் பிழை ஏற்பட்டுள்ளது."
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "பின்வரும் செய்திகளை மறுபார்வையிடவும்:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "நீங்கள் தொடர வேண்டுமா (y/n) ?"
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/te.po b/po/te.po
new file mode 100644
index 00000000..cba557eb
--- /dev/null
+++ b/po/te.po
@@ -0,0 +1,191 @@
+# translation of sos.trunk.te.po to Telugu
+# Telugu translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Krishna Babu K <kkrothap@redhat.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: sos.trunk.te\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-09-07 21:18+0530\n"
+"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
+"Language-Team: Telugu <en@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "దయచేసి మీ పేరు మొదటి అక్షరం మరియు మీ యింటిపేరును ప్రవేశపెట్టండి [%s]"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "ఈ నివేదికను దేనికొరకు తయారు చేస్తున్నారో దాని కేస్ సంఖ్యను ప్రవేశపెట్టండి: "
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "కుదించిన ఆర్చీవ్‌ను సృష్టిస్తోంది..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "ఆర్చివ్‌ను ఎన్క్రిప్టు చేయుచున్నది..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "మీ నివేదికను ఎన్క్రిప్టు చేయుటలో అక్కడ వొక దోషమువుంది."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"మీ sosreport తయారుచేయబడింది మరియు దీనినందు దాయబడింది:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum : "
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "దయచేసి ఈ దస్త్రమును మీ మద్దతు ప్రతినిధికి పంపండి."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "తెలుపబడిన URLకు అప్‌లోడ్ చేయలేదు."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "మీ సమస్యను Red Hat మద్దతునకు అప్‌లోడు చేయుటలో వొక సమస్యవుంది."
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "మీ నివేదిక సమర్దవంతంగా Red Hat ftp సేవికకు నామముతో అప్‌లోడ్ చేయబడింది:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "దయచేసి ఈ నామము మీ మద్దతు ప్రతినిధికి తెలియపరచండి."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "తాత్కాలిక డైరెక్టరీను సృష్టించలేక పోయింది."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (వర్షన్ %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "ప్లగ్‌యిన్ %s నిర్ధారించబడలేదు, వదిలివేయుచున్నది"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "%s వదిలివేయబడింది (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "%s క్రియాహీనమైంది (చేతనం చేయుటకు -e లేదా -o వుపయోగించండి)."
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "ప్లగ్‌యిన్ %s తెలుపబడలేదు --only-plugins జాబితా"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "ప్లగిన్ %s సంస్థాపించబడలేదు, వదిలివేయుచున్నది"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "ప్లగిన్ నుండి ఐచ్చికాలను నిర్వర్తించుచున్నది: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "చెల్లునటువంటి ప్లగిన్సు కనబడలేదు"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "ఈ క్రింది ప్లగిన్సు ప్రస్తుతం చేతనం చేయబడివున్నాయి:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "ఏ ప్లగిన్ చేతనం చేయబడిలేదు."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "క్రింది ప్లగిన్సు ప్రస్తుతం అచేతనం చేయబడివున్నాయి:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "ఈ క్రింది ప్లగిన్ ఐచ్చికాలు అందుబాటులో వున్నాయి:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "ఎటువంటి ప్లగిన్ ఐచ్చికాలు అందుబాటులో లేవు."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "నడుపుటకు sosreportకు root అనుమతులు కావలెను."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "చెల్లునటువంటి ప్లగిన్సు చేతనము చేయబడిలేవు"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"మీ Red Hat Enterprise Linux సిస్టమ్ యొక్క హార్డువేరు మరియు అమర్పు గురించిన\n"
+"కొంత విశదీకృత సమాచారమును ఈ సౌలభ్యము సేకరిస్తుంది. సమాచారము సేకరించబడుతుంది\n"
+"మరియు ఆర్చివ్ /tmp క్రింద ప్యాకేజీ చేయబడుతుంది, దీనిని మీరు మద్దతు ప్రతినిధికి పంపవచ్చు.\n"
+"Red Hat ఈ సమాచారమును విశ్లేషణ ప్రయోజనముల కొరకు మాత్రమే వుపయోగిస్తుంది\n"
+"మరియు అది గోప్యంగా వుంచబడుతుంది.\n"
+"\n"
+"పూర్తగుటకు ఈ కార్యక్రమము కొంత సమయాన్ని తీసుకొంటుంది.\n"
+"మీ సిస్టమ్‌నకు యెటువంటి మార్పులు చేయబడవు.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "కొనసాగించుటకు దయచేసి ENTER వత్తండి, లేదా నిష్క్రమించుటకు CTRL-C వత్తండి.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "ఒకటి లేదా యెక్కువ ప్లగిన్సు మీ ఆకృతీకరణనందు సమస్యను గుర్తించినవి."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "దయచేసి క్రింది సందేశములను పునఃపరిశీలించండి:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "మీరు ఖచ్చితంగా కొనసాగించుటకు యిష్టపడుతున్నారా (y/n) ? "
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/th.po b/po/th.po
new file mode 100644
index 00000000..cf6b8641
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,189 @@
+# Thai translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: sos.th\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-05-13 12:12+0000\n"
+"Last-Translator: \n"
+"Language-Team: Thai <thai-l10n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: Lokalize 0.3\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "กรุณากรอกชื่อสกุล [%s]:"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "กรุณากรอกหมายเลขปัญหาที่จะสร้างรายงาน:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "กำลังสร้างไฟล์บีบอัด..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "กำลังเข้ารหัสไฟล์..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "มีปัญหาระหว่างการเข้ารหัสรายงาน"
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"รายงาน sos ของคุณได้ถูกสร้างและบันทึกใน:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum คือ:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "กรุณาส่งไฟล์นี้ไปยังตัวแทนผู้สนับสนุนของคุณ"
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "ไม่สามารถอัพโหลดไปยัง URL ที่ระบุ"
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "มีปัญหาในการอัพโหลดรายงานของคุณไปยังฝ่ายสนับสนุน Red Hat"
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "รายงานของคุณได้ถูกส่งไปยังเซิร์ฟเวอร์ ftp ของ Red Hat ในชื่อ:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "กรุณาบอกชื่อนี้กับตัวแทนผู้สนับสนุนของคุณ"
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "ไม่สามารถสร้างไดเรคทอรีชั่วคราว"
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (รุ่น %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "ส่วนขยาย %s ไม่ถูกต้อง จะข้ามไป"
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "ส่วนขยาย %s ถูกข้าม (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "ส่วนขยาย %s ไม่ทำงาน (ใช้ -e หรือ -o เพื่อเปิดใช้)"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "ส่วนขยาย %s ไม่ได้ระบุในรายการ --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "ส่วนขยาย %s ติดตั้งไม่ได้ จะข้ามไป"
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "กำลังประมวลผลตัวเลือกจากส่วนขยาย %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "ไม่พบส่วนขยายที่ถูกต้อง"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "ส่วนขยายต่อไปนี้เปิดใช้งานอยู่"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "ไม่มีส่วนขยายเปิดใช้งาน"
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "ส่วนขยายต่อไปนี้ปิดการใช้งานอยู่:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "มีตัวเลือกเหล่านี้จากส่วนขยาย:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "ไม่มีตัวเลือกจากส่วนขยาย"
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport ต้องใช้สิทธิ root ในการทำงาน"
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "ไม่มีส่วนขยายที่ถูกต้องเปิดใช้งาน"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"เครื่องมือนี้จะเก็บข้อมูลโดยละเอียดเกี่ยวกับฮาร์ดแวร์และการตั้งค่า\n"
+"ระบบ Red Hat Enterprise Linux ของคุณ ข้อมูลจะถูกเก็บและ\n"
+"สร้างเป็นไฟล์ที่ /tmp ซึ่งคุณสามารถส่งไปยังผู้สนับสนุนได้\n"
+"Red Hat จะใช้ข้อมูลนี้ในการแก้ไขปัญหาเท่านั้น และจะถือว่าเป็น\n"
+"ความลับ\n"
+"\n"
+"กระบวนการนี้อาจจะใช้เวลาสักครู่ในการทำงาน จะไม่มีการแก้ไข\n"
+"ดัดแปลงระบบของคุณ\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "กด ENTER เพื่อทำงานต่อ หรือ CTRL+C เพื่อออก\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "มีส่วนขยายตัวใดตัวหนึ่งตรวจพบปัญหาในการตั้งค่าของคุณ"
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "กรุณาอ่านข้อความเหล่านี้:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "คุณต้องการทำต่อไปหรือไม่ (y/n)?"
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 00000000..255bf880
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,177 @@
+# Turkish translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 00000000..81ecd0cb
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,195 @@
+# Ukrainian translations for sos package.
+# Copyright (C) Free Software Foundation
+# This file is distributed under the same license as the system-config-display package.
+# Maxim Dzіumanenko <dziumanenko@gmail.com>, 2009
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sos\n"
+"POT-Creation-Date: 2008-12-19 06:40\n"
+"PO-Revision-Date: 2009-12-19 08:45\n"
+"Last-Translator: Maxim Dzіumanenko <dziumanenko@gmail.com>\n"
+"Language-Team: <uk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "Вкажіть ім'я та прізвище [%s]: "
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "Введіть номер перевірки для звіту, що створюється:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "Створюється архів..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "Виконується кодування архіву..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "Виникла помилка при кодуванні вашого звіту."
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"Створений звіт збережено у: \n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "Відправте цей файл представнику служби підтримки."
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "Не вдається надіслати файл."
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+"Виникла помилка при спробі надіслати звіт до служби підтримки Red Hat."
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "Ваш звіт успішно розміщено на ftp-сервері Red Hat з під назвою:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "Повідомте це ім'я представнику служби підтримки."
+
+#: sosreport:401
+msgid "Could not create temporary directory."
+msgstr "Не вдається створити тимчасовий каталог."
+
+#: sosreport:457
+msgid "sosreport (version %s)"
+msgstr "sosreport (версія %s)"
+
+#: sosreport:474
+msgid "plugin %s does not validate, skipping"
+msgstr "модуль %s не пройшов перевірку автентичності. Пропускається."
+
+#: sosreport:480
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "пропущено модуль %s (--skip-plugins)"
+
+#: sosreport:484
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "неактивний модуль %s (для активації використовуйте -e або -o)"
+
+#: sosreport:492
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "модуль %s не вказано у списку --only-plugins"
+
+#: sosreport:497
+msgid "plugin %s does not install, skipping"
+msgstr "модуль %s не встановлюється. Пропускається."
+
+#: sosreport:568
+msgid "processing options from plugin: %s"
+msgstr "оброблюються опції модуля: %s"
+
+#: sosreport:579
+msgid "no valid plugins found"
+msgstr "не знайдено модулі"
+
+#: sosreport:584
+msgid "The following plugins are currently enabled:"
+msgstr "Наразі увімкнені модулі:"
+
+#: sosreport:589
+msgid "No plugin enabled."
+msgstr "Немає активних модулій."
+
+#: sosreport:593
+msgid "The following plugins are currently disabled:"
+msgstr "Наразі вимкнені модулі:"
+
+#: sosreport:600
+msgid "The following plugin options are available:"
+msgstr "Доступні наступні параметри модулів:"
+
+#: sosreport:620
+msgid "No plugin options available."
+msgstr "Немає параметрів."
+
+#: sosreport:628
+msgid "sosreport requires root permissions to run."
+msgstr "Для виконання sosreport потрібні права root."
+
+#: sosreport:635
+msgid "no valid plugins were enabled"
+msgstr "відповідні модулі не увімкнені"
+
+#: sosreport:638
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"Ця програма виконає збір докладної інформації про обладнання\n"
+"та параметри вашої системи Red Hat Enterprise Linux.\n"
+"Отримані відомості будуть упаковані у архів, який буде розміщено у "
+"каталозі /tmp.\n"
+"Цей архів можна надсилати до служби підтримки для аналізу.\n"
+"Red Hat розглядає цю інформацію як конфіденційну та використовує\n"
+"виключно з метою діагностики.\n"
+"\n"
+"Цей процес може тривати деякий час.\n"
+"Систему при цьому змінено не буде.\n"
+"\n"
+
+#: sosreport:652
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "Натисніть ENTER для продовження або CTRL-C для виходу.\n"
+
+#: sosreport:668
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "Модулі виявили помилки конфігурації."
+
+#: sosreport:669
+msgid "Please review the following messages:"
+msgstr "Будь ласка, перегляньте повідомлення:"
+
+#: sosreport:685
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "Ви дійсно бажаєте продовжити? (y/n)"
+
+#: sosreport:686
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:686
+msgid "y"
+msgstr "y"
+
+#: sosreport:689
+msgid "N"
+msgstr "N"
+
+#: sosreport:689
+msgid "n"
+msgstr "n"
+
+
diff --git a/po/ur.po b/po/ur.po
new file mode 100644
index 00000000..de0ab5d9
--- /dev/null
+++ b/po/ur.po
@@ -0,0 +1,176 @@
+# Urdu translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 00000000..4e713e61
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,177 @@
+# Vietnamese translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 00000000..b7212e1f
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,192 @@
+# translation of zh_CN.po to Chinese, Simplied(简体中文)
+# Chinese translations for PACKAGE package
+# PACKAGE �ļ���ķ�.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Leah Liu <lliu@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: zh_CN\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-08 09:32+1000\n"
+"Last-Translator: Leah Liu <lliu@redhat.com>\n"
+"Language-Team: Chinese, Simplied(简体中文) <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "请输入您姓名的首写字母和姓 [%s]:"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "请输入您要生成此报告的事件编号:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "生成压缩归档......"
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "为归档加密......"
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "在为您的报告加密时出错。"
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"已经为您生成 sosreport 并保存在:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum 值为:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "请将此文件发送给您的支持代表。"
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "无法上传到指定的网址。"
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "在将您的报告上传到红帽支持时出错。"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "已经成功将您的报告使用以下名称上传到红帽的 ftp 服务器:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "请将此名称告知您的支持代表。"
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "无法生成临时目录。"
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport (version %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "插件 %s 无效,跳过"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "跳过插件 %s(--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "插件 %s 未激活(请使用 -e 或者 -o 将其激活)。"
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "未在 --only-plugins 列表中指定插件 %s"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "未安装插件 %s,跳过"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "插件 %s 的处理选项"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "未发现可用插件"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "目前已启用了以下插件:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "没有启用插件。"
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "目前禁用了以下插件:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "以下插件选项可用:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "没有可用的插件选项。"
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport 需要根权限才可运行。"
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "没有启用任何可用插件"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"此工具程序将收集一些有关硬件和\n"
+"您的红帽企业版 Linux 系统设置的信息。\n"
+"收集这些信息后会在 /tmp 中打包一个归档文件,\n"
+"然后您就可将这个归档发送给您的支持代表。\n"
+"红帽将只以诊断为目的使用这些信息,\n"
+"并将其视为保密信息。\n"
+"\n"
+"这个过程要过一会儿才能完成。\n"
+"不会对您的系统做任何修改。\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "按 ENTER 键继续,或者 CTRL-C 组合键退出。\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "一个或者更多的插件检测出您的配置中的问题。"
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "请浏览以下信息:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "您确定要继续吗(y/n)?"
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N "
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 00000000..1ef4f9fe
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,190 @@
+# translation of zh_TW.po to Chinese, Tradition
+# Chinese translations for PACKAGE package
+# traditional Chinese translation for PACKAGE.
+# Copyright (C) 2007 ORGANIZATION
+#
+# Automatically generated, 2007.
+# Chester Cheng <ccheng@redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: zh_TW\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-11-07 15:10+1000\n"
+"Last-Translator: Chester Cheng <ccheng@redhat.com>\n"
+"Language-Team: Chinese, Tradition <zh_TW@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr "請輸入您的頭文字與姓 [%s]:"
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr "請輸入本報告的編號:"
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr "建立壓縮檔..."
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr "加密壓縮檔..."
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr "壓縮您的報告時出現問題。"
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+"您的 sosreport 報告已經產生,並儲存於:\n"
+" %s"
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr "md5sum 檢查碼為:"
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr "請將這檔案傳送給技術人員。"
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr "無法上傳指定的網址。"
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr "將報告上傳至 Red Hat 技術支援時,出現問題。"
+
+#: lib/sos/policyredhat.py:362
+msgid "Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr "您的報告已經成功地傳送至 Red Hat 的 FTP 伺服器,名稱為:"
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr "請將這名稱告知您的技術支援人員。"
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr "無法建立暫存目錄。"
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr "sosreport(版本 %s)"
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr "嵌入程式無法驗證,故而跳過"
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr "跳過嵌入程式 %s(--skip-plugins)"
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr "嵌入程式 %s 已經停用(請使用 -e 或 -o 啟用)。"
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr "嵌入程式 %s 並沒有在 --only-plugins 清單中指定"
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr "未安裝嵌入程式 %s,故而跳過"
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr "嵌入程式的處理選項:%s"
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr "找不到正確的嵌入程式"
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr "目前以下嵌入程式已經啟用:"
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr "並未啟用任何嵌入程式。"
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr "目前以下嵌入程式已經停用:"
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr "嵌入程式有以下選項可用:"
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr "沒有可用的嵌入程式選項。"
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr "sosreport 需要 root 權限才可以執行。"
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr "並未啟用合用的嵌入程式"
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+"這工具程式會蒐集 Red Hat Enterprise Linux 的硬體與設定資訊。\n"
+"這些資訊被蒐集後,會以壓縮檔形式備份於 /tmp/ 目錄中,您可以將\n"
+"這些訊息傳給技術人員以尋求支持。Red Hat 將這些資訊視為機密,\n"
+"「只會」將這些資訊拿來作為診斷問題之用。\n"
+"\n"
+"這過程會花上一點時間。\n"
+"您的系統不會有任何改變。\n"
+"\n"
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr "請按下「Enter」繼續,或按下「CTRL-C」離開。\n"
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr "一或多個嵌入程式在您的設定中偵測到一個問題。"
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr "請檢視以下訊息:"
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr "確定要繼續嗎 (y/n) ?"
+
+#: sosreport:672
+msgid "Y"
+msgstr "Y"
+
+#: sosreport:672
+msgid "y"
+msgstr "y"
+
+#: sosreport:675
+msgid "N"
+msgstr "N"
+
+#: sosreport:675
+msgid "n"
+msgstr "n"
+
diff --git a/po/zu.po b/po/zu.po
new file mode 100644
index 00000000..5cae0a56
--- /dev/null
+++ b/po/zu.po
@@ -0,0 +1,176 @@
+# Zulu translations for PACKAGE package.
+# Copyright (C) 2007 ORGANIZATION
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-10-24 08:45\n"
+"PO-Revision-Date: 2007-10-24 08:45\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: lib/sos/policyredhat.py:203
+msgid "Please enter your first initial and last name [%s]: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:206
+msgid "Please enter the case number that you are generating this report for: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:231
+msgid "Creating compressed archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:253
+msgid "Encrypting archive..."
+msgstr ""
+
+#: lib/sos/policyredhat.py:271
+msgid "There was a problem encrypting your report."
+msgstr ""
+
+#: lib/sos/policyredhat.py:292
+msgid ""
+"Your sosreport has been generated and saved in:\n"
+" %s"
+msgstr ""
+
+#: lib/sos/policyredhat.py:295
+msgid "The md5sum is: "
+msgstr ""
+
+#: lib/sos/policyredhat.py:297
+msgid "Please send this file to your support representative."
+msgstr ""
+
+#: lib/sos/policyredhat.py:323
+msgid "Cannot upload to specified URL."
+msgstr ""
+
+#: lib/sos/policyredhat.py:360
+msgid "There was a problem uploading your report to Red Hat support."
+msgstr ""
+
+#: lib/sos/policyredhat.py:362
+msgid ""
+"Your report was successfully uploaded to Red Hat's ftp server with name:"
+msgstr ""
+
+#: lib/sos/policyredhat.py:365
+msgid "Please communicate this name to your support representative."
+msgstr ""
+
+#: sosreport:395
+msgid "Could not create temporary directory."
+msgstr ""
+
+#: sosreport:451
+msgid "sosreport (version %s)"
+msgstr ""
+
+#: sosreport:468
+msgid "plugin %s does not validate, skipping"
+msgstr ""
+
+#: sosreport:474
+msgid "plugin %s skipped (--skip-plugins)"
+msgstr ""
+
+#: sosreport:478
+msgid "plugin %s is inactive (use -e or -o to enable)."
+msgstr ""
+
+#: sosreport:486
+msgid "plugin %s not specified in --only-plugins list"
+msgstr ""
+
+#: sosreport:491
+msgid "plugin %s does not install, skipping"
+msgstr ""
+
+#: sosreport:554
+msgid "processing options from plugin: %s"
+msgstr ""
+
+#: sosreport:565
+msgid "no valid plugins found"
+msgstr ""
+
+#: sosreport:570
+msgid "The following plugins are currently enabled:"
+msgstr ""
+
+#: sosreport:575
+msgid "No plugin enabled."
+msgstr ""
+
+#: sosreport:579
+msgid "The following plugins are currently disabled:"
+msgstr ""
+
+#: sosreport:586
+msgid "The following plugin options are available:"
+msgstr ""
+
+#: sosreport:606
+msgid "No plugin options available."
+msgstr ""
+
+#: sosreport:614
+msgid "sosreport requires root permissions to run."
+msgstr ""
+
+#: sosreport:621
+msgid "no valid plugins were enabled"
+msgstr ""
+
+#: sosreport:624
+msgid ""
+"This utility will collect some detailed information about the\n"
+"hardware and setup of your Red Hat 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"
+"and it will be considered confidential information.\n"
+"\n"
+"This process may take a while to complete.\n"
+"No changes will be made to your system.\n"
+"\n"
+msgstr ""
+
+#: sosreport:638
+msgid "Press ENTER to continue, or CTRL-C to quit.\n"
+msgstr ""
+
+#: sosreport:654
+msgid "One or more plugins have detected a problem in your configuration."
+msgstr ""
+
+#: sosreport:655
+msgid "Please review the following messages:"
+msgstr ""
+
+#: sosreport:671
+msgid "Are you sure you would like to continue (y/n) ? "
+msgstr ""
+
+#: sosreport:672
+msgid "Y"
+msgstr ""
+
+#: sosreport:672
+msgid "y"
+msgstr ""
+
+#: sosreport:675
+msgid "N"
+msgstr ""
+
+#: sosreport:675
+msgid "n"
+msgstr ""
diff --git a/pylintrc b/pylintrc
new file mode 100644
index 00000000..515b10ca
--- /dev/null
+++ b/pylintrc
@@ -0,0 +1,354 @@
+# lint Python modules using external checkers.
+#
+# This is the main checker controling the other ones and the reports
+# generation. It is itself both a raw checker and an astng checker in order
+# to:
+# * handle message activation / deactivation at the module level
+# * handle some basic but necessary stats'data (number of classes, methods...)
+#
+# This checker also defines the following reports:
+# * R0001: Total errors / warnings
+# * R0002: % errors / warnings by module
+# * R0003: Messages
+# * R0004: Global evaluation
+[MASTER]
+
+# Profiled execution.
+profile=no
+
+# Add <file or directory> to the black list. It should be a base name, not a
+# path. You may set this option multiple times.
+ignore=CVS
+
+# Pickle collected data for later comparisons.
+persistent=yes
+
+# Set the cache size for astng objects.
+cache-size=500
+
+# List of plugins (as comma separated values of python modules names) to load,
+# usually to register additional checkers.
+load-plugins=
+
+
+[REPORTS]
+
+# Tells wether to display a full report or only the messages
+reports=yes
+
+# Use HTML as output format instead of text
+html=no
+
+# Use a parseable text output format, so your favorite text editor will be able
+# to jump to the line corresponding to a message.
+parseable=yes
+
+# Colorizes text output using ansi escape codes
+color=no
+
+# Put messages in a separate file for each module / package specified on the
+# command line instead of printing them on stdout. Reports (if any) will be
+# written in a file name "pylint_global.[txt|html]".
+files-output=no
+
+# Python expression which should return a note less than 10 (10 is the highest
+# note).You have access to the variables errors warning, statement which
+# respectivly contain the number of errors / warnings messages and the total
+# number of statements analyzed. This is used by the global evaluation report
+# (R0004).
+evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
+
+# Add a comment according to your evaluation note. This is used by the global
+# evaluation report (R0004).
+comment=no
+
+# Include message's id in output
+include-ids=yes
+
+
+# checks for
+# * unused variables / imports
+# * undefined variables
+# * redefinition of variable from builtins or from an outer scope
+# * use of variable before assigment
+#
+[VARIABLES]
+
+# Enable / disable this checker
+enable-variables=yes
+
+# Tells wether we should check for unused import in __init__ files.
+init-import=no
+
+# A regular expression matching names used for dummy variables (i.e. not used).
+dummy-variables-rgx=_|dummy
+
+# List of additional names supposed to be defined in builtins. Remember that
+# you should avoid to define new builtins when possible.
+additional-builtins=_
+
+
+# try to find bugs in the code using type inference
+#
+[TYPECHECK]
+
+# Enable / disable this checker
+enable-typecheck=yes
+
+# Tells wether missing members accessed in mixin class should be ignored. A
+# mixin class is detected if its name ends with "mixin" (case insensitive).
+ignore-mixin-members=yes
+
+# When zope mode is activated, consider the acquired-members option to ignore
+# access to some undefined attributes.
+zope=no
+
+# List of members which are usually get through zope's acquisition mecanism and
+# so shouldn't trigger E0201 when accessed (need zope=yes to be considered.
+acquired-members=REQUEST,acl_users,aq_parent
+
+
+# checks for :
+# * doc strings
+# * modules / classes / functions / methods / arguments / variables name
+# * number of arguments, local variables, branchs, returns and statements in
+# functions, methods
+# * required module attributes
+# * dangerous default values as arguments
+# * redefinition of function / method / class
+# * uses of the global statement
+#
+# This checker also defines the following reports:
+# * R0101: Statistics by type
+[BASIC]
+
+# Enable / disable this checker
+enable-basic=yes
+
+#disable-msg=C0121
+
+# Required attributes for module, separated by a comma
+required-attributes=
+
+# Regular expression which should only match functions or classes name which do
+# not require a docstring
+no-docstring-rgx=__.*__
+
+# Regular expression which should only match correct module names
+module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
+
+# Regular expression which should only match correct module level names
+const-rgx=(([A-Z_][A-Z1-9_]*)|(__.*__))$
+
+# Regular expression which should only match correct class names
+class-rgx=[A-Z_][a-zA-Z0-9]+$
+
+# Regular expression which should only match correct function names
+function-rgx=[a-z_][A-Za-z0-9_]{2,30}$
+
+# Regular expression which should only match correct method names
+method-rgx=[a-z_][A-Za-z0-9_]{2,30}$
+
+# Regular expression which should only match correct instance attribute names
+attr-rgx=[a-z_][A-Za-z0-9_]{2,30}$
+
+# Regular expression which should only match correct argument names
+argument-rgx=[a-z_][A-Za-z0-9_]{2,30}$
+
+# Regular expression which should only match correct variable names
+variable-rgx=[a-z_][A-Za-z0-9_]{0,30}$
+
+# Regular expression which should only match correct list comprehension /
+# generator expression variable names
+inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
+
+# Good variable names which should always be accepted, separated by a comma
+good-names=i,j,k,ex,Run,_
+
+# Bad variable names which should always be refused, separated by a comma
+bad-names=foo,bar,baz,toto,tutu,tata
+
+# List of builtins function names that should not be used, separated by a comma
+bad-functions=map,filter,apply,input
+
+
+# checks for sign of poor/misdesign:
+# * number of methods, attributes, local variables...
+# * size, complexity of functions, methods
+#
+[DESIGN]
+
+# Enable / disable this checker
+enable-design=yes
+
+# Maximum number of arguments for function / method
+max-args=5
+
+# Maximum number of locals for function / method body
+max-locals=15
+
+# Maximum number of return / yield for function / method body
+max-returns=6
+
+# Maximum number of branch for function / method body
+max-branchs=12
+
+# Maximum number of statements in function / method body
+max-statements=50
+
+# Maximum number of parents for a class (see R0901).
+max-parents=7
+
+# Maximum number of attributes for a class (see R0902).
+max-attributes=7
+
+# Minimum number of public methods for a class (see R0903).
+min-public-methods=2
+
+# Maximum number of public methods for a class (see R0904).
+max-public-methods=20
+
+
+# checks for :
+# * methods without self as first argument
+# * overriden methods signature
+# * access only to existant members via self
+# * attributes not defined in the __init__ method
+# * supported interfaces implementation
+# * unreachable code
+#
+[CLASSES]
+
+# Enable / disable this checker
+enable-classes=yes
+
+# List of interface methods to ignore, separated by a comma. This is used for
+# instance to not check methods defines in Zope's Interface base class.
+ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
+
+# List of method names used to declare (i.e. assign) instance attributes.
+defining-attr-methods=__init__,__new__,setUp
+
+
+# checks for
+# * external modules dependencies
+# * relative / wildcard imports
+# * cyclic imports
+# * uses of deprecated modules
+#
+# This checker also defines the following reports:
+# * R0401: External dependencies
+# * R0402: Modules dependencies graph
+[IMPORTS]
+
+# Enable / disable this checker
+enable-imports=no
+
+# Deprecated modules which should not be used, separated by a comma
+deprecated-modules=regsub,string,TERMIOS,Bastion,rexec
+
+# Create a graph of every (i.e. internal and external) dependencies in the
+# given file (report R0402 must not be disabled)
+import-graph=
+
+# Create a graph of external dependencies in the given file (report R0402 must
+# not be disabled)
+ext-import-graph=
+
+# Create a graph of internal dependencies in the given file (report R0402 must
+# not be disabled)
+int-import-graph=
+
+
+# checks for usage of new style capabilities on old style classes and
+# other new/old styles conflicts problems
+# * use of property, __slots__, super
+# * "super" usage
+# * raising a new style class as exception
+#
+[NEWSTYLE]
+
+# Enable / disable this checker
+enable-newstyle=yes
+
+
+# checks for
+# * excepts without exception filter
+# * string exceptions
+#
+[EXCEPTIONS]
+
+# Enable / disable this checker
+enable-exceptions=yes
+
+
+# checks for :
+# * unauthorized constructions
+# * strict indentation
+# * line length
+# * use of <> instead of !=
+#
+[FORMAT]
+
+# Enable / disable this checker
+enable-format=yes
+
+# Maximum number of characters on a single line.
+max-line-length=132
+
+# Maximum number of lines in a module
+max-module-lines=1000
+
+# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
+# tab).
+indent-string=' '
+
+
+# checks for similarities and duplicated code. This computation may be
+# memory / CPU intensive, so you should disable it if you experiments some
+# problems.
+#
+# This checker also defines the following reports:
+# * R0801: Duplication
+[SIMILARITIES]
+
+# Enable / disable this checker
+enable-similarities=yes
+
+# Minimum lines number of a similarity.
+min-similarity-lines=4
+
+# Ignore comments when computing similarities.
+ignore-comments=yes
+
+# Ignore docstrings when computing similarities.
+ignore-docstrings=yes
+
+
+# checks for:
+# * warning notes in the code like FIXME, XXX
+# * PEP 263: source code with non ascii character but no encoding declaration
+#
+[MISCELLANEOUS]
+
+# Enable / disable this checker
+enable-miscellaneous=yes
+
+# List of note tags to take in consideration, separated by a comma. Default to
+# FIXME, XXX, TODO
+notes=FIXME,XXX,TODO
+
+
+# does not check anything but gives some raw metrics :
+# * total number of lines
+# * total number of code lines
+# * total number of docstring lines
+# * total number of comments lines
+# * total number of empty lines
+#
+# This checker also defines the following reports:
+# * R0701: Raw metrics
+[METRICS]
+
+# Enable / disable this checker
+enable-metrics=no
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 00000000..2474f5bf
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,3 @@
+[build_sphinx]
+source-dir = docs
+build-dir = docs/_build
diff --git a/setup.py b/setup.py
new file mode 100644
index 00000000..d7e13180
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python
+"""
+setup.py - Setup package with the help from Python's DistUtils
+"""
+
+try:
+ from setuptools import setup, find_packages
+except ImportError:
+ from ez_setup import use_setuptools
+ from setuptools import setup, find_packages
+
+import glob
+import os
+
+data_files = [ ('/etc', [ 'sos.conf']),
+ ('/usr/sbin', ['sosreport', 'extras/sysreport/sysreport.legacy']),
+ ('/usr/bin', ['extras/rh-upload']),
+ ('/usr/share/sos/',['gpgkeys/rhsupport.pub']),
+ ('/usr/share/sysreport', ['extras/sysreport/text.xsl', 'extras/sysreport/functions', 'extras/sysreport/sysreport-fdisk']),
+ ('/usr/share/man/man1', ['sosreport.1.gz']),
+ ]
+
+lang_files = glob.glob('po/*/sos.mo')
+for i18n in lang_files:
+ topdir, basedir, fname = i18n.split('/')
+ data_files.append(('/usr/share/locale/%s/LC_MESSAGES' % (basedir,) , [i18n]))
+
+test_sub_dirs = []
+def test_files_add(dir='test',test_dir='/usr/share/sos'):
+ """ test file dir addition """
+ test_sub_dirs.append(dir)
+ for root, dirs, fname in os.walk(dir):
+ if '.svn' in dirs:
+ dirs.remove('.svn')
+ for name in dirs:
+ test_sub_dirs.append(os.path.join(dir,name))
+ for dr in test_sub_dirs:
+ files = os.listdir(dr)
+ for f in files:
+ if os.path.isfile(os.path.join(dr,f)):
+ data_files.append((os.path.join(test_dir,dr),[os.path.join(dr,f)]))
+
+
+test_files_add()
+
+test_requirements = ['nose >= 0.10']
+
+setup(
+ name = 'sos',
+ version = '1.9',
+ author = 'Adam Stokes',
+ author_email = 'ajs@redhat.com',
+ url = 'http://fedorahosted.org/sos',
+ description = 'SOS - son of sysreport',
+ packages = find_packages(exclude=['test*']),
+ include_package_data = True,
+ data_files = data_files,
+ test_suite = "test",
+ tests_require = test_requirements,
+ extras_require = {
+ 'docs' : ['sphinx >= 0.5'],
+ },
+)
+
diff --git a/sos.conf b/sos.conf
new file mode 100644
index 00000000..a19b1e56
--- /dev/null
+++ b/sos.conf
@@ -0,0 +1,16 @@
+[general]
+
+ftp_upload_url = ftp://dropbox.redhat.com/incoming
+gpg_keyring = /usr/share/sos/rhsupport.pub
+gpg_recipient = support@redhat.com
+smtp_server = None
+
+[plugins]
+
+#disable = rpm, selinux, dovecot
+
+[tunables]
+
+#rpm.rpmva = off
+#general.syslogsize = 15
+
diff --git a/sos.spec b/sos.spec
new file mode 100644
index 00000000..2a30cdb2
--- /dev/null
+++ b/sos.spec
@@ -0,0 +1,349 @@
+%{!?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: 1.9
+Release: 1%{?dist}
+Group: Applications/System
+Source0: https://fedorahosted.org/releases/s/o/sos/%{name}-%{version}.tar.gz
+License: GPLv2+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+BuildArch: noarch
+Url: http://fedorahosted.org/sos
+BuildRequires: python-devel, python-setuptools
+Requires: libxml2-python
+Requires: tar, bzip2, xz
+Provides: sysreport = 1.4.3-13
+Obsoletes: sysreport
+
+%description
+Sos is a set of tools that gathers information about system
+hardware and configuration. The information can then be used for
+diagnostic purposes and debugging. Sos is commonly used to help
+support technicians and developers.
+
+%prep
+%setup -q
+
+%build
+%{__python} setup.py build
+
+%install
+rm -rf ${RPM_BUILD_ROOT}
+install -D -m644 gpgkeys/rhsupport.pub ${RPM_BUILD_ROOT}/%{_datadir}/%{name}/rhsupport.pub
+install -D -m644 extras/sysreport/sysreport.legacy ${RPM_BUILD_ROOT}/%{_datadir}/%{name}/sysreport
+%{__python} setup.py install -O1 --skip-build --root ${RPM_BUILD_ROOT}
+ln -s /usr/sbin/sosreport ${RPM_BUILD_ROOT}/usr/sbin/sysreport
+%find_lang %{name}
+
+%clean
+rm -rf ${RPM_BUILD_ROOT}
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%{_bindir}/rh-upload
+%{_sbindir}/sosreport
+%{_sbindir}/sysreport
+%{_sbindir}/sysreport.legacy
+%{_datadir}/%{name}
+%{_datadir}/sysreport
+%{python_sitelib}/*
+%{_mandir}/man1/sosreport.1.gz
+%doc README README.rh-upload TODO LICENSE ChangeLog docs/*
+%config(noreplace) %{_sysconfdir}/sos.conf
+
+%changelog
+* Wed Feb 10 2010 Adam Stokes <ajs at redhat dot com> = 1.9-1
+- replaced compression utility with xz
+- strip threading/multiprocessing
+- simplified progress indicator
+- pylint update
+- put global vars in class container
+- unittests
+- simple profiling
+- make use of xgettext as pygettext is deprecated
+
+* Mon Jan 18 2010 Adam Stokes <ajs at redhat dot com> = 1.8-21
+- more sanitizing options for log files
+- 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
+
+* Wed Jan 21 2009 Adam Stokes <ajs at redhat dot com> - 1.8-9
+- Resolves: bz436053 /usr/share/sos is not owned by any package
+- Resolves: bz434626 Wrong directory structure for translations
+
+* 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
+- Resolves: bz459845 collect krb5.conf
+- Resolves: bz457880 include output of xm list and xm list --long
+- Resolves: bz457919 add support for openswan and ipsec-tools
+- Resolves: bz456378 capture elilo configuration
+- Resolves: bz445007 s390 support
+- Resolves: bz371251 hangs when running with a xen kernel where xend has not been started
+- Resolves: bz452705 Add /root/anaconda-ks-cfg to sosreport archive
+- Resolves: bz445510 Do not rely on env to execute python
+- Resolves: bz446868 add support for emc devices
+- Resolves: bz453797 fails to generate fdisk -l
+- Resolves: bz433183 does not collect ext3 information
+- Resolves: bz444838 systool is passed deprecated arguments
+- Resolves: bz455096 add %{INSTALLTIME:date} to rpm --qf collection
+- Resolves: bz332211 avoid hazardous filenames
+
+* Wed Nov 21 2007 Navid Sheikhol-Eslami <navid at redhat dot com> - 1.8-0
+- Resolves: bz368261 sosGetCommandOutput() does not block on hung processes
+- Resolves: bz361861 work-around missing traceback.format_exc() in RHEL4
+- Resolves: bz394781 device-mapper: use /sbin/lvm_dump to collect dm related info
+- Resolves: bz386691 unattended --batch option
+- Resolves: bz371251 sos could hang when accessing /sys/hypervisor/uuid
+- 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
+- Resolves: bz238778 added lspci -t
+- 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
+- Resolves: bz332151 apply regex to case number in sysreport for RHEL4
+- Resolves: bz332211 apply regex to case number in sysreport for RHEL5
+- Resolves: bz400111 sos incorrectly reports cluster data in SMP machine
+
+* 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
+- Resolves: bz251927 SOS errata needs to be respin to match 4.6 code base
+- 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
+- Resolves: bz241277 Yum Plugin for sos
+- Resolves: bz247520 Spelling mistake in sosreport output
+- Resolves: bz247531 Feature: plugin to gather initial ramdisk scripts
+- Resolves: bz248252 sos to support language localization
+- Resolves: bz241282 Make SOS for RHEL 4
+
+* 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
+- Resolves: bz241282 fixed incompatibility with python from RHEL4
+
+* 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:
+- Resolves: bz219745 sosreport needs a man page
+- Resolves: bz219667 sosreport does not terminate cleanly on ^C
+- Resolves: bz233375 Make SOS flag the situation when running on a fully virtu...
+- Resolves: bz234873 rhel5 sos needs to include rpm-va by default
+- Resolves: bz219669 sosreport multi-threaded option sometimes fails
+- Resolves: bz219671 RFE for sosreport - allow specification of plugins to be run
+- Resolves: bz219672 RFE - show progress while sosreport is running
+- Resolves: bz219673 Add xen information gathering to sosreport
+- Resolves: bz219675 Collect information related to the new driver update model
+- Resolves: bz219877 'Cancel' button during option selection only cancels sele...
+
+* 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
+
diff --git a/sos/__init__.py b/sos/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/sos/__init__.py
diff --git a/sos/helpers.py b/sos/helpers.py
new file mode 100755
index 00000000..b6b099a5
--- /dev/null
+++ b/sos/helpers.py
@@ -0,0 +1,79 @@
+## helpers.py
+## Implement policies required for the sos system support tool
+
+## Copyright (C) 2006 Steve Conklin <sconklin@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.
+
+## Some code adapted from "Python Cookbook, 2nd ed", by Alex
+## Martelli, Anna Martelli Ravenscroft, and David Ascher
+## (O'Reilly Media, 2005) 0-596-00797-3
+##
+
+"""
+helper functions used by sosreport and plugins
+"""
+import os, sys
+import logging
+from subprocess import Popen, PIPE
+
+def importPlugin(pluginname, name):
+ """ Import a plugin to extend capabilities of sosreport
+ """
+ try:
+ plugin = __import__(pluginname, globals(), locals(), [name])
+ except ImportError:
+ return None
+ return getattr(plugin, name)
+
+def sosGetCommandOutput(command, timeout = 300):
+ """ Execute a command and gather stdin, stdout, and return status.
+ """
+ # soslog = logging.getLogger('sos')
+ # Log if binary is not runnable or does not exist
+ for path in os.environ["PATH"].split(":"):
+ cmdfile = command.strip("(").split()[0]
+ # handle both absolute or relative paths
+ if ( ( not os.path.isabs(cmdfile) and os.access(os.path.join(path,cmdfile), os.X_OK) ) or \
+ ( os.path.isabs(cmdfile) and os.access(cmdfile, os.X_OK) ) ):
+ break
+ else:
+ # soslog.log(logging.VERBOSE, "binary '%s' does not exist or is not runnable" % cmdfile)
+ return (127, "", 0)
+
+ p = Popen(command, shell=True, stdout=PIPE, stderr=PIPE, bufsize=-1)
+ stdout, stderr = p.communicate()
+ return (p.returncode, stdout.strip(), 0)
+
+def commonPrefix(l1, l2, common = []):
+ ''' return a list of common elements at the start of all sequences,
+ then a list of lists that are the unique tails of each sequence. '''
+ if len(l1) < 1 or len(l2) < 1 or l1[0] != l2[0]: return common, [l1, l2]
+ return commonPrefix(l1[1:], l2[1:], common+[l1[0]])
+
+def sosRelPath(path1, path2, sep=os.path.sep, pardir=os.path.pardir):
+ ''' return a relative path from path1 equivalent to path path2.
+ In particular: the empty string, if path1 == path2;
+ path2, if path1 and path2 have no common prefix.
+ '''
+ try:
+ common, (u1, u2) = commonPrefix(path1.split(sep), path2.split(sep))
+ except AttributeError:
+ return path2
+
+ if not common:
+ return path2 # leave path absolute if nothing at all in common
+ return sep.join( [pardir]*len(u1) + u2 )
+
diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/sos/plugins/__init__.py
diff --git a/sos/plugins/acpid.py b/sos/plugins/acpid.py
new file mode 100644
index 00000000..7e94e650
--- /dev/null
+++ b/sos/plugins/acpid.py
@@ -0,0 +1,24 @@
+### 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 sos.plugintools
+
+class acpid(sos.plugintools.PluginBase):
+ """acpid related information
+ """
+ def setup(self):
+ self.addCopySpec("/var/log/acpid*")
+ self.addCopySpec("/etc/acpi/events/power.conf")
+ return
+
diff --git a/sos/plugins/amd.py b/sos/plugins/amd.py
new file mode 100644
index 00000000..d2e85f09
--- /dev/null
+++ b/sos/plugins/amd.py
@@ -0,0 +1,36 @@
+## Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@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 sos.plugintools
+import os
+
+class amd(sos.plugintools.PluginBase):
+ """Amd automounter information
+ """
+ def checkenabled(self):
+ if self.isInstalled("am-utils") or os.path.exists("/etc/rc.d/init.d/amd"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/amd.*")
+ self.addCopySpec("/etc/rc.d/init.d/amd")
+ self.addCopySpec("/etc/sysconfig/amd")
+ self.collectExtOutput("/bin/rpm -qV am-utils")
+ self.collectExtOutput("/bin/egrep -e 'automount|pid.*nfs' /proc/mounts")
+ self.collectExtOutput("/bin/mount | egrep -e 'automount|pid.*nfs'")
+ return
+
diff --git a/sos/plugins/anaconda.py b/sos/plugins/anaconda.py
new file mode 100644
index 00000000..27132fb2
--- /dev/null
+++ b/sos/plugins/anaconda.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.
+
+import sos.plugintools
+import os
+
+class anaconda(sos.plugintools.PluginBase):
+ """Anaconda / Installation information
+ """
+ def checkenabled(self):
+ if os.path.exists("/var/log/anaconda.log"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/root/anaconda-ks.cfg")
+ self.addCopySpec("/root/install.log")
+ self.addCopySpec("/root/install.log.syslog")
+ self.addCopySpec("/var/log/anaconda.log")
+ self.addCopySpec("/var/log/anaconda.syslog")
+ self.addCopySpec("/var/log/anaconda.xlog")
+ return
+
diff --git a/sos/plugins/apache.py b/sos/plugins/apache.py
new file mode 100644
index 00000000..bae93562
--- /dev/null
+++ b/sos/plugins/apache.py
@@ -0,0 +1,28 @@
+### 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 sos.plugintools
+
+class apache(sos.plugintools.PluginBase):
+ """Apache related information
+ """
+ optionList = [("log", "gathers all apache logs", "slow", False)]
+
+ def setup(self):
+ self.addCopySpec("/etc/httpd/conf/httpd.conf")
+ self.addCopySpec("/etc/httpd/conf.d/*.conf")
+ if self.getOption("log"):
+ self.addCopySpec("/var/log/httpd/*")
+ return
+
diff --git a/sos/plugins/auditd.py b/sos/plugins/auditd.py
new file mode 100644
index 00000000..7dd4cad8
--- /dev/null
+++ b/sos/plugins/auditd.py
@@ -0,0 +1,27 @@
+### 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 sos.plugintools
+
+class auditd(sos.plugintools.PluginBase):
+ """Auditd related information
+ """
+
+ optionList = [("syslogsize", "max size (MiB) to collect per syslog file", "", 15)]
+
+ def setup(self):
+ self.addCopySpec("/etc/audit/auditd.conf")
+ self.addCopySpec("/etc/audit/audit.rules")
+ self.addCopySpecLimit("/var/log/audit*", sizelimit = self.getOption("syslogsize"))
+ return
diff --git a/sos/plugins/autofs.py b/sos/plugins/autofs.py
new file mode 100644
index 00000000..2536bfc7
--- /dev/null
+++ b/sos/plugins/autofs.py
@@ -0,0 +1,61 @@
+## Copyright (C) 2007 Red Hat, Inc., Adam Stokes <astokes@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 sos.plugintools
+import os, re
+
+class autofs(sos.plugintools.PluginBase):
+ """autofs server-related information
+ """
+ def checkenabled(self):
+ self.packages = [ "autofs" ]
+ self.files = [ "/etc/sysconfig/autofs" ]
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ def checkdebug(self):
+ """ testing if autofs debug has been enabled anywhere
+ """
+ # Global debugging
+ optlist=[]
+ opt = self.fileGrep(r"^(DEFAULT_LOGGING|DAEMONOPTIONS)=(.*)", "/etc/sysconfig/autofs")
+ for opt1 in opt:
+ for opt2 in opt1.split(" "):
+ optlist.append(opt2)
+ for dtest in optlist:
+ if dtest == "--debug" or dtest == "debug":
+ return True
+
+ def getdaemondebug(self):
+ """ capture daemon debug output
+ """
+ debugout = self.fileGrep(r"^(daemon.*)\s+(\/var\/log\/.*)", "/etc/sysconfig/autofs")
+ for i in debugout:
+ return i[1]
+
+ def setup(self):
+ self.addCopySpec("/etc/auto*")
+ self.addCopySpec("/etc/sysconfig/autofs")
+ self.addCopySpec("/etc/init.d/autofs")
+ self.collectExtOutput("/bin/rpm -qV autofs")
+ self.collectExtOutput("/etc/init.d/autofs status")
+ self.collectExtOutput("ps auxwww | grep automount")
+ self.collectExtOutput("/bin/egrep -e 'automount|pid.*nfs' /proc/mounts")
+ self.collectExtOutput("/bin/mount | egrep -e 'automount|pid.*nfs'")
+ self.collectExtOutput("/sbin/chkconfig --list autofs")
+ if self.checkdebug():
+ self.addCopySpec(self.getdaemondebug())
+ return
+
diff --git a/sos/plugins/bootloader.py b/sos/plugins/bootloader.py
new file mode 100644
index 00000000..5eb811cd
--- /dev/null
+++ b/sos/plugins/bootloader.py
@@ -0,0 +1,32 @@
+### 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 sos.plugintools
+
+class bootloader(sos.plugintools.PluginBase):
+ """Bootloader information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/lilo.conf")
+ self.addCopySpec("/etc/milo.conf")
+ self.addCopySpec("/etc/silo.conf")
+ self.addCopySpec("/boot/efi/efi/redhat/elilo.conf")
+ self.addCopySpec("/boot/grub/grub.conf")
+ self.addCopySpec("/boot/grub/device.map")
+ self.addCopySpec("/boot/yaboot.conf")
+
+ self.collectExtOutput("/sbin/lilo -q")
+ self.collectExtOutput("/bin/ls -laR /boot")
+ return
+
diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py
new file mode 100644
index 00000000..e129739b
--- /dev/null
+++ b/sos/plugins/cluster.py
@@ -0,0 +1,301 @@
+### 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 sos.plugintools
+import os, re
+import time, libxml2
+import glob
+
+class cluster(sos.plugintools.PluginBase):
+ """cluster suite and GFS related information
+ """
+
+ optionList = [("gfslockdump", 'gather output of gfs lockdumps', 'slow', False),
+ ('lockdump', 'gather dlm lockdumps', 'slow', False)]
+
+ def checkenabled(self):
+ rhelver = self.policy().rhelVersion()
+ 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" ]
+
+ self.files = [ "/etc/cluster/cluster.conf", "/proc/cluster" ]
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ def has_gfs(self):
+ return (len(self.doRegexFindAll(r'^\S+\s+\S+\s+gfs\s+.*$', "/etc/mtab")) > 0)
+
+ def diagnose(self):
+ rhelver = self.policy().rhelVersion()
+
+ # check if the minimum set of packages is installed
+ # for RHEL4 RHCS(ccs, cman, cman-kernel, magma, magma-plugins, (dlm, dlm-kernel) || gulm, perl-Net-Telnet, rgmanager, fence)
+ # RHEL4 GFS (GFS, GFS-kernel, ccs, lvm2-cluster, fence)
+
+ pkgs_check = []
+ mods_check = []
+ serv_check = []
+
+ if rhelver == 4:
+ pkgs_check.extend( [ "ccs", "cman", "magma", "magma-plugins", "perl-Net-Telnet", "rgmanager", "fence" ] )
+ mods_check.extend( [ "cman", "dlm" ] )
+ if self.has_gfs():
+ mods_check.append("gfs")
+ serv_check.extend( [ "cman", "ccsd", "rgmanager", "fenced" ] )
+ if self.has_gfs():
+ serv_check.extend( ["gfs", "clvmd"] )
+ elif rhelver == 5:
+ pkgs_check.extend ( [ "cman", "perl-Net-Telnet", "rgmanager" ] )
+ mods_check.extend( [ "dlm" ] )
+ if self.has_gfs():
+ mods_check.extend( ["gfs", "gfs2"] )
+ serv_check.extend( [ "cman", "rgmanager" ] )
+ if self.has_gfs():
+ serv_check.extend( ["gfs", "clvmd"] )
+
+ # check that kernel module packages are installed for
+ # running kernel version
+
+ for modname in mods_check:
+ found = 0
+
+ if self.policy().allPkgsByNameRegex( "^" + modname ):
+ found = 1
+
+ ret, out, time = self.callExtProg('/sbin/modinfo -F vermagic ' + modname)
+
+ if ret == 0:
+ found = 2
+
+ if len(self.fileGrep("^%s\s+" % modname, "/proc/modules")) > 0:
+ found = 3
+
+ if found == 0:
+ self.addDiagnose("required kernel module is missing: %s" % modname)
+ elif found == 1:
+ self.addDiagnose("required module is not available for current kernel: %s" % modname)
+ elif found == 2:
+ self.addDiagnose("required module is available but not loaded: %s" % modname)
+
+ for pkg in pkgs_check:
+ if not self.isInstalled(pkg):
+ self.addDiagnose("required package is missing: %s" % pkg)
+
+ if rhelver == "4":
+ # (dlm, dlm-kernel) || gulm
+ if not ((self.isInstalled("dlm") and self.isInstalled("dlm-kernel")) or self.isInstalled("gulm")):
+ self.addDiagnose("required packages are missing: (dlm, dlm-kernel) || gulm")
+
+ # check if all the needed daemons are active at sosreport time
+ # check if they are started at boot time in RHEL4 RHCS (cman, ccsd, rgmanager, fenced)
+ # and GFS (gfs, ccsd, clvmd, fenced)
+
+ for service in serv_check:
+ ret, out, time = self.callExtProg("/sbin/service %s status &> /dev/null" % service)
+ if ret != 0:
+ self.addDiagnose("service %s is not running" % service)
+
+ if not self.policy().runlevelDefault() in self.policy().runlevelByService(service):
+ self.addDiagnose("service %s is not started in default runlevel" % service)
+
+ # FIXME: missing important cman services
+ # FIXME: any cman service whose state != run ?
+ # Fence Domain: "default" 2 2 run -
+
+ # is cluster quorate
+ if not self.is_cluster_quorate():
+ self.addDiagnose("cluster node is not quorate")
+
+ # if there is no cluster.conf, diagnose() finishes here.
+ try:
+ os.stat("/etc/cluster/cluster.conf")
+ except:
+ self.addDiagnose("/etc/cluster/cluster.conf is missing")
+ return
+
+ # setup XML xpath context
+ xml = libxml2.parseFile("/etc/cluster/cluster.conf")
+ xpathContext = xml.xpathNewContext()
+
+ # make sure that the node names are valid according to RFC 2181
+ for hostname in xpathContext.xpathEval('/cluster/clusternodes/clusternode/@name'):
+ if not re.match('^[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$', hostname.content):
+ self.addDiagnose("node name (%s) contains invalid characters" % hostname.content)
+
+ # do not rely on DNS to resolve node names, must have them in /etc/hosts
+ for hostname in xpathContext.xpathEval('/cluster/clusternodes/clusternode/@name'):
+ if len(self.fileGrep(r'^.*\W+%s' % hostname.content , "/etc/hosts")) == 0:
+ self.addDiagnose("node %s is not defined in /etc/hosts" % hostname.content)
+
+ # check fencing (warn on no fencing)
+ if len(xpathContext.xpathEval("/cluster/clusternodes/clusternode[not(fence/method/device)]")):
+ if self.has_gfs():
+ self.addDiagnose("one or more nodes have no fencing agent configured: fencing is required for GFS to work")
+ else:
+ self.addDiagnose("one or more nodes have no fencing agent configured: the cluster infrastructure might not work as intended")
+
+ # check fencing (warn on manual)
+ if len(xpathContext.xpathEval("/cluster/clusternodes/clusternode[/cluster/fencedevices/fencedevice[@agent='fence_manual']/@name=fence/method/device/@name]")):
+ self.addDiagnose("one or more nodes have manual fencing agent configured (data integrity is not guaranteed)")
+
+ # if fence_ilo or fence_drac, make sure acpid is not running
+ ret, hostname, time = self.callExtProg("/bin/uname -n").split(".")[0]
+ if len(xpathContext.xpathEval('/cluster/clusternodes/clusternode[@name = "%s" and /cluster/fencedevices/fencedevice[@agent="fence_rsa" or @agent="fence_drac"]/@name=fence/method/device/@name]' % hostname )):
+ ret, out, time = self.callExtProg("/sbin/service acpid status")
+ if ret == 0 or self.policy().runlevelDefault() in self.policy().runlevelByService("acpid"):
+ self.addDiagnose("acpid is enabled, this may cause problems with your fencing method.")
+
+ # check for fs exported via nfs without nfsid attribute
+ if len(xpathContext.xpathEval("/cluster/rm/service//fs[not(@fsid)]/nfsexport")):
+ for xmlNode in xpathContext.xpathEval("/cluster/rm/service//fs[not(@fsid)]"):
+ fsRefAttribute = xmlNode.xpathEval("@ref")
+ if (len(fsRefAttribute) > 0) :
+ fsRefName = fsRefAttribute[0].content
+ if len(xpathContext.xpathEval("cluster/rm/resources/fs[@name='%s'][not(@fsid)]" % fsRefName)):
+ self.addDiagnose("one or more nfs export do not have a fsid attribute set.")
+ break
+
+ # cluster.conf file version and the in-memory cluster configuration version matches
+ status, cluster_version, time = self.callExtProg("cman_tool status | grep 'Config version'")
+ if not status:
+ cluster_version = cluster_version[16:]
+ else:
+ cluster_version = None
+ conf_version = xpathContext.xpathEval("/cluster/@config_version")[0].content
+
+ if status == 0 and conf_version != cluster_version:
+ self.addDiagnose("cluster.conf and in-memory configuration version differ (%s != %s)" % (conf_version, cluster_version) )
+
+ status, output, time = self.callExtProg("/usr/sbin/rg_test test /etc/cluster/cluster.conf")
+ if output.find("Error: ") > 0:
+ self.addDiagnose("configuration errors are present according to rg_test")
+
+ # make sure the first part of the lock table matches the cluster name
+ # and that the locking protocol is sane
+ cluster_name = xpathContext.xpathEval("/cluster/@name")[0].content
+
+ for fs in self.fileGrep(r'^[^#][/\w]*\W*[/\w]*\W*gfs', "/etc/fstab"):
+ # for each gfs entry
+ fs = fs.split()
+ lockproto = self.get_gfs_sb_field(fs[0], "sb_lockproto")
+ if lockproto and lockproto != self.get_locking_proto():
+ self.addDiagnose("gfs mountpoint (%s) is using the wrong locking protocol (%s)" % (fs[0], lockproto) )
+
+ locktable = self.get_gfs_sb_field(fs[0], "sb_locktable")
+ try: locktable = locktable.split(":")[0]
+ except: continue
+ if locktable != cluster_name:
+ self.addDiagnose("gfs mountpoint (%s) is using the wrong locking table" % fs[0])
+
+ # Test fence groups for valid id and state
+ self.test_fence_id()
+
+ # Check for existence of weak-updates in gfs2 prior to 2.6.18-128
+ if rhelver == 5:
+ ret, vermagic, time = self.callExtProg("modinfo -F vermagic gfs2")
+ # just kernel release from vermagic line
+ vermagic = vermagic.split()[0].lstrip('2.6.18-')
+ vermagic = vermagic[:vermagic.find('.')]
+ if int(vermagic) < 128:
+ self.addDiagnose('GFS2 is being used via weak-updates, kmod-gfs2 should be uninstalled and system reboot' \
+ 'to allow for kernel provided gfs2 module to be used.')
+
+ def setup(self):
+ self.collectExtOutput("/sbin/fdisk -l")
+ self.addCopySpec("/etc/cluster.conf")
+ self.addCopySpec("/etc/cluster.xml")
+ self.addCopySpec("/etc/cluster")
+ self.collectExtOutput("/usr/sbin/rg_test test /etc/cluster/cluster.conf")
+ self.addCopySpec("/proc/cluster")
+ self.collectExtOutput("cman_tool status")
+ self.collectExtOutput("cman_tool services")
+ self.collectExtOutput("cman_tool -af nodes")
+ self.collectExtOutput("ccs_tool lsnode")
+ self.collectExtOutput("openais-cfgtool -s")
+ self.collectExtOutput("clustat")
+
+ self.collectExtOutput("/sbin/ipvsadm -L")
+
+ if self.getOption('gfslockdump'): self.do_gfslockdump()
+ if self.getOption('lockdump'): self.do_lockdump()
+
+ return
+
+ def do_lockdump(self):
+ status, output, time= self.callExtProg("cman_tool services")
+ if status:
+ # command somehow failed
+ return False
+
+ rhelver = self.get_redhat_release()
+
+ if rhelver == "4":
+ regex = r'^DLM Lock Space:\s*"([^"]*)".*$'
+ elif rhelver == "5Server" or rhelver == "5Client":
+ regex = r'^dlm\s+[^\s]+\s+([^\s]+)\s.*$'
+
+ reg=re.compile(regex,re.MULTILINE)
+ for lockspace in reg.findall(output):
+ ret, out, time = self.callExtProg("echo %s > /proc/cluster/dlm_locks" % lockspace)
+ self.collectOutputNow("cat /proc/cluster/dlm_locks", root_symlink = "dlm_locks_%s" % lockspace)
+
+ def get_locking_proto(self):
+ # FIXME: what's the best way to find out ?
+ return "lock_dlm"
+ return "lock_gulm"
+
+ def do_gfslockdump(self):
+ for mntpoint in self.doRegexFindAll(r'^\S+\s+([^\s]+)\s+gfs\s+.*$', "/proc/mounts"):
+ self.collectExtOutput("/sbin/gfs_tool lockdump %s" % mntpoint, root_symlink = "gfs_lockdump_" + self.mangleCommand(mntpoint) )
+
+ def do_rgmanager_bt(self):
+ # FIXME: threads backtrace via SIGALRM
+ return
+
+ def postproc(self):
+ for cluster_conf in glob.glob("/etc/cluster/cluster.conf*"):
+ self.doRegexSub(cluster_conf, r"(\s*\<fencedevice\s*.*\s*passwd\s*=\s*)\S+(\")", r"\1%s" %('"***"'))
+ return
+
+ def is_cluster_quorate(self):
+ ret, output, time = self.callExtProg("cman_tool status | grep '^Membership state: '")
+ try:
+ if output[18:] == "Cluster-Member":
+ return True
+ except:
+ pass
+ return False
+
+ def get_gfs_sb_field(self, device, field):
+ for ret, line, time in self.callExtProg("/sbin/gfs_tool sb %s all" % device).split("\n"):
+ if re.match('^\W*%s = ' % field, line):
+ return line.split("=")[1].strip()
+ return False
+
+ # Diagnostic testing functions
+ def test_fence_id(self):
+ # resolves rhbz 499468 and 499472
+ for ret, line, time in self.callExtProg("/sbin/group_tool ls | grep -v '^\['").split("\n")[1:]:
+ for a in line.split():
+ # we can do this since fence id is a fix field
+ if re.match('00000000', a):
+ self.addDiagnose('Invalid fence id: %s' % (line,))
+ if line.split()[-1] != 'none':
+ self.addDiagnose("Possible incorrect state: %s, for group: %s" % (line.split()[-1], line))
+ return
+
diff --git a/sos/plugins/cobbler.py b/sos/plugins/cobbler.py
new file mode 100644
index 00000000..d35a0b8d
--- /dev/null
+++ b/sos/plugins/cobbler.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.
+
+import sos.plugintools
+import os
+
+class cobbler(sos.plugintools.PluginBase):
+ """cobbler related information
+ """
+ def checkenabled(self):
+ if self.isInstalled("cobbler"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/cobbler")
+ self.addCopySpec("/var/log/cobbler")
+ self.addCopySpec("/var/lib/rhn/kickstarts")
+ self.addCopySpec("/var/lib/cobbler")
+ return
diff --git a/sos/plugins/crontab.py b/sos/plugins/crontab.py
new file mode 100644
index 00000000..8ad4c232
--- /dev/null
+++ b/sos/plugins/crontab.py
@@ -0,0 +1,27 @@
+### 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 sos.plugintools
+import os
+
+class crontab(sos.plugintools.PluginBase):
+ """Crontab information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/cron*")
+ self.collectExtOutput("/usr/bin/crontab -l -u root", suggest_filename = "root_crontab")
+ self.collectExtOutput("""for i in `ls /home/`;\
+ do echo "User :" $i;/usr/bin/crontab -l -u $i;\
+ echo "---------------";done""", suggest_filename = "users_crontabs")
+ return
diff --git a/sos/plugins/cs.py b/sos/plugins/cs.py
new file mode 100644
index 00000000..7f642df9
--- /dev/null
+++ b/sos/plugins/cs.py
@@ -0,0 +1,50 @@
+## Copyright (C) 2007 Red Hat, Inc., Kent Lamb <klamb@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.
+
+#############################################################
+# This plugin assumes default location of Certificate System 7.x on RHEL4
+# Certificate System 7.x is not supported on RHEL5.
+# Any improvemts for this plugin are appreciated. Please send them to
+# klamb@redhat.com
+# thanks,
+# kent lamb
+#############################################################
+
+
+import sos.plugintools
+import os
+
+class cs(sos.plugintools.PluginBase):
+ """Certificate System 7.x Diagnostic Information
+ """
+ # check for default location of pki services (/var/lib.rhpki-*).
+ # If default path exists, assume rhpki- glob and grap all installed
+ # subsystems. If customer has a custom install path, then ln -s the
+ # custom path to /var/lib/rhkpi-installed_subsystem (/var/lib/rhpki-ca,
+ # /var/lib/rhpki-kra ect).
+
+ def checkenabled(self):
+ if self.isInstalled("rhpki-common") or os.path.exists("/var/lib/rhpki-*"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/var/lib/rhpki-*/conf/*cfg*")
+ self.addCopySpec("/var/lib/rhpki-*/conf/*.ldif")
+ self.addCopySpec("/var/lib/rhpki-*/logs/*")
+ return
+
+
diff --git a/sos/plugins/devicemapper.py b/sos/plugins/devicemapper.py
new file mode 100644
index 00000000..d1795352
--- /dev/null
+++ b/sos/plugins/devicemapper.py
@@ -0,0 +1,66 @@
+### 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 sos.plugintools
+import os
+from sos.helpers import sosGetCommandOutput
+
+class devicemapper(sos.plugintools.PluginBase):
+ """device-mapper related information (dm, lvm, multipath)
+ """
+
+ optionList = [("lvmdump", 'collect raw metadata from PVs', 'slow', False)]
+ dmraidOptions = ['V','b','r','s','tay','rD']
+
+ def do_lvmdump(self):
+ """Collects raw metadata directly from the PVs using dd
+ """
+ sosGetCommandOutput("lvmdump -d %s" % os.path.join(self.cInfo['dstroot'],"lvmdump"))
+
+ def setup(self):
+ self.collectExtOutput("/sbin/dmsetup info -c")
+ self.collectExtOutput("/sbin/dmsetup table")
+ self.collectExtOutput("/sbin/dmsetup status")
+
+ self.collectExtOutput("/usr/sbin/vgdisplay -vv", root_symlink = "vgdisplay")
+ self.collectExtOutput("/usr/sbin/vgscan -vvv")
+ self.collectExtOutput("/usr/sbin/pvscan -v")
+ self.collectExtOutput("/usr/sbin/lvs -a -o +devices")
+ self.collectExtOutput("/usr/sbin/pvs -a -v")
+ self.collectExtOutput("/usr/sbin/vgs -v")
+ self.collectExtOutput("/sbin/mdadm -D /dev/md*")
+
+ self.addCopySpec("/etc/lvm")
+
+ self.addCopySpec("/etc/multipath.conf")
+ self.addCopySpec("/var/lib/multipath/bindings")
+ self.collectExtOutput("/sbin/multipath -v4 -ll")
+
+ self.collectExtOutput("/usr/bin/systool -v -c -b scsi")
+
+ self.collectExtOutput("/bin/ls -laR /dev")
+ self.collectExtOutput("/bin/ls -laR /sys/block")
+
+ if self.getOption('lvmdump'):
+ self.do_lvmdump()
+
+ if os.path.isdir("/sys/block"):
+ for disk in os.listdir("/sys/block"):
+ if disk in [ ".", ".." ] or disk.startswith("ram"):
+ continue
+ self.collectExtOutput("/usr/bin/udevinfo -ap /sys/block/%s" % (disk))
+ for opt in self.dmraidOptions:
+ self.collectExtOutput("/sbin/dmraid -%s" % (opt,))
+
+ return
diff --git a/sos/plugins/dhcp.py b/sos/plugins/dhcp.py
new file mode 100644
index 00000000..872377cf
--- /dev/null
+++ b/sos/plugins/dhcp.py
@@ -0,0 +1,29 @@
+### 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 sos.plugintools
+
+class dhcp(sos.plugintools.PluginBase):
+ """DHCP related information
+ """
+ def checkenabled(self):
+ self.files = ['/etc/rc.d/init.d/dhcpd']
+ self.packages = ['dhcp']
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ def setup(self):
+ self.addCopySpec("/etc/sysconfig/dhcrelay")
+ self.addCopySpec("/etc/sysconfig/dhcpd")
+ self.addCopySpec("/etc/dhcpd.conf")
+ return
diff --git a/sos/plugins/dovecot.py b/sos/plugins/dovecot.py
new file mode 100644
index 00000000..553ff3e1
--- /dev/null
+++ b/sos/plugins/dovecot.py
@@ -0,0 +1,26 @@
+### 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 sos.plugintools
+import os
+
+class dovecot(sos.plugintools.PluginBase):
+ """dovecot server related information
+ """
+ def setup(self):
+ if os.path.exists("/etc/dovecot.conf"):
+ self.addCopySpec("/etc/dovecot*")
+ self.collectExtOutput("/usr/sbin/dovecot -n")
+ return
+
diff --git a/sos/plugins/ds.py b/sos/plugins/ds.py
new file mode 100644
index 00000000..6f24cb8c
--- /dev/null
+++ b/sos/plugins/ds.py
@@ -0,0 +1,50 @@
+## Copyright (C) 2007 Red Hat, Inc., Kent Lamb <klamb@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 sos.plugintools
+import os
+
+class ds(sos.plugintools.PluginBase):
+ """Directory Server information
+ """
+
+ def check_version(self):
+ if self.isInstalled("redhat-ds-base") or \
+ os.path.exists("/etc/dirsrv"):
+ return "ds8"
+ elif self.isInstalled("redhat-ds-7") or \
+ os.path.exists("/opt/redhat-ds"):
+ return "ds7"
+ return False
+
+ def checkenabled(self):
+ if self.isInstalled("redhat-ds-base") or \
+ os.path.exists("/etc/dirsrv"):
+ return True
+ elif self.isInstalled("redhat-ds-7") or \
+ os.path.exists("/opt/redhat-ds"):
+ return True
+ return False
+
+ def setup(self):
+ if "ds8" in self.check_version():
+ self.addCopySpec("/etc/dirsrv/slapd*")
+ self.addCopySpec("/var/log/dirsrv/*")
+ if "ds7" in self.check_version():
+ self.addCopySpec("/opt/redhat-ds/slapd-*/config")
+ self.addCopySpec("/opt/redhat-ds/slapd-*/logs")
+ return
+
diff --git a/sos/plugins/emc.py b/sos/plugins/emc.py
new file mode 100644
index 00000000..4e9959aa
--- /dev/null
+++ b/sos/plugins/emc.py
@@ -0,0 +1,225 @@
+## emc.py
+## Captures EMC specific information during a sos run.
+
+## Copyright (C) 2008 EMC Corporation. Keith Kearnan <kearnan_keith@emc.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
+
+## 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 sos.plugintools, os
+
+class emc(sos.plugintools.PluginBase):
+ """EMC related information (PowerPath, Solutions Enabler CLI and Navisphere CLI)
+ """
+
+ def about_emc(self):
+ """ EMC Corporation specific information
+ """
+ self.addCustomText('<center><h1><font size="+4"color="blue">EMC&sup2;</font><font size="-2" color="blue">&reg;</font>')
+ self.addCustomText('<br><font size="+1">where information lives</font><font size="-2">&reg;</font></h1>')
+ self.addCustomText("EMC Corporation is the world's leading developer and provider of information ")
+ self.addCustomText("infrastructure technology and solutions that enable organizations of all sizes to transform ")
+ self.addCustomText("the way they compete and create value from their information. &nbsp;")
+ self.addCustomText("Information about EMC's products and services can be found at ")
+ self.addCustomText('<a href="http://www.EMC.com/">www.EMC.com</a>.</center>')
+ return
+
+ def get_pp_files(self):
+ """ EMC PowerPath specific information - files
+ """
+ self.collectExtOutput("/sbin/powermt version")
+ self.addCopySpec("/etc/init.d/PowerPath")
+ self.addCopySpec("/etc/powermt.custom")
+ self.addCopySpec("/etc/emcp_registration")
+ self.addCopySpec("/etc/emc/mpaa.excluded")
+ self.addCopySpec("/etc/emc/mpaa.lams")
+ self.addCopySpec("/etc/emcp_devicesDB.dat")
+ self.addCopySpec("/etc/emcp_devicesDB.idx")
+ self.addCopySpec("/etc/emc/powerkmd.custom")
+ self.addCopySpec("/etc/modprobe.conf.pp")
+ return
+
+ def get_pp_config(self):
+ """ EMC PowerPath specific information - commands
+ """
+ self.collectExtOutput("/sbin/powermt display")
+ self.collectExtOutput("/sbin/powermt display dev=all")
+ self.collectExtOutput("/sbin/powermt check_registration")
+ self.collectExtOutput("/sbin/powermt display options")
+ self.collectExtOutput("/sbin/powermt display ports")
+ self.collectExtOutput("/sbin/powermt display paths")
+ self.collectExtOutput("/sbin/powermt dump")
+ return
+
+ def get_symcli_files(self):
+ """ EMC Solutions Enabler SYMCLI specific information - files
+ """
+ self.addCopySpec("/var/symapi/db/symapi_db.bin")
+ self.addCopySpec("/var/symapi/config/[a-z]*")
+ self.addCopySpec("/var/symapi/log/[a-z]*")
+ return
+
+ def get_symcli_config(self):
+ """ EMC Solutions Enabler SYMCLI specific information - Symmetrix/DMX - commands
+ """
+ self.collectExtOutput("/usr/symcli/bin/symcli -def")
+ self.collectExtOutput("/usr/symcli/bin/symdg list")
+ self.collectExtOutput("/usr/symcli/bin/symdg -v list")
+ self.collectExtOutput("/usr/symcli/bin/symcg list")
+ self.collectExtOutput("/usr/symcli/bin/symcg -v list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -v list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -db")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -semaphores list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -dir all -v list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -connections list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -app -v list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -fa all -port list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -ra all -port list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg -sa all -port list")
+ self.collectExtOutput("/usr/symcli/bin/symcfg list -lock")
+ self.collectExtOutput("/usr/symcli/bin/symcfg list -lockn all")
+ self.collectExtOutput("/usr/symcli/bin/syminq")
+ self.collectExtOutput("/usr/symcli/bin/syminq -v")
+ self.collectExtOutput("/usr/symcli/bin/syminq -symmids")
+ self.collectExtOutput("/usr/symcli/bin/syminq hba -fibre")
+ self.collectExtOutput("/usr/symcli/bin/syminq hba -scsi")
+ self.collectExtOutput("/usr/symcli/bin/symhost show -config")
+ self.collectExtOutput("/usr/symcli/bin/stordaemon list")
+ self.collectExtOutput("/usr/symcli/bin/stordaemon -v list")
+ self.collectExtOutput("/usr/symcli/bin/sympd list")
+ self.collectExtOutput("/usr/symcli/bin/sympd list -vcm")
+ self.collectExtOutput("/usr/symcli/bin/symdev list")
+ self.collectExtOutput("/usr/symcli/bin/symdev -v list")
+ self.collectExtOutput("/usr/symcli/bin/symdev -rdfa list")
+ self.collectExtOutput("/usr/symcli/bin/symdev -rdfa -v list")
+ self.collectExtOutput("/usr/symcli/bin/symbcv list")
+ self.collectExtOutput("/usr/symcli/bin/symbcv -v list")
+ self.collectExtOutput("/usr/symcli/bin/symrdf list")
+ self.collectExtOutput("/usr/symcli/bin/symrdf -v list")
+ self.collectExtOutput("/usr/symcli/bin/symrdf -rdfa list")
+ self.collectExtOutput("/usr/symcli/bin/symrdf -rdfa -v list")
+ self.collectExtOutput("/usr/symcli/bin/symsnap list")
+ self.collectExtOutput("/usr/symcli/bin/symsnap list -savedevs")
+ self.collectExtOutput("/usr/symcli/bin/symclone list")
+ self.collectExtOutput("/usr/symcli/bin/symevent list")
+ self.collectExtOutput("/usr/symcli/bin/symmask list hba")
+ self.collectExtOutput("/usr/symcli/bin/symmask list logins")
+ self.collectExtOutput("/usr/symcli/bin/symmaskdb list database")
+ self.collectExtOutput("/usr/symcli/bin/symmaskdb -v list database")
+ return
+
+ def get_navicli_config(self):
+ """ EMC Navisphere Host Agent NAVICLI specific information - files
+ """
+ self.addCopySpec("/etc/Navisphere/agent.config")
+ self.addCopySpec("/etc/Navisphere/Navimon.cfg")
+ self.addCopySpec("/etc/Navisphere/Quietmode.cfg")
+ self.addCopySpec("/etc/Navisphere/messages/[a-z]*")
+ self.addCopySpec("/etc/Navisphere/log/[a-z]*")
+ return
+
+ def get_navicli_SP_info(self,SP_address):
+ """ EMC Navisphere Host Agent NAVICLI specific information - CLARiiON - commands
+ """
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getall" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getsptime -spa" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getsptime -spb" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getlog" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getdisk" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getcache" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getlun" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getlun -rg -type -default -owner -crus -capacity" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s lunmapinfo" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s getcrus" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s port -list -all" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s storagegroup -list" % SP_address)
+ self.collectExtOutput("/opt/Navisphere/bin/navicli -h %s spportspeed -get" % SP_address)
+ return
+
+ def checkenabled(self):
+ self.packages = [ "EMCpower" ]
+ self.files = [ "/opt/Navisphere/bin", "/proc/emcp" ]
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ def setup(self):
+ from subprocess import Popen, PIPE
+ ## About EMC Corporation default no if no EMC products are installed
+ add_about_emc="no"
+
+ ## If PowerPath is installed collect PowerPath specific information
+ emc_pp_installed = Popen("/bin/rpm -qa | /bin/grep -i EMCpower", shell=True, stdout=PIPE).stdout.read()
+ if emc_pp_installed != "":
+ print "EMC PowerPath is installed."
+ print " Gathering EMC PowerPath information..."
+ self.addCustomText("EMC PowerPath is installed.<br>")
+ self.get_pp_files()
+ add_about_emc = "yes"
+
+ ## If PowerPath is running collect additional PowerPath specific information
+ if os.path.isdir("/proc/emcp"):
+ print "EMC PowerPath is running."
+ print " Gathering additional EMC PowerPath information..."
+ self.get_pp_config()
+
+ ## If Solutions Enabler is installed collect Symmetrix/DMX specific information
+ emc_symcli_installed = Popen("/bin/rpm -qa | /bin/grep -i symcli-symcli", shell=True, stdout=PIPE).stdout.read()
+ if emc_symcli_installed != "":
+ print "EMC Solutions Enabler SYMCLI is installed."
+ print " Gathering EMC Solutions Enabler SYMCLI information..."
+ self.addCustomText("EMC Solutions Enabler is installed.<br>")
+ self.get_symcli_files()
+ self.get_symcli_config()
+ add_about_emc = "yes"
+
+ ## If Navisphere Host Agent is installed collect CLARiiON specific information
+ if os.path.isdir("/opt/Navisphere/bin"):
+ print ""
+ print "The EMC CLARiiON Navisphere Host Agent is installed."
+ self.addCustomText("EMC CLARiiON Navisphere Host Agent is installed.<br>")
+ self.get_navicli_config()
+ print " Gathering Navisphere NAVICLI Host Agent information..."
+ print " Please enter a CLARiiON SP IP address. In order to collect"
+ print " information for both SPA and SPB as well as multiple"
+ print " CLARiiON arrays (if desired) you will be prompted multiple times."
+ print " To exit simply press [Enter]"
+ print ""
+ add_about_emc = "yes"
+ CLARiiON_IP_address_list = []
+ CLARiiON_IP_loop = "stay_in"
+ 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("/opt/Navisphere/bin/navicli -h %s getsptime" % (ans,), shell=True, stdout=PIPE, stderr=PIPE)
+ out, err = p.communicate()
+ if p.returncode == 0:
+ CLARiiON_IP_address_list.append(ans)
+ else:
+ if ans != "":
+ print "The IP address you entered, %s, is not to an active CLARiiON SP." % ans
+ if ans == "":
+ CLARiiON_IP_loop = "get_out"
+ ## Sort and dedup the list of CLARiiON IP Addresses
+ CLARiiON_IP_address_list.sort()
+ for SP_address in CLARiiON_IP_address_list:
+ if CLARiiON_IP_address_list.count(SP_address) > 1:
+ CLARiiON_IP_address_list.remove(SP_address)
+ for SP_address in CLARiiON_IP_address_list:
+ if SP_address != "":
+ print " Gathering NAVICLI information for %s..." % SP_address
+ self.get_navicli_SP_info(SP_address)
+
+ ## Only provide About EMC if EMC products are installed
+ if add_about_emc != "no":
+ self.about_emc()
+ return
diff --git a/sos/plugins/filesys.py b/sos/plugins/filesys.py
new file mode 100644
index 00000000..330e0357
--- /dev/null
+++ b/sos/plugins/filesys.py
@@ -0,0 +1,65 @@
+### 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 sos.plugintools
+import os
+import re
+from itertools import *
+
+class filesys(sos.plugintools.PluginBase):
+ """information on filesystems
+ """
+ optionList = [("lsof", 'gathers information on all open files', 'slow', False)]
+ optionList = [("dumpe2fs", 'dump filesystem information', 'slow', False)]
+
+ def setup(self):
+ self.addCopySpec("/proc/filesystems")
+ self.addCopySpec("/etc/fstab")
+ self.addCopySpec("/proc/self/mounts")
+ self.addCopySpec("/proc/mounts")
+ self.addCopySpec("/proc/mdstat")
+ self.addCopySpec("/etc/raidtab")
+ mounts = self.collectOutputNow("/bin/mount -l", root_symlink = "mount")
+ self.addCopySpec("/etc/mdadm.conf")
+
+ self.collectExtOutput("/bin/df -al", root_symlink = "df")
+ if self.getOption('lsof'):
+ self.collectExtOutput("/usr/sbin/lsof -b +M -n -l -P", root_symlink = "lsof")
+ self.collectExtOutput("/sbin/blkid -c /dev/null")
+
+ part_titlep = re.compile("^major")
+ blankp = re.compile("^$")
+ partlist = []
+ devlist = []
+ try:
+ for line in open('/proc/partitions'):
+ if((bool(part_titlep.match(line))) | (bool(blankp.match(line)))):
+ continue
+ partlist.append('/dev/' + line.split()[-1])
+ except IOError:
+ exit(1)
+ for dev in izip(partlist):
+ ret, hdparm, time = self.callExtProg('/sbin/hdparm -g %s' %(dev))
+ if(ret == 0):
+ start_geo = hdparm.strip().split("\n")[-1].strip().split()[-1]
+ if(start_geo == "0"):
+ devlist.append(dev)
+ for i in izip(devlist):
+ self.collectExtOutput("/sbin/parted -s %s print" % (i))
+
+ if self.getOption('dumpe2fs'):
+ for extfs in izip(self.doRegexFindAll(r"^(/dev/.+) on .+ type ext.\s+", mounts)):
+ self.collectExtOutput("/sbin/dumpe2fs %s" % (extfs))
+ return
+
diff --git a/sos/plugins/ftp.py b/sos/plugins/ftp.py
new file mode 100644
index 00000000..5bed5667
--- /dev/null
+++ b/sos/plugins/ftp.py
@@ -0,0 +1,30 @@
+### 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 sos.plugintools
+import os
+
+class ftp(sos.plugintools.PluginBase):
+ """FTP server related information
+ """
+ def checkenabled(self):
+ if self.isInstalled("vsftpd") or os.path.exists("/etc/vsftpd"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/ftp*")
+ self.addCopySpec("/etc/vsftpd")
+ return
+
diff --git a/sos/plugins/gdm.py b/sos/plugins/gdm.py
new file mode 100644
index 00000000..bf75ea33
--- /dev/null
+++ b/sos/plugins/gdm.py
@@ -0,0 +1,22 @@
+### 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 sos.plugintools
+
+class gdm(sos.plugintools.PluginBase):
+ """gdm related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/gdm/*")
+ return
diff --git a/sos/plugins/general.py b/sos/plugins/general.py
new file mode 100644
index 00000000..2f6a8e7b
--- /dev/null
+++ b/sos/plugins/general.py
@@ -0,0 +1,59 @@
+### 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 sos.plugintools
+import glob
+import commands
+
+class general(sos.plugintools.PluginBase):
+ """basic system information
+ """
+
+ optionList = [("syslogsize", "max size (MiB) to collect per syslog file", "", 15),
+ ("all_logs", "collect all log files defined in syslog.conf", "", False)]
+
+ def setup(self):
+ self.addCopySpec("/etc/redhat-release")
+ self.addCopySpec("/etc/fedora-release")
+ self.addCopySpec("/etc/inittab")
+ self.addCopySpec("/etc/sos.conf")
+ self.addCopySpec("/etc/sysconfig")
+ self.addCopySpec("/proc/stat")
+ # Capture dmesg from system start
+ self.addCopySpec("/var/log/dmesg")
+ # Capture second dmesg from time of sos run
+ self.collectExtOutput("/bin/dmesg", suggest_filename="dmesg_now")
+ self.addCopySpecLimit("/var/log/messages*", sizelimit = self.getOption("syslogsize"))
+ self.addCopySpecLimit("/var/log/secure*", sizelimit = self.getOption("syslogsize"))
+ self.addCopySpec("/var/log/sa")
+ self.addCopySpec("/var/log/pm/suspend.log")
+ self.addCopySpec("/var/log/up2date")
+ self.addCopySpec("/etc/exports")
+ self.collectExtOutput("/bin/hostname", root_symlink = "hostname")
+ self.collectExtOutput("/bin/date", root_symlink = "date")
+ self.collectExtOutput("/usr/bin/uptime", root_symlink = "uptime")
+
+ if self.getOption('all_logs'):
+ rhelver = self.policy().rhelVersion()
+ if rhelver == 5 or rhelver == 4:
+ logs=self.doRegexFindAll(r"^\S+\s+(\/.*log.*)\s+$", "/etc/syslog.conf")
+ for i in logs:
+ if not os.path.isfile(i): continue
+ self.addCopySpec(i)
+ return
+
+ def postproc(self):
+ self.doRegexSub("/etc/sysconfig/rhn/up2date", r"(\s*proxyPassword\s*=\s*)\S+", r"\1***")
+ return
diff --git a/sos/plugins/hardware.py b/sos/plugins/hardware.py
new file mode 100644
index 00000000..7b99e063
--- /dev/null
+++ b/sos/plugins/hardware.py
@@ -0,0 +1,52 @@
+### 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 sos.plugintools
+
+class hardware(sos.plugintools.PluginBase):
+ """hardware related information
+ """
+ def setup(self):
+ self.addCopySpec("/proc/partitions")
+ self.addCopySpec("/proc/cpuinfo")
+ self.addCopySpec("/proc/meminfo")
+ self.addCopySpec("/proc/ioports")
+ self.addCopySpec("/proc/interrupts")
+ self.addCopySpec("/proc/scsi")
+ self.addCopySpec("/proc/dma")
+ self.addCopySpec("/proc/devices")
+ self.addCopySpec("/proc/rtc")
+ self.addCopySpec("/proc/ide")
+ self.addCopySpec("/proc/bus")
+ self.addCopySpec("/etc/stinit.def")
+ self.addCopySpec("/etc/sysconfig/hwconf")
+ self.addCopySpec("/proc/chandev")
+ self.addCopySpec("/proc/dasd")
+ self.addCopySpec("/proc/s390dbf/tape")
+ self.addCopySpec("/sys/bus/scsi")
+ self.addCopySpec("/sys/state")
+ self.collectExtOutput("/usr/share/rhn/up2date_client/hardware.py")
+ self.collectExtOutput("""/bin/echo -e "lspci:\n" ; /sbin/lspci ; /bin/echo -e "\nlspci -nvv:\n" ; /sbin/lspci -nvv ; /bin/echo -e "\nlspci -tv:\n" ; /sbin/lspci -tv""", suggest_filename = "lspci", root_symlink = "lspci")
+
+ self.collectExtOutput("/usr/sbin/dmidecode", root_symlink = "dmidecode")
+
+ if self.policy().getArch().endswith("386"):
+ self.collectExtOutput("/usr/sbin/x86info -a")
+
+ self.collectExtOutput("/sbin/lsusb")
+ self.collectExtOutput("/usr/bin/lshal")
+ self.collectExtOutput("/usr/bin/systool -c fc_host -v")
+ self.collectExtOutput("/usr/bin/systool -c scsi_host -v")
+ return
+
diff --git a/sos/plugins/hts.py b/sos/plugins/hts.py
new file mode 100644
index 00000000..4d5cf652
--- /dev/null
+++ b/sos/plugins/hts.py
@@ -0,0 +1,23 @@
+### 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 sos.plugintools
+
+class hts(sos.plugintools.PluginBase):
+ """Red Hat Hardware Test Suite related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/httpd/conf.d/hts.conf")
+ self.addCopySpec("/var/hts")
+ return
diff --git a/sos/plugins/i18n.py b/sos/plugins/i18n.py
new file mode 100644
index 00000000..0a793d0f
--- /dev/null
+++ b/sos/plugins/i18n.py
@@ -0,0 +1,26 @@
+### 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 sos.plugintools
+import os
+
+class i18n(sos.plugintools.PluginBase):
+ """i18n related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/sysconfig/i18n")
+ self.addCopySpec("/etc/X11/xinit/xinput.d/*")
+ self.collectExtOutput("/usr/bin/locale")
+ return
+
diff --git a/sos/plugins/initrd.py b/sos/plugins/initrd.py
new file mode 100644
index 00000000..7bd7e1f3
--- /dev/null
+++ b/sos/plugins/initrd.py
@@ -0,0 +1,28 @@
+### 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 sos.plugintools
+import glob
+
+class initrd(sos.plugintools.PluginBase):
+ """initrd related information
+ """
+ def setup(self):
+ for initrd in glob.glob('/boot/initrd-*.img'):
+ self.collectExtOutput("/bin/zcat "+initrd+" | /bin/cpio "+
+ "--extract --to-stdout init" )
+ return
+
+ def defaultenabled(self):
+ return False
diff --git a/sos/plugins/ipa.py b/sos/plugins/ipa.py
new file mode 100644
index 00000000..2c6ca9b6
--- /dev/null
+++ b/sos/plugins/ipa.py
@@ -0,0 +1,37 @@
+## Copyright (C) 2007 Red Hat, Inc., Kent Lamb <klamb@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 sos.plugintools
+import os
+
+class ipa(sos.plugintools.PluginBase):
+ """IPA diagnostic information
+ """
+ # ntp and dirserver stuff are covered in existing sos plugins, so we really only
+ # need to get kerberos and ipa specific addons.
+
+ def checkenabled(self):
+ if self.isInstalled("ipa-server") or os.path.exists("/etc/ipa"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/dirsrv/ds.keytab")
+ self.addCopySpec("/etc/ipa/ipa.conf")
+ self.addCopySpec("/etc/krb5.conf")
+ self.addCopySpec("/etc/krb5.keytab")
+ return
+
diff --git a/sos/plugins/ipsec.py b/sos/plugins/ipsec.py
new file mode 100644
index 00000000..87671b87
--- /dev/null
+++ b/sos/plugins/ipsec.py
@@ -0,0 +1,30 @@
+## Copyright (C) 2007 Sadique Puthen <sputhenp@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 sos.plugintools
+from os.path import exists
+
+class ipsec(sos.plugintools.PluginBase):
+ """ipsec related information
+ """
+ def checkenabled(self):
+ if self.isInstalled("ipsec-tools") or exists("/etc/racoon/racoon.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/racoon")
+ return
diff --git a/sos/plugins/iscsi.py b/sos/plugins/iscsi.py
new file mode 100644
index 00000000..1b4ce67d
--- /dev/null
+++ b/sos/plugins/iscsi.py
@@ -0,0 +1,24 @@
+### 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 sos.plugintools
+
+class iscsi(sos.plugintools.PluginBase):
+ """iscsi-initiator related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/iscsi/iscsid.conf")
+ self.addCopySpec("/etc/iscsi/initiatorname.iscsi")
+ self.addCopySpec("/var/lib/iscsi")
+ return
diff --git a/sos/plugins/kdump.py b/sos/plugins/kdump.py
new file mode 100644
index 00000000..d9f248a4
--- /dev/null
+++ b/sos/plugins/kdump.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.
+
+import sos.plugintools
+from os.path import exists
+
+class kdump(sos.plugintools.PluginBase):
+ """Kdump related information
+ """
+ def checkenabled(self):
+ if self.isInstalled("kexec-tools") or exists("/etc/kdump.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/kdump.conf")
+ self.addCopySpec("/etc/sysconfig/kdump")
+ self.addCopySpec("/proc/cmdline")
+ self.addCopySpec("/etc/udev/rules.d/*kexec.rules")
+ return
diff --git a/sos/plugins/kernel.py b/sos/plugins/kernel.py
new file mode 100644
index 00000000..f5bd5d29
--- /dev/null
+++ b/sos/plugins/kernel.py
@@ -0,0 +1,118 @@
+### 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 sos.plugintools
+import os, re
+
+class kernel(sos.plugintools.PluginBase):
+ """kernel related information
+ """
+ optionList = [("modinfo", 'gathers information on all kernel modules', 'fast', True)]
+ moduleFile = ""
+ taintList = [
+ {'regex':'mvfs*', 'description':'Clearcase module'},
+ {'regex':'vnode*', 'description':'Clearcase module'},
+ {'regex':'vxfs*', 'description':'Veritas file system module'},
+ {'regex':'vxportal*', 'description':'Veritas module'},
+ {'regex':'vxdmp*', 'description':'Veritas dynamic multipathing module'},
+ {'regex':'vxio*', 'description':'Veritas module'},
+ {'regex':'vxspec*', 'description':'Veritas module'},
+ {'regex':'dcd*', 'description':'Dell OpenManage Server Administrator module'},
+ {'regex':'ocfs', 'description':'Oracle cluster filesystem module'},
+ {'regex':'oracle*', 'description':'Oracle module'},
+ {'regex':'vmnet*', 'description':'VMware module'},
+ {'regex':'vmmon*', 'description':'VMware module'},
+ {'regex':'egenera*', 'description':'Egenera module'},
+ {'regex':'emcp*', 'description':'EMC module'},
+ {'regex':'ocfs*', 'description':'OCFS module'},
+ {'regex':'nvidia', 'description':'NVidia module'},
+ {'regex':'ati-', 'description':'ATI module'}
+ ]
+
+ def setup(self):
+ self.collectExtOutput("/bin/uname -a", root_symlink = "uname")
+ self.moduleFile = self.collectOutputNow("/sbin/lsmod", root_symlink = "lsmod")
+
+ if self.getOption('modinfo'):
+ runcmd = ""
+ ret, mods, rtime = self.callExtProg('/sbin/lsmod | /bin/cut -f1 -d" " 2>/dev/null | /bin/grep -v Module 2>/dev/null')
+ for kmod in mods.split('\n'):
+ if '' != kmod.strip():
+ runcmd = runcmd + " " + kmod
+ if len(runcmd):
+ self.collectExtOutput("/sbin/modinfo " + runcmd)
+
+ self.collectExtOutput("/sbin/sysctl -a")
+ if os.path.isfile("/sbin/ksyms"):
+ self.collectExtOutput("/sbin/ksyms")
+ self.addCopySpec("/sys/module/*/parameters")
+ self.addCopySpec("/proc/filesystems")
+ self.addCopySpec("/proc/ksyms")
+ self.addCopySpec("/proc/slabinfo")
+ self.addCopySpec("/lib/modules/%s/modules.dep" % self.policy().kernelVersion())
+ self.addCopySpec("/etc/conf.modules")
+ self.addCopySpec("/etc/modules.conf")
+ self.addCopySpec("/etc/modprobe.conf")
+ self.collectExtOutput("/usr/sbin/dkms status")
+ self.addCopySpec("/proc/cmdline")
+ self.addCopySpec("/proc/driver")
+ self.addCopySpec("/proc/zoneinfo")
+ self.addCopySpec("/proc/sys/kernel/tainted")
+ self.addCopySpec("/proc/buddyinfo")
+
+ return
+
+ def diagnose(self):
+
+ infd = open("/proc/modules", "r")
+ for modname in infd.readlines():
+ modname=modname.split(" ")[0]
+ ret, modinfo_srcver, rtime = self.callExtProg("/sbin/modinfo -F srcversion %s" % modname)
+ if not os.access("/sys/module/%s/srcversion" % modname, os.R_OK):
+ continue
+ infd = open("/sys/module/%s/srcversion" % modname, "r")
+ sys_srcver = infd.read().strip("\n")
+ infd.close()
+ if modinfo_srcver != sys_srcver:
+ self.addDiagnose("loaded module %s differs from the one present on the file-system" % modname)
+
+ # this would be a good moment to check the module's signature
+ # but at the moment there's no easy way to do that outside of
+ # the kernel. i will probably need to write a C lib (derived from
+ # the kernel sources to do this verification.
+
+ infd.close()
+
+ def analyze(self):
+
+ savedtaint = os.path.join(self.cInfo['dstroot'], "/proc/sys/kernel/tainted")
+ infd = open(savedtaint, "r")
+ line = infd.read()
+ infd.close()
+ line = line.strip()
+ if (line != "0"):
+ self.addAlert("Kernel taint flag is <%s>\n" % line)
+
+ infd = open(self.moduleFile, "r")
+ modules = infd.readlines()
+ infd.close()
+
+ for tainter in self.taintList:
+ p = re.compile(tainter['regex'])
+ for line in modules:
+ if p.match(line) != None:
+ # found a taint match, create an alert
+ moduleName = line.split()[0]
+ self.addAlert("Check for tainted kernel by module %s, which is %s" % (moduleName, tainter['description']))
+ return
diff --git a/sos/plugins/kvm.py b/sos/plugins/kvm.py
new file mode 100644
index 00000000..83754db4
--- /dev/null
+++ b/sos/plugins/kvm.py
@@ -0,0 +1,51 @@
+## 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.
+
+
+import sos.plugintools
+import os
+
+class kvm(sos.plugintools.PluginBase):
+ """KVM related information
+ """
+
+ optionList = [("topOutput", '5x iterations of top data', 'slow', False)]
+
+ def checkenabled(self):
+ if os.access("/sys/module/kvm", os.R_OK):
+ return True
+ return False
+
+ def setup(self):
+ if not os.path.ismount("/sys/kernel/debug"):
+ self._debugfs_cleanup = True
+ os.popen("mount -t debugfs debugfs /sys/kernel/debug")
+ else:
+ self._debugfs_cleanup = False
+ self.addCopySpec("/sys/module/kvm/srcversion")
+ self.addCopySpec("/sys/module/kvm_intel/srcversion")
+ self.addCopySpec("/sys/module/kvm_amd/srcversion")
+ self.addCopySpec("/sys/module/ksm/srcversion")
+ if self.getOption('topOutput'):
+ self.collectExtOutput("/usr/bin/top -b -d 1 -n 5")
+ self.collectExtOutput("/usr/bin/kvm_stat --once")
+ return
+
+ def postproc(self):
+ if self._debugfs_cleanup and os.path.ismount("/sys/kernel/debug"):
+ os.popen("umount /sys/kernel/debug")
+ return
+
diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py
new file mode 100644
index 00000000..b1a48420
--- /dev/null
+++ b/sos/plugins/ldap.py
@@ -0,0 +1,50 @@
+### 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 sos.plugintools
+import os
+
+class ldap(sos.plugintools.PluginBase):
+ """LDAP related information
+ """
+ def checkenabled(self):
+ self.packages = [ "openldap" ]
+ self.files = [ "/etc/openldap/ldap.conf" ]
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ 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.doRegexFindAll(r"^(%s)\s+(.*)" % i,"/etc/openldap/ldap.conf")
+ for x in t:
+ results[x[0]]=x[1].rstrip("\n")
+ return results
+
+ def diagnose(self):
+ # Validate ldap client options
+ ldapopts=self.get_ldap_opts()
+ if ldapopts.has_key("TLS_CACERTDIR") and not os.path.exists(ldapopts["TLS_CACERTDIR"]):
+ self.addDiagnose("%s does not exist and can cause connection issues involving TLS" % ldapopts["TLS_CACERTDIR"])
+
+ def setup(self):
+ self.addCopySpec("/etc/ldap.conf")
+ self.addCopySpec("/etc/openldap")
+
+ def postproc(self):
+ self.doRegexSub("/etc/ldap.conf", r"(\s*bindpw\s*)\S+", r"\1***")
+ return
diff --git a/sos/plugins/libraries.py b/sos/plugins/libraries.py
new file mode 100644
index 00000000..b44b81bd
--- /dev/null
+++ b/sos/plugins/libraries.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.
+
+import sos.plugintools
+
+class libraries(sos.plugintools.PluginBase):
+ """information on shared libraries
+ """
+
+ optionList = [('ldconfigv', 'the name of each directory as it is scanned, and any links that are created.',
+ "slow", False)]
+
+ def setup(self):
+ self.addCopySpec("/etc/ld.so.conf")
+ self.addCopySpec("/etc/ld.so.conf.d")
+ if self.getOption("ldconfigv"):
+ self.collectExtOutput("/sbin/ldconfig -v -N -X")
+ self.collectExtOutput("/sbin/ldconfig -p -N -X")
+ return
+
diff --git a/sos/plugins/logrotate.py b/sos/plugins/logrotate.py
new file mode 100644
index 00000000..f3195d0e
--- /dev/null
+++ b/sos/plugins/logrotate.py
@@ -0,0 +1,27 @@
+### 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 sos.plugintools
+
+class logrotate(sos.plugintools.PluginBase):
+ """logrotate configuration files and debug info
+ """
+
+ def setup(self):
+ self.collectExtOutput("/usr/sbin/logrotate --debug /etc/logrotate.conf",
+ suggest_filename = "logrotate_debug")
+ self.collectExtOutput("/bin/cat /var/lib/logrotate.status",
+ suggest_filename = "logrotate_status")
+ self.addCopySpec("/etc/logrotate*")
+ return
diff --git a/sos/plugins/lsbrelease.py b/sos/plugins/lsbrelease.py
new file mode 100644
index 00000000..78a83577
--- /dev/null
+++ b/sos/plugins/lsbrelease.py
@@ -0,0 +1,30 @@
+### 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 sos.plugintools
+import os
+
+class lsbrelease(sos.plugintools.PluginBase):
+ """Linux Standard Base information
+ """
+ def diagnose(self):
+ if not os.path.exists("/etc/redhat-release"):
+ self.addDiagnose("/etc/redhat-release missing")
+ return
+ def setup(self):
+ self.collectExtOutput("/usr/bin/lsb_release -a")
+ self.collectExtOutput("/usr/bin/lsb_release -d", suggest_filename = "lsb_release", root_symlink = "lsb-release")
+ self.addCopySpec("/etc/lsb-release*")
+ return
diff --git a/sos/plugins/memory.py b/sos/plugins/memory.py
new file mode 100644
index 00000000..7fbe39c3
--- /dev/null
+++ b/sos/plugins/memory.py
@@ -0,0 +1,30 @@
+### 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 sos.plugintools
+
+class memory(sos.plugintools.PluginBase):
+ """memory usage information
+ """
+ def setup(self):
+ self.addCopySpec("/proc/pci")
+ self.addCopySpec("/proc/meminfo")
+ self.addCopySpec("/proc/vmstat")
+ self.addCopySpec("/proc/slabinfo")
+
+ self.collectExtOutput("/bin/dmesg | grep -e 'e820.' -e 'aperature.'")
+ self.collectExtOutput("/usr/bin/free", root_symlink = "free")
+ self.collectExtOutput("/usr/bin/free -m")
+ return
+
diff --git a/sos/plugins/mrggrid.py b/sos/plugins/mrggrid.py
new file mode 100644
index 00000000..2b39ab17
--- /dev/null
+++ b/sos/plugins/mrggrid.py
@@ -0,0 +1,23 @@
+### 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 sos.plugintools
+
+class mrggrid(sos.plugintools.PluginBase):
+ """MRG GRID related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/condor/condor_config")
+ self.addCopySpec("/usr/bin/condor_status")
+ return
diff --git a/sos/plugins/mrgmessg.py b/sos/plugins/mrgmessg.py
new file mode 100644
index 00000000..481083ad
--- /dev/null
+++ b/sos/plugins/mrgmessg.py
@@ -0,0 +1,24 @@
+### 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 sos.plugintools
+
+class mrgmessg(sos.plugintools.PluginBase):
+ """MRG Messaging related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/qpidd.conf")
+ self.addCopySpec("/etc/sasl2/qpidd.conf")
+ self.addCopySpec("/var/rhm")
+ return
diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py
new file mode 100644
index 00000000..3f8dc2bd
--- /dev/null
+++ b/sos/plugins/mysql.py
@@ -0,0 +1,32 @@
+### 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 sos.plugintools
+import os
+
+class mysql(sos.plugintools.PluginBase):
+ """MySQL related information
+ """
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("mysql-server") or os.path.exists("/etc/my.cnf") or \
+ self.cInfo["policy"].pkgByName("mysql"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/my.cnf")
+ self.addCopySpec("/etc/sysconfig/network")
+ self.addCopySpec("/etc/ld.so.conf.d/mysql*")
+ self.addCopySpec("/var/log/mysql*")
+ return
diff --git a/sos/plugins/named.py b/sos/plugins/named.py
new file mode 100644
index 00000000..53f81705
--- /dev/null
+++ b/sos/plugins/named.py
@@ -0,0 +1,44 @@
+### 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 sos.plugintools
+import commands
+from os.path import normpath, join, exists
+
+class named(sos.plugintools.PluginBase):
+ """named related information
+ """
+ def checkenabled(self):
+ self.files = [ "/etc/named.conf",
+ "/etc/sysconfig/named" ]
+ self.packages = [ "bind" ]
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ def getDnsDir(self, configFile):
+ """ grab directory path from named{conf,boot}
+ """
+ directoryList = self.doRegexFindAll("directory\s+\"(.*)\"", configFile)
+ return normpath(directoryList[0])
+
+ def setup(self):
+ cfgFiles = ("/etc/named.conf",
+ "/etc/named.boot")
+ for cfg in cfgFiles:
+ if exists(cfg):
+ self.addCopySpec(cfg)
+ self.addCopySpec(self.getDnsDir(cfg))
+ self.addForbiddenPath(join(self.getDnsDir(cfg),"chroot/dev"))
+ self.addForbiddenPath(join(self.getDnsDir(cfg),"chroot/proc"))
+ self.addCopySpec("/etc/sysconfig/named")
+ return
diff --git a/sos/plugins/netdump.py b/sos/plugins/netdump.py
new file mode 100644
index 00000000..d57431b8
--- /dev/null
+++ b/sos/plugins/netdump.py
@@ -0,0 +1,28 @@
+### 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 sos.plugintools
+from os.path import exists
+
+class netdump(sos.plugintools.PluginBase):
+ """Netdump Configuration Information
+ """
+ def checkenabled(self):
+ if self.isInstalled("netdump") or exists("/etc/sysconfig/netdump*"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/sysconfig/netdump")
+ return
diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py
new file mode 100644
index 00000000..cc619550
--- /dev/null
+++ b/sos/plugins/networking.py
@@ -0,0 +1,79 @@
+### 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 sos.plugintools
+import os
+import re
+
+class networking(sos.plugintools.PluginBase):
+ """network related information
+ """
+ optionList = [("traceroute", "collects a traceroute to rhn.redhat.com", "slow", False)]
+
+ def get_interface_name(self,ifconfigFile):
+ """Return a dictionary for which key are interface name according to the
+ output of ifconifg-a stored in ifconfigFile.
+ """
+ out=self.doRegexFindAll(r"^(eth\d+)\D", ifconfigFile)
+ return out
+
+ def collectIPTable(self,tablename):
+ """ When running the iptables command, it unfortunately auto-loads
+ the modules before trying to get output. Some people explicitly
+ don't want this, so check if the modules are loaded before running
+ the command. If they aren't loaded, there can't possibly be any
+ relevant rules in that table """
+
+ cmd = "/sbin/iptables -t "+tablename+" -nvL"
+
+ (status, output, time) = self.callExtProg("/sbin/lsmod | grep -q "+tablename)
+ if status == 0:
+ self.collectExtOutput(cmd)
+ else:
+ self.writeTextToCommand(cmd,"IPTables module "+tablename+" not loaded\n")
+
+ def setup(self):
+ self.addCopySpec("/proc/net")
+ self.addCopySpec("/etc/nsswitch.conf")
+ self.addCopySpec("/etc/yp.conf")
+ self.addCopySpec("/etc/inetd.conf")
+ self.addCopySpec("/etc/xinetd.conf")
+ self.addCopySpec("/etc/xinetd.d")
+ self.addCopySpec("/etc/host*")
+ self.addCopySpec("/etc/resolv.conf")
+ ifconfigFile=self.collectOutputNow("/sbin/ifconfig -a", root_symlink = "ifconfig")
+ self.collectExtOutput("/sbin/route -n", root_symlink = "route")
+ self.collectIPTable("filter")
+ self.collectIPTable("nat")
+ self.collectIPTable("mangle")
+ self.collectExtOutput("/bin/netstat -s")
+ self.collectExtOutput("/bin/netstat -agn")
+ self.collectExtOutput("/bin/netstat -neopa", root_symlink = "netstat")
+ self.collectExtOutput("/sbin/ip route show table all")
+ self.collectExtOutput("/sbin/ip link")
+ self.collectExtOutput("/sbin/ip address")
+ self.collectExtOutput("/sbin/ifenslave -a")
+ self.collectExtOutput("/sbin/ip mroute show")
+ self.collectExtOutput("/sbin/ip maddr show")
+ if ifconfigFile:
+ for eth in self.get_interface_name(ifconfigFile):
+ self.collectExtOutput("/sbin/ethtool "+eth)
+ self.collectExtOutput("/sbin/ethtool -i "+eth)
+ self.collectExtOutput("/sbin/ethtool -k "+eth)
+ self.collectExtOutput("/sbin/ethtool -S "+eth)
+ if self.getOption("traceroute"):
+ self.collectExtOutput("/bin/traceroute -n rhn.redhat.com")
+
+ return
+
diff --git a/sos/plugins/nfsserver.py b/sos/plugins/nfsserver.py
new file mode 100644
index 00000000..53391463
--- /dev/null
+++ b/sos/plugins/nfsserver.py
@@ -0,0 +1,44 @@
+## Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@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 sos.plugintools
+import os
+from stat import ST_SIZE
+
+class nfsserver(sos.plugintools.PluginBase):
+ """NFS server-related information
+ """
+ def checkenabled(self):
+ if self.policy().runlevelDefault() in self.policy().runlevelByService("nfs"):
+ return True
+
+ try:
+ if os.stat("/etc/exports")[ST_SIZE] > 0 or os.stat("/var/lib/nfs/xtab")[ST_SIZE] > 0:
+ return True
+ except:
+ pass
+
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/exports")
+ self.addCopySpec("/var/lib/nfs/etab")
+ self.addCopySpec("/var/lib/nfs/xtab")
+ self.addCopySpec("/var/lib/nfs/rmtab")
+ self.collectExtOutput("/usr/sbin/rpcinfo -p localhost")
+ self.collectExtOutput("/usr/sbin/nfsstat -a")
+ return
+
diff --git a/sos/plugins/nscd.py b/sos/plugins/nscd.py
new file mode 100644
index 00000000..c79afe73
--- /dev/null
+++ b/sos/plugins/nscd.py
@@ -0,0 +1,43 @@
+## Copyright (C) 2007 Shijoe George <spanjikk@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 sos.plugintools
+from os.path import exists
+
+class nscd(sos.plugintools.PluginBase):
+ """NSCD related information
+ """
+
+ optionList = [("nscdlogsize", "max size (MiB) to collect per nscd log file",
+ "", 50)]
+
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("nscd") or exists("/etc/nscd.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/nscd.conf")
+
+ opt = self.fileGrep(r"^\s*logfile", "/etc/nscd.conf")
+ if (len(opt) > 0):
+ for o in opt:
+ f = o.split()
+ self.addCopySpecLimit(f[1],
+ sizelimit = self.isOptionEnabled("nscdlogsize"))
+
+ return
+
diff --git a/sos/plugins/ntp.py b/sos/plugins/ntp.py
new file mode 100644
index 00000000..2a694e97
--- /dev/null
+++ b/sos/plugins/ntp.py
@@ -0,0 +1,23 @@
+### 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 sos.plugintools
+
+class ntp(sos.plugintools.PluginBase):
+ """NTP related information
+ """
+ def setup(self):
+ self.collectExtOutput("/usr/bin/ntpstat")
+ self.collectExtOutput("/usr/sbin/ntptrace -n")
+ return
diff --git a/sos/plugins/oddjob.py b/sos/plugins/oddjob.py
new file mode 100644
index 00000000..13e3049a
--- /dev/null
+++ b/sos/plugins/oddjob.py
@@ -0,0 +1,31 @@
+## Copyright (C) 2007 Sadique Puthen <sputhenp@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 sos.plugintools
+import os
+
+class oddjob(sos.plugintools.PluginBase):
+ """oddjob related information
+ """
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("oddjob") or os.path.exists("/etc/oddjobd.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/oddjobd.conf")
+ self.addCopySpec("/etc/oddjobd.conf.d")
+ self.addCopySpec("/etc/dbus-1/system.d/oddjob.conf")
diff --git a/sos/plugins/openais.py b/sos/plugins/openais.py
new file mode 100644
index 00000000..c2425173
--- /dev/null
+++ b/sos/plugins/openais.py
@@ -0,0 +1,39 @@
+### 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 sos.plugintools
+import os
+
+class openais(sos.plugintools.PluginBase):
+ """openais related information
+ """
+ def checkenabled(self):
+ if self.isInstalled("openais") or os.path.exists("/usr/sbin/openais-confdb-display"):
+ ret, openais_ver, rtime = self.callExtProg("rpm -q --queryformat='%{VERSION}' openais")
+ v, r, m = openais_ver.split('.')
+ if int(r) >= 80 and int(m) >= 6:
+ return True
+ return False
+
+ openais_config_opts = [('totem','token'), ('totem','consensus'),
+ ('totem','token_retransmits_before_loss_const'),
+ ('cman','quorum_dev_poll'), ('cman','expected_votes'),
+ ('cman','two_node')]
+
+ def setup(self):
+ self.collectExtOutput("openais-confdb-display")
+ for item in self.openais_config_opts:
+ obj, opt = item
+ self.collectExtOutput("openais-confdb-display %s %s" % (obj, opt))
+ return
diff --git a/sos/plugins/openssl.py b/sos/plugins/openssl.py
new file mode 100644
index 00000000..6d799904
--- /dev/null
+++ b/sos/plugins/openssl.py
@@ -0,0 +1,29 @@
+## Copyright (C) 2007 Sadique Puthen <sputhenp@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 sos.plugintools
+import os
+
+class openssl(sos.plugintools.PluginBase):
+ """openssl related information
+ """
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("openssl") or os.path.exists("/etc/pki/tls/openssl.cnf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/pki/tls/openssl.cnf")
diff --git a/sos/plugins/openswan.py b/sos/plugins/openswan.py
new file mode 100644
index 00000000..4c119807
--- /dev/null
+++ b/sos/plugins/openswan.py
@@ -0,0 +1,32 @@
+## Copyright (C) 2007 Sadique Puthen <sputhenp@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 sos.plugintools
+import os
+
+class openswan(sos.plugintools.PluginBase):
+ """ipsec related information
+ """
+ def checkenabled(self):
+ if self.isInstalled("openswan") or os.path.exists("/etc/ipsec.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/ipsec.conf")
+ self.addCopySpec("/etc/ipsec.d")
+ self.collectExtOutput("/usr/sbin/ipsec verify")
+ self.collectExtOutput("/usr/sbin/ipsec barf")
diff --git a/sos/plugins/pam.py b/sos/plugins/pam.py
new file mode 100644
index 00000000..1a50811b
--- /dev/null
+++ b/sos/plugins/pam.py
@@ -0,0 +1,25 @@
+### 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 sos.plugintools
+
+class pam(sos.plugintools.PluginBase):
+ """PAM related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/pam.d")
+ self.addCopySpec("/etc/security")
+ self.collectExtOutput("/bin/ls -laF /lib/security")
+ return
+
diff --git a/sos/plugins/postfix.py b/sos/plugins/postfix.py
new file mode 100644
index 00000000..9ab78b2a
--- /dev/null
+++ b/sos/plugins/postfix.py
@@ -0,0 +1,32 @@
+### 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 sos.plugintools
+from os.path import exists
+
+class postfix(sos.plugintools.PluginBase):
+ """mail server related information
+ """
+ def checkenabled(self):
+ if self.isInstalled("postfix") or exists("/etc/rc.d/init.d/postfix"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/mail")
+ self.addCopySpec("/etc/postfix/main.cf")
+ self.addCopySpec("/etc/postfix/master.cf")
+ self.collectExtOutput("/usr/sbin/postconf")
+ return
+
diff --git a/sos/plugins/ppp.py b/sos/plugins/ppp.py
new file mode 100644
index 00000000..a60517e2
--- /dev/null
+++ b/sos/plugins/ppp.py
@@ -0,0 +1,32 @@
+## Copyright (C) 2007 Sadique Puthen <sputhenp@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 sos.plugintools
+import os
+
+class ppp(sos.plugintools.PluginBase):
+ """ppp, wvdial and rp-pppoe related information
+ """
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("ppp") or os.path.exists("/etc/wvdial.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/wvdial.conf")
+ self.addCopySpec("/etc/ppp")
+ self.addCopySpec("/var/log/ppp")
+ self.collectExtOutput("/usr/sbin/adsl-status")
diff --git a/sos/plugins/printing.py b/sos/plugins/printing.py
new file mode 100644
index 00000000..06cf21a3
--- /dev/null
+++ b/sos/plugins/printing.py
@@ -0,0 +1,33 @@
+### 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 sos.plugintools
+
+class printing(sos.plugintools.PluginBase):
+ """printing related information (cups)
+ """
+ optionList = [("cups", "max size (MiB) to collect per cups log file",
+ "", 50)]
+
+ def setup(self):
+ self.addCopySpec("/etc/cups/*.conf")
+ self.addCopySpecLimit("/var/log/cups", sizelimit=self.isOptionEnabled("cupslogsize"))
+ self.addCopySpec("/etc/cups/lpoptions")
+ self.addCopySpec("/etc/cups/ppd/*.ppd")
+ self.collectExtOutput("/usr/bin/lpstat -t")
+ self.collectExtOutput("/usr/bin/lpstat -s")
+ self.collectExtOutput("/usr/bin/lpstat -d")
+
+ return
+
diff --git a/sos/plugins/process.py b/sos/plugins/process.py
new file mode 100644
index 00000000..a054d255
--- /dev/null
+++ b/sos/plugins/process.py
@@ -0,0 +1,64 @@
+### 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 sos.plugintools
+import time
+import os
+
+class process(sos.plugintools.PluginBase):
+ """process information
+ """
+ def setup(self):
+ self.collectExtOutput("/bin/ps auxwww", root_symlink = "ps")
+ self.collectExtOutput("/bin/ps auxwwwm")
+ self.collectExtOutput("/bin/ps alxwww")
+ self.collectExtOutput("/usr/bin/pstree", root_symlink = "pstree")
+ self.collectExtOutput("/usr/sbin/lsof -b +M -n -l", root_symlink = "lsof")
+ return
+
+ def find_mountpoint(s):
+ if (os.path.ismount(s) or len(s)==0): return s
+ else: return mountpoint(os.path.split(s)[0])
+
+ def diagnose(self):
+ from subprocess import Popen, PIPE
+ # check that no process is in state D
+ dpids = []
+ p = Popen("/bin/ps -A -o state,pid --no-heading", shell=True, stdout=PIPE, stderr=PIPE, bufsize=-1)
+ out, err = p.communicate()
+ if not p.returncode:
+ for line in out.split("\n")[:-1]:
+ line = line.split()
+ if line[0] == "D":
+ # keep an eye on the process to see if the stat changes
+ for inc in range(1,10):
+ try:
+ if len(self.fileGrep("^State: D", " /proc/%d/status" % int(line[1]))) == 0:
+ # status is not D, good. let's get out of the loop.
+ time.sleep(0.1 * inc)
+ continue
+ except IOError:
+ # this should never happen...
+ pass
+ else:
+ # still D after 0.1 * range(1,5) seconds
+ dpids.append(int(line[1]))
+
+ if len(dpids):
+ self.addDiagnose("one or more processes are in state D (sosreport might hang)")
+
+ return
+
+
+
diff --git a/sos/plugins/psacct.py b/sos/plugins/psacct.py
new file mode 100644
index 00000000..68e2585e
--- /dev/null
+++ b/sos/plugins/psacct.py
@@ -0,0 +1,22 @@
+### 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 sos.plugintools
+
+class psacct(sos.plugintools.PluginBase):
+ """Process accounting related information
+ """
+ def setup(self):
+ self.addCopySpec("/var/account")
+ return
diff --git a/sos/plugins/pxe.py b/sos/plugins/pxe.py
new file mode 100644
index 00000000..81e581c6
--- /dev/null
+++ b/sos/plugins/pxe.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.
+
+import sos.plugintools
+import os
+
+class pxe(sos.plugintools.PluginBase):
+ """PXE related information
+ """
+
+ optionList = [("tftpboot", 'gathers content in /tftpboot', 'slow', False)]
+
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("system-config-netboot-cmd") or os.path.exists("/usr/sbin/pxeos"):
+ return True
+ return False
+
+ def setup(self):
+ self.collectExtOutput("/usr/sbin/pxeos -l")
+ self.addCopySpec("/etc/dhcpd.conf")
+ if self.getOption("tftpboot"):
+ self.addCopySpec("/tftpboot")
+ return
diff --git a/sos/plugins/quagga.py b/sos/plugins/quagga.py
new file mode 100644
index 00000000..8e51497a
--- /dev/null
+++ b/sos/plugins/quagga.py
@@ -0,0 +1,30 @@
+## Copyright (C) 2007 Ranjith Rajaram <rrajaram@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 sos.plugintools
+from os.path import exists
+
+class quagga(sos.plugintools.PluginBase):
+ """quagga related information
+ """
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("quagga") or exists("/etc/quagga/zebra.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/quagga/")
+ return
diff --git a/sos/plugins/radius.py b/sos/plugins/radius.py
new file mode 100644
index 00000000..b5015c71
--- /dev/null
+++ b/sos/plugins/radius.py
@@ -0,0 +1,36 @@
+## Copyright (C) 2007 Navid Sheikhol-Eslami <navid@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 sos.plugintools
+import os
+
+class radius(sos.plugintools.PluginBase):
+ """radius related information
+ """
+ def checkenabled(self):
+ if self.isInstalled("freeradius") or os.path.exists("/etc/raddb"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/raddb")
+ self.addCopySpec("/etc/pam.d/radiusd")
+ self.addCopySpec("/var/log/radius")
+ return
+
+ def postproc(self):
+ self.doRegexSub("/etc/raddb/sql.conf", r"(\s*password\s*=\s*)\S+", r"\1***")
+ return
diff --git a/sos/plugins/rhn.py b/sos/plugins/rhn.py
new file mode 100644
index 00000000..efad65bd
--- /dev/null
+++ b/sos/plugins/rhn.py
@@ -0,0 +1,89 @@
+### 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 sos.plugintools
+
+class rhn(sos.plugintools.PluginBase):
+ """RHN Satellite related information
+ """
+ satellite = False
+ proxy = False
+
+ optionList = [("log", 'gathers all apache logs', 'slow', False)]
+
+ def defaultenabled(self):
+ return False
+
+ def checkenabled(self):
+ # enable if any related package is installed
+
+ self.satellite = self.isInstalled("rhns-satellite-tools")
+ self.proxy = self.isInstalled("rhns-proxy-tools")
+
+ if self.satellite or self.proxy:
+ return True
+
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/httpd/conf*")
+ self.addCopySpec("/etc/rhn")
+ self.addCopySpec("/etc/sysconfig/rhn")
+ if self.getOption("log"):
+ self.addCopySpec("/var/log/httpd") # httpd-logs
+ self.addCopySpec("/var/log/rhn*") # rhn-logs
+
+ # all these used to go in $DIR/mon-logs/
+ self.addCopySpec("/opt/notification/var/*.log*")
+ self.addCopySpec("/var/tmp/ack_handler.log*")
+ self.addCopySpec("/var/tmp/enqueue.log*")
+
+ # monitoring scout logs
+ self.addCopySpec("/home/nocpulse/var/*.log*")
+ self.addCopySpec("/home/nocpulse/var/commands/*.log*")
+ self.addCopySpec("/var/tmp/ack_handler.log*")
+ self.addCopySpec("/var/tmp/enqueue.log*")
+ self.addCopySpec("/var/log/nocpulse/*.log*")
+ self.addCopySpec("/var/log/notification/*.log*")
+ self.addCopySpec("/var/log/nocpulse/TSDBLocalQueue/TSDBLocalQueue.log")
+
+ self.addCopySpec("/root/ssl-build")
+ self.collectExtOutput("rpm -qa --last", root_symlink = "rpm-manifest")
+ self.collectExtOutput("/usr/bin/rhn-schema-version", root_symlink = "database-schema-version")
+ self.collectExtOutput("/usr/bin/rhn-charsets", root_symlink = "database-character-sets")
+
+ if self.satellite:
+ self.addCopySpec("/etc/tnsnames.ora")
+ self.addCopySpec("/etc/jabberd")
+
+ # tomcat (4.x and newer satellites only)
+ if not self.policy().pkgNVRA(satellite)[1].startswith("3."):
+ self.addCopySpec("/etc/tomcat5")
+ self.addCopySpec("/var/log/tomcat5")
+
+ self.addCopySpec("/etc/tomcat5")
+ self.addCopySpec("/var/log/tomcat5")
+
+ if self.proxy:
+ # copying configuration information
+ self.addCopySpec("/etc/squid")
+
+ # copying logs
+ self.addCopySpec("/var/log/squid")
+
+ return
+
+# def diagnose(self):
+ # RHN Proxy:
+ # * /etc/sysconfig/rhn/systemid is owned by root.apache with the permissions 0640
diff --git a/sos/plugins/rpm.py b/sos/plugins/rpm.py
new file mode 100644
index 00000000..ca4a7577
--- /dev/null
+++ b/sos/plugins/rpm.py
@@ -0,0 +1,32 @@
+### 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 sos.plugintools
+
+class rpm(sos.plugintools.PluginBase):
+ """RPM information
+ """
+ optionList = [("rpmq", "queries for package information via rpm -q", "fast", True),
+ ("rpmva", "runs a verify on all packages", "slow", False)]
+
+ def setup(self):
+ self.addCopySpec("/var/log/rpmpkgs")
+
+ if self.getOption("rpmq"):
+ self.collectExtOutput("/bin/rpm -qa --qf=\"%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH}~~%{INSTALLTIME:date}\n\" --nosignature --nodigest|/bin/awk -F ~~ '{printf \"%-60s%s\\n\",$1,$2}'", root_symlink = "installed-rpms")
+
+ if self.getOption("rpmva"):
+ self.collectExtOutput("/bin/rpm -Va", root_symlink = "rpm-Va", timeout = 3600)
+ return
+
diff --git a/sos/plugins/s390.py b/sos/plugins/s390.py
new file mode 100644
index 00000000..ff938ca2
--- /dev/null
+++ b/sos/plugins/s390.py
@@ -0,0 +1,73 @@
+## Copyright (C) 2007 Red Hat, Inc., Justin Payne <jpayne@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 glob
+import os
+import sos.plugintools
+
+class s390(sos.plugintools.PluginBase):
+ """s390 related information
+ """
+
+ ### Check for s390 arch goes here
+
+ def checkenabled(self):
+ sysArch = self.policy().getArch()
+ if "s390" in sysArch:
+ return True
+ return False
+
+ ### Gather s390 specific information
+
+ def setup(self):
+ self.addCopySpec("/proc/cio_ignore")
+ self.addCopySpec("/proc/crypto")
+ self.addCopySpec("/proc/dasd/devices")
+ self.addCopySpec("/proc/dasd/statistics")
+ self.addCopySpec("/proc/misc")
+ self.addCopySpec("/proc/qeth")
+ self.addCopySpec("/proc/qeth_perf")
+ self.addCopySpec("/proc/qeth_ipa_takeover")
+ self.addCopySpec("/proc/sys/appldata/*")
+ self.addCopySpec("/proc/sys/kernel/hz_timer")
+ self.addCopySpec("/proc/sysinfo")
+ self.addCopySpec("/sys/bus/ccwgroup/drivers/qeth/0.*/*")
+ self.addCopySpec("/sys/bus/ccw/drivers/zfcp/0.*/*")
+ self.addCopySpec("/sys/bus/ccw/drivers/zfcp/0.*/0x*/*")
+ self.addCopySpec("/sys/bus/ccw/drivers/zfcp/0.*/0x*/0x*/*")
+ self.addCopySpec("/etc/zipl.conf")
+ self.addCopySpec("/etc/zfcp.conf")
+ self.addCopySpec("/etc/sysconfig/dumpconf")
+ self.addCopySpec("/etc/src_vipa.conf")
+ self.addCopySpec("/etc/ccwgroup.conf")
+ self.addCopySpec("/etc/chandev.conf")
+ self.collectExtOutput("/sbin/lscss")
+ self.collectExtOutput("/sbin/lsdasd")
+ self.collectExtOutput("/sbin/lstape")
+ self.collectExtOutput("find /sys -type f")
+ self.collectExtOutput("find /proc/s390dbf -type f")
+ self.collectExtOutput("/sbin/qethconf list_all")
+ ret, dasdDev, rtime = self.callExtProg("ls /dev/dasd?")
+ for x in dasdDev.split('\n'):
+ self.collectExtOutput("/sbin/dasdview -x -i -j -l -f %s" % (x,))
+ self.collectExtOutput("/sbin/fdasd -p %s" % (x,))
+ try:
+ rhelver = self.policy().pkgByName("redhat-release")[1]
+ except:
+ rhelver = None
+ if rhelver.startswith("5"):
+ self.collectExtOutput("/sbin/lsqeth")
+ self.collectExtOutput("/sbin/lszfcp")
diff --git a/sos/plugins/samba.py b/sos/plugins/samba.py
new file mode 100644
index 00000000..1e33758b
--- /dev/null
+++ b/sos/plugins/samba.py
@@ -0,0 +1,29 @@
+### 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 sos.plugintools
+
+class samba(sos.plugintools.PluginBase):
+ """Samba related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/samba")
+ self.addCopySpec("/var/log/samba/*")
+ self.addCopySpec("/etc/krb5.conf")
+ self.addCopySpec("/etc/krb5.keytab")
+ self.collectExtOutput("/usr/bin/wbinfo -g")
+ self.collectExtOutput("/usr/bin/wbinfo -u")
+ self.collectExtOutput("/usr/bin/testparm -s -v")
+ return
+
diff --git a/sos/plugins/sanitize.py b/sos/plugins/sanitize.py
new file mode 100644
index 00000000..00c883ee
--- /dev/null
+++ b/sos/plugins/sanitize.py
@@ -0,0 +1,41 @@
+### 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 sos.plugintools
+import glob
+import socket
+
+class sanitize(sos.plugintools.PluginBase):
+ """ sanitize specified log files, etc
+ """
+ def defaultenabled(self):
+ # disabled by default b/c still a work in progress
+ return False
+
+ def setup(self):
+ # sanitize ip's, hostnames in logs
+ hostname = socket.gethostname()
+ rhelver = self.policy().rhelVersion()
+ if rhelver == 5 or rhelver == 4:
+ logs=self.doRegexFindAll(r"^\S+\s+(\/.*log.*)\s+$", "/etc/syslog.conf")
+ else:
+ logs=self.doRegexFindAll(r"^\S+\s+(\/.*log.*)\s+$", "/etc/rsyslog.conf")
+ for log in logs:
+ self.addCopySpec(log)
+
+ def postproc(self):
+ self.doRegexSub('/var/log/messages', r"^\s+(%s)" % (hostname,), r"\1sanitized-hostname")
+ self.doRegexSub('/var/log/messages', r"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})", r"\1sanitized-ip")
+
diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py
new file mode 100644
index 00000000..5867f10b
--- /dev/null
+++ b/sos/plugins/sar.py
@@ -0,0 +1,37 @@
+### 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 sos.plugintools
+import os
+
+class sar(sos.plugintools.PluginBase):
+ """Generate the sar file from /var/log/sa/saXX files
+ """
+ def setup(self):
+ path="/var/log/sa"
+ dirList=os.listdir(path)
+ # 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':
+ sar_filename = 'sar' + fname[2:4]
+ if sar_filename not in dirList:
+ sar_command = "/bin/sh -c \"LANG=C /usr/bin/sar -A -f /var/log/sa/" + fname + "\""
+ self.collectOutputNow(sar_command, sar_filename, root_symlink=sar_filename)
+ return
+
+ def checkenabled(self):
+ if os.path.exists("/var/log/sa") and os.path.exists("/usr/bin/sar"):
+ return True
+ return False
+
diff --git a/sos/plugins/selinux.py b/sos/plugins/selinux.py
new file mode 100644
index 00000000..7ca70712
--- /dev/null
+++ b/sos/plugins/selinux.py
@@ -0,0 +1,49 @@
+### 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 sos.plugintools
+
+class selinux(sos.plugintools.PluginBase):
+ """selinux related information
+ """
+ optionList = [("fixfiles", 'Print incorrect file context labels', 'slow', False)]
+ def setup(self):
+ # sestatus is always collected in checkenabled()
+ self.addCopySpec("/etc/selinux")
+ self.collectExtOutput("/usr/bin/selinuxconfig")
+ if self.getOption('fixfiles'):
+ self.collectExtOutput("/sbin/fixfiles check")
+ self.addForbiddenPath("/etc/selinux/targeted")
+
+ return
+
+ def checkenabled(self):
+ # is selinux enabled ?
+ try:
+ if self.collectOutputNow("/usr/sbin/sestatus", root_symlink = "sestatus").split(":")[1].strip() == "disabled":
+ return False
+ except:
+ pass
+ return True
+
+ def analyze(self):
+ # Check for SELinux denials and capture raw output from sealert
+ if self.policy().runlevelDefault() in self.policy().runlevelByService("setroubleshoot"):
+ # TODO: fixup regex for more precise matching
+ sealert=doRegexFindAll(r"^.*setroubleshoot:.*(sealert\s-l\s.*)","/var/log/messages")
+ if sealert:
+ for i in sealert:
+ self.collectExtOutput("%s" % i)
+ self.addAlert("There are numerous selinux errors present and "+
+ "possible fixes stated in the sealert output.")
diff --git a/sos/plugins/sendmail.py b/sos/plugins/sendmail.py
new file mode 100644
index 00000000..56ea2e7a
--- /dev/null
+++ b/sos/plugins/sendmail.py
@@ -0,0 +1,32 @@
+## Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@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 sos.plugintools
+import os
+
+class sendmail(sos.plugintools.PluginBase):
+ """sendmail information
+ """
+ def checkenabled(self):
+ if self.isInstalled("sendmail") or os.path.exists("/etc/rc.d/init.d/sendmail"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/mail/*")
+ self.addCopySpec("/var/log/maillog")
+ return
+
diff --git a/sos/plugins/smartcard.py b/sos/plugins/smartcard.py
new file mode 100644
index 00000000..f1eb8a96
--- /dev/null
+++ b/sos/plugins/smartcard.py
@@ -0,0 +1,37 @@
+## Copyright (C) 2007 Sadique Puthen <sputhenp@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 sos.plugintools
+import os
+from time import time
+
+class smartcard(sos.plugintools.PluginBase):
+ """Smart Card related information
+ """
+
+ def checkenabled(self):
+ if self.isInstalled("pam_pkcs11") or os.path.exists("/etc/pam_pkcs11/pam_pkcs11.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/reader.conf")
+ self.addCopySpec("/etc/reader.conf.d/")
+ self.addCopySpec("/etc/pam_pkcs11/")
+ self.collectExtOutput("/usr/bin/pkcs11_inspect debug")
+ self.collectExtOutput("/usr/bin/pklogin_finder debug")
+ self.collectExtOutput("/bin/ls -l /usr/lib*/pam_pkcs11/")
+ return
diff --git a/sos/plugins/snmp.py b/sos/plugins/snmp.py
new file mode 100644
index 00000000..c9be4b2f
--- /dev/null
+++ b/sos/plugins/snmp.py
@@ -0,0 +1,31 @@
+## Copyright (C) 2007 Sadique Puthen <sputhenp@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 sos.plugintools
+import os
+
+class snmp(sos.plugintools.PluginBase):
+ """snmp related information
+ """
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("net-snmp") or os.path.exists("/etc/snmp/snmpd.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/snmp")
+ return
+
diff --git a/sos/plugins/soundcard.py b/sos/plugins/soundcard.py
new file mode 100644
index 00000000..c2bf9438
--- /dev/null
+++ b/sos/plugins/soundcard.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.
+
+import sos.plugintools
+import os
+
+class soundcard(sos.plugintools.PluginBase):
+ """ Sound card information
+ """
+
+ def defaultenabled(self):
+ return False
+
+ def setup(self):
+ self.addCopySpec("/proc/asound/*")
+ self.addCopySpec("/etc/alsa/*")
+ self.addCopySpec("/etc/asound.*")
+ self.collectExtOutput("/sbin/lspci | grep -i audio")
+ self.collectExtOutput("/usr/bin/aplay -l")
+ self.collectExtOutput("/usr/bin/aplay -L")
+ self.collectExtOutput("/usr/bin/amixer")
+ self.collectExtOutput("/sbin/lsmod | /bin/grep snd | /bin/awk '{print $1}'", suggest_filename = "sndmodules_loaded")
+ return
diff --git a/sos/plugins/squid.py b/sos/plugins/squid.py
new file mode 100644
index 00000000..3e9b3d8b
--- /dev/null
+++ b/sos/plugins/squid.py
@@ -0,0 +1,29 @@
+### 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 sos.plugintools
+import os
+
+class squid(sos.plugintools.PluginBase):
+ """squid related information
+ """
+ def checkenabled(self):
+ self.files = [ "/etc/squid/squid.conf" ]
+ self.packages = [ "squid" ]
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ def setup(self):
+ self.addCopySpec("/etc/squid/squid.conf")
+ return
+
diff --git a/sos/plugins/ssh.py b/sos/plugins/ssh.py
new file mode 100644
index 00000000..6352583b
--- /dev/null
+++ b/sos/plugins/ssh.py
@@ -0,0 +1,26 @@
+## Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@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 sos.plugintools
+
+class ssh(sos.plugintools.PluginBase):
+ """ssh-related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/ssh/ssh_config")
+ self.addCopySpec("/etc/ssh/sshd_config")
+ return
+
diff --git a/sos/plugins/startup.py b/sos/plugins/startup.py
new file mode 100644
index 00000000..320bcd82
--- /dev/null
+++ b/sos/plugins/startup.py
@@ -0,0 +1,30 @@
+### 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 sos.plugintools
+
+class startup(sos.plugintools.PluginBase):
+ """startup information
+ """
+
+ optionList = [("servicestatus", "get a status of all running services", "slow", False)]
+ def setup(self):
+ self.addCopySpec("/etc/rc.d")
+
+ self.collectExtOutput("/sbin/chkconfig --list", root_symlink = "chkconfig")
+ if self.getOption('servicestatus'):
+ self.collectExtOutput("/sbin/service --status-all")
+ self.collectExtOutput("/sbin/runlevel")
+ return
+
diff --git a/sos/plugins/system.py b/sos/plugins/system.py
new file mode 100644
index 00000000..82b04604
--- /dev/null
+++ b/sos/plugins/system.py
@@ -0,0 +1,33 @@
+### 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 sos.plugintools
+
+class system(sos.plugintools.PluginBase):
+ """core system related information
+ """
+ def setup(self):
+ self.addCopySpec("/proc/sys")
+ self.addCopySpec("/etc/sysctl.conf")
+ self.addCopySpec("/etc/cron*")
+ self.addCopySpec("/var/spool/cron*")
+ self.addCopySpec("/var/log/cron*")
+ self.addCopySpec("/etc/syslog.conf")
+ self.addCopySpec("/etc/rsyslog.conf")
+ self.addCopySpec("/etc/ntp.conf")
+ self.addCopySpec("/etc/ntp/step-tickers")
+ self.addCopySpec("/etc/ntp/ntpservers")
+ self.collectExtOutput("/usr/bin/crontab -l")
+ return
+
diff --git a/sos/plugins/systemtap.py b/sos/plugins/systemtap.py
new file mode 100644
index 00000000..9875ed05
--- /dev/null
+++ b/sos/plugins/systemtap.py
@@ -0,0 +1,37 @@
+## Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@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 sos.plugintools
+
+class systemtap(sos.plugintools.PluginBase):
+ """SystemTap information
+ """
+ def checkenabled(self):
+ self.files = [ "/usr/bin/stap" ]
+ self.packages = [ "systemtap", "systemtap-runtime" ]
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ def setup(self):
+ self.collectExtOutput("/bin/rpm -qa 'kernel*' systemtap elfutils --nosignature --nodigest \
+ | egrep -e kernel.*`uname -r | sed 's/xen//'` \
+ -e systemtap \
+ -e elfutils \
+ | sort")
+ #self.collectExtOutput("/bin/rpm -qa 'kernel*' systemtap elfutils --nosignature --nodigest | /bin/egrep -e kernel.*`uname -r` -e systemtap -e elfutils | sort")
+ self.collectExtOutput("/usr/bin/stap -V 2")
+ self.collectExtOutput("/bin/uname -r")
+ return
+
diff --git a/sos/plugins/tftpserver.py b/sos/plugins/tftpserver.py
new file mode 100644
index 00000000..0056d221
--- /dev/null
+++ b/sos/plugins/tftpserver.py
@@ -0,0 +1,31 @@
+## Copyright (C) 2007 Shijoe George <spanjikk@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 sos.plugintools
+from os.path import exists
+
+class tftpserver(sos.plugintools.PluginBase):
+ """tftpserver related information
+ """
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("tftp-server") or exists("/etc/xinetd.d/tftp"):
+ return True
+ return False
+
+ def setup(self):
+ self.collectExtOutput("/bin/ls -laR /tftpboot")
+ return
+
diff --git a/sos/plugins/tomcat.py b/sos/plugins/tomcat.py
new file mode 100644
index 00000000..a6dc9055
--- /dev/null
+++ b/sos/plugins/tomcat.py
@@ -0,0 +1,28 @@
+### 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 sos.plugintools
+
+class tomcat(sos.plugintools.PluginBase):
+ """Tomcat related information
+ """
+ def checkenabled(self):
+ if self.cInfo["policy"].pkgByName("tomcat5"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/tomcat5")
+ self.addCopySpec("/var/log/tomcat5")
+ return
diff --git a/sos/plugins/udev.py b/sos/plugins/udev.py
new file mode 100644
index 00000000..0b48e51e
--- /dev/null
+++ b/sos/plugins/udev.py
@@ -0,0 +1,23 @@
+### 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 sos.plugintools
+
+class udev(sos.plugintools.PluginBase):
+ """udev related information
+ """
+ def setup(self):
+ self.addCopySpec("/etc/udev/udev.conf")
+ self.addCopySpec("/etc/udev/rules.d/*")
+ return
diff --git a/sos/plugins/veritas.py b/sos/plugins/veritas.py
new file mode 100644
index 00000000..6090627a
--- /dev/null
+++ b/sos/plugins/veritas.py
@@ -0,0 +1,221 @@
+### 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 commands
+import sos.plugintools
+
+class veritas(sos.plugintools.PluginBase):
+ """veritas related information
+ """
+ # License
+ license = {"VXLICENSE" : "/usr/sbin/vxlicense", "VXLICREP" : "/usr/sbin/vxlicense",
+ "OLD_VXLICREP" : "/var/adm/VRTSshrd/VRTSlic/bin/vxlicrep",
+ "VXLICTEST" : "/sbin/vxlictest"}
+
+ # Slim
+ slim = {"VSSAT" : "/opt/VRTSat/bin/vssat"}
+
+ # VxVM
+ vxvm = {"VXDCTL" : "/usr/sbin/vxdctl", "VXPRINT" : "/usr/lib/vxvm/diag.d/vxkprint",
+ "VXDISK" : "/usr/sbin/vxdisk", "VXDG" : "/usr/sbin/vxdg", "VXRLINK" : "/usr/sbin/vxrlink",
+ "MACROSD" : "/usr/lib/vxvm/diag.d/macros.d", "VXDMPADM" : "/usr/sbin/vxdmpadm",
+ "VXSTAT" : "/usr/sbin/vxstat", "VXCONFIGD" : "/usr/sbin/vxconfigd",
+ "VXDDLADM" : "/usr/sbin/vxddladm", "VXDIAGDIR" : "/usr/lib/vxvm/diag.d",
+ "VXTRACE" : "/usr/sbin/vxtrace", "VXRVG" : "/usr/sbin/vxrvg",
+ "VXCLUSTADM" : "/etc/vx/bin/vxclustadm", "VXVSET" : "/usr/sbin/vxvset"}
+
+ # VFR
+ vfr = {"VFRC" : "/usr/sbin/vfrc"}
+
+ # VxFS
+ vxfs = {"VXLD_PRINT" : "/sbin/vxld_print", "FSCKPTADM" : "/usr/lib/fs/vxfs/fsckptadm",
+ "FCLADM" : "/opt/VRTS/bin/fcladm", "FSAPADM" : "/opt/VRTS/bin/fsapadm",
+ "FSDB" : "/opt/VRTS/bin/fsdb", "FSADM" : "/usr/lib/fs/vxfs/fsadm",
+ "VXTUNEFS" : "/usr/lib/fs/vxfs/vxtunefs", "FSTYP" : "/usr/lib/fs/vxfs/fstyp"}
+
+ #vcs
+ vcs = {"HARES" : "/opt/VRTSvcs/bin/hares","HAGRP" : "/opt/VRTSvcs/bin/hagrp",
+ "HASYS" : "/opt/VRTSvcs/bin/hasys","HACLUS" : "/opt/VRTSvcs/bin/haclus",
+ "HACONF" : "/opt/VRTSvcs/bin/haconf","HASTATUS" : "/opt/VRTSvcs/bin/hastatus",
+ "GABCONFIG" : "/sbin/gabconfig", "GABDISK" : "/sbin/gabdisk",
+ "HATYPE" : "/opt/VRTSvcs/bin/hatype", "LLTSTAT" : "/sbin/lltstat",
+ "GABDEBUG" : "/sbin/gabdebug", "GABDISKHB" : "/sbin/gabdiskhb",
+ "GABDISKX" : "/sbin/gabdiskx", "GABPORT" : "/sbin/gabport",
+ "HAD" : "/opt/VRTSvcs/bin/had","GETCOMMS" : "/opt/VRTSgab/getcomms",
+ "HADISCOVER" : "/opt/VRTSvcs/bin/hadiscover",
+ "OraDiscovery" : "/opt/VRTSvcs/bin/Oracle/OraDiscovery.pl",
+ "GETVCSOPS" : "/opt/VRTSvcs/bin/getvcsops","GETDBAC" : "/opt/VRTSvcs/bin/getdbac"}
+ # module list
+ module_list = ["vxvm", "vxfs", "isis", "samba", "vcs", "spnas", "txpt", "vsap",
+ "vrtsisp", "vlic", "vrw", "cpi", "cca", "spc", "vxfen", "cmc",
+ "slim", "sfms", "dbed","vxportal","vxspec","vxio","vxdmpfs",
+ "vxdmp"]
+
+ package_list = ["VRTSfppm","VRTSfspro","VRTSob","VRTSlvmconv","VRTSvxmsa",
+ "VRTSfsdoc", "VRTSap","VRTSap","VRTScpi","VRTSvxvm","VRTSvmpro",
+ "VRTSddlpr","VRTSobgui","VRTSvmman","VRTScccfg","VRTSsal",
+ "VRTSccshd","VRTStep","VRTStep","VRTSvxfs","VRTSalloc",
+ "VRTSfsman","VRTSClariionCx600","VRTSccdam","VRTSccsta",
+ "VRTSvlic"]
+
+ def checkenabled(self):
+ for pkgname in self.package_list:
+ if self.policy().allPkgsByName(pkgname):
+ return True
+ return False
+
+ def get_vxfs(self):
+ """ capture information related to VXFS
+ """
+ self.addCopySpec("/etc/vx/tunefstab")
+ # get all vxfs mountpoints and capture various information
+ for mntpnt in commands.getoutput("/bin/df -P -T | /bin/grep vxfs | /usr/bin/awk '{ print $7 }'"):
+ bdev = commands.getoutput("/bin/mount | /bin/grep 'on %s' | /usr/bin/awk '{ print $1 }'" % mntpnt)
+ if mntpnt == "/":
+ mntname="_root_"
+ else:
+ mntname=commands.getoutput("/bin/echo %s | sed s#/#_#g" % mntpnt)
+ self.collectExtOutput("/bin/df -k %s" % mntpnt)
+ self.collectExtOutput("%s -v %s" % (self.vxfs["FSTYP"],bdev))
+ self.collectExtOutput("%s %s" % (self.vxfs["FSADM"],mntpnt))
+ self.collectExtOutput("%s -p %s" % (self.vxfs["VXTUNEFS"],mntpnt))
+ self.collectExtOutput("%s state %s" % (self.vxfs["FCLADM"],mntpnt))
+ self.collectExtOutput("%s queryfs %S" % (self.vxfs["FSAPADM"],mntpnt))
+ self.collectExtOutput("%s -n 'VERITAS File System' -l" % self.license["VXLICTEST"])
+ return
+
+ def get_vxvm(self):
+ """ Veritas volume manager information
+ """
+ # vxdctl and vxclustadm information
+ self.collectExtOutput("%s mode" % self.vxvm["VXDCTL"])
+ self.collectExtOutput("%s -c mode" % self.vxvm["VXDCTL"])
+ self.collectExtOutput("%s license" % self.vxvm["VXDCTL"])
+ self.collectExtOutput("%s support" % self.vxvm["VXDCTL"])
+ nodestate=commands.getoutput("%s help | grep '\[-v\] nodestate" % self.vxvm["VXCLUSTADM"])
+ if nodestate is None:
+ self.collectExtOutput("%s -v nodestate" % self.vxvm["VXCLUSTADM"])
+ else:
+ self.collectExtOutput("%s nodestate" % self.vxvm["VXCLUSTADM"])
+ nidmap=commands.getoutput("% help | grep 'nidmap'" % self.vxvm["VXCLUSTADM"])
+ if nidmap is None:
+ self.collectExtOutput("%s nidmap" % self.vxvm["VXCLUSTADM"])
+ self.collectExtOutput("%s dumpmsg" % self.vxvm["VXCLUSTADM"])
+ self.collectExtOutput("%s transstate" % self.vxvm["VXCLUSTADM"])
+ self.addCopySpec("/var/adm/vx/cmdlog*")
+ self.addCopySpec("/var/adm/vx/translog*")
+ self.addCopySpec("/VXVM*UPGRADE*")
+ self.addCopySpec("/var/vxvm")
+ self.collectExtOutput("/bin/ls -l /dev/vx*")
+ self.collectExtOutput("/bin/ls -laR /etc/vx")
+ self.addCopySpec("/etc/vx")
+ self.addCopySpec("/etc/vxvmconf")
+ self.addCopySpec("/etc/default/vxassist")
+ # vxvm - vxdctl information
+ vxdctlmode=commands.getoutput("%s mode | /usr/bin/awk ' { print $2 } '" % self.vxvm["VXDCTL"])
+ if vxdctlmode == "disabled" or vxdctlmode == "not-running":
+ return
+ # vxvm - vxdisk information
+ self.collectExtOutput("%s list" % self.vxvm["VXDISK"])
+ vxdisk_path=commands.getoutput("%s help | grep 'path'" % self.vxvm["VXDISK"])
+ if vxdisk_path is None:
+ self.collectExtOutput("%s path" % self.vxvm["VXDISK"])
+ self.collectExtOutput("%s -o alldgs list" % self.vxvm["VXDISK"])
+ self.collectExtOutput("%s -s list" % self.vxvm["VXDISK"])
+ for i in commands.getoutput("%s -q list | /usr/bin/awk ' { print $1 } ' | /bin/grep -v '^-$'" % self.vxvm["VXDISK"]):
+ self.collectExtOutput("%s list %s" % (self.vxvm["VXDISK"], i))
+ # vxvm - vxdg information
+ self.collectExtOutput("%s list" % self.vxvm["VXDG"])
+ self.collectExtOutput("%s free" % self.vxvm["VXDG"])
+ if commands.getoutput("%s help | grep 'bootdg'" % self.vxvm["VXDG"]) is None:
+ self.collectExtOutput("%s bootdg" % self.vxvm["VXDG"])
+ # vxvm - vxtrace information
+ self.collectExtOutput("%s -lE" % self.vxvm["VXTRACE"])
+ for i in commands.getoutput("%s -q list | /usr/bin/awk ' { print $1 } '" % self.vxvm["VXDG"]):
+ self.collectExtOutput("%s list %i" % (self.vxvm["VXDG"],i))
+ self.collectExtOutput("%s -g %s" % (self.vxvm["VXSTAT"],i))
+ self.collectExtOutput("%s -mvpshr -g %s" % (self.vxvm["VXPRINT"],i))
+ self.collectExtOutput("%s -m -g %s" % (self.vxvm["VXPRINT"],i))
+ self.collectExtOutput("%s list" % self.vxvm["VXVSET"])
+ self.addCopySpec("/proc/sys/vxvm/vxinfo")
+ self.addcopyspec("/proc/sys/vxvm/vxio")
+ # vvr/svrm specific information
+ self.addCopySpec("/etc/vx/vras")
+ return
+
+ def get_vcs(self):
+ """ Veritas cluster information
+ """
+ self.collectExtOutput("%s -dump" % self.vcs["HACONF"])
+ self.addCopySpec("/etc/VRTSvcs/*")
+ self.addCopySpec("/etc/llt*")
+ self.addCopySpec("/etc/gab*")
+
+ #copy log files, etc
+ self.addCopySpec("/var/VRTSvcs/*")
+ self.addCopySpec("/var/adm/streams")
+ self.addCopySpec("/var/adm/VRTSshrd/VRTSlic")
+
+ # get state information
+
+ self.collectExtOutput(self.vcs[LLTSTAT])
+ self.collectExtOutput("%s -vvn" % self.vcs["LLTSTAT"])
+ self.collectExtOutput("%s -a" % self.vcs["GABCONFIG"])
+ self.collectExtOutput("%s -l" % self.vcs["GABDISK"])
+ self.collectExtOutput("%s -l" % self.vcs["GABDISKHB"])
+ self.collectExtOutput("%s -l" % self.vcs["GABDISKX"])
+
+ self.collectExtOutput("%s -summary" % self.vcs["HASTATUS"])
+ self.collectExtOutput("%s -display -all" % self.vcs["HARES"])
+ self.collectExtOutput("%s -dep" % self.vcs["HARES"])
+ self.collectExtOutput("%s -display -all" % self.vcs["HAGRP"])
+ self.collectExtOutput("%s -dep" % self.vcs["HAGRP"])
+ self.collectExtOutput("%s -display" % self.vcs["HATYPE"])
+ self.collectExtOutput("%s -display" % self.vcs["HASYS"])
+ self.collectExtOutput("%s -display" % self.vcs["HACLUS"])
+
+ # TODO: get agents section
+
+ # get cores
+ self.addCopySpec("/opt/VRTSvcs/bin/core*")
+ self.addCopySpec("/opt/VRTSvcs/core*")
+
+ # TODO: get comms
+
+ # vcs gui
+ self.addCopySpec("/opt/VRTSvcs/gui/conf")
+
+ # vcs quickstart
+ vcsmode = commands.getoutput("%s -value VCSMODE" % self.vcs["HACLUS"])
+ if vcsmode == "VCSQS":
+ self.collectExtOutput("%s -discover Application User" % self.vcs["HADISCOVER"])
+ self.collectExtOutput("%s -discover Mount MountPoint" % self.vcs["HADISCOVER"])
+ self.collectExtOutput("%s -discover NFS Nservers" % self.vcs["HADISCOVER"])
+ self.collectExtOutput("%s -discover NIC Device" % self.vcs["HADISCOVER"])
+ self.collectExtOutput("%s -discover Oracle Instances" % self.vcs["HADISCOVER"])
+ self.collectExtOutput("%s -discover Share PathName" % self.vcs["HADISCOVER"])
+
+ def get_vxfen(self):
+ pass
+
+ def setup(self):
+ # TODO: Do necessary checks for different archs, i.e. z-series and ia64
+ self.collectExtOutput("/bin/rpm -qa | /bin/grep -i VRTS | /bin/grep -v doc | /bin/grep -v man")
+ # Determine what information to collect based on installed packages
+ if self.isInstalled("VRTSvxfs"): get_vxfs()
+ if self.isInstalled("VRTSvxfs"): get_vxvm()
+ # I think if one of these is present it is assumed that VCS is installed
+ if self.isInstalled("VRTSvmpro") or self.isInstalled("VRTSfspro"): get_vcs()
+ return
+
diff --git a/sos/plugins/vmware.py b/sos/plugins/vmware.py
new file mode 100644
index 00000000..7891576d
--- /dev/null
+++ b/sos/plugins/vmware.py
@@ -0,0 +1,30 @@
+### 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 sos.plugintools
+import os
+
+class vmware(sos.plugintools.PluginBase):
+ """VMWare related information
+ """
+ def checkenabled(self):
+ if os.path.exists("/usr/bin/vmware"):
+ return True
+ return False
+
+ def setup(self):
+ self.collectExtOutput("/usr/bin/vmware -v")
+ self.addCopySpec("/etc/vmware/locations")
+ self.addCopySpec("/etc/vmware/config")
+ return
diff --git a/sos/plugins/x11.py b/sos/plugins/x11.py
new file mode 100644
index 00000000..09b7c3c9
--- /dev/null
+++ b/sos/plugins/x11.py
@@ -0,0 +1,41 @@
+### 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 sos.plugintools
+import os
+
+class x11(sos.plugintools.PluginBase):
+ """X related information
+ """
+ def checkenabled(self):
+ try:os.stat("/etc/X11")
+ except:pass
+ else:return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/X11")
+ self.addCopySpec("/var/log/Xorg.*.log")
+ self.addCopySpec("/var/log/XFree86.*.log")
+ self.collectExtOutput("/bin/dmesg | grep -e 'agpgart.'")
+
+ self.addForbiddenPath("/etc/X11/X")
+ self.addForbiddenPath("/etc/X11/fontpath.d")
+
+ # TODO: if there is a need for kde that can be added here as well
+ if os.path.exists("/etc/gdm"):
+ self.addCopySpec("/etc/gdm")
+
+ return
+
diff --git a/sos/plugins/xen.py b/sos/plugins/xen.py
new file mode 100644
index 00000000..6a853765
--- /dev/null
+++ b/sos/plugins/xen.py
@@ -0,0 +1,99 @@
+### 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 sos.plugintools
+import os
+import re
+from stat import *
+
+class xen(sos.plugintools.PluginBase):
+ """Xen related information
+ """
+ def determineXenHost(self):
+ if os.access("/proc/acpi/dsdt", os.R_OK):
+ (status, output, rtime) = self.callExtProg("grep -qi xen /proc/acpi/dsdt")
+ if status == 0:
+ return "hvm"
+
+ if os.access("/proc/xen/capabilities", os.R_OK):
+ (status, output, rtime) = self.callExtProg("grep -q control_d /proc/xen/capabilities")
+ if status == 0:
+ return "dom0"
+ else:
+ return "domU"
+ return "baremetal"
+
+ def checkenabled(self):
+ if self.determineXenHost() == "baremetal":
+ return False
+ return True
+
+ def is_running_xenstored(self):
+ xs_pid = os.popen("pidof xenstored").read()
+ xs_pidnum = re.split('\n$',xs_pid)[0]
+ return xs_pidnum.isdigit()
+
+ def domCollectProc(self):
+ self.addCopySpec("/proc/xen/balloon")
+ self.addCopySpec("/proc/xen/capabilities")
+ self.addCopySpec("/proc/xen/xsd_kva")
+ self.addCopySpec("/proc/xen/xsd_port")
+ # determine if CPU has PAE support
+ self.collectExtOutput("/bin/grep pae /proc/cpuinfo")
+ # determine if CPU has Intel-VT or AMD-V support
+ self.collectExtOutput("/bin/egrep -e 'vmx|svm' /proc/cpuinfo")
+
+ def setup(self):
+ host_type = self.determineXenHost()
+ if host_type == "domU":
+ # we should collect /proc/xen and /sys/hypervisor
+ self.domCollectProc()
+ # determine if hardware virtualization support is enabled
+ # in BIOS: /sys/hypervisor/properties/capabilities
+ self.addCopySpec("/sys/hypervisor")
+ elif host_type == "hvm":
+ # what do we collect here???
+ pass
+ elif host_type == "dom0":
+ # default of dom0, collect lots of system information
+ self.addCopySpec("/var/log/xen")
+ self.addCopySpec("/etc/xen")
+ self.collectExtOutput("/usr/sbin/xm dmesg")
+ self.collectExtOutput("/usr/sbin/xm info")
+ self.collectExtOutput("/usr/sbin/xm list")
+ self.collectExtOutput("/usr/sbin/xm list --long")
+ self.collectExtOutput("/usr/sbin/brctl show")
+ self.domCollectProc()
+ self.addCopySpec("/sys/hypervisor/version")
+ self.addCopySpec("/sys/hypervisor/compilation")
+ self.addCopySpec("/sys/hypervisor/properties")
+ self.addCopySpec("/sys/hypervisor/type")
+ if self.is_running_xenstored():
+ self.addCopySpec("/sys/hypervisor/uuid")
+ self.collectExtOutput("/usr/bin/xenstore-ls")
+ else:
+ # we need tdb instead of xenstore-ls if cannot get it.
+ self.addCopySpec("/var/lib/xenstored/tdb")
+
+ # FIXME: we *might* want to collect things in /sys/bus/xen*,
+ # /sys/class/xen*, /sys/devices/xen*, /sys/modules/blk*,
+ # /sys/modules/net*, but I've never heard of them actually being
+ # useful, so I'll leave it out for now
+ else:
+ # for bare-metal, we don't have to do anything special
+ return
+
+ self.addCustomText("Xen hostType: "+host_type)
+ return
+
diff --git a/sos/plugins/xinetd.py b/sos/plugins/xinetd.py
new file mode 100644
index 00000000..b131f165
--- /dev/null
+++ b/sos/plugins/xinetd.py
@@ -0,0 +1,32 @@
+## Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@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 sos.plugintools
+import os
+
+class xinetd(sos.plugintools.PluginBase):
+ """xinetd information
+ """
+ def checkenabled(self):
+ if self.isInstalled("xinetd") or os.path.exists("/etc/xinetd.conf"):
+ return True
+ return False
+
+ def setup(self):
+ self.addCopySpec("/etc/xinetd.conf")
+ self.addCopySpec("/etc/xinetd.d")
+ return
+
diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py
new file mode 100644
index 00000000..4180053a
--- /dev/null
+++ b/sos/plugins/yum.py
@@ -0,0 +1,59 @@
+### 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 sos.plugintools
+import os
+
+class yum(sos.plugintools.PluginBase):
+ """yum information
+ """
+
+ optionList = [("yumlist", "list repositories and packages", "slow", False)]
+ optionList = [("yumdebug", "gather yum debugging data", "slow", False)]
+
+ def checkenabled(self):
+ self.files = [ "/etc/yum.conf" ]
+ self.packages = [ "yum" ]
+ return sos.plugintools.PluginBase.checkenabled(self)
+
+ def analyze(self):
+ # repo sanity checking
+ # TODO: elaborate/validate actual repo files, however this directory should
+ # be empty on RHEL 5+ systems.
+ if self.policy().rhelVersion() == 5:
+ if len(os.listdir("/etc/yum.repos.d/")):
+ self.addAlert("/etc/yum.repos.d/ contains additional repository "+
+ "information and can cause rpm conflicts.")
+
+ def setup(self):
+ # Pull all yum related information
+ self.addCopySpec("/etc/yum")
+ self.addCopySpec("/etc/yum.repos.d")
+ self.addCopySpec("/etc/yum.conf")
+ self.addCopySpec("/var/log/yum.log")
+
+ if self.getOption("yumlist"):
+ # Get a list of channels the machine is subscribed to.
+ self.collectExtOutput("/bin/echo \"repo list\" | /usr/bin/yum shell")
+ # List various information about available packages
+ self.collectExtOutput("/usr/bin/yum list")
+
+ if self.getOption("yumdebug") and self.isInstalled('yum-utils'):
+ for ret, output, rtime in self.callExtProg("/usr/bin/yum-debug-dump").split("\n"):
+ if "Output written to:" in output:
+ try:
+ self.collectExtOutput("/bin/zcat %s" % (output.split()[-1:][0],))
+ except IndexError:
+ pass
+ return
diff --git a/sos/plugintools.py b/sos/plugintools.py
new file mode 100644
index 00000000..a9f01e81
--- /dev/null
+++ b/sos/plugintools.py
@@ -0,0 +1,567 @@
+## plugintools.py
+## This exports methods available for use by plugins for sos
+
+## Copyright (C) 2006 Steve Conklin <sconklin@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.
+
+# pylint: disable-msg = R0902
+# pylint: disable-msg = R0904
+# pylint: disable-msg = W0702
+# pylint: disable-msg = W0703
+# pylint: disable-msg = R0201
+# pylint: disable-msg = W0611
+# pylint: disable-msg = W0613
+
+"""
+This is the base class for sosreport plugins
+"""
+from sos.helpers import *
+import os, os.path, sys, string, glob, re, traceback
+import shutil
+from stat import *
+from time import time
+from itertools import *
+from collections import deque
+
+class PluginException(Exception): pass
+
+class PluginBase:
+ """
+ Base class for plugins
+ """
+ def __init__(self, pluginname, commons):
+ if not getattr(self, "optionList", False):
+ self.optionList = deque()
+
+ self.copiedFiles = deque()
+ self.copiedDirs = deque()
+ self.executedCommands = deque()
+ self.diagnose_msgs = deque()
+ self.alerts = deque()
+ self.customText = ""
+ self.optNames = deque()
+ self.optParms = deque()
+ self.piName = pluginname
+ self.cInfo = commons
+ self.forbiddenPaths = deque()
+ self.copyPaths = deque()
+ self.collectProgs = deque()
+ self.pid = None
+
+ self.packages = deque()
+ self.files = deque()
+
+ self.must_exit = False
+
+ self.soslog = logging.getLogger('sos')
+ self.proflog = logging.getLogger('sosprofile')
+
+ # get the option list into a dictionary
+ for opt in self.optionList:
+ self.optNames.append(opt[0])
+ self.optParms.append({'desc':opt[1], 'speed':opt[2], 'enabled':opt[3]})
+
+ def policy(self):
+ return self.cInfo["policy"]
+
+ def isInstalled(self, package_name):
+ '''Is the package $package_name installed?
+ '''
+ return (self.policy().pkgByName(package_name) != {})
+
+ # Method for applying regexp substitutions
+ def doRegexSub(self, srcpath, regexp, subst):
+ '''Apply a regexp substitution to a file archived by sosreport.
+ '''
+ if len(self.copiedFiles):
+ for afile in self.copiedFiles:
+ if afile['srcpath'] == srcpath:
+ abspath = os.path.join(self.cInfo['dstroot'], srcpath.lstrip(os.path.sep))
+ try:
+ fp = open(abspath, 'r')
+ tmpout, occurs = re.subn( regexp, subst, fp.read() )
+ fp.close()
+ if occurs > 0:
+ fp = open(abspath,'w')
+ fp.write(tmpout)
+ fp.close()
+ return occurs
+ except SystemExit:
+ raise SystemExit
+ except KeyboardInterrupt:
+ raise KeyboardInterrupt
+ except Exception, e:
+ # self.soslog.debug("problem at path %s (%s)" % (abspath,e))
+ break
+ return False
+
+ def doRegexFindAll(self, regex, fname):
+ ''' Return a list of all non overlapping matches in the string(s)
+ '''
+ try:
+ return re.findall(regex, open(fname, 'r').read(), re.MULTILINE)
+ except: # IOError, AttributeError, etc.
+ return []
+
+ # Methods for copying files and shelling out
+ def doCopyFileOrDir(self, srcpath):
+ # pylint: disable-msg = R0912
+ # pylint: disable-msg = R0915
+ ''' Copy file or directory to the destination tree. If a directory, then everything
+ below it is recursively copied. A list of copied files are saved for use later
+ in preparing a report
+ '''
+ if self.cInfo['cmdlineopts'].profiler:
+ start_time = time()
+
+ copyProhibited = 0
+ for path in self.forbiddenPaths:
+ if ( srcpath.count(path) > 0 ):
+ copyProhibited = 1
+
+ if copyProhibited:
+ return ''
+
+ if not os.path.exists(srcpath):
+ # self.soslog.debug("file or directory %s does not exist" % srcpath)
+ return
+
+ if os.path.islink(srcpath):
+ # This is a symlink - We need to also copy the file that it points to
+
+ # FIXME: ignore directories for now
+ if os.path.isdir(srcpath):
+ return
+
+ link = os.readlink(srcpath)
+
+ # What's the name of the symlink on the dest tree?
+ dstslname = os.path.join(self.cInfo['dstroot'], srcpath.lstrip(os.path.sep))
+
+ if os.path.isabs(link):
+ # the link was an absolute path, and will not point to the new
+ # tree. We must adjust it.
+ rpth = sosRelPath(os.path.dirname(dstslname), os.path.join(self.cInfo['dstroot'], link.lstrip(os.path.sep)))
+ else:
+ # no adjustment, symlink is the relative path
+ rpth = link
+
+ # make sure the link doesn't already exists
+ if os.path.exists(dstslname):
+ # self.soslog.debug("skipping symlink creation: already exists (%s)" % dstslname)
+ return
+
+ # make sure the dst dir exists
+ if not (os.path.exists(os.path.dirname(dstslname)) and os.path.isdir(os.path.dirname(dstslname))):
+ os.makedirs(os.path.dirname(dstslname))
+
+ # self.soslog.debug("creating symlink %s -> %s" % (dstslname, rpth))
+
+ try:
+ os.symlink(rpth, dstslname)
+ except OSError:
+ # self.soslog.debug("skipping symlink creation: already exists (%s)" % dstslname)
+ return
+
+ self.copiedFiles.append({'srcpath':srcpath, 'dstpath':rpth, 'symlink':"yes", 'pointsto':link})
+ return
+
+ else: # not a symlink
+ if os.path.isdir(srcpath):
+ for afile in os.listdir(srcpath):
+ if afile == '.' or afile == '..':
+ pass
+ else:
+ self.doCopyFileOrDir(srcpath+'/'+afile)
+ return
+
+ # if we get here, it's definitely a regular file (not a symlink or dir)
+
+ # self.soslog.debug("copying file %s" % srcpath)
+ try:
+ tdstpath, abspath = self.__copyFile(srcpath)
+ except EnvironmentError:
+ # self.soslog.debug("error copying file %s (already exists)" % (srcpath))
+ return
+ except IOError:
+ # self.soslog.debug("error copying file %s (IOError)" % (srcpath))
+ return
+ except:
+ # self.soslog.debug("error copying file %s (SOMETHING HAPPENED)" % (srcpath))
+ return
+
+ self.copiedFiles.append({'srcpath':srcpath, 'dstpath':tdstpath, 'symlink':"no"}) # save in our list
+
+ if self.cInfo['cmdlineopts'].profiler:
+ time_passed = time() - start_time
+ self.proflog.debug("copied: %-75s time: %f" % (srcpath, time_passed))
+
+ return abspath
+
+ def __copyFile(self, src):
+ """ call cp to copy a file, collect return status and output. Returns the
+ destination file name.
+ """
+ rel_dir = os.path.dirname(src).lstrip(os.path.sep)
+ new_dir = os.path.join(self.cInfo['dstroot'], rel_dir)
+ new_fname = os.path.join(new_dir, os.path.basename(src))
+
+ if not os.path.exists(new_fname):
+ if not os.path.isdir(new_dir):
+ os.makedirs(new_dir)
+
+ if os.path.islink(src):
+ linkto = os.readlink(src)
+ os.symlink(linkto, new_fname)
+ else:
+ fsrc = open(src,'r')
+ fdst = open(new_fname, 'w')
+ shutil.copyfileobj(fsrc, fdst, -1)
+ fsrc.close()
+ fdst.close()
+ else:
+ raise PluginException('Error copying file: already exists')
+
+ abspath = os.path.join(self.cInfo['dstroot'], src.lstrip(os.path.sep))
+ relpath = sosRelPath(self.cInfo['rptdir'], abspath)
+ return (relpath, abspath)
+
+ def addForbiddenPath(self, forbiddenPath):
+ """Specify a path to not copy, even if it's part of a copyPaths[] entry.
+ """
+ # Glob case handling is such that a valid non-glob is a reduced glob
+ for filespec in glob.glob(forbiddenPath):
+ self.forbiddenPaths.append(filespec)
+
+ def getAllOptions(self):
+ """
+ return a list of all options selected
+ """
+ return (self.optNames, self.optParms)
+
+ def setOption(self, optionname, value):
+ ''' set the named option to value.
+ '''
+ for name, parms in izip(self.optNames, self.optParms):
+ if name == optionname:
+ parms['enabled'] = value
+ return True
+ else:
+ return False
+
+ def isOptionEnabled(self, optionname):
+ ''' Deprecated, use getOption() instead
+ '''
+ return self.getOption(optionname)
+
+ def getOption(self, optionname):
+ ''' see whether the named option is enabled.
+ '''
+ for name, parms in izip(self.optNames, self.optParms):
+ if name == optionname:
+ return parms['enabled']
+ # nonexistent options aren't enabled.
+ return 0
+
+ def addCopySpecLimit(self, fname, sizelimit = None):
+ """Add a file specification (with limits)
+ """
+ if not ( fname and len(fname) ):
+ # self.soslog.warning("invalid file path")
+ return False
+ files = glob.glob(fname)
+ files.sort()
+ cursize = 0
+ for flog in files:
+ cursize += os.stat(flog)[ST_SIZE]
+ if sizelimit and (cursize / 1024 / 1024) > sizelimit:
+ break
+ self.addCopySpec(flog)
+
+ def addCopySpec(self, copyspec):
+ """ Add a file specification (can be file, dir,or shell glob) to be
+ copied into the sosreport by this module
+ """
+ if not ( copyspec and len(copyspec) ):
+ # self.soslog.warning("invalid file path")
+ return False
+ # Glob case handling is such that a valid non-glob is a reduced glob
+ for filespec in glob.glob(copyspec):
+ self.copyPaths.append(filespec)
+
+ def callExtProg(self, prog):
+ """ Execute a command independantly of the output gathering part of
+ sosreport
+ """
+ # pylint: disable-msg = W0612
+ status, shout, runtime = sosGetCommandOutput(prog)
+ return (status, shout, runtime)
+
+ def collectExtOutput(self, exe, suggest_filename = None, root_symlink = None, timeout = 300):
+ """
+ Run a program and collect the output
+ """
+ self.collectProgs.append( (exe, suggest_filename, root_symlink, timeout) )
+
+ def fileGrep(self, regexp, fname):
+ try:
+ return [l for l in open(fname).readlines() if re.match(regexp, l)]
+ except: # IOError, AttributeError, etc.
+ return []
+
+ def mangleCommand(self, exe):
+ # FIXME: this can be improved
+ mangledname = re.sub(r"^/(usr/|)(bin|sbin)/", "", exe)
+ mangledname = re.sub(r"[^\w\-\.\/]+", "_", mangledname)
+ mangledname = re.sub(r"/", ".", mangledname).strip(" ._-")[0:64]
+ return mangledname
+
+ def makeCommandFilename(self, exe):
+ """ The internal function to build up a filename based on a command """
+
+ outfn = self.cInfo['cmddir'] + "/" + self.piName + "/" + self.mangleCommand(exe)
+
+ # check for collisions
+ if os.path.exists(outfn):
+ inc = 2
+ while True:
+ newfn = "%s_%d" % (outfn, inc)
+ if not os.path.exists(newfn):
+ outfn = newfn
+ break
+ inc +=1
+
+ return outfn
+
+ def collectOutputNow(self, exe, suggest_filename = None, root_symlink = False, timeout = 300):
+ """ Execute a command and save the output to a file for inclusion in
+ the report
+ """
+
+ if self.cInfo['cmdlineopts'].profiler:
+ start_time = time()
+
+ # pylint: disable-msg = W0612
+ status, shout, runtime = sosGetCommandOutput(exe, timeout = timeout)
+
+ if suggest_filename:
+ outfn = self.makeCommandFilename(suggest_filename)
+ else:
+ outfn = self.makeCommandFilename(exe)
+
+ if not os.path.isdir(os.path.dirname(outfn)):
+ os.mkdir(os.path.dirname(outfn))
+
+ if not (status == 127 or status == 32512): # if not command_not_found
+ outfd = open(outfn, "w")
+ if len(shout):
+ outfd.write(shout+"\n")
+ outfd.close()
+
+ if root_symlink:
+ curdir = os.getcwd()
+ os.chdir(self.cInfo['dstroot'])
+ try:
+ os.symlink(outfn[len(self.cInfo['dstroot'])+1:], root_symlink.strip("/."))
+ except:
+ pass
+ os.chdir(curdir)
+
+ outfn_strip = outfn[len(self.cInfo['cmddir'])+1:]
+
+ else:
+ # self.soslog.debug("could not run command: %s" % exe)
+ outfn = None
+ outfn_strip = None
+
+ # save info for later
+ self.executedCommands.append({'exe': exe, 'file':outfn_strip}) # save in our list
+ self.cInfo['xmlreport'].add_command(cmdline=exe,exitcode=status,f_stdout=outfn_strip,runtime=runtime)
+
+ if self.cInfo['cmdlineopts'].profiler:
+ time_passed = time() - start_time
+ self.proflog.debug("output: %-75s time: %f" % (exe, time_passed))
+
+ return outfn
+
+ def writeTextToCommand(self, exe, text):
+ """ A function that allows you to write a random text string to the
+ command output location referenced by exe; this is useful if you want
+ to conditionally collect information, but still want the output file
+ to exist so as not to confuse readers """
+
+ outfn = self.makeCommandFilename(exe)
+
+ if not os.path.isdir(os.path.dirname(outfn)):
+ os.mkdir(os.path.dirname(outfn))
+
+ outfd = open(outfn, "w")
+ outfd.write(text)
+ outfd.close()
+
+ self.executedCommands.append({'exe': exe, 'file': outfn}) # save in our list
+ return outfn
+
+ # For adding warning messages regarding configuration sanity
+ def addDiagnose(self, alertstring):
+ """ Add a configuration sanity warning for this plugin. These
+ will be displayed on-screen before collection and in the report as well.
+ """
+ self.diagnose_msgs.append(alertstring)
+ return
+
+ # For adding output
+ def addAlert(self, alertstring):
+ """ Add an alert to the collection of alerts for this plugin. These
+ will be displayed in the report
+ """
+ self.alerts.append(alertstring)
+ return
+
+
+ def addCustomText(self, text):
+ """ Append text to the custom text that is included in the report. This
+ is freeform and can include html.
+ """
+ self.customText = self.customText + text
+ return
+
+ def copyStuff(self):
+ """
+ Collect the data for a plugin
+ """
+ copyMap = map(self.doCopyFileOrDir, self.copyPaths)
+
+ for progs in izip(self.collectProgs):
+ prog, suggest_filename, root_symlink, timeout = progs[0]
+ # self.soslog.debug("collecting output of '%s'" % prog)
+ try:
+ self.collectOutputNow(prog, suggest_filename, root_symlink, timeout)
+ except Exception, e:
+ self.soslog.debug("error collection output of '%s', traceback follows:" % prog)
+
+ def exit_please(self):
+ """ This function tells the plugin that it should exit ASAP"""
+ self.must_exit = True
+
+ def get_description(self):
+ """ This function will return the description for the plugin"""
+ try:
+ return self.__doc__.strip()
+ except:
+ return "<no description available>"
+
+ def checkenabled(self):
+ """ This function can be overidden to let the plugin decide whether
+ it should run or not.
+ """
+ # some files or packages have been specified for this package
+ if len(self.files) or len(self.packages):
+ for fname in self.files:
+ if os.path.exists(fname):
+ return True
+ for pkgname in self.packages:
+ if self.isInstalled(pkgname):
+ return True
+ return False
+
+ return True
+
+ def defaultenabled(self):
+ """This devices whether a plugin should be automatically loaded or
+ only if manually specified in the command line."""
+ return True
+
+ def diagnose(self):
+ """This class must be overridden to check the sanity of the system's
+ configuration before the collection begins.
+ """
+ pass
+
+ def setup(self):
+ """This class must be overridden to add the copyPaths, forbiddenPaths,
+ and external programs to be collected at a minimum.
+ """
+ pass
+
+ def analyze(self):
+ """
+ perform any analysis. To be replaced by a plugin if desired
+ """
+ pass
+
+ def postproc(self):
+ """
+ perform any postprocessing. To be replaced by a plugin if desired
+ """
+ pass
+
+ def report(self):
+ """ Present all information that was gathered in an html file that allows browsing
+ the results.
+ """
+ # make this prettier
+ html = '<hr/><a name="%s"></a>\n' % self.piName
+
+ # Intro
+ html = html + "<h2> Plugin <em>" + self.piName + "</em></h2>\n"
+
+ # Files
+ if len(self.copiedFiles):
+ html = html + "<p>Files copied:<br><ul>\n"
+ for afile in self.copiedFiles:
+ html = html + '<li><a href="%s">%s</a>' % (afile['dstpath'], afile['srcpath'])
+ if (afile['symlink'] == "yes"):
+ html = html + " (symlink to %s)" % afile['pointsto']
+ html = html + '</li>\n'
+ html = html + "</ul></p>\n"
+
+ # Dirs
+ if len(self.copiedDirs):
+ html = html + "<p>Directories Copied:<br><ul>\n"
+ for adir in self.copiedDirs:
+ html = html + '<li><a href="%s">%s</a>\n' % (adir['dstpath'], adir['srcpath'])
+ if (adir['symlink'] == "yes"):
+ html = html + " (symlink to %s)" % adir['pointsto']
+ html = html + '</li>\n'
+ html = html + "</ul></p>\n"
+
+ # Command Output
+ if len(self.executedCommands):
+ html = html + "<p>Commands Executed:<br><ul>\n"
+ # convert file name to relative path from our root
+ for cmd in self.executedCommands:
+ if cmd["file"] and len(cmd["file"]):
+ cmdOutRelPath = sosRelPath(self.cInfo['rptdir'], self.cInfo['cmddir'] + "/" + cmd['file'])
+ html = html + '<li><a href="%s">%s</a></li>\n' % (cmdOutRelPath, cmd['exe'])
+ else:
+ html = html + '<li>%s</li>\n' % (cmd['exe'])
+ html = html + "</ul></p>\n"
+
+ # Alerts
+ if len(self.alerts):
+ html = html + "<p>Alerts:<br><ul>\n"
+ for alert in self.alerts:
+ html = html + '<li>%s</li>\n' % alert
+ html = html + "</ul></p>\n"
+
+ # Custom Text
+ if (self.customText != ""):
+ html = html + "<p>Additional Information:<br>\n"
+ html = html + self.customText + "</p>\n"
+
+ return html
+# vim:ts=4 sw=4 et
diff --git a/sos/policyredhat.py b/sos/policyredhat.py
new file mode 100755
index 00000000..acda3e9b
--- /dev/null
+++ b/sos/policyredhat.py
@@ -0,0 +1,406 @@
+## policy-redhat.py
+## Implement policies required for the sos system support tool
+
+## Copyright (C) Steve Conklin <sconklin@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 sys
+import string
+from tempfile import gettempdir
+from sos.helpers import *
+import random
+import re
+try:
+ from hashlib import md5
+except ImportError:
+ from md5 import md5
+import rpm
+import time
+from subprocess import Popen, PIPE
+from collections import deque
+
+sys.path.insert(0, "/usr/share/rhn/")
+try:
+ from up2date_client import up2dateAuth
+ from up2date_client import config
+ from rhn import rpclib
+except:
+ # might fail if non-RHEL
+ pass
+
+#class SosError(Exception):
+# def __init__(self, code, message):
+# self.code = code
+# self.message = message
+#
+# def __str__(self):
+# return 'Sos Error %s: %s' % (self.code, self.message)
+
+def memoized(function):
+ ''' function decorator to allow caching of return values
+ '''
+ function.cache={}
+ def f(*args):
+ try:
+ return function.cache[args]
+ except KeyError:
+ result = function.cache[args] = function(*args)
+ return result
+ return f
+
+class SosPolicy:
+ "This class implements various policies for sos"
+ def __init__(self):
+ self.report_file = ""
+ self.report_file_ext = ""
+ self.report_md5 = ""
+ self.reportName = ""
+ self.ticketNumber = ""
+
+ def setCommons(self, commons):
+ self.cInfo = commons
+ return
+
+ def validatePlugin(self, pluginpath):
+ "Validates the plugin as being acceptable to run"
+ # return value
+ # TODO implement this
+ #print "validating %s" % pluginpath
+ return True
+
+ def pkgProvides(self, name):
+ return self.pkgByName(name).get('providename')
+
+ def pkgRequires(self, name):
+ return self.pkgByName(name).get('requirename')
+
+ def allPkgsByName(self, name):
+ return self.allPkgs("name", name)
+
+ def allPkgsByNameRegex(self, regex_name):
+ reg = re.compile(regex_name)
+ return [pkg for pkg in self.allPkgs() if reg.match(pkg['name'])]
+
+ def pkgByName(self, name):
+ # TODO: do a full NEVRA compare and return newest version, best arch
+ try:
+ # lame attempt at locating newest
+ return self.allPkgsByName(name)[-1]
+ except:
+ pass
+ return {}
+
+ def allPkgs(self, ds = None, value = None):
+ # if possible return the cached values
+ try: return self._cache_rpm[ "%s-%s" % (ds,value) ]
+ except AttributeError: self._cache_rpm = {}
+ except KeyError: pass
+
+ ts = rpm.TransactionSet()
+ if ds and value:
+ mi = ts.dbMatch(ds, value)
+ else:
+ mi = ts.dbMatch()
+
+ self._cache_rpm[ "%s-%s" % (ds,value) ] = [pkg for pkg in mi]
+ del mi, ts
+ return self._cache_rpm[ "%s-%s" % (ds,value) ]
+
+ def runlevelByService(self, name):
+ ret = []
+ p = Popen("/sbin/chkconfig --list %s" % name, shell=True, stdout=PIPE, stderr=PIPE, bufsize=-1)
+ out, err = p.communicate()
+ if err:
+ return ret
+ for tabs in out.split()[1:]:
+ try:
+ (runlevel, onoff) = tabs.split(":", 1)
+ except:
+ pass
+ else:
+ if onoff == "on":
+ ret.append(int(runlevel))
+ return ret
+
+ def runlevelDefault(self):
+ try:
+ reg=self.doRegexFindAll(r"^id:(\d{1}):initdefault:", "/etc/inittab")
+ for initlevel in reg:
+ return initlevel
+ except:
+ return 3
+
+ def kernelVersion(self):
+ return Popen("/bin/uname -r", shell=True, stdout=PIPE, bufsize=-1).stdout.read().strip("\n")
+
+ def hostName(self):
+ return Popen("/bin/hostname", shell=True, stdout=PIPE, bufsize=-1).stdout.read().split(".")[0]
+
+ def rhelVersion(self):
+ try:
+ pkgname = self.pkgByName("redhat-release")["version"]
+ if pkgname[0] == "4":
+ return 4
+ elif pkgname in [ "5Server", "5Client" ]:
+ return 5
+ except: pass
+ return False
+
+ def rhnUsername(self):
+ try:
+ cfg = config.initUp2dateConfig()
+
+ return rpclib.xmlrpclib.loads(up2dateAuth.getSystemId())[0][0]['username']
+ except:
+ # ignore any exception and return an empty username
+ return ""
+
+ def isKernelSMP(self):
+ pipe = Popen("/bin/hostname", shell=True, stdout=PIPE, bufsize=-1).read().stdout
+ if pipe.split()[1] == "SMP":
+ return True
+ else:
+ return False
+
+ def getArch(self):
+ return Popen("/bin/uname -m", shell=True, stdout=PIPE, bufsize=-1).stdout.read().strip()
+
+ def pkgNVRA(self, pkg):
+ fields = pkg.split("-")
+ version, release, arch = fields[-3:]
+ name = "-".join(fields[:-3])
+ return (name, version, release, arch)
+
+ def getDstroot(self, tmpdir='/tmp'):
+ """Find a temp directory to form the root for our gathered information
+ and reports.
+ """
+ uniqname = "%s-%s" % (self.hostName(), time.strftime("%Y%m%d%H%M%s"))
+ dstroot = os.path.join(tmpdir,uniqname)
+ try:
+ os.mkdir(dstroot, 0700)
+ except:
+ return False
+ return dstroot
+
+ def preWork(self):
+ # this method will be called before the gathering begins
+
+ localname = self.rhnUsername()
+ if len(localname) == 0: localname = self.hostName()
+
+ if not self.cInfo['cmdlineopts'].batch:
+ try:
+ self.reportName = raw_input(_("Please enter your first initial and last name [%s]: ") % localname)
+ self.reportName = re.sub(r"[^a-zA-Z.0-9]", "", self.reportName)
+
+ self.ticketNumber = raw_input(_("Please enter the case number that you are generating this report for: "))
+ self.ticketNumber = re.sub(r"[^0-9]", "", self.ticketNumber)
+ print
+ except:
+ print
+ sys.exit(0)
+
+ if len(self.reportName) == 0:
+ self.reportName = localname
+
+ if self.cInfo['cmdlineopts'].customerName:
+ self.reportName = self.cInfo['cmdlineopts'].customerName
+ self.reportName = re.sub(r"[^a-zA-Z.0-9]", "", self.reportName)
+
+ if self.cInfo['cmdlineopts'].ticketNumber:
+ self.ticketNumber = self.cInfo['cmdlineopts'].ticketNumber
+ self.ticketNumber = re.sub(r"[^0-9]", "", self.ticketNumber)
+
+ return
+
+ def renameResults(self, newName):
+ newName = os.path.join(gettempdir(), newName)
+ if len(self.report_file) and os.path.isfile(self.report_file):
+ try:
+ os.rename(self.report_file, newName)
+ except:
+ return False
+ self.report_file = newName
+
+ def packageResults(self):
+
+ if len(self.ticketNumber):
+ self.reportName = self.reportName + "." + self.ticketNumber
+ else:
+ self.reportName = self.reportName
+
+ curwd = os.getcwd()
+ os.chdir(os.path.dirname(self.cInfo['dstroot']))
+ oldmask = os.umask(077)
+
+ print _("Creating compressed archive...")
+
+ if os.path.isfile("/usr/bin/xz"):
+ self.report_file_ext = "tar.xz"
+ self.renameResults("sosreport-%s-%s.%s" % (self.reportName, time.strftime("%Y%m%d%H%M%S"), self.report_file_ext))
+ cmd = "/bin/tar -c %s | /usr/bin/xz -1 > %s" % (os.path.basename(self.cInfo['dstroot']),self.report_file)
+ p = Popen(cmd, shell=True, bufsize=-1)
+ sts = os.waitpid(p.pid, 0)[1]
+ else:
+ self.report_file_ext = "tar.bz2"
+ self.renameResults("sosreport-%s-%s.%s" % (self.reportName, time.strftime("%Y%m%d%H%M%S"), self.report_file_ext))
+ tarcmd = "/bin/tar -jcf %s %s" % (self.report_file, os.path.basename(self.cInfo['dstroot']))
+ p = Popen(tarcmd, shell=True, stdout=PIPE, stderr=PIPE, bufsize=-1)
+ output = p.communicate()[0]
+
+ os.umask(oldmask)
+ os.chdir(curwd)
+ return
+
+ def cleanDstroot(self):
+ if not os.path.isdir(os.path.join(self.cInfo['dstroot'],"sos_commands")):
+ # doesn't look like a dstroot, refusing to clean
+ return False
+ os.system("/bin/rm -rf %s" % self.cInfo['dstroot'])
+
+ def encryptResults(self):
+ # make sure a report exists
+ if not self.report_file:
+ return False
+
+ print _("Encrypting archive...")
+ gpgname = self.report_file + ".gpg"
+
+ try:
+ keyring = self.cInfo['config'].get("general", "gpg_keyring")
+ except:
+ keyring = "/usr/share/sos/rhsupport.pub"
+
+ try:
+ recipient = self.cInfo['config'].get("general", "gpg_recipient")
+ except:
+ recipient = "support@redhat.com"
+
+ p = Popen("""/usr/bin/gpg --trust-model always --batch --keyring "%s" --no-default-keyring --compress-level 0 --encrypt --recipient "%s" --output "%s" "%s" """ % (keyring, recipient, gpgname, self.report_file),
+ shell=True, stdout=PIPE, stderr=PIPE, bufsize=-1)
+ stdout, stderr = p.communicate()
+ if p.returncode == 0:
+ os.unlink(self.report_file)
+ self.report_file = gpgname
+ else:
+ print _("There was a problem encrypting your report.")
+ sys.exit(1)
+
+ def displayResults(self):
+ # make sure a report exists
+ if not self.report_file:
+ return False
+
+ # calculate md5
+ fp = open(self.report_file, "r")
+ self.report_md5 = md5(fp.read()).hexdigest()
+ fp.close()
+
+ self.renameResults("sosreport-%s-%s-%s.%s" % (self.reportName,
+ time.strftime("%Y%m%d%H%M%S"),
+ self.report_md5[-4:],
+ self.report_file_ext))
+
+ # store md5 into file
+ fp = open(self.report_file + ".md5", "w")
+ fp.write(self.report_md5 + "\n")
+ fp.close()
+
+ print
+ print _("Your sosreport has been generated and saved in:\n %s") % self.report_file
+ print
+ if len(self.report_md5):
+ print _("The md5sum is: ") + self.report_md5
+ print
+ print _("Please send this file to your support representative.")
+ print
+
+ def uploadResults(self):
+ # make sure a report exists
+ if not self.report_file:
+ return False
+
+ print
+ # make sure it's readable
+ try:
+ fp = open(self.report_file, "r")
+ except:
+ return False
+
+ # read ftp URL from configuration
+ if self.cInfo['cmdlineopts'].upload:
+ upload_url = self.cInfo['cmdlineopts'].upload
+ else:
+ try:
+ upload_url = self.cInfo['config'].get("general", "ftp_upload_url")
+ except:
+ print _("No URL defined in config file.")
+ return
+
+ from urlparse import urlparse
+ url = urlparse(upload_url)
+
+ if url[0] != "ftp":
+ 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(self.report_file)
+
+ 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:
+ print _("There was a problem uploading your report to Red Hat support.")
+ else:
+ print _("Your report was successfully uploaded to %s with name:" % (upload_url,))
+ print " " + upload_name
+ print
+ print _("Please communicate this name to your support representative.")
+ print
+
+ fp.close()
+
+# vim: ts=4 sw=4 et
diff --git a/sos/sosreport.py b/sos/sosreport.py
new file mode 100755
index 00000000..84963746
--- /dev/null
+++ b/sos/sosreport.py
@@ -0,0 +1,820 @@
+#!/usr/bin/python
+"""
+Gather information about a system and report it using plugins
+supplied for application-specific information
+"""
+## sosreport.py
+## gather information about a system and report it
+
+## Copyright (C) 2006 Steve Conklin <sconklin@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.
+
+# pylint: disable-msg = W0611
+# pylint: disable-msg = W0702
+# pylint: disable-msg = R0912
+# pylint: disable-msg = R0914
+# pylint: disable-msg = R0915
+# pylint: disable-msg = R0913
+# pylint: disable-msg = E0611
+# pylint: disable-msg = E1101
+# pylint: disable-msg = R0904
+# pylint: disable-msg = R0903
+
+import sys
+import os
+import logging
+from optparse import OptionParser, Option
+import ConfigParser
+import sos.policyredhat
+from sos.helpers import importPlugin
+import signal
+from stat import ST_UID, ST_GID, ST_MODE, ST_CTIME, ST_ATIME, ST_MTIME, S_IMODE
+from time import strftime, localtime
+import gettext
+from itertools import *
+from collections import deque
+
+__version__ = 1.9
+if os.path.isfile('/etc/fedora-release'):
+ __distro__ = 'Fedora'
+else:
+ __distro__ = 'Red Hat Enterprise Linux'
+
+class GlobalVars:
+ """ Generic container for shared vars """
+ def __init__(self):
+ pass
+
+## Set up routines to be linked to signals for termination handling
+def exittermhandler(signum, frame):
+ """ Handle signals cleanly """
+ del frame, signum
+ doExitCode()
+
+def doExitCode():
+ """ Exit with return """
+
+ for plugname, plug in GlobalVars.loadedplugins:
+ plug.exit_please()
+ del plugname
+
+ print "All processes ended, cleaning up."
+ doExit(1)
+
+def doExit(error=0):
+ """ Exit with return """
+ GlobalVars.policy.cleanDstroot()
+ sys.exit(error)
+
+def doException(etype, eval, etrace):
+ """ Wrap exception in debugger if not in tty """
+ if hasattr(sys, 'ps1') or not sys.stderr.isatty():
+ # we are in interactive mode or we don't have a tty-like
+ # device, so we call the default hook
+ sys.__excepthook__(etype, value, traceback)
+ else:
+ import traceback, pdb
+ # we are NOT in interactive mode, print the exception...
+ traceback.print_exception(etype, eval, etrace, limit=2, file=sys.stdout)
+ print
+ # ...then start the debugger in post-mortem mode.
+ pdb.pm()
+
+# Handle any sort of exit signal cleanly
+# Currently, we intercept only sig 15 (TERM)
+signal.signal(signal.SIGTERM, exittermhandler)
+
+class OptionParserExtended(OptionParser):
+ """ Show examples """
+ def print_help(self, out=sys.stdout):
+ """ Prints help content including examples """
+ OptionParser.print_help(self, out)
+ print
+ print "Some examples:"
+ print
+ print " enable cluster plugin only and collect dlm lockdumps:"
+ print " # sosreport -o cluster -k cluster.lockdump"
+ print
+ print " disable memory and samba plugins, turn off rpm -Va collection:"
+ print " # sosreport -n memory,samba -k rpm.rpmva=off"
+ print
+ del out
+
+class SosOption (Option):
+ """Allow to specify comma delimited list of plugins"""
+ ACTIONS = Option.ACTIONS + ("extend",)
+ STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",)
+ TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",)
+
+ def take_action(self, action, dest, opt, value, values, parser):
+ """ Performs list extension on plugins """
+ if action == "extend":
+ try:
+ lvalue = value.split(",")
+ except:
+ pass
+ else:
+ values.ensure_value(dest, deque()).extend(lvalue)
+ else:
+ Option.take_action(self, action, dest, opt, value, values, parser)
+
+def parse_options(opts):
+ """ Parse command line options """
+
+ __cmdParser__ = OptionParserExtended(option_class=SosOption)
+ __cmdParser__.add_option("-l", "--list-plugins", action="store_true", \
+ dest="listPlugins", default=False, \
+ help="list plugins and available plugin options")
+ __cmdParser__.add_option("-n", "--skip-plugins", action="extend", \
+ dest="noplugins", type="string", \
+ help="skip these plugins", default = deque())
+ __cmdParser__.add_option("-e", "--enable-plugins", action="extend", \
+ dest="enableplugins", type="string", \
+ help="enable these plugins", default = deque())
+ __cmdParser__.add_option("-o", "--only-plugins", action="extend", \
+ dest="onlyplugins", type="string", \
+ help="enable these plugins only", default = deque())
+ __cmdParser__.add_option("-k", action="extend", \
+ dest="plugopts", type="string", \
+ help="plugin options in plugname.option=value format (see -l)")
+ __cmdParser__.add_option("-a", "--alloptions", action="store_true", \
+ dest="usealloptions", default=False, \
+ help="enable all options for loaded plugins")
+ __cmdParser__.add_option("-u", "--upload", action="store", \
+ dest="upload", default=False, \
+ help="upload the report to an ftp server")
+ #__cmdParser__.add_option("--encrypt", action="store_true", \
+ # dest="encrypt", default=False, \
+ # help="encrypt with GPG using Red Hat support's public key")
+ __cmdParser__.add_option("--batch", action="store_true", \
+ dest="batch", default=False, \
+ help="do not ask any question (batch mode)")
+ __cmdParser__.add_option("--build", action="store_true", \
+ dest="build", default=False, \
+ help="keep sos tree available and dont package results")
+ __cmdParser__.add_option("--no-colors", action="store_true", \
+ dest="nocolors", default=False, \
+ help="do not use terminal colors for text")
+ __cmdParser__.add_option("-v", "--verbose", action="count", \
+ dest="verbosity", \
+ help="increase verbosity")
+ __cmdParser__.add_option("--debug", action="count", \
+ dest="debug", \
+ help="enabling debugging")
+ __cmdParser__.add_option("--ticket-number", action="store", \
+ dest="ticketNumber", \
+ help="set ticket number")
+ __cmdParser__.add_option("--name", action="store", \
+ dest="customerName", \
+ help="define customer name")
+ __cmdParser__.add_option("--config-file", action="store", \
+ dest="config_file", \
+ help="specify alternate configuration file")
+ __cmdParser__.add_option("--tmp-dir", action="store", \
+ dest="tmp_dir", \
+ help="specify alternate temporary directory", default="/tmp")
+ __cmdParser__.add_option("--diagnose", action="store_true", \
+ dest="diagnose", \
+ help="enable diagnostics", default=False)
+ __cmdParser__.add_option("--analyze", action="store_true", \
+ dest="analyze", \
+ help="enable analyzations", default=False)
+ __cmdParser__.add_option("--report", action="store_true", \
+ dest="report", \
+ help="disable html/xml reporting", default=False)
+ __cmdParser__.add_option("--profile", action="store_true", \
+ dest="profiler", \
+ help="turn on profiling", default=False)
+
+ (GlobalVars.__cmdLineOpts__, GlobalVars.__cmdLineArgs__) = __cmdParser__.parse_args(opts)
+
+def textcolor(text, color, raw=0):
+ """ Terminal text coloring function """
+ if GlobalVars.__cmdLineOpts__.nocolors:
+ return text
+ colors = { "black":"30", "red":"31", "green":"32", "brown":"33", "blue":"34",
+ "purple":"35", "cyan":"36", "lgray":"37", "gray":"1;30", "lred":"1;31",
+ "lgreen":"1;32", "yellow":"1;33", "lblue":"1;34", "pink":"1;35",
+ "lcyan":"1;36", "white":"1;37" }
+ opencol = "\033["
+ closecol = "m"
+ clear = opencol + "0" + closecol
+ f = opencol + colors[color] + closecol
+ del raw
+ return "%s%s%s" % (f, text, clear)
+
+class XmlReport:
+ """ Report build class """
+ def __init__(self):
+ try:
+ import libxml2
+ except ImportError:
+ self.enabled = False
+ return
+ else:
+ self.enabled = False
+ return
+ self.doc = libxml2.newDoc("1.0")
+ self.root = self.doc.newChild(None, "sos", None)
+ self.commands = self.root.newChild(None, "commands", None)
+ self.files = self.root.newChild(None, "files", None)
+
+ def add_command(self, cmdline, exitcode, stdout = None, stderr = None,
+ f_stdout=None, f_stderr=None, runtime=None):
+ """ Appends command run into report """
+ if not self.enabled:
+ return
+
+ cmd = self.commands.newChild(None, "cmd", None)
+
+ cmd.setNsProp(None, "cmdline", cmdline)
+
+ cmdchild = cmd.newChild(None, "exitcode", str(exitcode))
+
+ if runtime:
+ cmd.newChild(None, "runtime", str(runtime))
+
+ if stdout or f_stdout:
+ cmdchild = cmd.newChild(None, "stdout", stdout)
+ if f_stdout:
+ cmdchild.setNsProp(None, "file", f_stdout)
+
+ if stderr or f_stderr:
+ cmdchild = cmd.newChild(None, "stderr", stderr)
+ if f_stderr:
+ cmdchild.setNsProp(None, "file", f_stderr)
+
+ def add_file(self, fname, stats):
+ """ Appends file(s) added to report """
+ if not self.enabled:
+ return
+
+ cfile = self.files.newChild(None, "file", None)
+
+ cfile.setNsProp(None, "fname", fname)
+
+ cchild = cfile.newChild(None, "uid", str(stats[ST_UID]))
+ cchild = cfile.newChild(None, "gid", str(stats[ST_GID]))
+ cfile.newChild(None, "mode", str(oct(S_IMODE(stats[ST_MODE]))))
+ cchild = cfile.newChild(None, "ctime", strftime('%a %b %d %H:%M:%S %Y',
+ localtime(stats[ST_CTIME])))
+ cchild.setNsProp(None, "tstamp", str(stats[ST_CTIME]))
+ cchild = cfile.newChild(None, "atime", strftime('%a %b %d %H:%M:%S %Y',
+ localtime(stats[ST_ATIME])))
+ cchild.setNsProp(None, "tstamp", str(stats[ST_ATIME]))
+ cchild = cfile.newChild(None, "mtime", strftime('%a %b %d %H:%M:%S %Y',
+ localtime(stats[ST_MTIME])))
+ cchild.setNsProp(None, "tstamp", str(stats[ST_MTIME]))
+
+ def serialize(self):
+ """ Serializes xml """
+ if not self.enabled:
+ return
+
+ print self.doc.serialize(None, 1)
+
+ def serialize_to_file(self, fname):
+ """ Serializes to file """
+ if not self.enabled:
+ return
+
+ outfn = open(fname,"w")
+ outfn.write(self.doc.serialize(None, 1))
+ outfn.close()
+
+# if debugging is enabled, allow plugins to raise exceptions
+def isDebug():
+ """ Enable plugin to raise exception """
+ if GlobalVars.__cmdLineOpts__.debug:
+ sys.excepthook = doException
+ GlobalVars.__raisePlugins__ = 1
+ else:
+ GlobalVars.__raisePlugins__ = 0
+
+def sosreport(opts):
+ """
+ This is the top-level function that gathers
+ and processes all sosreport information
+ """
+ parse_options(opts)
+ # check debug
+ isDebug()
+
+ config = ConfigParser.ConfigParser()
+ if GlobalVars.__cmdLineOpts__.config_file:
+ config_file = GlobalVars.__cmdLineOpts__.config_file
+ else:
+ config_file = '/etc/sos.conf'
+ try:
+ config.readfp(open(config_file))
+ except IOError:
+ pass
+
+ GlobalVars.loadedplugins = deque()
+ skippedplugins = deque()
+ alloptions = deque()
+
+ # perhaps we should automatically locate the policy module??
+ GlobalVars.policy = sos.policyredhat.SosPolicy()
+
+ # find the plugins path
+ paths = sys.path
+ for path in paths:
+ if path.strip()[-len("site-packages"):] == "site-packages" \
+ and os.path.isdir(path + "/sos/plugins"):
+ pluginpath = path + "/sos/plugins"
+
+ # Set up common info and create destinations
+
+ GlobalVars.dstroot = GlobalVars.policy.getDstroot(GlobalVars.__cmdLineOpts__.tmp_dir)
+ if not GlobalVars.dstroot:
+ print _("Could not create temporary directory.")
+ doExit()
+
+ cmddir = os.path.join(GlobalVars.dstroot, "sos_commands")
+ logdir = os.path.join(GlobalVars.dstroot, "sos_logs")
+ rptdir = os.path.join(GlobalVars.dstroot, "sos_reports")
+ os.mkdir(cmddir, 0755)
+ os.mkdir(logdir, 0755)
+ os.mkdir(rptdir, 0755)
+
+ # initialize i18n language localization
+ gettext.install('sos', '/usr/share/locale', unicode=False)
+
+ # initialize logging
+ soslog = logging.getLogger('sos')
+ soslog.setLevel(logging.DEBUG)
+
+ logging.VERBOSE = logging.INFO - 1
+ logging.VERBOSE2 = logging.INFO - 2
+ logging.VERBOSE3 = logging.INFO - 3
+ logging.addLevelName(logging.VERBOSE, "verbose")
+ logging.addLevelName(logging.VERBOSE2,"verbose2")
+ logging.addLevelName(logging.VERBOSE3,"verbose3")
+
+ if GlobalVars.__cmdLineOpts__.profiler:
+ proflog = logging.getLogger('sosprofile')
+ proflog.setLevel(logging.DEBUG)
+
+ # if stdin is not a tty, disable colors and don't ask questions
+ if not sys.stdin.isatty():
+ GlobalVars.__cmdLineOpts__.nocolors = True
+ GlobalVars.__cmdLineOpts__.batch = True
+
+ # log to a file
+ flog = logging.FileHandler(logdir + "/sos.log")
+ flog.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s'))
+ flog.setLevel(logging.VERBOSE3)
+ soslog.addHandler(flog)
+
+ if GlobalVars.__cmdLineOpts__.profiler:
+ # setup profile log
+ plog = logging.FileHandler(logdir + "/sosprofile.log")
+ plog.setFormatter(logging.Formatter('%(message)s'))
+ plog.setLevel(logging.DEBUG)
+ proflog.addHandler(plog)
+
+ # define a Handler which writes INFO messages or higher to the sys.stderr
+ console = logging.StreamHandler(sys.stderr)
+ if GlobalVars.__cmdLineOpts__.verbosity > 0:
+ console.setLevel(20 - GlobalVars.__cmdLineOpts__.verbosity)
+ else:
+ console.setLevel(logging.INFO)
+ console.setFormatter(logging.Formatter('%(message)s'))
+ soslog.addHandler(console)
+
+ xmlrep = XmlReport()
+
+ # set up dict so everyone can share the following
+ commons = {'dstroot': GlobalVars.dstroot, 'cmddir': cmddir, 'logdir': logdir, 'rptdir': rptdir,
+ 'soslog': soslog, 'policy': GlobalVars.policy, 'verbosity' : GlobalVars.__cmdLineOpts__.verbosity,
+ 'xmlreport' : xmlrep, 'cmdlineopts':GlobalVars.__cmdLineOpts__, 'config':config }
+
+ # Make policy aware of the commons
+ GlobalVars.policy.setCommons(commons)
+
+ print
+ print _("sosreport (version %s)" % (__version__,))
+ print
+
+ # disable plugins that we read from conf files
+ conf_disable_plugins_list = deque()
+ conf_disable_plugins = None
+ if config.has_option("plugins", "disable"):
+ conf_disable_plugins = config.get("plugins", "disable").split(',')
+ for item in conf_disable_plugins:
+ conf_disable_plugins_list.append(item.strip())
+
+ # generate list of available plugins
+ plugins = os.listdir(pluginpath)
+ plugins.sort()
+ plugin_names = deque()
+
+ # validate and load plugins
+ for plug in plugins:
+ plugbase = plug[:-3]
+ if not plug[-3:] == '.py' or plugbase == "__init__":
+ continue
+ try:
+ if GlobalVars.policy.validatePlugin(pluginpath + plug):
+ pluginClass = importPlugin("sos.plugins." + plugbase, plugbase)
+ else:
+ soslog.warning(_("plugin %s does not validate, skipping") % plug)
+ skippedplugins.append((plugbase, pluginClass(plugbase, commons)))
+ continue
+ # plug-in is valid, let's decide whether run it or not
+ plugin_names.append(plugbase)
+ if plugbase in GlobalVars.__cmdLineOpts__.noplugins or \
+ plugbase in conf_disable_plugins_list:
+ # skipped
+ skippedplugins.append((plugbase, pluginClass(plugbase, commons)))
+ continue
+ if not pluginClass(plugbase, commons).checkenabled() and \
+ not plugbase in GlobalVars.__cmdLineOpts__.enableplugins and \
+ not plugbase in GlobalVars.__cmdLineOpts__.onlyplugins:
+ # inactive
+ skippedplugins.append((plugbase, pluginClass(plugbase, commons)))
+ continue
+ if not pluginClass(plugbase, commons).defaultenabled() and \
+ not plugbase in GlobalVars.__cmdLineOpts__.enableplugins and \
+ not plugbase in GlobalVars.__cmdLineOpts__.onlyplugins:
+ # not loaded by default
+ skippedplugins.append((plugbase, pluginClass(plugbase, commons)))
+ continue
+ if GlobalVars.__cmdLineOpts__.onlyplugins and \
+ not plugbase in GlobalVars.__cmdLineOpts__.onlyplugins:
+ # not specified
+ skippedplugins.append((plugbase, pluginClass(plugbase, commons)))
+ continue
+ GlobalVars.loadedplugins.append((plugbase, pluginClass(plugbase, commons)))
+ except:
+ soslog.warning(_("plugin %s does not install, skipping") % plug)
+ if GlobalVars.__raisePlugins__:
+ raise
+
+ # First, gather and process options
+ # using the options specified in the command line (if any)
+ if GlobalVars.__cmdLineOpts__.usealloptions:
+ for plugname, plug in GlobalVars.loadedplugins:
+ for name, parms in zip(plug.optNames, plug.optParms):
+ if type(parms["enabled"])==bool:
+ parms["enabled"] = True
+ del name
+
+ # read plugin tunables from configuration file
+ if config.has_section("tunables"):
+ if not GlobalVars.__cmdLineOpts__.plugopts:
+ GlobalVars.__cmdLineOpts__.plugopts = deque()
+
+ for opt, val in config.items("tunables"):
+ if not opt.split('.')[0] in conf_disable_plugins_list:
+ GlobalVars.__cmdLineOpts__.plugopts.append(opt + "=" + val)
+
+ if GlobalVars.__cmdLineOpts__.plugopts:
+ opts = {}
+ for opt in GlobalVars.__cmdLineOpts__.plugopts:
+ # split up "general.syslogsize=5"
+ try:
+ opt, val = opt.split("=")
+ except:
+ val = True
+ else:
+ if val.lower() in ["off", "disable", "disabled", "false"]:
+ val = False
+ else:
+ # try to convert string "val" to int()
+ try:
+ val = int(val)
+ except:
+ pass
+
+ # split up "general.syslogsize"
+ try:
+ plug, opt = opt.split(".")
+ except:
+ plug = opt
+ opt = True
+
+ try:
+ opts[plug]
+ except KeyError:
+ opts[plug] = deque()
+ opts[plug].append( (opt, val) )
+
+ for plugname, plug in GlobalVars.loadedplugins:
+ if opts.has_key(plugname):
+ for opt, val in opts[plugname]:
+ if not plug.setOption(opt, val):
+ soslog.error('no such option "%s" for plugin ' \
+ '(%s)' % (opt,plugname))
+ doExit(1)
+ del opts[plugname]
+ for plugname in opts.keys():
+ soslog.error('unable to set option for disabled or non-existing ' \
+ 'plugin (%s)' % (plugname))
+ # Do not want to exit on invalid opts due to a misconfiguration in sos.conf
+ # doExit(1)
+ del opt, opts, val
+
+ # error if the user references a plugin which does not exist
+ unk_plugs = [plugname.split(".")[0] for plugname in \
+ GlobalVars.__cmdLineOpts__.onlyplugins \
+ if not plugname.split(".")[0] in plugin_names]
+ unk_plugs += [plugname.split(".")[0] for plugname in \
+ GlobalVars.__cmdLineOpts__.noplugins \
+ if not plugname.split(".")[0] in plugin_names]
+ unk_plugs += [plugname.split(".")[0] for plugname in \
+ GlobalVars.__cmdLineOpts__.enableplugins \
+ if not plugname.split(".")[0] in plugin_names]
+ if len(unk_plugs):
+ for plugname in unk_plugs:
+ soslog.error('a non-existing plugin (%s) was specified in the ' \
+ 'command line' % (plugname))
+ doExit(1)
+ del unk_plugs
+
+ for plugname, plug in GlobalVars.loadedplugins:
+ names, parms = plug.getAllOptions()
+ for optname, optparm in zip(names, parms):
+ alloptions.append((plug, plugname, optname, optparm))
+
+ # when --listplugins is specified we do a dry-run
+ # which tells the user which plugins are going to be enabled
+ # and with what options.
+
+ if GlobalVars.__cmdLineOpts__.listPlugins:
+ if not len(GlobalVars.loadedplugins) and not len(skippedplugins):
+ soslog.error(_("no valid plugins found"))
+ doExit(1)
+
+ if len(GlobalVars.loadedplugins):
+ print _("The following plugins are currently enabled:")
+ print
+ for (plugname, plug) in GlobalVars.loadedplugins:
+ print " %-25s %s" % (textcolor(plugname,"lblue"),
+ plug.get_description())
+ else:
+ print _("No plugin enabled.")
+ print
+
+ if len(skippedplugins):
+ print _("The following plugins are currently disabled:")
+ print
+ for (plugname, plugclass) in skippedplugins:
+ print " %-25s %s" % (textcolor(plugname,"cyan"),
+ plugclass.get_description())
+ print
+
+ if len(alloptions):
+ print _("The following plugin options are available:")
+ print
+ for (plug, plugname, optname, optparm) in alloptions:
+ # format and colorize option value based on its type (int or bool)
+ if type(optparm["enabled"]) == bool:
+ if optparm["enabled"] == True:
+ tmpopt = textcolor("on","lred")
+ else:
+ tmpopt = textcolor("off","red")
+ elif type(optparm["enabled"]) == int:
+ if optparm["enabled"] > 0:
+ tmpopt = textcolor(optparm["enabled"],"lred")
+ else:
+ tmpopt = textcolor(optparm["enabled"],"red")
+ else:
+ tmpopt = optparm["enabled"]
+
+ print " %-21s %-5s %s" % (plugname + "." + optname,
+ tmpopt, optparm["desc"])
+ del tmpopt
+ else:
+ print _("No plugin options available.")
+
+ print
+ doExit()
+
+ # to go anywhere further than listing the
+ # plugins we will need root permissions.
+ if os.getuid() != 0:
+ print _('sosreport requires root permissions to run.')
+ doExit(1)
+
+ # we don't need to keep in memory plugins we are not going to use
+ del skippedplugins
+
+ if not len(GlobalVars.loadedplugins):
+ soslog.error(_("no valid plugins were enabled"))
+ doExit(1)
+
+ msg = _("""This utility will collect some detailed information about the
+hardware and setup of your %(distroa)s system.
+The information is collected and an archive is packaged under
+/tmp, which you can send to a support representative.
+%(distrob)s will use this information for diagnostic purposes ONLY
+and it will be considered confidential information.
+
+This process may take a while to complete.
+No changes will be made to your system.
+
+""" % {'distroa':__distro__, 'distrob':__distro__})
+
+ if GlobalVars.__cmdLineOpts__.batch:
+ print msg
+ else:
+ msg += _("""Press ENTER to continue, or CTRL-C to quit.\n""")
+ try:
+ raw_input(msg)
+ except:
+ print
+ doExit()
+ del msg
+
+ if GlobalVars.__cmdLineOpts__.diagnose:
+ # Call the diagnose() method for each plugin
+ tmpcount = 0
+ for plugname, plug in GlobalVars.loadedplugins:
+ try:
+ plug.diagnose()
+ except:
+ if GlobalVars.__raisePlugins__:
+ raise
+ tmpcount += len(plug.diagnose_msgs)
+ if tmpcount > 0:
+ print _("One or more plugins have detected a problem in your " \
+ "configuration.")
+ print _("Please review the following messages:")
+ print
+
+ fp = open(rptdir + "/diagnose.txt", "w")
+ for plugname, plug in GlobalVars.loadedplugins:
+ for tmpcount2 in range(0, len(plug.diagnose_msgs)):
+ if tmpcount2 == 0:
+ soslog.warning( textcolor("%s:" % plugname, "red") )
+ soslog.warning(" * %s" % plug.diagnose_msgs[tmpcount2])
+ fp.write("%s: %s\n" % (plugname, plug.diagnose_msgs[tmpcount2]))
+ fp.close()
+
+ print
+ if not GlobalVars.__cmdLineOpts__.batch:
+ try:
+ while True:
+ yorno = raw_input( _("Are you sure you would like to " \
+ "continue (y/n) ? ") )
+ if yorno == _("y") or yorno == _("Y"):
+ print
+ break
+ elif yorno == _("n") or yorno == _("N"):
+ doExit(0)
+ del yorno
+ except KeyboardInterrupt:
+ print
+ doExit(0)
+
+ GlobalVars.policy.preWork()
+
+ # Call the setup() method for each plugin
+ for plugname, plug in GlobalVars.loadedplugins:
+ try:
+ plug.setup()
+ except KeyboardInterrupt:
+ raise
+ except:
+ if GlobalVars.__raisePlugins__:
+ raise
+
+ print _(" Running plugins. Please wait ...")
+ print
+ for i in izip(GlobalVars.loadedplugins):
+ plugname, plug = i[0]
+ try:
+ plug.copyStuff()
+ except KeyboardInterrupt:
+ raise
+ except:
+ if GlobalVars.__raisePlugins__:
+ raise
+
+ if GlobalVars.__cmdLineOpts__.report:
+ for plugname, plug in GlobalVars.loadedplugins:
+ for oneFile in plug.copiedFiles:
+ try:
+ xmlrep.add_file(oneFile["srcpath"], os.stat(oneFile["srcpath"]))
+ except:
+ pass
+
+ xmlrep.serialize_to_file(rptdir + "/sosreport.xml")
+
+ if GlobalVars.__cmdLineOpts__.analyze:
+ # Call the analyze method for each plugin
+ for plugname, plug in GlobalVars.loadedplugins:
+ try:
+ plug.analyze()
+ except:
+ # catch exceptions in analyze() and keep working
+ pass
+
+ if GlobalVars.__cmdLineOpts__.report:
+ # Generate the header for the html output file
+ rfd = open(rptdir + "/" + "sosreport.html", "w")
+ rfd.write("""
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <link rel="stylesheet" type="text/css" media="screen" href="donot.css" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Sos System Report</title>
+ </head>
+
+ <body>
+ """)
+
+
+ # Make a pass to gather Alerts and a list of module names
+ allAlerts = deque()
+ plugNames = deque()
+ for plugname, plug in GlobalVars.loadedplugins:
+ for alert in plug.alerts:
+ allAlerts.append('<a href="#%s">%s</a>: %s' % (plugname, plugname,
+ alert))
+ plugNames.append(plugname)
+
+ # Create a table of links to the module info
+ rfd.write("<hr/><h3>Loaded Plugins:</h3>")
+ rfd.write("<table><tr>\n")
+ rr = 0
+ for i in range(len(plugNames)):
+ rfd.write('<td><a href="#%s">%s</a></td>\n' % (plugNames[i],
+ plugNames[i]))
+ rr = divmod(i, 4)[1]
+ if (rr == 3):
+ rfd.write('</tr>')
+ if not (rr == 3):
+ rfd.write('</tr>')
+ rfd.write('</table>\n')
+
+ rfd.write('<hr/><h3>Alerts:</h3>')
+ rfd.write('<ul>')
+ for alert in allAlerts:
+ rfd.write('<li>%s</li>' % alert)
+ rfd.write('</ul>')
+
+
+ # Call the report method for each plugin
+ for plugname, plug in GlobalVars.loadedplugins:
+ try:
+ html = plug.report()
+ except:
+ if GlobalVars.__raisePlugins__:
+ raise
+ else:
+ rfd.write(html)
+
+ rfd.write("</body></html>")
+
+ rfd.close()
+
+ # Call the postproc method for each plugin
+ for plugname, plug in GlobalVars.loadedplugins:
+ try:
+ plug.postproc()
+ except:
+ if GlobalVars.__raisePlugins__:
+ raise
+
+ if GlobalVars.__cmdLineOpts__.build:
+ print
+ print _(" sosreport build tree is located at : %s" % (GlobalVars.dstroot,))
+ print
+ return GlobalVars.dstroot
+
+ # package up the results for the support organization
+ GlobalVars.policy.packageResults()
+
+ # delete gathered files
+ GlobalVars.policy.cleanDstroot()
+
+ # let's encrypt the tar-ball
+ #if GlobalVars.__cmdLineOpts__.encrypt:
+ # policy.encryptResults()
+
+ # automated submission will go here
+ if not GlobalVars.__cmdLineOpts__.upload:
+ GlobalVars.policy.displayResults()
+ else:
+ GlobalVars.policy.uploadResults()
+
+ # Close all log files and perform any cleanup
+ logging.shutdown()
+
diff --git a/sosreport b/sosreport
new file mode 100755
index 00000000..0908a1b4
--- /dev/null
+++ b/sosreport
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+# 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.
+
+""" sos entry point. """
+
+from sos.sosreport import sosreport, doExitCode
+import sys
+
+if __name__ == '__main__':
+ try:
+ sosreport(sys.argv[1:])
+ except KeyboardInterrupt:
+ doExitCode()
+
+# vim:ts=4 et sw=4
diff --git a/sosreport.1 b/sosreport.1
new file mode 100644
index 00000000..a7577ec2
--- /dev/null
+++ b/sosreport.1
@@ -0,0 +1,89 @@
+.TH SOSREPORT 1 "Tue Feb 09 2010"
+.SH NAME
+sosreport \- Generate debugging information for this system
+.SH SYNOPSIS
+.B sosreport
+ [-l|--list-plugins]\fR
+ [-n|--skip-plugins plugin-names]\fR
+ [-e|--enable-plugins plugin-names]\fR
+ [-o|--only-plugins plugin-names]\fR
+ [-a|--alloptions] [-v|--verbose]
+ [--diagnose] [--analyze] [--report]
+ [--config-file conf] [--batch]
+ [--build] [--name name] [--no-colors]
+ [--ticket-number number] [--debug]
+ [--upload] [--tmp-dir directory]
+.SH DESCRIPTION
+\fBsosreport\fR generates a compressed tarball of debugging information
+for the system it is run on that can be sent to technical support
+reps that will give them a more complete view of the overall system
+status.
+.SH OPTIONS
+.TP
+.B \-l, \--list-plugins
+This will list all available plugins showing which ones will be enabled by the current configuration. It will also show all plugin options which can be
+modified using the -k option (see below).
+.TP
+.B \-n, --skip-plugins PLUGNAME[,PLUGNAME]
+Do not load specified plugin(s). To specify multiple plugins, separate them with a comma.
+.TP
+.B \-e, --enable-plugins PLUGNAME[,PLUGNAME]
+Enable the specified plugin(s). To specify multiple plugins, separate them with a comma.
+.TP
+.B \-o, --only-plugins PLUGNAME[,PLUGNAME]
+Enable the specified plugin(s) only (all other plugins should be disabled). To specify multiple plugins, separate them with a comma.
+.TP
+.B \-k PLUGNAME.PLUGOPT[=VALUE]
+This is used to specify options for plugins. A list of available plugin options can be obtained from the output of --list-plugins.
+If no value is specified and the option is a boolean (on/off), it will be set to "on".
+.TP
+.B \-a, \--alloptions
+Enable all (boolean) options for all loaded plugins.
+.TP
+.B \--upload FTP_SERVER
+Upload the report to Red Hat (use exclusively if advised from a Red Hat support representative).
+.TP
+.B \-v, \--verbose
+Increase the verbosity of the output as sosreport is running. Multiple -v mean more verbosity.
+.TP
+.B \--diagnose
+Turn on diagnostic functions
+.TP
+.B \--analyze
+Turn on analyzation functions
+.TP
+.B \--report
+Enable html/xml report writing
+.TP
+.B \--config-file CONFIG
+Specify alternate configuration file
+.TP
+.B \--tmp-dir
+Specify alternate temporary directory to copy data
+.TP
+.B \--batch
+Perform data gathering unattended
+.TP
+.B \--name NAME
+Define a unique name for archive
+.TP
+.B \--ticket-number NUMBER
+Define a unique number for archive
+.TP
+.B \--build
+Do not archive copied data, leave directory tree untouched for further modification
+.TP
+.B \--no-colors
+Disable colors written to console
+.TP
+.B \--debug
+Run in trace mode for exceptions
+.SH MAINTAINER
+.nf
+Adam Stokes <ajs@redhat.com>
+.fi
+.SH TRANSLATIONS
+.nf
+Translations are handled by transifex (https://fedorahosted.org/transifex/)
+.fi
+.fi
diff --git a/test/__init__.py b/test/__init__.py
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/test/__init__.py
@@ -0,0 +1 @@
+
diff --git a/test/commons.py b/test/commons.py
new file mode 100644
index 00000000..de2906fd
--- /dev/null
+++ b/test/commons.py
@@ -0,0 +1,32 @@
+# commons.py
+import sys, os
+
+commons = {}
+commons['bin'] = '/usr/sbin/sosreport'
+commons['fnameRe'] = '/tmp/sosreport-*.xz'
+commons['testName'] = 'tester'
+commons['testID'] = 1
+commons['batch'] = True
+commons['i18n'] = 'en_US.UTF-8'
+commons['pluginpath'] = None
+commons['plugins'] = []
+commons['testOptions'] = ['--build','--batch']
+if os.path.isfile('/etc/fedora-release'):
+ commons['distro'] = 'Fedora'
+else:
+ commons['distro'] = 'RHEL'
+
+paths = sys.path
+for path in paths:
+ if path.strip()[-len("site-packages"):] == "site-packages" \
+ and os.path.isdir(path + "/sos/plugins"):
+ commons['pluginpath'] = path + "/sos/plugins"
+
+for plugin in os.listdir(commons['pluginpath']):
+ plugbase = plugin[:-3]
+ if not plugin[-3:] == '.py' or plugbase == "__init__":
+ continue
+ commons['plugins'].append(plugbase)
+
+def desc(txt):
+ sys.stdout.write(txt)
diff --git a/test/fixture/__init__.py b/test/fixture/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/fixture/__init__.py
diff --git a/test/fixture/dummyPluginDisabled.py b/test/fixture/dummyPluginDisabled.py
new file mode 100644
index 00000000..c86e7b44
--- /dev/null
+++ b/test/fixture/dummyPluginDisabled.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.
+
+import sos.plugintools
+import os
+
+class dummyPluginDisabled(sos.plugintools.PluginBase):
+ """ dummy test plugin """
+
+ def defaultenabled(self):
+ return False
+
+ def setup(self):
+ filename = "/tmp/testenabled.file"
+ f = open(filename,'w')
+ f.close()
+ self.addCopySpec(filename)
+ return
+
+
diff --git a/test/fixture/dummyPluginEnabled.py b/test/fixture/dummyPluginEnabled.py
new file mode 100644
index 00000000..9074ae6b
--- /dev/null
+++ b/test/fixture/dummyPluginEnabled.py
@@ -0,0 +1,32 @@
+### 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 sos.plugintools
+import os
+
+class dummyPluginEnabled(sos.plugintools.PluginBase):
+ """ dummy test plugin """
+
+ def defaultenabled(self):
+ return True
+
+ def setup(self):
+ filename = "/tmp/testenabled.file"
+ f = open(filename,'w')
+ f.close()
+ self.addCopySpec(filename)
+ return
+
+
+
diff --git a/test/testbasic.py b/test/testbasic.py
new file mode 100644
index 00000000..231481ae
--- /dev/null
+++ b/test/testbasic.py
@@ -0,0 +1,59 @@
+import os, sys, shutil
+from commons import *
+from nose.tools import *
+from sos.sosreport import *
+from glob import glob
+
+class GlobalVars:
+ pass
+
+class TestBasicSos:
+ def __init__(self):
+ GlobalVars.dstroot = None
+ GlobalVars.commons = commons
+ # clean pre-existing dummy plugins
+ for i in glob(GlobalVars.commons['pluginpath']+'/dummyPlugin*'):
+ os.remove(os.path.join(GlobalVars.commons['pluginpath'],i))
+
+ def setup(self):
+ """ prework """
+ pass
+
+ def teardown(self):
+ """ cleanup dstroot and other miscellaneous files """
+ if os.path.isdir(GlobalVars.dstroot) and not None:
+ shutil.rmtree(GlobalVars.dstroot)
+
+ def testSosreportBin(self):
+ """ test existence of sosreport bin """
+ if not os.path.isfile(GlobalVars.commons['bin']):
+ raise AssertionError("Sosreport executable does not exist")
+
+
+ def testUnattended(self):
+ """ test unattended """
+ GlobalVars.commons['testOptions'].append("-ofilesys")
+ GlobalVars.dstroot = sosreport(GlobalVars.commons['testOptions'])
+ if not os.path.isdir(GlobalVars.dstroot):
+ raise AssertionError("No sosreport created")
+
+ def testPluginEnable(self):
+ """ test success of plugin enable """
+ if os.path.isdir(GlobalVars.commons['pluginpath']):
+ shutil.copy('fixture/dummyPluginEnabled.py',GlobalVars.commons['pluginpath'])
+ GlobalVars.commons['testOptions'].append('-odummyPluginEnabled')
+ GlobalVars.dstroot = sosreport(GlobalVars.commons['testOptions'])
+ if os.path.isdir(GlobalVars.dstroot) \
+ and os.path.isfile(os.path.join(GlobalVars.dstroot,'tmp/testenabled.file')):
+ return True
+ raise AssertionError("testenabled.file not found")
+
+ def testPluginDisable(self):
+ """ test plugin disable """
+ if os.path.isdir(GlobalVars.commons['pluginpath']):
+ shutil.copy('fixture/dummyPluginDisabled.py',GlobalVars.commons['pluginpath'])
+ GlobalVars.dstroot = sosreport(["-nrpm","-nselinux","--batch","--build"])
+ if os.path.isdir(GlobalVars.dstroot) \
+ and os.path.isfile(os.path.join(GlobalVars.dstroot,'tmp/testenabled.file')):
+ raise AssertionError("plugin not disabled")
+ return True
diff --git a/test/testldap.py b/test/testldap.py
new file mode 100644
index 00000000..19511f74
--- /dev/null
+++ b/test/testldap.py
@@ -0,0 +1,41 @@
+from sos.sosreport import *
+from commons import *
+from nose.tools import *
+import os, sys, shutil
+
+class GlobalVars:
+ pass
+
+class TestLDAP:
+ def __init__(self):
+ GlobalVars.commons = commons
+ GlobalVars.dstroot = None
+
+ def setup(self):
+ """ prework """
+ pass
+
+ def teardown(self):
+ """ cleanup dstroot and other miscellaneous files """
+ if os.path.isdir(GlobalVars.dstroot) and not None:
+ shutil.rmtree(GlobalVars.dstroot)
+
+ def testPostProc(self):
+ """ check scraping of bindpw if exists """
+ GlobalVars.commons['testOptions'].append("-oldap")
+ GlobalVars.dstroot = sosreport(GlobalVars.commons['testOptions'])
+ ldapconf = os.path.join(GlobalVars.dstroot,'etc/ldap.conf')
+ if os.path.isfile(ldapconf) and os.path.isfile("/etc/ldap.conf"):
+ f = open('/etc/ldap.conf','r').readlines()
+ for line in f:
+ assert_false('bindpw ***' in line)
+
+ def testCapture(self):
+ """ check for capture of proper files """
+ GlobalVars.commons['testOptions'].append("-oldap")
+ GlobalVars.dstroot = sosreport(GlobalVars.commons['testOptions'])
+ ldapdir = os.path.join(GlobalVars.dstroot,'etc/openldap')
+ if os.path.isdir(ldapdir) and \
+ os.path.isfile(os.path.join(GlobalVars.dstroot,'etc/ldap.conf')):
+ GlobalVars.commons['testOptions'].pop()
+ assert_true
diff --git a/tools/msgfmt.py b/tools/msgfmt.py
new file mode 100644
index 00000000..8a2d4e66
--- /dev/null
+++ b/tools/msgfmt.py
@@ -0,0 +1,203 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# Written by Martin v. Lwis <loewis@informatik.hu-berlin.de>
+
+"""Generate binary message catalog from textual translation description.
+
+This program converts a textual Uniforum-style message catalog (.po file) into
+a binary GNU catalog (.mo file). This is essentially the same function as the
+GNU msgfmt program, however, it is a simpler implementation.
+
+Usage: msgfmt.py [OPTIONS] filename.po
+
+Options:
+ -o file
+ --output-file=file
+ Specify the output file to write to. If omitted, output will go to a
+ file named filename.mo (based off the input file name).
+
+ -h
+ --help
+ Print this message and exit.
+
+ -V
+ --version
+ Display version information and exit.
+"""
+
+import sys
+import os
+import getopt
+import struct
+import array
+
+__version__ = "1.1"
+
+MESSAGES = {}
+
+
+
+def usage(code, msg=''):
+ print >> sys.stderr, __doc__
+ if msg:
+ print >> sys.stderr, msg
+ sys.exit(code)
+
+
+
+def add(id, str, fuzzy):
+ "Add a non-fuzzy translation to the dictionary."
+ global MESSAGES
+ if not fuzzy and str:
+ MESSAGES[id] = str
+
+
+
+def generate():
+ "Return the generated output."
+ global MESSAGES
+ keys = MESSAGES.keys()
+ # the keys are sorted in the .mo file
+ keys.sort()
+ offsets = []
+ ids = strs = ''
+ for id in keys:
+ # For each string, we need size and file offset. Each string is NUL
+ # terminated; the NUL does not count into the size.
+ offsets.append((len(ids), len(id), len(strs), len(MESSAGES[id])))
+ ids += id + '\0'
+ strs += MESSAGES[id] + '\0'
+ output = ''
+ # The header is 7 32-bit unsigned integers. We don't use hash tables, so
+ # the keys start right after the index tables.
+ # translated string.
+ keystart = 7*4+16*len(keys)
+ # and the values start after the keys
+ valuestart = keystart + len(ids)
+ koffsets = []
+ voffsets = []
+ # The string table first has the list of keys, then the list of values.
+ # Each entry has first the size of the string, then the file offset.
+ for o1, l1, o2, l2 in offsets:
+ koffsets += [l1, o1+keystart]
+ voffsets += [l2, o2+valuestart]
+ offsets = koffsets + voffsets
+ output = struct.pack("Iiiiiii",
+ 0x950412deL, # Magic
+ 0, # Version
+ len(keys), # # of entries
+ 7*4, # start of key index
+ 7*4+len(keys)*8, # start of value index
+ 0, 0) # size and offset of hash table
+ output += array.array("i", offsets).tostring()
+ output += ids
+ output += strs
+ return output
+
+
+
+def make(filename, outfile):
+ ID = 1
+ STR = 2
+
+ # Compute .mo name from .po name and arguments
+ if filename.endswith('.po'):
+ infile = filename
+ else:
+ infile = filename + '.po'
+ if outfile is None:
+ outfile = os.path.splitext(infile)[0] + '.mo'
+
+ try:
+ lines = open(infile).readlines()
+ except IOError, msg:
+ print >> sys.stderr, msg
+ sys.exit(1)
+
+ section = None
+ fuzzy = 0
+
+ # Parse the catalog
+ lno = 0
+ for l in lines:
+ lno += 1
+ # If we get a comment line after a msgstr, this is a new entry
+ if l[0] == '#' and section == STR:
+ add(msgid, msgstr, fuzzy)
+ section = None
+ fuzzy = 0
+ # Record a fuzzy mark
+ if l[:2] == '#,' and l.find('fuzzy'):
+ fuzzy = 1
+ # Skip comments
+ if l[0] == '#':
+ continue
+ # Now we are in a msgid section, output previous section
+ if l.startswith('msgid'):
+ if section == STR:
+ add(msgid, msgstr, fuzzy)
+ section = ID
+ l = l[5:]
+ msgid = msgstr = ''
+ # Now we are in a msgstr section
+ elif l.startswith('msgstr'):
+ section = STR
+ l = l[6:]
+ # Skip empty lines
+ l = l.strip()
+ if not l:
+ continue
+ # XXX: Does this always follow Python escape semantics?
+ l = eval(l)
+ if section == ID:
+ msgid += l
+ elif section == STR:
+ msgstr += l
+ else:
+ print >> sys.stderr, 'Syntax error on %s:%d' % (infile, lno), \
+ 'before:'
+ print >> sys.stderr, l
+ sys.exit(1)
+ # Add last entry
+ if section == STR:
+ add(msgid, msgstr, fuzzy)
+
+ # Compute output
+ output = generate()
+
+ try:
+ open(outfile,"wb").write(output)
+ except IOError,msg:
+ print >> sys.stderr, msg
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hVo:',
+ ['help', 'version', 'output-file='])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ outfile = None
+ # parse options
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-V', '--version'):
+ print >> sys.stderr, "msgfmt.py", __version__
+ sys.exit(0)
+ elif opt in ('-o', '--output-file'):
+ outfile = arg
+ # do it
+ if not args:
+ print >> sys.stderr, 'No input file given'
+ print >> sys.stderr, "Try `msgfmt --help' for more information."
+ return
+
+ for filename in args:
+ make(filename, outfile)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tools/profiler/report b/tools/profiler/report
new file mode 100755
index 00000000..13577fcc
--- /dev/null
+++ b/tools/profiler/report
@@ -0,0 +1,145 @@
+#!/usr/bin/python
+
+# profile reporter
+
+import sys, os, operator, string
+from optparse import OptionParser
+from glob import glob
+from subprocess import Popen, PIPE
+import tarfile
+
+class GlobalVars:
+ def __init__(self):
+ pass
+
+class MyWriter:
+ def __init__(self, stdout, filename):
+ self.stdout = stdout
+ self.logfile = file(filename, 'w')
+
+ def write(self, text):
+ self.stdout.write(text)
+ self.logfile.write(text)
+
+ def close(self):
+ self.stdout.close()
+ self.logfile.close()
+
+def parse_options(opts):
+ """ parse cmd line opts """
+
+ parser = OptionParser()
+ parser.add_option("-f","--filename", dest="filename",
+ help="write report to FILENAME")
+ parser.add_option("-t", "--time", dest="rtime",
+ help="set minimum RUNTIME to report", action="store",
+ default=float(0.1), type="float")
+ parser.add_option("-i", "--input", dest="rpt_dir",
+ help="define directory of sosreport archives",
+ action="store", default=False)
+
+ GlobalVars.cmdlineopts, GlobalVars.cmdlineargs = parser.parse_args(opts)
+
+ if not GlobalVars.cmdlineopts.rpt_dir:
+ raise SystemExit("\nPlease make sure to specify --input FILES\n")
+
+def uncompress_reports(fname):
+ """ uncompresses the sosreport """
+ p = Popen(["xz","-d", fname], stdout=PIPE, stdin=PIPE)
+ out, err = p.communicate()
+ if err:
+ print "Problem extracting %s" % (fname,)
+ return
+
+def read_archive(fname):
+ """ reads tarfile archive and grabs the sosprofile.log fileobj """
+ tar = tarfile.open(os.path.abspath(fname), "r:")
+ for tarinfo in tar.getmembers():
+ if 'sosprofile.log' in tarinfo.name:
+ fobj = tar.extractfile(tarinfo)
+ buf = fobj.read()
+ tar.close()
+ return buf
+
+def timeoutput(secs):
+ if secs > 60:
+ secs = round(secs) / 60
+ return (secs, 'm')
+ elif secs < 60:
+ return (secs, 's')
+
+def sort_profile():
+ """ provide reports on sosreport profiling """
+ # uncompress reports from input files
+ for rpt in glob(GlobalVars.cmdlineopts.rpt_dir+"/*.xz"):
+ uncompress_reports(os.path.abspath(rpt))
+ GlobalVars.rpt_count = 0
+ GlobalVars.timecount = 0
+ GlobalVars.lrc = {}
+ for rpt in glob(GlobalVars.cmdlineopts.rpt_dir+"/*.tar"):
+ buf = read_archive(rpt)
+ time_sorts=[]
+ if not buf:
+ continue
+ for line in buf.split("\n"):
+ try:
+ cmd, rtime = line.split("time:")
+ try:
+ # cmds that span multiple lines still need time calculated
+ cmd = cmd.split(":")[1]
+ except IndexError:
+ cmd, rtime = line.split("time:")
+ time_sorts.append((cmd.strip(), rtime.strip()))
+ except ValueError:
+ continue
+ time_count = 0
+ b_val_count = 0
+ write_stats = open(rpt + ".profile_report", 'w')
+ write_stats.write(28 * ' ' + 'SOSreport Profile Report' + 27 * ' ' + "\n")
+ write_stats.write(79 * '.' + "\n")
+ for a,b in sorted(time_sorts, key=operator.itemgetter(1)):
+ b_val = float(b)
+ time_count += b_val
+ if b_val > float(GlobalVars.cmdlineopts.rtime):
+ b_val_count += b_val
+ write_stats.write("%-79s %s\n" % (a[:78], b))
+ if GlobalVars.lrc.has_key(a) and \
+ GlobalVars.lrc[a] < b_val:
+ GlobalVars.lrc[a] = b_val
+ else:
+ GlobalVars.lrc[a] = b_val
+ # Keep up with total run time for all reports
+ GlobalVars.timecount += time_count
+ # Write out totals per report
+ write_stats.write(79 * '.' + "\n")
+ write_stats.write("Totals:\n")
+ secs, fmt = timeoutput(b_val_count)
+ write_stats.write("cumulative > %s: \t%f%s\n" % (GlobalVars.cmdlineopts.rtime, secs, fmt))
+ secs, fmt = timeoutput(time_count)
+ write_stats.write("cumulative total:\t%f%s\n" % (secs,fmt))
+ write_stats.close()
+ # increment report count so we can get an average runtime
+ GlobalVars.rpt_count += 1
+
+if __name__ == "__main__":
+ parse_options(sys.argv[1:])
+ if GlobalVars.cmdlineopts.filename:
+ writer = MyWriter(sys.stdout, GlobalVars.cmdlineopts.filename)
+ sys.stdout = writer
+ print "Building reports ..."
+ sort_profile()
+ print 79 * "-"
+ print "Total runtime for %d reports is %fs" % (round(GlobalVars.rpt_count, 2), GlobalVars.timecount)
+ print "Average total runtime of %d reports is %fs" % (round(GlobalVars.rpt_count, 2), GlobalVars.timecount / GlobalVars.rpt_count)
+ print 79 * "-"
+ print
+ print "Longest running commands > %s:" % (GlobalVars.cmdlineopts.rtime,)
+ print 79 * "-"
+ for cmd, rtime in sorted(GlobalVars.lrc.iteritems(), key=operator.itemgetter(1)):
+ print "%-75s %s" % (cmd[:69], rtime)
+
+ if GlobalVars.cmdlineopts.filename:
+ print 79 * "-"
+ print "Report log written to: %s" % (GlobalVars.cmdlineopts.filename,)
+ writer.close()
+