Bug#1031696: Use of symbolic links in non-free ISO images breaks file system transposition support
Package: debian-cd
Followup-For: Bug #1031696
X-Debbugs-Cc: scdbackup@gmx.net
Please find below a proposed update to the commit message under discussion:
nonfree-firmware: when creating on-disc firmware links, use the same link creation logic as archive-area links
This changeset switches the creation of firmware file links from
using the Perl 'symlink' function (that creates symbolic links) to
the more configurable debian-cd 'good_link' function that will
create links based on the demands of the environment it is
configured in.
Context:
Debian bug #1031696 describes an issue where firmware files on
alpha-release debian-cd ISO images cannot easily be copied for
the purpose of creating another installation medium by users of
some operating systems.
Research:
When creating links to firmware files on the installation media in
the '/firmware' directory, we want to retain the same content
de-duplication and corresponding space-saving efficiencies as
symlinks currently provide.
We'd also like the entire content of the ISO 9660 filesystem to be
copyable to as many filesystems as possible, by as many operating
systems as possible.
Write-side considerations:
Filesystem links are not supported everywhere, and where unavailable
a reliable substitute for them is to create independent copies of the
link target file for each link that is encountered in the input.
The ISO9660 specifications, ECMA-119[1], section 6.5.1, allows[2] a
single file content block ("File Section") to be referenced from
multiple filenames ("records"). The ISO9660 generation tools
genisoimage and xorriso can use this to de-duplicate multiple linked
files from their input, saving space in the output filesystem image.
Read-side considerations:
Operating systems that read shared content blocks usually present
the files to the user as if no links exist. In the context of Debian
bug #1031696, that's exactly what we want: copying of the files
from the ISO filesystem produces independent data files without any
filesystem-level links.
[1] - https://www.ecma-international.org/publications-and-standards/standards/ecma-119/
[2] - https://archive.org/details/ecma-119-1998/page/n13/mode/1up
Co-described-by: Thomas Schmitt <scdbackup@gmx.net>
Reply to: