summary refs log tree commit diff
path: root/pkgs/tools/networking/networkmanager/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/networking/networkmanager/default.nix')
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix154
1 files changed, 119 insertions, 35 deletions
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 4f3b7a3204d..94d9dff1f84 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -1,20 +1,64 @@
-{ lib, stdenv, fetchurl, substituteAll, intltool, pkg-config, fetchpatch, dbus
-, gnome, systemd, libuuid, polkit, gnutls, ppp, dhcp, iptables, python3, vala
-, libgcrypt, dnsmasq, bluez5, readline, libselinux, audit
-, gobject-introspection, modemmanager, openresolv, libndp, newt, libsoup
-, ethtool, gnused, iputils, kmod, jansson, gtk-doc, libxslt
-, docbook_xsl, docbook_xml_dtd_412, docbook_xml_dtd_42, docbook_xml_dtd_43
-, openconnect, curl, meson, ninja, libpsl, mobile-broadband-provider-info, runtimeShell }:
+{ lib
+, stdenv
+, fetchurl
+, substituteAll
+, intltool
+, pkg-config
+, fetchpatch
+, dbus
+, gnome
+, systemd
+, libuuid
+, polkit
+, gnutls
+, ppp
+, dhcp
+, iptables
+, nftables
+, python3
+, vala
+, libgcrypt
+, dnsmasq
+, bluez5
+, readline
+, libselinux
+, audit
+, gobject-introspection
+, modemmanager
+, openresolv
+, libndp
+, newt
+, libsoup
+, ethtool
+, gnused
+, iputils
+, kmod
+, jansson
+, gtk-doc
+, libxslt
+, docbook_xsl
+, docbook_xml_dtd_412
+, docbook_xml_dtd_42
+, docbook_xml_dtd_43
+, openconnect
+, curl
+, meson
+, ninja
+, libpsl
+, mobile-broadband-provider-info
+, runtimeShell
+}:
 
 let
   pythonForDocs = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "networkmanager";
-  version = "1.30.4";
+  version = "1.32.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "sha256-YFC3JCEuo85zhhEzWb6pr6H2eaVPYNmZpZmYkuZywZA=";
+    sha256 = "sha256-Kay9QceLfvh/+I/sU2DR6vi1tvy5BVXXORq8XjaSMVg=";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
@@ -23,34 +67,46 @@ in stdenv.mkDerivation rec {
   # patch networkmanager to allow passing these path in config file. This will
   # remove unneeded build-time dependencies.
   mesonFlags = [
-    "-Ddhclient=${dhcp}/bin/dhclient"
-    "-Ddnsmasq=${dnsmasq}/bin/dnsmasq"
-    # Upstream prefers dhclient, so don't add dhcpcd to the closure
-    "-Ddhcpcd=no"
-    "-Ddhcpcanon=no"
-    "-Dpppd=${ppp}/bin/pppd"
-    "-Diptables=${iptables}/bin/iptables"
+    # System paths
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
+    "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
     # to enable link-local connections
     "-Dudev_dir=${placeholder "out"}/lib/udev"
-    "-Dresolvconf=${openresolv}/bin/resolvconf"
     "-Ddbus_conf_dir=${placeholder "out"}/share/dbus-1/system.d"
-    "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
     "-Dkernel_firmware_dir=/run/current-system/firmware"
-    "--sysconfdir=/etc"
-    "--localstatedir=/var"
-    "-Dcrypto=gnutls"
+
+    # Platform
     "-Dsession_tracking=systemd"
-    "-Dmodem_manager=true"
-    "-Dnmtui=true"
-    "-Ddocs=true"
-    "-Dtests=no"
-    "-Dqt=false"
+    "-Dlibaudit=yes-disabled-by-default"
     "-Dpolkit_agent_helper_1=/run/wrappers/bin/polkit-agent-helper-1"
+
+    # Features
     # Allow using iwd when configured to do so
     "-Diwd=true"
-    "-Dlibaudit=yes-disabled-by-default"
+    "-Dpppd=${ppp}/bin/pppd"
+    "-Diptables=${iptables}/bin/iptables"
+    "-Dnft=${nftables}/bin/nft"
+    "-Dmodem_manager=true"
+    "-Dnmtui=true"
+    "-Ddnsmasq=${dnsmasq}/bin/dnsmasq"
+    "-Dqt=false"
+
+    # Handlers
+    "-Dresolvconf=${openresolv}/bin/resolvconf"
+
+    # DHCP clients
+    "-Ddhclient=${dhcp}/bin/dhclient"
+    # Upstream prefers dhclient, so don't add dhcpcd to the closure
+    "-Ddhcpcd=no"
+    "-Ddhcpcanon=no"
+
+    # Miscellaneous
+    "-Ddocs=true"
     # We don't use firewalld in NixOS
     "-Dfirewalld_zone=false"
+    "-Dtests=no"
+    "-Dcrypto=gnutls"
   ];
 
   patches = [
@@ -66,17 +122,44 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    systemd libselinux audit libpsl libuuid polkit ppp libndp curl mobile-broadband-provider-info
-    bluez5 dnsmasq gobject-introspection modemmanager readline newt libsoup jansson
+    systemd
+    libselinux
+    audit
+    libpsl
+    libuuid
+    polkit
+    ppp
+    libndp
+    curl
+    mobile-broadband-provider-info
+    bluez5
+    dnsmasq
+    gobject-introspection
+    modemmanager
+    readline
+    newt
+    libsoup
+    jansson
   ];
 
   propagatedBuildInputs = [ gnutls libgcrypt ];
 
   nativeBuildInputs = [
-    meson ninja intltool pkg-config
-    vala gobject-introspection dbus
+    meson
+    ninja
+    intltool
+    pkg-config
+    vala
+    gobject-introspection
+    dbus
     # Docs
-    gtk-doc libxslt docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_42 docbook_xml_dtd_43 pythonForDocs
+    gtk-doc
+    libxslt
+    docbook_xsl
+    docbook_xml_dtd_412
+    docbook_xml_dtd_42
+    docbook_xml_dtd_43
+    pythonForDocs
   ];
 
   doCheck = false; # requires /sys, the net
@@ -92,7 +175,7 @@ in stdenv.mkDerivation rec {
     # though, so we need to replace the absolute path with a local one during build.
     # We are using a symlink that will be overridden during installation.
     mkdir -p ${placeholder "out"}/lib
-    ln -s $PWD/libnm/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0
+    ln -s $PWD/src/libnm-client-impl/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0
   '';
 
   passthru = {
@@ -107,7 +190,8 @@ in stdenv.mkDerivation rec {
     homepage = "https://wiki.gnome.org/Projects/NetworkManager";
     description = "Network configuration and management tool";
     license = licenses.gpl2Plus;
-    maintainers = teams.freedesktop.members ++ (with maintainers; [ phreedom domenkozar obadz ]);
+    changelog = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/raw/${version}/NEWS";
+    maintainers = teams.freedesktop.members ++ (with maintainers; [ phreedom domenkozar obadz maxeaubrey ]);
     platforms = platforms.linux;
   };
 }