[meta-virtualization] [PATCH] openvswitch: remove unused patches

Mark Asselstine mark.asselstine at windriver.com
Tue Jun 5 06:47:35 PDT 2018


commit 1fd1ff372014 [openvswitch: uprev to v2.9.2] left a bunch of
unused patches in place. Remove unreferenced patches as they are no
longer needed.

Signed-off-by: Mark Asselstine <mark.asselstine at windriver.com>
---
 ...n3-compatibility-Convert-print-statements.patch | 1262 --------------------
 ...-the-linux-if_packet.h-Interface-directly.patch |   33 -
 ...2-Python3-compatibility-exception-cleanup.patch |   77 --
 ...03-Python3-compatibility-execfile-to-exec.patch |   31 -
 ...-Python3-compatibility-iteritems-to-items.patch |  100 --
 ...ython3-compatibility-fix-integer-problems.patch |   49 -
 ...n3-compatibility-math-error-compatibility.patch |   54 -
 ...0007-Python3-compatibility-unicode-to-str.patch |   49 -
 .../0008-AUTHORS-Add-Jason-Wessel.patch            |   26 -
 ...-b8dcfbebee9e7dbc74ec5eecc9b45d335d6150c1.patch |  108 --
 10 files changed, 1789 deletions(-)
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0001-Python3-compatibility-Convert-print-statements.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0001-use-the-linux-if_packet.h-Interface-directly.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0002-Python3-compatibility-exception-cleanup.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0003-Python3-compatibility-execfile-to-exec.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0004-Python3-compatibility-iteritems-to-items.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0005-Python3-compatibility-fix-integer-problems.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0006-Python3-compatibility-math-error-compatibility.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0007-Python3-compatibility-unicode-to-str.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/0008-AUTHORS-Add-Jason-Wessel.patch
 delete mode 100644 recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-b8dcfbebee9e7dbc74ec5eecc9b45d335d6150c1.patch

