Opened 7 years ago

Closed 7 years ago

#53982 closed defect (fixed)

libpurple @2.12.0: Tk 8.6 must be compiled with tcl.h from Tcl 8.6 or better

Reported by: arifsaha (S P Arif Sahari Wibowo) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version:
Keywords: haspatch Cc: ryandesign (Ryan Carsten Schmidt)
Port: libpurple

Description

While trying to install another package, I found that I cannot upgrade libpurple, apparently because, "Tk 8.6 must be compiled with tcl.h from Tcl 8.6 or better." Log file attached. Some info:

bash-3.2# uname -v
Darwin Kernel Version 13.4.0: Mon Jan 11 18:17:34 PST 2016; root:xnu-2422.115.15~1/RELEASE_X86_64
bash-3.2# port version
Version: 2.4.1
bash-3.2# port list active and 'tcl'
Warning: The 'list' action only shows the currently available version of each port. To see installed versions, use the 'installed' action.
tcl                            @8.6.6          lang/tcl
bash-3.2# port list active and 'tk'
Warning: The 'list' action only shows the currently available version of each port. To see installed versions, use the 'installed' action.
tk                             @8.6.6          x11/tk
bash-3.2# 

Attachments (2)

main.log (99.4 KB) - added by arifsaha (S P Arif Sahari Wibowo) 7 years ago.
libpurple build log
pidgin.diff (2.6 KB) - added by ryandesign (Ryan Carsten Schmidt) 7 years ago.

Download all attachments as: .zip

Change History (5)

Changed 7 years ago by arifsaha (S P Arif Sahari Wibowo)

Attachment: main.log added

libpurple build log

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

Cc: ryandesign added
Keywords: haspatch added
Owner: set to dbevans
Status: newassigned
Summary: Cannot upgrade libpurple, Tk 8.6 need Tcl 8.6libpurple @2.12.0: Tk 8.6 must be compiled with tcl.h from Tcl 8.6 or better

This occurs specifically because MacPorts tcl and tk 8.6 are installed. The configure script finds the macOS copy of tcl and tk 8.5 in /usr/lib:

:info:configure checking for tclConfig.sh... yes (/usr/lib/tclConfig.sh)
:info:configure checking Tcl version compatability... ok, 8.5
:info:configure checking for Tcl linkability... yes
:info:configure checking for tkConfig.sh... yes (/usr/lib/tkConfig.sh)
:info:configure checking for Tk linkability... yes

But then later the build phase erroneously tries to use tk.h from MacPorts in /opt/local/include, which is a different version:

:info:build In file included from tcl.c:28:
:info:build /opt/local/include/tk.h:21:3: error: Tk 8.6 must be compiled with tcl.h from Tcl 8.6 or better
:info:build #       error Tk 8.6 must be compiled with tcl.h from Tcl 8.6 or better
:info:build         ^

You won't see this problem if you don't have MacPorts tcl and tk active. In that case, libpurple will just link with macOS tcl and tk.

One solution is to add a dependency on MacPorts tcl and tk and add configure flags to tell libpurple how to find it. This solves the problem for me and I'll attach that patch.

I don't know how important tcl/tk support is in libpurple. If it's not important, another option would be to disable tcl/tk support normally, and offer a variant to enable it. Since other ports (including finch and pidgin) depend on libpurple, it's probably best to keep it enabled all the time, unless there are serious problems with doing so.

Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: pidgin.diff added

comment:2 Changed 7 years ago by mf2k (Frank Schima)

@arifsaha: FYI, see the wiki about port list. To see what you actually have installed, use this command instead:

$ port installed tcl* tk*
The following ports are currently installed:
  tcl @8.6.6_1+corefoundation+threads (active)
  tk @8.6.6_0+x11 (active)

comment:3 Changed 7 years ago by mf2k (Frank Schima)

Resolution: fixed
Status: assignedclosed

In 2ba920c30585012d602f7cb5e4b1eb8871e9dd16/macports-ports:

pidgin: Fix libpurple build with Macports tcl tk installed

Closes: #53982

Note: See TracTickets for help on using tickets.