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

Re: mkisofs "-graft-points" not working?



Joerg Schilling wrote:
Bill Davidsen <davidsen@tmr.com> wrote:

After installing the recent cdrtools (a35), I started a backup script which writes all the backup information in a file and then creates an ISO image thus:
  mkisofs -o $DATE.iso -RU -graft-points -path-list $DATE.filelist

The run aborted saying that files had the same Rockridge name. After some investigation, it appears that the conflict was caused by ignoring the graft points and putting every file in the root of the image instead of using the subdirectory information. The man page for mkisofs indicates that graft-points still is intended to function as I have been using it for years.

The symptom is that a graft point like "USRLCL=/usr/local" no longer creates a subdirectory called USRLCL, but rather puts the tree starting with /usr/local directly in the root of the ISO image. Needless to say, this change doesn't qualify as an enhancement with me.

What you do here did never work as you believe...... You are using incorrect
syntax.

What I have been doing has been working for years, and worked with the mkisofs from wodim, and with "mkisofs 2.01a12 (i686-pc-linux-gnu)" which I had lying around.
If you like to create a grafted _directory_ in the ISO image, you need to add a slash to the path name to the left of the equal sign.....

The script for monthly backup has a graft point HOME=/home which has been working for five years on one of the machines I tested, which reports:
gaimboi:davidsen> mkisofs -version
mkisofs 2.0 (i686-pc-linux-gnu)
gaimboi:davidsen> l /usr/local/bin/mkisofs
-rwxr-xr-x    1 root      1413386 Jun 14  2003 /usr/local/bin/mkisofs

This was built from *your* source and installed. If it doesn't work that way, then you changed it. And the man page still seems to say what I expect, if I say DIR=foo/bar/zot then no matter what the path right of equal is, that gets renamed as whatever is left of equal.

Try this with your own old code to realize it has always worked this way:
 mkdir AA BB
 touch AA/test
 touch BB/test
 mkisofs -o test1.iso AAA=AA BBB=BB
 mkisofs -o test2.iso AAA=AA BBB=AA/test

In the first case BBB is a directory, in the 2nd it is a file. And current code presents no error message, the graft point is silently totally ignored. You changed it, you broke existing scripts, it fails without warning, and it doesn't conform to the documentation.

For once could you fix it and admit there's a problem, instead of trying to claim it always worked that way?

--
Bill Davidsen <davidsen@tmr.com>
 "Woe unto the statesman who makes war without a reason that will still
be valid when the war is over..." Otto von Bismark


Reply to: