Skip to content

Commit

Permalink
Merge pull request #1164 from Enzime/push-yyusnrnkwkxu
Browse files Browse the repository at this point in the history
nix-daemon: enable by default
  • Loading branch information
Enzime authored Nov 16, 2024
2 parents f86f158 + ec5fce6 commit 2bcef10
Show file tree
Hide file tree
Showing 12 changed files with 37 additions and 46 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
nixConfHash=$(shasum -a 256 /etc/nix/nix.conf | cut -d ' ' -f 1)
/usr/bin/sed -i.bak \
"s/# nix.package = pkgs.nix;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
"s/# programs.fish.enable = true;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
~/.nixpkgs/darwin-configuration.nix
nix-shell -A installer
Expand Down Expand Up @@ -103,7 +103,7 @@ jobs:
nixConfHash=$(shasum -a 256 /etc/nix/nix.conf | cut -d ' ' -f 1)
/usr/bin/sed -i.bak \
"s/# nix.package = pkgs.nix;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
"s/# programs.fish.enable = true;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
~/.nixpkgs/darwin-configuration.nix
nix-shell -A installer
Expand Down Expand Up @@ -145,7 +145,7 @@ jobs:
nix flake init -t $darwin
nixConfHash=$(shasum -a 256 /etc/nix/nix.conf | cut -d ' ' -f 1)
/usr/bin/sed -i.bak \
"s/# nix.package = pkgs.nix;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
"s/# programs.fish.enable = true;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
flake.nix
popd
nix run .#darwin-rebuild -- \
Expand Down Expand Up @@ -178,7 +178,7 @@ jobs:
nix flake init -t $darwin
nixConfHash=$(shasum -a 256 /etc/nix/nix.conf | cut -d ' ' -f 1)
/usr/bin/sed -i.bak \
"s/# nix.package = pkgs.nix;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
"s/# programs.fish.enable = true;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
flake.nix
popd
nix run .#darwin-rebuild -- \
Expand Down
4 changes: 0 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,6 @@ Configuration lives in `~/.nixpkgs/darwin-configuration.nix`. Check out
environment.systemPackages =
[ pkgs.vim
];
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
nix.package = pkgs.nix;
}
```

Expand Down
4 changes: 0 additions & 4 deletions modules/examples/flake/flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,6 @@
[ pkgs.vim
];

# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
# nix.package = pkgs.nix;

# Necessary for using flakes on this system.
nix.settings.experimental-features = "nix-command flakes";

Expand Down
2 changes: 0 additions & 2 deletions modules/examples/hydra.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ let
in

{
services.nix-daemon.enable = true;

nix.settings.substituters = [ "http://cache1" ];
nix.settings.trusted-public-keys = [ "cache.daiderd.com-1:R8KOWZ8lDaLojqD+v9dzXAqGn29gEzPTTbr/GIpCTrI=" ];

Expand Down
1 change: 0 additions & 1 deletion modules/examples/lnl.nix
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@
# serviceConfig.ProcessType = "Background";
# };

services.nix-daemon.enable = true;
# services.nix-daemon.enableSocketListener = true;

nix.extraOptions = ''
Expand Down
4 changes: 0 additions & 4 deletions modules/examples/simple.nix
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@
# $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix
# environment.darwinConfig = "$HOME/.config/nixpkgs/darwin/configuration.nix";

# Auto upgrade nix package and the daemon service.
# services.nix-daemon.enable = true;
# nix.package = pkgs.nix;

# Enable alternative shell support in nix-darwin.
# programs.fish.enable = true;

Expand Down
3 changes: 0 additions & 3 deletions modules/nix/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -191,9 +191,6 @@ in
description = ''
Whether to distribute builds to the machines listed in
{option}`nix.buildMachines`.
NOTE: This requires services.nix-daemon.enable for a
multi-user install.
'';
};

Expand Down
8 changes: 4 additions & 4 deletions modules/services/nix-daemon.nix
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{ config, lib, pkgs, ... }:

with lib;
{ config, lib, ... }:

let
cfg = config.services.nix-daemon;

inherit (lib) mkDefault mkIf mkMerge mkOption types;
in

{
options = {
services.nix-daemon.enable = mkOption {
type = types.bool;
default = false;
default = true;
description = "Whether to enable the nix-daemon service.";
};

Expand Down
34 changes: 21 additions & 13 deletions modules/system/checks.nix
Original file line number Diff line number Diff line change
Expand Up @@ -129,18 +129,26 @@ let
fi
'';

singleUser = ''
if grep -q 'build-users-group =' /etc/nix/nix.conf; then
echo "error: The daemon is not enabled but this is a multi-user install, aborting activation" >&2
echo "Enable the nix-daemon service:" >&2
echo >&2
echo " services.nix-daemon.enable = true;" >&2
echo >&2
echo "or set" >&2
echo >&2
echo " nix.useDaemon = true;" >&2
echo >&2
exit 2
nixDaemon = if config.nix.useDaemon then ''
if ! dscl . -read /Groups/nixbld PrimaryGroupID &> /dev/null; then
printf >&2 'error: The daemon should not be enabled for single-user installs, aborting activation\n'
printf >&2 'Disable the nix-daemon service:\n'
printf >&2 '\n'
printf >&2 ' services.nix-daemon.enable = false;\n'
printf >&2 '\n'
# shellcheck disable=SC2016
printf >&2 'and remove `nix.useDaemon` from your configuration if it is present.\n'
printf >&2 '\n'
exit 2
fi
'' else ''
if dscl . -read /Groups/nixbld PrimaryGroupID &> /dev/null; then
printf >&2 'error: The daemon should be enabled for multi-user installs, aborting activation\n'
printf >&2 'Enable the nix-daemon service:\n'
printf >&2 '\n'
printf >&2 ' services.nix-daemon.enable = true;\n'
printf >&2 '\n'
exit 2
fi
'';

Expand Down Expand Up @@ -337,7 +345,7 @@ in
(mkIf cfg.verifyBuildUsers buildUsers)
(mkIf cfg.verifyBuildUsers preSequoiaBuildUsers)
(mkIf config.nix.configureBuildUsers buildGroupID)
(mkIf (!config.nix.useDaemon) singleUser)
nixDaemon
nixStore
(mkIf (config.nix.gc.automatic && config.nix.gc.user == null) nixGarbageCollector)
(mkIf (config.nix.optimise.automatic && config.nix.optimise.user == null) nixStoreOptimiser)
Expand Down
5 changes: 0 additions & 5 deletions pkgs/darwin-installer/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,6 @@ stdenv.mkDerivation {
mkdir -p "$HOME/.nixpkgs"
cp "${../../modules/examples/simple.nix}" "$config"
chmod u+w "$config"
# Enable nix-daemon service for multi-user installs.
if [ ! -w /nix/var/nix/db ]; then
sed -i 's/# services.nix-daemon.enable/services.nix-daemon.enable/' "$config"
fi
fi
# Skip when stdin is not a tty, eg.
Expand Down
3 changes: 3 additions & 0 deletions pkgs/darwin-uninstaller/configuration.nix
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ with lib;
launchd.daemons = mkForce {};
launchd.user.agents = mkForce {};

# Don't try to reload `nix-daemon`
nix.useDaemon = mkForce false;

system.activationScripts.postUserActivation.text = mkAfter ''
if [[ -L ~/.nix-defexpr/channels/darwin ]]; then
nix-channel --remove darwin || true
Expand Down
7 changes: 5 additions & 2 deletions pkgs/darwin-uninstaller/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ in writeShellApplication {
echo >&2 " - remove /Applications/Nix Apps symlink"
echo >&2 " - cleanup static /etc files"
echo >&2 " - disable and remove all launchd services managed by nix-darwin"
echo >&2 " - restore daemon service from nix installer (only when this is a multi-user install)"
if [[ $(stat -f '%Su' /nix/store) == "root" ]]; then
echo >&2 " - restore nix-daemon service from nix installer as this is a multi-user install"
fi
echo >&2
if [[ -t 0 ]]; then
Expand Down Expand Up @@ -87,8 +89,9 @@ in writeShellApplication {
pgrep -l nix-daemon
test -e /Library/LaunchDaemons/org.nixos.nix-daemon.plist
[[ "$(shasum -a 256 /Library/LaunchDaemons/org.nixos.nix-daemon.plist | awk '{print $1}')" == "$(shasum -a 256 /Library/LaunchDaemons/org.nixos.nix-daemon.plist | awk '{print $1}')" ]]
echo >&2 ok
nix-store --store daemon -q --hash ${stdenv.shell}
fi
echo >&2 ok
'';
};
}

0 comments on commit 2bcef10

Please sign in to comment.