Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preliminary support for macOS 15 beta #1038

Merged
merged 4 commits into from
Jul 9, 2024

Conversation

cole-h
Copy link
Member

@cole-h cole-h commented Jul 9, 2024

Description

Ref #1001

Checklist
  • Formatted with cargo fmt
  • Built with nix build
  • Ran flake checks with nix flake check
  • Added or updated relevant tests (leave unchecked if not applicable)
  • Added or updated relevant documentation (leave unchecked if not applicable)
  • Linked to related issues (leave unchecked if not applicable)
Validating with install.determinate.systems

If a maintainer has added the upload to s3 label to this PR, it will become available for installation via install.determinate.systems:

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix/pr/$PR_NUMBER | sh -s -- install

It's the same in every branch, so let's inline it at the one place
it matters.
This may have implications for unattended setups that we'll want
to explore at a later date.
@cole-h cole-h added this to the 0.20.1 milestone Jul 9, 2024
@@ -207,46 +208,81 @@ pub struct CommonSettings {
pub diagnostic_endpoint: Option<String>,
}

#[derive(Deserialize, Clone, Debug, PartialEq)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It'd be great to move this into its own module, since it isn't really belonging here. Otherwise lgtm

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think there's a better place to put it, but open to suggestions.

@cole-h cole-h marked this pull request as ready for review July 9, 2024 18:52
@grahamc grahamc enabled auto-merge (squash) July 9, 2024 18:55
@grahamc grahamc merged commit 0adc599 into main Jul 9, 2024
16 checks passed
@grahamc grahamc deleted the cole/fh-357-use-new-id-range-on-macos-15 branch July 9, 2024 18:58
@emilazy
Copy link

emilazy commented Jul 9, 2024

Sequoia currently mangles users in the old range on upgrade; I think it would be best if we could pick a single range to use for all versions to avoid breaking people’s setups when they upgrade their OS. (Though there are so many existing installations that it might be somewhat futile.)

@grahamc
Copy link
Member

grahamc commented Jul 9, 2024

Can you clarify what you mean by how it mangles them?

We're going with the 450 range for now to make it work for our users who need it now, while also working to figure out a good plan for the whole userbase. We're already documenting the flag for overriding it, so making it do this by default isn't making the problem worse -- just makes the users less annoyed

@grahamc
Copy link
Member

grahamc commented Jul 9, 2024

(btw, we're taking this approach so we can help our users while continuing to collaborate with upstream on a unified approach)

@emilazy
Copy link

emilazy commented Jul 10, 2024

Fair enough, I agree that this is better than the previous status quo – just wasn’t sure if it was meant to fix the ranges for good :) I hope to get the time to test upgrade behaviour and potential ID ranges more thoroughly and hopefully we can settle on values as an ecosystem soon; it’s been a busy time.

Re: mangling, my understanding is that it just rewrites them with its new system users (maybe leaving the old ones around with no UID assignment or something weird like that?). Everything kind of just breaks and the error messages are confusing. So unless Apple adjust something by the time of the final Sequoia release it’s going to be mayhem when it drops, even if we have polished migration tools in place.

@corduroybera
Copy link

@emilazy Earlier I got myself into the mangled state you described, hence me ending up here. Here's a bit of info if helpful:

  • For this machine (m3 macbook), I used determinate installer, and I use flakes w/ nix-darwin + home-manager for system configuration. Pretty much keeping it to nix-darwin for system setup & a few trailing brew installs, with home-manager for all my programs and their configuration.
  • My darwin-rebuild was already in a flakey state past 2-3 days from all the python & swift patches going on, at the time of upgrade I was actively getting one of those swift-related error messages and wanted to see if upgrade might help (lol).
  • Upgraded directly from non-beta 14.5 -> sequoia developer beta

After upgrade, ran into this error when attempting again:

❯ darwin-rebuild switch --flake .
building the system configuration...
error: the user '_nixbld1' in the group 'nixbld' does not exist

I've never really looked much into the underlying Nix install setup. But here's some other details in case they're relevant:

  • No nix references in /etc/passwd or /etc/group
  • Intact /nix/ folder
  • Intact nix-darwin configuration in /private/var/run/current-system/
  • Intact home-manager folder at /etc/profiles/per-user/corduroybera/

I was going to entirely reinstall nix, but will leave it in this state overnight in case there's any commands you want me to run to collect additional data when I wake up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants