#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