I think I found the culprit:

    % strings /opt/macports-2.4.3-dirty/libexec/macports/lib/libtcl8.5.dylib | 
grep 2\\.4\\.
    /opt/macports-2.4.2/libexec/macports/lib
    /opt/macports-2.4.2/libexec/macports/bin
    /opt/macports-2.4.2/libexec/macports/lib/tcl8.5
    /opt/macports-2.4.2/libexec/macports/include
    /opt/macports-2.4.2/libexec/macports/man
    /opt/macports-2.4.3-dirty/libexec/macports/lib/tcl8.5
    /opt/macports-2.4.3-dirty/libexec/macports/lib

while the library built from the clean repo is right:

    % strings /opt/macports-2.4.3-clean/libexec/macports/lib/libtcl8.5.dylib | 
grep 2\\.4\\.
    /opt/macports-2.4.3-clean/libexec/macports/lib
    /opt/macports-2.4.3-clean/libexec/macports/bin
    /opt/macports-2.4.3-clean/libexec/macports/lib/tcl8.5
    /opt/macports-2.4.3-clean/libexec/macports/include
    /opt/macports-2.4.3-clean/libexec/macports/man
    /opt/macports-2.4.3-clean/libexec/macports/lib/tcl8.5
    /opt/macports-2.4.3-clean/libexec/macports/lib

Hence, the macports installation that was built from the dirty tree is 
referring to the installation directory of the previous build.  That also 
explains why removing that directory makes port crash, as I said in a previous 
mail.

Cheers,
-- 
Enrico

> On 13 Apr 2018, at 22:28, Enrico Maria Crisostomo 
> <enrico.m.crisost...@gmail.com> wrote:
> 
> Ryan,
> 
> Unless there's something I'm not understanding, in which case I apologise for 
> the noise, I don't think my shell is caching anything.  I went so far as to 
> change my user's .zshrc file and try this four possibilities _with a reboot 
> between each test_:
> 
>  * /opt/local: installed from packages: works fine
>  * /opt/macports-2.4.2: installed from git, built clean: works fine and 
> reports 2.4.2
>  * /opt/macports-2.4.3-dirty: installed from git after switching tag and 
> _not_ cleaning the tree: still reports 2.4.2.
>  * /opt/macports-2.4.3-clean: installed from git after cleaning (git clean 
> -xfd): works fine and reports 2.4.3.
> 
> How could the shell be caching anything?  And why it would be caching for the 
> /opt/macports-2.4.3-dirty tree and not for the /opt/macports-2.4.3-clean tree?
> 
> Cheers,
> -- 
> Enrico
> 
>> On 12 Apr 2018, at 18:44, Ryan Schmidt <ryandes...@macports.org> wrote:
>> 
>> 
>> On Apr 12, 2018, at 03:39, Enrico Maria Crisostomo wrote:
>> 
>>> On 12 Apr 2018, at 02:30, Ryan Schmidt wrote:
>>> 
>>>> On Apr 11, 2018, at 08:48, Enrico Maria Crisostomo wrote:
>>>> 
>>>>> Well, I replicated it:
>>>>> 
>>>>> * Clean the repo (e.g.: git clean -xfd)
>>>>> * git checkout v2.4.2
>>>>> * build and install 2.4.2:
>>>>> 
>>>>>  $ export PATH=/bin:/sbin:/usr/bin:/usr/sbin
>>>>>  $ MP_PREFIX=/opt/macports-2.4.2
>>>>>  $ ./configure --prefix=$MP_PREFIX 
>>>>> --with-applications-dir=$MP_PREFIX/Applications
>>>>>  $ make
>>>>>  $ sudo make install
>>>>> 
>>>>> * open new terminal
>>>>> * git checkout v2.4.3
>>>>> * configure 2.4.3:
>>>>> 
>>>>>  $ export PATH=/bin:/sbin:/usr/bin:/usr/sbin
>>>>>  $ MP_PREFIX=/opt/macports-2.4.3
>>>>>  $ ./configure --prefix=$MP_PREFIX 
>>>>> --with-applications-dir=$MP_PREFIX/Applications
>>>>> 
>>>>> * At this point src/macports1.0/macports_autoconf.tcl correctly contains 
>>>>> `variable macports_version "2.4.3"`
>>>>> * build and install 2.4.3:
>>>>> 
>>>>>  $ make
>>>>>  $ sudo make install
>>>>> 
>>>>> * At this point 
>>>>> /opt/macports-2.4.3/libexec/macports/lib/macports1.0/macports_autoconf.tcl
>>>>>  correctly contains `variable macports_version "2.4.3"`.
>>>>> * But port reports 2.4.2:
>>>>> 
>>>>>  % echo path
>>>>>  
>>>>> /opt/macports-2.4.3/bin:/opt/macports-2.4.3/sbin:/bin:/usr/bin:/usr/ucb:/usr/local/bin
>>>>>  % type port
>>>>>  port is /opt/macports-2.4.3/bin/port
>>>>>  % port version
>>>>>  Version: 2.4.2
>>>> 
>>>> Just to be absolutely certain which `port' binary you're running:
>>>> 
>>>> What happens if you run:
>>>> 
>>>> /opt/macports-2.4.3/bin/port version
>>> 
>>> Hi Ryan,
>>> 
>>> This happens:
>>> 
>>>  % /opt/macports-2.4.3-clean/bin/port version
>>>  Version: 2.4.3
>> 
>> Then I would say that MacPorts is working correctly. I would guess that the 
>> problem occurred because of your shell's cached lookup of the port command 
>> in the previous /opt/macports-2.4.2 location.
> 

Reply via email to