diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index b6253a129e802..95fe3b4a65e3d 100644 --- a/nixos/modules/services/networking/networkmanager.nix +++ b/nixos/modules/services/networking/networkmanager.nix @@ -167,6 +167,18 @@ in ''; }; + nbft = mkOption { + type = lib.types.bool; + default = true; # Enable by default when libnvme is available + description = '' + Whether to enable NBFT (NVMe Boot Firmware Table) support in NetworkManager. + This allows NetworkManager to automatically configure network connections + for NVMe-over-Fabrics boot scenarios during early boot. + + Only effective when NetworkManager is built with libnvme support. + ''; + }; + package = mkPackageOption pkgs "networkmanager" { }; connectionConfig = mkOption { diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix index dd1d931001a20..1ee997a60bffa 100644 --- a/pkgs/tools/networking/networkmanager/default.nix +++ b/pkgs/tools/networking/networkmanager/default.nix @@ -52,7 +52,10 @@ systemd, udev, udevCheckHook, + libnvme, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, + # NBFT (NVMe Boot Firmware Table) support + withNbft ? false }: let @@ -60,11 +63,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "networkmanager"; - version = "1.52.1"; + version = "1.54.1"; src = fetchurl { url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/releases/${finalAttrs.version}/downloads/NetworkManager-${finalAttrs.version}.tar.xz"; - hash = "sha256-ixIsc0k6cvK65SfBJc69h3EWcbkDUtvisXiKupV1rG8="; + hash = "sha256-APPwvhKsTUhY6/FSQwuS3vFXSAP/YQf378dkoFbUxMc="; }; outputs = [ @@ -107,6 +110,8 @@ stdenv.mkDerivation (finalAttrs: { "-Dnmtui=true" "-Ddnsmasq=${dnsmasq}/bin/dnsmasq" "-Dqt=false" + # NBFT (NVMe Boot Firmware Table) support + (lib.mesonBool "nbft" withNbft) # Handlers "-Dresolvconf=${openresolv}/bin/resolvconf" @@ -158,6 +163,9 @@ stdenv.mkDerivation (finalAttrs: { newt jansson dbus # used to get directory paths with pkg-config during configuration + ] + ++ lib.optionals withNbft [ + libnvme ]; propagatedBuildInputs = [