Skip to main content

Never judge a flat/signed PKG by its cover...

preinstall script:

#!/bin/sh

rm -Rfv "/Library/Frameworks/XRiteDevice.framework"

# uninstall old xrd
echo "Uninstalling legacy xrd..."

dscl . -delete /Groups/com.xrite.device.group.xrd > /dev/null 2>&1
dscl . -delete /Users/com.xrite.device.user.xrd > /dev/null 2>&1

files=(  "/Library/LaunchDaemons/com.xrite.device.message.plist" 
 "/Library/LaunchDaemons/com.xrite.device.xritelegacyd.plist" 
 "/Library/LaunchDaemons/com.xrite.device.restoreuserxrd.plist" 
 "/Library/LaunchDaemons/com.xrite.device.colormunki.plist" 
 "/Library/LaunchDaemons/com.xrite.device.goldeneye.plist" 
 "/Library/LaunchDaemons/com.xrite.device.i1.plist" 
 "/Library/LaunchDaemons/com.xrite.device.i1d.plist" 
 "/Library/LaunchDaemons/com.xrite.device.i1d3.plist" 
 "/Library/LaunchDaemons/com.xrite.device.i1isis.plist" 
 "/Library/LaunchDaemons/com.xrite.device.xritedeviced.plist" 
 "/Library/LaunchDaemons/com.xrite.device.restorexrd.plist" 
 "/Library/LaunchAgents/com.xrite.device.message.plist" 
 "/Library/LaunchAgents/com.xrite.device.xritelegacyd.plist" 
 "/Library/LaunchAgents/com.xrite.device.restoreuserxrd.plist" 
 "/Library/LaunchAgents/com.xrite.device.colormunki.plist" 
 "/Library/LaunchAgents/com.xrite.device.goldeneye.plist" 
 "/Library/LaunchAgents/com.xrite.device.i1.plist" 
 "/Library/LaunchAgents/com.xrite.device.i1d.plist" 
 "/Library/LaunchAgents/com.xrite.device.i1d3.plist" 
 "/Library/LaunchAgents/com.xrite.device.i1isis.plist" 
 "/Library/LaunchAgents/com.xrite.device.xritedeviced.plist" 
 "/Library/LaunchAgents/com.xrite.device.restorexrd.plist" 
 "/Library/Application Support/X-Rite/Devices/ColorMunkiDeviceService.app" 
 "/Library/LaunchDaemons/com.xrite.device.colormunki.plist" 
 "/Library/Application Support/X-Rite/Devices/GoldenEyeDeviceService.app" 
 "/Library/LaunchDaemons/com.xrite.device.goldeneye.plist" 
 "/Library/LaunchDaemons/com.xrite.device.i1d3.plist" 
 "/Library/Application Support/X-Rite/Devices/i1DisplayDeviceService.app" 
 "/Library/LaunchDaemons/com.xrite.device.i1d.plist" 
 "/Library/Application Support/X-Rite/Devices/i1iSisDeviceService.app" 
 "/Library/LaunchDaemons/com.xrite.device.i1isis.plist" 
 "/Library/Application Support/Developer/Shared/Xcode/CustomDataViews/XRiteDeviceDataFormatter.bundle" 
 "/Library/Application Support/X-Rite/Devices/message.app" 
 "/Library/Application Support/X-Rite/Devices/xrdd" 
 "/Library/Application Support/X-Rite/Devices/xritelegacyd.app" 
 "/Library/Application Support/X-Rite/Devices/xritedeviced" 
 "/Library/LaunchAgents/com.xrite.device.message.plist" 
 "/Library/LaunchAgents/com.xrite.device.xritelegacyd.plist" 
 "/Library/LaunchDaemons/com.xrite.device.xritedeviced.plist" 
 "/Library/PreferencePanes/X-Rite Device Services.prefPane" 
 "/Library/Application Support/X-Rite/Devices/i1ProDeviceService.app" 
 "/Library/LaunchDaemons/com.xrite.device.i1.plist" 
 "/Library/Application Support/X-Rite/Devices/ColorMunkiDeviceService.app" 
 "/Library/LaunchDaemons/com.xrite.device.colormunki.plist" 
 "/Library/Application Support/X-Rite/Devices/message.app" 
 "/Library/LaunchAgents/com.xrite.device.message.plist" 
 "/Library/Receipts/ColorMunkiNinja.pkg" 
 "/Library/Receipts/message.pkg" 
 "/Library/Receipts/ninja.pkg" 
 "/Library/Receipts/XRD GoldenEye.pkg" 
 "/Library/Receipts/XRD Manager.pkg" 
 "/Library/Application Support/X-Rite/Devices" 
 "/Library/Application Support/X-Rite/Devices/ColorMunki.xrdevice" 
 "/Library/Application Support/X-Rite/Devices/i1d2.xrdevice" 
 "/Library/Application Support/X-Rite/Devices/i1d3.xrdevice" 
 "/Library/Application Support/X-Rite/Devices/i1IO.xrdevice" 
 "/Library/Application Support/X-Rite/Devices/i1iSis.xrdevice" 
 "/Library/Application Support/X-Rite/Devices/i1Pro.xrdevice" 
 "/Library/Application Support/X-Rite/Devices/rm200.xrdevice" 
 "/Library/Receipts/comxritedevicerestoreuxrd.pkg" 
 "/Library/Receipts/comxritedevicerestorexrd.pkg" 
 "/Library/Receipts/comxritedevicexrdd.pkg" 
 "/Library/Receipts/xritedevice.pkg" 
 "/Library/Receipts/xriteDeviceServices.pkg" 
 "/Library/LaunchAgents/com.xrite.device.restoreuxrd.plist" 
 "/Library/LaunchDaemons/com.xrite.device.restorexrd.plist" 
 "/Library/Logs/X-Rite/Device" 
 "/var/xrite" )

