capnproto/ekam

std::logic_error when building using nix

Closed this issue · 12 comments

I tried to package ekam using nix:

https://github.com/zenhack/ekam-nix

But got an error in the second stage of the build. The full log is below. It's possible Nix is doing some kind of sandboxing that is interacting badly with something ekam is trying to do; I'm a little fuzzy on the details of both. But throwing std::logic_error looks like a bug in ekam to me.

The nix build script isn't doing anything funny; the only novel bit is that it downloads and links the capnproto source itself, since nix builds don't have network access.

(I'd meant to report this much sooner, but got distracted...)

these derivations will be built:
  /nix/store/v9g3kpv513mz21qj955n4l6l9sihsnfg-ekam.drv
building '/nix/store/v9g3kpv513mz21qj955n4l6l9sihsnfg-ekam.drv'...
==== compiling bootstrap ekam ====
g++ -Isrc -std=c++14 src/base/sha256.cpp src/base/Promise.cpp src/base/OwnedPtr.cpp src/base/Hash.cpp src/base/Debug.cpp src/os/Subprocess.cpp src/os/Socket.cpp src/os/OsHandle.cpp src/os/File.cpp src/os/EventManager.cpp src/os/EventGroup.cpp src/os/EpollEventManager.cpp src/os/DiskFile.cpp src/os/ByteStream.cpp src/ekam/initNetworkDashboardStub.cpp src/ekam/ekam.cpp src/ekam/Tag.cpp src/ekam/SimpleDashboard.cpp src/ekam/MuxDashboard.cpp src/ekam/ExecPluginActionFactory.cpp src/ekam/Driver.cpp src/ekam/Dashboard.cpp src/ekam/CppActionFactory.cpp src/ekam/ConsoleDashboard.cpp src/ekam/ActionUtil.cpp src/ekam/Action.cpp -pthread -o bin/ekam-bootstrap
==== building ekam with ekam ====
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
  learn: ekam/rules/compile.ekam-rule
...(more)...
...(more)...
  learn: capnp/capnpc.ekam-rule
...(more)...
...(more)...
  learn: ekam/rules/proto.ekam-rule
...(more)...
...(more)...
  learn: ekam/rules/test.ekam-rule
...(more)...
...(more)...
  learn: ekam/rules/install.ekam-rule
...(more)...
...(more)...
  learn: ekam/rules/include.ekam-rule
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
  compile: ekam/rules/intercept.c
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
  capnpc: capnp/schema.capnp
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
  capnpc: capnp/rpc-twoparty.capnp
...(more)...
...(more)...
  capnpc: capnp/persistent.capnp
...(more)...
...(more)...
  capnpc: capnp/rpc.capnp
...(more)...
...(more)...
...(more)...
...(more)...
  capnpc: capnp/compiler/grammar.capnp
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
  capnpc: capnp/compiler/lexer.capnp
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
  capnpc: capnp/compat/json.capnp
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
  capnpc: capnp/c++.capnp
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
...(more)...
  learn: ekam/rules/intercept.ekam-rule
terminate called after throwing an instance of 'std::logic_error'
  what():  can't check failures while still running
make: *** [Makefile:33: all] Aborted (core dumped)
builder for '/nix/store/v9g3kpv513mz21qj955n4l6l9sihsnfg-ekam.drv' failed with exit code 2
error: build of '/nix/store/v9g3kpv513mz21qj955n4l6l9sihsnfg-ekam.drv' failed

That's a very strange log. ...(more)... is normally printed when using fancy terminal output, and the terminal window is too short to display all of the parallel jobs at once... but it should not be printed repeatedly like that, and fancy output mode shouldn't be used at all when logging to a file or pipe.

What does the command nproc return on this machine? I wonder if the parallelism (-j) was set ridiculously high or something.

Relevant docs about nix's sandboxing:

https://nixos.org/nix/manual/#conf-sandbox

...but based on that my system shouldn't be using sandboxing, since I don't have build users set up (and none of that seems like it should cause a problem anyway).

I tested out the linked repository. I don't get the same logging issues; I bet that it's because I called nix-build instead of nix. The log lists many include path failures and a failing filesystem test:

[FAILED ] compile: ekam/Action.cpp
In file included from /ekam-provider/canonical/ekam/Action.cpp:17:0:
/ekam-provider/canonical/ekam/Action.h:24:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/MuxDashboard.cpp
In file included from /ekam-provider/canonical/ekam/MuxDashboard.h:22:0,
                 from /ekam-provider/canonical/ekam/MuxDashboard.cpp:17:
/ekam-provider/canonical/ekam/Dashboard.h:21:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/ekam-client.cpp
/ekam-provider/canonical/ekam/ekam-client.cpp:17:10: fatal error: dashboard.capnp.h: No such file or directory
 #include "dashboard.capnp.h"
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/ExecPluginActionFactory.cpp
In file included from /ekam-provider/canonical/ekam/ExecPluginActionFactory.h:20:0,
                 from /ekam-provider/canonical/ekam/ExecPluginActionFactory.cpp:17:
/ekam-provider/canonical/ekam/Action.h:24:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/Driver.cpp
In file included from /ekam-provider/canonical/ekam/Driver.cpp:17:0:
/ekam-provider/canonical/ekam/Driver.h:25:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/ConsoleDashboard.cpp
In file included from /ekam-provider/canonical/ekam/ConsoleDashboard.h:22:0,
                 from /ekam-provider/canonical/ekam/ConsoleDashboard.cpp:17:
/ekam-provider/canonical/ekam/Dashboard.h:21:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/SimpleDashboard.cpp
In file included from /ekam-provider/canonical/ekam/SimpleDashboard.h:22:0,
                 from /ekam-provider/canonical/ekam/SimpleDashboard.cpp:17:
/ekam-provider/canonical/ekam/Dashboard.h:21:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/ProtoDashboard.cpp
In file included from /ekam-provider/canonical/ekam/ProtoDashboard.cpp:17:0:
/ekam-provider/canonical/ekam/ProtoDashboard.h:22:10: fatal error: capnp/common.h: No such file or directory
 #include <capnp/common.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/initNetworkDashboardStub.cpp
In file included from /ekam-provider/canonical/ekam/initNetworkDashboardStub.cpp:17:0:
/ekam-provider/canonical/ekam/Dashboard.h:21:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/ActionUtil.cpp
In file included from /ekam-provider/canonical/ekam/ActionUtil.cpp:17:0:
/ekam-provider/canonical/ekam/ActionUtil.h:22:10: fatal error: os/ByteStream.h: No such file or directory
 #include "os/ByteStream.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/ekam-langserve.c++
/ekam-provider/canonical/ekam/ekam-langserve.c++:1:10: fatal error: ekam/langserve.capnp.h: No such file or directory
 #include <ekam/langserve.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: base/Promise_test.cpp
/ekam-provider/canonical/base/Promise_test.cpp:20:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/serialize-packed-test.c++
In file included from /ekam-provider/canonical/capnp/serialize.h:47:0,
                 from /ekam-provider/canonical/capnp/serialize-packed.h:28,
                 from /ekam-provider/canonical/capnp/serialize-packed-test.c++:22:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/Tag.cpp
In file included from /ekam-provider/canonical/ekam/Tag.cpp:17:0:
/ekam-provider/canonical/ekam/Tag.h:25:10: fatal error: base/Hash.h: No such file or directory
 #include "base/Hash.h"
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/schema-test.c++
In file included from /ekam-provider/canonical/capnp/schema-test.c++:24:0:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/schema.c++
In file included from /ekam-provider/canonical/capnp/schema.c++:22:0:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/serialize.c++
In file included from /ekam-provider/canonical/capnp/serialize.h:47:0,
                 from /ekam-provider/canonical/capnp/serialize.c++:22:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/afl-testcase.c++
In file included from /ekam-provider/canonical/capnp/afl-testcase.c++:22:0:
/ekam-provider/canonical/capnp/test-util.h:28:10: fatal error: capnp/test.capnp.h: No such file or directory
 #include <capnp/test.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/capability-test.c++
In file included from /ekam-provider/canonical/capnp/capability-test.c++:22:0:
/ekam-provider/canonical/capnp/schema.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/dynamic-capability.c++
In file included from /ekam-provider/canonical/capnp/dynamic.h:39:0,
                 from /ekam-provider/canonical/capnp/dynamic-capability.c++:24:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/schema-loader.c++
In file included from /ekam-provider/canonical/capnp/schema-loader.h:28:0,
                 from /ekam-provider/canonical/capnp/schema-loader.c++:23:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/rpc.capnp.c++
In file included from /ekam-provider/canonical/capnp/rpc.capnp.c++:4:0:
/ekam-provider/canonical/capnp/rpc.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] capnpc: capnp/test-import.capnp
error:  couldn't find capnp.
[FAILED ] compile: capnp/layout.c++
In file included from /ekam-provider/canonical/capnp/layout.c++:23:0:
/ekam-provider/canonical/capnp/layout.h:35:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] capnpc: ekam/dashboard.capnp
error:  couldn't find capnp.
[FAILED ] compile: capnp/serialize-text.c++
In file included from /ekam-provider/canonical/capnp/serialize-text.c++:22:0:
/ekam-provider/canonical/capnp/serialize-text.h:28:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/schema-parser-test.c++
In file included from /ekam-provider/canonical/capnp/schema-loader.h:28:0,
                 from /ekam-provider/canonical/capnp/schema-parser.h:28,
                 from /ekam-provider/canonical/capnp/schema-parser-test.c++:24:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/layout-test.c++
In file included from /ekam-provider/canonical/capnp/layout-test.c++:23:0:
/ekam-provider/canonical/capnp/layout.h:35:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/message.c++
In file included from /ekam-provider/canonical/capnp/message.c++:23:0:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/orphan-test.c++
In file included from /ekam-provider/canonical/capnp/orphan-test.c++:22:0:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] capnpc: capnp/test-import2.capnp
error:  couldn't find capnp.
[FAILED ] compile: capnp/blob-test.c++
In file included from /ekam-provider/canonical/capnp/blob-test.c++:22:0:
/ekam-provider/canonical/capnp/blob.h:28:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/rpc.c++
In file included from /ekam-provider/canonical/capnp/rpc.h:28:0,
                 from /ekam-provider/canonical/capnp/rpc.c++:22:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/lexer.capnp.c++
In file included from /ekam-provider/canonical/capnp/compiler/lexer.capnp.c++:4:0:
/ekam-provider/canonical/capnp/compiler/lexer.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/node-translator.c++
In file included from /ekam-provider/canonical/capnp/compiler/node-translator.c++:22:0:
/ekam-provider/canonical/capnp/compiler/node-translator.h:28:10: fatal error: capnp/orphan.h: No such file or directory
 #include <capnp/orphan.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/capnp.c++
