foigus' Notes

Mostly OS X Admin Related

Packaging Adobe CC 2014 Applications

While packaging the various Adobe Creative Cloud (CC) 2014 applications I collected some tidbits of information.  Hopefully they’ll be useful to others.

Flexibility with installing combinations of software, including combinations that are not currently part of our purchased licenses
Tomorrow a Photoshop-Lightroom bundle could be purchased, or even a bundle that doesn’t exist today.  I want to be ready to support current and future software combinations with minimal rework.

Support for CC “non-Complete” suites
Enterprise CC licensing does not necessarily mirror the consumer and Teams “Complete” and “Single App” licensing. Licensing can be for non-Complete suites, for example mimicking the “Design Standard” or “Design and Web Premium” suites of the CS6 era.

Conversion of CC application licensing between unserialized (authenticated) and serialized licenses without uninstallation and reinstallation
Serialized installation is available for Enterprise CC licenses (and possibly some other CC license types). It comes with the advantage of not requiring sign-in to use the software, but the limitation of being unable to access Adobe’s cloud-based services and not being able to easily install CC software on a home computer.  We support a significant number of walkup Macs for intermittent use by a variety of independent contractors and temporary employees, and using authentication-based software (such as CC or Office 365-licensed Office 2011) on these computers does not provide for a smooth user experience.  Nor is it reasonable to authorize and deauthorize Adobe CC license entitlements for these users. Thus a method of serializing and unserializing CC software without having to uninstall and reinstall it is necessary.

Software serial numbers do not necessarily match up to licenses
The serial numbers provided are not aligned with the software licenses purchased, meaning a particular serial number may be used across multiple CC licenses. For example, installing both InCopy CC and CC video applications requires using the same serial number for both InCopy and the video applications.  A software license may be unassigned from a computer and the software uninstalled (such as InCopy in the previous example), but the serial number needs to remain to keep other installed software serialized. Only the last removed piece of software with a particular serial number should actually remove the serial number.

CC application marketing version numbers do not match their actual version numbers
During the Creative Suite (CS) era the release timing of programs marched in lockstep–a boxed CS release nearly always included a new x.0 version of each application. This is not true for CC–for example when CC updates were released on October 6 2014, Dreamweaver CC 2014.1 (version 15.0) was a completely separate application that installed alongside Dreamweaver CC 2014 (version 14.x).  However Photoshop CC 2014.2 (version 15.2) was an update to Photoshop CC 2014 (version 15.0).  Thus it’s no longer safe to assume the marketing-named something-dot-number (e.g. CC 2014.1) releases are going to be updates–they could be completely new versions. Start with this link to get an overview, but pay special attention to the actual version numbers of the applications installed.

Installing Creative Cloud Packager (CCP)
Downloading CCP from Adobe can prove challenging, since CCP isn’t provided outside of a CC agreement. Adobe’s notes on the subject are here, under the heading “Where do I download Creative Cloud Packager?”  If you don’t have access to CCP, contact your Adobe or internal organization CC representative for access through the Adobe Enterprise Dashboard or If your organization doesn’t have a CC agreement, see if an Adobe representative might be able to grant access.

“Named User” CCP packages
If available under your CC license, a “Named User” installation provides the most flexibility as it does not contain a license and thus functions as a trial installation. A “Named User” installation of a CC application demands authentication from a CC-authorized Adobe ID (or SAML-based authentication when available). The “Named User” installation can be serialized (and unserialized) with the “Create License File” option in CCP. However note I can only speak to the CC for Enterprise plan–other plans (education, teams) might not be able to convert a trial to a licensed installation. Consult with appropriate Adobe contacts for more information.

Create a separate CCP packages for each application
When creating CCP packages multiple applications can be included in a single pkg. While convenient to only have to install one pkg, there are a few considerations:

  • If applications A, B, C, and D are packaged together and in the future only A, or B and C, or B and D, or some other combination is needed (due to new single application CC licenses or just the desire to use less disk space), new CCP pkgs will be necessary
  • Related to the above, if multiple applications are packaged via CCP the associated uninstallation pkgs will uninstall multiple applications
  • It’s more straightforward to tie future CCP “update” packages* to single application CCP pkgs, rather than a combination pkg where the included applications aren’t as clear

*CCP supports an “update-only” pkg, which only installs an application update such as Photoshop 2014.2.1 (version 15.2.1). To create one of these, only check the update when building the pkg.  Note that update-only pkgs do not generate an uninstall pkg and rely on the uninstaller from the original CCP pkg.

Unless it’s anticipated an organization will never need to change its CC installation strategy it’s better to build in the flexibility at the beginning. Let a software distribution system handle bundling application installations. Note it is against the license agreement to split a “suite” license up by installing parts of the suite on multiple computers (although this only comes into play with serialized installations of CC). It is a license violation to install Photoshop on one computer, InDesign on another computer, and Illustrator on another computer and consider it one “Complete” license. In this case, those three installations would consume three licenses.

Since CCP caches software installers once downloaded, it might be a good idea to build a pkg all available CC software first and then build each individual pkg.  Once CCP caches the software, subsequent pkgs are created much more quickly.

Serialization pkg
Since there’s a need to serialize and unserialize applications, a serialization pkg is needed. This is one place where CCP requires more work since CCP doesn’t output a pkg but rather a collection of command-line tools. And since serialization will need to be removed, there will need a plan to unserialize as well.  The CCP-output serialization includes four files:

  • AdobeSerialization
  • RemoveVolumeSerial
  • helper.bin
  • prov.xml

If AdobeSerialization is run (with administrative privileges) it will look for a provisioning file (prov.xml) in the same directory as the AdobeSerialization binary.  If found, the serial number will be applied. If RemoveVolumeSerial is run volume serial numbers will be removed, but note this may include volume serial numbers for other products beyond what’s included in prov.xml. Additionally, Adobe support indicated that if additional CC products are installed that use the same serial number (e.g. adding InCopy to an already-serialized suite of video applications) AdobeSerialization will need to be re-run.

Given all of this, here’s the structure of my serialization pkgs:

  • Use a Package ID that includes the name of the actual serial number being used (the reasoning for the latter part of the naming requirement will become clearer in the Munki-focused CCP post).
  • Install all CCP-generated serialization files to a common directory
  • Name this common directory for the software being serialized
  • During pkg installation, run a postflight script that runs “AdobeSerialization” from the directory where AdobeSerialization is installed

A couple examples:

  • pkg: Adobe CC Complete Serial – Video Serial Number
  • Install Directory: /Library/Adobe Licensing/Adobe CC Complete Serial – Video Serial Number
  • Package ID: com.organization.AdobeCCCompleteSerial-VideoSerialNumber
  • pkg: Adobe InCopy CC Serial – Video Serial Number
  • Install Directory: /Library/Adobe Licensing/Adobe InCopy CC Serial – Video Serial Number
  • Package ID: com.organization.AdobeInCopyCCSerial-VideoSerialNumber

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: