Merge pull request #247540 from imlonghao/borgmatic/1.8.1

borgmatic: 1.7.15 -> 1.8.1
This commit is contained in:
Arnout Engelen 2023-10-10 22:46:24 -03:00 committed by GitHub
commit aae49a5cc7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 18 deletions

View File

@ -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. - 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} ## 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. - 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.

View File

@ -6,32 +6,50 @@ let
cfg = config.services.borgmatic; cfg = config.services.borgmatic;
settingsFormat = pkgs.formats.yaml { }; 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 { cfgType = with types; submodule {
freeformType = settingsFormat.type; freeformType = settingsFormat.type;
options.location = { options = {
source_directories = mkOption { source_directories = mkOption {
type = listOf str; type = nullOr (listOf str);
default = null;
description = mdDoc '' description = mdDoc ''
List of source directories to backup (required). Globs and List of source directories and files to backup. Globs and tildes are
tildes are expanded. 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 { repositories = mkOption {
type = listOf str; type = nullOr (listOf repository);
default = null;
description = mdDoc '' description = mdDoc ''
Paths to local or remote repositories (required). Tildes are A required list of local or remote repositories with paths and
expanded. Multiple repositories are backed up to in optional labels (which can be used with the --repository flag to
sequence. Borg placeholders can be used. See the output of select a repository). Tildes are expanded. Multiple repositories are
"borg help placeholders" for details. See ssh_command for backed up to in sequence. Borg placeholders can be used. See the
SSH options like identity file or port. If systemd service output of "borg help placeholders" for details. See ssh_command for
is used, then add local repository paths in the systemd SSH options like identity file or port. If systemd service is used,
service file to the ReadWritePaths list. then add local repository paths in the systemd service file to the
ReadWritePaths list.
''; '';
example = [ example = [
"ssh://user@backupserver/./sourcehostname.borg" { path="ssh://user@backupserver/./sourcehostname.borg"; label="backupserver"; }
"ssh://user@backupserver/./{fqdn}" { path="/mnt/backup"; label="local"; }
"/var/local/backups/local.borg"
]; ];
}; };
}; };
@ -62,6 +80,13 @@ in
config = mkIf cfg.enable { 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.systemPackages = [ pkgs.borgmatic ];
environment.etc = (optionalAttrs (cfg.settings != null) { "borgmatic/config.yaml".source = cfgfile; }) // environment.etc = (optionalAttrs (cfg.settings != null) { "borgmatic/config.yaml".source = cfgfile; }) //

View File

@ -13,11 +13,11 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "borgmatic"; pname = "borgmatic";
version = "1.7.15"; version = "1.8.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-esTvcybCPTayA9LCSukNc9ba8eGCTyjB883eZYy91II="; sha256 = "sha256-XbihTQJtoiRRfwjMCP+XEPmbt7//zFPx1fIWOvn92Nc=";
}; };
nativeCheckInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ]; nativeCheckInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ];