Copying copy-closure
Shortly after all the work to reduce system closure size last time, I
tried adding the necessary packages to support nix-copy-closure
and
saw it start building a complete C++ system with Boost. My fears that
this would lead to quite a large increase in the system size were, it
turned out, entirely founded.
So I wrote my own - or at least, a quite minimal substitute. The core
logic is simple - on the sender, we get the list of required packages,
then on the target we check for the existence of
/nix/store/eeeeeeeeeeeeee-foo
for each of them, and whatever’s
missing we send across the link using cpio.
It sounds simple, and it should be simple, and in retrospect it was
simple. Along the way I went on a bit of a Qemu networking tangent and
learned quite a lot about the bash coproc
command
In other news I have also just pushed a small change to allow USB ethernet devices to be used with bordervm which should hopefully make it easier for people to set up a test internet for their hardware. This was not at all motivated by having had to remove the PCI ethernet card in my build system so I could plug in a video card to play motorbike games on instead, no, honest.