summary refs log tree commit diff
diff options
context:
space:
mode:
authorArtturin <Artturin@artturin.com>2022-07-07 21:32:13 +0300
committerArtturin <Artturin@artturin.com>2022-07-08 03:56:47 +0300
commitbf15263d1c87f64a86828786b54455fa1210036d (patch)
treee980371b43241433b41bfc6faec7bb76c6ea2ed2
parent28ca82a86bbead53b1a5724bbb96a6dc88dfbde3 (diff)
downloadnixpkgs-bf15263d1c87f64a86828786b54455fa1210036d.tar
nixpkgs-bf15263d1c87f64a86828786b54455fa1210036d.tar.gz
nixpkgs-bf15263d1c87f64a86828786b54455fa1210036d.tar.bz2
nixpkgs-bf15263d1c87f64a86828786b54455fa1210036d.tar.lz
nixpkgs-bf15263d1c87f64a86828786b54455fa1210036d.tar.xz
nixpkgs-bf15263d1c87f64a86828786b54455fa1210036d.tar.zst
nixpkgs-bf15263d1c87f64a86828786b54455fa1210036d.zip
networkmanager: fix cross
copy devdoc and man from native to cross
doc does not have to be copied
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix24
1 files changed, 20 insertions, 4 deletions
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 97a029d353b..c170ed10287 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -34,6 +34,7 @@
 , iputils
 , kmod
 , jansson
+, elfutils
 , gtk-doc
 , libxslt
 , docbook_xsl
@@ -43,14 +44,16 @@
 , openconnect
 , curl
 , meson
+, mesonEmulatorHook
 , ninja
 , libpsl
 , mobile-broadband-provider-info
 , runtimeShell
+, buildPackages
 }:
 
 let
-  pythonForDocs = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
+  pythonForDocs = python3.pythonForBuild.withPackages (pkgs: with pkgs; [ pygobject3 ]);
 in
 stdenv.mkDerivation rec {
   pname = "networkmanager";
@@ -102,7 +105,9 @@ stdenv.mkDerivation rec {
     "-Ddhcpcanon=no"
 
     # Miscellaneous
-    "-Ddocs=true"
+    # almost cross-compiles, however fails with
+    # ** (process:9234): WARNING **: Failed to load shared library '/nix/store/...-networkmanager-aarch64-unknown-linux-gnu-1.38.2/lib/libnm.so.0' referenced by the typelib: /nix/store/...-networkmanager-aarch64-unknown-linux-gnu-1.38.2/lib/libnm.so.0: cannot open shared object file: No such file or directory
+    "-Ddocs=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
     # We don't use firewalld in NixOS
     "-Dfirewalld_zone=false"
     "-Dtests=no"
@@ -150,12 +155,12 @@ stdenv.mkDerivation rec {
     mobile-broadband-provider-info
     bluez5
     dnsmasq
-    gobject-introspection
     modemmanager
     readline
     newt
     libsoup
     jansson
+    dbus # used to get directory paths with pkg-config during configuration
   ];
 
   propagatedBuildInputs = [ gnutls libgcrypt ];
@@ -167,7 +172,7 @@ stdenv.mkDerivation rec {
     pkg-config
     vala
     gobject-introspection
-    dbus
+    elfutils # used to find jansson soname
     # Docs
     gtk-doc
     libxslt
@@ -176,6 +181,8 @@ stdenv.mkDerivation rec {
     docbook_xml_dtd_42
     docbook_xml_dtd_43
     pythonForDocs
+  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    mesonEmulatorHook
   ];
 
   doCheck = false; # requires /sys, the net
@@ -183,6 +190,10 @@ stdenv.mkDerivation rec {
   postPatch = ''
     patchShebangs ./tools
     patchShebangs libnm/generate-setting-docs.py
+
+    # TODO: submit upstream
+    substituteInPlace meson.build \
+      --replace "'vala', req" "'vala', native: false, req"
   '';
 
   preBuild = ''
@@ -194,6 +205,11 @@ stdenv.mkDerivation rec {
     ln -s $PWD/src/libnm-client-impl/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0
   '';
 
+  postFixup = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp -r ${buildPackages.networkmanager.devdoc} $devdoc
+    cp -r ${buildPackages.networkmanager.man} $man
+  '';
+
   passthru = {
     updateScript = gnome.updateScript {
       packageName = "NetworkManager";