42 lines
1.9 KiB
Plaintext
42 lines
1.9 KiB
Plaintext
|
Notes on using the --osx-hfs option when running mkisofs on MacOS X
|
||
|
|
||
|
mkisofs does not use any of the MacOS APIs to access files - it uses
|
||
|
standard (POSIX style) library calls. Under normal circumstances, all
|
||
|
mkisofs will 'see' is the data fork of files on an HFS (or HFS+) file system.
|
||
|
|
||
|
However, Apple have provided a way for POSIX style applications to
|
||
|
access the resource fork - using the following syntax:
|
||
|
|
||
|
If a file exists on an HFS volume with the name 'foo', then the resource fork
|
||
|
can be accessed using the file name 'foo/rsrc' or foo/..namedfork/rsrc'
|
||
|
(the data fork can also be accessed using 'foo/..namedfork/data').
|
||
|
|
||
|
These 'pseudo' file names are not normally visible in a directory - unless
|
||
|
you access them directly (e.g. 'ls -l */rsrc etc).
|
||
|
|
||
|
To access the finder information, Apple have provided an undocumented library
|
||
|
function called getattrlist(). Fortunately there are example of its usage
|
||
|
in the Darwin (MacOS kernel) source code.
|
||
|
|
||
|
|
||
|
Although MacOS X can use HFS(+) as its file system, Apple have decided to
|
||
|
move away from using HFS to store finder info and resource data - for
|
||
|
example, the TYPE of a file may be based on its file name extension and the
|
||
|
TYPE field in the finder info empty.
|
||
|
|
||
|
mkisofs knows nothing about these file name extension mappings, so if the
|
||
|
--osx-hfs option is used and the source files are on MacOS X HFS(+) volumes,
|
||
|
by the fact that they are HFS files, they will get identified as 'MacOS X HFS'
|
||
|
and the resulting file on the output CD image will have empty TYPE and CREATOR
|
||
|
fields.
|
||
|
|
||
|
Therefore, if the input finderinfo is blank and the the resource fork is
|
||
|
empty, mkisofs will assume the input file is not a 'real' HFS file - which
|
||
|
means the TYPE and CREATOR may then be set using the file's magic number or
|
||
|
mkisofs' file name extension mapping.
|
||
|
|
||
|
The only real benefit of using the --osx-hfs option is when the source files
|
||
|
are on an OS9 or earlier HFS or HFS+ volume e.g. an existing HFS CD.
|
||
|
|
||
|
James Pearson 3-Jul-2002
|