diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix index c06d1d0f9d0..2b77d535819 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 }: +{ lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive, writeText, withLibvirt ? false, libvirt, pkgconfig }: let # NOTE: bumping the version and updating the hash is insufficient; @@ -15,7 +15,7 @@ let inherit ruby; gemfile = writeText "Gemfile" ""; lockfile = writeText "Gemfile.lock" ""; - gemset = lib.recursiveUpdate (import ./gemset.nix) { + gemset = lib.recursiveUpdate (import ./gemset.nix) ({ vagrant = { source = { type = "url"; @@ -23,7 +23,7 @@ let }; inherit version; }; - }; + } // lib.optionalAttrs withLibvirt (import ./gemset_libvirt.nix)); }; in buildRubyGem rec { @@ -35,6 +35,8 @@ in buildRubyGem rec { dontBuild = false; src = fetchurl { inherit url sha256; }; + buildInputs = lib.optional withLibvirt [ libvirt pkgconfig ]; + patches = [ ./unofficial-installation-nowarn.patch ./use-system-bundler-version.patch @@ -45,7 +47,12 @@ in buildRubyGem rec { postInstall = '' wrapProgram "$out/bin/vagrant" \ --set GEM_PATH "${deps}/lib/ruby/gems/${ruby.version.libDir}" \ - --prefix PATH ':' "${lib.getBin libarchive}/bin" + --prefix PATH ':' "${lib.getBin libarchive}/bin" \ + ${lib.optionalString withLibvirt '' + --prefix PATH ':' "${pkgconfig}/bin" \ + --prefix PKG_CONFIG_PATH ':' \ + "${lib.makeSearchPath "lib/pkgconfig" [ libvirt ]}" + ''} ''; installCheckPhase = '' diff --git a/pkgs/development/tools/vagrant/gemset_libvirt.nix b/pkgs/development/tools/vagrant/gemset_libvirt.nix new file mode 100644 index 00000000000..aeaf42341a8 --- /dev/null +++ b/pkgs/development/tools/vagrant/gemset_libvirt.nix @@ -0,0 +1,19 @@ +{ + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; + type = "gem"; + }; + version = "2.3.0"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz"; + type = "gem"; + }; + version = "1.8.5"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cea917e174b..1be3e6d6c99 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8990,6 +8990,7 @@ with pkgs; universal-ctags = callPackage ../development/tools/misc/universal-ctags { }; vagrant = callPackage ../development/tools/vagrant {}; + vagrant-libvirt = self.vagrant.override { withLibvirt = true; }; bashdb = callPackage ../development/tools/misc/bashdb { };