From b66b0c58cae9e9f7e400f61de01c078b9466934d Mon Sep 17 00:00:00 2001 From: Ryan Fitzsimon Date: Wed, 2 Jan 2019 14:03:20 +1000 Subject: [PATCH] vagrant: Add vagrant-libvirt utility dependencies When using vagrant-libvirt as provider, the 'vagrant package' command requires 'qemu-img' and 'virt-sysprep'. --- pkgs/development/tools/vagrant/default.nix | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix index f2e6b00c09b..b8ba30361aa 100644 --- a/pkgs/development/tools/vagrant/default.nix +++ b/pkgs/development/tools/vagrant/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive, writeText, withLibvirt ? true}: +{ lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive, libguestfs, qemu, writeText, withLibvirt ? true}: let # NOTE: bumping the version and updating the hash is insufficient; @@ -48,10 +48,22 @@ in buildRubyGem rec { # PATH additions: # - libarchive: Make `bsdtar` available for extracting downloaded boxes - postInstall = '' + # withLibvirt only: + # - libguestfs: Make 'virt-sysprep' available for 'vagrant package' + # - qemu: Make 'qemu-img' available for 'vagrant package' + postInstall = + let + pathAdditions = lib.makeSearchPath "bin" + (map (x: "${lib.getBin x}") ([ + libarchive + ] ++ lib.optionals withLibvirt [ + libguestfs + qemu + ])); + in '' wrapProgram "$out/bin/vagrant" \ --set GEM_PATH "${deps}/lib/ruby/gems/${ruby.version.libDir}" \ - --prefix PATH ':' "${lib.getBin libarchive}/bin" + --prefix PATH ':' ${pathAdditions} mkdir -p "$out/vagrant-plugins/plugins.d" echo '{}' > "$out/vagrant-plugins/plugins.json"