This section describes how to create and modify a Mac OS/X .dmg file (disk image).
To create an image Tribler.dmg from a source folder imagecontents/, use:
hdiutil create -srcfolder imagecontents/ -format UDRW -scrub
-volname Tribler Tribler.dmg
The UDRW format allows read/write-access. This allows modifications to the image such as setting the background. Useful formats are:
- UDRW: Read/write
- UDZO: Read-only
- UDCO: Read-only, compressed
To convert to a different format, use:
hdiutil convert Tribler.dmg -format UDCO -imagekey zlib-level=9 -o Tribler-readonly.dmg
The -imagekey zlib-level=9 sets the compression level for UDCO (1=fastest, 9=smallest).
To mount an image on build/mnt, use:
mkdir -p build
hdiutil attach -readwrite -noverify -noautoopen Tribler.dmg -mountpoint build/mnt
To unmount it, use:
hdiutil detach build/mnt
Mac OS/X can present the user with an EULA when the disk image is opened. This EULA is stored in the resource fork of the disk image. Special care is needed, as the EULA has special file format and subversion cannot be used to store resource forks.
An example EULA file can be found in the SLA SDK of Apple, and is called SLAResources. We'll first extract the EULA from the example file's resource fork:
cp SLAResources/rsrc SLAResources.rsrc
The file SLAResources.rsrc can be stored in Subversion. To edit it, use for example RezKnife.
Finally, to attach the EULA to a disk image, the image needs to be unflattened (i.e. data/resource forks restored), but it needs to be flattened again in the end:
hdiutil unflatten Tribler.dmg
/Developer/Tools/DeRez -useDF SLAResources.rsrc > sla.r
/Developer/Tools/Rez -a sla.r -o Tribler.dmg
hdiutil flatten Tribler.dmg