Package: genisoimage
Version: 9:1.1.11-3.4
Severity: normal
X-Debbugs-Cc: debian.bug.repor...@fastdruid.co.uk

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

Reply via email to