Avid Unity MediaNetwork Client on Yosemite

Although Unity MediaNet reached End of Support Date over two years ago (8/1/2013), some clients will not let things die. (Unity MediaNetwork Media Engine 16TB does have until 8/22/2016)

Here’s how to get Avid Unity MediaNetwork Client to install on Yosemite:
1. Get clean Avid Unity MediaNetwork Client 5.5.1 from Avid
2. Open the dmg and copy AvidUnityMediaNetworkClient_Fibre.mpkg out
3. cd into mpkg as root
4. Modify the following Info.plists (you have to change permissions to edit, chmod 777 Info.plist ; # then change back ; chmod 444 Info.plist):

AvidUnityMediaNetworkClient_Fibre.mpkg/Contents/Info.plist
AvidUnityMediaNetworkClient_Fibre.mpkg/Contents/Resources/Lion.pkg/Contents/Info.plist
AvidUnityMediaNetworkClient_Fibre.mpkg/Contents/Resources/wxPython2.9-osx-carbon-py2.6.pkg/Contents/Info.plist

I just stripped out the IFRequirementDicts, for example:

<key>IFRequirementDicts</key>
  <array>
    <dict>
      <key>LabelKey</key>
      <string>version</string>
      <key>Level</key>
      <string>requires</string>
      <key>SpecArgument</key>
      <string>sys2</string>
      <key>SpecType</key>
      <string>gestalt</string>
      <key>TestObject</key>
      <string>7</string>
      <key>TestOperator</key>
      <string>=</string>
    </dict>
  </array>

You could change these to work with the OS version but this makes it more flexible.

However, the Avid Unity MediaNet kext was not loading on startup so I had to create a LaunchDaemon, com.esp.avidMNload.plist, which gets put in /Library/LaunchDaemons/ with permissions root:wheel 644

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.esp.avidMNload</string>
    <key>ProgramArguments</key>
    <array>
      <string>/sbin/kextload</string>
      <string>/System/Library/Extensions/AvidUnityMN.kext</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>root</string>
  </dict>
</plist>