summaryrefslogtreecommitdiffstats
path: root/nixos
diff options
context:
space:
mode:
authorGuillaume Girol <symphorien@users.noreply.github.com>2020-12-15 19:47:43 +0000
committerGitHub <noreply@github.com>2020-12-15 19:47:43 +0000
commit824d2c92bd5780f6142bbb3ddff7663140deda17 (patch)
tree91600a2cd845a6c3bf8949ae0f5ecfeca5d1141d /nixos
parent853bac5b2b01e32e1ae13d3acf87d6b39d1f0dbb (diff)
parent5242cec1b81701479bbec7cd878c46ad4e2faf53 (diff)
Merge pull request #82584 from Atemu/dnscrypt-default-config
dnscrypt-proxy2: base settings on example config
Diffstat (limited to 'nixos')
-rw-r--r--nixos/doc/manual/release-notes/rl-2103.xml7
-rw-r--r--nixos/modules/services/networking/dnscrypt-proxy2.nix18
2 files changed, 24 insertions, 1 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2103.xml b/nixos/doc/manual/release-notes/rl-2103.xml
index 498ee0fa00ae..35c10d3e5939 100644
--- a/nixos/doc/manual/release-notes/rl-2103.xml
+++ b/nixos/doc/manual/release-notes/rl-2103.xml
@@ -372,6 +372,13 @@
</listitem>
<listitem>
<para>
+ The <literal>services.dnscrypt-proxy2</literal> module now takes the upstream's example configuration and updates it with the user's settings.
+
+ An option has been added to restore the old behaviour if you prefer to declare the configuration from scratch.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
NixOS now defaults to the unified cgroup hierarchy (cgroupsv2).
See the <link xlink:href="https://www.redhat.com/sysadmin/fedora-31-control-group-v2">Fedora Article for 31</link>
for details on why this is desirable, and how it impacts containers.
diff --git a/nixos/modules/services/networking/dnscrypt-proxy2.nix b/nixos/modules/services/networking/dnscrypt-proxy2.nix
index dda61212216c..ff8a2ab30774 100644
--- a/nixos/modules/services/networking/dnscrypt-proxy2.nix
+++ b/nixos/modules/services/networking/dnscrypt-proxy2.nix
@@ -27,6 +27,16 @@ in
default = {};
};
+ upstreamDefaults = mkOption {
+ description = ''
+ Whether to base the config declared in <literal>services.dnscrypt-proxy2.settings</literal> on the upstream example config (<link xlink:href="https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml"/>)
+
+ Disable this if you want to declare your dnscrypt config from scratch.
+ '';
+ type = types.bool;
+ default = true;
+ };
+
configFile = mkOption {
description = ''
Path to TOML config file. See: <link xlink:href="https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml"/>
@@ -38,7 +48,13 @@ in
json = builtins.toJSON cfg.settings;
passAsFile = [ "json" ];
} ''
- ${pkgs.remarshal}/bin/json2toml < $jsonPath > $out
+ ${if cfg.upstreamDefaults then ''
+ ${pkgs.remarshal}/bin/toml2json ${pkgs.dnscrypt-proxy2.src}/dnscrypt-proxy/example-dnscrypt-proxy.toml > example.json
+ ${pkgs.jq}/bin/jq --slurp add example.json $jsonPath > config.json # merges the two
+ '' else ''
+ cp $jsonPath config.json
+ ''}
+ ${pkgs.remarshal}/bin/json2toml < config.json > $out
'';
defaultText = literalExample "TOML file generated from services.dnscrypt-proxy2.settings";
};