diff options
Diffstat (limited to 'pkgs/tools/networking/networkmanager/default.nix')
-rw-r--r-- | pkgs/tools/networking/networkmanager/default.nix | 154 |
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; }; } |