In file included from /ekam-provider/canonical/capnp/compiler/capnp.c++:26:0:
/ekam-provider/canonical/capnp/compiler/lexer.h:28:10: fatal error: capnp/compiler/lexer.capnp.h: No such file or directory
 #include <capnp/compiler/lexer.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/compiler.c++
In file included from /ekam-provider/canonical/capnp/compiler/compiler.c++:22:0:
/ekam-provider/canonical/capnp/compiler/compiler.h:28:10: fatal error: capnp/compiler/grammar.capnp.h: No such file or directory
 #include <capnp/compiler/grammar.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/type-id.c++
In file included from /ekam-provider/canonical/capnp/compiler/type-id.c++:22:0:
/ekam-provider/canonical/capnp/compiler/type-id.h:24:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] test: kj/filesystem-disk-test
full log: tmp/kj/filesystem-disk-test.log
[FAILED ] compile: capnp/compiler/parser.c++
In file included from /ekam-provider/canonical/capnp/compiler/parser.c++:22:0:
/ekam-provider/canonical/capnp/compiler/parser.h:28:10: fatal error: capnp/compiler/grammar.capnp.h: No such file or directory
 #include <capnp/compiler/grammar.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/grammar.capnp.c++
In file included from /ekam-provider/canonical/capnp/compiler/grammar.capnp.c++:4:0:
/ekam-provider/canonical/capnp/compiler/grammar.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/error-reporter.c++
In file included from /ekam-provider/canonical/capnp/compiler/error-reporter.h:28:0,
                 from /ekam-provider/canonical/capnp/compiler/error-reporter.c++:22:
/ekam-provider/canonical/capnp/compiler/../common.h:33:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/lexer-test.c++
In file included from /ekam-provider/canonical/capnp/compiler/lexer-test.c++:22:0:
/ekam-provider/canonical/capnp/compiler/lexer.h:28:10: fatal error: capnp/compiler/lexer.capnp.h: No such file or directory
 #include <capnp/compiler/lexer.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] learn: capnp/bootstrap-test.ekam-rule
error:  couldn't find capnpc-c++.
[FAILED ] compile: capnp/compiler/capnpc-capnp.c++
/ekam-provider/canonical/capnp/compiler/capnpc-capnp.c++:29:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/lexer.c++
In file included from /ekam-provider/canonical/capnp/compiler/lexer.c++:22:0:
/ekam-provider/canonical/capnp/compiler/lexer.h:28:10: fatal error: capnp/compiler/lexer.capnp.h: No such file or directory
 #include <capnp/compiler/lexer.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/stringify-test.c++
