MatthewCroughan / NixThePlanet

Run macOS, Windows and more via a single Nix command, or simple nixosModules
MIT License
534 stars 12 forks source link

updated InstallAssistant.pkg #31

Closed kirillrdy closed 2 months ago

kirillrdy commented 2 months ago

first link from https://mrmacintosh.com/macos-ventura-13-full-installer-database-download-directly-from-apple/

@MatthewCroughan what do you think about nixfmt-rfc-style ?

MatthewCroughan commented 2 months ago

@kirillrdy I don't really care about automated formatting, but if you prefer a certain kind of formatting when you make the PR, just make it a separate commit and I'll accept it.

How do you think they get the latest URL? I want to automate this.

kirillrdy commented 2 months ago

i'll ignore auto-formatting for now.

re URLs, if you have uptodate macos ? https://gist.github.com/b0gdanw/26f528dda5abea7ce6fe633ca2ef1063

MatthewCroughan commented 2 months ago

Just to be clear, by automated formatting, I mean enforcement at a CI/commit-hook level.

MatthewCroughan commented 2 months ago

Maybe some of these InstallAssistant packages are available on archive.org as a backup, or may eventually be. We could use those if they are.

kirillrdy commented 2 months ago

Maybe some of these InstallAssistant packages are available on archive.org as a backup, or may eventually be. We could use those if they are.

an other ( more painful alternative ) is to boot into RecoveryImage and download latest installer using their GUI :-)

MatthewCroughan commented 2 months ago

The CI machine is having hardware issues, and I'm not at home to fix it. So I'm having a bit of trouble verifying this the way I'd like to. Is it possible you could verify it and tell me if it works as expected up to 5 times with nix build --rebuild ? @kirillrdy

kirillrdy commented 2 months ago

The CI machine is having hardware issues, and I'm not at home to fix it. So I'm having a bit of trouble verifying this the way I'd like to. Is it possible you could verify it and tell me if it works as expected up to 5 times with nix build --rebuild ? @kirillrdy

I've built this at least twice on two different machines, but will do more and will report

kirillrdy commented 2 months ago

ok i've done 5 rebuilds

[kirillvr@tsutenkaku:~/NixThePlanet]$ nix build .#macos-ventura-image --rebuild
error: derivation '/nix/store/cy0cmdbkw3zdki5ksdlrjx8jfl3hk61i-mac_hdd_ng.qcow2.drv' may not be deterministic: output '/nix/store/0z2pwrvpxi3j8gvscfdnmmkbi59bxdf4-mac_hdd_ng.qcow2' differs

I assume old image was also non deterministic.

no urgency to merge this, take your time

MatthewCroughan commented 2 months ago

Yeah derivations aren't deterministic, and don't need to be. One of Nix's strengths is allowing you to model multiple kinds of reproducibility, and cache non-deterministic behavior, whilst also having the option of using content-addressed models as well. In this case all that matters is whether the derivations succeed and produce $out or not, and if that worked for you then I'm happy to merge it here.

MatthewCroughan commented 2 months ago

CI is now running, and it's succeeding on the repeatability test now https://hercules-ci.com/github/MatthewCroughan/NixThePlanet/jobs/477/effects/effects.macos-repeatability-test/log

I managed to fix the CI machine remotely by coercing it into using

boot = {
  tmp = {
    useTmpfs = true;
    tmpfsSize = "90%";
  };
}

Whenever the virtual machine was too slow at writing/reading I would get

mac_hdd_ng.qcow2> Installation cannot proceed
mac_hdd_ng.qcow2> because the installer is
mac_hdd_ng.qcow2> damaged.
mac_hdd_ng.qcow2> Redownload the installer and try again.

Using the 64GB of memory via tmpfs allows the CI to run smoothly, whereas the disk(s) which are on multi-device bcachefs lead to the above error.