Changes

Jump to: navigation, search

ReleaseEngineering/PuppetAgain/HowTo/Build DMGs

988 bytes added, 15:09, 10 September 2013
no edit summary
They also don't, by default, do a good job of being compatible between major versions of OS X. So we generally build a DMG for a particular version on a host running that version. If we need the same DMG for multiple versions, it gets built multiple times. The builds generally use exactly the same shell script.
 
= Summary =
 
We build DMGs using shell scripts, with those shell scripts checked in at <tt>modules/packages/manifests/mozilla/*-dmg.sh</tt>. For most DMGs, we build using the same script on all relevant versions of OS X, to ensure compatibility. Some packages are explicitly multi-version compatible, and those are generally built on a current-generation builder machine.
 
When a package is upgraded, a new version of the script should be included in the puppet patch. This ensures that we always have the capacity to rebuild packages (modulo the vagaries of Xcode versions, OS versions, etc.), and also makes upgrades easier as they can start from a known state.
 
Newer scripts get all of their prerequisites directly. Some older scripts require a copy of the corresponding srpm be unpacked with bsdtar. We should try to rewrite such older scripts as we come across them.
= Requirements =
There are shell scripts to build every custom DMG from the corresponding RPM sources, in [http://hg.mozilla.org/build/puppet/file/tip/modules/packages/manifests/mozilla hg]. They are named $package-dmg.sh.
 
For newer scripts, you should just be able to download the script on a system with the appropriate version of OS X and of XCode, and run it. Older scripts will require an SRPM be unpacked first.
 
== Unpacking an SRPM ===
In a fresh new directory, get a copy of the corresponding src.rpm from http://puppetagain.pub.build.mozilla.org/data, and run
bsdtar -xf whatever.src.rpm
it should unpack a tarball, a spec file, and maybe some patches.
 
Now, run the dmg script:
sh -x *-dmg.sh
it should build the DMG and point you to it in the last line of output.
== Building A Package That Depends On Another ==
Canmove, confirm
1,394
edits

Navigation menu