diff options
author | Gaël PORTAY <gael.portay@savoirfairelinux.com> | 2016-11-04 23:55:49 -0400 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2016-11-05 13:41:58 +0100 |
commit | 998d44e0881e8bcf7ecea7a606c389986f175c67 (patch) | |
tree | 52006d508a08c57e9545694c9c8cfc98e2df7ec3 /package/pseudo/0003-Make-it-compatible-with-python3.patch | |
parent | d2362fc9c4d6add63c0a5c077d2729c0a67f239f (diff) | |
download | buildroot-998d44e0881e8bcf7ecea7a606c389986f175c67.tar.gz buildroot-998d44e0881e8bcf7ecea7a606c389986f175c67.zip |
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>
Diffstat (limited to 'package/pseudo/0003-Make-it-compatible-with-python3.patch')
-rw-r--r-- | package/pseudo/0003-Make-it-compatible-with-python3.patch | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/package/pseudo/0003-Make-it-compatible-with-python3.patch b/package/pseudo/0003-Make-it-compatible-with-python3.patch new file mode 100644 index 0000000000..3bb74deacf --- /dev/null +++ b/package/pseudo/0003-Make-it-compatible-with-python3.patch @@ -0,0 +1,215 @@ +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 + |