bundler: fix usage on nested call

The combination of bundler 1.12.5 and rubygems 1.6.2 doesn't play well
at all when trying to run gems such as foreman where bundler is used to
run bundler.

Just upgrading to the latest bundler rc doesn't fix it and changing rubygems causes a massive rebuild.

Issues:

- https://github.com/bundler/bundler/issues/4402
- https://github.com/bundler/bundler/issues/4576
- https://github.com/bundler/bundler/issues/4602
- https://github.com/docker-library/ruby/issues/73

This PR patches bundler to work around the issue as highlighted here and
unbreaks everything for me:

https://github.com/bundler/bundler/issues/4602#issuecomment-233619696
This commit is contained in:
zimbatm 2016-08-26 14:08:39 +01:00
parent 2755bcfa7c
commit 6ae57b1b63
2 changed files with 19 additions and 9 deletions

View File

@ -7,4 +7,8 @@ buildRubyGem rec {
version = "1.12.5";
sha256 = "1q84xiwm9j771lpmiply0ls9l2bpvl5axn3jblxjvrldh8di2pkc";
dontPatchShebangs = true;
postFixup = ''
sed -i -e "s/activate_bin_path/bin_path/g" $out/bin/bundle
'';
}

View File

@ -29,6 +29,21 @@ let
in
{
bundler = attrs:
let
templates = "${attrs.ruby.gemPath}/gems/${attrs.gemName}-${attrs.version}/lib/bundler/templates/";
in {
# patching shebangs would fail on the templates/Executable file, so we
# temporarily remove the executable flag.
preFixup = "chmod -x $out/${templates}/Executable";
postFixup = ''
chmod +x $out/${templates}/Executable
# Allows to load another bundler version
sed -i -e "s/activate_bin_path/bin_path/g" $out/bin/bundle
'';
};
capybara-webkit = attrs: {
buildInputs = [ qt48 ];
};
@ -177,14 +192,5 @@ in
'';
};
# patching shebangs would fail on the templates/Executable file, so we
# temporarily remove the executable flag.
bundler = attrs:
let
templates = "${attrs.ruby.gemPath}/gems/${attrs.gemName}-${attrs.version}/lib/bundler/templates/";
in {
preFixup = "chmod -x $out/${templates}/Executable";
postFixup = "chmod +x $out/${templates}/Executable";
};
}