1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2025-03-07 01:07:03 +00:00
Commit graph

62 commits

Author SHA1 Message Date
Emily
03877755e9 checks: add check for Determinate
This provides a more useful error message than the `/etc/nix/nix.conf`
hash mismatch error that would otherwise occur.
2025-02-07 20:08:26 +00:00
Emily
adc989f7ec nix: remove nix.configureBuildUsers
We now manage the build users unconditionally when we manage the
Nix installation.
2025-02-07 19:44:59 +00:00
Emily
c796587d2e nix: remove nix.useDaemon
We now assume the daemon is used unconditionally when we manage the
Nix installation.

The `nix.gc` and `nix.optimise` services lose their `$NIX_REMOTE`
setting rather than making it unconditional, as the NixOS `nix.gc`
module does not set it. Possibly it should, but I think uniformity
between the two systems is better than diverging, even though I kind
of hate that the non‐daemon method of access is even a thing.
2025-02-07 19:44:59 +00:00
Emily
e182d8dff6 nix: add nix.enable option to disable Nix management
This is an equivalent of the `nix.enable` option from NixOS
and Home Manager. On NixOS, it mostly serves to allow building
fixed‐configuration systems without any Nix installation at
all. It should work for that purpose with nix-darwin too, and the
implementation is largely the same, but the main use case is more
similar to the Home Manager option: to allow the use of nix-darwin
with an unmanaged system installation of Nix, including when there
is another service expecting to manage it, as with Determinate.

By providing an escape hatch to opt out of Nix management entirely,
this will also allow us to consolidate and simplify our existing Nix
installation management, by being more opinionated about things like
taking ownership of the daemon and the build users. Porting one option
from NixOS lets us drop two that only ever existed in nix-darwin and
reduce overall complexity.
2025-02-07 19:44:59 +00:00
Emily
1f7ed1c7fe checks: remove nixChannels check
I don’t think this is very important given the `nixPath` check,
and it doesn’t fit very well into a post‐user‐activation world.
2025-02-05 15:14:04 +00:00
tarc
f1cf8c4f5a checks: fix sw_vers parameter for macOSVersion (--productVersion, not -productVersion) 2025-01-30 12:46:25 -03:00
Emily
2733527a58 {environment,readme}: default configuration path to /etc/nix-darwin 2025-01-27 23:10:14 +00:00
Emily
2119dd10f6 checks: remove darwinChanges
It seems like this has been broken since
26bab2fd32 from 2018; macOS `diff(1)`
does not support these arguments and the `$PATH` has been fixed since
that point. Before that, it would presumably only have worked if you
added GNU diffutils to `environment.systemPackages`.

Proactively notifying users about breaking changes isn’t a bad idea,
but the activation script doesn’t seem like the right place for it,
and as it’s non‐blocking it’s likely that even if it worked it
would get drowned out by the later output anyway. I’d like to move
the changelog into release notes as part of the manual, which would
requires changes to this anyway. Since it’s been broken for almost
seven years anyway, let’s just drop it for now and revisit later.
2025-01-27 20:59:20 +00:00
Emily
65cc1fa8e3
Merge pull request #1283 from emilazy/push-nynpmzrmmozu
checks: remove `runLink`
2025-01-22 00:01:16 +00:00
Emily
c3954c51c4 checks: remove runLink
Now that we create `/run` as part of activation, this is no longer
useful for anaything.
2025-01-18 23:15:41 +00:00
Emily
e1976612f0 system: tweak ShellCheck settings 2025-01-18 19:34:21 +00:00
Michael Hoang
c738b81ff5
Merge pull request #1265 from emilazy/push-turlyykvtunt
checks: check for macOS ≥ 11.3
2025-01-17 14:03:04 +11:00
Emily
d5aeb4e5b1 checks: recommend sudo nix-channel 2025-01-14 01:19:21 +00:00
Emily
303a8143a4 checks: check for macOS ≥ 11.3 2025-01-12 19:43:29 +00:00
gnammix
89be82cb2b power: quote in string triggered shellcheck SC2016 2025-01-04 14:35:53 +01:00
gnammix
492a72007a
power: echo to print in error messages
Co-authored-by: Michael Hoang <Enzime@users.noreply.github.com>
2024-12-31 14:38:42 +01:00
gnammix
62d8f5f289 power: move the check for restartPowerfailure support to checks.nix 2024-12-29 12:13:54 +01:00
isabel
fece297d64
fix: allow users to disable the homebrew check 2024-11-19 10:11:23 +00:00
Michael Hoang
34588d57cf
Merge pull request #879 from jtt9340/spaces-in-nixpath
fix broken NIX_PATH if paths contain spaces
2024-11-17 02:04:32 +00:00
Michael Hoang
6d794390fa checks: check single user installs don't have the nix-daemon enabled
Remove suggestion to set `nix.useDaemon` as it came without an
explanation of how the `nix-daemon` would be unmanaged and would most
likely lead to most users running an old version of Nix as the daemon.
2024-11-16 23:19:11 +11:00
Joey Territo
9077d812d8 activate-user script: fix broken NIX_PATH if paths contain spaces 2024-11-13 22:24:48 -06:00
Ameya Shenoy
67fbc7aa24 checks: add check to ensure Homebrew is installed
Co-Authored-By: Michael Hoang <enzime@users.noreply.github.com>
2024-11-13 09:53:17 +11:00
Michael Hoang
041996803a treewide: fix shellcheck warnings and errors 2024-11-07 17:20:00 +11:00
Michael Hoang
9afef9950f checks: move manual /run instructions to activation 2024-11-07 17:15:22 +11:00
Emily
ef16775e43 checks: show Sequoia migration commands for other installers
This is hopefully largely cosmetic, but should increase user
confidence in the safety and effectiveness of the migration, and the
Determinate Systems and Lix installer commands will also update the
`/nix/receipt.json` files to match the changes made. They cannot
properly handle the format of each other’s receipts, so we need to
detect which was used.
2024-09-17 22:20:48 +01:00
Emily
88b97aa49c {ids,checks}: update for new builder UID/GID values 2024-09-11 01:17:01 +01:00
Emily
9c60c95008 checks: make oldBuildUsers check fail hard
Checking for the Sequoia stuff won’t work properly if a system is
still in this old state. Best to be loud about it to deal with any
straggler systems that haven’t yet dealt with this issue.
2024-09-11 00:37:08 +01:00
Emily
2af5f0fb9e checks: factor out nix.useDaemon check 2024-09-11 00:37:08 +01:00
natsukium
ec76c31dbd
checks.nix: fix typo 2024-09-10 22:20:22 +09:00
Alice Carroll
691a590bff
feat: allow disabling channels 2024-08-17 02:51:01 +03:00
Emily
cf297a8d24
Merge pull request #976 from emilazy/openssh-use-links-for-authorized-keys
ssh: use symlinks for `authorizedKeys` options
2024-07-10 09:17:22 +01:00
Samuel Tam
4141697ed2
checks.nix: disable verifyBuildUsers for auto-allocate-uids 2024-06-23 15:14:48 +08:00
Emily
b833d4a32d ssh: use symlinks for authorizedKeys options
As explained in the changelog and activation check, the previous
implementation had a nasty security bug that made removing a user’s
authorized keys effectively a no‐op.
2024-06-15 12:15:13 +01:00
Weijia Wang
def1e23be8 treewide: remove lib.mdDoc 2024-04-19 04:05:50 +02:00
Malo Bourgon
398510f601 Add nix.optimise module 2024-03-27 12:50:04 -07:00
Michael Hoang
22620845fe readme: update with new flaky instructions 2023-07-11 18:59:05 +10:00
Michael Hoang
5288a72354 Allow flaky installation with darwin-rebuild 2023-07-11 18:59:05 +10:00
Emily
e65131e69c treewide: convert all option docs to Markdown
This process was automated by [my fork of `nix-doc-munge`]; thanks
to @pennae for writing this tool! It automatically checks that the
resulting documentation doesn't change, although my fork loosens
this a little to ignore some irrelevant whitespace and typographical
differences.

