diff options
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 6 | ||||
-rw-r--r-- | arch.py | 34 |
3 files changed, 37 insertions, 7 deletions
@@ -1,7 +1,7 @@ pkgbase = sos pkgdesc = A unified tool for collecting system logs and other debug information pkgver = 3.5 - pkgrel = 2 + pkgrel = 3 url = https://github.com/sosreport/sos arch = any license = GPL2 @@ -19,7 +19,7 @@ pkgbase = sos source = arch.py sha256sums = f62df231dd3c86a54645989f943bac6f5fdf45ffb210f4b76b4a5cc565296902 sha256sums = acf581080bad7772f10e183d18a2d1c2cf9bd9be91ee490e38ef5c5647859d6c - sha256sums = 281c8911687c2485b97db4891fd76f5d6e7071e7eebebeea5805edc77371de7b + sha256sums = 8a6565c1f7cd59ee9de3fc3896cafbf270a8e135e752901e8527471a7a405774 pkgname = sos @@ -1,7 +1,7 @@ # Maintainer: chr0mag <phillips.julian AT gmail DOT com> pkgname=sos pkgver=3.5 -pkgrel=2 +pkgrel=3 epoch= pkgdesc="A unified tool for collecting system logs and other debug information" arch=('any') @@ -29,7 +29,7 @@ noextract=() md5sums=() sha256sums=('f62df231dd3c86a54645989f943bac6f5fdf45ffb210f4b76b4a5cc565296902' 'acf581080bad7772f10e183d18a2d1c2cf9bd9be91ee490e38ef5c5647859d6c' - '281c8911687c2485b97db4891fd76f5d6e7071e7eebebeea5805edc77371de7b') + '8a6565c1f7cd59ee9de3fc3896cafbf270a8e135e752901e8527471a7a405774') validpgpkeys=() prepare() { @@ -58,5 +58,5 @@ package() { mv ${pkgdir}/usr/sbin/sosreport ${pkgdir}/usr/bin rmdir ${pkgdir}/usr/sbin #workaround for: https://github.com/sosreport/sos/issues/77 - sed --in-place 's/#disable = rpm, selinux, dovecot/disable = rpm, selinux, dovecot, sunrpc, nfsserver, distupgrade/' ${pkgdir}/etc/sos.conf + #sed --in-place 's/#disable = rpm, selinux, dovecot/disable = rpm, selinux, dovecot, sunrpc, nfsserver, distupgrade/' ${pkgdir}/etc/sos.conf } @@ -1,6 +1,7 @@ import os from sos.policies import PackageManager, LinuxPolicy from sos.plugins import Plugin +from sos.utilities import shell_out class ArchPolicy(LinuxPolicy): @@ -8,12 +9,41 @@ class ArchPolicy(LinuxPolicy): vendor = "Arch Linux" vendor_url = "https://www.archlinux.org/" vendor_text = "" - package_manager = PackageManager("pacman --query | awk 'BEGIN {OFS = \"|\"} {print $1,$2}'") + #package_manager = PackageManager("pacman --query | awk 'BEGIN {OFS = \"|\"} {print $1,$2}'") valid_subclasses = [Plugin] + def __init__(self, sysroot=None): + super(LinuxPolicy, self).__init__(sysroot=sysroot) + self.package_manager = Pacman() + @classmethod def check(cls): + """This method checks to see if we are running on Arch. + It returns True or False.""" try: - return "archlinux" in open('/etc/os-release', 'r').read() + with open('/etc/os-release', 'r') as f: + return "archlinux" in f.read() except: return False + +# this subclass is only needed because sos_get_command_output() +# in utilities.py sets shell=False so the pipe to awk in the +# command below used to format pacman output does not work +# pacman --query | awk 'BEGIN {OFS = \"|\"} {print $1,$2}' +class Pacman(PackageManager): + + def get_pkg_list(self): + cmd = "pacman --query" + pkg_list = shell_out( + cmd, timeout=0, chroot=self.chroot + ).splitlines() + + for pkg in pkg_list: + name, version = pkg.split() + self.packages[name] = { + 'name': name, + 'version': version.split(".") + } + + return self.packages + |