Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:Update
cobbler.3314
fix-cobbler-yaboot-handling.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix-cobbler-yaboot-handling.patch of Package cobbler.3314
Index: cobbler-2.6.6/cobbler/pxegen.py =================================================================== --- cobbler-2.6.6.orig/cobbler/pxegen.py +++ cobbler-2.6.6/cobbler/pxegen.py @@ -153,6 +153,9 @@ class PXEGen: def copy_single_distro_files(self, d, dirtree, symlink_ok): distros = os.path.join(dirtree, "images") distro_dir = os.path.join(distros,d.name) + # ppc can't have : in image path + if d.arch.startswith("ppc"): + distro_dir = distro_dir.replace(":","_") utils.mkdir(distro_dir) kernel = utils.find_kernel(d.kernel) # full path initrd = utils.find_initrd(d.initrd) # full path @@ -388,6 +391,7 @@ class PXEGen: # the default menus: pxe_menu_items = "" grub_menu_items = "" + yaboot_menu_items = "" # For now, profiles are the only items we want grub EFI boot menu entries for: for profile in profile_list: @@ -411,6 +415,13 @@ class PXEGen: if grub_contents is not None: grub_menu_items = grub_menu_items + grub_contents + "\n" + if distro.arch.startswith("ppc"): + yaboot_contents = self.write_pxe_file(filename=None, system=None, + profile=profile, distro=distro, + arch=distro.arch, include_header=False,format="yaboot") + if yaboot_contents is not None: + yaboot_menu_items = yaboot_menu_items + yaboot_contents + "\n" + # image names towards the bottom for image in image_list: @@ -430,7 +441,7 @@ class PXEGen: contents = self.write_memtest_pxe("/%s" % base) pxe_menu_items = pxe_menu_items + contents + "\n" - return {'pxe' : pxe_menu_items, 'grub' : grub_menu_items} + return {'pxe' : pxe_menu_items, 'grub' : grub_menu_items, 'yaboot' : yaboot_menu_items} def get_menu_items_nexenta(self): """ @@ -462,7 +473,7 @@ class PXEGen: grub_contents = self.write_pxe_file(filename=None, system=None, profile=profile, distro=distro, arch=distro.arch, include_header=False, format="nexenta") if grub_contents is not None: grub_menu_items = grub_menu_items + grub_contents + "\n" - + return {'pxe' : pxe_menu_items, 'grub' : grub_menu_items} def make_actual_pxe_menu(self): @@ -495,6 +506,14 @@ class PXEGen: self.templar.render(template_data, metadata, outfile, None) template_src.close() + # Write the yaboot menu: + metadata = { "yaboot_menu_items" : menu_items['yaboot'] } + outfile = os.path.join(self.bootloc, "yaboot.conf") + template_src = open(os.path.join(self.settings.pxe_template_dir, "yabootdefault.template")) + template_data = template_src.read() + self.templar.render(template_data, metadata, outfile, None) + template_src.close() + # write the nexenta menu menu_items = self.get_menu_items_nexenta() metadata = { "grub_menu_items": menu_items['grub'] } @@ -582,13 +601,15 @@ class PXEGen: # not image based, it's something normalish img_path = os.path.join("/images",distro.name) + if distro.arch.startswith("ppc"): + img_path = img_path.replace(":","_") if 'nexenta' == distro.breed: kernel_path = os.path.join("/images", distro.name, 'platform', 'i86pc', 'kernel', 'amd64', os.path.basename(distro.kernel)) initrd_path = os.path.join("/images", distro.name, 'platform', 'i86pc', 'amd64', os.path.basename(distro.initrd)) else: - kernel_path = os.path.join("/images",distro.name,os.path.basename(distro.kernel)) - initrd_path = os.path.join("/images",distro.name,os.path.basename(distro.initrd)) + kernel_path = os.path.join(img_path,os.path.basename(distro.kernel)) + initrd_path = os.path.join(img_path,os.path.basename(distro.initrd)) # Find the kickstart if we inherit from another profile if system: @@ -630,6 +651,8 @@ class PXEGen: local = os.path.join(self.settings.pxe_template_dir, "grublocal.template") if os.path.exists(local): template = local + elif format =="yaboot": + template = os.path.join(self.settings.pxe_template_dir,"pxesystem_ppc.template") else: # pxe if system.netboot_enabled: template = os.path.join(self.settings.pxe_template_dir,"pxesystem.template") @@ -679,7 +702,9 @@ class PXEGen: # not a system record, so this is a profile record or an image if arch.startswith("s390"): template = os.path.join(self.settings.pxe_template_dir,"pxeprofile_s390x.template") - if arch.startswith("arm"): + elif arch.startswith("ppc") and format == "yaboot": + template = os.path.join(self.settings.pxe_template_dir,"pxeprofile_ppc.template") + elif arch.startswith("arm"): template = os.path.join(self.settings.pxe_template_dir,"pxeprofile_arm.template") elif format == "grub": template = os.path.join(self.settings.pxe_template_dir,"grubprofile.template") Index: cobbler-2.6.6/templates/pxe/pxeprofile_ppc.template =================================================================== --- /dev/null +++ cobbler-2.6.6/templates/pxe/pxeprofile_ppc.template @@ -0,0 +1,5 @@ +image=$kernel_path + label=$profile_name + initrd=$initrd_path + append="$append_line" + Index: cobbler-2.6.6/templates/pxe/yabootdefault.template =================================================================== --- /dev/null +++ cobbler-2.6.6/templates/pxe/yabootdefault.template @@ -0,0 +1 @@ +$yaboot_menu_items
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