In file included from /ekam-provider/canonical/capnp/stringify-test.c++:22:0:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/message-test.c++
In file included from /ekam-provider/canonical/capnp/message-test.c++:22:0:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/endian-test.c++
In file included from /ekam-provider/canonical/capnp/endian.h:28:0,
                 from /ekam-provider/canonical/capnp/endian-test.c++:22:
/ekam-provider/canonical/capnp/common.h:33:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/rpc-twoparty.c++
In file included from /ekam-provider/canonical/capnp/rpc.h:28:0,
                 from /ekam-provider/canonical/capnp/rpc-twoparty.h:28,
                 from /ekam-provider/canonical/capnp/rpc-twoparty.c++:22:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/encoding-test.c++
/ekam-provider/canonical/capnp/encoding-test.c++:22:10: fatal error: capnp/test-import.capnp.h: No such file or directory
 #include <capnp/test-import.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/common-test.c++
In file included from /ekam-provider/canonical/capnp/common-test.c++:22:0:
/ekam-provider/canonical/capnp/common.h:33:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/persistent.capnp.c++
In file included from /ekam-provider/canonical/capnp/persistent.capnp.c++:4:0:
/ekam-provider/canonical/capnp/persistent.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/membrane-test.c++
In file included from /ekam-provider/canonical/capnp/membrane.h:50:0,
                 from /ekam-provider/canonical/capnp/membrane-test.c++:22:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/rpc-twoparty-test.c++
In file included from /ekam-provider/canonical/capnp/rpc.h:28:0,
                 from /ekam-provider/canonical/capnp/rpc-twoparty.h:28,
                 from /ekam-provider/canonical/capnp/rpc-twoparty-test.c++:24:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/endian-fallback-test.c++
In file included from /ekam-provider/canonical/capnp/endian.h:28:0,
                 from /ekam-provider/canonical/capnp/endian-test.c++:22,
                 from /ekam-provider/canonical/capnp/endian-fallback-test.c++:24:
/ekam-provider/canonical/capnp/common.h:33:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/rpc-test.c++
In file included from /ekam-provider/canonical/capnp/rpc.h:28:0,
                 from /ekam-provider/canonical/capnp/rpc-test.c++:24:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compat/json.capnp.c++
In file included from /ekam-provider/canonical/capnp/compat/json.capnp.c++:4:0:
/ekam-provider/canonical/capnp/compat/json.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] capnpc: capnp/test.capnp
error:  couldn't find capnp.
[FAILED ] capnpc: capnp/compat/json-test.capnp
error:  couldn't find capnp.
[FAILED ] compile: capnp/compat/json-test.c++
In file included from /ekam-provider/canonical/capnp/compat/json-test.c++:22:0:
/ekam-provider/canonical/capnp/compat/json.h:24:10: fatal error: capnp/schema.h: No such file or directory
 #include <capnp/schema.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/ekam.cpp
In file included from /ekam-provider/canonical/ekam/ekam.cpp:29:0:
/ekam-provider/canonical/ekam/Driver.h:25:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/one-of-test.c++
/ekam-provider/canonical/kj/one-of-test.c++:24:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] install: capnp/compiler/capnp.ekam-manifest
capnp/compiler/capnp: not found
[FAILED ] compile: kj/compat/http-test.c++
In file included from /ekam-provider/canonical/kj/compat/http-test.c++:24:0:
/ekam-provider/canonical/kj/compat/http.h:37:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/capnpc-c++.c++
/ekam-provider/canonical/capnp/compiler/capnpc-c++.c++:24:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/string-test.c++
/ekam-provider/canonical/kj/string-test.c++:23:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/canonicalize-test.c++
In file included from /ekam-provider/canonical/capnp/canonicalize-test.c++:22:0:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/ez-rpc-test.c++
In file included from /ekam-provider/canonical/capnp/rpc.h:28:0,
                 from /ekam-provider/canonical/capnp/ez-rpc.h:28,
                 from /ekam-provider/canonical/capnp/ez-rpc-test.c++:24:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/dynamic.c++
In file included from /ekam-provider/canonical/capnp/dynamic.h:39:0,
                 from /ekam-provider/canonical/capnp/dynamic.c++:22:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/DiskFile.cpp