for ix in ${!files[*]}
do
    printf "removing '%s'
" "${files[$ix]}"
    rm -Rfv "${files[$ix]}"

done

exit 0

postinstall script:

#!/bin/sh

echo "Updating launch agent permissions..."
chown root:wheel "/Library/LaunchAgents"
chmod 755 "/Library/LaunchAgents"
chown root:wheel "/Library/LaunchAgents/com.xrite.device.softwareupdate.plist"
chmod 644 "/Library/LaunchAgents/com.xrite.device.softwareupdate.plist"

echo "Updating launch daemon permissions..."
chown root:wheel "/Library/LaunchDaemons"
chmod 755 "/Library/LaunchDaemons"
chown root:wheel "/Library/LaunchDaemons/com.xrite.device.xrdd.plist"
chmod 644 "/Library/LaunchDaemons/com.xrite.device.xrdd.plist"

echo "Creating symlink in /Library/Frameworks..."
ln -Ffs "/Library/Application Support/X-Rite/Frameworks/XRiteDevice.framework" "/Library/Frameworks/XRiteDevice.framework"

exit 0

I hope whoever PANTONE hired to make the PKG took the money and ran.

"UAT? We don't need no stinkin' UAT!" - AndyM from X-Rite

bash-3.2# ls -lF /Applications/PANTONE Color Manager.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj
lrwxr-xr-x  1 macadmin  staff  84 Nov 27 06:19 /Applications/PANTONE Color Manager.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj@ -> /Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj
bash-3.2# ls -lF /Applications/PANTONE Color Manager.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr_CA.lproj 
lrwxr-xr-x  1 macadmin  staff  84 Nov 27 06:19 /Applications/PANTONE Color Manager.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr_CA.lproj@ -> /Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj

"Lack of oversight is a terrible thing, and cheaper too." - Bean Counters at X-Rite

"No problem, let's give the user (every stinking last one of them, since we do everything in the User's domain) lots of dialog boxes to compensate!" - Project Manager at X-Rite














Definitely would be better to have one person suffer through this, and then distribute the updated PANTONE libraries.

Thanks to @mosen and @foigus on the #adobe Slack channel


Snapshot works, btw, we removed the Launch Agent (to disable auto-updates).

We use an After script in the policy to load the Launch Daemon: launchctl load /Library/LaunchDaemons/com.xrite.pantonecolormanager.plist (scroll up for the dirty details on that bugger).

The content of the Jamf Composer DMG, we enabled FUT and FEU even though the license/activation appears to be per-user (not per computer):


I downloaded the v3 colorbooks and distributed with casper. Trust me, if you distribute the stock colorbooks someone will find a color that isn't in there. You will need to distribute updated colorbooks with new deployments of Adobe CC, the CC color books are out of date.


I just had a user ask for this for a project. Any idea how to allow it to export the color pallets without asking for admin rights? all my users are standard users. I just found out about this today so haven't had time to dig into it.