#31225: expect: mkpasswd: can't find package Expect ---------------------------------------+------------------------------------ Reporter: arnaud.fortier@… | Owner: markd@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.0.3 Resolution: fixed | Keywords: Port: expect | ---------------------------------------+------------------------------------ Changes (by ryandesign@…): * status: new => closed * cc: kobayos@…, ryandesign@… (added) * resolution: => fixed Comment: I'm not sure why this problem occurs when running with the MacPorts tclsh, but I don't think we want to "fix" it by using the system tclsh, for all the usual reasons why we don't want to use system components. Based on the [comment:4 above information] that loading the script directly into expect (rather than running it through tclsh) works, I decided the fix would be to modify the scripts' shebang (#!) lines to reference /opt/local/bin/expect directly. It was then that I discovered that the scripts' shebang lines are rather convoluted: {{{ #!/bin/sh # -*- tcl -*- # The next line is executed by /bin/sh, but not tcl \ exec tclsh "$0" ${1+"$@"} }}} This means the script is initially run with sh, and is then relaunched with tclsh. I don't understand why this song and dance is performed, so I patched each of the scripts to just call expect directly, tried a few of the scripts and verified that they no longer exhibit this problem, and committed it as r92644. It was only after committing this that I realized that during the destroot process some of the scripts' shebang lines got transformed again, now looking like: {{{ #!/bin/sh # \ exec expect "$0" ${1+"$@"} }}} I don't know where in the destroot process that's happening, and I didn't intend for that to happen. It's not really a problem though, unless the user doesn't have /opt/local/bin in their $PATH, so I'm not too concerned about it. Note that these changes basically undo the fix for [https://sourceforge.net/tracker/?func=detail&aid=562621&group_id=13179&atid=... this ten-year-old upstream bug]. It only affected users who don't actually have a binary called "expect", and that's not the case in MacPorts, so it should be ok for us. -- Ticket URL: <https://trac.macports.org/ticket/31225#comment:7> MacPorts <http://www.macports.org/> Ports system for Mac OS