Partial installs of Final Cut Studio 3

When doing unattended installs of suites of software, sometimes you want to install something other than the default set of applications and add-ons. For example, if you are doing a remote/unattended install of iLife ’09, maybe you want to install only iDVD, iPhoto, and iMovie, and leave off iWeb and GarageBand.

With most Apple packages, you can specify a “ChoiceChangesXML” file, which tells the command-line installer to make changes to the choices of what to install. For example, this XML file tells /usr/sbin/installer to install only iPhoto from the iLife ’09 install media:

<array>
    <dict>
        <key>attributeSetting</key>
        <false/>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>iDVD</string>
    </dict>
    <dict>
        <key>attributeSetting</key>
        <false/>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>iMovie</string>
    </dict>
    <dict>
        <key>attributeSetting</key>
        <false/>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>GarageBand</string>
    </dict>
    <dict>
        <key>attributeSetting</key>
        <false/>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>iLifeSoundEffects</string>
    </dict>
    <dict>
        <key>attributeSetting</key>
        <false/>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>iWeb</string>
    </dict>
    <dict>
        <key>attributeSetting</key>
        <true/>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>iPhoto</string>
    </dict>
</array>

It’s used like this:

/usr/sbin/installer -applyChoiceChangesXML choicesXMLpath -pkg pkgPath -target /

Variations on this XML can be used to install various combination of the individual tools in iLife ’09.

Unfortunately, at least in my testing, this technique fails completely when trying to install parts of Final Cut Studio 3. No matter what I tried, the installer seemed to ignore the ChoiceChangesXML file.

But I wanted to be able to install only Final Cut Pro (and the required helper apps) on some machines, and not install DVD Studio Pro, Soundtrack Pro, Motion, and Color. Other machines might get only Final Cut Pro and DVD Studio Pro. Here’s how I solved the problem.

In the Final Cut Studio 3 install media, the actual install package is a metapackage located at <path to Final Cut Studio Install media>/Installer/FinalCutStudio.mpkg.

FinalCutStudio.mpkg is a bundle, and inside the bundle’s Contents directory is a FinalCutStudio.dist file. This .dist file is actually an XML file, and included within are the various choices and paths to the actual install packages for each choice.

So: I made a read/write disk image of the install DVD and mounted it. I then duplicated the FinalCutStudio.mpkg and named it FinalCutProOnly.mpkg. Inside the bundle, I renamed “FinalCutStudio.dist” to “FinalCutoProOnly.dist”. Then I set to work editing the .dist file.

Within the .dist XML are a series of <choice> items, each describing an installation choice. Each choice has some interesting attributes: “start_enabled” and “start_selected”. In the original XML, some of these are set to true, some are set of false, some are set to the value of a JavaScript function. I went through these items slowly and for the items I did not want installed, I set “start_selected” to false:

start_selected='false'

When I was done, I had a new metapackage that installed only Final Cut Pro from the Final Cut Studio media. I repeated the technique with the other major apps in the Suite, and now I can install any required combination of the core apps. The Installer directory now looks like this:


ls -1 /Volumes/Final\ Cut\ Studio\ Install/Installer
ColorOnly.mpkg/
DVDStudioProOnly.mpkg/
FinalCutProOnly.mpkg/
FinalCutStudio.mpkg/
MotionOnly.mpkg/
Packages/
SoundtrackProOnly.mpkg/

Since the actual packages are in the Packages sub-directory, the additional mpkgs don’t take up much additional space. I then converted the disk image back to read-only compressed.

Editing the dist files was tedious and required trial-and-error to get to the result I wanted. So I’ve zipped them up and you can download them here.

To use them, you’ll still need to duplicate the FinalCutStudio.mpkg as described above, but instead of having to edit the dist file yourself, you can just replace it with mine. Be sure to test – while this works for me on the machines I manage, there’s always a chance that things may behave differently in different environments.

You could use this technique with any dist-based metapackage installer, so this might be applicable for other install problems.

Advertisements
Partial installs of Final Cut Studio 3

5 thoughts on “Partial installs of Final Cut Studio 3

  1. Joseph says:

    Looking at your dist files, it appears that you did not care about the extra content since you didn’t modify their paths. Would I just need to change the path within pkg-ref from an x-disc:// URL to a file: URL?

  2. I did not care about extra content. To install that, you’d have to add it to the disk image (or place it on accessible shared storage) and also modify the dist file.

Comments are closed.