From fc2ed88084be5fa1595ab7562f1eb6ef8475e5b6 Mon Sep 17 00:00:00 2001 From: Paul Healy Date: Mon, 31 Aug 2020 10:10:39 +0100 Subject: 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 Signed-off-by: Aaron Bauman --- .../files/syslog-summary-1.14-py3.patch | 142 +++++++++++++++++++++ .../syslog-summary/syslog-summary-1.14-r5.ebuild | 46 +++++++ 2 files changed, 188 insertions(+) create mode 100644 app-admin/syslog-summary/files/syslog-summary-1.14-py3.patch create mode 100644 app-admin/syslog-summary/syslog-summary-1.14-r5.ebuild (limited to 'app-admin') 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 000000000000..945c7ce290be --- /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 + Tommi Virtanen + David Paleino """ + ++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 000000000000..e34fa9528f05 --- /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 +} -- cgit v1.2.3-65-gdbad