Packaging FileMaker Pro for Munki

If your organization, school, or company has volume licensing for FileMaker Pro and want to make your package Munki-able, this is how you do it (based on Assisted install for FileMaker Pro and FileMaker Pro Advanced).

munkifilemaker01
Find your FileMaker installer .mpkg file. This installer file will likely come on a read-only medium (read-only .dmg or actual physical CD/DVD), so drag it to a temporary read/write location (e.g., your desktop).

munkifilemaker02
Once that's copied over, right-click it and select Show Package Contents.

munkifilemaker03
You should see a small text file in there called Assisted Install.txt. Open that to edit it.

munkifilemaker04
Add in or change an options as you see fit (you don't need quotation marks around anything—just put the text for AI_USERNAME, AI_ORGANIZATION, and AI_LICENSEKEY after the equal sign on each line). For other options, 0 means No and 1 means Yes.

When you're done, close and save the file.

Next, just go ahead and import that modified .mpkg file into Munki (e.g., munkiimport FileMaker Pro ## Advanced.mpkg). The Munki import process will create a read-only .dmg container for the .mpkg file.

I'd recommend using an installs array (/usr/local/munki/makepkginfo -f) based off the info.plist instead of the FileMaker bundle. For example:

<key>installs</key>
<array>
<dict>
<key>CFBundleShortVersionString</key>
<string>13.0.9</string>
<key>CFBundleVersion</key>
<string>13.0.9</string>
<key>path</key>
<string>/Applications/FileMaker Pro 13 Advanced/FileMaker Pro Advanced.app/Contents/Info.plist</string>
<key>type</key>
<string>plist</string>
<key>version_comparison_key</key>
<string>CFBundleShortVersionString</string>
</dict>
</array>

I've found using an installs array based on the bundle will make Munki think FileMaker 12 is installed if 13 is. If you use multiple versions of FileMaker simultaneously, you'll definitely want Munki to differentiate among those versions.

14 thoughts on “Packaging FileMaker Pro for Munki”

  1. Works good except now it loops wanting to install it……the code above doesn’t seem to work. You put that where? Mine is at:

    /munki_repo/pkgsinfo/apps/FileMakerPro12-12

  2. Hi, ericdano.

    You’re absolutely right—you put the code in the /munki_repo/pkgsinfo/apps/FileMakerPro12-12 file (opening it in a text editor like TextWrangler), and really put it anywhere that doesn’t disrupt something else.

    Just to give you an example, this is an excerpt from my pkgsinfo file:

    <key>installer_item_size</key>
    <integer>449775</integer>
    <key>installs</key>
    <array>
    <dict>
    <key>path</key>
    <string>/Applications/FileMaker Pro 12 Advanced/FileMaker Pro Advanced.app</string>
    <key>type</key>
    <string>file</string>
    </dict>
    </array>

    <key>minimum_os_version</key>
    <string>10.4.0</string>
    <key>name</key>
    <string>FileMaker Pro 12 Advanced</string>

    Does that help?

  3. You ran makecatalogs afterwards, too?

    Can you make sure your file path is absolutely correct? On a machine you have it installed on, drag the launcher to an open Terminal.app window and see what the path looks like. Then take out the backslashes… that should be what’s in your pkginfo file.

  4. Path is correct. Here is the actual file in /pkgsinfo/apps

    _metadata

    created_by
    root
    creation_date
    2015-06-29T18:59:53Z
    munki_version
    2.2.4.2431
    os_version
    10.10.3

    autoremove

    catalogs

    Standard

    category
    apps
    description
    FileMaker Pro 12
    developer
    Apple
    display_name
    FileMakerPro12
    installed_size
    1318188
    installer_item_hash
    3641d4f1ac59f2b6c5efbfb49b208aa2528780743dbd4248c68acd2cc48180c6
    installer_item_location
    apps/FileMaker Pro 12.dmg
    installer_item_size
    383096
    installs

    path
    /Applications/FileMaker Pro 12/FileMaker Pro.app
    type
    file

    minimum_os_version
    10.4.0
    name
    FileMakerPro12
    receipts

    Then there is some more stuff, but the stuff we are talking about….

  5. To be perfectly honest, what worked for my machines was not technically what’s in the official documentation.

    Instead of something like this:

    <key>installs</key>
    <array>
    <dict>
    <key>path</key>
    <string>/Applications/FileMaker Pro 12/FileMaker Pro.app</string>
    <key>type</key>
    <string>file</string>
    </dict>
    </array>

    Can you try something more like this?

    <key>installs</key>
    <array>
    <dict>
    <key>type</key>
    <string>application</string>
    <key>path</key>
    <string>/Applications/FileMaker Pro 12/FileMaker Pro.app</string>
    </dict>
    </array>

    If that doesn’t work, you may have to call in the big guns and post to the Munki Dev mailing list.

  6. For my package, file worked but not application. Glad to hear yours is working actually the way it’s supposed to!

  7. What you want to do is run the makepkginfo command with the -f switch. This will spit out an installs array that you can drop into the pkgsinfo file with 100% accuracy for the specific app you throw at the command:

    sudo /usr/local/munki/makepkginfo -f /Path/To/Yo/Installed/App/Bruh

    This solves many an install array problem. I use it (mostly) for CC app deployment as touched on here:

    https://foigus.wordpress.com/2014/12/05/distributing-adobe-cc-2014-via-munki/

  8. I generally use makepkginfo -f when I can, but as I mention above doing the md5 hash on the file won’t work for FileMaker Pro, because updates and patches will change the hash. To know that it’s installed, I just want to know that the file exists.

  9. You should be using the CFBundleShortVersionString to manage what gets installed. If you install a FileMaker update (say 14.1 on a 14.0) munki won’t try to install 14.0 again because a new version of the application bundle exists.

    The md5checksum key is really only necessary when checking to see if a non-bundle-style file exists on a client. Otherwise logic will run on the CFBundleShortVersionStrings and they’ll will be used to determine what version of the app is installed.

    installs

    CFBundleIdentifier
    com.filemaker.client.pro
    CFBundleName
    FileMaker Pro
    CFBundleShortVersionString
    11.0.2
    CFBundleVersion
    11.0.2
    minosversion
    10.5.0
    path
    /Applications/FileMaker Pro 11/FileMaker Pro.app
    type
    application
    version_comparison_key
    CFBundleShortVersionString

Leave a Reply

Your email address will not be published. Required fields are marked *