port version reports 2.4.2 when built from tag v2.4.3

Joshua Root jmr at macports.org
Fri Apr 13 21:55:54 UTC 2018


On 2018-4-14 07:30 , Enrico Maria Crisostomo wrote:
> 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.

OK, so the issue is not with switching tags without cleaning at all, but
configuring for a different prefix without cleaning. The bug is in one
of Tcl's Makefiles, which compiles tclPkgConfig.c with several -D flags
using values that are directly substituted into the Makefile by
autoconf. There should probably be a dependency declared on the Makefile
itself.

- Josh


More information about the macports-dev mailing list