[syslinux] suggestions for global APPEND consistency

Ady ady-sf at hotmail.com
Tue Feb 12 12:17:33 PST 2013


Hello Syslinux Team,

I have some suggestions / requests regarding global APPEND commands. 
These would make the behavior more consistent and more useful for 
practical cases.

1_ Add some functionality equivalent to "APPEND -" to the command 
prompt.

2_ Activate the functionality of ONERROR from [vesa]menu.c32 too. 
Currently, ONERROR only works from the command prompt. 

3_ Add a new directive that would function as global APPEND, with the 
difference that it could be merged with specific KERNEL+INITRD+APPEND 
commands (those that are used after LABEL). *Just for the purpose of 
this email*, let's call it [MENU] GAPPEND (Please forgive me if using 
the word "MENU" for this new suggested directive is not appropriate; 
the concepts I post here are still applicable without this word, so I 
will use [MENU] GAPPEND). The resulting generic command would be: 
KERNEL + [MENU] GAPPEND + INITRD + APPEND (in this order). Any of the 
four parts of this resulting command could be not-explicitly stated 
in the cfg file.

4_ When pressing TAB on a LABEL in [vesa]menu.c32, the command line 
should display ALL the resulting commands, including [MENU] GAPPEND.

5_ For [MENU] GAPPEND, if the resulting command is manually edited in 
the boot prompt, the edition should be respected (as oppose to 
silently forcing [MENU] GAPPEND).


Current inconsistencies (before implementing the suggestions): 
Currently, a global APPEND is ALWAYS merged and silently forced from 
the command prompt, but it is never displayed, and there is no method 
to override it. From [vesa]menu.c32, the current global APPEND is not 
merged when a specific APPEND is used. ONERROR is (silently) used 
from the command prompt, but not when selecting a label entry from 
the menu.

By implementing the five aforementioned suggestions, the behavior 
would be consistent between the command prompt and [vesa]menu.c32, 
and it would make the current global APPEND and the new suggested 
[MENU] GAPPEND usable for several practical situations. Such 
consistency would be achieved from the command prompt ("prompt 1"), 
from [vesa]menu, and when pressing TAB when a label is selected from 
[vesa]menu.


One such practical case could be the improvement of following cfg 
file:

 ***
UI menu.c32
PROMP 0

LABEL 1
LINUX mykernel
INITRD myinitramfs
APPEND Very long list of options

LABEL slightly_modified_1
LINUX mykernel
INITRD myinitramfs
APPEND Very long list of options lang=xyz

# And there are MANY more labels using a slightly modified resulting 
command.
 ***

where the APPEND commands in LABEL 1 are repeated again and again in 
each additional label entry. This repeated "Very long list of 
options" would be replaced by one "[MENU] GAPPEND Very long list of 
options".

A different scenario: The new suggested [MENU] GAPPEND could include 
the KERNEL and the INITRD commands, and each LABEL entry could just 
have a different specific APPEND.

I can provide additional alternative possible scenarios if needed / 
wanted.

The current global APPEND would still be usable for other cases, 
where specific APPEND commands replace (not merge) the global APPEND, 
and it is still forced when not using [vesa]menu.c32 (hence, 
suggestion #1).

The current "APPEND -" in a label entry would override [MENU] GAPPEND 
too (for that entry).

For the current global APPEND to be effectively usable, at least 
suggestion #1 is essential for consistency, and suggestion #4 is very 
desirable.

For the new suggested [MENU] GAPPEND to be usable, suggestion #1 is 
not essential (yet desirable), but suggestion #4 is (almost) 
essential.

Hopefully these suggestions make sense and can be implemented in 
Syslinux. If I wasn't clear or if there is any question, please don't 
hesitate to ask.

TIA,
Ady.



More information about the Syslinux mailing list