diff --git a/recipes-networking/openvswitch/openvswitch-git/0001-Python3-compatibility-Convert-print-statements.patch b/recipes-networking/openvswitch/openvswitch-git/0001-Python3-compatibility-Convert-print-statements.patch
deleted file mode 100644
index 7bdcc00..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0001-Python3-compatibility-Convert-print-statements.patch
+++ /dev/null
@@ -1,1262 +0,0 @@
-From 3658d861c3c83caab9040bec04b195be3f86d4ce Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Jun 2017 20:33:23 -0700
-Subject: [PATCH] Python3 compatibility: Convert print statements
-
-Commit d34a1cc02536f9a812517a71accec3fbd3c6c98b from
-https://github.com/openvswitch/ovs.git
-
-This patch fixes up all the print statements to work with python3 or
-python2.
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Ben Pfaff <blp at ovn.org>
-
----
- build-aux/check-structs       |   4 +-
- build-aux/extract-ofp-actions |  68 +++---
- build-aux/extract-ofp-errors  |   2 +-
- build-aux/extract-ofp-fields  |   2 +-
- build-aux/extract-ofp-msgs    |   6 +-
- ovsdb/ovsdb-doc               |   6 +-
- ovsdb/ovsdb-idlc.in           | 523 +++++++++++++++++++++---------------------
- 7 files changed, 306 insertions(+), 305 deletions(-)
-
-diff --git a/build-aux/check-structs b/build-aux/check-structs
-index 5129b72..cbb19b6 100755
---- a/build-aux/check-structs
-+++ b/build-aux/check-structs
-@@ -211,7 +211,7 @@ def checkStructs():
- 
-     if '--help' in sys.argv:
-         argv0 = os.path.basename(sys.argv[0])
--        print '''\
-+        print('''\
- %(argv0)s, for checking struct and struct member alignment
- usage: %(argv0)s -Ipath HEADER [HEADER]...
- 
-@@ -226,7 +226,7 @@ assertions using OFP_ASSERT.
- 
- This program is specialized for reading Open vSwitch's OpenFlow header
- files.  It will not work on arbitrary header files without extensions.\
--''' % {"argv0": argv0}
-+''' % {"argv0": argv0})
-         sys.exit(0)
- 
-     global fileName
-diff --git a/build-aux/extract-ofp-actions b/build-aux/extract-ofp-actions
-index ee8c4ff..67e3848 100755
---- a/build-aux/extract-ofp-actions
-+++ b/build-aux/extract-ofp-actions
-@@ -67,7 +67,7 @@ def fatal(msg):
- 
- def usage():
-     argv0 = os.path.basename(sys.argv[0])
--    print ('''\
-+    print('''\
- %(argv0)s, for extracting OpenFlow action data
- usage: %(argv0)s OFP_ACTIONS.C [--prototypes | --definitions]
- 
-@@ -238,36 +238,36 @@ def extract_ofp_actions(fn, definitions):
-     if n_errors:
-         sys.exit(1)
- 
--    print """\
-+    print("""\
- /* Generated automatically; do not modify!     -*- buffer-read-only: t -*- */
--"""
-+""")
- 
-     if definitions:
--        print "/* Verify that structs used as actions are reasonable sizes. */"
-+        print("/* Verify that structs used as actions are reasonable sizes. */")
-         for s in sorted(arg_structs):
--            print "BUILD_ASSERT_DECL(sizeof(%s) %% OFP_ACTION_ALIGN == 0);" % s
-+            print("BUILD_ASSERT_DECL(sizeof(%s) %% OFP_ACTION_ALIGN == 0);" % s)
- 
--        print "\nstatic struct ofpact_raw_instance all_raw_instances[] = {"
-+        print("\nstatic struct ofpact_raw_instance all_raw_instances[] = {")
-         for vendor in domain:
-             for type_ in domain[vendor]:
-                 for version in domain[vendor][type_]:
-                     d = domain[vendor][type_][version]
--                    print "    { { 0x%08x, %2d, 0x%02x }, " % (
--                        vendor, type_, version)
--                    print "      %s," % d["enum"]
--                    print "      HMAP_NODE_NULL_INITIALIZER,"
--                    print "      HMAP_NODE_NULL_INITIALIZER,"
--                    print "      %s," % d["min_length"]
--                    print "      %s," % d["max_length"]
--                    print "      %s," % d["arg_ofs"]
--                    print "      %s," % d["arg_len"]
--                    print "      \"%s\"," % re.sub('_RAW[0-9]*', '', d["enum"], 1)
-+                    print("    { { 0x%08x, %2d, 0x%02x }, " % (
-+                        vendor, type_, version))
-+                    print("      %s," % d["enum"])
-+                    print("      HMAP_NODE_NULL_INITIALIZER,")
-+                    print("      HMAP_NODE_NULL_INITIALIZER,")
-+                    print("      %s," % d["min_length"])
-+                    print("      %s," % d["max_length"])
-+                    print("      %s," % d["arg_ofs"])
-+                    print("      %s," % d["arg_len"])
-+                    print("      \"%s\"," % re.sub('_RAW[0-9]*', '', d["enum"], 1))
-                     if d["deprecation"]:
--                        print "      \"%s\"," % re.sub(r'(["\\])', r'\\\1', d["deprecation"])
-+                        print("      \"%s\"," % re.sub(r'(["\\])', r'\\\1', d["deprecation"]))
-                     else:
--                        print "      NULL,"
--                    print "    },"
--        print "};";
-+                        print("      NULL,")
-+                    print("    },")
-+        print("};")
- 
-     for versions in enums.values():
-         need_ofp_version = False
-@@ -314,11 +314,11 @@ def extract_ofp_actions(fn, definitions):
-             decl += "}"
-         else:
-             decl += ";"
--        print decl
--        print
-+        print(decl)
-+        print("")
- 
-     if definitions:
--        print """\
-+        print("""\
- static enum ofperr
- ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw,
-               enum ofp_version version, uint64_t arg,
-@@ -326,14 +326,14 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw,
-               uint64_t *tlv_bitmap, struct ofpbuf *out)
- {
-     switch (raw) {\
--"""
-+""")
-         for versions in enums.values():
-             enum = versions[0]["enum"]
--            print "    case %s:" % enum
-+            print("    case %s:" % enum)
-             base_argtype = versions[0]["base_argtype"]
-             arg_vl_mff_map = versions[0]["arg_vl_mff_map"]
-             if base_argtype == 'void':
--                print "        return decode_%s(out);" % enum
-+                print("        return decode_%s(out);" % enum)
-             else:
-                 if base_argtype.startswith('struct'):
-                     arg = "ALIGNED_CAST(const %s *, a)" % base_argtype
-@@ -344,16 +344,16 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw,
-                     else:
-                         arg = "arg"
-                 if arg_vl_mff_map:
--                    print "        return decode_%s(%s, version, vl_mff_map, tlv_bitmap, out);" % (enum, arg)
-+                    print("        return decode_%s(%s, version, vl_mff_map, tlv_bitmap, out);" % (enum, arg))
-                 else:
--                    print "        return decode_%s(%s, version, out);" % (enum, arg)
--            print
--        print """\
-+                    print("        return decode_%s(%s, version, out);" % (enum, arg))
-+            print("")
-+        print("""\
-     default:
-         OVS_NOT_REACHED();
-     }
- }\
--"""
-+""")
-     else:
-         for versions in enums.values():
-             enum = versions[0]["enum"]
-@@ -368,15 +368,15 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw,
-                 if arg_vl_mff_map:
-                     prototype += 'const struct vl_mff_map *, uint64_t *, '
-             prototype += "struct ofpbuf *);"
--            print prototype
-+            print(prototype)
- 
--        print """
-+        print("""
- static enum ofperr ofpact_decode(const struct ofp_action_header *,
-                                  enum ofp_raw_action_type raw,
-                                  enum ofp_version version,
-                                  uint64_t arg, const struct vl_mff_map *vl_mff_map,
-                                  uint64_t *tlv_bitmap, struct ofpbuf *out);
--"""
-+""")
- 
- if __name__ == '__main__':
-     if '--help' in sys.argv:
-diff --git a/build-aux/extract-ofp-errors b/build-aux/extract-ofp-errors
-index e36444e..97d62d2 100755
---- a/build-aux/extract-ofp-errors
-+++ b/build-aux/extract-ofp-errors
-@@ -426,7 +426,7 @@ static const struct ofperr_domain %s = {
-                 vendor, type_, code = map[enum]
-                 if code == None:
-                     code = -1
--                print "        { %#8x, %2d, %3d }, /* %s */" % (vendor, type_, code, enum)
-+                print ("        { %#8x, %2d, %3d }, /* %s */" % (vendor, type_, code, enum))
-             else:
-                 print ("        {       -1, -1,  -1 }, /* %s */" % enum)
-         print ("""\
-diff --git a/build-aux/extract-ofp-fields b/build-aux/extract-ofp-fields
-index c248e76..80c7d35 100755
---- a/build-aux/extract-ofp-fields
-+++ b/build-aux/extract-ofp-fields
-@@ -728,7 +728,7 @@ def make_ovs_fields(meta_flow_h, meta_flow_xml):
- ovs\-fields \- protocol header fields in OpenFlow and Open vSwitch
- .
- .PP
--''') % version
-+''' % version)
- 
-     recursively_replace(doc, 'oxm_classes', make_oxm_classes_xml(document))
- 
-diff --git a/build-aux/extract-ofp-msgs b/build-aux/extract-ofp-msgs
-index c2a91f9..92c4bda 100755
---- a/build-aux/extract-ofp-msgs
-+++ b/build-aux/extract-ofp-msgs
-@@ -56,14 +56,14 @@ def fatal(msg):
- 
- def usage():
-     argv0 = os.path.basename(sys.argv[0])
--    print '''\
-+    print('''\
- %(argv0)s, for extracting OpenFlow message types from header files
- usage: %(argv0)s INPUT OUTPUT
-   where INPUT is the name of the input header file
-     and OUTPUT is the output file name.
- Despite OUTPUT, the output is written to stdout, and the OUTPUT argument
- only controls #line directives in the output.\
--''' % {"argv0": argv0}
-+''' % {"argv0": argv0})
-     sys.exit(0)
- 
- def make_sizeof(s):
-@@ -378,5 +378,5 @@ if __name__ == '__main__':
-         line_number = 0
- 
-         for line in extract_ofp_msgs(sys.argv[2]):
--            print line
-+            print(line)
-         
-diff --git a/ovsdb/ovsdb-doc b/ovsdb/ovsdb-doc
-index bdf2dcc..e82ad59 100755
---- a/ovsdb/ovsdb-doc
-+++ b/ovsdb/ovsdb-doc
-@@ -258,7 +258,7 @@ represent strong references; thin lines represent weak references.
-     return s
- 
- def usage():
--    print """\
-+    print("""\
- %(argv0)s: ovsdb schema documentation generator
- Prints documentation for an OVSDB schema as an nroff-formatted manpage.
- usage: %(argv0)s [OPTIONS] SCHEMA XML
-@@ -269,7 +269,7 @@ The following options are also available:
-   --er-diagram=DIAGRAM.PIC    include E-R diagram from DIAGRAM.PIC
-   --version=VERSION           use VERSION to display on document footer
-   -h, --help                  display this help message\
--""" % {'argv0': argv0}
-+""" % {'argv0': argv0})
-     sys.exit(0)
- 
- if __name__ == "__main__":
-@@ -304,7 +304,7 @@ if __name__ == "__main__":
-         for line in s.split("\n"):
-             line = line.strip()
-             if len(line):
--                print line
-+                print(line)
- 
-     except error.Error, e:
-         sys.stderr.write("%s: %s\n" % (argv0, e.msg))
-diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
-index bfbcf23..62442ee 100755
---- a/ovsdb/ovsdb-idlc.in
-+++ b/ovsdb/ovsdb-idlc.in
-@@ -1,5 +1,6 @@
- #! /usr/bin/env @PYTHON@
- 
-+from __future__ import print_function
- import getopt
- import os
- import re
-@@ -123,7 +124,7 @@ def sorted_columns(table):
- def printCIDLHeader(schemaFile):
-     schema = parseSchema(schemaFile)
-     prefix = schema.idlPrefix
--    print '''\
-+    print('''\
- /* Generated automatically -- do not modify!    -*- buffer-read-only: t -*- */
- 
- #ifndef %(prefix)sIDL_HEADER
-@@ -135,39 +136,39 @@ def printCIDLHeader(schemaFile):
- #include "ovsdb-data.h"
- #include "ovsdb-idl-provider.h"
- #include "smap.h"
--#include "uuid.h"''' % {'prefix': prefix.upper()}
-+#include "uuid.h"''' % {'prefix': prefix.upper()})
- 
-     for tableName, table in sorted(schema.tables.iteritems()):
-         structName = "%s%s" % (prefix, tableName.lower())
- 
--        print ""
--        print "/* %s table. */" % tableName
--        print "struct %s {" % structName
--        print "\tstruct ovsdb_idl_row header_;"
-+        print("")
-+        print("/* %s table. */" % tableName)
-+        print("struct %s {" % structName)
-+        print("\tstruct ovsdb_idl_row header_;")
-         for columnName, column in sorted_columns(table):
--            print "\n\t/* %s column. */" % columnName
-+            print("\n\t/* %s column. */" % columnName)
-             comment, members = cMembers(prefix, tableName,
-                                         columnName, column, False)
-             for member in members:
--                print "\t%(type)s%(name)s;%(comment)s" % member
--        print "};"
-+                print("\t%(type)s%(name)s;%(comment)s" % member)
-+        print("};")
- 
-         # Column indexes.
-         printEnum("%s_column_id" % structName.lower(), ["%s_COL_%s" % (structName.upper(), columnName.upper())
-                                                         for columnName, column in sorted_columns(table)]
-                   + ["%s_N_COLUMNS" % structName.upper()])
- 
--        print
-+        print("")
-         for columnName in table.columns:
--            print "#define %(s)s_col_%(c)s (%(s)s_columns[%(S)s_COL_%(C)s])" % {
-+            print("#define %(s)s_col_%(c)s (%(s)s_columns[%(S)s_COL_%(C)s])" % {
-                 's': structName,
-                 'S': structName.upper(),
-                 'c': columnName,
--                'C': columnName.upper()}
-+                'C': columnName.upper()})
- 
--        print "\nextern struct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % (structName, structName.upper())
-+        print("\nextern struct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % (structName, structName.upper()))
- 
--        print '''
-+        print('''
- const struct %(s)s *%(s)s_get_for_uuid(const struct ovsdb_idl *, const struct uuid *);
- const struct %(s)s *%(s)s_first(const struct ovsdb_idl *);
- const struct %(s)s *%(s)s_next(const struct %(s)s *);
-@@ -205,87 +206,87 @@ void %(s)s_init(struct %(s)s *);
- void %(s)s_delete(const struct %(s)s *);
- struct %(s)s *%(s)s_insert(struct ovsdb_idl_txn *);
- bool %(s)s_is_updated(const struct %(s)s *, enum %(s)s_column_id);
--''' % {'s': structName, 'S': structName.upper()}
-+''' % {'s': structName, 'S': structName.upper()})
- 
-         for columnName, column in sorted_columns(table):
--            print 'void %(s)s_verify_%(c)s(const struct %(s)s *);' % {'s': structName, 'c': columnName}
-+            print('void %(s)s_verify_%(c)s(const struct %(s)s *);' % {'s': structName, 'c': columnName})
- 
--        print
-+        print("")
-         for columnName, column in sorted_columns(table):
-             if column.type.value:
-                 valueParam = ', enum ovsdb_atomic_type value_type'
-             else:
-                 valueParam = ''
--            print 'const struct ovsdb_datum *%(s)s_get_%(c)s(const struct %(s)s *, enum ovsdb_atomic_type key_type%(v)s);' % {
--                's': structName, 'c': columnName, 'v': valueParam}
-+            print('const struct ovsdb_datum *%(s)s_get_%(c)s(const struct %(s)s *, enum ovsdb_atomic_type key_type%(v)s);' % {
-+                's': structName, 'c': columnName, 'v': valueParam})
- 
--        print
-+        print("")
-         for columnName, column in sorted_columns(table):
--            print 'void %(s)s_set_%(c)s(const struct %(s)s *,' % {'s': structName, 'c': columnName},
-+            print('void %(s)s_set_%(c)s(const struct %(s)s *,' % {'s': structName, 'c': columnName}, end=' ')
-             if column.type.is_smap():
-                 args = ['const struct smap *']
-             else:
-                 comment, members = cMembers(prefix, tableName, columnName,
-                                             column, True)
-                 args = ['%(type)s%(name)s' % member for member in members]
--            print '%s);' % ', '.join(args)
-+            print('%s);' % ', '.join(args))
- 
--        print
-+        print("")
-         for columnName, column in sorted_columns(table):
-             if column.type.is_map():
--                print 'void %(s)s_update_%(c)s_setkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName},
--                print '%(coltype)s, %(valtype)s);' % {'coltype':column.type.key.to_const_c_type(prefix), 'valtype':column.type.value.to_const_c_type(prefix)}
--                print 'void %(s)s_update_%(c)s_delkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName},
--                print '%(coltype)s);' % {'coltype':column.type.key.to_const_c_type(prefix)}
-+                print('void %(s)s_update_%(c)s_setkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ')
-+                print('%(coltype)s, %(valtype)s);' % {'coltype':column.type.key.to_const_c_type(prefix), 'valtype':column.type.value.to_const_c_type(prefix)})
-+                print('void %(s)s_update_%(c)s_delkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ')
-+                print('%(coltype)s);' % {'coltype':column.type.key.to_const_c_type(prefix)})
-             if column.type.is_set():
--                print 'void %(s)s_update_%(c)s_addvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName},
--                print '%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)}
--                print 'void %(s)s_update_%(c)s_delvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName},
--                print '%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)}
-+                print('void %(s)s_update_%(c)s_addvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ')
-+                print('%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)})
-+                print('void %(s)s_update_%(c)s_delvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ')
-+                print('%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)})
- 
--            print 'void %(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *, enum ovsdb_function function,' % {'s': structName, 'c': columnName},
-+            print('void %(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *, enum ovsdb_function function,' % {'s': structName, 'c': columnName}, end=' ')
-             if column.type.is_smap():
-                 args = ['const struct smap *']
-             else:
-                 comment, members = cMembers(prefix, tableName, columnName,
-                                             column, True, refTable=False)
-                 args = ['%(type)s%(name)s' % member for member in members]
--            print '%s);' % ', '.join(args)
-+            print('%s);' % ', '.join(args))
- 
--            print 'void %(s)s_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);' % {'s': structName},
-+            print('void %(s)s_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);' % {'s': structName})
- 
--        print
-+        print("")
- 
-     # Table indexes.
-     printEnum("%stable_id" % prefix.lower(), ["%sTABLE_%s" % (prefix.upper(), tableName.upper()) for tableName in sorted(schema.tables)] + ["%sN_TABLES" % prefix.upper()])
--    print
-+    print("")
-     for tableName in schema.tables:
--        print "#define %(p)stable_%(t)s (%(p)stable_classes[%(P)sTABLE_%(T)s])" % {
-+        print("#define %(p)stable_%(t)s (%(p)stable_classes[%(P)sTABLE_%(T)s])" % {
-             'p': prefix,
-             'P': prefix.upper(),
-             't': tableName.lower(),
--            'T': tableName.upper()}
--    print "\nextern struct ovsdb_idl_table_class %stable_classes[%sN_TABLES];" % (prefix, prefix.upper())
-+            'T': tableName.upper()})
-+    print("\nextern struct ovsdb_idl_table_class %stable_classes[%sN_TABLES];" % (prefix, prefix.upper()))
- 
--    print "\nextern struct ovsdb_idl_class %sidl_class;" % prefix
-+    print("\nextern struct ovsdb_idl_class %sidl_class;" % prefix)
- 
--    print "\nconst char * %sget_db_version(void);" % prefix
--    print "\n#endif /* %(prefix)sIDL_HEADER */" % {'prefix': prefix.upper()}
-+    print("\nconst char * %sget_db_version(void);" % prefix)
-+    print("\n#endif /* %(prefix)sIDL_HEADER */" % {'prefix': prefix.upper()})
- 
- def printEnum(type, members):
-     if len(members) == 0:
-         return
- 
--    print "\nenum %s {" % type
-+    print("\nenum %s {" % type)
-     for member in members[:-1]:
--        print "    %s," % member
--    print "    %s" % members[-1]
--    print "};"
-+        print("    %s," % member)
-+    print("    %s" % members[-1])
-+    print("};")
- 
- def printCIDLSource(schemaFile):
-     schema = parseSchema(schemaFile)
-     prefix = schema.idlPrefix
--    print '''\
-+    print('''\
- /* Generated automatically -- do not modify!    -*- buffer-read-only: t -*- */
- 
- #include <config.h>
-@@ -296,33 +297,33 @@ def printCIDLSource(schemaFile):
- #include "ovsdb-error.h"
- #include "util.h"
- 
--''' % schema.idlHeader
-+''' % schema.idlHeader)
- 
-     # Cast functions.
-     for tableName, table in sorted(schema.tables.iteritems()):
-         structName = "%s%s" % (prefix, tableName.lower())
--        print '''
-+        print('''
- static struct %(s)s *
- %(s)s_cast(const struct ovsdb_idl_row *row)
- {
-     return row ? CONTAINER_OF(row, struct %(s)s, header_) : NULL;
- }\
--''' % {'s': structName}
-+''' % {'s': structName})
- 
- 
-     for tableName, table in sorted(schema.tables.iteritems()):
-         structName = "%s%s" % (prefix, tableName.lower())
--        print ""
--        print "/* %s table. */" % (tableName)
-+        print("")
-+        print("/* %s table. */" % (tableName))
- 
-         # Parse functions.
-         for columnName, column in sorted_columns(table):
--            print '''
-+            print('''
- static void
- %(s)s_parse_%(c)s(struct ovsdb_idl_row *row_, const struct ovsdb_datum *datum)
- {
-     struct %(s)s *row = %(s)s_cast(row_);''' % {'s': structName,
--                                                'c': columnName}
-+                                                'c': columnName})
-             type = column.type
-             if type.value:
-                 keyVar = "row->key_%s" % columnName
-@@ -332,89 +333,89 @@ static void
-                 valueVar = None
- 
-             if type.is_smap():
--                print "    smap_init(&row->%s);" % columnName
--                print "    for (size_t i = 0; i < datum->n; i++) {"
--                print "        smap_add(&row->%s," % columnName
--                print "                 datum->keys[i].string,"
--                print "                 datum->values[i].string);"
--                print "    }"
-+                print("    smap_init(&row->%s);" % columnName)
-+                print("    for (size_t i = 0; i < datum->n; i++) {")
-+                print("        smap_add(&row->%s," % columnName)
-+                print("                 datum->keys[i].string,")
-+                print("                 datum->values[i].string);")
-+                print("    }")
-             elif (type.n_min == 1 and type.n_max == 1) or type.is_optional_pointer():
--                print
--                print "    if (datum->n >= 1) {"
-+                print("")
-+                print("    if (datum->n >= 1) {")
-                 if not type.key.ref_table:
--                    print "        %s = datum->keys[0].%s;" % (keyVar, type.key.type.to_string())
-+                    print("        %s = datum->keys[0].%s;" % (keyVar, type.key.type.to_string()))
-                 else:
--                    print "        %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[0].uuid));" % (keyVar, prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower())
-+                    print("        %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[0].uuid));" % (keyVar, prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower()))
- 
-                 if valueVar:
-                     if not type.value.ref_table:
--                        print "        %s = datum->values[0].%s;" % (valueVar, type.value.type.to_string())
-+                        print("        %s = datum->values[0].%s;" % (valueVar, type.value.type.to_string()))
-                     else:
--                        print "        %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[0].uuid));" % (valueVar, prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower())
--                print "    } else {"
--                print "        %s" % type.key.initCDefault(keyVar, type.n_min == 0)
-+                        print("        %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[0].uuid));" % (valueVar, prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower()))
-+                print("    } else {")
-+                print("        %s" % type.key.initCDefault(keyVar, type.n_min == 0))
-                 if valueVar:
--                    print "        %s" % type.value.initCDefault(valueVar, type.n_min == 0)
--                print "    }"
-+                    print("        %s" % type.value.initCDefault(valueVar, type.n_min == 0))
-+                print("    }")
-             else:
-                 if type.n_max != sys.maxint:
--                    print "    size_t n = MIN(%d, datum->n);" % type.n_max
-+                    print("    size_t n = MIN(%d, datum->n);" % type.n_max)
-                     nMax = "n"
-                 else:
-                     nMax = "datum->n"
--                print "    %s = NULL;" % keyVar
-+                print("    %s = NULL;" % keyVar)
-                 if valueVar:
--                    print "    %s = NULL;" % valueVar
--                print "    row->n_%s = 0;" % columnName
--                print "    for (size_t i = 0; i < %s; i++) {" % nMax
-+                    print("    %s = NULL;" % valueVar)
-+                print("    row->n_%s = 0;" % columnName)
-+                print("    for (size_t i = 0; i < %s; i++) {" % nMax)
-                 if type.key.ref_table:
--                    print """\
-+                    print("""\
-         struct %s%s *keyRow = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[i].uuid));
-         if (!keyRow) {
-             continue;
-         }\
--""" % (prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower())
-+""" % (prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower()))
-                     keySrc = "keyRow"
-                 else:
-                     keySrc = "datum->keys[i].%s" % type.key.type.to_string()
-                 if type.value and type.value.ref_table:
--                    print """\
-+                    print("""\
-         struct %s%s *valueRow = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[i].uuid));
-         if (!valueRow) {
-             continue;
-         }\
--""" % (prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower())
-+""" % (prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower()))
-                     valueSrc = "valueRow"
-                 elif valueVar:
-                     valueSrc = "datum->values[i].%s" % type.value.type.to_string()
--                print "        if (!row->n_%s) {" % (columnName)
-+                print("        if (!row->n_%s) {" % (columnName))
- 
--                print "            %s = xmalloc(%s * sizeof *%s);" % (
--                    keyVar, nMax, keyVar)
-+                print("            %s = xmalloc(%s * sizeof *%s);" % (
-+                    keyVar, nMax, keyVar))
-                 if valueVar:
--                    print "            %s = xmalloc(%s * sizeof *%s);" % (
--                        valueVar, nMax, valueVar)
--                print "        }"
--                print "        %s[row->n_%s] = %s;" % (keyVar, columnName, keySrc)
-+                    print("            %s = xmalloc(%s * sizeof *%s);" % (
-+                        valueVar, nMax, valueVar))
-+                print("        }")
-+                print("        %s[row->n_%s] = %s;" % (keyVar, columnName, keySrc))
-                 if valueVar:
--                    print "        %s[row->n_%s] = %s;" % (valueVar, columnName, valueSrc)
--                print "        row->n_%s++;" % columnName
--                print "    }"
--            print "}"
-+                    print("        %s[row->n_%s] = %s;" % (valueVar, columnName, valueSrc))
-+                print("        row->n_%s++;" % columnName)
-+                print("    }")
-+            print("}")
- 
-         # Unparse functions.
-         for columnName, column in sorted_columns(table):
-             type = column.type
-             if type.is_smap() or (type.n_min != 1 or type.n_max != 1) and not type.is_optional_pointer():
--                print '''
-+                print('''
- static void
- %(s)s_unparse_%(c)s(struct ovsdb_idl_row *row_)
- {
-     struct %(s)s *row = %(s)s_cast(row_);''' % {'s': structName,
--                                                'c': columnName}
-+                                                'c': columnName})
- 
-                 if type.is_smap():
--                    print "    smap_destroy(&row->%s);" % columnName
-+                    print("    smap_destroy(&row->%s);" % columnName)
-                 else:
-                     if type.value:
-                         keyVar = "row->key_%s" % columnName
-@@ -422,45 +423,45 @@ static void
-                     else:
-                         keyVar = "row->%s" % columnName
-                         valueVar = None
--                    print "    free(%s);" % keyVar
-+                    print("    free(%s);" % keyVar)
-                     if valueVar:
--                        print "    free(%s);" % valueVar
--                print '}'
-+                        print("    free(%s);" % valueVar)
-+                print('}')
-             else:
--                print '''
-+                print('''
- static void
- %(s)s_unparse_%(c)s(struct ovsdb_idl_row *row OVS_UNUSED)
- {
-     /* Nothing to do. */
--}''' % {'s': structName, 'c': columnName}
-+}''' % {'s': structName, 'c': columnName})
- 
-         # Generic Row Initialization function.
--        print """
-+        print("""
- static void
- %(s)s_init__(struct ovsdb_idl_row *row)
- {
-     %(s)s_init(%(s)s_cast(row));
--}""" % {'s': structName}
-+}""" % {'s': structName})
- 
-         # Row Initialization function.
--        print """
-+        print("""
- /* Clears the contents of 'row' in table "%(t)s". */
- void
- %(s)s_init(struct %(s)s *row)
- {
--    memset(row, 0, sizeof *row); """ % {'s': structName, 't': tableName}
-+    memset(row, 0, sizeof *row); """ % {'s': structName, 't': tableName})
-         for columnName, column in sorted_columns(table):
-             if column.type.is_smap():
--                print "    smap_init(&row->%s);" % columnName
-+                print("    smap_init(&row->%s);" % columnName)
-             elif (column.type.n_min == 1 and
-                   column.type.n_max == 1 and
-                   column.type.key.type == ovs.db.types.StringType and
-                   not column.type.value):
--                print "    row->%s = \"\";" % columnName
--        print "}"
-+                print("    row->%s = \"\";" % columnName)
-+        print("}")
- 
-         # First, next functions.
--        print '''
-+        print('''
- /* Searches table "%(t)s" in 'idl' for a row with UUID 'uuid'.  Returns
-  * a pointer to the row if there is one, otherwise a null pointer.  */
- const struct %(s)s *
-@@ -514,9 +515,9 @@ const struct %(s)s
-         'P': prefix.upper(),
-         't': tableName,
-         'tl': tableName.lower(),
--        'T': tableName.upper()}
-+        'T': tableName.upper()})
- 
--        print '''
-+        print('''
- 
- /* Deletes 'row' from table "%(t)s".  'row' may be freed, so it must not be
-  * accessed afterward.
-@@ -550,11 +551,11 @@ bool
-         'P': prefix.upper(),
-         't': tableName,
-         'tl': tableName.lower(),
--        'T': tableName.upper()}
-+        'T': tableName.upper()})
- 
-         # Verify functions.
-         for columnName, column in sorted_columns(table):
--            print '''
-+            print('''
- /* Causes the original contents of column "%(c)s" in 'row' to be
-  * verified as a prerequisite to completing the transaction.  That is, if
-  * "%(c)s" in 'row' changed (or if 'row' was deleted) between the
-@@ -585,7 +586,7 @@ void
- }''' % {'s': structName,
-         'S': structName.upper(),
-         'c': columnName,
--        'C': columnName.upper()}
-+        'C': columnName.upper()})
- 
-         # Get functions.
-         for columnName, column in sorted_columns(table):
-@@ -597,7 +598,7 @@ void
-                 valueParam = ''
-                 valueType = ''
-                 valueComment = ''
--            print """
-+            print("""
- /* Returns the "%(c)s" column's value from the "%(t)s" table in 'row'
-  * as a struct ovsdb_datum.  This is useful occasionally: for example,
-  * ovsdb_datum_find_key() is an easier and more efficient way to search
-@@ -625,7 +626,7 @@ const struct ovsdb_datum *
-     return ovsdb_idl_read(&row->header_, &%(s)s_col_%(c)s);
- }""" % {'t': tableName, 's': structName, 'c': columnName,
-        'kt': column.type.key.toAtomicType(),
--       'v': valueParam, 'vt': valueType, 'vc': valueComment}
-+       'v': valueParam, 'vt': valueType, 'vc': valueComment})
- 
-         # Set functions.
-         for columnName, column in sorted_columns(table):
-@@ -635,8 +636,8 @@ const struct ovsdb_datum *
-                                         column, True)
- 
-             if type.is_smap():
--                print comment
--                print """void
-+                print(comment)
-+                print("""void
- %(s)s_set_%(c)s(const struct %(s)s *row, const struct smap *%(c)s)
- {
-     struct ovsdb_datum datum;
-@@ -654,7 +655,7 @@ const struct ovsdb_datum *
-        's': structName,
-        'S': structName.upper(),
-        'c': columnName,
--       'C': columnName.upper()}
-+       'C': columnName.upper()})
-                 continue
- 
-             keyVar = members[0]['name']
-@@ -668,84 +669,84 @@ const struct ovsdb_datum *
-                 if len(members) > 1:
-                     nVar = members[1]['name']
- 
--            print comment
--            print """\
-+            print(comment)
-+            print("""\
- void
- %(s)s_set_%(c)s(const struct %(s)s *row, %(args)s)
- {
-     struct ovsdb_datum datum;""" % {'s': structName,
-         'c': columnName,
-         'args': ', '.join(['%(type)s%(name)s'
--                           % m for m in members])}
-+                           % m for m in members])})
-             if type.n_min == 1 and type.n_max == 1:
--                print "    union ovsdb_atom key;"
-+                print("    union ovsdb_atom key;")
-                 if type.value:
--                    print "    union ovsdb_atom value;"
--                print
--                print "    datum.n = 1;"
--                print "    datum.keys = &key;"
--                print "    " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar)
-+                    print("    union ovsdb_atom value;")
-+                print("")
-+                print("    datum.n = 1;")
-+                print("    datum.keys = &key;")
-+                print("    " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar))
-                 if type.value:
--                    print "    datum.values = &value;"
--                    print "    "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar)
-+                    print("    datum.values = &value;")
-+                    print("    "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar))
-                 else:
--                    print "    datum.values = NULL;"
-+                    print("    datum.values = NULL;")
-                 txn_write_func = "ovsdb_idl_txn_write_clone"
-             elif type.is_optional_pointer():
--                print "    union ovsdb_atom key;"
--                print
--                print "    if (%s) {" % keyVar
--                print "        datum.n = 1;"
--                print "        datum.keys = &key;"
--                print "        " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar)
--                print "    } else {"
--                print "        datum.n = 0;"
--                print "        datum.keys = NULL;"
--                print "    }"
--                print "    datum.values = NULL;"
-+                print("    union ovsdb_atom key;")
-+                print("")
-+                print("    if (%s) {" % keyVar)
-+                print("        datum.n = 1;")
-+                print("        datum.keys = &key;")
-+                print("        " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar))
-+                print("    } else {")
-+                print("        datum.n = 0;")
-+                print("        datum.keys = NULL;")
-+                print("    }")
-+                print("    datum.values = NULL;")
-                 txn_write_func = "ovsdb_idl_txn_write_clone"
-             elif type.n_max == 1:
--                print "    union ovsdb_atom key;"
--                print
--                print "    if (%s) {" % nVar
--                print "        datum.n = 1;"
--                print "        datum.keys = &key;"
--                print "        " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar)
--                print "    } else {"
--                print "        datum.n = 0;"
--                print "        datum.keys = NULL;"
--                print "    }"
--                print "    datum.values = NULL;"
-+                print("    union ovsdb_atom key;")
-+                print("")
-+                print("    if (%s) {" % nVar)
-+                print("        datum.n = 1;")
-+                print("        datum.keys = &key;")
-+                print("        " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar))
-+                print("    } else {")
-+                print("        datum.n = 0;")
-+                print("        datum.keys = NULL;")
-+                print("    }")
-+                print("    datum.values = NULL;")
-                 txn_write_func = "ovsdb_idl_txn_write_clone"
-             else:
--                print
--                print "    datum.n = %s;" % nVar
--                print "    datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar)
-+                print("")
-+                print("    datum.n = %s;" % nVar)
-+                print("    datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar))
-                 if type.value:
--                    print "    datum.values = xmalloc(%s * sizeof *datum.values);" % nVar
-+                    print("    datum.values = xmalloc(%s * sizeof *datum.values);" % nVar)
-                 else:
--                    print "    datum.values = NULL;"
--                print "    for (size_t i = 0; i < %s; i++) {" % nVar
--                print "        " + type.key.copyCValue("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar)
-+                    print("    datum.values = NULL;")
-+                print("    for (size_t i = 0; i < %s; i++) {" % nVar)
-+                print("        " + type.key.copyCValue("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar))
-                 if type.value:
--                    print "        " + type.value.copyCValue("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar)
--                print "    }"
-+                    print("        " + type.value.copyCValue("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar))
-+                print("    }")
-                 if type.value:
-                     valueType = type.value.toAtomicType()
-                 else:
-                     valueType = "OVSDB_TYPE_VOID"
-                 txn_write_func = "ovsdb_idl_txn_write"
--            print "    %(f)s(&row->header_, &%(s)s_col_%(c)s, &datum);" \
-+            print("    %(f)s(&row->header_, &%(s)s_col_%(c)s, &datum);" \
-                 % {'f': txn_write_func,
-                    's': structName,
-                    'S': structName.upper(),
--                   'c': columnName}
--            print "}"
-+                   'c': columnName})
-+            print("}")
-         # Update/Delete of partial map column functions
-         for columnName, column in sorted_columns(table):
-             type = column.type
-             if type.is_map():
--                print '''
-+                print('''
- /* Sets an element of the "%(c)s" map column from the "%(t)s" table in 'row'
-  * to 'new_value' given the key value 'new_key'.
-  *
-@@ -761,17 +762,17 @@ void
-     datum->values = xmalloc(datum->n * sizeof *datum->values);
- ''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix),
-         'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper(),
--        'C': columnName.upper(), 't': tableName}
-+        'C': columnName.upper(), 't': tableName})
- 
--                print "    "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_key")
--                print "    "+ type.value.copyCValue("datum->values[0].%s" % type.value.type.to_string(), "new_value")
--                print '''
-+                print("    "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_key"))
-+                print("    "+ type.value.copyCValue("datum->values[0].%s" % type.value.type.to_string(), "new_value"))
-+                print('''
-     ovsdb_idl_txn_write_partial_map(&row->header_,
-                                     &%(s)s_col_%(c)s,
-                                     datum);
- }''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix),
--        'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()}
--                print '''
-+        'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()})
-+                print('''
- /* Deletes an element of the "%(c)s" map column from the "%(t)s" table in 'row'
-  * given the key value 'delete_key'.
-  *
-@@ -787,19 +788,19 @@ void
-     datum->values = NULL;
- ''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix),
-         'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper(),
--        'C': columnName.upper(), 't': tableName}
-+        'C': columnName.upper(), 't': tableName})
- 
--                print "    "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_key")
--                print '''
-+                print("    "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_key"))
-+                print('''
-     ovsdb_idl_txn_delete_partial_map(&row->header_,
-                                     &%(s)s_col_%(c)s,
-                                     datum);
- }''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix),
--        'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()}
-+        'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()})
-         # End Update/Delete of partial maps
-         # Update/Delete of partial set column functions
-             if type.is_set():
--                print '''
-+                print('''
- /* Adds the value 'new_value' to the "%(c)s" set column from the "%(t)s" table
-  * in 'row'.
-  *
-@@ -814,16 +815,16 @@ void
-     datum->keys = xmalloc(datum->n * sizeof *datum->values);
-     datum->values = NULL;
- ''' % {'s': structName, 'c': columnName,
--        'valtype':column.type.key.to_const_c_type(prefix), 't': tableName}
-+        'valtype':column.type.key.to_const_c_type(prefix), 't': tableName})
- 
--                print "    "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_value")
--                print '''
-+                print("    "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_value"))
-+                print('''
-     ovsdb_idl_txn_write_partial_set(&row->header_,
-                                     &%(s)s_col_%(c)s,
-                                     datum);
- }''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix),
--        'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()}
--                print '''
-+        'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()})
-+                print('''
- /* Deletes the value 'delete_value' from the "%(c)s" set column from the
-  * "%(t)s" table in 'row'.
-  *
-@@ -839,15 +840,15 @@ void
-     datum->values = NULL;
- ''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix),
-         'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper(),
--        'C': columnName.upper(), 't': tableName}
-+        'C': columnName.upper(), 't': tableName})
- 
--                print "    "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_value")
--                print '''
-+                print("    "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_value"))
-+                print('''
-     ovsdb_idl_txn_delete_partial_set(&row->header_,
-                                     &%(s)s_col_%(c)s,
-                                     datum);
- }''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix),
--        'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()}
-+        'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()})
-         # End Update/Delete of partial set
- 
-         # Add clause functions.
-@@ -858,8 +859,8 @@ void
-                                         column, True, refTable=False)
- 
-             if type.is_smap():
--                print comment
--                print """void
-+                print(comment)
-+                print("""void
- %(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, const struct smap *%(c)s)
- {
-     struct ovsdb_datum datum;
-@@ -884,7 +885,7 @@ void
-        'P': prefix.upper(),
-        's': structName,
-        'S': structName.upper(),
--       'c': columnName}
-+       'c': columnName})
-                 continue
- 
-             keyVar = members[0]['name']
-@@ -898,73 +899,73 @@ void
-                 if len(members) > 1:
-                     nVar = members[1]['name']
- 
--            print comment
--            print 'void'
--            print '%(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, %(args)s)' % \
-+            print(comment)
-+            print('void')
-+            print('%(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, %(args)s)' % \
-                 {'s': structName, 'c': columnName,
--                 'args': ', '.join(['%(type)s%(name)s' % m for m in members])}
--            print "{"
--            print "    struct ovsdb_datum datum;"
-+                 'args': ', '.join(['%(type)s%(name)s' % m for m in members])})
-+            print("{")
-+            print("    struct ovsdb_datum datum;")
-             free = []
-             if type.n_min == 1 and type.n_max == 1:
--                print "    union ovsdb_atom key;"
-+                print("    union ovsdb_atom key;")
-                 if type.value:
--                    print "    union ovsdb_atom value;"
--                print
--                print "    datum.n = 1;"
--                print "    datum.keys = &key;"
--                print "    " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False)
-+                    print("    union ovsdb_atom value;")
-+                print("")
-+                print("    datum.n = 1;")
-+                print("    datum.keys = &key;")
-+                print("    " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False))
-                 if type.value:
--                    print "    datum.values = &value;"
--                    print "    "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar, refTable=False)
-+                    print("    datum.values = &value;")
-+                    print("    "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar, refTable=False))
-                 else:
--                    print "    datum.values = NULL;"
-+                    print("    datum.values = NULL;")
-             elif type.is_optional_pointer():
--                print "    union ovsdb_atom key;"
--                print
--                print "    if (%s) {" % keyVar
--                print "        datum.n = 1;"
--                print "        datum.keys = &key;"
--                print "        " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False)
--                print "    } else {"
--                print "        datum.n = 0;"
--                print "        datum.keys = NULL;"
--                print "    }"
--                print "    datum.values = NULL;"
-+                print("    union ovsdb_atom key;")
-+                print("")
-+                print("    if (%s) {" % keyVar)
-+                print("        datum.n = 1;")
-+                print("        datum.keys = &key;")
-+                print("        " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False))
-+                print("    } else {")
-+                print("        datum.n = 0;")
-+                print("        datum.keys = NULL;")
-+                print("    }")
-+                print("    datum.values = NULL;")
-             elif type.n_max == 1:
--                print "    union ovsdb_atom key;"
--                print
--                print "    if (%s) {" % nVar
--                print "        datum.n = 1;"
--                print "        datum.keys = &key;"
--                print "        " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar, refTable=False)
--                print "    } else {"
--                print "        datum.n = 0;"
--                print "        datum.keys = NULL;"
--                print "    }"
--                print "    datum.values = NULL;"
-+                print("    union ovsdb_atom key;")
-+                print("")
-+                print("    if (%s) {" % nVar)
-+                print("        datum.n = 1;")
-+                print("        datum.keys = &key;")
-+                print("        " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar, refTable=False))
-+                print("    } else {")
-+                print("        datum.n = 0;")
-+                print("        datum.keys = NULL;")
-+                print("    }")
-+                print("    datum.values = NULL;")
-             else:
--                print "    datum.n = %s;" % nVar
--                print "    datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar)
-+                print("    datum.n = %s;" % nVar)
-+                print("    datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar))
-                 free += ['datum.keys']
-                 if type.value:
--                    print "    datum.values = xmalloc(%s * sizeof *datum.values);" % nVar
-+                    print("    datum.values = xmalloc(%s * sizeof *datum.values);" % nVar)
-                     free += ['datum.values']
-                 else:
--                    print "    datum.values = NULL;"
--                print "    for (size_t i = 0; i < %s; i++) {" % nVar
--                print "        " + type.key.assign_c_value_casting_away_const("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar, refTable=False)
-+                    print("    datum.values = NULL;")
-+                print("    for (size_t i = 0; i < %s; i++) {" % nVar)
-+                print("        " + type.key.assign_c_value_casting_away_const("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar, refTable=False))
-                 if type.value:
--                    print "        " + type.value.assign_c_value_casting_away_const("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar, refTable=False)
--                print "    }"
-+                    print("        " + type.value.assign_c_value_casting_away_const("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar, refTable=False))
-+                print("    }")
-                 if type.value:
-                     valueType = type.value.toAtomicType()
-                 else:
-                     valueType = "OVSDB_TYPE_VOID"
--                print "    ovsdb_datum_sort_unique(&datum, %s, %s);" % (
--                    type.key.toAtomicType(), valueType)
-+                print("    ovsdb_datum_sort_unique(&datum, %s, %s);" % (
-+                    type.key.toAtomicType(), valueType))
- 
--            print"""    ovsdb_idl_condition_add_clause(cond,
-+            print("""    ovsdb_idl_condition_add_clause(cond,
-                           function,
-                           &%(s)s_col_%(c)s,
-                           &datum);\
-@@ -974,28 +975,28 @@ void
-        'P': prefix.upper(),
-        's': structName,
-        'S': structName.upper(),
--       'c': columnName}
-+       'c': columnName})
-             for var in free:
--                print "    free(%s);" % var
--            print "}"
-+                print("    free(%s);" % var)
-+            print("}")
- 
--        print """
-+        print("""
- void
- %(s)s_set_condition(struct ovsdb_idl *idl, struct ovsdb_idl_condition *condition)
- {
-     ovsdb_idl_set_condition(idl, &%(p)stable_%(tl)s, condition);
- }""" % {'p': prefix,
-         's': structName,
--        'tl': tableName.lower()}
-+        'tl': tableName.lower()})
- 
-         # Table columns.
-         for columnName, column in sorted_columns(table):
-             prereqs = []
-             x = column.type.cInitType("%s_col_%s" % (tableName, columnName), prereqs)
-             if prereqs:
--                print '\n'.join(prereqs)
--        print "\nstruct ovsdb_idl_column %s_columns[%s_N_COLUMNS] = {" % (
--            structName, structName.upper())
-+                print('\n'.join(prereqs))
-+        print("\nstruct ovsdb_idl_column %s_columns[%s_N_COLUMNS] = {" % (
-+            structName, structName.upper()))
-         for columnName, column in sorted_columns(table):
-             if column.mutable:
-                 mutable = "true"
-@@ -1003,7 +1004,7 @@ void
-                 mutable = "false"
-             type_init = '\n'.join("            " + x
-                                   for x in column.type.cInitType("%s_col_%s" % (tableName, columnName), prereqs))
--            print """\
-+            print("""\
-     [%(P)s%(T)s_COL_%(C)s] = {
-          .name = "%(c)s",
-          .type = {
-@@ -1018,38 +1019,38 @@ void
-                'C': columnName.upper(),
-                's': structName,
-                'mutable': mutable,
--               'type': type_init}
--        print "};"
-+               'type': type_init})
-+        print("};")
- 
-     # Table classes.
--    print ""
--    print "struct ovsdb_idl_table_class %stable_classes[%sN_TABLES] = {" % (prefix, prefix.upper())
-+    print("")
-+    print("struct ovsdb_idl_table_class %stable_classes[%sN_TABLES] = {" % (prefix, prefix.upper()))
-     for tableName, table in sorted(schema.tables.iteritems()):
-         structName = "%s%s" % (prefix, tableName.lower())
-         if table.is_root:
-             is_root = "true"
-         else:
-             is_root = "false"
--        print "    {\"%s\", %s," % (tableName, is_root)
--        print "     %s_columns, ARRAY_SIZE(%s_columns)," % (
--            structName, structName)
--        print "     sizeof(struct %s), %s_init__}," % (structName, structName)
--    print "};"
-+        print("    {\"%s\", %s," % (tableName, is_root))
-+        print("     %s_columns, ARRAY_SIZE(%s_columns)," % (
-+            structName, structName))
-+        print("     sizeof(struct %s), %s_init__}," % (structName, structName))
-+    print("};")
- 
-     # IDL class.
--    print "\nstruct ovsdb_idl_class %sidl_class = {" % prefix
--    print "    \"%s\", %stable_classes, ARRAY_SIZE(%stable_classes)" % (
--        schema.name, prefix, prefix)
--    print "};"
-+    print("\nstruct ovsdb_idl_class %sidl_class = {" % prefix)
-+    print("    \"%s\", %stable_classes, ARRAY_SIZE(%stable_classes)" % (
-+        schema.name, prefix, prefix))
-+    print("};")
- 
--    print """
-+    print("""
- /* Return the schema version.  The caller must not free the returned value. */
- const char *
- %sget_db_version(void)
- {
-     return "%s";
- }
--""" % (prefix, schema.version)
-+""" % (prefix, schema.version))
- 
- 
- 
-@@ -1075,7 +1076,7 @@ def ovsdb_escape(string):
-     return re.sub(r'["\\\000-\037]', escape, string)
- 
- def usage():
--    print """\
-+    print("""\
- %(argv0)s: ovsdb schema compiler
- usage: %(argv0)s [OPTIONS] COMMAND ARG...
- 
-@@ -1087,7 +1088,7 @@ The following commands are supported:
- The following options are also available:
-   -h, --help                  display this help message
-   -V, --version               display version information\
--""" % {'argv0': argv0}
-+""" % {'argv0': argv0})
-     sys.exit(0)
- 
- if __name__ == "__main__":
-@@ -1105,7 +1106,7 @@ if __name__ == "__main__":
-             if key in ['-h', '--help']:
-                 usage()
-             elif key in ['-V', '--version']:
--                print "ovsdb-idlc (Open vSwitch) @VERSION@"
-+                print("ovsdb-idlc (Open vSwitch) @VERSION@")
-             elif key in ['-C', '--directory']:
-                 os.chdir(value)
-             else:
diff --git a/recipes-networking/openvswitch/openvswitch-git/0001-use-the-linux-if_packet.h-Interface-directly.patch b/recipes-networking/openvswitch/openvswitch-git/0001-use-the-linux-if_packet.h-Interface-directly.patch
deleted file mode 100644
index f1f9bef..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0001-use-the-linux-if_packet.h-Interface-directly.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 28b2d17de9414161d5edd67766bd4b452cd809ef Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem at gmail.com>
-Date: Mon, 20 Mar 2017 12:12:51 -0700
-Subject: [PATCH] use the linux if_packet.h Interface directly
-
-Helps compiling with musl
-
-Signed-off-by: Khem Raj <raj.khem at gmail.com>
-
----
- lib/netdev-linux.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index fccf88f..b703156 100644
---- a/lib/netdev-linux.c
-+++ b/lib/netdev-linux.c
-@@ -33,14 +33,13 @@
- #include <linux/pkt_sched.h>
- #include <linux/rtnetlink.h>
- #include <linux/sockios.h>
-+#include <linux/if_packet.h>
- #include <sys/types.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/utsname.h>
--#include <netpacket/packet.h>
- #include <net/if.h>
- #include <net/if_arp.h>
--#include <net/if_packet.h>
- #include <net/route.h>
- #include <netinet/in.h>
- #include <poll.h>
diff --git a/recipes-networking/openvswitch/openvswitch-git/0002-Python3-compatibility-exception-cleanup.patch b/recipes-networking/openvswitch/openvswitch-git/0002-Python3-compatibility-exception-cleanup.patch
deleted file mode 100644
index 70abd26..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0002-Python3-compatibility-exception-cleanup.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From c0ba116eab401431b4f11b66bd7d1b42741b03c3 Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Jun 2017 20:33:23 -0700
-Subject: [PATCH] Python3 compatibility: exception cleanup
-
-Commit 52e4a477f0b3c0a0ece7adeede6e06e07814f8b9 from
-https://github.com/openvswitch/ovs.git
-
-The exception syntax which is compatible with python2 and python3 is
-to use the "as" form for "except:".
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Ben Pfaff <blp at ovn.org>
-
----
- build-aux/extract-ofp-fields | 2 +-
- ovsdb/ovsdb-doc              | 4 ++--
- ovsdb/ovsdb-idlc.in          | 4 ++--
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/build-aux/extract-ofp-fields b/build-aux/extract-ofp-fields
-index 80c7d35..6286c9c 100755
---- a/build-aux/extract-ofp-fields
-+++ b/build-aux/extract-ofp-fields
-@@ -784,7 +784,7 @@ if __name__ == "__main__":
-     try:
-         options, args = getopt.gnu_getopt(sys.argv[1:], 'h',
-                                           ['help', 'ovs-version='])
--    except getopt.GetoptError, geo:
-+    except getopt.GetoptError as geo:
-         sys.stderr.write("%s: %s\n" % (argv0, geo.msg))
-         sys.exit(1)
- 
-diff --git a/ovsdb/ovsdb-doc b/ovsdb/ovsdb-doc
-index e82ad59..9448713 100755
---- a/ovsdb/ovsdb-doc
-+++ b/ovsdb/ovsdb-doc
-@@ -278,7 +278,7 @@ if __name__ == "__main__":
-             options, args = getopt.gnu_getopt(sys.argv[1:], 'hV',
-                                               ['er-diagram=',
-                                                'version=', 'help'])
--        except getopt.GetoptError, geo:
-+        except getopt.GetoptError as geo:
-             sys.stderr.write("%s: %s\n" % (argv0, geo.msg))
-             sys.exit(1)
- 
-@@ -306,7 +306,7 @@ if __name__ == "__main__":
-             if len(line):
-                 print(line)
- 
--    except error.Error, e:
-+    except error.Error as e:
-         sys.stderr.write("%s: %s\n" % (argv0, e.msg))
-         sys.exit(1)
- 
-diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
-index 62442ee..e7e1c6b 100755
---- a/ovsdb/ovsdb-idlc.in
-+++ b/ovsdb/ovsdb-idlc.in
-@@ -1098,7 +1098,7 @@ if __name__ == "__main__":
-                                               ['directory',
-                                                'help',
-                                                'version'])
--        except getopt.GetoptError, geo:
-+        except getopt.GetoptError as geo:
-             sys.stderr.write("%s: %s\n" % (argv0, geo.msg))
-             sys.exit(1)
- 
-@@ -1136,7 +1136,7 @@ if __name__ == "__main__":
-             sys.exit(1)
- 
-         func(*args[1:])
--    except ovs.db.error.Error, e:
-+    except ovs.db.error.Error as e:
-         sys.stderr.write("%s: %s\n" % (argv0, e))
-         sys.exit(1)
- 
diff --git a/recipes-networking/openvswitch/openvswitch-git/0003-Python3-compatibility-execfile-to-exec.patch b/recipes-networking/openvswitch/openvswitch-git/0003-Python3-compatibility-execfile-to-exec.patch
deleted file mode 100644
index 98d77c8..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0003-Python3-compatibility-execfile-to-exec.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 8557d51e8c7325a17219911e9a65eeb3946e869f Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Jun 2017 20:33:23 -0700
-Subject: [PATCH] Python3 compatibility: execfile to exec
-
-Commit a4d10a7ca937d73873f6f98619d88682e69f5dbe from
-https://github.com/openvswitch/ovs.git
-
-Allow compability with python3 and python2 by changing execfile() to
-exec().
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Ben Pfaff <blp at ovn.org>
-
----
- ovsdb/ovsdb-idlc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
-index e7e1c6b..e1551f9 100755
---- a/ovsdb/ovsdb-idlc.in
-+++ b/ovsdb/ovsdb-idlc.in
-@@ -17,7 +17,7 @@ def parseSchema(filename):
- 
- def annotateSchema(schemaFile, annotationFile):
-     schemaJson = ovs.json.from_file(schemaFile)
--    execfile(annotationFile, globals(), {"s": schemaJson})
-+    exec(compile(open(annotationFile, "rb").read(), annotationFile, 'exec'), globals(), {"s": schemaJson})
-     ovs.json.to_stream(schemaJson, sys.stdout)
-     sys.stdout.write('\n')
- 
diff --git a/recipes-networking/openvswitch/openvswitch-git/0004-Python3-compatibility-iteritems-to-items.patch b/recipes-networking/openvswitch/openvswitch-git/0004-Python3-compatibility-iteritems-to-items.patch
deleted file mode 100644
index 092c42d..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0004-Python3-compatibility-iteritems-to-items.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 7e4bd5c2af85b1293be0a92b18f7930bda2ab41a Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Jun 2017 20:33:23 -0700
-Subject: [PATCH] Python3 compatibility: iteritems to items
-
-Commit 4ab665623cbb4c6506e48b82e0c9fe8585f42e13 from
-https://github.com/openvswitch/ovs.git
-
-Allow compability with python3 and python2 by changing iteritems() to
-items().
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Ben Pfaff <blp at ovn.org>
-
----
- build-aux/extract-ofp-actions | 2 +-
- build-aux/extract-ofp-errors  | 2 +-
- build-aux/extract-ofp-fields  | 2 +-
- ovsdb/ovsdb-idlc.in           | 8 ++++----
- 4 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/build-aux/extract-ofp-actions b/build-aux/extract-ofp-actions
-index 67e3848..c7858bd 100755
---- a/build-aux/extract-ofp-actions
-+++ b/build-aux/extract-ofp-actions
-@@ -13,7 +13,7 @@ version_map = {"1.0": 0x01,
-                "1.3": 0x04,
-                "1.4": 0x05,
-                "1.5": 0x06}
--version_reverse_map = dict((v, k) for (k, v) in version_map.iteritems())
-+version_reverse_map = dict((v, k) for (k, v) in version_map.items())
- 
- # Map from vendor name to the length of the action header.
- vendor_map = {"OF": (0x00000000,  4),
-diff --git a/build-aux/extract-ofp-errors b/build-aux/extract-ofp-errors
-index 97d62d2..58ba006 100755
---- a/build-aux/extract-ofp-errors
-+++ b/build-aux/extract-ofp-errors
-@@ -14,7 +14,7 @@ version_map = {"1.0": 0x01,
-                "1.4": 0x05,
-                "1.5": 0x06,
-                "1.6": 0x07}
--version_reverse_map = dict((v, k) for (k, v) in version_map.iteritems())
-+version_reverse_map = dict((v, k) for (k, v) in version_map.items())
- 
- token = None
- line = ""
-diff --git a/build-aux/extract-ofp-fields b/build-aux/extract-ofp-fields
-index 6286c9c..f624728 100755
---- a/build-aux/extract-ofp-fields
-+++ b/build-aux/extract-ofp-fields
-@@ -16,7 +16,7 @@ VERSION = {"1.0": 0x01,
-            "1.3": 0x04,
-            "1.4": 0x05,
-            "1.5": 0x06}
--VERSION_REVERSE = dict((v,k) for k, v in VERSION.iteritems())
-+VERSION_REVERSE = dict((v,k) for k, v in VERSION.items())
- 
- TYPES = {"u8":       (1,   False),
-          "be16":     (2,   False),
-diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
-index e1551f9..b70a599 100755
---- a/ovsdb/ovsdb-idlc.in
-+++ b/ovsdb/ovsdb-idlc.in
-@@ -138,7 +138,7 @@ def printCIDLHeader(schemaFile):
- #include "smap.h"
- #include "uuid.h"''' % {'prefix': prefix.upper()})
- 
--    for tableName, table in sorted(schema.tables.iteritems()):
-+    for tableName, table in sorted(schema.tables.items()):
-         structName = "%s%s" % (prefix, tableName.lower())
- 
-         print("")
-@@ -300,7 +300,7 @@ def printCIDLSource(schemaFile):
- ''' % schema.idlHeader)
- 
-     # Cast functions.
--    for tableName, table in sorted(schema.tables.iteritems()):
-+    for tableName, table in sorted(schema.tables.items()):
-         structName = "%s%s" % (prefix, tableName.lower())
-         print('''
- static struct %(s)s *
-@@ -311,7 +311,7 @@ static struct %(s)s *
- ''' % {'s': structName})
- 
- 
--    for tableName, table in sorted(schema.tables.iteritems()):
-+    for tableName, table in sorted(schema.tables.items()):
-         structName = "%s%s" % (prefix, tableName.lower())
-         print("")
-         print("/* %s table. */" % (tableName))
-@@ -1025,7 +1025,7 @@ void
-     # Table classes.
-     print("")
-     print("struct ovsdb_idl_table_class %stable_classes[%sN_TABLES] = {" % (prefix, prefix.upper()))
--    for tableName, table in sorted(schema.tables.iteritems()):
-+    for tableName, table in sorted(schema.tables.items()):
-         structName = "%s%s" % (prefix, tableName.lower())
-         if table.is_root:
-             is_root = "true"
diff --git a/recipes-networking/openvswitch/openvswitch-git/0005-Python3-compatibility-fix-integer-problems.patch b/recipes-networking/openvswitch/openvswitch-git/0005-Python3-compatibility-fix-integer-problems.patch
deleted file mode 100644
index d6f9364..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0005-Python3-compatibility-fix-integer-problems.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From d22c7f1c6ade82a0cd646cfcd8df9adda6cd1ad6 Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Jun 2017 20:33:23 -0700
-Subject: [PATCH] Python3 compatibility: fix integer problems
-
-Commit fa145f1a53943243f94a32ce98525db8494b0052 from
-https://github.com/openvswitch/ovs.git
-
-In python3 maxint is not defined, but maxsize is defined in both
-python2 and python3.
-
-The put_text() will not automatically use a value which came in as
-float due to a pior math function and python3 will throw an exception.
-The simple answer is to convert it with int() and move on.
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Ben Pfaff <blp at ovn.org>
-
----
- ovsdb/ovsdb-idlc.in   | 2 +-
- python/build/nroff.py | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
-index b70a599..3645275 100755
---- a/ovsdb/ovsdb-idlc.in
-+++ b/ovsdb/ovsdb-idlc.in
-@@ -358,7 +358,7 @@ static void
-                     print("        %s" % type.value.initCDefault(valueVar, type.n_min == 0))
-                 print("    }")
-             else:
--                if type.n_max != sys.maxint:
-+                if type.n_max != sys.maxsize:
-                     print("    size_t n = MIN(%d, datum->n);" % type.n_max)
-                     nMax = "n"
-                 else:
-diff --git a/python/build/nroff.py b/python/build/nroff.py
-index c23837f..401f699 100644
---- a/python/build/nroff.py
-+++ b/python/build/nroff.py
-@@ -148,6 +148,8 @@ def fatal(msg):
- 
- 
- def put_text(text, x, y, s):
-+    x = int(x)
-+    y = int(y)
-     extend = x + len(s) - len(text[y])
-     if extend > 0:
-         text[y] += ' ' * extend
diff --git a/recipes-networking/openvswitch/openvswitch-git/0006-Python3-compatibility-math-error-compatibility.patch b/recipes-networking/openvswitch/openvswitch-git/0006-Python3-compatibility-math-error-compatibility.patch
deleted file mode 100644
index c53502b..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0006-Python3-compatibility-math-error-compatibility.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 7f542122d62b20d11198bfdb0f2c6a460261b5e7 Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Jun 2017 20:33:23 -0700
-Subject: [PATCH] Python3 compatibility: math error compatibility
-
-Commit 3fa5aa4294377e0f35267936d0c5caea3e61db48 from
-https://github.com/openvswitch/ovs.git
-
-The way math is handled with typing is completely different in python3.
-
-% python2<<EOF
-x=10
-y=8
-print((x + (y - 1)) / y * y)
-EOF
-16
-
-python3<<EOF
-x=10
-y=8
-print((x + (y - 1)) / y * y)
-EOF
-17.0
-
-So we need to force an integer for the round function as follows and
-maintain compatibility with python2.
-
-python3<<EOF
-x=10
-y=8
-print(int((x + (y - 1)) / y) * y)
-EOF
-16
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Ben Pfaff <blp at ovn.org>
-
----
- build-aux/extract-ofp-actions | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/build-aux/extract-ofp-actions b/build-aux/extract-ofp-actions
-index c7858bd..4d05ef9 100755
---- a/build-aux/extract-ofp-actions
-+++ b/build-aux/extract-ofp-actions
-@@ -35,7 +35,7 @@ line = ""
- arg_structs = set()
- 
- def round_up(x, y):
--    return (x + (y - 1)) / y * y
-+    return int((x + (y - 1)) / y) * y
- 
- def open_file(fn):
-     global file_name
diff --git a/recipes-networking/openvswitch/openvswitch-git/0007-Python3-compatibility-unicode-to-str.patch b/recipes-networking/openvswitch/openvswitch-git/0007-Python3-compatibility-unicode-to-str.patch
deleted file mode 100644
index 753490f..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0007-Python3-compatibility-unicode-to-str.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From c78b39ae9ba6337210d6a9e4ccc4753cb1c3b48f Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Jun 2017 20:33:23 -0700
-Subject: [PATCH] Python3 compatibility: unicode to str
-
-Commit 7430959d4ad17db89b8387c3aef58c8b230cad10 from
-https://github.com/openvswitch/ovs.git
-
-When transitioning from python2 to python3 the following type class
-changes occured:
-
-python2 -> python3
-unicode -> str
-str -> bytes
-
-That means we have to check the python version and do the right type
-check python3 will throw an error when it tries to use the unicode
-type because it doesn't exist.
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Ben Pfaff <blp at ovn.org>
-
----
- ovsdb/ovsdb-doc | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/ovsdb/ovsdb-doc b/ovsdb/ovsdb-doc
-index 9448713..d55c6e6 100755
---- a/ovsdb/ovsdb-doc
-+++ b/ovsdb/ovsdb-doc
-@@ -65,9 +65,15 @@ def columnGroupToNroff(table, groupXml, documented_columns):
-                 if node.hasAttribute('type'):
-                     type_string = node.attributes['type'].nodeValue
-                     type_json = ovs.json.from_string(str(type_string))
--                    if type(type_json) in (str, unicode):
--                        raise error.Error("%s %s:%s has invalid 'type': %s" 
--                                          % (table.name, name, key, type_json))
-+                    # py2 -> py3 means str -> bytes and unicode -> str
-+                    try:
-+                        if type(type_json) in (str, unicode):
-+                            raise error.Error("%s %s:%s has invalid 'type': %s" 
-+                                              % (table.name, name, key, type_json))
-+                    except:
-+                        if type(type_json) in (bytes, str):
-+                            raise error.Error("%s %s:%s has invalid 'type': %s" 
-+                                              % (table.name, name, key, type_json))
-                     type_ = ovs.db.types.BaseType.from_json(type_json)
-                 else:
-                     type_ = column.type.value
diff --git a/recipes-networking/openvswitch/openvswitch-git/0008-AUTHORS-Add-Jason-Wessel.patch b/recipes-networking/openvswitch/openvswitch-git/0008-AUTHORS-Add-Jason-Wessel.patch
deleted file mode 100644
index f55a5ca..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/0008-AUTHORS-Add-Jason-Wessel.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From f8491645416952b31000f42777ff79486a7b0511 Mon Sep 17 00:00:00 2001
-From: Ben Pfaff <blp at ovn.org>
-Date: Thu, 6 Jul 2017 14:01:27 -0700
-Subject: [PATCH] AUTHORS: Add Jason Wessel.
-
-Commit a91c4cfaf863718bc94fb9c88939bd0b0385a6fe from
-https://github.com/openvswitch/ovs.git
-
-Signed-off-by: Ben Pfaff <blp at ovn.org>
-
----
- AUTHORS.rst | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/AUTHORS.rst b/AUTHORS.rst
-index 63e6a8d..d0dc70d 100644
---- a/AUTHORS.rst
-+++ b/AUTHORS.rst
-@@ -156,6 +156,7 @@ Jan Scheurich                   jan.scheurich at ericsson.com
- Jan Vansteenkiste               jan at vstone.eu
- Jarno Rajahalme                 jarno at ovn.org
- Jason Kölker                    jason at koelker.net
-+Jason Wessel                    jason.wessel at windriver.com
- Jasper Capel                    jasper at capel.tv
- Jean Tourrilhes                 jt at hpl.hp.com
- Jeremy Stribling                strib at nicira.com
diff --git a/recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-b8dcfbebee9e7dbc74ec5eecc9b45d335d6150c1.patch b/recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-b8dcfbebee9e7dbc74ec5eecc9b45d335d6150c1.patch
deleted file mode 100644
index 4ae86c3..0000000
--- a/recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-b8dcfbebee9e7dbc74ec5eecc9b45d335d6150c1.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From fb68120ef8aed625b04b2fbd2cb78fc59a7b7432 Mon Sep 17 00:00:00 2001
-From: He Zhe <zhe.he at windriver.com>
-Date: Wed, 30 Mar 2016 06:23:45 -0400
-Subject: [PATCH] openvswitch: Add test-install rule to support ptest execution
-
-Signed-off-by: Radu Patriu <radu.patriu at enea.com>
-
-Fix ptest for v2.5
- - Copy certain files from srcdir since it has been different from
-   build directory.
- - Copy more necessary files for new added test cases.
- - Modify config files for running on target.
-
-Signed-off-by: He Zhe <zhe.he at windriver.com>
-
----
- Makefile.am |  1 +
- test.mk     | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 73 insertions(+)
- create mode 100644 test.mk
-
-diff --git a/Makefile.am b/Makefile.am
-index ea63acb..ff7d70a 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -429,3 +429,4 @@ include windows/automake.mk
- include ovn/automake.mk
- include selinux/automake.mk
- include build-aux/automake.mk
-+include test.mk
-diff --git a/test.mk b/test.mk
-new file mode 100644
-index 0000000..b10a581
---- /dev/null
-+++ b/test.mk
-@@ -0,0 +1,72 @@
-+TEST_DEST ?= ${prefix}/lib/openvswitch
-+TEST_ROOT ?= ${prefix}/lib/openvswitch
-+TEST_DEPEND =
-+
-+if HAVE_OPENSSL
-+TEST_DEPEND += $(TESTPKI_FILES)
-+endif
-+
-+test-install: $(TEST_DEPEND)
-+	@list='$(noinst_PROGRAMS) $(EXTRA_DIST) $(dist_check_SCRIPTS) $(TEST_DEPEND) tests/atlocal tests/atconfig' ;\
-+	install -d $(TEST_DEST)/tests ;\
-+	install $(srcdir)/vtep/ovs-vtep $(TEST_DEST)/tests ;\
-+	install -d $(TEST_DEST)/python ;\
-+	install -d $(TEST_DEST)/python/ovs ;\
-+	install -d $(TEST_DEST)/python/ovs/db ;\
-+	install -d $(TEST_DEST)/python/ovs/unixctl ;\
-+	install -d $(TEST_DEST)/vswitchd ;\
-+	install $(srcdir)/vswitchd/vswitch.ovsschema $(TEST_DEST)/vswitchd ;\
-+	install vswitchd/ovs-vswitchd $(TEST_DEST)/vswitchd ;\
-+	install -d $(TEST_DEST)/debian ;\
-+	install $(srcdir)/debian/ovs-monitor-ipsec $(TEST_DEST)/debian ;\
-+	install -d $(TEST_DEST)/build-aux ;\
-+	install $(srcdir)/build-aux/check-structs $(TEST_DEST)/build-aux ;\
-+	install -d $(TEST_DEST)/xenserver ;\
-+	install $(srcdir)/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync $(TEST_DEST)/xenserver ;\
-+	install $(srcdir)/xenserver/opt_xensource_libexec_interface-reconfigure $(TEST_DEST)/xenserver ;\
-+	install $(srcdir)/xenserver/opt_xensource_libexec_InterfaceReconfigure.py $(TEST_DEST)/xenserver ;\
-+	install $(srcdir)/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py $(TEST_DEST)/xenserver ;\
-+	install $(srcdir)/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py $(TEST_DEST)/xenserver ;\
-+	install -d $(TEST_DEST)/vtep ;\
-+	install $(srcdir)/vtep/vtep.ovsschema $(TEST_DEST)/vtep ;\
-+	install -d $(TEST_DEST)/ovn ;\
-+	install $(srcdir)/ovn/ovn-nb.ovsschema $(TEST_DEST)/ovn ;\
-+	install $(srcdir)/ovn/ovn-sb.ovsschema $(TEST_DEST)/ovn ;\
-+	install -d $(TEST_DEST)/utilities ;\
-+	install $(srcdir)/utilities/ovs-pcap.in $(TEST_DEST)/utilities ;\
-+	install $(srcdir)/utilities/ovs-pki.in $(TEST_DEST)/utilities ;\
-+	for p in $$list ; do \
-+	  echo $$p ;\
-+	  p=$${p#../git/} ;\
-+	  pre=$${p#tests\/} ;\
-+	  if test $$pre != $$p ; then \
-+	    echo installing $$p to $(TEST_DEST)/tests/$$pre ;\
-+	    if test -f $$p ; then \
-+	      install $$p $(TEST_DEST)/tests/$$pre ;\
-+	    else \
-+	      install $(srcdir)/$$p $(TEST_DEST)/tests/$$pre ;\
-+	    fi ;\
-+	    continue ;\
-+	  fi ;\
-+	  pre=$${p#python\/ovs\/} ;\
-+	  if test $$pre != $$p ; then \
-+	    echo installing $$p to $(TEST_DEST)/python/ovs/$$pre ;\
-+	    if test -f $$p ; then \
-+	      install $$p $(TEST_DEST)/python/ovs/$$pre ;\
-+	    else \
-+	      install $(srcdir)/$$p $(TEST_DEST)/python/ovs/$$pre ;\
-+	    fi ;\
-+	    continue ;\
-+	  fi; \
-+	done ;\
-+	sed -i 's|abs_builddir=.*|abs_builddir='"'"'$(TEST_ROOT)/tests'"'"'|g' $(TEST_DEST)/tests/atconfig
-+	sed -i 's|abs_srcdir=.*|abs_srcdir='"'"'$(TEST_ROOT)/tests'"'"'|g' $(TEST_DEST)/tests/atconfig
-+	sed -i 's|abs_top_srcdir=.*|abs_top_srcdir='"'"'$(TEST_ROOT)'"'"'|g' $(TEST_DEST)/tests/atconfig
-+	sed -i 's|abs_top_builddir=.*|abs_top_builddir='"'"'$(TEST_ROOT)'"'"'|g' $(TEST_DEST)/tests/atconfig
-+	sed -i 's|at_srcdir=.*|at_srcdir='"'"'.'"'"'|g' $(TEST_DEST)/tests/atconfig
-+	sed -i 's|at_top_srcdir=.*|at_top_srcdir='"'"'..'"'"'|g' $(TEST_DEST)/tests/atconfig
-+	sed -i 's|at_top_build_prefix=.*|at_top_build_prefix='"'"'../'"'"'|g' $(TEST_DEST)/tests/atconfig
-+	sed -i 's|^\(.*config\.log.*\)|#\1|g' $(TEST_DEST)/tests/testsuite
-+	sed -i 's|$$srcdir|$$abs_srcdir|g' $(TEST_DEST)/tests/testsuite
-+	sed -i 's|ovs-appctl-bashcomp\.bash|/etc/bash_completion.d/ovs-appctl-bashcomp\.bash|g' $(TEST_DEST)/tests/testsuite
-+	sed -i 's|ovs-vsctl-bashcomp\.bash|/etc/bash_completion.d/ovs-vsctl-bashcomp\.bash|g' $(TEST_DEST)/tests/testsuite
-- 
2.7.4



More information about the meta-virtualization mailing list