Unverified Commit a90b3d5d authored by github-actions[bot]'s avatar github-actions[bot] Committed by GitHub
Browse files

Merge master into staging-next

parents f3e8528f 4b9592ba
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -246,7 +246,7 @@ in
      }
      {
        assertion = cfg.minSpareServers < cfg.maxSpareServers;
        message = "services.hydra.minSpareServers cannot be bigger than servives.hydra.maxSpareServers";
        message = "services.hydra.minSpareServers cannot be bigger than services.hydra.maxSpareServers";
      }
    ];

@@ -311,6 +311,11 @@ in
      )
    ];

    systemd.slices.system-hydra = {
      description = "Hydra Slice";
      documentation = [ "file://${cfg.package}/share/doc/hydra/index.html" "https://nixos.org/hydra/manual/" ];
    };

    systemd.services.hydra-init =
      { wantedBy = [ "multi-user.target" ];
        requires = lib.optional haveLocalDB "postgresql.service";
@@ -371,6 +376,7 @@ in
        serviceConfig.User = "hydra";
        serviceConfig.Type = "oneshot";
        serviceConfig.RemainAfterExit = true;
        serviceConfig.Slice = "system-hydra.slice";
      };

    systemd.services.hydra-server =
@@ -389,6 +395,7 @@ in
            User = "hydra-www";
            PermissionsStartOnly = true;
            Restart = "always";
            Slice = "system-hydra.slice";
          };
      };

@@ -408,6 +415,7 @@ in
            ExecStopPost = "${hydra-package}/bin/hydra-queue-runner --unlock";
            User = "hydra-queue-runner";
            Restart = "always";
            Slice = "system-hydra.slice";

            # Ensure we can get core dumps.
            LimitCORE = "infinity";
@@ -430,6 +438,7 @@ in
            User = "hydra";
            Restart = "always";
            WorkingDirectory = baseDir;
            Slice = "system-hydra.slice";
          };
      };

@@ -442,6 +451,7 @@ in
        serviceConfig =
          { ExecStart = "@${hydra-package}/bin/hydra-update-gc-roots hydra-update-gc-roots";
            User = "hydra";
            Slice = "system-hydra.slice";
          };
        startAt = "2,14:15";
      };
@@ -455,6 +465,7 @@ in
        serviceConfig =
          { ExecStart = "@${hydra-package}/bin/hydra-send-stats hydra-send-stats";
            User = "hydra";
            Slice = "system-hydra.slice";
          };
      };

@@ -474,6 +485,7 @@ in
            User = "hydra-queue-runner";
            Restart = "always";
            RestartSec = 5;
            Slice = "system-hydra.slice";
          };
      };

@@ -492,6 +504,7 @@ in
            fi
          '';
        startAt = "*:0/5";
        serviceConfig.Slice = "system-hydra.slice";
      };

    # Periodically compress build logs. The queue runner compresses
@@ -509,6 +522,7 @@ in
            find ${baseDir}/build-logs -type f -name "*.drv" -mtime +3 -size +0c | xargs -r $compression --force --quiet
          '';
        startAt = "Sun 01:45";
        serviceConfig.Slice = "system-hydra.slice";
      };

    services.postgresql.enable = lib.mkIf haveLocalDB true;
+55 −58
Original line number Diff line number Diff line
@@ -4,17 +4,14 @@
  lib,
  ...
}:

with lib;

let
  cfg = config.services.snapper;

  mkValue =
    v:
    if isList v then
    if lib.isList v then
      "\"${
        concatMapStringsSep " " (escape [
        lib.concatMapStringsSep " " (lib.escape [
          "\\"
          " "
        ]) v
@@ -23,7 +20,7 @@ let
      "yes"
    else if v == false then
      "no"
    else if isString v then
    else if lib.isString v then
      "\"${v}\""
    else
      builtins.toJSON v;
@@ -33,14 +30,14 @@ let
  # "it's recommended to always specify the filesystem type"  -- man snapper-configs
  defaultOf = k: if k == "FSTYPE" then null else configOptions.${k}.default or null;

  safeStr = types.strMatching "[^\n\"]*" // {
  safeStr = lib.types.strMatching "[^\n\"]*" // {
    description = "string without line breaks or quotes";
    descriptionClass = "conjunction";
  };

  configOptions = {
    SUBVOLUME = mkOption {
      type = types.path;
    SUBVOLUME = lib.mkOption {
      type = lib.types.path;
      description = ''
        Path of the subvolume or mount point.
        This path is a subvolume and has to contain a subvolume named
@@ -49,16 +46,16 @@ let
      '';
    };

    FSTYPE = mkOption {
      type = types.enum [ "btrfs" ];
    FSTYPE = lib.mkOption {
      type = lib.types.enum [ "btrfs" ];
      default = "btrfs";
      description = ''
        Filesystem type. Only btrfs is stable and tested.
      '';
    };

    ALLOW_GROUPS = mkOption {
      type = types.listOf safeStr;
    ALLOW_GROUPS = lib.mkOption {
      type = lib.types.listOf safeStr;
      default = [ ];
      description = ''
        List of groups allowed to operate with the config.
@@ -67,8 +64,8 @@ let
      '';
    };

    ALLOW_USERS = mkOption {
      type = types.listOf safeStr;
    ALLOW_USERS = lib.mkOption {
      type = lib.types.listOf safeStr;
      default = [ ];
      example = [ "alice" ];
      description = ''
@@ -79,64 +76,64 @@ let
      '';
    };

    TIMELINE_CLEANUP = mkOption {
      type = types.bool;
    TIMELINE_CLEANUP = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Defines whether the timeline cleanup algorithm should be run for the config.
      '';
    };

    TIMELINE_CREATE = mkOption {
      type = types.bool;
    TIMELINE_CREATE = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Defines whether hourly snapshots should be created.
      '';
    };

    TIMELINE_LIMIT_HOURLY = mkOption {
      type = types.int;
    TIMELINE_LIMIT_HOURLY = lib.mkOption {
      type = lib.types.int;
      default = 10;
      description = ''
        Limits for timeline cleanup.
      '';
    };

    TIMELINE_LIMIT_DAILY = mkOption {
      type = types.int;
    TIMELINE_LIMIT_DAILY = lib.mkOption {
      type = lib.types.int;
      default = 10;
      description = ''
        Limits for timeline cleanup.
      '';
    };

    TIMELINE_LIMIT_WEEKLY = mkOption {
      type = types.int;
    TIMELINE_LIMIT_WEEKLY = lib.mkOption {
      type = lib.types.int;
      default = 0;
      description = ''
        Limits for timeline cleanup.
      '';
    };

    TIMELINE_LIMIT_MONTHLY = mkOption {
      type = types.int;
    TIMELINE_LIMIT_MONTHLY = lib.mkOption {
      type = lib.types.int;
      default = 10;
      description = ''
        Limits for timeline cleanup.
      '';
    };

    TIMELINE_LIMIT_QUARTERLY = mkOption {
      type = types.int;
    TIMELINE_LIMIT_QUARTERLY = lib.mkOption {
      type = lib.types.int;
      default = 0;
      description = ''
        Limits for timeline cleanup.
      '';
    };

    TIMELINE_LIMIT_YEARLY = mkOption {
      type = types.int;
    TIMELINE_LIMIT_YEARLY = lib.mkOption {
      type = lib.types.int;
      default = 10;
      description = ''
        Limits for timeline cleanup.
@@ -148,16 +145,16 @@ in
{
  options.services.snapper = {

    snapshotRootOnBoot = mkOption {
      type = types.bool;
    snapshotRootOnBoot = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Whether to snapshot root on boot
      '';
    };

    snapshotInterval = mkOption {
      type = types.str;
    snapshotInterval = lib.mkOption {
      type = lib.types.str;
      default = "hourly";
      description = ''
        Snapshot interval.
@@ -167,9 +164,9 @@ in
      '';
    };

    persistentTimer = mkOption {
    persistentTimer = lib.mkOption {
      default = false;
      type = types.bool;
      type = lib.types.bool;
      example = true;
      description = ''
        Set the `Persistent` option for the
@@ -179,8 +176,8 @@ in
      '';
    };

    cleanupInterval = mkOption {
      type = types.str;
    cleanupInterval = lib.mkOption {
      type = lib.types.str;
      default = "1d";
      description = ''
        Cleanup interval.
@@ -190,17 +187,17 @@ in
      '';
    };

    filters = mkOption {
      type = types.nullOr types.lines;
    filters = lib.mkOption {
      type = lib.types.nullOr lib.types.lines;
      default = null;
      description = ''
        Global display difference filter. See man:snapper(8) for more details.
      '';
    };

    configs = mkOption {
    configs = lib.mkOption {
      default = { };
      example = literalExpression ''
      example = lib.literalExpression ''
        {
          home = {
            SUBVOLUME = "/home";
@@ -216,14 +213,14 @@ in
        is valid here, even if NixOS doesn't document it.
      '';

      type = types.attrsOf (
        types.submodule {
          freeformType = types.attrsOf (
            types.oneOf [
              (types.listOf safeStr)
              types.bool
      type = lib.types.attrsOf (
        lib.types.submodule {
          freeformType = lib.types.attrsOf (
            lib.types.oneOf [
              (lib.types.listOf safeStr)
              lib.types.bool
              safeStr
              types.number
              lib.types.number
            ]
          );

@@ -233,7 +230,7 @@ in
    };
  };

  config = mkIf (cfg.configs != { }) (
  config = lib.mkIf (cfg.configs != { }) (
    let
      documentation = [
        "man:snapper(8)"
@@ -254,11 +251,11 @@ in
              SNAPPER_CONFIGS="${lib.concatStringsSep " " (builtins.attrNames cfg.configs)}"
            '';
          }
          // (mapAttrs' (
          // (lib.mapAttrs' (
            name: subvolume:
            nameValuePair "snapper/configs/${name}" ({
            lib.nameValuePair "snapper/configs/${name}" ({
              text = lib.generators.toKeyValue { inherit mkKeyValue; } (
                filterAttrs (k: v: v != defaultOf k) subvolume
                lib.filterAttrs (k: v: v != defaultOf k) subvolume
              );
            })
          ) cfg.configs)
@@ -324,7 +321,7 @@ in
        unitConfig.ConditionPathExists = "/etc/snapper/configs/root";
      };

      assertions = concatMap (
      assertions = lib.concatMap (
        name:
        let
          sub = cfg.configs.${name};
@@ -341,16 +338,16 @@ in
        ++
          map
            (attr: {
              assertion = !(hasAttr attr sub);
              assertion = !(lib.hasAttr attr sub);
              message = ''
                The option definition `services.snapper.configs.${name}.${attr}' has been renamed to `services.snapper.configs.${name}.${toUpper attr}'.
                The option definition `services.snapper.configs.${name}.${attr}' has been renamed to `services.snapper.configs.${name}.${lib.toUpper attr}'.
              '';
            })
            [
              "fstype"
              "subvolume"
            ]
      ) (attrNames cfg.configs);
      ) (lib.attrNames cfg.configs);
    }
  );

+2 −2
Original line number Diff line number Diff line
@@ -23,13 +23,13 @@

python3Packages.buildPythonApplication rec {
  pname = "gnome-frog";
  version = "1.5.1";
  version = "1.5.2";

  src = fetchFromGitHub {
    owner = "TenderOwl";
    repo = "Frog";
    rev = "refs/tags/${version}";
    sha256 = "sha256-zL6zuqHF1pTXT3l1mAFx2EL+0ThzjXfst/nEyNVorZg=";
    sha256 = "sha256-Zu1xUGpjqpFiPQAAgaVYtnXI4jMtyywrJqn+38K5VHo=";
  };

  format = "other";
+3 −3
Original line number Diff line number Diff line
@@ -7,16 +7,16 @@

buildGoModule rec {
  pname = "avalanchego";
  version = "1.11.10";
  version = "1.11.11";

  src = fetchFromGitHub {
    owner = "ava-labs";
    repo = pname;
    rev = "v${version}";
    hash = "sha256-O+94hdRaPZYcU4ICiGGQ7CBKPMAT9qPCsMsHcurW+/4=";
    hash = "sha256-9NhwxB5AeGvQgZbjNu5WWHiP194ws7s1WDtCntLr//g=";
  };

  vendorHash = "sha256-jXtnPBlSeA1Q+2VY+It7XnORz6uW0ZLYX+csBTYolNE=";
  vendorHash = "sha256-A8Bf/KzTFvC/hFLU1k6M89649wjoqnIXRQ1uJaTj9YA=";
  # go mod vendor has a bug, see: https://github.com/golang/go/issues/57529
  proxyVendor = true;

+2 −2
Original line number Diff line number Diff line
{fetchFromGitLab}:
rec {
  version = "2.2.3";
  version = "2.2.5";
  src = fetchFromGitLab {
    domain = "gitlab.gnome.org";
    repo = "paperwork";
    group = "World";
    owner = "OpenPaperwork";
    rev = version;
    sha256 = "sha256-xQN1IUbTQEHtyW5F8Zbg2EUN5K87oYqnSdzo0gEeOfI=";
    sha256 = "sha256-PRh0ohmPLwpM76qYfbExFqq4OK6Hm0fbdzrjXungSoY=";
  };
  sample_documents = fetchFromGitLab {
    domain = "gitlab.gnome.org";
Loading