nixpkgs/pkgs/tools/system/s6-rc
Alyssa Ross 6e6c8b7338 s6-rc: fix cross builds that run s6-rc-compile
The reason for this change is explained in the long comment I added.

Here's a simple example of the problem:

	let
	  pkgs = import <nixpkgs> { crossSystem.system = "aarch64-linux"; };
	in

	pkgs.callPackage ({ stdenv, s6-rc }: stdenv.mkDerivation {
	  name = "s6-rc-compiled";

	  nativeBuildInputs = [ s6-rc ];

	  buildCommand = ''
	    mkdir in
	    s6-rc-compile $out in
	  '';
	}) {}

We're cross compiling for aarch64 here, so we'd expect the scripts
generated by this derivation to be things we could run on aarch64.
But when I build this on my x86_64 machine, without this change
applied, $out/servicedirs/s6rc-oneshot-runner/run gets generated full
of references to x86_64 non-cross store paths for execline, s6, and
s6-rc.

With this change applied, the scripts generated by the above
expression now refer to the cross-compiled aarch64 store paths for
execline, s6, and s6-rc.
2021-08-18 20:09:19 +00:00
..
default.nix