···286287- 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.
28800289## Other Notable Changes {#sec-release-23.11-notable-changes}
290291- 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.
···286287- 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.
288289+- `service.borgmatic.settings.location` and `services.borgmatic.configurations.<name>.location` are deprecated, please move your options out of sections to the global scope.
290+291## Other Notable Changes {#sec-release-23.11-notable-changes}
292293- 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
nixos/modules/services/backup/borgmatic.nix
···6 cfg = config.services.borgmatic;
7 settingsFormat = pkgs.formats.yaml { };
800000000000000009 cfgType = with types; submodule {
10 freeformType = settingsFormat.type;
11- options.location = {
12 source_directories = mkOption {
13- type = listOf str;
014 description = mdDoc ''
15- List of source directories to backup (required). Globs and
16- tildes are expanded.
17 '';
18- example = [ "/home" "/etc" "/var/log/syslog*" ];
19 };
20 repositories = mkOption {
21- type = listOf str;
022 description = mdDoc ''
23- Paths to local or remote repositories (required). Tildes are
24- expanded. Multiple repositories are backed up to in
25- sequence. Borg placeholders can be used. See the output of
26- "borg help placeholders" for details. See ssh_command for
27- SSH options like identity file or port. If systemd service
28- is used, then add local repository paths in the systemd
29- service file to the ReadWritePaths list.
030 '';
31 example = [
32- "ssh://user@backupserver/./sourcehostname.borg"
33- "ssh://user@backupserver/./{fqdn}"
34- "/var/local/backups/local.borg"
35 ];
36 };
37 };
···61 };
6263 config = mkIf cfg.enable {
00000006465 environment.systemPackages = [ pkgs.borgmatic ];
66
···6 cfg = config.services.borgmatic;
7 settingsFormat = pkgs.formats.yaml { };
89+ repository = with types; submodule {
10+ options = {
11+ path = mkOption {
12+ type = str;
13+ description = mdDoc ''
14+ Path to the repository
15+ '';
16+ };
17+ label = mkOption {
18+ type = str;
19+ description = mdDoc ''
20+ Label to the repository
21+ '';
22+ };
23+ };
24+ };
25 cfgType = with types; submodule {
26 freeformType = settingsFormat.type;
27+ options = {
28 source_directories = mkOption {
29+ type = nullOr (listOf str);
30+ default = null;
31 description = mdDoc ''
32+ List of source directories and files to backup. Globs and tildes are
33+ expanded. Do not backslash spaces in path names.
34 '';
35+ example = [ "/home" "/etc" "/var/log/syslog*" "/home/user/path with spaces" ];
36 };
37 repositories = mkOption {
38+ type = nullOr (listOf repository);
39+ default = null;
40 description = mdDoc ''
41+ A required list of local or remote repositories with paths and
42+ optional labels (which can be used with the --repository flag to
43+ select a repository). Tildes are expanded. Multiple repositories are
44+ backed up to in sequence. Borg placeholders can be used. See the
45+ output of "borg help placeholders" for details. See ssh_command for
46+ SSH options like identity file or port. If systemd service is used,
47+ then add local repository paths in the systemd service file to the
48+ ReadWritePaths list.
49 '';
50 example = [
51+ { path="ssh://user@backupserver/./sourcehostname.borg"; label="backupserver"; }
52+ { path="/mnt/backup"; label="local"; }
053 ];
54 };
55 };
···79 };
8081 config = mkIf cfg.enable {
82+83+ warnings = []
84+ ++ optional (cfg.settings != null && cfg.settings.location != null)
85+ "`services.borgmatic.settings.location` is deprecated, please move your options out of sections to the global scope"
86+ ++ optional (catAttrs "location" (attrValues cfg.configurations) != [])
87+ "`services.borgmatic.configurations.<name>.location` is deprecated, please move your options out of sections to the global scope"
88+ ;
8990 environment.systemPackages = [ pkgs.borgmatic ];
91
+1-1
nixos/tests/sqlite3-to-mysql.nix
···19 python3Packages.pytest
20 python3Packages.pytest-mock
21 python3Packages.pytest-timeout
22- python3Packages.factory_boy
23 python3Packages.docker # only needed so import does not fail
24 sqlite3-to-mysql
25 ])
···19 python3Packages.pytest
20 python3Packages.pytest-mock
21 python3Packages.pytest-timeout
22+ python3Packages.factory-boy
23 python3Packages.docker # only needed so import does not fail
24 sqlite3-to-mysql
25 ])
···57 backports_tempfile = throw "backports_tempfile has been removed, since we no longer need to backport to python3.3"; # added 2023-07-28
58 backports_unittest-mock = throw "backports_unittest-mock has been removed, since we no longer need to backport to python3.2"; # added 2023-07-28
59 backports_weakref = throw "backports_weakref has been removed, since we no longer need to backport to python3.3"; # added 2023-07-28
060 bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
61 bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15
62 BlinkStick = blinkstick; # added 2023-02-19
···129 Fabric = fabric; # addedd 2023-02-19
130 face_recognition = face-recognition; # added 2022-10-15
131 face_recognition_models = face-recognition-models; # added 2022-10-15
0132 fake_factory = throw "fake_factory has been removed because it is unused and deprecated by upstream since 2016."; # added 2022-05-30
133 faulthandler = throw "faulthandler is built into ${python.executable}"; # added 2021-07-12
134 inherit (super.pkgs) fetchPypi; # added 2023-05-25
···167 gpyopt = throw "gpyopt was remove because it's been archived upstream"; # added 2023-06-07
168 graphite_api = throw "graphite_api was removed, because it is no longer maintained"; # added 2022-07-10
169 graphite_beacon = throw "graphite_beacon was removed, because it is no longer maintained"; # added 2022-07-09
0170 grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21
171 ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06
172 HAP-python = hap-python; # added 2021-06-01
···220 mailman-web = throw "Please use pkgs.mailman-web"; # added 2022-04-29
221 manticore = throw "manticore has been removed because its dependency wasm no longer builds and is unmaintained"; # added 2023-05-20
222 markerlib = throw "markerlib has been removed because it's abandoned since 2013"; # added 2023-05-19
0223 mistune_0_8 = throw "mistune_0_8 was removed because it was outdated and insecure"; # added 2022-08-12
224 mistune_2_0 = mistune; # added 2022-08-12
225 mox = throw "mox was removed because it is unmaintained"; # added 2023-02-21
···278 pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
279 PyMVGLive = pymvglive; # added 2023-02-19
280 pyqt4 = throw "pyqt4 has been removed, because it depended on the long EOL qt4"; # added 2022-06-09
000281 pyramid_hawkauth = throw "pyramid_hawkauth has been removed because it is no longer maintained"; # added 2023-02-2
282 pyramid_jinja2 = pyramid-jinja2; # added 2023-06-06
00283 pyreadability = readability-lxml; # added 2022-05-24
284 pyres = throw "pyres has been removed, since it is abandoned and broken"; # added 2023-06-20
285 pyroute2-core = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
···57 backports_tempfile = throw "backports_tempfile has been removed, since we no longer need to backport to python3.3"; # added 2023-07-28
58 backports_unittest-mock = throw "backports_unittest-mock has been removed, since we no longer need to backport to python3.2"; # added 2023-07-28
59 backports_weakref = throw "backports_weakref has been removed, since we no longer need to backport to python3.3"; # added 2023-07-28
60+ beancount_docverif = beancount-docverif; # added 2023-10-08
61 bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
62 bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15
63 BlinkStick = blinkstick; # added 2023-02-19
···130 Fabric = fabric; # addedd 2023-02-19
131 face_recognition = face-recognition; # added 2022-10-15
132 face_recognition_models = face-recognition-models; # added 2022-10-15
133+ factory_boy = factory-boy; # added 2023-10-08
134 fake_factory = throw "fake_factory has been removed because it is unused and deprecated by upstream since 2016."; # added 2022-05-30
135 faulthandler = throw "faulthandler is built into ${python.executable}"; # added 2021-07-12
136 inherit (super.pkgs) fetchPypi; # added 2023-05-25
···169 gpyopt = throw "gpyopt was remove because it's been archived upstream"; # added 2023-06-07
170 graphite_api = throw "graphite_api was removed, because it is no longer maintained"; # added 2022-07-10
171 graphite_beacon = throw "graphite_beacon was removed, because it is no longer maintained"; # added 2022-07-09
172+ grappelli_safe = grappelli-safe; # added 2023-10-08
173 grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21
174 ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06
175 HAP-python = hap-python; # added 2021-06-01
···223 mailman-web = throw "Please use pkgs.mailman-web"; # added 2022-04-29
224 manticore = throw "manticore has been removed because its dependency wasm no longer builds and is unmaintained"; # added 2023-05-20
225 markerlib = throw "markerlib has been removed because it's abandoned since 2013"; # added 2023-05-19
226+ memory_profiler = memory-profiler; # added 2023-10-09
227 mistune_0_8 = throw "mistune_0_8 was removed because it was outdated and insecure"; # added 2022-08-12
228 mistune_2_0 = mistune; # added 2022-08-12
229 mox = throw "mox was removed because it is unmaintained"; # added 2023-02-21
···282 pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
283 PyMVGLive = pymvglive; # added 2023-02-19
284 pyqt4 = throw "pyqt4 has been removed, because it depended on the long EOL qt4"; # added 2022-06-09
285+ pyramid_beaker = pyramid-beaker; # added 2023-08-23
286+ pyramid_chameleon = pyramid-chameleon; # added 2023-08-23
287+ pyramid_exclog = pyramid-exclog; # added 2023-08-24
288 pyramid_hawkauth = throw "pyramid_hawkauth has been removed because it is no longer maintained"; # added 2023-02-2
289 pyramid_jinja2 = pyramid-jinja2; # added 2023-06-06
290+ pyramid_mako = pyramid-mako; # added 2023-08-24
291+ pyramid_multiauth = pyramid-multiauth; # added 2023-08-24
292 pyreadability = readability-lxml; # added 2022-05-24
293 pyres = throw "pyres has been removed, since it is abandoned and broken"; # added 2023-06-20
294 pyroute2-core = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16