Opened 13 years ago
Closed 12 years ago
#31995 closed enhancement (fixed)
tcl: enable CoreFoundation
Reported by: | marshall.perrin@… | Owned by: | mww@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.3 |
Keywords: | Cc: | ||
Port: | tcl |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
This patch adds a new variant +corefoundation to tcl, which enables building with CoreFoundation support. This is related to the outstanding ticket #22954, which has a patch file to enable CoreFoundation but not as a variant. That solution was never merged into the tcl port, which means that the problem described in #22954 reoccurs with every update to the tcl port (e.g. I just had to re-patch the portfile for the Nth time due to the upgrade to 8.5.11 today).
Creating a variant for corefoundation will fix this problem once and for all.
Attachments (1)
Change History (9)
Changed 13 years ago by marshall.perrin@…
Attachment: | tcl.corefoundation.patch added |
---|
comment:1 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|---|
Owner: | changed from macports-tickets@… to mww@… |
comment:2 Changed 13 years ago by marshall.perrin@…
Good question! I only assumed there must be some reason not to do it all the time, because otherwise why had the patch in #22954 from almost two years ago never been applied onto the official portfile? Someone went to the trouble of explicitly adding --disable-corefoundation to the tcl portfile back in the past and I don't want to second guess other folks' use cases.
But certainly from my own perspective I'd say enable it all the time, yes.
comment:4 Changed 12 years ago by jmroot (Joshua Root)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Summary: | tcl: add new variant +corefoundation → tcl: enable CoreFoundation |
comment:5 Changed 12 years ago by howarth@…
This change may have caused http://trac.macports.org/ticket/35400 on Mountain Lion.
comment:6 Changed 12 years ago by howarth@…
Resolution: | fixed |
---|---|
Status: | closed → reopened |
It was a mistake to default tcl to --enable-corefoundation as CoreFoundation is incompatible with code using fork() without immediately calling exec().
See...
http://boredzo.org/blog/archives/2010-09-04/singleton-repository#comment-332147
http://objectivistc.tumblr.com/post/16187948939/you-must-exec-a-core-foundation-fork-safety-tale
http://old.nabble.com/Fork-vs.-exec-in-RC-5-of-Tk-8.5-td14390131.html
Since both --enable-threads and --enable-corefoundation are incompatible with fork(), it makes much more
sense to just move --enable-corefoundation into the threads variant instead.
comment:7 Changed 12 years ago by howarth@…
As posted in reply to complaints about the unfixed breakage from this supposed fix to the pymol package
http://trac.macports.org/ticket/35400[[BR]]
The tcl maintainers have broken pymol (actually most likely the required blt package) by their ill-considered removal of
--disable-corefoundation. As I have explained numerous times, the Core Foundation support in tcl is likely providing some level
of thread support which is incompatible with tcl programs that use fork() without exec(). The sensible fix is already attached to
this bug report as well as http://trac.macports.org/ticket/31995 where the removal of --disable-corefoundation. is moved to
the threads variant of tcl. Unfortunately the macports tcl maintainers seem entirely disinterested in fixing this breakage.
Why is making a variant better than doing it all the time, as shown in the patch in #22954?