diff options
Diffstat (limited to 'pygrub-handle-one-line-menu-entries.patch')
| -rw-r--r-- | pygrub-handle-one-line-menu-entries.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/pygrub-handle-one-line-menu-entries.patch b/pygrub-handle-one-line-menu-entries.patch new file mode 100644 index 0000000..0abe62d --- /dev/null +++ b/pygrub-handle-one-line-menu-entries.patch @@ -0,0 +1,59 @@ +References: bsc#978413 + +The parsing code can't handle a single line menu entry. +For example: menuentry 'halt' { halt } +Force it to fall through where it will handle the closing brace. +Also change warning to debug to cut down on verbose output. + +Index: xen-4.13.0-testing/tools/pygrub/src/GrubConf.py +=================================================================== +--- xen-4.13.0-testing.orig/tools/pygrub/src/GrubConf.py ++++ xen-4.13.0-testing/tools/pygrub/src/GrubConf.py +@@ -150,7 +150,7 @@ class GrubImage(_GrubImage): + else: + logging.info("Ignored image directive %s" %(com,)) + else: +- logging.warning("Unknown image directive %s" %(com,)) ++ logging.debug("Unknown image directive %s" %(com,)) + + # now put the line in the list of lines + if replace is None: +@@ -309,7 +309,7 @@ class GrubConfigFile(_GrubConfigFile): + else: + logging.info("Ignored directive %s" %(com,)) + else: +- logging.warning("Unknown directive %s" %(com,)) ++ logging.debug("Unknown directive %s" %(com,)) + + if img: + self.add_image(GrubImage(title, img)) +@@ -343,7 +343,7 @@ class Grub2Image(_GrubImage): + elif com.startswith('set:'): + pass + else: +- logging.warning("Unknown image directive %s" %(com,)) ++ logging.debug("Unknown image directive %s" %(com,)) + + # now put the line in the list of lines + if replace is None: +@@ -408,7 +408,10 @@ class Grub2ConfigFile(_GrubConfigFile): + raise RuntimeError("syntax error: cannot nest menuentry (%d %s)" % (len(img),img)) + img = [] + title = title_match.group(1) +- continue ++ if not l.endswith('}'): ++ continue ++ # One line menuentry, Ex. menuentry 'halt' { halt } ++ l = '}' + + if l.startswith("submenu"): + menu_level += 1 +@@ -447,7 +450,7 @@ class Grub2ConfigFile(_GrubConfigFile): + elif com.startswith('set:'): + pass + else: +- logging.warning("Unknown directive %s" %(com,)) ++ logging.debug("Unknown directive %s" %(com,)) + + if img is not None: + raise RuntimeError("syntax error: end of file with open menuentry(%d %s)" % (len(img),img)) |
