commit:     fc2ed88084be5fa1595ab7562f1eb6ef8475e5b6
Author:     Paul Healy <lmiphay <AT> gmail <DOT> com>
AuthorDate: Mon Aug 31 09:10:39 2020 +0000
Commit:     Aaron Bauman <bman <AT> gentoo <DOT> org>
CommitDate: Mon Aug 31 17:15:47 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc2ed880

app-admin/syslog-summary: port to py3

Backport upstream py3 PR https://github.com/dpaleino/syslog-summary/pull/4
Remove py2 support

Bug: https://bugs.gentoo.org/735202
Signed-off-by: Paul Healy <lmiphay <AT> gmail.com>
Signed-off-by: Aaron Bauman <bman <AT> gentoo.org>

 .../files/syslog-summary-1.14-py3.patch            | 142 +++++++++++++++++++++
 .../syslog-summary/syslog-summary-1.14-r5.ebuild   |  46 +++++++
 2 files changed, 188 insertions(+)

diff --git a/app-admin/syslog-summary/files/syslog-summary-1.14-py3.patch 
b/app-admin/syslog-summary/files/syslog-summary-1.14-py3.patch
new file mode 100644
index 00000000000..945c7ce290b
--- /dev/null
+++ b/app-admin/syslog-summary/files/syslog-summary-1.14-py3.patch
@@ -0,0 +1,142 @@
+diff --git a/syslog-summary b/syslog-summary
+index abf6381..a658c14 100755
+--- a/syslog-summary
++++ b/syslog-summary
+@@ -35,6 +35,8 @@ Lars Wirzenius <[email protected]>
+ Tommi Virtanen <[email protected]>
+ David Paleino <[email protected]>"""
+ 
++from __future__ import print_function
++
+ version = "1.14"
+ 
+ import sys, re, getopt, string
+@@ -62,7 +64,7 @@ def io_error(err, filename, die=True):
+               if die:
+                       traceback.print_exc(file=sys.stderr)
+               else:
+-                      print "[E] %s [%s(%s) - %s]" % (os.strerror(num), 
errno.errorcode[num], num, filename)
++                      print("[E] %s [%s(%s) - %s]" % (os.strerror(num), 
errno.errorcode[num], num, filename))
+ 
+       if die:
+               sys.exit(1)
+@@ -72,7 +74,7 @@ def read_patterns(filename):
+       pats = []
+       try:
+               f = open(filename, "r")
+-      except IOError, e:
++      except IOError as e:
+               io_error(e, filename, False)
+               return []
+       for line in f:
+@@ -91,7 +93,7 @@ def read_states(filename):
+               return states
+       try:
+               f = open(filename, "r")
+-      except IOError, e:
++      except IOError as e:
+               io_error(e, filename, False)
+               return states
+       for line in f:
+@@ -105,9 +107,9 @@ def save_states(filename, states):
+               return
+       try:
+               f = open(filename, "w")
+-      except IOError, e:
++      except IOError as e:
+               io_error(e, filename, True)
+-      for filename in states.keys():
++      for filename in list(states.keys()):
+               value = states[filename]
+               f.write("%s %d %s\n" % (filename, value[0], value[1]))
+       f.close()
+@@ -123,7 +125,7 @@ def split_date(line):
+               m = pat.match(line)
+               if m:
+                       return line[:m.end()], line[m.end():]
+-      print "line has bad date", "<" + string.rstrip(line) + ">"
++      print("line has bad date", "<" + string.rstrip(line) + ">")
+       return None, line
+ 
+ def is_gzipped(filename):
+@@ -152,7 +154,7 @@ def summarize(filename, states):
+       order = []
+       ignored_count = 0
+       if not QUIET:
+-              print "Summarizing %s" % filename
++              print("Summarizing %s" % filename)
+       
+       # If the file is a gzipped log, open it
+       # using the proper function from the gzip
+@@ -162,7 +164,7 @@ def summarize(filename, states):
+                       file = gzopen(filename, "rb")
+               else:
+                       file = open(filename, "r")
+-      except IOError, e:
++      except IOError as e:
+               io_error(e, filename, True)
+               
+       linecount = 0
+@@ -170,7 +172,7 @@ def summarize(filename, states):
+       shaobj = sha1()
+       if filename in states:
+               oldlines, oldsha = states[filename]
+-              for i in xrange(oldlines):
++              for i in range(oldlines):
+                       line = file.readline()
+                       shaobj.update(line)
+ #             print "OLD-new: %s" % shaobj.hexdigest()
+@@ -182,7 +184,7 @@ def summarize(filename, states):
+               else:
+                       linecount = oldlines
+       if not QUIET:
+-              print "%8d Lines skipped (already processed)" % linecount
++              print("%8d Lines skipped (already processed)" % linecount)
+ 
+       line = file.readline()
+       previous = None
+@@ -190,13 +192,13 @@ def summarize(filename, states):
+       foo=0
+       while line:
+ #             foo+=1
+-              shaobj.update(line)
++              shaobj.update(line.encode())
+               linecount += 1
+               
+               if should_be_ignored(line):
+                       ignored_count += 1
+                       if DEBUG:
+-                              print "Ignoring: %s" % line
++                              print("Ignoring: %s" % line)
+                       line = file.readline()
+               
+               date, rest = split_date(line)
+@@ -213,7 +215,7 @@ def summarize(filename, states):
+                       count = int(repeated.group(1))
+                       rest = previous
+ 
+-              if counts.has_key(rest):
++              if rest in counts:
+                       counts[rest] = counts[rest] + count
+               else:
+                       assert count == 1
+@@ -233,14 +235,14 @@ def summarize(filename, states):
+ #     print states
+       
+       if QUIET and order:
+-              print "Summarizing %s" % filename
++              print("Summarizing %s" % filename)
+       if not QUIET or order:
+-              print "%8d Patterns to ignore" % len(ignore_pats)
+-              print "%8d Ignored lines" % ignored_count
++              print("%8d Patterns to ignore" % len(ignore_pats))
++              print("%8d Ignored lines" % ignored_count)
+       for rest in order:
+-              print "%8d %s" % (counts[rest], rest),
++              print("%8d %s" % (counts[rest], rest), end='')
+       if not QUIET or order:
+-              print
++              print()
+ 
+ def main():
+       global ignore_pats, IGNORE_FILENAME, STATE_FILENAME, REPEAT, QUIET, 
DEBUG

diff --git a/app-admin/syslog-summary/syslog-summary-1.14-r5.ebuild 
b/app-admin/syslog-summary/syslog-summary-1.14-r5.ebuild
new file mode 100644
index 00000000000..e34fa9528f0
--- /dev/null
+++ b/app-admin/syslog-summary/syslog-summary-1.14-r5.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7,8} )
+
+inherit python-single-r1
+
+DESCRIPTION="Summarizes the contents of a syslog log file"
+HOMEPAGE="https://github.com/dpaleino/syslog-summary";
+SRC_URI="https://github.com/downloads/dpaleino/${PN}/${P}.tar.gz";
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE=""
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND=""
+RDEPEND="${PYTHON_DEPS}"
+
+PATCHES=( \
+       "${FILESDIR}/${P}-fix-ignore-code.patch" \
+       "${FILESDIR}/${P}-remove-file-magic.patch" \
+       "${FILESDIR}/${P}-py3.patch" \
+       )
+
+src_prepare() {
+       python_fix_shebang -f syslog-summary
+
+       # Sadly, the makefile is useless for us.
+       rm Makefile || die
+
+       default
+}
+
+src_install() {
+       dobin syslog-summary
+       einstalldocs
+       doman syslog-summary.1
+
+       insinto /etc/syslog-summary
+       doins ignore.rules
+}

Reply via email to