1. What is “bomutils”?

bomutils are a set of tools to create Mac OS X installer packages on foreign OSes (windows, linux, etc.). These tools can be used as part of the cross-compilation process. In particular,  it includes an open source version of the mkbom tool which is distributed as closed-source version on Mac OS X Developer Tools. mkbom is the missing component to create Mac OS X installer packages on foreign OSes. All other steps in generating Mac OS X installer packages are relatively straight forward (see the tutorial).

2. What’s the big deal?

Until now, it was not possible to build a Mac OS X installer package on linux, windows, etc. because an essential developer tool called ‘mkbom’ was only available on Mac OS X. With bomutils it is now possible to completely build Mac OS X applications including installers on foreign OSes. This enables a whole set of possibilities such as compiling Mac OS X applications with linux build-bots.

3. What tools are included in bomutils?

mkbom - a tool to create a bill-of-materials file used in Mac OS X installers. mkbom can either create a bom file from a directory path or, with the ‘-i’ option, create a bom file from a text file containing a list of files an folders. The text file must have the same format as the output of lsbom and ls4mkbom.

lsbom - list the contents of a bill-of-materials file.

ls4mkbom - given a folder, ls4bom creates a file list of that folder in the same format as the output of lsbom.

dumpbom - a debugging tool to view the internal structure of a bom file

4. So how can I build an Installer on Linux/Windows/...?

Read the tutorial.

5. How do I compile Mac OS X applications on Linux/Windows/...?

This beyond the scope of this project. However, this is a good starting point or use llvm.

If you need more help you can hire me as a consultant and/or donate some money for me to create a ubuntu/fedora/debian/etc. package.

6. What is the license?

bomutils is licensed under the GPLv2. If this is a problem for you please send me an e-mail

7. My installer is not working?

This can be due to several reasons. The most common reason is that the file permissions and uid/gid in the bom file and in the installer archive don’t match. It is recommended that you always use the ‘-i’ option of mkbom to create bom file from a text file containing a file list. This way you can edit the uid/gid and permissions with sed or similar before creating the bom. Also you probably want to map uid and gid when creating the instaler archive by using the ‘--owner’ option in cpio.

Also, although it is important that you compress the Payload file, the flat package installer file itself should be compressed with the xar option ‘--compression none’ otherwise your package will be corrupted.

Please see the tutorial for more help.

8. Who are the authors of bomutils?

Principle development work was done by Fabian Renn with contributions from Joseph Coffland and Julian Devlin.

9. Where can I donate money :-)?

I spent many days writing the bomutils software and documentation. If you find this software useful then please consider donating.


Hosted on GitHub Pages — Theme by orderedlist