Skip to content

Commit

Permalink
app-admin/syslog-summary: port to py3
Browse files Browse the repository at this point in the history
Backport upstream py3 PR dpaleino/syslog-summary#4
Remove py2 support

Bug: https://bugs.gentoo.org/735202
Signed-off-by: Paul Healy <lmiphay@gmail.com>
Signed-off-by: Aaron Bauman <bman@gentoo.org>
  • Loading branch information
lmiphay authored and FuzzyGophers committed Aug 31, 2020
1 parent 263fd8d commit fc2ed88
Show file tree
Hide file tree
Showing 2 changed files with 188 additions and 0 deletions.
142 changes: 142 additions & 0 deletions app-admin/syslog-summary/files/syslog-summary-1.14-py3.patch
Original file line number Diff line number Diff line change
@@ -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 <liw@iki.fi>
Tommi Virtanen <tv@debian.org>
David Paleino <d.paleino@gmail.com>"""

+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
46 changes: 46 additions & 0 deletions app-admin/syslog-summary/syslog-summary-1.14-r5.ebuild
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit fc2ed88

Please sign in to comment.