[CMake] CPack Bundle Generator easily hits hdiutil MNAMELEN limit

Michael Jackson mike.jackson at bluequartz.net
Wed Jan 7 14:24:49 EST 2009



On Jan 7, 2009, at 1:42 PM, Bill Hoffman wrote:

> Mike Arthur wrote:
>>> From the hdiutil manpage:
>> -mountroot path	mount volumes in path instead of in /Volumes.  path  
>> must exist.  Note that mountpoint paths must be less than MNAMELEN  
>> characters (90 as of this writing).
>> This limit is easily hit by the mounting of the temporary dmg  
>> (tmp.dmg) in the Bundle Generator and causes it to fail.
>> May I suggest that, instead of mounting into ./_CPack_Packages/OSX-
>> Universal/Bundle/mnt/ instead /tmp/cpackmnt/ is used instead or the  
>> mountpoint parameter omitted and the Volumes mountpoint is used  
>> instead?
>> I can write a patch if necessary but it should be a trivial fix (if  
>> agreed).
>
> I am concerned that /tmp/ would not be unique enough, what if two  
> cpacks run at the same time?
>
> -Bill


My vote is for /Volumes since that is where OS X mounts everything  
else and is the expected behavior for mounting disk images on OS X.

As far as duplicate names go in /Volumes there must some sort of API  
because I mount USB multiple thumb drives all the time and each has  
the name "UNTITLED" but yet they all mount.

There is also the option:

-mountrandom path  like -mountroot, but mountpoint names are  
randomized with mkdtemp(3).  Note that mountpoint paths must be less  
than MNAMELEN characters (90 as of this writing).

Which would probably just solve the problem in combination with  
mounting in /Volumes.

Just my 2 cents.

---
Mike Jackson                 www.bluequartz.net





More information about the CMake mailing list