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

Bill Cole macportsusers-20171215 at billmail.scconsult.com
Sat Aug 24 04:14:48 UTC 2019


On 23 Aug 2019, at 21:00, Joshua Root wrote:

> 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.

It is also possible that the organic evolution of my environment has 
made it diverge from any norm, but it had been pretty quiet for many 
months. The worst problems I've had with MP recently are ports bypassing 
ccache and the general nuisance of needing to build everything from 
source.

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

See https://trac.macports.org/ticket/58876

I thought the problem was simply a failure to recognize a pre-existing 
working environment of ports linked to libc++, but the closer I look at 
it, the less I think I understand about it...

> 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.

I understand that would be needed if you're bootstrapping a libc++ world 
but *I think* I've already got a working libc++ compiler world:

# port installed llvm* clang*
The following ports are currently installed:
   clang-3.4 @3.4.2_12+analyzer+assertions (active)
   clang-5.0 @5.0.2_3+analyzer+defaultlibcxx+emulated_tls (active)
   clang-6.0 @6.0.1_2+analyzer+defaultlibcxx+emulated_tls (active)
   clang-8.0 @8.0.0_0+analyzer+defaultlibcxx+emulated_tls+libstdcxx 
(active)
   clang_select @2_0 (active)
   llvm-3.4 @3.4.2_12+assertions (active)
   llvm-5.0 @5.0.2_0 (active)
   llvm-6.0 @6.0.1_0 (active)
   llvm-8.0 @8.0.0_0+emulated_tls (active)
   llvm_select @2_0 (active)

# port select clang
Available versions for clang:
	mp-clang-3.4
	mp-clang-5.0
	mp-clang-6.0
	mp-clang-8.0 (active)
	none

# port select llvm
Available versions for llvm:
	mp-llvm-3.4
	mp-llvm-5.0
	mp-llvm-6.0
	mp-llvm-8.0 (active)
	none


-- 
Bill Cole
bill at scconsult.com or billcole at apache.org
(AKA @grumpybozo and many *@billmail.scconsult.com addresses)


More information about the macports-users mailing list