In file included from /ekam-provider/canonical/os/DiskFile.h:20:0,
                 from /ekam-provider/canonical/os/DiskFile.cpp:17:
/ekam-provider/canonical/os/File.h:23:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/tuple-test.c++
/ekam-provider/canonical/kj/tuple-test.c++:25:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/debug-test.c++
/ekam-provider/canonical/kj/debug-test.c++:28:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/EpollEventManager.cpp
In file included from /ekam-provider/canonical/os/EpollEventManager.h:28:0,
                 from /ekam-provider/canonical/os/EpollEventManager.cpp:17:
/ekam-provider/canonical/os/EventManager.h:23:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/async-test.c++
/ekam-provider/canonical/kj/async-test.c++:24:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/parse/common-test.c++
/ekam-provider/canonical/kj/parse/common-test.c++:24:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/serialize-async-test.c++
In file included from /ekam-provider/canonical/capnp/serialize-async-test.c++:26:0:
/ekam-provider/canonical/capnp/serialize-async.h:28:10: fatal error: kj/async-io.h: No such file or directory
 #include <kj/async-io.h>
          ^~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/serialize-packed.c++
In file included from /ekam-provider/canonical/capnp/serialize.h:47:0,
                 from /ekam-provider/canonical/capnp/serialize-packed.h:28,
                 from /ekam-provider/canonical/capnp/serialize-packed.c++:22:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/compat/url.c++
In file included from /ekam-provider/canonical/kj/compat/url.c++:22:0:
/ekam-provider/canonical/kj/compat/url.h:24:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/evolution-test.c++
/ekam-provider/canonical/capnp/compiler/evolution-test.c++:33:10: fatal error: capnp/compiler/grammar.capnp.h: No such file or directory
 #include <capnp/compiler/grammar.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/exception-test.c++
/ekam-provider/canonical/kj/exception-test.c++:24:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/dynamic-test.c++
In file included from /ekam-provider/canonical/capnp/dynamic.h:39:0,
                 from /ekam-provider/canonical/capnp/dynamic-test.c++:22:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/stringify.c++
In file included from /ekam-provider/canonical/capnp/dynamic.h:39:0,
                 from /ekam-provider/canonical/capnp/stringify.c++:22:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] capnpc: ekam/langserve.capnp
error:  couldn't find capnp.
[FAILED ] compile: kj/compat/readiness-io.c++
In file included from /ekam-provider/canonical/kj/compat/readiness-io.c++:22:0:
/ekam-provider/canonical/kj/compat/readiness-io.h:24:10: fatal error: kj/async-io.h: No such file or directory
 #include <kj/async-io.h>
          ^~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/capability.c++
In file included from /ekam-provider/canonical/capnp/capability.c++:24:0:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/compat/url-test.c++
In file included from /ekam-provider/canonical/kj/compat/url-test.c++:22:0:
/ekam-provider/canonical/kj/compat/url.h:24:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/arena.c++
In file included from /ekam-provider/canonical/capnp/arena.c++:23:0:
/ekam-provider/canonical/capnp/arena.h:32:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/schema-parser.c++
In file included from /ekam-provider/canonical/capnp/schema-loader.h:28:0,
                 from /ekam-provider/canonical/capnp/schema-parser.h:28,
                 from /ekam-provider/canonical/capnp/schema-parser.c++:22:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/string-tree-test.c++
/ekam-provider/canonical/kj/string-tree-test.c++:23:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/test-util.c++
In file included from /ekam-provider/canonical/capnp/test-util.c++:22:0:
/ekam-provider/canonical/capnp/test-util.h:28:10: fatal error: capnp/test.capnp.h: No such file or directory
 #include <capnp/test.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/type-id-test.c++
In file included from /ekam-provider/canonical/capnp/compiler/type-id-test.c++:22:0:
/ekam-provider/canonical/capnp/compiler/type-id.h:24:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/CppActionFactory.cpp
In file included from /ekam-provider/canonical/ekam/CppActionFactory.h:22:0,
                 from /ekam-provider/canonical/ekam/CppActionFactory.cpp:17:
/ekam-provider/canonical/ekam/Action.h:24:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/ez-rpc.c++
In file included from /ekam-provider/canonical/capnp/rpc.h:28:0,
                 from /ekam-provider/canonical/capnp/ez-rpc.h:28,
                 from /ekam-provider/canonical/capnp/ez-rpc.c++:22:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] install: ekam/ekam.ekam-manifest
