Opened 7 years ago

Closed 6 years ago

#45444 closed defect (fixed)

tk: runtime version check fails on Yosemite

Reported by: seh@… Owned by: larryv (Lawrence Velázquez)
Priority: Normal Milestone:
Component: ports Version: 2.3.1
Keywords: yosemite Cc: radaroutthere@…, inyeollee, reg6@…, sean.connell@…, howarth@…, promac@…, mww@…, iaindhay@…
Port: tk

Description (last modified by ryandesign (Ryan Schmidt))

After upgrading to Mac OS Yosemite, I find that wish fails to start (when invoked via gitk) due to a failure in checking the operating system version:

wish[19322]: WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.0 instead of 10.10.0. Use NSProcessInfo's operatingSystemVersion property to get correct system version number.

Find a Mac OS crash report attached.

Attachments (1)

wish8.6_2014-10-18-092720_Spindle.crash (37.1 KB) - added by seh@… 7 years ago.
Mac OS crash report for wish

Download all attachments as: .zip

Change History (18)

Changed 7 years ago by seh@…

Mac OS crash report for wish

comment:1 Changed 7 years ago by ryandesign (Ryan Schmidt)

Description: modified (diff)
Owner: changed from macports-tickets@… to mww@…
Summary: wish fails to start on Yosemite due to Gestalt version checktk: wish fails to start on Yosemite due to Gestalt version check

comment:2 Changed 7 years ago by ned-deily (Ned Deily)

Actually, I believe the Gestalt version check is non-fatal.

The critical issue that causes the crash is a now faulty version check in Tk's macosx/tkMacOSXInit.c which results in the message:

Mac OS X 10.10000 or later required !

I have opened a Tk bug for this problem: https://core.tcl.tk/tk/tktview?name=1d37c3e166. Note that this problem applies to all users of Cocoa Tk (+quartz variant), like Python's IDLE or other Tkinter-based applications. They are all totally broken. However, this issue does not affect the +x11 variant of Tk.

comment:3 Changed 7 years ago by radaroutthere@…

Cc: radaroutthere@… added

Cc Me!

comment:4 Changed 7 years ago by radaroutthere@…

Just noting that tickets #45530 and #45532 are also caused by this issue.

Thanks for opening the Tk bug!

comment:5 Changed 7 years ago by inyeollee

Cc: inyeol.lee@… added

Cc Me!

comment:6 Changed 7 years ago by larryv (Lawrence Velázquez)

Cc: reg6@… sean.connell@… howarth@… added

Has duplicates #45530 and #45532.

comment:7 Changed 7 years ago by promac@…

Cc: promac@… added

Cc Me!

comment:8 Changed 7 years ago by radaroutthere@…

The official fix for this issue has now been written - http://core.tcl.tk/tk/fdiff?v1=64b03ec85cc27fe4de1c03503ffdb2c89f598b3a&v2=7223ddf5d435778396ac2eef3f77f283b5c06394&sbs=1

So either this can be applied as a patch, or the Tk / Tcl ports could be upgraded to the 8.6.3 rc.

comment:9 Changed 7 years ago by larryv (Lawrence Velázquez)

Cc: mww@… added
Owner: changed from mww@… to larryv@…
Status: newassigned

Is this a compile-time or run-time problem?

comment:10 Changed 7 years ago by radaroutthere@…

If I'm following correctly, the "Mac OS X 10.10000 or later required !" error message is generated at run-time, yes.

comment:11 Changed 7 years ago by larryv (Lawrence Velázquez)

I’ve applied the upstream fix in r127151. Could someone verify that 8.6.1_2 works properly?

comment:12 in reply to:  10 Changed 7 years ago by davedgd@…

Replying to radaroutthere@…:

If I'm following correctly, the "Mac OS X 10.10000 or later required !" error message is generated at run-time, yes.

Correct:

http://i.imgur.com/2kFRnEZ.png

comment:13 Changed 7 years ago by radaroutthere@…

Yes, the patch is working correctly. Thanks very much!

comment:14 Changed 7 years ago by promac@…

Yes. It is working for me too.

Just a curiosity. Why did you use a

# Remove when updated to 8.6.3 (#45444). patchfiles-append fix-yosemite-version-checking.patch

Just to make sure it was the last patch applied?

Thanks.

comment:15 in reply to:  14 Changed 7 years ago by larryv (Lawrence Velázquez)

Summary: tk: wish fails to start on Yosemite due to Gestalt version checktk: runtime version check fails on Yosemite

Replying to promac@…:

Just a curiosity. Why did you use a

# Remove when updated to 8.6.3 (#45444).
patchfiles-append   fix-yosemite-version-checking.patch

To avoid changing other lines in the Portfile. I don’t like when svn blame tells me that line x was last changed in changeset y, only to find out that that all changeset y did was append a backslash or replace tabs with spaces. It’s undeniably unavoidable in many cases, but I try to avoid it when I can. For instance, I commit aesthetic changes before functional ones, so that the functional changesets all show up in svn blame.

In this case, I just added two new lines without touching anything else. When 8.6.3 shows up, these two lines just get deleted. Nice and clean.

comment:16 Changed 7 years ago by iaindhay@…

Cc: iaindhay@… added

Cc Me!

comment:17 Changed 6 years ago by larryv (Lawrence Velázquez)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.