From f823d5025926169c89aeeb179eab4b19f1354f9b Mon Sep 17 00:00:00 2001 From: volth Date: Wed, 21 Mar 2018 13:05:34 +0000 Subject: libguestfs: fix path to appliance --- .../development/libraries/libguestfs/appliance.nix | 7 +++++ pkgs/development/libraries/libguestfs/default.nix | 34 +++++++++++++++------- 2 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 pkgs/development/libraries/libguestfs/appliance.nix (limited to 'pkgs/development/libraries/libguestfs') 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; { -- cgit 1.4.1