kumquat-buildroot/package/pseudo/0003-Make-it-compatible-with-python3.patch
Gaël PORTAY 998d44e088 pseudo: fix build for python3 based distros
Pseudo is not python3 friendly. It causes build failure on distros using
python3 as default python interpretor.

./maketables enums/*.in
  File "./makewrappers", line 327
    return """/* This function is not called if pseudo is configured --enable-force-async */
                                                                                           ^
TabError: inconsistent use of tabs and spaces in indentation
  File "./maketables", line 76
    print "Flags: set for %s" % self.name
                            ^
SyntaxError: Missing parentheses in call to 'print'
make[2]: *** [Makefile:150: wrappers] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:147: tables] Error 1

Those patches make pseudo works with python2 and python3.

Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-05 13:41:58 +01:00

216 lines
8.3 KiB
Diff

From fcc10b1f4a9968af5cda1adb9e449df92939d5f2 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <gael.portay@savoirfairelinux.com>
Date: Fri, 4 Nov 2016 15:58:46 -0400
Subject: [PATCH 3/3] Make it compatible with python3
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Python scripts are now compatible with both version of python, 2 and 3.
Helped-by: Damien Riegel <damien.riegel@savoirfairelinux.com>
Helped-by: Alexandre Leblanc <alexandre.leblanc@savoirfairelinux.com>
Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
---
maketables | 135 ++++++++++++++++++++++++++++++-----------------------------
makewrappers | 8 ++--
2 files changed, 73 insertions(+), 70 deletions(-)
diff --git a/maketables b/maketables
index 0726485..f74f2b1 100755
--- a/maketables
+++ b/maketables
@@ -51,6 +51,7 @@ value. (This is for consistency with C array bounds.)
import glob
import sys
import string
+import os
from templatefile import TemplateFile
class DataType:
@@ -58,74 +59,74 @@ class DataType:
def __init__(self, path):
"""read the first line of path, then make tuples of the rest"""
- source = file(path)
- definition = source.readline().rstrip()
- self.name, qualifiers = string.split(definition, ': ', 2)
- if '; ' in qualifiers:
- self.prefix, columns = string.split(qualifiers, '; ')
- else:
- self.prefix = qualifiers
- columns = []
- self.flags = False
- if len(columns):
- self.columns = []
- columns = string.split(columns, ', ')
- for col in columns:
- indexed = False
- if col.startswith("FLAGS"):
- print("Flags: set for %s" % self.name)
- self.flags = True
+ with open(path,'r') as source:
+ definition = source.readline().rstrip()
+ self.name, qualifiers = definition.split(': ', 2)
+ if '; ' in qualifiers:
+ self.prefix, columns = qualifiers.split('; ')
+ else:
+ self.prefix = qualifiers
+ columns = []
+ self.flags = False
+ if len(columns):
+ self.columns = []
+ columns = columns.split(', ')
+ for col in columns:
+ indexed = False
+ if col.startswith("FLAGS"):
+ print("Flags: set for %s" % self.name)
+ self.flags = True
+ continue
+ if col.startswith("INDEXED "):
+ col = col[8:]
+ indexed = True
+ if "=" in col:
+ name, default = col.split(' = ')
+ else:
+ name, default = col, ""
+ if " " in name:
+ words = name.split(' ')
+ name = words[-1]
+ del words[-1]
+ type = ' '.join(words)
+ else:
+ type = "char *"
+ self.columns.append({"indexed":indexed, "type":type, "name":name, "value":default})
+ else:
+ self.columns = []
+ self.data = []
+ self.comments = []
+ index = 1
+ for line in source.readlines():
+ item = {}
+ if line.startswith('#'):
+ self.comments.append(line.rstrip().replace('#', ''))
continue
- if col.startswith("INDEXED "):
- col = col[8:]
- indexed = True
- if "=" in col:
- name, default = string.split(col, ' = ')
- else:
- name, default = col, ""
- if " " in name:
- words = string.split(name, ' ')
- name = words[-1]
- del words[-1]
- type = ' '.join(words)
- else:
- type = "char *"
- self.columns.append({"indexed":indexed, "type":type, "name":name, "value":default})
- else:
- self.columns = []
- self.data = []
- self.comments = []
- index = 1
- for line in source.readlines():
- item = {}
- if line.startswith('#'):
- self.comments.append(line.rstrip().replace('#', ''))
- continue
- # first entry on the line is the "real" name/id, following hunks
- # are additional columns
- cols = string.split(line.rstrip(), ', ')
- item["name"] = cols.pop(0)
- item["upper"] = item["name"].replace('-', '_').upper()
- column_list = []
- for col in self.columns:
- if len(cols) > 0:
- value = cols.pop(0)
- if col["indexed"]:
- if not "max" in col:
- col["max"] = value
- if value > col["max"]:
- col["max"] = value
- if not "min" in col:
- col["min"] = value
- if value < col["min"]:
- col["min"] = value
- column_list.append({"name":col["name"], "value":value})
- else:
- column_list.append({"name":col["name"], "value":col["value"]})
- item["cols"] = column_list
- item["index"] = index
- index = index + 1
- self.data.append(item)
+ # first entry on the line is the "real" name/id, following hunks
+ # are additional columns
+ cols = line.rstrip().split(', ')
+ item["name"] = cols.pop(0)
+ item["upper"] = item["name"].replace('-', '_').upper()
+ column_list = []
+ for col in self.columns:
+ if len(cols) > 0:
+ value = cols.pop(0)
+ if col["indexed"]:
+ if not "max" in col:
+ col["max"] = value
+ if value > col["max"]:
+ col["max"] = value
+ if not "min" in col:
+ col["min"] = value
+ if value < col["min"]:
+ col["min"] = value
+ column_list.append({"name":col["name"], "value":value})
+ else:
+ column_list.append({"name":col["name"], "value":col["value"]})
+ item["cols"] = column_list
+ item["index"] = index
+ index = index + 1
+ self.data.append(item)
def __getitem__(self, key):
"""Make this object look like a dict for Templates to use"""
diff --git a/makewrappers b/makewrappers
index bac856b..ff08ba0 100755
--- a/makewrappers
+++ b/makewrappers
@@ -453,6 +453,8 @@ additional ports to include.
"""
def __init__(self, port, sources):
+ if type(port) is not str:
+ port = str(port, encoding="ascii")
self.name = port
self.subports = []
self.preports = []
@@ -483,7 +485,7 @@ additional ports to include.
if retcode:
raise Exception("preports script failed for port %s" % self.name)
- for preport in string.split(portlist):
+ for preport in portlist.split():
next = Port(preport, sources)
self.preports.append(next)
@@ -494,7 +496,7 @@ additional ports to include.
if retcode:
raise Exception("subports script failed for port %s" % self.name)
- for subport in string.split(portlist):
+ for subport in portlist.split():
next = Port(subport, sources)
self.subports.append(next)
@@ -519,7 +521,7 @@ additional ports to include.
return mergedfuncs
def define(self):
- return '#define PSEUDO_PORT_%s 1' % string.upper(self.name).replace('/', '_')
+ return '#define PSEUDO_PORT_%s 1' % self.name.upper().replace('/', '_')
def portdeps(self):
deps = []
--
2.10.1