[arch-general] [arch-dev-public] syslinux 5.00 in [testing]

Matthew Gyurgyik pyther at pyther.net
Sun Dec 16 16:03:20 EST 2012


On 12/08/2012 10:59 AM, Matthew Gyurgyik wrote:
> On 12/08/2012 06:37 AM, Tobias Powalowski wrote:
>> Hi, seems syslinux changed some things more than I expected, could
>> thomas or gerado look at the changes?
>> http://www.syslinux.org/archives/2012-December/018747.html I don't
>> have time this afternoon.
>>
>> If it keeps broken, I'll remove it this evening from testing
>> repository.
>>
>> greetings tpowa
>>
>
> The default modules that we place into /boot (menu.c32 vesamenu.c32
> chain.c32 hdt.c32 reboot.c32 poweroff.com) depend on
> libutil_com.c32, libcom32.c32, libmenu.c32, libcom32gpl.c32 (new with
> syslinux 5.0)
>
> The syslinux-install_update script will need to be updated to
> include these extra modules. I will provide a patch in the next day
> or two, since I'm the original author.
>
> Simply adding the new modules to the script should work, but I want
> to test the following (thus the delay for the patch): 1) upgrade
> from syslinux4 -> syslinux5 2) new install using syslinux 5
>
> Regards, Matthew Gyurgyik

Below you will find the links to the patches for the 
syslinux-install_update script, PKGBUILD, and syslinux.cfg

During an install, the syslinux-install_update script will copy all .c32 
modules to /boot/syslinux. This is recommended by upstream [1]. The size 
cost is minimal, 996K. For updates, I added an array called 
core_modules. During an update, we only copy modules that already exist 
in /boot/syslinux. However, if any core_module does not exist in 
/boot/syslinux it will be copied/symlinked.

With these modifications, when a user upgrades from 4.06 -> 5.00, 
ldlinux.c32 will be copied/symlinked to /boot/syslinux as it is 
core_module. Other modules such as libutil_com.c32 and libcom32.c32 will 
not be copied/linked.

On boot, if a menu is being used, the menu will fail to load (missing 
depends: libutil_com.c32, etc...). However, the user will be given a 
syslinux shell they can boot by entering a label that corresponds to a 
defined label in syslinux.cfg.

A post_install message or a news item suggesting users to copy / symlink 
all modules to /boot/syslinux would be ideal. Users who miss this 
message, will still be able to boot, but instead of the menu loading, 
they will be dropped to a syslinux shell (as explained above).

cp /usr/lib/syslinux/*.c32 /boot/syslinux (/ and /boot on seperate fs)

or

ln -s /usr/lib/syslinux/*.c32 /boot/syslinux (/ and /boot on same fs)

In my opinion, we shouldn't add new modules during an update to 
/boot/syslinux unless, without, the module, the system becomes 
unbootable. The rational here being - the user knows best.

Lastly, since com modules are no longer supported and no one has ported 
poweroff.com, I have removed the poweroff section from the syslinux.cfg [2].

Patches:
http://pyther.net/a/syslinux-5.00-patches-v1/PKGBUILD.diff
http://pyther.net/a/syslinux-5.00-patches-v1/syslinux-install_update.patch
http://pyther.net/a/syslinux-5.00-patches-v1/syslinux.cfg.patch

[1] "In general, unless you have a reason *not* to install all the .c32
files, it is probably a good idea." - hpa

[2] #syslinux @freenode:
   pyther : Hello. Is there a poweroff module for syslinux 5?
   Ady2 : pyther: no. all .com modules are not supported in 5.00. someone
   needs to create a new poweroff.c32 compatible with 5.00.


Regards,
Matthew Gyurgyik


More information about the arch-general mailing list