summary refs log tree commit diff
path: root/pkgs/development/libraries/libguestfs
diff options
context:
space:
mode:
authorvolth <volth@volth.com>2018-03-21 13:05:34 +0000
committerobadz <obadz-git@obadz.com>2018-03-21 22:46:01 +0000
commitf823d5025926169c89aeeb179eab4b19f1354f9b (patch)
tree63ec202814776fe69367fb1b45737b0d7ac614ba /pkgs/development/libraries/libguestfs
parent510907a598741d40bd74c3da550ba17b7ec8ab77 (diff)
downloadnixpkgs-f823d5025926169c89aeeb179eab4b19f1354f9b.tar
nixpkgs-f823d5025926169c89aeeb179eab4b19f1354f9b.tar.gz
nixpkgs-f823d5025926169c89aeeb179eab4b19f1354f9b.tar.bz2
nixpkgs-f823d5025926169c89aeeb179eab4b19f1354f9b.tar.lz
nixpkgs-f823d5025926169c89aeeb179eab4b19f1354f9b.tar.xz
nixpkgs-f823d5025926169c89aeeb179eab4b19f1354f9b.tar.zst
nixpkgs-f823d5025926169c89aeeb179eab4b19f1354f9b.zip
libguestfs: fix path to appliance
Diffstat (limited to 'pkgs/development/libraries/libguestfs')
-rw-r--r--pkgs/development/libraries/libguestfs/appliance.nix7
-rw-r--r--pkgs/development/libraries/libguestfs/default.nix34
2 files changed, 31 insertions, 10 deletions
diff --git a/pkgs/development/libraries/libguestfs/appliance.nix b/pkgs/development/libraries/libguestfs/appliance.nix
new file mode 100644
index 00000000000..d47b0902818
--- /dev/null
+++ b/pkgs/development/libraries/libguestfs/appliance.nix
@@ -0,0 +1,7 @@
+{ fetchzip }:
+
+fetchzip {
+  name = "libguestfs-appliance-1.38.0";
+  url = "http://libguestfs.org/download/binaries/appliance/appliance-1.38.0.tar.xz";
+  sha256 = "15rxwj5qjflizxk7slpbrj9lcwkd2lgm52f5yv101qba4yyn3g76";
+}
diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix
index d7d0fbe8094..258157c1178 100644
--- a/pkgs/development/libraries/libguestfs/default.nix
+++ b/pkgs/development/libraries/libguestfs/default.nix
@@ -3,19 +3,16 @@
 , acl, libcap, libcap_ng, libconfig, systemd, fuse, yajl, libvirt, hivex
 , gmp, readline, file, libintlperl, GetoptLong, SysVirt, numactl, xen, libapparmor
 , getopt, perlPackages, ocamlPackages
+, appliance ? null
 , javaSupport ? false, jdk ? null }:
 
+assert appliance == null || stdenv.lib.isDerivation appliance;
 assert javaSupport -> jdk != null;
 
 stdenv.mkDerivation rec {
   name = "libguestfs-${version}";
   version = "1.38.0";
 
-  appliance = fetchurl {
-    url = "http://libguestfs.org/download/binaries/appliance/appliance-1.38.0.tar.xz";
-    sha256 = "05481qxgidakga871yb5rgpyci2jaxmplmkh6y79anfh5m19nzhy";
-  };
-
   src = fetchurl {
     url = "http://libguestfs.org/download/1.38-stable/libguestfs-${version}.tar.gz";
     sha256 = "0cgapiad3x5ggwm097mq62hng3bv91p5gmrikrb6adfaasr1l6m3";
@@ -54,14 +51,31 @@ stdenv.mkDerivation rec {
   postInstall = ''
     for bin in $out/bin/*; do
       wrapProgram "$bin" \
-        --prefix "PATH" : "$out/bin:${hivex}/bin:${qemu}/bin" \
-        --prefix "PERL5LIB" : "$PERL5LIB:$out/lib/perl5/site_perl"
+        --prefix PATH     : "$out/bin:${hivex}/bin:${qemu}/bin" \
+        --prefix PERL5LIB : "$out/lib/perl5/site_perl"
     done
   '';
 
-  postFixup = ''
-    mkdir -p "$out/lib/guestfs"
-    tar -Jxvf "$appliance" --strip 1 -C "$out/lib/guestfs"
+  postFixup = stdenv.lib.optionalString (appliance != null) ''
+    mkdir -p $out/{lib,lib64}
+    ln -s ${appliance} $out/lib64/guestfs
+    ln -s ${appliance} $out/lib/guestfs
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    export HOME=$(mktemp -d) # avoid access to /homeless-shelter/.guestfish
+
+    ${qemu}/bin/qemu-img create -f qcow2 disk1.img 10G
+
+    $out/bin/guestfish <<'EOF'
+    add-drive disk1.img
+    run
+    list-filesystems
+    part-disk /dev/sda mbr
+    mkfs ext2 /dev/sda1
+    list-filesystems
+    EOF
   '';
 
   meta = with stdenv.lib; {