diff --git a/pkgs/development/libraries/libproxy/default.nix b/pkgs/development/libraries/libproxy/default.nix index 62ddcd673900c..e08364208d467 100644 --- a/pkgs/development/libraries/libproxy/default.nix +++ b/pkgs/development/libraries/libproxy/default.nix @@ -6,7 +6,7 @@ , cmake , zlib , dbus -, networkmanager +, libnm , enableJavaScript ? stdenv.isDarwin || lib.meta.availableOn stdenv.hostPlatform duktape , duktape , pcre @@ -58,7 +58,7 @@ stdenv.mkDerivation rec { ] else [ glib dbus - networkmanager + libnm ]); cmakeFlags = [ diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix index a5cdc383f9ad4..b360ba75f7955 100644 --- a/pkgs/tools/networking/networkmanager/default.nix +++ b/pkgs/tools/networking/networkmanager/default.nix @@ -51,6 +51,7 @@ , mobile-broadband-provider-info , runtimeShell , buildPackages +, libnmOnly ? false }: let @@ -91,8 +92,8 @@ stdenv.mkDerivation rec { "-Dpppd=${ppp}/bin/pppd" "-Diptables=${iptables}/bin/iptables" "-Dnft=${nftables}/bin/nft" - "-Dmodem_manager=true" - "-Dnmtui=true" + (lib.mesonBool "modem_manager" (!libnmOnly)) + (lib.mesonBool "nmtui" (!libnmOnly)) "-Ddnsmasq=${dnsmasq}/bin/dnsmasq" "-Dqt=false" @@ -145,15 +146,18 @@ stdenv.mkDerivation rec { ppp libndp curl - mobile-broadband-provider-info + jansson + dbus # used to get directory paths with pkg-config during configuration + ] ++ lib.optionals (!libnmOnly) [ + # for nmtui + newt + readline + # for plugins bluez5 dnsmasq - modemmanager - readline - newt libsoup - jansson - dbus # used to get directory paths with pkg-config during configuration + mobile-broadband-provider-info + modemmanager ]; propagatedBuildInputs = [ gnutls libgcrypt ]; @@ -199,6 +203,12 @@ stdenv.mkDerivation rec { ln -s $PWD/src/libnm-client-impl/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0 ''; + # upstream does not offer a way to only compile libnm and we cannot just move libnm to a different output + # without regenerating the git files + postInstall = lib.optionalString libnmOnly '' + rm -rf $out/{,s}bin/ + ''; + postFixup = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' cp -r ${buildPackages.networkmanager.devdoc} $devdoc cp -r ${buildPackages.networkmanager.man} $man diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8ffc72e80cb2f..3cfd28baf1208 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10687,6 +10687,8 @@ with pkgs; networkmanager = callPackage ../tools/networking/networkmanager { }; + libnm = networkmanager.override { libnmOnly = true; }; + networkmanager-iodine = callPackage ../tools/networking/networkmanager/iodine { }; networkmanager-openvpn = callPackage ../tools/networking/networkmanager/openvpn { };