Why does everything now want ncurses-bootstrap, which doesn't build???

Joshua Root jmr at macports.org
Sat Aug 24 01:00:52 UTC 2019


Bill Cole wrote:
> So it's that time of the month: time for a port
> {reclaim,selfupdate,upgrade outdated} cycle on my Snow Leopard machine, 
> which has a stable working "LibcxxOnOlderSystems" setup.
> 
> Or at least, it HAD a stable working "LibcxxOnOlderSystems" setup. Now, 
> upgrades are broken because ultimately everything wants to upgrade 
> clang-8.0 which means rebuilding cmake which for no reason I can make 
> sense of requires clang-3.4 which wants whatever 'ncurses-botstrap' is. 
> Note that I have a wortking and up-to-date installation of ncurses. I'm 
> having apparently initial success from doing a 'port -n upgrade 
> outdated' but that makes me a bit nervous...
> 
> This new flavor of breakage appears to have been instigated by commit 
> 640b7e0aa8710d26cd0af15bde29bb6290ad6b20, which inexplicably sets 
> $prefix to a non-existent directory for bootstrapping libcxx even if 
> libcxx is already installed and working. It's not entirely clear to me 
> how seemingly everything ultimately ends up tryting to do that as a 
> dependency, but apparently it is rooted in an update to clang-8.0.

Before making the recent commits, I tested installing all of the above
on a 10.6 VM running macports-base master and configured to use libc++.
I admit I did not test with 2.5.4 modified according to the
LibcxxOnOlderSystems instructions. So there's probably some difference
in what those instructions do vs what 2.6.0 will do.

In any case, "doesn't build" isn't enough information to do anything
about it; please file a ticket and attach the log.

The reason for the *-bootstrap ports is that 10.6 doesn't come with
libc++. So you need to be able to build a compiler capable of building
libc++, while only using the system's libstdc++. That compiler is
clang-3.4, and it depends on a number of ports that use C++ and have
other dependents, so you'd want them to be using libc++. Hence the ports
like ncurses-bootstrap link with libstdc++ and install in a different
location so that the normal ncurses port can be installed too.

- Josh


More information about the macports-users mailing list