summary refs log tree commit diff
path: root/pkgs/development/libraries/libvmi/default.nix
diff options
context:
space:
mode:
authorLeon Schuermann <leon-git@lschuermann.xyz>2018-09-04 13:30:07 +0200
committerxeji <36407913+xeji@users.noreply.github.com>2018-09-04 13:30:07 +0200
commit4295e225f568a61836bcb89e92aa27cbdcd4f19f (patch)
tree0568c4c2c91820896012aaaac31652ee6d59f9b7 /pkgs/development/libraries/libvmi/default.nix
parent205f3e941a6fff6b8bb12fc20dfdd76ba3d64455 (diff)
downloadnixpkgs-4295e225f568a61836bcb89e92aa27cbdcd4f19f.tar
nixpkgs-4295e225f568a61836bcb89e92aa27cbdcd4f19f.tar.gz
nixpkgs-4295e225f568a61836bcb89e92aa27cbdcd4f19f.tar.bz2
nixpkgs-4295e225f568a61836bcb89e92aa27cbdcd4f19f.tar.lz
nixpkgs-4295e225f568a61836bcb89e92aa27cbdcd4f19f.tar.xz
nixpkgs-4295e225f568a61836bcb89e92aa27cbdcd4f19f.tar.zst
nixpkgs-4295e225f568a61836bcb89e92aa27cbdcd4f19f.zip
libvmi: fix libxenctrl dynamic loading (#45865)
libvmi uses dlopen() to only require libxenctrl if the Xen hypervisor is used,
which failed because libxenctrl could not be found.
Add xen libraries to libvmi's RUNPATH using patchelf.
Diffstat (limited to 'pkgs/development/libraries/libvmi/default.nix')
-rw-r--r--pkgs/development/libraries/libvmi/default.nix8
1 files changed, 8 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libvmi/default.nix b/pkgs/development/libraries/libvmi/default.nix
index 28cfe56d59b..44b2a81b2d3 100644
--- a/pkgs/development/libraries/libvmi/default.nix
+++ b/pkgs/development/libraries/libvmi/default.nix
@@ -15,6 +15,7 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "libvmi-${version}";
   version = "0.12.0";
+  libVersion = "0.0.12";
 
   src = fetchFromGitHub {
     owner = "libvmi";
@@ -28,6 +29,13 @@ stdenv.mkDerivation rec {
 
   configureFlags = optional (!xenSupport) "--disable-xen";
 
+  # libvmi uses dlopen() for the xen libraries, however autoPatchelfHook doesn't work here
+  postFixup = optionalString xenSupport ''
+    libvmi="$out/lib/libvmi.so.${libVersion}"
+    oldrpath=$(patchelf --print-rpath "$libvmi")
+    patchelf --set-rpath "$oldrpath:${makeLibraryPath [ xen ]}" "$libvmi"
+  '';
+
   meta = with stdenv.lib; {
     homepage = "http://libvmi.com/";
     description = "A C library for virtual machine introspection";