[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: MBF alert: packages with very long source / .deb filenames



Hi,

some technical facts about name lenght in Debian ISO 9660 images:

Raphael Hertzog wrote:
> What happens if you try to put too-long filenames on the CD with Joliet
> enabled?

libisofs, which produces the Debian i386 and amd64 images, truncates
oversized Joliet names. Collisions get resolved by truncating them
further and adding decimal counting numbers (aka "mangling").

Currently released libisofs is unable to write Joliet names longer
than 64 characters. I have freshly implemented a relaxed limit of 103.
Tests look good so far. The experimental code is uploaded as
  http://www.gnu.org/software/xorriso/xorriso-1.0.5.tar.gz

Test reports from reading such an ISO image by a real Windows machine
would be interesting ... :)
E.g. with a file name of 100 characters:

  xorriso -as mkisofs -o test.iso -J -joliet-long -graft-points \
          /0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=/some/file/on/disk


Steve McIntyre wrote:
> We already have arbitrary limits on filename length (~200 bytes or so
> on RockRidge),

Rock Ridge specs allow unlimited name length.
But libisofs allows only 255 currently. A name overflow of Rock Ridge is
a FAILURE event which normally leads to an abort of the xorriso run.
This abort is adjustable.
In any case a file with overly long name will not get into the image.

It seems unwise to exceed the X/Open minimum specification of 255
characters unless one knows that the reader can stand that.
(http://pubs.opengroup.org/onlinepubs/009695399/basedefs/limits.h.html
 NAME_MAX >= _XOPEN_NAME_MAX = 255 )
My own <linux/limits.h> says local NAME_MAX is 255.

I will check this more thoroughly before the next release and might
optionally allow longer Rock Ridge names.


----------------------------------------------------------------------------

As for UDF (of which the specs are hard to read):

ECMA-167, 14.4 File Identifier Descriptor, counts the file identifier
length (L_FI) in a single byte field (Uint8).
This limits name length to 255.
It might be that the upper specification layer (e.g. UDF-2.60)
provides means to represent longer names.

One could make experiments with read-write mountable UDF on a
machine that has NAME_MAX > 255.

----------------------------------------------------------------------------

Have a nice day :)

Thomas


Reply to: