Unverified Commit aae49a5c authored by Arnout Engelen's avatar Arnout Engelen Committed by GitHub
Browse files

Merge pull request #247540 from imlonghao/borgmatic/1.8.1

borgmatic: 1.7.15 -> 1.8.1
parents d7a0a19d 4a519fa1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -282,6 +282,8 @@

- Setting `nixpkgs.config` options while providing an external `pkgs` instance will now raise an error instead of silently ignoring the options. NixOS modules no longer set `nixpkgs.config` to accomodate this. This specifically affects `services.locate`, `services.xserver.displayManager.lightdm.greeters.tiny` and `programs.firefox` NixOS modules. No manual intervention should be required in most cases, however, configurations relying on those modules affecting packages outside the system environment should switch to explicit overlays.

- `service.borgmatic.settings.location` and `services.borgmatic.configurations.<name>.location` are deprecated, please move your options out of sections to the global scope.

## Other Notable Changes {#sec-release-23.11-notable-changes}

- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.
+41 −16
Original line number Diff line number Diff line
@@ -6,32 +6,50 @@ let
  cfg = config.services.borgmatic;
  settingsFormat = pkgs.formats.yaml { };

  repository = with types; submodule {
    options = {
      path = mkOption {
        type = str;
        description = mdDoc ''
          Path to the repository
        '';
      };
      label = mkOption {
        type = str;
        description = mdDoc ''
          Label to the repository
        '';
      };
    };
  };
  cfgType = with types; submodule {
    freeformType = settingsFormat.type;
    options.location = {
    options = {
      source_directories = mkOption {
        type = listOf str;
        type = nullOr (listOf str);
        default = null;
        description = mdDoc ''
          List of source directories to backup (required). Globs and
          tildes are expanded.
          List of source directories and files to backup. Globs and tildes are
          expanded. Do not backslash spaces in path names.
        '';
        example = [ "/home" "/etc" "/var/log/syslog*" ];
        example = [ "/home" "/etc" "/var/log/syslog*" "/home/user/path with spaces" ];
      };
      repositories = mkOption {
        type = listOf str;
        type = nullOr (listOf repository);
        default = null;
        description = mdDoc ''
          Paths to local or remote repositories (required). Tildes are
          expanded. Multiple repositories are backed up to in
          sequence. Borg placeholders can be used. See the output of
          "borg help placeholders" for details. See ssh_command for
          SSH options like identity file or port. If systemd service
          is used, then add local repository paths in the systemd
          service file to the ReadWritePaths list.
          A required list of local or remote repositories with paths and
          optional labels (which can be used with the --repository flag to
          select a repository). Tildes are expanded. Multiple repositories are
          backed up to in sequence. Borg placeholders can be used. See the
          output of "borg help placeholders" for details. See ssh_command for
          SSH options like identity file or port. If systemd service is used,
          then add local repository paths in the systemd service file to the
          ReadWritePaths list.
        '';
        example = [
          "ssh://user@backupserver/./sourcehostname.borg"
          "ssh://user@backupserver/./{fqdn}"
          "/var/local/backups/local.borg"
          { path="ssh://user@backupserver/./sourcehostname.borg"; label="backupserver"; }
          { path="/mnt/backup"; label="local"; }
        ];
      };
    };
@@ -62,6 +80,13 @@ in

  config = mkIf cfg.enable {

    warnings = []
      ++ optional (cfg.settings != null && cfg.settings.location != null)
        "`services.borgmatic.settings.location` is deprecated, please move your options out of sections to the global scope"
      ++ optional (catAttrs "location" (attrValues cfg.configurations) != [])
        "`services.borgmatic.configurations.<name>.location` is deprecated, please move your options out of sections to the global scope"
    ;

    environment.systemPackages = [ pkgs.borgmatic ];

    environment.etc = (optionalAttrs (cfg.settings != null) { "borgmatic/config.yaml".source = cfgfile; }) //
+2 −2
Original line number Diff line number Diff line
@@ -13,11 +13,11 @@

python3Packages.buildPythonApplication rec {
  pname = "borgmatic";
  version = "1.7.15";
  version = "1.8.1";

  src = fetchPypi {
    inherit pname version;
    sha256 = "sha256-esTvcybCPTayA9LCSukNc9ba8eGCTyjB883eZYy91II=";
    sha256 = "sha256-XbihTQJtoiRRfwjMCP+XEPmbt7//zFPx1fIWOvn92Nc=";
  };

  nativeCheckInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ];