[MacPorts] #46432: scons messes up the environment and removes ${prefix}/bin from $PATH
#46432: scons messes up the environment and removes ${prefix}/bin from $PATH ------------------------+----------------------- Reporter: jeremyhu@… | Owner: landonf@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.3 Keywords: | Port: scons ------------------------+----------------------- scons messes up the environment in processes it spawns. Most horrifically, it messes up $PATH, removing ${prefix}/bin. This can cause it to not find the correct tools when it does things like executing install-name-tool to workaround other horrific design decisions in the build system (specifically, not setting the dylib id at link time). --- I verified that the environment was this in pre_destdir: {{{ TMPDIR=/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_www_serf1/serf1/work/.tmp NO_PROXY=*.local,169.254/16 USER=root CCACHE_DIR=/opt/local/var/macports/build/.ccache COLUMNS=164 PATH=/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin PWD=/opt/local/var/macports LANG=en_US.UTF-8 LINES=45 SHLVL=1 HOME=/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_www_serf1/serf1/work/.home _=/usr/bin/env }}} But when scons executed install-name-tool, it picked it up from /usr/bin instead of /opt/local/bin, and this was the path in that process (I replaced /usr/bin/install-name-tool with a shell script to verify this): {{{ PATH=/opt/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin _=/usr/bin/env PWD=/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_www_serf1/serf1/work/serf-1.3.4 PATHOSX=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin SHLVL=2 }}} This pretty much prevents the scons build system from being used with modern toolchains on older systems because older install-name-tool will fail like: {{{ scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... Install file: "libserf-1.a" as "/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_www_serf1/serf1/work/destroot/opt/local/lib/libserf-1.a" Install file: "libserf-1.1.3.4.dylib" as "/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_www_serf1/serf1/work/destroot/opt/local/lib/libserf-1.1.3.4.dylib" install_name_tool -id /opt/local/lib/libserf-1.dylib /opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_www_serf1/serf1/work/destroot/opt/local/lib/libserf-1.1.3.4.dylib install_name_tool: for architecture x86_64 object: /opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_www_serf1/serf1/work/destroot/opt/local/lib/libserf-1.1.3.4.dylib malformed object (unknown load command 7) }}} -- Ticket URL: <https://trac.macports.org/ticket/46432> MacPorts <https://www.macports.org/> Ports system for OS X
#46432: scons messes up the environment and removes ${prefix}/bin from $PATH -------------------------+----------------------- Reporter: jeremyhu@… | Owner: landonf@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.3 Resolution: | Keywords: Port: scons | -------------------------+----------------------- Comment (by jeremyhu@…): Some of this mess is the fault of serf1's Sconstruct file, but the PATH issue seems to be from scons itself and not serf-specific bits. -- Ticket URL: <https://trac.macports.org/ticket/46432#comment:1> MacPorts <https://www.macports.org/> Ports system for OS X
#46432: scons messes up the environment and removes ${prefix}/bin from $PATH -------------------------+-------------------------------- Reporter: jeremyhu@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.3 Resolution: | Keywords: Port: scons | -------------------------+-------------------------------- Changes (by ryandesign@…): * owner: landonf@… => macports-tickets@… -- Ticket URL: <https://trac.macports.org/ticket/46432#comment:2> MacPorts <https://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts