Package: genisoimage
Version: 9:1.1.11-3.4
Severity: normal
X-Debbugs-Cc: [email protected]
Dear Maintainer,
tl;dr: Please add option to force the Path Table to be all upper case with
-allow-lowercase option.
I'm trying to generate an ISO suitable for a 1990's Commodore CDTV. This was an
early adopter of CD-ROM when the standards were in their infancy.
The Amiga has always supported mixed-case filenames. While it is generally
case-insensitive there is a bug under Workbench 1.3 where icon handling
*requires* the ".icon" suffix to be lowercase so lowercase is required for
full GUI functionality.
Generating an ISO without using -allow-lowercase and it will generate an ISO
that is readable in Amiga DOS however none of the icons will show in the GUI.
Generating an ISO with using -allow-lowercase and it breaks horribly. Icons
work but the Amiga cannot see vast swathes of files. Even changing directory is
broken.
Arguably this is a bug in the AmigaOS but this isn't something that can easily
be fixed as its in the ROM.
mkisofs, genisofs, xorriso and genisoimage all have the same problem that they
cannot generate an ISO that will be more than partly readable on the Amiga when
the allow-lowercase option is enabled.
After some investigation I believe the issue to be that the Amiga CDFS
*requires* the Path Table to conform to ISO 9660, ie all the characters of the
directory identifier are required to be in upper case only. The lower case for
the Amiga is *only* used within the Directory Records section.
I have validated this by creating an ISO using genisoimage and then going back
in and modifying the Path Table to be all upper case. Using the otherwise
identical
ISO and modifying the Path Table in this way turns an unreadable ISO into a
readable one.
There are programs to create an Amiga suitable ISO (eg isocd-win) however none
for linux or other POSIX systems.
I wrote a quick dirty program to read and then modify the Path Table and
Directory Records so I could work out what was going on.
I created 4 test ISOs using an identical source folder.
PiDrive.iso is PiDrive2.iso with the Path Table converted to all upper case. -
Path Table in the ISO is all uppercase.
PiDrive1.iso is generated using genisoimage without the -allow-lowercase
option. - Path Table in the ISO is all uppercase.
PiDrive2.iso is generated using genisoimage with the -allow-lowercase option. -
Path Table in the ISO reflects source case (All lowercase in this example).
PiDrive3.iso is generated with isocd-win. - Path Table in the ISO is all
uppercase.
Here are the results in AmigaOS DOS for each. - Note the missing files and
error with PiDrive2.iso
PiDrive1.iso
1.Workbench1.3:> cd CD0:
1.CDTV1:> dir
C (dir)
DEVS (dir)
L (dir)
LIBS (dir)
S (dir)
SRC (dir)
T (dir)
TRASHCAN (dir)
README TRASHCAN.INFO
VERSION
1.CDTV1:> cd c
1.CDTV1:C> dir
CDTV_IMAGES CDTV_REFRESH
CDTV_VERSION RMTM
1.CDTV1:C> cd /
1.CDTV1:>
PiDrive2.iso
1.Workbench1.3:> cd CD0:
1.CDTV2:> dir
c (dir)
devs (dir)
l (dir)
libs (dir)
s (dir)
src (dir)
t (dir)
trashcan (dir)
README trashcan.info
VERSION
1.CDTV2:> cd c
1.CDTV2:c> dir
RmTM
1.CDTV2:c> cd /
Can't find /
1.CDTV2:c>
PiDrive3.iso
1.Workbench1.3:> cd CD0:
1.CDTV3:> dir
c (dir)
devs (dir)
l (dir)
libs (dir)
s (dir)
src (dir)
t (dir)
trashcan (dir)
README trashcan.info
VERSION
1.CDTV3:> cd c
1.CDTV3:C> dir
cdtv_images cdtv_refresh
cdtv_version RmTM
1.CDTV3:C> cd /
1.CDTV3:>
PiDrive.iso
1.Workbench1.3:> cd CD0:
1.CDTV2:> dir
c (dir)
devs (dir)
l (dir)
libs (dir)
s (dir)
src (dir)
t (dir)
trashcan (dir)
README trashcan.info
VERSION
1.CDTV2:> cd c
1.CDTV2:C> dir
cdtv_images cdtv_refresh
cdtv_version RmTM
1.CDTV2:C> cd /
1.CDTV2:>
Please could there be an option here to force the Path Table to be all upper
case even if -allow-lowercase is used?
Thanks
David
-- System Information:
Debian Release: 12.10
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: arm64 (aarch64)
Foreign Architectures: armhf
Kernel: Linux 6.12.25+rpt-rpi-v8 (SMP w/4 CPU threads; PREEMPT)
Kernel taint flags: TAINT_CRAP
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages genisoimage depends on:
ii libbz2-1.0 1.0.8-5+b1
ii libc6 2.36-9+rpt2+deb12u10
ii libmagic1 1:5.44-3
ii zlib1g 1:1.2.13.dfsg-1+rpt1
genisoimage recommends no packages.
Versions of packages genisoimage suggests:
pn cdrkit-doc <none>
pn wodim <none>
-- no debconf information