RE: [PATCH] add multiboot support for tboot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > @@ -1123,15 +1142,30 @@ class GRUB(BootLoader):
> >                  grub_root = self.grub_device_name(self.stage2_device)
> >                  args.update(["ro", "root=%s" %
> image.device.fstabSpec])
> >                  args.update(self.boot_args)
> > -                stanza = ("title %(label)s (%(version)s)\n"
> > -                          "\troot %(grub_root)s\n"
> > -                          "\tkernel %(prefix)s/%(kernel)s %(args)s\n"
> > -                          "\tinitrd %(prefix)s/%(initrd)s\n"
> > -                          % {"label": image.label, "version":
> image.version,
> > -                             "grub_root": grub_root,
> > -                             "kernel": image.kernel, "initrd":
> image.initrd,
> > -                             "args": args,
> > -                             "prefix": self.boot_prefix})
> > +                if isinstance(image, MultibootLinuxBootLoaderImage):
> > +                    args.update(image.args)
> > +                    stanza = ("title %(label)s (%(version)s)\n"
> > +                              "\troot %(grub_root)s\n"
> > +
> "\tkernel %(prefix)s/%(multiboot)s %(mbargs)s\n"
> > +
> "\tmodule %(prefix)s/%(kernel)s %(args)s\n"
> > +                              "\tmodule %(prefix)s/%(initrd)s\n"
> > +                              % {"label": image.label, "version":
> image.version,
> > +                                 "grub_root": grub_root,
> > +                                 "multiboot": image.multiboot,
> > +                                 "mbargs": image.mbargs,
> > +                                 "kernel": image.kernel, "initrd":
> image.initrd,
> > +                                 "args": args,
> > +                                 "prefix": self.boot_prefix})
> > +                else:
> > +                    stanza = ("title %(label)s (%(version)s)\n"
> > +                              "\troot %(grub_root)s\n"
> > +
> "\tkernel %(prefix)s/%(kernel)s %(args)s\n"
> > +                              "\tinitrd %(prefix)s/%(initrd)s\n"
> > +                              % {"label": image.label, "version":
> image.version,
> > +                                 "grub_root": grub_root,
> > +                                 "kernel": image.kernel, "initrd":
> image.initrd,
> > +                                 "args": args,
> > +                                 "prefix": self.boot_prefix})
> >              else:
> >                  stanza = ("title %(label)s\n"
> >                            "\trootnoverify %(grub_root)s\n"
> 
> I'm sure it made sense to do it this way when we only had two
> possibilities, but now with a third, I'd much prefer that the code to
> generate a stanza be a method on an Image subclass.

Think it again. Before generating stanza in Image subclass method we will also need to check the bootloader type first. It just defer the condition checks into next level. Unless we redefine all Image subclasses as GrubLinuxBootLoaderImage, Grub2LinuxBootLoaderImage, GrubMultibootLinuxBootLoaderImage, etc. I still think it is suitable to keep Image classes simple to just provide mechanism, and put more logic in the calling classes.

Jimmy

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list


[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux