FS#21766 - extlinux - create/new package?
Attached to Project:
Arch Linux
Opened by Matthew Gyurgyik (pyther) - Saturday, 20 November 2010, 23:11 GMT
Last edited by Ray Rashif (schivmeister) - Monday, 22 November 2010, 08:40 GMT
Opened by Matthew Gyurgyik (pyther) - Saturday, 20 November 2010, 23:11 GMT
Last edited by Ray Rashif (schivmeister) - Monday, 22 November 2010, 08:40 GMT
|
Details
Wasn't sure of a good name for the title, so I apologize.
Pierre's email on arch-dev-public caused me to think how we can integrate extlinux into the installer. The problem we face is that extlinux is part of syslinux. The files in the syslinux package are used for isolinux and other programs, therefore we shouldn't move the location. With grub there is a sample configuration file in /boot/grub. However, there is no such sample file in /boot for syslinux. I suggest a new package gets created Package name: extlinux Depends On: syslinux Files: */boot/syslinux/ (create dir) */boot/menu.c32 (needed for text menu) */boot/syslinux/vesamenu.c32 (needed for gui menu) */boot/syslinux/chain.c32 (needed to boot windows and other OS) */boot/syslinux/extlinux.conf (syslinux configuration file, can also be called syslinux.conf) */boot/syslinux/splash.png (arch splash logo that is on the cd) Default Config *Do we want to supply a text menu or graphical menu (like the cd) configuration file *Arch Linux *Arch Linux Fallback *Windows <== Commented out Example This package could easily be created in the syslinux pkgbuild using a split pkgbuild Flaws/Problems/Issues: *Duplicate copies of the same file on system (chain.c32, menu.c32, vesamenu.c32) Symlinks won't work because boot and / (root) are on separate partitions for many users extlinux --install /boot/syslinux will still have to been run to generate ldlinux.sys and write the boot code to the partition boot sector I wouldn't mind doing the backend work (creating an example config and modify the syslinux pkgbuild) if this idea is approved. The other thing to decide is whether we want the default example config file to contain a background image and colored texts? I can not think of any way to avoid duplicate copies of files. Although this package would NOT be needed to install extlinux (everything is provided by syslinux) it would make it much easier. All users have had to in the past is go into /boot edit the lilo or grub config file and then run lilo or grub-install. This package would allow this same behavior for extlinux. Using just the syslinux package the following procedure must take place 1. mkdir /boot/syslinux 2. cp /usr/lib/syslinux/{menu.c32, vesamenu.c32, chain.c32} /boot/syslinux.cfg 3. Create /boot/syslinux/extlinux.conf 4. extlinux --install However with the extlinux pkg: 1. Edit /boot/syslinux/extlinux.conf 2. extlinux --install /boot/syslinux From the prospective of the installer, the installer would simply have to let the user edit the config file and then execute extlinux --install /boot/syslinux. Whereas, without this package the installer would have to create /boot/syslinux and copy the needed *.c32 files. When this happens the .c32 files in /boot are no longer managed by pacman, therefore those files will never get updated when syslinux is updated. |
This task depends upon
Closed by Ray Rashif (schivmeister)
Monday, 22 November 2010, 08:40 GMT
Reason for closing: Won't implement
Additional comments about closing: Installer can handle copying of files.
Monday, 22 November 2010, 08:40 GMT
Reason for closing: Won't implement
Additional comments about closing: Installer can handle copying of files.
@Ray
Although there are files in /boot that are not managed by the grub package, they are managed by the grub-installer. As in, when you run grub-installer those files in /boot will be updated. However, with extlinux --update, the only file that is updated is the bootloader code (ldlinux.sys). Any *.c32 files needed for a menu / chainloading / extra functionality are not updated.
The problem becomes that the users copy the *.c32 files to /boot, an update to syslinux occurs. User runs extlinux --update and now the files on /boot are old and outdated, unless if the user remembers to copy them. I'm no expert on syslinux, but I suspect that may case breakage or problems at some point.
From the installer standpoint (aif), the installer for grub currently doesn't copy anything over to boot. It just runs grub-install. Would be nice to allow the same behavior with extlinux.
Upstream will argue that the *.c32 files aren't needed in /boot/syslinux, which is true, because with no config or *.c32 you'll be given a syslinux prompt and you will be able to boot. However this would not be a friendly solution by any means (think grub prompt).
Lastly, syslinux is much more than just extlinux. Therefore I strongly feel that we should not be putting any /boot files into the syslinux package. Remember, that isolinux and pxelinux are part of syslinux and users may want to use those tools, instead of extlinux.
Just to be clear, I'm suggesting the package provide an example config file and *duplicates* of a few *.c32 files that would be commonly used by users and would be normally found in the syslinux package.
Anyway, inclusion of extlinux/syslinux is not happening yet, so I doubt anyone would bother about this now.
My biggest focus is the installer. I'm not a fan of letting the installer copy files around (cp stuff from /usr/lib/syslinux/ to /boot/syslinux). As for the inclusion of syslinux/extlinux I am hoping to patch AIF for support in the coming weeks. I have taken a look at the code and it doesn't look too difficult.
Pros: Installation is easier for installer and users
Cons: Package provides same file as syslinux package and it is a special package
If copying files for the user in the installer is acceptable then I don't care either way. I am assuming copying files in the installer without using pacman would be frowned upon, though.
In my most humble opinion, it just seems like creating this small package would ensure a bit safety on a critical part of the operating system and I don't really see any major negatives. If we weren't talking about a bootloader, I would likely share the same opinions as you.
On a side note, I have updated the wiki a bit and feel that the wiki provides clear directions on how to install and configure extlinux - https://wiki.archlinux.org/index.php/Syslinux