From 1f2c2afc3caecd9920f57e66d2699c9af9ffe0b4 Mon Sep 17 00:00:00 2001 From: Gavin John Date: Fri, 17 Jan 2025 11:38:20 -0800 Subject: [PATCH 1/3] Automtaically add ipv6 entries to nix flake --- flake.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index c1b1bcb17..646131c6f 100644 --- a/flake.nix +++ b/flake.nix @@ -21,7 +21,10 @@ in { options.networking.stevenBlackHosts = { - enable = mkEnableOption "Use Steven Black's hosts file as extra hosts."; + enable = mkEnableOption "Steven Black's hosts file"; + enableIPv6 = mkEnableOption "IPv6 rules" // { + default = config.networking.enableIPv6; + }; blockFakenews = mkEnableOption "Additionally block fakenews hosts."; blockGambling = mkEnableOption "Additionally block gambling hosts."; blockPorn = mkEnableOption "Additionally block porn hosts."; @@ -29,9 +32,10 @@ }; config = mkIf cfg.enable { networking.extraHosts = - builtins.readFile ( - "${self}/" + (if alternatesList != [] then alternatesPath else "") + "hosts" - ); + let + orig = builtins.readFile ("${self}/" + (if alternatesList != [] then alternatesPath else "") + "hosts"); + ipv6 = builtins.replaceStrings [ "0.0.0.0" ] [ "::" ] orig; + in orig + (optionalString cfg.enableIPv6 ("\n" + ipv6)); }; }; From e457be3a9c62be813aa78512d64055b7baba8241 Mon Sep 17 00:00:00 2001 From: Gavin John Date: Mon, 20 Jan 2025 15:23:48 -0800 Subject: [PATCH 2/3] Fix mkEnableOption semantics --- flake.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index 646131c6f..ac991cf5d 100644 --- a/flake.nix +++ b/flake.nix @@ -25,10 +25,10 @@ enableIPv6 = mkEnableOption "IPv6 rules" // { default = config.networking.enableIPv6; }; - blockFakenews = mkEnableOption "Additionally block fakenews hosts."; - blockGambling = mkEnableOption "Additionally block gambling hosts."; - blockPorn = mkEnableOption "Additionally block porn hosts."; - blockSocial = mkEnableOption "Additionally block social hosts."; + blockFakenews = mkEnableOption "fakenews hosts entries"; + blockGambling = mkEnableOption "gambling hosts entries"; + blockPorn = mkEnableOption "porn hosts entries"; + blockSocial = mkEnableOption "social hosts entries"; }; config = mkIf cfg.enable { networking.extraHosts = From ec8562f9f690de6b85a052e11a230d15fab24378 Mon Sep 17 00:00:00 2001 From: Gavin John Date: Tue, 21 Jan 2025 15:47:09 -0800 Subject: [PATCH 3/3] Add NixOS IPv6 documentation to readme --- readme_template.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/readme_template.md b/readme_template.md index 223bae865..b9e134fce 100644 --- a/readme_template.md +++ b/readme_template.md @@ -405,6 +405,7 @@ The hosts extensions are also available with the following options: ```nix { networking.stevenBlackHosts = { + enableIPv6 = true; blockFakenews = true; blockGambling = true; blockPorn = true; @@ -413,6 +414,8 @@ The hosts extensions are also available with the following options: } ``` +IPv6 rules are enabled by default when `networking.enableIPv6` is set to `true`. + ## Updating hosts file on Windows (NOTE: See also some third-party Hosts managers, listed below.)