Remote cross-compile for NixOS

And even then: the optional-dependency checks may work differently in
the native case and in the cross-compilation case, data file generation
may work differently, etc.

Indeed. Then, currently my raspberry pi is basically unusable with NixOS
(tried for a while, rolled back to debian), so there is a clear need for
cross-compilation :slight_smile:

Then, I’m not sure the question of reproducibility is a big deal: its
definition is project-specific. For instance, NixOS’s hydra could just
define that reproducibility means reproducibility without
cross-compiling, and accept builds that have been validated by X
semi-trusted builders.

Anyway, I don’t think adding a feature that wouldn’t handle
reproducibility well would impair reproducibility with the features that
we currently have: previously-reproducible builds would still be
reproducible, and only newly possible builds (the cross-compiling ones)
could maybe not be reproducible.

Anyway, I don’t think adding a feature that wouldn’t handle
reproducibility well would impair reproducibility with the features that
we currently have: previously-reproducible builds would still be
reproducible, and only newly possible builds (the cross-compiling ones)
could maybe not be reproducible.

Identification of cross-compilation and native compilation would hurt
reproducibility in a sense for paths previously available as native
builds; if we ever have path rewriting we consider good enough, it can
be used for substitutions that only hurt reproducibility in an opt-in
way.

Anyway, I don’t think adding a feature that wouldn’t handle
reproducibility well would impair reproducibility with the features that
we currently have: previously-reproducible builds would still be
reproducible, and only newly possible builds (the cross-compiling ones)
could maybe not be reproducible.

Identification of cross-compilation and native compilation would hurt
reproducibility in a sense for paths previously available as native
builds; if we ever have path rewriting we consider good enough, it can
be used for substitutions that only hurt reproducibility in an opt-in
way.

Oh indeed, I was considering only paths that were not previously
available as native builds, assuming the build power for
currently-supported infrastructures was enough and did not deserve
having hydra cross-compile automatically. This indeed no longer really
makes sense if cross-compilation can be achieved in a transparent way,
except for reproducibility.