Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:Update
xen.27273
pygrub-boot-legacy-sles.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pygrub-boot-legacy-sles.patch of Package xen.27273
Index: xen-4.14.0-testing/tools/pygrub/src/pygrub =================================================================== --- xen-4.14.0-testing.orig/tools/pygrub/src/pygrub +++ xen-4.14.0-testing/tools/pygrub/src/pygrub @@ -452,7 +452,7 @@ class Grub: 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.") + return f = fs.open_file(self.cf.filename) # limit read size to avoid pathological cases buf = f.read(FS_READ_MAX) @@ -627,6 +627,20 @@ def run_grub(file, entry, fs, cfg_args): g = Grub(file, fs) + # If missing config or grub has no menu entries to select, look for + # vmlinuz-xen and initrd-xen in /boot + if g.__dict__.get('cf', None) is None or len(g.cf.images) == 0 or re.search(r"xen(-pae)?\.gz",g.cf.images[0].kernel[1]): + if not list_entries: + chosencfg = { "kernel": None, "ramdisk": None, "args": "" } + chosencfg = sniff_xen_kernel(fs, incfg) + if chosencfg["kernel"] and chosencfg["ramdisk"]: + chosencfg["args"] = cfg_args + return chosencfg + if g.__dict__.get('cf', None) is None: + raise RuntimeError("couldn't find bootloader config file in the image provided.") + else: + return + if list_entries: for i in range(len(g.cf.images)): img = g.cf.images[i] @@ -722,6 +736,19 @@ def sniff_netware(fs, cfg): return cfg +def sniff_xen_kernel(fs, cfg): + if not cfg["kernel"]: + if fs.file_exists('/boot/vmlinuz-xen'): + cfg["kernel"] = '/boot/vmlinuz-xen' + elif fs.file_exists('/boot/vmlinuz-xenpae'): + cfg["kernel"] = '/boot/vmlinuz-xenpae' + if cfg["kernel"] and not cfg["ramdisk"]: + if fs.file_exists('/boot/initrd-xen'): + cfg["ramdisk"] = '/boot/initrd-xen' + elif fs.file_exists('/boot/initrd-xenpae'): + cfg["ramdisk"] = '/boot/initrd-xenpae' + return cfg + def format_sxp(kernel, ramdisk, args): s = "linux (kernel %s)" % repr(kernel) if ramdisk: @@ -803,7 +830,7 @@ if __name__ == "__main__": debug = False not_really = False output_format = "sxp" - output_directory = "/var/run/xen/pygrub" + output_directory = "/var/run/xen" # what was passed in incfg = { "kernel": None, "ramdisk": None, "args": "" }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor