From 70c02402c8cefa163db39adb2e676196e0aa5dcf Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 26 Feb 2016 03:28:56 +0100 Subject: networkmanager: fix link-local ip addresses NetworkManager needs an additional avahi-user to use link-local IPv4 (and probably IPv6) addresses. avahi-autoipd also needs to be patched to the right path. --- nixos/modules/misc/ids.nix | 1 + nixos/modules/services/networking/networkmanager.nix | 5 +++++ pkgs/tools/networking/network-manager/default.nix | 2 ++ 3 files changed, 8 insertions(+) diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index f3883ff56d34..6ae37f273df0 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -252,6 +252,7 @@ gammu-smsd = 228; pdnsd = 229; octoprint = 230; + avahi-autoipd = 231; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index 01c05fb4a245..eb2b9d692f8d 100644 --- a/nixos/modules/services/networking/networkmanager.nix +++ b/nixos/modules/services/networking/networkmanager.nix @@ -228,6 +228,11 @@ in { users.extraUsers = [{ name = "nm-openvpn"; uid = config.ids.uids.nm-openvpn; + } + { + # to enable link-local connections + name = "avahi-autoipd"; + uid = config.ids.uids.avahi-autoipd; }]; systemd.packages = cfg.packages; diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix index c86b59d48354..c23b818e048f 100644 --- a/pkgs/tools/networking/network-manager/default.nix +++ b/pkgs/tools/networking/network-manager/default.nix @@ -20,6 +20,8 @@ stdenv.mkDerivation rec { --replace /bin/sh ${stdenv.shell} \ --replace /usr/sbin/ethtool ${ethtool}/sbin/ethtool \ --replace /bin/sed ${gnused}/bin/sed + # to enable link-local connections + substituteInPlace src/devices/nm-device.c --replace '("avahi-autoipd", NULL, NULL)' '("avahi-autoipd", &"${avahi}/sbin/avahi-autoipd", NULL)' configureFlags="$configureFlags --with-udev-dir=$out/lib/udev" ''; -- cgit 1.4.1