[MacPorts] #46733: Multiple definitons of flock TCL command cause problems, e.g., with restore_ports.tcl

MacPorts noreply at macports.org
Sun Feb 1 20:34:19 PST 2015


#46733: Multiple definitons of flock TCL command cause problems, e.g., with
restore_ports.tcl
--------------------+--------------------------------
 Reporter:  mta@…   |      Owner:  macports-tickets@…
     Type:  defect  |     Status:  new
 Priority:  Normal  |  Milestone:
Component:  base    |    Version:  2.3.99
 Keywords:          |       Port:
--------------------+--------------------------------
 When I ran restore_ports.tcl after upgrading to Yosemite it failed with
 the error

 {{{
 expected integer but got "-exclusive" obtaining lock on
 /opt/local/var/macports/registry/.registry.lock
     while executing
 "registry::exclusive_lock"
     (procedure "mportexec" line 32)
     invoked from within
 "mportexec $workername $install_target"
 Unable to execute target 'install' for port 'fftw-3-single': expected
 integer but got "-exclusive" obtaining lock on
 /opt/local/var/macports/registry/.registry.lock
     while executing
 "install_ports $operationList"
     (file "restore_ports/restore_ports.tcl" line 300)
 }}}

 I tracked this down to the fact that there are two definitions of the
 flock TCL command installed as part of MacPorts.  One is defined in
 TclX_FlockObjCmd which is in base/vendor/tclx8.4/generic/tclXflock.c.  The
 other is defined in FlockCmd which is in base/src/pextlib1.0/flock.c.
 Macports seems to want, and get, the latter one.  For some reason
 restore_ports sometimes, but not always, gets the other.

 Commenting out the call to TclX_FlockInit in Tclxcmd_Init which is in
 base/vendor/tclx8.4/generic/tclXinit.c seems to have fixed the problem.
 Unfortunately this isn't all that easy to do as part of the build since
 these files are installed unchanged from vendor archives.  Perhaps a new
 archive with the appropriate change needs to be part of the MacPorts
 package.

-- 
Ticket URL: <https://trac.macports.org/ticket/46733>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list