Update dependencies
This commit is contained in:
parent
7463f17808
commit
da133d776c
4 changed files with 12 additions and 320 deletions
24
flake.lock
generated
24
flake.lock
generated
|
@ -45,11 +45,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706353672,
|
"lastModified": 1706539339,
|
||||||
"narHash": "sha256-CKtaMKW8Qv8Fnh7SuSleLe0NHCKWheefTOnWwG/vbcQ=",
|
"narHash": "sha256-bnECIQRcrpRkfoN4OjRCuHUBNVCr5KvR60b+BFR/ueE=",
|
||||||
"owner": "accentor",
|
"owner": "accentor",
|
||||||
"repo": "api",
|
"repo": "api",
|
||||||
"rev": "7dc50c639d4b9df5d7bba13b24d55d4436ae2bc0",
|
"rev": "44740b0de94122ec3dcb9fe32372149eb57fa010",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -72,11 +72,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706353638,
|
"lastModified": 1706539310,
|
||||||
"narHash": "sha256-Od0LkUyEli7VSTdHAkDrZFPHQqT8jUC+hfKgvTal+eg=",
|
"narHash": "sha256-pia4/yP1r1C6k6txXMvwr27PwC0OEjcBuAv3qV7tKns=",
|
||||||
"owner": "accentor",
|
"owner": "accentor",
|
||||||
"repo": "web",
|
"repo": "web",
|
||||||
"rev": "67cfdb9be8738052bb900310efcdb4e5aa70f69e",
|
"rev": "1163bddd12419bb7aafcda1f34d6370aea7ca62e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -476,11 +476,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706191920,
|
"lastModified": 1706371002,
|
||||||
"narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=",
|
"narHash": "sha256-dwuorKimqSYgyu8Cw6ncKhyQjUDOyuXoxDTVmAXq88s=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ae5c332cbb5827f6b1f02572496b141021de335f",
|
"rev": "c002c6aa977ad22c60398daaa9be52f2203d0006",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -771,11 +771,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706312194,
|
"lastModified": 1706538948,
|
||||||
"narHash": "sha256-Z21WT845qeDXxOnsKsYQ23EvwaTBZBGcB4Qc/f2el9o=",
|
"narHash": "sha256-yxA3IhMcrmAPjVz/G0Gj7OYBC7m45C9Gm6iLcEXWenY=",
|
||||||
"owner": "chvp",
|
"owner": "chvp",
|
||||||
"repo": "tetris",
|
"repo": "tetris",
|
||||||
"rev": "7bcfbefe2a1956359a2715dcd5934154150a4ef6",
|
"rev": "50a2099e8eaeb3bdf24c809354ba4525509c6dfe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -1,268 +0,0 @@
|
||||||
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
|
|
||||||
index 25c7017a1d2589..8d298de6945bbc 100644
|
|
||||||
--- a/nixos/modules/services/mail/dovecot.nix
|
|
||||||
+++ b/nixos/modules/services/mail/dovecot.nix
|
|
||||||
@@ -4,7 +4,9 @@ let
|
|
||||||
inherit (lib) any attrValues concatMapStringsSep concatStrings
|
|
||||||
concatStringsSep flatten imap1 isList literalExpression mapAttrsToList
|
|
||||||
mkEnableOption mkIf mkOption mkRemovedOptionModule optional optionalAttrs
|
|
||||||
- optionalString singleton types;
|
|
||||||
+ optionalString singleton types mkRenamedOptionModule nameValuePair
|
|
||||||
+ mapAttrs' listToAttrs filter;
|
|
||||||
+ inherit (lib.strings) match;
|
|
||||||
|
|
||||||
cfg = config.services.dovecot2;
|
|
||||||
dovecotPkg = pkgs.dovecot;
|
|
||||||
@@ -12,6 +14,58 @@ let
|
|
||||||
baseDir = "/run/dovecot2";
|
|
||||||
stateDir = "/var/lib/dovecot";
|
|
||||||
|
|
||||||
+ sieveScriptSettings = mapAttrs' (to: from: nameValuePair "sieve_${to}" "${stateDir}/sieve/${from}") cfg.sieve.scripts;
|
|
||||||
+ imapSieveMailboxSettings = listToAttrs (flatten (imap1 (idx: el:
|
|
||||||
+ singleton {
|
|
||||||
+ name = "imapsieve_mailbox${toString idx}_name";
|
|
||||||
+ value = el.name;
|
|
||||||
+ } ++ optional (el.from != null) {
|
|
||||||
+ name = "imapsieve_mailbox${toString idx}_from";
|
|
||||||
+ value = el.from;
|
|
||||||
+ } ++ optional (el.causes != []) {
|
|
||||||
+ name = "imapsieve_mailbox${toString idx}_causes";
|
|
||||||
+ value = concatStringsSep "," el.causes;
|
|
||||||
+ } ++ optional (el.before != null) {
|
|
||||||
+ name = "imapsieve_mailbox${toString idx}_before";
|
|
||||||
+ value = "file:${stateDir}/imapsieve/before/${baseNameOf el.before}";
|
|
||||||
+ } ++ optional (el.after != null) {
|
|
||||||
+ name = "imapsieve_mailbox${toString idx}_after";
|
|
||||||
+ value = "file:${stateDir}/imapsieve/after/${baseNameOf el.after}";
|
|
||||||
+ }
|
|
||||||
+ ) cfg.imapsieve.mailbox));
|
|
||||||
+
|
|
||||||
+ mkExtraConfigCollisionWarning = term: ''
|
|
||||||
+ You referred to ${term} in `services.dovecot2.extraConfig`.
|
|
||||||
+
|
|
||||||
+ Due to gradual transition to structured configuration for plugin configuration, it is possible
|
|
||||||
+ this will cause your plugin configuration to be ignored.
|
|
||||||
+
|
|
||||||
+ Consider setting `services.dovecot2.pluginSettings.${term}` instead.
|
|
||||||
+ '';
|
|
||||||
+
|
|
||||||
+ # Those settings are automatically set based on other parts
|
|
||||||
+ # of this module.
|
|
||||||
+ automaticallySetPluginSettings = [
|
|
||||||
+ "sieve_plugins"
|
|
||||||
+ "sieve_extensions"
|
|
||||||
+ "sieve_global_extensions"
|
|
||||||
+ "sieve_pipe_bin_dir"
|
|
||||||
+ ]
|
|
||||||
+ ++ (builtins.attrNames sieveScriptSettings)
|
|
||||||
+ ++ (builtins.attrNames imapSieveMailboxSettings);
|
|
||||||
+
|
|
||||||
+ # The idea is to match everything that looks like `$term =`
|
|
||||||
+ # but not `# $term something something`
|
|
||||||
+ # or `# $term = some value` because those are comments.
|
|
||||||
+ configContainsSetting = lines: term: (match "^[^#]*\b${term}\b.*=" lines) != null;
|
|
||||||
+
|
|
||||||
+ warnAboutExtraConfigCollisions = map mkExtraConfigCollisionWarning (filter (configContainsSetting cfg.extraConfig) automaticallySetPluginSettings);
|
|
||||||
+
|
|
||||||
+ sievePipeBinScriptDirectory = pkgs.linkFarm "sieve-pipe-bins" (map (el: {
|
|
||||||
+ name = builtins.unsafeDiscardStringContext (baseNameOf el);
|
|
||||||
+ path = el;
|
|
||||||
+ }) cfg.sieve.pipeBins);
|
|
||||||
+
|
|
||||||
dovecotConf = concatStrings [
|
|
||||||
''
|
|
||||||
base_dir = ${baseDir}
|
|
||||||
@@ -77,14 +131,6 @@ let
|
|
||||||
''
|
|
||||||
)
|
|
||||||
|
|
||||||
- (
|
|
||||||
- optionalString (cfg.sieveScripts != {}) ''
|
|
||||||
- plugin {
|
|
||||||
- ${concatStringsSep "\n" (mapAttrsToList (to: from: "sieve_${to} = ${stateDir}/sieve/${to}") cfg.sieveScripts)}
|
|
||||||
- }
|
|
||||||
- ''
|
|
||||||
- )
|
|
||||||
-
|
|
||||||
(
|
|
||||||
optionalString (cfg.mailboxes != {}) ''
|
|
||||||
namespace inbox {
|
|
||||||
@@ -116,33 +162,12 @@ let
|
|
||||||
''
|
|
||||||
)
|
|
||||||
|
|
||||||
+ # General plugin settings:
|
|
||||||
+ # - sieve is mostly generated here, refer to `pluginSettings` to follow
|
|
||||||
+ # the control flow.
|
|
||||||
''
|
|
||||||
plugin {
|
|
||||||
- sieve_plugins = ${concatStringsSep " " cfg.sieve.plugins}
|
|
||||||
- sieve_extensions = ${concatStringsSep " " (map (el: "+${el}") cfg.sieve.extensions)}
|
|
||||||
- sieve_global_extensions = ${concatStringsSep " " (map (el: "+${el}") cfg.sieve.globalExtensions)}
|
|
||||||
- ''
|
|
||||||
- (optionalString (cfg.imapsieve.mailbox != []) ''
|
|
||||||
- ${
|
|
||||||
- concatStringsSep "\n" (flatten (imap1 (
|
|
||||||
- idx: el:
|
|
||||||
- singleton "imapsieve_mailbox${toString idx}_name = ${el.name}"
|
|
||||||
- ++ optional (el.from != null) "imapsieve_mailbox${toString idx}_from = ${el.from}"
|
|
||||||
- ++ optional (el.causes != null) "imapsieve_mailbox${toString idx}_causes = ${el.causes}"
|
|
||||||
- ++ optional (el.before != null) "imapsieve_mailbox${toString idx}_before = file:${stateDir}/imapsieve/before/${baseNameOf el.before}"
|
|
||||||
- ++ optional (el.after != null) "imapsieve_mailbox${toString idx}_after = file:${stateDir}/imapsieve/after/${baseNameOf el.after}"
|
|
||||||
- )
|
|
||||||
- cfg.imapsieve.mailbox))
|
|
||||||
- }
|
|
||||||
- '')
|
|
||||||
- (optionalString (cfg.sieve.pipeBins != []) ''
|
|
||||||
- sieve_pipe_bin_dir = ${pkgs.linkFarm "sieve-pipe-bins" (map (el: {
|
|
||||||
- name = builtins.unsafeDiscardStringContext (baseNameOf el);
|
|
||||||
- path = el;
|
|
||||||
- })
|
|
||||||
- cfg.sieve.pipeBins)}
|
|
||||||
- '')
|
|
||||||
- ''
|
|
||||||
+ ${concatStringsSep "\n" (mapAttrsToList (key: value: " ${key} = ${value}") cfg.pluginSettings)}
|
|
||||||
}
|
|
||||||
''
|
|
||||||
|
|
||||||
@@ -199,6 +224,7 @@ in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
(mkRemovedOptionModule [ "services" "dovecot2" "package" ] "")
|
|
||||||
+ (mkRenamedOptionModule [ "services" "dovecot2" "sieveScripts" ] [ "services" "dovecot2" "sieve" "scripts" ])
|
|
||||||
];
|
|
||||||
|
|
||||||
options.services.dovecot2 = {
|
|
||||||
@@ -337,12 +363,6 @@ in
|
|
||||||
|
|
||||||
enableDHE = mkEnableOption (lib.mdDoc "ssl_dh and generation of primes for the key exchange") // { default = true; };
|
|
||||||
|
|
||||||
- sieveScripts = mkOption {
|
|
||||||
- type = types.attrsOf types.path;
|
|
||||||
- default = {};
|
|
||||||
- description = lib.mdDoc "Sieve scripts to be executed. Key is a sequence, e.g. 'before2', 'after' etc.";
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
showPAMFailure = mkEnableOption (lib.mdDoc "showing the PAM failure message on authentication error (useful for OTPW)");
|
|
||||||
|
|
||||||
mailboxes = mkOption {
|
|
||||||
@@ -376,6 +396,26 @@ in
|
|
||||||
description = lib.mdDoc "Quota limit for the user in bytes. Supports suffixes b, k, M, G, T and %.";
|
|
||||||
};
|
|
||||||
|
|
||||||
+
|
|
||||||
+ pluginSettings = mkOption {
|
|
||||||
+ # types.str does not coerce from packages, like `sievePipeBinScriptDirectory`.
|
|
||||||
+ type = types.attrsOf (types.oneOf [ types.str types.package ]);
|
|
||||||
+ default = {};
|
|
||||||
+ example = literalExpression ''
|
|
||||||
+ {
|
|
||||||
+ sieve = "file:~/sieve;active=~/.dovecot.sieve";
|
|
||||||
+ }
|
|
||||||
+ '';
|
|
||||||
+ description = ''
|
|
||||||
+ Plugin settings for dovecot in general, e.g. `sieve`, `sieve_default`, etc.
|
|
||||||
+
|
|
||||||
+ Some of the other knobs of this module will influence by default the plugin settings, but you
|
|
||||||
+ can still override any plugin settings.
|
|
||||||
+
|
|
||||||
+ If you override a plugin setting, its value is cleared and you have to copy over the defaults.
|
|
||||||
+ '';
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
imapsieve.mailbox = mkOption {
|
|
||||||
default = [];
|
|
||||||
description = "Configure Sieve filtering rules on IMAP actions";
|
|
||||||
@@ -405,14 +445,14 @@ in
|
|
||||||
};
|
|
||||||
|
|
||||||
causes = mkOption {
|
|
||||||
- default = null;
|
|
||||||
+ default = [ ];
|
|
||||||
description = ''
|
|
||||||
Only execute the administrator Sieve scripts for the mailbox configured with services.dovecot2.imapsieve.mailbox.<name>.name when one of the listed IMAPSIEVE causes apply.
|
|
||||||
|
|
||||||
This has no effect on the user script, which is always executed no matter the cause.
|
|
||||||
'';
|
|
||||||
- example = "COPY";
|
|
||||||
- type = types.nullOr (types.enum [ "APPEND" "COPY" "FLAG" ]);
|
|
||||||
+ example = [ "COPY" "APPEND" ];
|
|
||||||
+ type = types.listOf (types.enum [ "APPEND" "COPY" "FLAG" ]);
|
|
||||||
};
|
|
||||||
|
|
||||||
before = mkOption {
|
|
||||||
@@ -462,6 +502,12 @@ in
|
|
||||||
type = types.listOf types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
+ scripts = mkOption {
|
|
||||||
+ type = types.attrsOf types.path;
|
|
||||||
+ default = {};
|
|
||||||
+ description = lib.mdDoc "Sieve scripts to be executed. Key is a sequence, e.g. 'before2', 'after' etc.";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
pipeBins = mkOption {
|
|
||||||
default = [];
|
|
||||||
example = literalExpression ''
|
|
||||||
@@ -476,7 +522,6 @@ in
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
-
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
security.pam.services.dovecot2 = mkIf cfg.enablePAM {};
|
|
||||||
|
|
||||||
@@ -501,6 +546,13 @@ in
|
|
||||||
++ optional (cfg.sieve.pipeBins != []) "sieve_extprograms";
|
|
||||||
|
|
||||||
sieve.globalExtensions = optional (cfg.sieve.pipeBins != []) "vnd.dovecot.pipe";
|
|
||||||
+
|
|
||||||
+ pluginSettings = lib.mapAttrs (n: lib.mkDefault) ({
|
|
||||||
+ sieve_plugins = concatStringsSep " " cfg.sieve.plugins;
|
|
||||||
+ sieve_extensions = concatStringsSep " " (map (el: "+${el}") cfg.sieve.extensions);
|
|
||||||
+ sieve_global_extensions = concatStringsSep " " (map (el: "+${el}") cfg.sieve.globalExtensions);
|
|
||||||
+ sieve_pipe_bin_dir = sievePipeBinScriptDirectory;
|
|
||||||
+ } // sieveScriptSettings // imapSieveMailboxSettings);
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users = {
|
|
||||||
@@ -556,7 +608,7 @@ in
|
|
||||||
# the source file and Dovecot won't try to compile it.
|
|
||||||
preStart = ''
|
|
||||||
rm -rf ${stateDir}/sieve ${stateDir}/imapsieve
|
|
||||||
- '' + optionalString (cfg.sieveScripts != {}) ''
|
|
||||||
+ '' + optionalString (cfg.sieve.scripts != {}) ''
|
|
||||||
mkdir -p ${stateDir}/sieve
|
|
||||||
${concatStringsSep "\n" (
|
|
||||||
mapAttrsToList (
|
|
||||||
@@ -569,7 +621,7 @@ in
|
|
||||||
fi
|
|
||||||
${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
|
|
||||||
''
|
|
||||||
- ) cfg.sieveScripts
|
|
||||||
+ ) cfg.sieve.scripts
|
|
||||||
)}
|
|
||||||
chown -R '${cfg.mailUser}:${cfg.mailGroup}' '${stateDir}/sieve'
|
|
||||||
''
|
|
||||||
@@ -600,9 +652,7 @@ in
|
|
||||||
|
|
||||||
environment.systemPackages = [ dovecotPkg ];
|
|
||||||
|
|
||||||
- warnings = mkIf (any isList options.services.dovecot2.mailboxes.definitions) [
|
|
||||||
- "Declaring `services.dovecot2.mailboxes' as a list is deprecated and will break eval in 21.05! See the release notes for more info for migration."
|
|
||||||
- ];
|
|
||||||
+ warnings = warnAboutExtraConfigCollisions;
|
|
||||||
|
|
||||||
assertions = [
|
|
||||||
{
|
|
||||||
@@ -615,8 +665,8 @@ in
|
|
||||||
message = "dovecot is configured with showPAMFailure while enablePAM is disabled";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
- assertion = cfg.sieveScripts != {} -> (cfg.mailUser != null && cfg.mailGroup != null);
|
|
||||||
- message = "dovecot requires mailUser and mailGroup to be set when sieveScripts is set";
|
|
||||||
+ assertion = cfg.sieve.scripts != {} -> (cfg.mailUser != null && cfg.mailGroup != null);
|
|
||||||
+ message = "dovecot requires mailUser and mailGroup to be set when `sieve.scripts` is set";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
diff --git a/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
|
|
||||||
index 407b595a5426bf..33e58c808d253d 100644
|
|
||||||
--- a/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
|
|
||||||
+++ b/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
|
|
||||||
@@ -19,13 +19,13 @@
|
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "teams-for-linux";
|
|
||||||
- version = "1.4.4";
|
|
||||||
+ version = "1.4.5";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "IsmaelMartinez";
|
|
||||||
repo = "teams-for-linux";
|
|
||||||
rev = "v${finalAttrs.version}";
|
|
||||||
- hash = "sha256-GNfFzJsWyu46mP0k1wT8SG22F9oKpLwoLQ0TnNFqvv8=";
|
|
||||||
+ hash = "sha256-Gp+Euuuo51syHmQzzQALxZjejYLoJtGJbo4Gl40UASs=";
|
|
||||||
};
|
|
||||||
|
|
||||||
offlineCache = fetchYarnDeps {
|
|
|
@ -1,20 +0,0 @@
|
||||||
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
|
|
||||||
index e399974b4c6ef5..b7cae61ad2c760 100644
|
|
||||||
--- a/pkgs/tools/security/eid-mw/default.nix
|
|
||||||
+++ b/pkgs/tools/security/eid-mw/default.nix
|
|
||||||
@@ -21,13 +21,13 @@
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "eid-mw";
|
|
||||||
# NOTE: Don't just blindly update to the latest version/tag. Releases are always for a specific OS.
|
|
||||||
- version = "5.1.11";
|
|
||||||
+ version = "5.1.15";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "Fedict";
|
|
||||||
repo = "eid-mw";
|
|
||||||
rev = "v${version}";
|
|
||||||
- hash = "sha256-70UjfkH+rx1Q+2XEuAByoDsP5ZelyuGXaHdkjTe/sCY=";
|
|
||||||
+ hash = "sha256-balyAdQO8aZ9wGYerPUDxgBWGG7Ya2eIyo6UX62M4SI=";
|
|
||||||
};
|
|
||||||
|
|
||||||
postPatch = ''
|
|
Loading…
Add table
Add a link
Reference in a new issue