summary refs log tree commit diff
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2016-02-26 03:28:56 +0100
committerProfpatsch <mail@profpatsch.de>2016-02-26 03:28:56 +0100
commit70c02402c8cefa163db39adb2e676196e0aa5dcf (patch)
tree4b6f817db7e7655d7be7f8d04a28c2d56dfdb6e8
parentedeb5480fc21d19c922b70c8b67c48da66cb1a90 (diff)
downloadnixlib-70c02402c8cefa163db39adb2e676196e0aa5dcf.tar
nixlib-70c02402c8cefa163db39adb2e676196e0aa5dcf.tar.gz
nixlib-70c02402c8cefa163db39adb2e676196e0aa5dcf.tar.bz2
nixlib-70c02402c8cefa163db39adb2e676196e0aa5dcf.tar.lz
nixlib-70c02402c8cefa163db39adb2e676196e0aa5dcf.tar.xz
nixlib-70c02402c8cefa163db39adb2e676196e0aa5dcf.tar.zst
nixlib-70c02402c8cefa163db39adb2e676196e0aa5dcf.zip
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.
-rw-r--r--nixos/modules/misc/ids.nix1
-rw-r--r--nixos/modules/services/networking/networkmanager.nix5
-rw-r--r--pkgs/tools/networking/network-manager/default.nix2
3 files changed, 8 insertions, 0 deletions
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"
   '';