As of this commit there is no DocBook remaining in the options
documentation.

You can play along at home if you want to reproduce this commit:

    $ NIX_PATH=nixpkgs=flake:nixpkgs/c1bca7fe84c646cfd4ebf3482c0e6317a0b13f22 \
      nix shell nixpkgs#coreutils \
      -c find . -name '*.nix' \
      -exec nix run github:emilazy/nix-doc-munge/0a7190f600027bf7baf6cb7139e4d69ac2f51062 \
      {} +

[my fork of `nix-doc-munge`]: https://github.com/emilazy/nix-doc-munge
2023-06-24 10:48:55 +01:00
Cole Helbling
9c7a07b8b2
system/checks: allow disabling the buildUsers check
This allows systems with auto-allocate-uids enabled to work (by
disabling this check).
2023-06-06 16:21:14 -07:00
John Soo
add08fcab0 flakes: Do not verify channels when using flakes. 2023-05-31 07:28:23 -06:00
Malo Bourgon
ffc8ec5c9a Add .nix-defexpr to NIX_PATH the way the NixOS module does 2022-08-16 17:41:08 -07:00
Malo Bourgon
7e74c1c9fb Move build user options to nix module to improve overlap with NixOS
Also add `config.ids` like in NixOS.
2022-08-16 10:41:51 -07:00
Matthew Toohey
a4f5ff411e Fix synthetic.conf instructions 2022-04-14 20:07:28 -04:00
Jean-Francois Chevrette
db933d1d41
change inner double quotes to single quotes 2021-05-12 17:47:29 -04:00
Daiderd Jordan
5c3146b75d
users: migrate nixbld -> _nixbld
According to some investigation creating "role" accounts avoids
migration problems when upgrading to certain macOS versions, so create
the build users to match that definition and remove the old ones if
present.

    Role accounts require name starting with _ and UID in 200-400 range
2021-02-17 22:04:54 +01:00
Daiderd Jordan
c6f44ea7ff
installer: handle apfs.util on macOS 11.0 Big Sur
The flages of apfs.util changed in 11.0 so try both cases.

Fixes #249
2020-11-15 15:17:13 +01:00
Daiderd Jordan
db82d8b9af
clarify store/state permission check 2020-10-18 23:31:38 +02:00
Daiderd Jordan
80a8a591a9
installer: try creating /run using synthetic.conf
Since macOS 10.15 Catalina / can't be changed directly anymore.

Fixes #166
2020-03-28 19:12:21 +01:00
Daiderd Jordan
4bffc92b7a
nix: check nix.useDaemon value
This case will cause problems when existing files in /etc are replaced
instead of skipped with a warning, potentially breaking the nix install
in the process.
2019-07-01 22:37:03 +02:00
Daiderd Jordan
8c2b25e60d
nix: fix useDaemon conditions
The nix.useDaemon option enables using a multi-user install without
managing the nix installation with nix-darwin.  The following checks
apply to both cases.
2019-07-01 21:24:29 +02:00