Adobe should fire their Acrobat Pro DC and Acrobat Reader DC teams (put Karl Gibson in charge!)

donmontalvo
Esteemed Contributor III

91654e6c12d24b8baa06a45662db90ac
Adobe must have lost a competent person and hired a newbee to head up the Adobe DC team.

This new versioning system is completely insane. But why am I not surprised?.

EA to identify Acrobat Reader DC (Continuous) 15.010.20056 thru 17.x, so we can deploy patches without inadvertently rolling anyone back. Ugh.

Any suggestions to shorten this is most welcome...

...[snip]...
...[snip]...
...[snip]...

EDIT: Removing the long list of "Like" to avoid confusion, after getting pinged about it.

--
https://donmontalvo.com
1 ACCEPTED SOLUTION

owen_hael
New Contributor III

More python-ey way of doing the same thing as the script above.

https://gist.github.com/opragel/50c47c7c9c9100e3b1dd#file-ea_adobe_acrobat_dc_versioncheck-py

#!/usr/bin/python
"""
This script checks whether the installed version of Adobe Acrobat DC is
equal, less, or more than the target version defined by APP_TARGET_VERSION
and reports the result in Casper Suite extension attribute style.
T = Local app version is equal to provided current version
N = Local app version is newer than provided current version
F = Local app version is less than provided current version
N/A = Local app plist was not found at provided path
"""

import os.path
import plistlib
from pkg_resources import parse_version

APP_PATH = "/Applications/Adobe Acrobat DC/Adobe Acrobat.app"
APP_VERSION_KEY = "CFBundleShortVersionString"
APP_TARGET_VERSION = "15.010.20059"


def get_version_check_result(app_path, app_version_key, app_target_version):
    """
    Reports T if the local app version is equal to target version, F if the
    local app version is less than target version, N if the local app
    version is greater than target version, and N/A if the plist is not found.
    """
    app_plist_path = app_path + "/Contents/Info.plist"
    if not os.path.isfile(app_plist_path):
        version_check_result = "N/A"
    else:
        app_info_plist = plistlib.readPlist(app_plist_path)
        app_version = app_info_plist[app_version_key]
        if parse_version(app_target_version) == parse_version(app_version):
            version_check_result = "T"
        elif parse_version(app_target_version) < parse_version(app_version):
            version_check_result = "N"
        else:
            version_check_result = "F"
    return version_check_result


def main():
    """ Executes script functions. """
    result = get_version_check_result(APP_PATH,
                                      APP_VERSION_KEY,
                                      APP_TARGET_VERSION)
    print '<result>%s</result>' % result

if __name__ == "__main__":
    main()

View solution in original post

43 REPLIES 43

donmontalvo
Esteemed Contributor III

@mscottblake wow, totally missed your post! Nice article, but doesn't seem to give granular version information. The goal of the above is to enable a team of people (who are at varying degrees of capability) the ability to ensure proper scope for a given update release.

--
https://donmontalvo.com

donmontalvo
Esteemed Contributor III

OK, circling back with fresh eyes, we found a much more manageable/sustainable way to build logic into Smart Computer Groups to compensate for Adobe's incredibly convoluted versioning string for DC products.

Since we know:

xx.xxx.20xxx = Continuous Track xx.xxx.30xxx = Classic Track

...and since Adobe to their credit #CoughCough keeps historical version information on their FTP server:

URL: [ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC](ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC)

ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/misc/AdobeCustomizationWizard1500720033_DC.dmg ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1500820082 ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1500920069 ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1500920077 ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1501020056 ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1501020059 ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1501020060 ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1501620039 ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1501620041 ftp://ftp.adobe.com//pub/adobe/acrobat/mac/AcrobatDC/1501620045

...we should only need to use their released versions for logic:

15.007.20033 15.008.20082 15.009.20069 15.009.20077 15.010.20056 15.010.20059 15.010.20060 15.016.20039 15.016.20041 15.016.20045

So, if we are pushing 15.010.20056, this is the simplest, and most manageable/sustainable, way to avoid rollback, is to exclude:

Version is 15.010.20056 (or) Version is 15.010.20059 (or) Version is 15.010.20060 (or) Version is 15.016.20039 (or) Version is 15.016.20041 (or) Version is 15.016.20045

Thank goodness I'm hypoglycemic, or Adobe would have drove me to drinking by now. :)

PS, Adobe should still fire their dev team, or at least have them all report under @kagibson. ;)

HTH,
Don

--
https://donmontalvo.com

msnowdon
Contributor

Is there a way to suppress the welcome screen and make Adobe Reader the default viewer? I found the plist but it's rather long and Im having trouble finding the key for the welcome screen. I don't want to replace the entire plist file, just that particular key.

donmontalvo
Esteemed Contributor III

@msnowdon take a look at Adobe's KB article.

PS, maybe post defaults read /path/to/relevant.plist so we can have a look?

Don

--
https://donmontalvo.com