ekam/ekam: not found
[FAILED ] compile: kj/async-io-test.c++
/ekam-provider/canonical/kj/async-io-test.c++:31:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/EventGroup.cpp
In file included from /ekam-provider/canonical/os/EventGroup.h:22:0,
                 from /ekam-provider/canonical/os/EventGroup.cpp:17:
/ekam-provider/canonical/os/EventManager.h:23:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/async-unix-test.c++
/ekam-provider/canonical/kj/async-unix-test.c++:34:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/endian-reverse-test.c++
In file included from /ekam-provider/canonical/capnp/endian.h:28:0,
                 from /ekam-provider/canonical/capnp/endian-reverse-test.c++:29:
/ekam-provider/canonical/capnp/common.h:33:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/serialize-text-test.c++
In file included from /ekam-provider/canonical/capnp/serialize-text-test.c++:22:0:
/ekam-provider/canonical/capnp/serialize-text.h:28:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/map-test.c++
/ekam-provider/canonical/kj/map-test.c++:23:10: fatal error: kj/test.h: No such file or directory
 #include <kj/test.h>
          ^~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/memory-test.c++
/ekam-provider/canonical/kj/memory-test.c++:23:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/any-test.c++
In file included from /ekam-provider/canonical/capnp/any.h:28:0,
                 from /ekam-provider/canonical/capnp/any-test.c++:22:
/ekam-provider/canonical/capnp/layout.h:35:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/threadlocal-pthread-test.c++
In file included from /ekam-provider/canonical/kj/threadlocal-pthread-test.c++:24:0:
/ekam-provider/canonical/kj/threadlocal-test.c++:25:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/function-test.c++
/ekam-provider/canonical/kj/function-test.c++:23:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] test: kj/filesystem-disk-generic-test
full log: tmp/kj/filesystem-disk-generic-test.log
[ FAIL ] filesystem-disk-test.c++:274: DiskFile (145 μs)
[ FAIL ] filesystem-disk-test.c++:354: DiskFile::copy() (60 μs)
[ FAIL ] filesystem-disk-test.c++:379: DiskDirectory (57 μs)
[ FAIL ] filesystem-disk-test.c++:527: DiskDirectory symlinks (67 μs)
[ FAIL ] filesystem-disk-test.c++:583: DiskDirectory link (55 μs)
[ FAIL ] filesystem-disk-test.c++:611: DiskDirectory copy (52 μs)
[ FAIL ] filesystem-disk-test.c++:635: DiskDirectory copy-replace (51 μs)
[ FAIL ] filesystem-disk-test.c++:672: DiskDirectory move (52 μs)
[ FAIL ] filesystem-disk-test.c++:691: DiskDirectory move-replace (51 μs)
[ FAIL ] filesystem-disk-test.c++:723: DiskDirectory createTemporary (52 μs)
[ FAIL ] filesystem-disk-test.c++:733: DiskDirectory replaceSubdir() (52 μs)
[ FAIL ] filesystem-disk-test.c++:774: DiskDirectory replace directory with file (52 μs)
[ FAIL ] filesystem-disk-test.c++:802: DiskDirectory replace file with directory (49 μs)
[FAILED ] compile: capnp/schema-loader-test.c++
In file included from /ekam-provider/canonical/capnp/schema-loader.h:28:0,
                 from /ekam-provider/canonical/capnp/schema-loader-test.c++:24:
/ekam-provider/canonical/capnp/schema.h:32:10: fatal error: capnp/schema.capnp.h: No such file or directory
 #include <capnp/schema.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/std/iostream-test.c++
/ekam-provider/canonical/kj/std/iostream-test.c++:24:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/parse/char-test.c++
/ekam-provider/canonical/kj/parse/char-test.c++:24:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] learn: capnp/compiler/capnp-test.ekam-rule
src/capnp/compiler/capnp-test.sh: line 55: src/capnp: Permission denied
cmp: EOF on - which is empty
FAILED: encode
[FAILED ] compile: capnp/schema.capnp.c++
In file included from /ekam-provider/canonical/capnp/schema.capnp.c++:4:0:
/ekam-provider/canonical/capnp/schema.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/filesystem-disk-old-kernel-test.c++
/ekam-provider/canonical/kj/filesystem-disk-old-kernel-test.c++:44:10: fatal error: kj/debug.h: No such file or directory
 #include <kj/debug.h>
          ^~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/io-test.c++
