Unverified Commit 2a071a04 authored by Randy Eckenrode's avatar Randy Eckenrode
Browse files

Merge branch 'master' into staging-next

parents 2d38540b 9a01fad6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -485,7 +485,7 @@ pkgs/by-name/lx/lxc* @adamcstephens

# Darwin
/pkgs/by-name/ap/apple-sdk                     @NixOS/darwin-core
/pkgs/os-specific/darwin/apple-source-releases @NixOS/darwin-core
/pkgs/os-specific/darwin                       @NixOS/darwin-core
/pkgs/stdenv/darwin                            @NixOS/darwin-core

# BEAM
+27 −6
Original line number Diff line number Diff line
@@ -842,17 +842,38 @@ general. A number of other parameters can be overridden:
  (hello { }).override { extraRustcOpts = "-Z debuginfo=2"; }
  ```

- The lint level cap passed to `rustc` (`allow` by default, which
  silences all lints). Because `rustc` only honours the first
  `--cap-lints` it receives, this cannot be changed via
  `extraRustcOpts`; use this attribute instead. Useful when overriding
  the `rust` attribute to point at `clippy-driver`, since clippy lints
  are also capped by this flag:
- The lint level cap passed to `rustc`. Defaults to `null`, which
  auto-resolves to `"allow"` (silences all lints) when `lints` is
  empty, or `"forbid"` (no cap) when `lints` is set. Because `rustc`
  only honours the first `--cap-lints` it receives, this cannot be
  changed via `extraRustcOpts`; use this attribute instead. Useful
  when overriding the `rust` attribute to point at `clippy-driver`,
  since clippy lints are also capped by this flag:

  ```nix
  (hello { }).override { capLints = "warn"; }
  ```

- Lint configuration mirroring Cargo.toml's `[lints]` table. Keys are
  tool names (`rust`, `clippy`, `rustdoc`); values map lint names to
  either a level string (`"allow"`, `"warn"`, `"deny"`, `"forbid"`) or
  `{ level = "..."; priority = <int>; }`. Lower priorities are emitted
  first so that more specific lints can override them. Setting a
  non-empty `lints` raises the default `capLints` to `"forbid"` so the
  lints actually apply:

  ```nix
  (hello { }).override {
    lints.rust = {
      unsafe_code = "forbid";
      unused = {
        level = "deny";
        priority = -1;
      };
    };
  }
  ```

- Phases, just like in any other derivation, can be specified using
  the following attributes: `preUnpack`, `postUnpack`, `prePatch`,
  `patches`, `postPatch`, `preConfigure` (in the case of a Rust crate,
+2 −0
Original line number Diff line number Diff line
@@ -149,6 +149,8 @@

- `services.uptime` has been removed because the package it relies on does not exist anymore in nixpkgs.

- `post-resume.target` has been removed. See {manpage}`systemd.special(7)` about `sleep.target` for instructions on ordering a process after resume with `ExecStop=`.

- `services.kubernetes.addons.dns.coredns` has been renamed to `services.kubernetes.addons.dns.corednsImage` and now expects a
package instead of attrs. Now, by default, nixpkgs.coredns in conjunction with dockerTools.buildImage is used, instead
of pulling the upstream container image from Docker Hub. If you want the old behavior, you can set:
+15 −42
Original line number Diff line number Diff line
@@ -90,68 +90,35 @@ in
      https://www.freedesktop.org/software/systemd/man/latest/systemd.special.html#sleep.target
    '';

    systemd.targets.post-resume = {
      description = "Post-Resume Actions";
      requires = [ "post-resume.service" ];
      after = [ "post-resume.service" ];
      wantedBy = [ "sleep.target" ];
      unitConfig.StopWhenUnneeded = true;
    };

    systemd.services = {
      # Service executed before suspending/hibernating.
      pre-sleep = {
        description = "Pre-Sleep Actions";
      sleep-actions = {
        description = "Sleep Actions";
        wantedBy = [ "sleep.target" ];
        before = [ "sleep.target" ];
        unitConfig.StopWhenUnneeded = true;
        script = ''
          # NixOS pre-sleep script

          # config.powerManagement.powerDownCommands
          ${cfg.powerDownCommands}
        '';
        serviceConfig.Type = "oneshot";
      };

      # Service executed after resuming from suspend/hibernate
      post-resume = {
        description = "Post-Resume Actions";
        # Pulled in by post-resume.service above
        after = [ "sleep.target" ];
        script = ''
        preStop = ''
          # NixOS pre-resume script

          /run/current-system/systemd/bin/systemctl try-restart --no-block post-resume.target

          # config.powerManagement.resumeCommands
          ${cfg.resumeCommands}

          # config.powerManagement.powerUpCommands
          ${cfg.powerUpCommands}
        '';
        serviceConfig.Type = "oneshot";
        serviceConfig = {
          Type = "oneshot";
          RemainAfterExit = true;
        };

      # Service executed before shutdown
      pre-shutdown = {
        description = "Pre-Shutdown Actions";
        wantedBy = [
          "shutdown.target"
        ];
        before = [
          "shutdown.target"
        ];
        script = ''
          # NixOS pre-shutdown script

          # config.powerManagement.powerDownCommands
          ${cfg.powerDownCommands}
        '';
        serviceConfig.Type = "oneshot";
        unitConfig.DefaultDependencies = false;
      };

      # Service executed after boot
      # Service executed after boot, and stopped during shutdown
      post-boot = {
        description = "Post-Boot Actions";
        # It's not well defined at what point in the bootup sequence this should run
@@ -167,6 +134,12 @@ in
          # config.powerManagement.powerUpCommands
          ${cfg.powerUpCommands}
        '';
        preStop = ''
          # NixOS pre-shutdown script

          # config.powerManagement.powerDownCommands
          ${cfg.powerDownCommands}
        '';
        serviceConfig = {
          Type = "oneshot";
          RemainAfterExit = true;
+44 −14
Original line number Diff line number Diff line
@@ -54,12 +54,41 @@ in
    };

    # Provide the NixOS/Nixpkgs sources in /etc/nixos.  This is required
    # for nixos-install.
    boot.postBootCommands = lib.mkAfter ''
    # for nixos-install.  We use a systemd service rather than
    # boot.postBootCommands so that ordering relative to other
    # early-boot services (e.g. register-nix-paths in QEMU VMs) is
    # explicit.
    systemd.services.nix-channel-init = {
      description = "Initialize NixOS Channel";
      # Run early so the channel is available before regular services.
      # nix-env is invoked before nix-daemon.socket is up, so it
      # accesses the store directly (we are root).
      unitConfig.DefaultDependencies = false;
      wantedBy = [ "sysinit.target" ];
      before = [
        "sysinit.target"
        "shutdown.target"
        "nix-daemon.socket"
        "nix-daemon.service"
      ];
      after = [
        "local-fs.target"
        # In QEMU VMs the store DB is populated by register-nix-paths.
        # On real hardware this unit does not exist and the dependency
        # is silently ignored by systemd.
        "register-nix-paths.service"
      ];
      conflicts = [ "shutdown.target" ];
      restartIfChanged = false;
      serviceConfig = {
        Type = "oneshot";
        RemainAfterExit = true;
      };
      script = ''
        if ! [ -e /var/lib/nixos/did-channel-init ]; then
          echo "unpacking the NixOS/Nixpkgs sources..."
          mkdir -p /nix/var/nix/profiles/per-user/root
        ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/per-user/root/channels \
          ${lib.getExe' config.nix.package.out "nix-env"} -p /nix/var/nix/profiles/per-user/root/channels \
            -i ${channelSources} --quiet --option build-use-substitutes false \
            ${lib.optionalString config.boot.initrd.systemd.enable "--option sandbox false"} # There's an issue with pivot_root
          mkdir -m 0700 -p /root/.nix-defexpr
@@ -69,4 +98,5 @@ in
        fi
      '';
    };
  };
}
Loading