[syslinux] Module Versioning
BALATON Zoltan
balaton at eik.bme.hu
Mon Mar 7 19:10:23 PST 2016
On Mon, 7 Mar 2016, Pete Batard via Syslinux wrote:
> I could also say something about the ISOHybrid _HACK_, which clearly is not
> something that was ever intended by the people who designed ISO-9660, and
> that could "either work if you're lucky or fail if you're not". Looking at
> the recent history of this mailing list, it does seem to me like ISOHybrid
> can be a bit of a headache...
Yes I agree it's not a perfect solution. The difference is that the
headache in this case is for those tech savvy people creating the hybrid
iso who should be able to figure it out so the non-tech savvy end users
should not have a problem with it as long as used as intended. If the end
users start to modify an iso without knowing what they are doing they
could easily end up with problems. If Rufus can do it automatically for
them then they are lucky, if not then they just broke something they were
not supposed to change. I mean, trying to do something that was not
intended by those that designed it can be a valid problem but not easy to
solve cleanly.
If you're already rebuilding the boot loader on the iso you could also
replace all of syslinux with a known working version that you have all the
matching modules for and only keep the config. (This is what Ferenc has
suggested.) This might save you having to keep all possible versions of
syslinux ever appeared in the wild and avoid the need to detect the
version of syslinux on the iso. But can break with patched syslinux
versions or if they have custom modules. (But then trying to use a
substitute part from a release for this customised version would likely
break too.) I'm not sure if the config file is more portable between
syslinux versions than modules but I guess it would be so for this keeping
fewer versions could be enough.
I was also thinking about storing hashes of files that you have modules
for and try to idenfify the version by comparing the hashes instead of
trying to extract a version number from the binary, but this may be
problematic as well because building with different compilers will result
in different hashes and you don't know what was used by those created the
iso.
I don't see a way to solve this problem in a way that is fool-proof and
cannot break as this is inherently fragile because you can't know what's
on the iso. It can be anything, even containing custom modules or patched,
unreleased versions.
Also I'm surprised that isos converted this way still work and the
software on them is not confused by having its files on a different
filesystem loosing case sensitivity, access rights, links, etc. For simple
live CDs running entirely from an initrd this could work but for anything
more complex than that I wonder how it does not break.
Regards,
BALATON Zoltan
More information about the Syslinux
mailing list