From 345505989ce65f2486aa3afdf325cc68c28f1d55 Mon Sep 17 00:00:00 2001 From: Christopher Clark Date: Mon, 29 Jun 2020 18:54:47 -0700 Subject: xen, xen-tools: update revision to Xen 4.13 Pull to the current tip of the stable 4.13 branch and apply an upstream 4.14-release-acked patch to xen-tools for a compiler warning in kdd. Signed-off-by: Christopher Clark Signed-off-by: Bruce Ashfield --- ...-make-python-scripts-work-with-2.6-and-up.patch | 529 --------------------- 1 file changed, 529 deletions(-) delete mode 100644 recipes-extended/xen/files/xen-tools-pygrub-make-python-scripts-work-with-2.6-and-up.patch (limited to 'recipes-extended/xen/files/xen-tools-pygrub-make-python-scripts-work-with-2.6-and-up.patch') diff --git a/recipes-extended/xen/files/xen-tools-pygrub-make-python-scripts-work-with-2.6-and-up.patch b/recipes-extended/xen/files/xen-tools-pygrub-make-python-scripts-work-with-2.6-and-up.patch deleted file mode 100644 index f4cbb670..00000000 --- a/recipes-extended/xen/files/xen-tools-pygrub-make-python-scripts-work-with-2.6-and-up.patch +++ /dev/null @@ -1,529 +0,0 @@ -From 0aabd89dcfee9ee2a6caaa2ec7a475daf5cada53 Mon Sep 17 00:00:00 2001 -From: Wei Liu -Date: Thu, 7 Mar 2019 12:45:47 +0000 -Subject: [PATCH] pygrub: make python scripts work with 2.6 and up - -Run 2to3 and pick the sensible suggestions. - -Import print_function and absolute_import so 2.6 can work. - -There has never been a curses.wrapper module according to 2.x and 3.x -doc, only a function, so "import curses.wrapper" is not correct. It -happened to work because 2.x implemented a (undocumented) module. - -We only need to import curses to make curses.wrapper available to -pygrub. - -Signed-off-by: Wei Liu -Reviewed-by: Andrew Cooper ---- - tools/pygrub/src/ExtLinuxConf.py | 19 +++++---- - tools/pygrub/src/GrubConf.py | 39 ++++++++++-------- - tools/pygrub/src/LiloConf.py | 19 +++++---- - tools/pygrub/src/pygrub | 71 ++++++++++++++++---------------- - 4 files changed, 78 insertions(+), 70 deletions(-) - -diff --git a/tools/pygrub/src/ExtLinuxConf.py b/tools/pygrub/src/ExtLinuxConf.py -index d1789bf020..9fd635b9cf 100644 ---- a/tools/pygrub/src/ExtLinuxConf.py -+++ b/tools/pygrub/src/ExtLinuxConf.py -@@ -10,9 +10,11 @@ - # along with this program; If not, see . - # - -+from __future__ import print_function, absolute_import -+ - import sys, re, os - import logging --import GrubConf -+from . import GrubConf - - class ExtLinuxImage(object): - def __init__(self, lines, path): -@@ -32,7 +34,8 @@ class ExtLinuxImage(object): - self.lines = [] - self.path = path - self.root = "" -- map(self.set_from_line, lines) -+ for line in lines: -+ self.set_from_line(line) - - def set_from_line(self, line, replace = None): - (com, arg) = GrubConf.grub_exact_split(line, 2) -@@ -67,7 +70,7 @@ class ExtLinuxImage(object): - setattr(self, "initrd", a.replace("initrd=", "")) - arg = arg.replace(a, "") - -- if com is not None and self.commands.has_key(com): -+ if com is not None and com in self.commands: - if self.commands[com] is not None: - setattr(self, self.commands[com], re.sub('^"(.+)"$', r"\1", arg.strip())) - else: -@@ -136,7 +139,7 @@ class ExtLinuxConfigFile(object): - def parse(self, buf = None): - if buf is None: - if self.filename is None: -- raise ValueError, "No config file defined to parse!" -+ raise ValueError("No config file defined to parse!") - - f = open(self.filename, 'r') - lines = f.readlines() -@@ -167,7 +170,7 @@ class ExtLinuxConfigFile(object): - - (com, arg) = GrubConf.grub_exact_split(l, 2) - com = com.lower() -- if self.commands.has_key(com): -+ if com in self.commands: - if self.commands[com] is not None: - setattr(self, self.commands[com], arg.strip()) - else: -@@ -207,8 +210,8 @@ class ExtLinuxConfigFile(object): - - if __name__ == "__main__": - if len(sys.argv) < 2: -- raise RuntimeError, "Need a configuration file to read" -+ raise RuntimeError("Need a configuration file to read") - g = ExtLinuxConfigFile(sys.argv[1]) - for i in g.images: -- print i -- print g.default -+ print(i) -+ print(g.default) -diff --git a/tools/pygrub/src/GrubConf.py b/tools/pygrub/src/GrubConf.py -index dc810d55cb..f8d3799dc0 100644 ---- a/tools/pygrub/src/GrubConf.py -+++ b/tools/pygrub/src/GrubConf.py -@@ -12,6 +12,8 @@ - # along with this program; If not, see . - # - -+from __future__ import print_function, absolute_import -+ - import os, sys - import logging - import re -@@ -44,7 +46,7 @@ def get_path(s): - return (None, s) - idx = s.find(')') - if idx == -1: -- raise ValueError, "Unable to find matching ')'" -+ raise ValueError("Unable to find matching ')'") - d = s[:idx] - return (GrubDiskPart(d), s[idx + 1:]) - -@@ -100,7 +102,8 @@ class _GrubImage(object): - " initrd: %s\n" %(self.title, self.root, self.kernel, - self.args, self.initrd)) - def _parse(self, lines): -- map(self.set_from_line, lines) -+ for line in lines: -+ self.set_from_line(line) - - def reset(self, lines): - self._root = self._initrd = self._kernel = self._args = None -@@ -141,7 +144,7 @@ class GrubImage(_GrubImage): - def set_from_line(self, line, replace = None): - (com, arg) = grub_exact_split(line, 2) - -- if self.commands.has_key(com): -+ if com in self.commands: - if self.commands[com] is not None: - setattr(self, self.commands[com], arg.strip()) - else: -@@ -177,7 +180,7 @@ class _GrubConfigFile(object): - self.parse() - - def parse(self, buf = None): -- raise RuntimeError, "unimplemented parse function" -+ raise RuntimeError("unimplemented parse function") - - def hasPasswordAccess(self): - return self.passwordAccess -@@ -201,7 +204,7 @@ class _GrubConfigFile(object): - import crypt - if crypt.crypt(password, pwd[1]) == pwd[1]: - return True -- except Exception, e: -+ except Exception as e: - self.passExc = "Can't verify password: %s" % str(e) - return False - -@@ -213,7 +216,7 @@ class _GrubConfigFile(object): - - def set(self, line): - (com, arg) = grub_exact_split(line, 2) -- if self.commands.has_key(com): -+ if com in self.commands: - if self.commands[com] is not None: - setattr(self, self.commands[com], arg.strip()) - else: -@@ -233,7 +236,7 @@ class _GrubConfigFile(object): - self._default = val - - if self._default < 0: -- raise ValueError, "default must be positive number" -+ raise ValueError("default must be positive number") - default = property(_get_default, _set_default) - - def set_splash(self, val): -@@ -265,7 +268,7 @@ class GrubConfigFile(_GrubConfigFile): - def parse(self, buf = None): - if buf is None: - if self.filename is None: -- raise ValueError, "No config file defined to parse!" -+ raise ValueError("No config file defined to parse!") - - f = open(self.filename, 'r') - lines = f.readlines() -@@ -296,7 +299,7 @@ class GrubConfigFile(_GrubConfigFile): - continue - - (com, arg) = grub_exact_split(l, 2) -- if self.commands.has_key(com): -+ if com in self.commands: - if self.commands[com] is not None: - setattr(self, self.commands[com], arg.strip()) - else: -@@ -328,7 +331,7 @@ class Grub2Image(_GrubImage): - if com == "set": - (com,arg) = grub2_handle_set(arg) - -- if self.commands.has_key(com): -+ if com in self.commands: - if self.commands[com] is not None: - setattr(self, self.commands[com], arg.strip()) - else: -@@ -364,7 +367,7 @@ class Grub2ConfigFile(_GrubConfigFile): - def parse(self, buf = None): - if buf is None: - if self.filename is None: -- raise ValueError, "No config file defined to parse!" -+ raise ValueError("No config file defined to parse!") - - f = open(self.filename, 'r') - lines = f.readlines() -@@ -398,7 +401,7 @@ class Grub2ConfigFile(_GrubConfigFile): - title_match = re.match('^menuentry ["\'](.*?)["\'] (.*){', l) - if title_match: - if img is not None: -- raise RuntimeError, "syntax error: cannot nest menuentry (%d %s)" % (len(img),img) -+ raise RuntimeError("syntax error: cannot nest menuentry (%d %s)" % (len(img),img)) - img = [] - title = title_match.group(1) - continue -@@ -413,7 +416,7 @@ class Grub2ConfigFile(_GrubConfigFile): - menu_level -= 1 - continue - else: -- raise RuntimeError, "syntax error: closing brace without menuentry" -+ raise RuntimeError("syntax error: closing brace without menuentry") - - self.add_image(Grub2Image(title, img)) - img = None -@@ -428,7 +431,7 @@ class Grub2ConfigFile(_GrubConfigFile): - if com == "set": - (com,arg) = grub2_handle_set(arg) - -- if self.commands.has_key(com): -+ if com in self.commands: - if self.commands[com] is not None: - arg_strip = arg.strip() - if arg_strip == "${saved_entry}" or arg_strip == "${next_entry}": -@@ -443,7 +446,7 @@ class Grub2ConfigFile(_GrubConfigFile): - logging.warning("Unknown directive %s" %(com,)) - - if img is not None: -- raise RuntimeError, "syntax error: end of file with open menuentry(%d %s)" % (len(img),img) -+ raise RuntimeError("syntax error: end of file with open menuentry(%d %s)" % (len(img),img)) - - if self.hasPassword(): - self.setPasswordAccess(False) -@@ -462,12 +465,12 @@ class Grub2ConfigFile(_GrubConfigFile): - - if __name__ == "__main__": - if len(sys.argv) < 3: -- raise RuntimeError, "Need a grub version (\"grub\" or \"grub2\") and a grub.conf or grub.cfg to read" -+ raise RuntimeError('Need a grub version ("grub" or "grub2") and a grub.conf or grub.cfg to read') - if sys.argv[1] == "grub": - g = GrubConfigFile(sys.argv[2]) - elif sys.argv[1] == "grub2": - g = Grub2ConfigFile(sys.argv[2]) - else: -- raise RuntimeError, "Unknown config type %s" % sys.argv[1] -+ raise RuntimeError("Unknown config type %s" % sys.argv[1]) - for i in g.images: -- print i #, i.title, i.root, i.kernel, i.args, i.initrd -+ print(i) #, i.title, i.root, i.kernel, i.args, i.initrd -diff --git a/tools/pygrub/src/LiloConf.py b/tools/pygrub/src/LiloConf.py -index 2cb649f115..e3bfcb5244 100644 ---- a/tools/pygrub/src/LiloConf.py -+++ b/tools/pygrub/src/LiloConf.py -@@ -2,9 +2,11 @@ - #LiloConf.py - # - -+from __future__ import print_function, absolute_import -+ - import sys, re, os - import logging --import GrubConf -+from . import GrubConf - - class LiloImage(object): - def __init__(self, lines, path): -@@ -24,12 +26,13 @@ class LiloImage(object): - self.lines = [] - self.path = path - self.root = "" -- map(self.set_from_line, lines) -+ for line in lines: -+ self.set_from_line(line) - - def set_from_line(self, line, replace = None): - (com, arg) = GrubConf.grub_exact_split(line, 2) - -- if self.commands.has_key(com): -+ if com in self.commands: - if self.commands[com] is not None: - setattr(self, self.commands[com], re.sub('^"(.+)"$', r"\1", arg.strip())) - else: -@@ -97,7 +100,7 @@ class LiloConfigFile(object): - def parse(self, buf = None): - if buf is None: - if self.filename is None: -- raise ValueError, "No config file defined to parse!" -+ raise ValueError("No config file defined to parse!") - - f = open(self.filename, 'r') - lines = f.readlines() -@@ -127,7 +130,7 @@ class LiloConfigFile(object): - continue - - (com, arg) = GrubConf.grub_exact_split(l, 2) -- if self.commands.has_key(com): -+ if com in self.commands: - if self.commands[com] is not None: - setattr(self, self.commands[com], arg.strip()) - else: -@@ -170,8 +173,8 @@ class LiloConfigFile(object): - - if __name__ == "__main__": - if len(sys.argv) < 2: -- raise RuntimeError, "Need a lilo.conf to read" -+ raise RuntimeError("Need a lilo.conf to read") - g = LiloConfigFile(sys.argv[1]) - for i in g.images: -- print i #, i.title, i.root, i.kernel, i.args, i.initrd -- print g.default -+ print(i) #, i.title, i.root, i.kernel, i.args, i.initrd -+ print(g.default) -diff --git a/tools/pygrub/src/pygrub b/tools/pygrub/src/pygrub -index 1189b1ca48..dbdce315c6 100755 ---- a/tools/pygrub/src/pygrub -+++ b/tools/pygrub/src/pygrub -@@ -12,13 +12,15 @@ - # along with this program; If not, see . - # - -+from __future__ import print_function -+ - import os, sys, string, struct, tempfile, re, traceback, stat, errno - import copy - import logging - import platform - import xen.lowlevel.xc - --import curses, _curses, curses.wrapper, curses.textpad, curses.ascii -+import curses, _curses, curses.textpad, curses.ascii - import getopt - - import xenfsimage -@@ -77,7 +79,7 @@ def get_solaris_slice(file, offset): - buf = os.read(fd, 512) - os.close(fd) - if struct.unpack(">sys.stderr, "Using %s to parse %s" % (parser,f) -+ print("Using %s to parse %s" % (parser,f), file=sys.stderr) - self.cf = parser() - self.cf.filename = f - break - if self.__dict__.get('cf', None) is None: -- raise RuntimeError, "couldn't find bootloader config file in the image provided." -+ raise RuntimeError("couldn't find bootloader config file in the image provided.") - f = fs.open_file(self.cf.filename) - # limit read size to avoid pathological cases - buf = f.read(FS_READ_MAX) -@@ -628,11 +627,11 @@ def run_grub(file, entry, fs, cfg_args): - if list_entries: - for i in range(len(g.cf.images)): - img = g.cf.images[i] -- print "title: %s" % img.title -- print " root: %s" % img.root -- print " kernel: %s" % img.kernel[1] -- print " args: %s" % img.args -- print " initrd: %s" % img.initrd[1] -+ print("title: %s" % img.title) -+ print(" root: %s" % img.root) -+ print(" kernel: %s" % img.kernel[1]) -+ print(" args: %s" % img.args) -+ print(" initrd: %s" % img.initrd[1]) - - if interactive and not list_entries: - curses.wrapper(run_main) -@@ -646,7 +645,7 @@ def run_grub(file, entry, fs, cfg_args): - sel = idx - - if sel == -1: -- print "No kernel image selected!" -+ print("No kernel image selected!") - sys.exit(1) - - try: -@@ -731,7 +730,7 @@ def format_sxp(kernel, ramdisk, args): - def format_simple(kernel, ramdisk, args, sep): - for check in (kernel, ramdisk, args): - if check is not None and sep in check: -- raise RuntimeError, "simple format cannot represent delimiter-containing value" -+ raise RuntimeError("simple format cannot represent delimiter-containing value") - s = ("kernel %s" % kernel) + sep - if ramdisk: - s += ("ramdisk %s" % ramdisk) + sep -@@ -744,7 +743,7 @@ if __name__ == "__main__": - sel = None - - def usage(): -- print >> sys.stderr, "Usage: %s [-q|--quiet] [-i|--interactive] [-l|--list-entries] [-n|--not-really] [--output=] [--kernel=] [--ramdisk=] [--args=] [--entry=] [--output-directory=] [--output-format=sxp|simple|simple0] [--offset=] " %(sys.argv[0],) -+ print("Usage: %s [-q|--quiet] [-i|--interactive] [-l|--list-entries] [-n|--not-really] [--output=] [--kernel=] [--ramdisk=] [--args=] [--entry=] [--output-directory=] [--output-format=sxp|simple|simple0] [--offset=] " %(sys.argv[0],), file=sys.stderr) - - def copy_from_image(fs, file_to_read, file_type, output_directory, - not_really): -@@ -755,8 +754,8 @@ if __name__ == "__main__": - sys.exit("The requested %s file does not exist" % file_type) - try: - datafile = fs.open_file(file_to_read) -- except Exception, e: -- print >>sys.stderr, e -+ except Exception as e: -+ print(e, file=sys.stderr) - sys.exit("Error opening %s in guest" % file_to_read) - (tfd, ret) = tempfile.mkstemp(prefix="boot_"+file_type+".", - dir=output_directory) -@@ -769,8 +768,8 @@ if __name__ == "__main__": - return ret - try: - os.write(tfd, data) -- except Exception, e: -- print >>sys.stderr, e -+ except Exception as e: -+ print(e, file=sys.stderr) - os.close(tfd) - os.unlink(ret) - del datafile -@@ -834,7 +833,7 @@ if __name__ == "__main__": - try: - part_offs = [ int(a) ] - except ValueError: -- print "offset value must be an integer" -+ print("offset value must be an integer") - usage() - sys.exit(1) - elif o in ("--entry",): -@@ -847,13 +846,13 @@ if __name__ == "__main__": - debug = True - elif o in ("--output-format",): - if a not in ["sxp", "simple", "simple0"]: -- print "unknown output format %s" % a -+ print("unknown output format %s" % a) - usage() - sys.exit(1) - output_format = a - elif o in ("--output-directory",): - if not os.path.isdir(a): -- print "%s is not an existing directory" % a -+ print("%s is not an existing directory" % a) - sys.exit(1) - output_directory = a - -@@ -862,8 +861,8 @@ if __name__ == "__main__": - - - try: -- os.makedirs(output_directory, 0700) -- except OSError,e: -+ os.makedirs(output_directory, 0o700) -+ except OSError as e: - if (e.errno == errno.EEXIST) and os.path.isdir(output_directory): - pass - else: -@@ -877,10 +876,10 @@ if __name__ == "__main__": - # debug - if isconfig: - chosencfg = run_grub(file, entry, fs, incfg["args"]) -- print " kernel: %s" % chosencfg["kernel"] -+ print(" kernel: %s" % chosencfg["kernel"]) - if chosencfg["ramdisk"]: -- print " initrd: %s" % chosencfg["ramdisk"] -- print " args: %s" % chosencfg["args"] -+ print(" initrd: %s" % chosencfg["ramdisk"]) -+ print(" args: %s" % chosencfg["args"]) - sys.exit(0) - - # if boot filesystem is set then pass to fsimage.open -@@ -926,7 +925,7 @@ if __name__ == "__main__": - - # Did looping through partitions find us a kernel? - if fs is None: -- raise RuntimeError, "Unable to find partition containing kernel" -+ raise RuntimeError("Unable to find partition containing kernel") - - bootcfg["kernel"] = copy_from_image(fs, chosencfg["kernel"], "kernel", - output_directory, not_really) --- -2.17.1 - -- cgit v1.2.3-54-g00ecf