[Fedora-livecd-list] mandatory syslinux on live cd causes perl dependency

Mads Kiilerich mads at kiilerich.com
Thu Mar 4 11:32:19 UTC 2010


On 03/04/2010 11:49 AM, Marc Herbert wrote:
> Hi Mads,
>
>> Livecd-creator is executed on the host system and creates isolinux.cfg
>> (syslinux.cfg) by its own logic and hardcoded templates. It also runs
>> isohybrid if available, and the hosts livecd-iso-to-disk runs syslinux.
>> I don't see any reason why livecd-creator should use vesamenu.c32 and
>> isolinux.bin from the installed image.
>
> Because it makes sure they are available and from a well defined
> version?

Good point. But they still they are referenced from a boot loader 
installation and syslinux.cfg and which doesn't come from a well defined 
version.

> I think a bootloader is generally supposed to "belong" to the system it
> boots. People say that they have installed "Fedora 16", not "Fedora 16
> and GRUB 3.14".

On the other side: The bootloader is a meta thing which only for 
convenience is so deeply and seamlessly integrated with Fedora. That is 
also why a image unaware of syslinux can be booted with syslinux, even 
though some packages (kernels/dracut/plymouth) does a (IMHO) hackish but 
efficient "layering violation" and assumes that grub is used.

Looks like you are suggesting to make the liveCD even
> more an exception to this rule than it already is. Is this the right
> design choice? I honestly do not know.  If it made sense I would prefer
> going all the opposite way and depend as little as possible from the
> software of the (unknown) build system.

Right now there _is_ an exception, and I think it should be a primary 
goal here to make it more consistent - with or without an exception.

livecd-creator itself _is_ an exception. Using a different version of 
livecd-creator can make a huge difference to the created image. 
(livecd-creator has however been very stable recently - stable in the 
sense that it works fine and there hasn't been much new development.)

A consequence of what you propose would be to install livecd-creator 
(and anaconda?) in the image and let it do all the hard work with 
applying the kickstart configuration and installing the boot loader. 
Obviously the build system would have to bootstrap it, probably mostly 
by taking care of the %package section.

I guess that could work, but I think it is unfortunate to put even more 
dependencies into the live image. I would rather focus on making sure 
that the live image only contains what is need on runtime.

>> Using files from different unrelated packages even has the risk of
>> causing problems whenever the feature-set changes.
>
> Could you elaborate on this?

What I meant was that with the content of syslinux.cfg coming from 
livecd-creator in the build system and vesamenu.c32 and isolinux.bin 
from the installed image then they can come out of sync, and it will be 
hard to ever make changes to either of them.

>> I think the best solution is to drop the hardcoded dependency to
>> syslinux and use the files from the host system.
>
> Then a new "syslinux-data" RPM would still be useful - now to the build
> system.

IMHO the dependency chain isn't that big a problem on the build system, 
and more important: The build system will (in most cases) need 
"syslinux-executables" anyway.

I'm not sure that splitting syslinux up to allow mixing independent 
parts is an good idea.

> FYI: my build system tends to be automatically kickstarted to avoid the
> concerns I mentioned above.

I can see how that can be a good idea - assuming that you have a stable 
local yum mirror.

/Mads


More information about the livecd mailing list