On Fri, 2018-11-16 at 15:08 -0800, akpm@linux-foundation.org wrote:
From: Uwe Kleine-König u.kleine-koenig@pengutronix.de Subject: scripts/spdxcheck.py: make python3 compliant
Without this change the following happens when using Python3 (3.6.6):
$ echo "GPL-2.0" | python3 scripts/spdxcheck.py - FAIL: 'str' object has no attribute 'decode' Traceback (most recent call last): File "scripts/spdxcheck.py", line 253, in <module> parser.parse_lines(sys.stdin, args.maxlines, '-') File "scripts/spdxcheck.py", line 171, in parse_lines line = line.decode(locale.getpreferredencoding(False), errors='ignore') AttributeError: 'str' object has no attribute 'decode'
So as the line is already a string, there is no need to decode it and the line can be dropped.
/usr/bin/python on Arch is Python 3. So this would indeed be worth going into 4.19.
OK, I tested this (and it works fine) but found I needed to install a couple of extra packages that I didn't already have for the default python3 installation.
python3-ply and python3-git
Perhaps that should be mentioned in some requirements doc.
In fact, scripts/spdxcheck.py is not mentioned in any doc file.
Link: http://lkml.kernel.org/r/20181023070802.22558-1-u.kleine-koenig@pengutronix.... Signed-off-by: Uwe Kleine-König u.kleine-koenig@pengutronix.de Cc: Thomas Gleixner tglx@linutronix.de Cc: Joe Perches joe@perches.com Cc: Greg Kroah-Hartman gregkh@linuxfoundation.org Cc: stable@vger.kernel.org Signed-off-by: Andrew Morton akpm@linux-foundation.org
--- a/scripts/spdxcheck.py~scripts-spdxcheck-make-python3-compliant +++ a/scripts/spdxcheck.py @@ -168,7 +168,6 @@ class id_parser(object): self.curline = 0 try: for line in fd:
line = line.decode(locale.getpreferredencoding(False), errors='ignore') self.curline += 1 if self.curline > maxlines: break