Yosemite incompatibility

Grr… Apple… Note this isn’t directly Xojo-related but I thought I’d ask anyway.

I have Packagemaker create my installers and it works pretty well. Although I’m encountering a problem. I set the OS requirement for 10.4 and higher. It’s not that important to do but I do it anyway. However it seems like Yosemite returns false on the check. Here’s the code in the distribution.dat file:

On Yosemite system.version.ProductVersion equals 10.10 - a string, I guess, with one dot, and it returns false. Whereas on previous OS versions it returns a two-dot string like ‘10.5.8’ or something. So, I guess according to Javascript - I guess the script interpreter - ‘10.10’ does not equal or is greater to ‘10.4.0’.

To fix it, all I had to do is change 10.4.0 to 10.04.0. Or of course I could eliminate that entire OS check, but I have installers out in the field still.

So this seems like a serious Java or Apple bug - how does one report this type of thing? And what is the problem - what system.version.ProductVersion returns (obviously should be 10.10.1 or something) or the comparison?

And who fixes it - Sun or Apple? I couldn’t find anything reported anywhere - everything talks about Yosemite-itself installation issues, not other things installing.

Yeah, it’s doing a string comparison there. You should really split that into its component parts and treat them as individual integers.

it is the result of a string compare.
if you change 10.4 to 10.04 be carefull : “10.4” is > to “10.04” this could lead to strange results
you need to extract the major version “10” as an integer, then compare integers
then extract the “4” or “10” as an integer too and then compare 4 to 10 and it will be ok

Thanks though, but please read my post - this isn’t me doing it, it’s Packagemaker.

I do regard this as a bug IMHO. system.version.ProductVersion produces a string in Yosemite that is not like the former returns, that was the subject of my post.

Obviously what I’ll do in the meantime is remove the OS check entirely. But my questions were how I could report such a bug.