/ekam-provider/canonical/kj/io-test.c++:29:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/Socket.cpp
In file included from /ekam-provider/canonical/os/Socket.cpp:17:0:
/ekam-provider/canonical/os/Socket.h:20:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/compat/readiness-io-test.c++
In file included from /ekam-provider/canonical/kj/compat/readiness-io-test.c++:22:0:
/ekam-provider/canonical/kj/compat/readiness-io.h:24:10: fatal error: kj/async-io.h: No such file or directory
 #include <kj/async-io.h>
          ^~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/compat/http.c++
In file included from /ekam-provider/canonical/kj/compat/http.c++:22:0:
/ekam-provider/canonical/kj/compat/http.h:37:10: fatal error: kj/string.h: No such file or directory
 #include <kj/string.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/common-test.c++
/ekam-provider/canonical/kj/common-test.c++:25:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/array-test.c++
/ekam-provider/canonical/kj/array-test.c++:26:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compiler/module-loader.c++
In file included from /ekam-provider/canonical/capnp/compiler/module-loader.h:28:0,
                 from /ekam-provider/canonical/capnp/compiler/module-loader.c++:22:
/ekam-provider/canonical/capnp/compiler/compiler.h:28:10: fatal error: capnp/compiler/grammar.capnp.h: No such file or directory
 #include <capnp/compiler/grammar.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/any.c++
In file included from /ekam-provider/canonical/capnp/any.h:28:0,
                 from /ekam-provider/canonical/capnp/any.c++:22:
/ekam-provider/canonical/capnp/layout.h:35:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/encoding-test.c++
/ekam-provider/canonical/kj/encoding-test.c++:23:10: fatal error: kj/test.h: No such file or directory
 #include <kj/test.h>
          ^~~~~~~~~~~
compilation terminated.
[FAILED ] compile: ekam/Dashboard.cpp
In file included from /ekam-provider/canonical/ekam/Dashboard.cpp:17:0:
/ekam-provider/canonical/ekam/Dashboard.h:21:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/rpc-twoparty.capnp.c++
In file included from /ekam-provider/canonical/capnp/rpc-twoparty.capnp.c++:4:0:
/ekam-provider/canonical/capnp/rpc-twoparty.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/units-test.c++
/ekam-provider/canonical/kj/units-test.c++:23:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/table-test.c++
/ekam-provider/canonical/kj/table-test.c++:23:10: fatal error: kj/test.h: No such file or directory
 #include <kj/test.h>
          ^~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/arena-test.c++
/ekam-provider/canonical/kj/arena-test.c++:24:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/refcount-test.c++
/ekam-provider/canonical/kj/refcount-test.c++:23:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/threadlocal-test.c++
/ekam-provider/canonical/kj/threadlocal-test.c++:25:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: kj/mutex-test.c++
/ekam-provider/canonical/kj/mutex-test.c++:25:10: fatal error: kj/compat/gtest.h: No such file or directory
 #include <kj/compat/gtest.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/serialize-async.c++
In file included from /ekam-provider/canonical/capnp/serialize-async.c++:22:0:
/ekam-provider/canonical/capnp/serialize-async.h:28:10: fatal error: kj/async-io.h: No such file or directory
 #include <kj/async-io.h>
          ^~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/EventManager.cpp
In file included from /ekam-provider/canonical/os/EventManager.cpp:17:0:
/ekam-provider/canonical/os/EventManager.h:23:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/OsHandle.cpp
In file included from /ekam-provider/canonical/os/OsHandle.cpp:17:0:
/ekam-provider/canonical/os/OsHandle.h:24:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/Subprocess.cpp
In file included from /ekam-provider/canonical/os/Subprocess.cpp:17:0:
/ekam-provider/canonical/os/Subprocess.h:23:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/ByteStream.cpp
In file included from /ekam-provider/canonical/os/ByteStream.cpp:17:0:
/ekam-provider/canonical/os/ByteStream.h:24:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/compat/json.c++
In file included from /ekam-provider/canonical/capnp/compat/json.c++:22:0:
/ekam-provider/canonical/capnp/compat/json.h:24:10: fatal error: capnp/schema.h: No such file or directory
 #include <capnp/schema.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: os/File.cpp
In file included from /ekam-provider/canonical/os/File.cpp:17:0:
/ekam-provider/canonical/os/File.h:23:10: fatal error: base/OwnedPtr.h: No such file or directory
 #include "base/OwnedPtr.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/c++.capnp.c++
