CFBundleVersion and version_comparion_key

11 views
Skip to first unread message

lorisarvendu

unread,
Mar 23, 2026, 11:05:47 AM (2 days ago) Mar 23
to munki-discuss
I have version 2026.1.0 of an app installed, and v.2026.1.4 has been released.  When I try to deploy it, Munki only uses the CFBundleShortVersion, which is 2026.1 in both cases, so detects it as already installed.  I have tried changing version_comparison_key to CFBundleVersion.(which is a unique string) in the Installs array but no go.  Is this a limitation of Munki or am I missing something?  Munki client version is 7.0.1.5340

Gregory Neagle

unread,
Mar 23, 2026, 11:30:38 AM (2 days ago) Mar 23
to munki-...@googlegroups.com
We’ll need more details to help.

You write:
I have tried changing version_comparison_key to CFBundleVersion.(which is a unique string) in the Installs array

Did you rebuild catalogs after making an edit to a pkginfo file?

You say it is a “unique string”, but it is it a string that might actually be useful for version comparison between version 2026.1.0 of this app and 2026.1.4 of this app?
IOW, what is the _value_ of this string for version 2026.1.0 of this app, and what is the value of the string for version 2026.1.4?

(Side note: curious why you are using Munki 7.0.1.5340. I’d recommend updating to at least 7.0.8, there have been many bug fixes since October 2025.)

-Greg

On Mar 23, 2026, at 8:05 AM, lorisarvendu <lorisa...@gmail.com> wrote:

I have version 2026.1.0 of an app installed, and v.2026.1.4 has been released.  When I try to deploy it, Munki only uses the CFBundleShortVersion, which is 2026.1 in both cases, so detects it as already installed.  I have tried changing version_comparison_key to CFBundleVersion.(which is a unique string) in the Installs array but no go.  Is this a limitation of Munki or am I missing something?  Munki client version is 7.0.1.5340

--
You received this message because you are subscribed to the Google Groups "munki-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to munki-discus...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/munki-discuss/a4972b8c-94f8-4857-83fd-aeebd1a8ff5an%40googlegroups.com.

lorisarvendu

unread,
Mar 23, 2026, 12:45:30 PM (2 days ago) Mar 23
to munki-discuss
Hi Greg.  Here's the Bundle ID for the older app - version 2026.1.0

<key>CFBundleIdentifier</key>
<string>net.maxon.cinema4d</string>
<key>CFBundleName</key>
<string>Cinema 4D</string>
<key>CFBundleShortVersionString</key>
<string>2026.1</string>
<key>CFBundleVersion</key>
<string>9518b3bc2c4deafd6e9e915bc94d5f7e6ea1e7a3</string>
<key>minosversion</key>
<string>10.13.0</string>
<key>path</key>
<string>/Applications/Maxon Cinema 4D 2026/Cinema 4D.app</string>
<key>type</key>
<string>application</string>
<key>version_comparison_key</key>
<string>CFBundleShortVersionString</string>

Here's 2026.1.4:

<key>CFBundleIdentifier</key>
<string>net.maxon.cinema4d</string>
<key>CFBundleName</key>
<string>Cinema 4D</string>
<key>CFBundleShortVersionString</key>
<string>2026.1</string>
<key>CFBundleVersion</key>
<string>8996f427a8f1cabe130c73907074478369bfeb23</string>
<key>minosversion</key>
<string>10.13.0</string>
<key>path</key>
<string>/Applications/Maxon Cinema 4D 2026/Cinema 4D.app</string>
<key>type</key>
<string>application</string>
<key>version_comparison_key</key>
<string>CFBundleShortVersionString</string> Why are we still on munki 7.1? Mainly due to a very big upheaval in August last year and we're still picking up the pieces. I need to sort out the autopkg recipe.

lorisarvendu

unread,
Mar 23, 2026, 12:46:15 PM (2 days ago) Mar 23
to munki-discuss
Sorry, yes, we do update catalogs each time.

Alan

unread,
Mar 23, 2026, 12:51:48 PM (2 days ago) Mar 23
to munki-...@googlegroups.com
Are 9518b3bc2c4deafd6e9e915bc94d5f7e6ea1e7a3 and 8996f427a8f1cabe130c73907074478369bfeb23 the actual version strings? Those look like some kind of hash. In any case, newer version of 8996f427a8f1cabe130c73907074478369bfeb23 is a lower version string than 9518b3bc2c4deafd6e9e915bc94d5f7e6ea1e7a3

Gregory Neagle

unread,
Mar 23, 2026, 1:05:39 PM (2 days ago) Mar 23
to munki-...@googlegroups.com
Sadly it doesn’t look like whatever the vendor is shoving in CFBundleVersion is useful for version comparison. It looks more like a hash value, rather than something that _goes up_, like a version should.

$ swift repl

Welcome to Apple Swift version 6.2.4 (swiftlang-6.2.4.1.4 clang-1700.6.4.2).

Type :help for assistance.

  1> "8996f427a8f1cabe130c73907074478369bfeb23" > "9518b3bc2c4deafd6e9e915bc94d5f7e6ea1e7a3"

$R0: Bool = false

  2>  


$ munki-python

Python 3.12.2 (v3.12.2:6abddd9f6a, Feb  6 2024, 17:02:06) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> "8996f427a8f1cabe130c73907074478369bfeb23" > "9518b3bc2c4deafd6e9e915bc94d5f7e6ea1e7a3"

False

>>> from munkilib.pkgutils import MunkiLooseVersion

>>> MunkiLooseVersion("8996f427a8f1cabe130c73907074478369bfeb23") > MunkiLooseVersion("9518b3bc2c4deafd6e9e915bc94d5f7e6ea1e7a3")

False

>>> 


IOW, the _old_ app’s CFBundleVersion string is interpreted as higher/newer than the CFBundleVersion string of the newer app.

So neither CFBundleShortVersionString nor CFBundleVersion is useful for determining that whatever is installed is _lower_ than what Munki is considering for install.

I’d be speaking with the vendor, impressing upon them the need for accurate and useful version information in the app’s plist.

In the meantime, you’ll need to either use an installs array pointing to the executable at /Applications/Maxon Cinema 4D 2026/Cinema 4D.app/Contents/MacOS/Cinema 4D (or whatever)
or possibly write a version_script or installcheck_script.

-Greg


lorisarvendu

unread,
Mar 23, 2026, 1:30:52 PM (2 days ago) Mar 23
to munki-discuss
Thanks for that. It doesn't surprise me that Maxon aren't creating the BundleID correctly, as they only really care about their personal customers.  Although they're happy to take our cash, getting their apps deployed and working in an Enterprise environment is a nightmare!  The Short version does work very well, providing  you're going from 2026.1 to 2026.2 (for example). This is the first time I've had a minor update like this.  We have had the same issue with Ivanti's Secure Access VPN software when they had a minor update. We fudged that by also deploying a text file to a subfolder of /opt and using the hash value of that for detection instead.  I just wondered if I was missing something obvious.  Our autopkg is a bit screwed up so I'll be re-doing that and getting Munkitools updated.  Ta for your help.
Reply all
Reply to author
Forward
0 new messages