+++ /dev/null
-From bf4e5310547603bf36e67dc4cba027963f16508e Mon Sep 17 00:00:00 2001
-From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <gael.portay@savoirfairelinux.com>
-Date: Fri, 4 Nov 2016 11:53:48 -0400
-Subject: [PATCH 1/3] Fix mixed tab/space indentation
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf-8
-Content-Transfer-Encoding: 8bit
-
-CC="cc -pipe -std=gnu99 -Wall -W -Wextra -fPIC -D_LARGEFILE64_SOURCE -D_ATFILE_SOURCE -DPSEUDO_PREFIX='"/usr/local"' -DPSEUDO_SUFFIX='""' -DPSEUDO_BINDIR='"bin"' -DPSEUDO_LIBDIR='"lib64"' -DPSEUDO_LOCALSTATEDIR='"var/pseudo"' -DPSEUDO_VERSION='"1.8.1"' -DUSE_MEMORY_DB -DPSEUDO_PASSWD_FALLBACK='""' -DPSEUDO_XATTR_SUPPORT -O2 -g " ./makewrappers "xattr=true"
- 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
-
-Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
----
- makewrappers | 26 +++++++++++++-------------
- 1 file changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/makewrappers b/makewrappers
-index e9191ed..303e2cc 100755
---- a/makewrappers
-+++ b/makewrappers
-@@ -324,7 +324,7 @@ class Function:
-
- def maybe_async_skip(self):
- if self.async_skip:
-- return """/* This function is not called if pseudo is configured --enable-force-async */
-+ return """/* This function is not called if pseudo is configured --enable-force-async */
- #ifdef PSEUDO_FORCE_ASYNC
- if (!pseudo_allow_fsync) {
- PROFILE_DONE;
-@@ -333,7 +333,7 @@ class Function:
- #endif
- """ % self.async_skip
- else:
-- return ""
-+ return ""
-
- def comment(self):
- """declare self (in a comment)"""
-@@ -393,11 +393,11 @@ class Function:
-
- def rc_format(self):
- """the format string to use for the return value"""
-- return typedata.get(self.type, { 'format': '[%s]', 'value': '"' + self.type + '"' })['format']
-+ return typedata.get(self.type, { 'format': '[%s]', 'value': '"' + self.type + '"' })['format']
-
- def rc_value(self):
- """the value to pass for the format string for the return value"""
-- return typedata.get(self.type, { 'format': '[%s]', 'value': '"' + self.type + '"' })['value']
-+ return typedata.get(self.type, { 'format': '[%s]', 'value': '"' + self.type + '"' })['value']
-
- def rc_decl(self):
- """declare rc (if needed)"""
-@@ -456,7 +456,7 @@ additional ports to include.
- self.name = port
- self.subports = []
- self.preports = []
-- print port
-+ print port
-
- if os.path.exists(self.portfile("pseudo_wrappers.c")):
- self.wrappers = self.portfile("pseudo_wrappers.c")
-@@ -522,11 +522,11 @@ additional ports to include.
- return '#define PSEUDO_PORT_%s 1' % string.upper(self.name).replace('/', '_')
-
- def portdeps(self):
-- deps = []
-- if self.wrappers:
-- deps.append(self.wrappers)
-- if self.portdef_file:
-- deps.append(self.portdef_file)
-+ deps = []
-+ if self.wrappers:
-+ deps.append(self.wrappers)
-+ if self.portdef_file:
-+ deps.append(self.portdef_file)
- if deps:
- return 'pseudo_wrappers.o: %s' % ' '.join(deps)
- else:
-@@ -590,7 +590,7 @@ def main(argv):
-
- for arg in argv:
- name, value = arg.split('=')
-- os.environ["port_" + name] = value
-+ os.environ["port_" + name] = value
-
- # error checking helpfully provided by the exception handler
- copyright_file = open('guts/COPYRIGHT')
-@@ -599,9 +599,9 @@ def main(argv):
-
- for path in glob.glob('templates/*'):
- try:
-- print "Considering template: " + path
-+ print "Considering template: " + path
- source = TemplateFile(path)
-- if source.name.endswith('.c') or source.name.endswith('.h'):
-+ if source.name.endswith('.c') or source.name.endswith('.h'):
- source.emit('copyright')
- source.emit('header')
- sources.append(source)
---
-2.10.1
-
+++ /dev/null
-From 6488a68ca715d8e18f899e536effceb548ed136e Mon Sep 17 00:00:00 2001
-From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <gael.portay@savoirfairelinux.com>
-Date: Fri, 4 Nov 2016 12:23:25 -0400
-Subject: [PATCH 2/3] Fix missing parentheses at print
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf-8
-Content-Transfer-Encoding: 8bit
-
-CC="cc -pipe -std=gnu99 -Wall -W -Wextra -fPIC -D_LARGEFILE64_SOURCE -D_ATFILE_SOURCE -DPSEUDO_PREFIX='"/usr/local"' -DPSEUDO_SUFFIX='""' -DPSEUDO_BINDIR='"bin"' -DPSEUDO_LIBDIR='"lib64"' -DPSEUDO_LOCALSTATEDIR='"var/pseudo"' -DPSEUDO_VERSION='"1.8.1"' -DUSE_MEMORY_DB -DPSEUDO_PASSWD_FALLBACK='""' -DPSEUDO_XATTR_SUPPORT -O2 -g " ./makewrappers "xattr=true"
- File "./makewrappers", line 459
- print port
- ^
-SyntaxError: Missing parentheses in call to 'print'
-
-Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
----
- maketables | 12 ++++++------
- makewrappers | 32 ++++++++++++++++----------------
- templatefile.py | 8 ++++----
- 3 files changed, 26 insertions(+), 26 deletions(-)
-
-diff --git a/maketables b/maketables
-index b32312e..0726485 100755
---- a/maketables
-+++ b/maketables
-@@ -73,7 +73,7 @@ class DataType:
- for col in columns:
- indexed = False
- if col.startswith("FLAGS"):
-- print "Flags: set for %s" % self.name
-+ print("Flags: set for %s" % self.name)
- self.flags = True
- continue
- if col.startswith("INDEXED "):
-@@ -248,7 +248,7 @@ def main():
- template_file.emit('header')
- templates.append(template_file)
- except IOError:
-- print "Invalid or malformed template %s. Aborting." % path
-+ print("Invalid or malformed template %s. Aborting." % path)
- exit(1)
-
- for filename in sys.argv[1:]:
-@@ -256,15 +256,15 @@ def main():
- sys.stdout.write("%s: " % filename)
- datatype = DataType(filename)
- datatypes.append(datatype)
-- print datatype.__repr__()
-- print ""
-+ print(datatype.__repr__())
-+ print("")
-
-- print "Writing datatypes...",
-+ print("Writing datatypes...")
- for datatype in datatypes:
- # populate various tables and files with each datatype
- for template_file in templates:
- template_file.emit('body', datatype)
-- print "done. Cleaning up."
-+ print("done. Cleaning up.")
-
- for template_file in templates:
- # clean up files
-diff --git a/makewrappers b/makewrappers
-index 303e2cc..bac856b 100755
---- a/makewrappers
-+++ b/makewrappers
-@@ -456,7 +456,7 @@ additional ports to include.
- self.name = port
- self.subports = []
- self.preports = []
-- print port
-+ print(port)
-
- if os.path.exists(self.portfile("pseudo_wrappers.c")):
- self.wrappers = self.portfile("pseudo_wrappers.c")
-@@ -504,17 +504,17 @@ additional ports to include.
- prefuncs = pre.functions()
- for name in prefuncs.keys():
- if name in mergedfuncs:
-- print "Warning: %s from %s overriding %s" % (name, pre.name, mergedfuncs[name].port)
-+ print("Warning: %s from %s overriding %s" % (name, pre.name, mergedfuncs[name].port))
- mergedfuncs[name] = prefuncs[name]
- for name in self.funcs.keys():
- if name in mergedfuncs:
-- print "Warning: %s from %s overriding %s" % (name, self.name, mergedfuncs[name].port)
-+ print("Warning: %s from %s overriding %s" % (name, self.name, mergedfuncs[name].port))
- mergedfuncs[name] = self.funcs[name]
- for sub in self.subports:
- subfuncs = sub.functions()
- for name in subfuncs.keys():
- if name in mergedfuncs:
-- print "Warning: %s from %s overriding %s" % (name, sub.name, mergedfuncs[name].port)
-+ print("Warning: %s from %s overriding %s" % (name, sub.name, mergedfuncs[name].port))
- mergedfuncs[name] = subfuncs[name]
- return mergedfuncs
-
-@@ -576,11 +576,11 @@ def process_wrapfuncs(port):
- func.directory = directory
- funcs[func.name] = func
- sys.stdout.write(".")
-- except Exception, e:
-- print "Parsing failed:", e
-+ except Exception(e):
-+ print("Parsing failed:", e)
- exit(1)
- funclist.close()
-- print ""
-+ print("")
- return funcs
-
- def main(argv):
-@@ -599,35 +599,35 @@ def main(argv):
-
- for path in glob.glob('templates/*'):
- try:
-- print "Considering template: " + path
-+ print("Considering template: " + path)
- source = TemplateFile(path)
- if source.name.endswith('.c') or source.name.endswith('.h'):
- source.emit('copyright')
- source.emit('header')
- sources.append(source)
- except IOError:
-- print "Invalid or malformed template %s. Aborting." % path
-+ print("Invalid or malformed template %s. Aborting." % path)
- exit(1)
-
- try:
- port = Port('common', sources)
-
- except KeyError:
-- print "Unknown uname -s result: '%s'." % uname_s
-- print "Known system types are:"
-- print "%-20s %-10s %s" % ("uname -s", "port name", "description")
-+ print("Unknown uname -s result: '%s'." % uname_s)
-+ print("Known system types are:")
-+ print("%-20s %-10s %s" % ("uname -s", "port name", "description"))
- for key in host_ports:
-- print "%-20s %-10s %s" % (key, host_ports[key],
-- host_descrs[host_ports[key]])
-+ print("%-20s %-10s %s" % (key, host_ports[key],
-+ host_descrs[host_ports[key]]))
-
- # the per-function stuff
-- print "Writing functions...",
-+ print("Writing functions...")
- all_funcs = port.functions()
- for name in sorted(all_funcs.keys()):
- # populate various tables and files with each function
- for source in sources:
- source.emit('body', all_funcs[name])
-- print "done. Cleaning up."
-+ print("done. Cleaning up.")
-
- for source in sources:
- # clean up files
-diff --git a/templatefile.py b/templatefile.py
-index 2789b22..abf9a2c 100644
---- a/templatefile.py
-+++ b/templatefile.py
-@@ -79,13 +79,13 @@ class TemplateFile:
- return
- path = Template(self.path).safe_substitute(item)
- if os.path.exists(path):
-- # print "We don't overwrite existing files."
-+ # print("We don't overwrite existing files.")
- return
- self.file = open(path, 'w')
- if not self.file:
-- print "Couldn't open '%s' (expanded from %s), " \
-+ print("Couldn't open '%s' (expanded from %s), " \
- "not emitting '%s'." % \
-- (path, self.path, template)
-+ (path, self.path, template))
- return
-
- def emit(self, template, item=None):
-@@ -103,7 +103,7 @@ class TemplateFile:
- self.file.write(templ.safe_substitute(item))
- self.file.write("\n")
- else:
-- print "Warning: Unknown template '%s'." % template
-+ print("Warning: Unknown template '%s'." % template)
-
- if self.file_per_item:
- if self.file:
---
-2.10.1
-
+++ /dev/null
-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
-
+++ /dev/null
-# Locally computed
-sha256 7d4b767302f118fa1c3f89b551cf3f3f2aa92721dab86ff62f0600a394b8a81a pseudo-45eca34c754d416a38bee90fb2d3c110a0b6cc5f.tar.gz
+++ /dev/null
-################################################################################
-#
-# pseudo
-#
-################################################################################
-
-PSEUDO_VERSION = 45eca34c754d416a38bee90fb2d3c110a0b6cc5f
-PSEUDO_SITE = https://git.yoctoproject.org/git/pseudo
-PSEUDO_SITE_METHOD = git
-
-# No "or later" clause.
-PSEUDO_LICENSE = LGPL-2.1
-PSEUDO_LICENSE_FILES = COPYING
-
-HOST_PSEUDO_DEPENDENCIES = host-attr host-sqlite
-
-# configure script is not generated by autoconf, so passing --libdir
-# is necessary, even if the infrastructure passes --prefix already.
-# It also does not use CFLAGS from the environment, they need to be
-# specified with a custom --cflags option. Also force rpath to avoid
-# a warning at configure time.
-HOST_PSEUDO_CONF_OPTS = \
- --cflags="$(HOSTCFLAGS)" \
- --with-rpath=$(HOST_DIR)/lib \
- --bits=$(if $(filter %64,$(HOSTARCH)),64,32) \
- --libdir=$(HOST_DIR)/lib \
- --with-sqlite=$(HOST_DIR)
-
-$(eval $(host-autotools-package))