In file included from /ekam-provider/canonical/capnp/c++.capnp.c++:4:0:
/ekam-provider/canonical/capnp/c++.capnp.h:6:10: fatal error: capnp/generated-header-support.h: No such file or directory
 #include <capnp/generated-header-support.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/blob.c++
In file included from /ekam-provider/canonical/capnp/blob.c++:22:0:
/ekam-provider/canonical/capnp/blob.h:28:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/serialize-test.c++
In file included from /ekam-provider/canonical/capnp/serialize.h:47:0,
                 from /ekam-provider/canonical/capnp/serialize-test.c++:26:
/ekam-provider/canonical/capnp/message.h:22:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/fuzz-test.c++
/ekam-provider/canonical/capnp/fuzz-test.c++:26:10: fatal error: capnp/test-import.capnp.h: No such file or directory
 #include <capnp/test-import.capnp.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/list.c++
In file included from /ekam-provider/canonical/capnp/list.h:28:0,
                 from /ekam-provider/canonical/capnp/list.c++:22:
/ekam-provider/canonical/capnp/layout.h:35:10: fatal error: kj/common.h: No such file or directory
 #include <kj/common.h>
          ^~~~~~~~~~~~~
compilation terminated.
[FAILED ] compile: capnp/membrane.c++
In file included from /ekam-provider/canonical/capnp/membrane.h:50:0,
                 from /ekam-provider/canonical/capnp/membrane.c++:22:
/ekam-provider/canonical/capnp/capability.h:32:10: fatal error: kj/async.h: No such file or directory
 #include <kj/async.h>
          ^~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:33: all] Error 1
builder for '/nix/store/zv2gcpaa0rz6xfs36np2kv8mjb16q72n-ekam.drv' failed with exit code 2
error: build of '/nix/store/zv2gcpaa0rz6xfs36np2kv8mjb16q72n-ekam.drv' failed

Hm, I'm running nix-build as well, so that's not the difference (and I get the same error when doing nix build instead).

Just to try to eliminate differences, what channel are you on? On my system:

$ nix-channel --list
https://nixos.org/channels/nixpkgs-unstable

Also, distro? I'm on Arch, are you using nixos or nix on top of a different distro?

I'm on NixOS, but I use a floating nixpkgs which loosely follows upstream master.

It's probably a Nix version mismatch. Nix has recently added a fake tty to the sandbox to get colored outputs from most build logs.

That would be consistent. The latest version of Nix is the one with the fake tty. To get the old log like @MostAwesomeDude, I would append 2>&1 | cat to the build command.

Hm, that did it. I'm now getting the same errors that @MostAwesomeDude is seeing. I'm puzzled as to what's going on inside of ekam such that the terminal output thing is actually causing the build system to crash...

Presumably a bug in ConsoleDashboard.cpp that isn't present in SimpleDashboard.cpp. They are quite different: ConsoleDashboard tries to keep the list of currently-running actions at the bottom of the display. To do that it needs to query the dimensions of the terminal in order to decide whether all the running actions can even be displayed at once (...(more)... is printed in the case that there are more actions running than the height of the terminal window), and to make sure action titles don't exceed the width of the terminal which would cause unexpected wrapping. It also uses terminal control commands to move the cursor back to previous lines in order to modify the list of running actions as needed.

ConsoleDashboard is completely inappropriate to use if the output is actually a log file, because in that case it cannot actually move the cursor back to rewrite previous lines. SimpleDashboard is designed for this case -- it produces a much less readable output, but at least the output is append-only.

Nix has recently added a fake tty to the sandbox to get colored outputs from most build logs.

IMO this is a really bad idea on Nix's part. Being a terminal means much more than just supporting colored output -- it means you can move the cursor around, display curses-style semi-graphical UIs, prompt for user input, etc.

My guess about the crash: Nix's terminal emulation is probably reporting itself as having zero height, and ConsoleDashboard doesn't quite know what to do with this.

I would argue that this is more Nix's fault than Ekam's fault as Nix is lying to Ekam and Ekam is doing what it's designed to do based on what Nix told it. That said, I'd be happy with a patch that switches to SimpleDashboard if the terminal reports itself has having zero height.

I agree this is more of a nix bug than an ekam one, but ideally ekam would be robust enough to not fail to build things if the terminal is messed up. I'd suggest doing the fallback logic you suggest, but also log a warning about the problem.

@zimbatm, happen to know where the fake terminal logic is implemented? Ideally I'd like to see if we can get nix to do something more sensible here as well.