From 1071b77c21f2e3bbccd20ace7272f3d843fea0b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 5 Jan 2022 15:28:59 +0100 Subject: [PATCH 1/2] knot-resolver: 5.4.3 -> 5.4.4 This is basically just no-op. Only version number changes. https://gitlab.nic.cz/knot/knot-resolver/-/tags/v5.4.4 --- pkgs/servers/dns/knot-resolver/default.nix | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix index 94fa36c5b03d..4d12a6d7172a 100644 --- a/pkgs/servers/dns/knot-resolver/default.nix +++ b/pkgs/servers/dns/knot-resolver/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, fetchpatch +{ lib, stdenv, fetchurl # native deps. , runCommand, pkg-config, meson, ninja, makeWrapper # build+runtime deps. @@ -17,23 +17,15 @@ lua = luajitPackages; unwrapped = stdenv.mkDerivation rec { pname = "knot-resolver"; - version = "5.4.3"; + version = "5.4.4"; src = fetchurl { url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz"; - sha256 = "488729eb93190336b6bca10de0d78ecb7919f77fcab105debc0a644aa7d0a506"; + sha256 = "588964319e943679d391cc9c886d40ef858ecd9b33ae160023b4e2b5182b2cea"; }; outputs = [ "out" "dev" ]; - patches = [ - (fetchpatch { # https://gitlab.nic.cz/knot/knot-resolver/-/merge_requests/1237 - name = "console.aws.amazon.com-fix.patch"; - url = "https://gitlab.nic.cz/knot/knot-resolver/-/commit/f4dabfbec9273703.diff"; - sha256 = "3J+FDwNQ6CqIGo9pSzhrQZlHX99vXFDpPOBpwpCnOxs="; - }) - ]; - # Path fixups for the NixOS service. postPatch = '' patch meson.build < Date: Wed, 5 Jan 2022 15:58:27 +0100 Subject: [PATCH 2/2] nixos/kresd: fix IPv6 scope syntax The systemd syntax is suprising to me, but I suppose it's worth being compatible as people might be sharing it with other modules. Our regexp is lenient on IPv6 address part, so this is actually backwards compatible (i.e. you can put the scope at either place). --- nixos/modules/services/networking/kresd.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/networking/kresd.nix b/nixos/modules/services/networking/kresd.nix index 3a36ac7e6670..16011573f8bb 100644 --- a/nixos/modules/services/networking/kresd.nix +++ b/nixos/modules/services/networking/kresd.nix @@ -7,15 +7,16 @@ let # Convert systemd-style address specification to kresd config line(s). # On Nix level we don't attempt to precisely validate the address specifications. + # The optional IPv6 scope spec comes *after* port, perhaps surprisingly. mkListen = kind: addr: let - al_v4 = builtins.match "([0-9.]+):([0-9]+)" addr; - al_v6 = builtins.match "\\[(.+)]:([0-9]+)" addr; + al_v4 = builtins.match "([0-9.]+):([0-9]+)()" addr; + al_v6 = builtins.match "\\[(.+)]:([0-9]+)(%.*|$)" addr; al_portOnly = builtins.match "([0-9]+)" addr; al = findFirst (a: a != null) (throw "services.kresd.*: incorrect address specification '${addr}'") [ al_v4 al_v6 al_portOnly ]; - port = last al; - addrSpec = if al_portOnly == null then "'${head al}'" else "{'::', '0.0.0.0'}"; + port = elemAt al 1; + addrSpec = if al_portOnly == null then "'${head al}${elemAt al 2}'" else "{'::', '0.0.0.0'}"; in # freebind is set for compatibility with earlier kresd services; # it could be configurable, for example. ''