Leopard env var problem (was: Re: error installing cogito)

Ryan Schmidt ryandesign at macports.org
Tue May 13 04:21:08 PDT 2008


On May 13, 2008, at 3:45 AM, Anders F Björklund wrote:

> Ryan Schmidt wrote:
>
>>> We can't use 'array unset env' as that is documented to  
>>> disconnect Tcl from the environment, and some messing around  
>>> hasn't shown a clean way to work around this.  Maybe a Tcl expert  
>>> is needed, and determining if this is Mac-specific or 8.4.7; of  
>>> course, either way, we have to deal with it.
>>>
>>> FYI, this is done in portutil.tcl (base/src/port1.0/) in proc  
>>> command_exec.
>>
>> Thanks for the analysis! I added a link to your explanation to  
>> http://trac.macports.org/wiki/LeopardProblems
>>
>> Do we really not have a macports base ticket for this issue yet? I  
>> couldn't find one but maybe I'm searching wrong. We need one so  
>> that we can mark all the other port bugs that are cropping up as  
>> duplicates of it.
>
> As far as I can tell, Apple explicitly enables the use of "putenv"  
> to clear out environment variables in Leopard's tcl-64 variant  
> (#define USE_PUTENV 1). Whereas the original tcl 8.4.7 (and Tiger's  
> tcl-20.1.4 too) only uses that on Windows, as far as I can tell.  
> And sets the var to NULL otherwise. Still doesn't explain why doing  
> a "port clean" and restarting fixes it, but it's a difference  
> between the two Tcl-8.4.7's ?

The USE_PUTENV problem was said to have been fixed in tcl 8.5a2 and  
8.4.12 via the 979640-env-hobbs.patch in this ticket:

http://sourceforge.net/tracker/index.php? 
func=detail&aid=979640&group_id=10894&atid=110894

However, I downgraded the tcl port to 8.4.7, added -DUSE_PUTENV to  
the CPPFLAGS, and it still was able to unset environment variables  
properly. In other words, I would like to reproduce the problem in  
the MacPorts tcl, but I cannot.

I do see that Apple is #defining USE_PUTENV 1 on Leopard's tcl, but  
they're also patching a lot of other things:

http://www.opensource.apple.com/darwinsource/10.5.2/tcl-64/tcl/tcl.diff

I wonder if maybe some of those other patches are the cause of the  
problem.

I'll look into this problem more later.




More information about the macports-users mailing list