On Wed, Apr 29, 2020 at 8:22 PM Pete Batard <pbat...@gmail.com> wrote:
> Hi, > > I got an issue reported today from a user trying to use a Rock Ridge ISO > with folders that go more than 8 levels, and it appears that the Rock > Ridge extensions from libcdio do not support RRIP Deep Directories, as > described on pages 33-34 of > http://www.reverse-engineering.info/CD/iso9660.pdf > > More specifically, if you master a Rock Ridge ISO with something like > ./1/2/3/4/5/6/7/8/test.txt, because it goes deeper than 8 levels, the > RRIP extensions enables '8/test.txt' to be moved into a top level > ./rr_moved/ directory, with the '8/' subdirectory being replaced by a > 0-byte file with the relevant System Use fields. > > An example of such an image can be found at: > https://files.akeo.ie/test/rrip_deep_folder.iso (374 KB). > > This image was generated with Folder2Iso > (https://www.trustfm.net/software/utilities/Folder2Iso.php), which calls > mkisofs behind the scenes, with Joliet extensions disabled to force Rock > Ridge. Note that you can ignore '.efi/boot/bootx64.efi' from this image, > as it is only there so I can test this image in Rufus. > > Obviously, libcdio should be able to recognize the RRIP extension and > extract the deep directory content accordingly, but this doesn't appear > to be the case. > > Specifically, the extract.exe sample will produce the following: > > # extract.exe rrip_deep_folder.iso tmp > Application: MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD > CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J > .PEARSON/J.SCHILLING > System : Win32 > Volume : ISO Label > Extracting: tmp/1/2/3/4/5/6/7/8 > Extracting: tmp/efi/boot/bootx64.efi > Could not access /rr_moved > > > Now, looking at section 4.1.5 of > https://ia800605.us.archive.org/16/items/enf_pobox_Rrip/rrip.pdf which > describes support for deep directory, and the rock.c code, it seems > there has been some attempt at adding some form support at least for the > CL relocation field, but this currently sits behind a '#ifdef FINISHED' > guard, and doesn't seem to be linked to active code. > > So I have to ask: > > What's the status of Deep Directory Rock Ridge support in libcdio? > Is someone planning to work on/finalize it? > Not that I am aware of. > > Regards, > > /Pete > >