NixOS / nix

Nix, the purely functional package manager
https://nixos.org/
GNU Lesser General Public License v2.1
12.8k stars 1.52k forks source link

feature request: using the nixos-nix-installer-tests installers doesn't work on aarch64-linux #5334

Open colemickens opened 3 years ago

colemickens commented 3 years ago

Is your feature request related to a problem? Please describe.

[opc@pycliexampleinstance ~]$ curl "https://nixos-nix-install-tests.cachix.org/serve/j087w6xqqspfs363449x750x9r0kn31s/install" > install                      
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                                                               
                                 Dload  Upload   Total   Spent    Left  Speed                                                                                 
100  3961    0  3961    0     0  18772      0 --:--:-- --:--:-- --:--:-- 18683                                                                                

[opc@pycliexampleinstance ~]$ chmod +x install                                                                                                                

[opc@pycliexampleinstance ~]$ ./install  --tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve                                                
downloading Nix 2.4pre19700101_283e7da binary tarball for aarch64-linux from 'https://nixos-nix-install-tests.cachix.org/serve/@tarballPath_aarch64-linux@' to
 '/tmp/nix-binary-tarball-unpack.SlWI9fPOin'...                                                                                                               
--2021-10-05 06:37:40--  https://nixos-nix-install-tests.cachix.org/serve/@tarballPath_aarch64-linux@                                                         
Resolving nixos-nix-install-tests.cachix.org (nixos-nix-install-tests.cachix.org)... 104.26.13.82, 104.26.12.82, 172.67.74.194, ...                           
Connecting to nixos-nix-install-tests.cachix.org (nixos-nix-install-tests.cachix.org)|104.26.13.82|:443... connected.                                         
HTTP request sent, awaiting response... 404 Not Found                                                                                                         
2021-10-05 06:37:40 ERROR 404: Not Found.                                                                                                                     

./install: failed to download 'https://nixos-nix-install-tests.cachix.org/serve/@tarballPath_aarch64-linux@'                                                  

[opc@pycliexampleinstance ~]$                                                                                

Particularly: ./install: failed to download 'https://nixos-nix-install-tests.cachix.org/serve/@tarballPath_aarch64-linux@'

cc: @abathur who I think did some of this work originally -- any tips?

colemickens commented 3 years ago

It looks like some of the targets in the install script aren't filled out, and I'm guessing that's because GitHub Actions doesn't have aarch64 builders...

abathur commented 3 years ago

I've been heralding the work, but @zimbatm and @domenkozar get the praise :)

For background see #4047 #4224 #4549

(though your assessment sounds about right)

domenkozar commented 3 years ago

We'd need to cross compile or provide a github runner for aarch64-linux.

colemickens commented 3 years ago

Do we know if it cross-compiles easily? I was going to ask if it's inappropriate to do so, but I guess it doesn't matter since it seems like this is only used for tests and releases I guess are just built through nixpkgs.

It would be really nice if the scripts I've got around for using these builds worked on aarch64, I will look into this right now.

colemickens commented 3 years ago

OK! I think I get it, you build all of the bits and leverage the cache and store paths to handle the actual upload part of release process, and then pre-knowledge of the store paths to construct the installer. So we'd want a native aarch64-linux installer to be built, rather than cross-compiling, for the happy-path to just work.

Idea:

And I can send a PR for this, I've been doing a bunch of remote building stuff with GitHub Actions lately.

I'm not sure if this is considered appropriate since it's only for "internal" tests right now. If someone with more authority or more associated with the org wanted to "own" this machine, I can relay my script for setting up the free machine? I've got something that runs nixos-infect right now and am iterating on an even more reliable, more automated setup process that could be a one-liner when I'm done.

Thoughts? I'm not necessarily "blocked" by this, but I'd love to have it available. (I get to skip an unnecessary channel install when I can direct install an unstable nix.)

domenkozar commented 3 years ago

Adding infrastructure to NixOS org is currently hard because it's unclear who to ask for permission.

stale[bot] commented 2 years ago

I marked this as stale due to inactivity. → More info