Hi,
xorriso : FAILURE : Not a known command: '-f'
This message is issued if xorriso is its native command mode, rather than in its mkisofs emulation mode which would recognize options -f or -follow-links.
- join(' ', @morefiles)." --$opt -f"; + join(' ', @morefiles)." --$opt -follow default";
Command -follow "default" is recognized in native command mode. This mode is active when xorriso starts, gets replaced by emulation mode by command -as "mkisofs", and gets activated again by an argument "--".
So the question is whether it is intentional that xorriso is in native command mode. If not, then one should check whether mkisofs emulation is started by -as "mkisofs" and whether it gets ended by "--" somehow.
I looked for an online presentation of the L4 repository. https://github.com/MIPS/fiasco-l4re/blob/master/src/l4/tool/lib/L4/Grub.pm seems to match Leslie's patch. Obviously xorriso is supposed to run in emulation mode underneath grub-mkrescue.
The $cmd would cause a switch to native mode if $opt was empty.
Given the comment "There are different versions of grub-mkrescue" i assume that the script shall cover both versions of the binary: The one which needs "--" to leave grub-mkrescue option interpretation for adding xorriso emulation options, and the one which forwards any unknown grub-mkrescue option to xorriso mkisofs emulation.
The version which needed "--" was never released but existed for a while in the repos and made its way into Linux distros (e.g. Debian 8). Its life began in november 2013 when the script was translated to C. It ended in march 2015 by https://github.com/coreos/grub/commit/cf47a2fba5852014bc59959c5e357e83139334... "grub-mkrescue: pass all unrecognized options unchanged to xorriso."
One would need to get both versions and find some signature by which they can be distinguished. My local version 2.02~beta2-36 needs "--" before xorriso -as mkisofs options. It does not contain a naked string "--usage" which i would expect from the commit in march 2015 $ strings /usr/bin/grub-mkrescue | grep '^--usage' $ but only as part of the larger help text $ strings /usr/bin/grub-mkrescue | grep '.*--usage' Try '%s --help' or '%s --usage' for more information. $
Leslie: Can you confirm that your local grub-mkrescue contains a match for strings /usr/bin/grub-mkrescue | grep '^--usage' ?
Have a nice day :)
Thomas