From a7cf555e2a744403817bfe2647c030eaa2cd66c7 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Mon, 29 Aug 2016 22:12:44 +0100 Subject: buildRubyGem: handle build-time ruby dependencies For some reason `gem install` unsets the GEM_PATH environment variable internally unless the install dir is provided. This in turn means that if it invokes extconf.rb and extconf.rb depends on a gem available on the GEM_PATH (like pkg-config for nokogiri) then it's not available in that context. Proof: https://github.com/rubygems/rubygems/blob/d8293c472966cb1de08784dfdd90560e56ceed84/lib/rubygems/commands/install_command.rb#L151 Blame: https://github.com/rubygems/rubygems/commit/9ea600c9c2b77d1459526fe1e2bcdf2ac778c24a This is a hack that sets the :install_dir to where we would install anyways (the GEM_HOME is the default installation destination). --- pkgs/development/ruby-modules/gem/default.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'pkgs/development/ruby-modules') diff --git a/pkgs/development/ruby-modules/gem/default.nix b/pkgs/development/ruby-modules/gem/default.nix index 8015fb1f6d01..347c4a79c596 100644 --- a/pkgs/development/ruby-modules/gem/default.nix +++ b/pkgs/development/ruby-modules/gem/default.nix @@ -181,6 +181,7 @@ stdenv.mkDerivation (attrs // { --force \ --http-proxy 'http://nodtd.invalid' \ --ignore-dependencies \ + --install-dir "$GEM_HOME" \ --build-root '/' \ --backtrace \ ${documentFlag} \ -- cgit 1.4.1