properly fix patching
This commit is contained in:
parent
efa528a415
commit
0ee5695bd4
@ -18,13 +18,13 @@ let
|
|||||||
if oldAttrs ? dontPatch && !(oldAttrs.dontPatch == false || oldAttrs.dontPatch == null) then {}
|
if oldAttrs ? dontPatch && !(oldAttrs.dontPatch == false || oldAttrs.dontPatch == null) then {}
|
||||||
else patches."${gem}")
|
else patches."${gem}")
|
||||||
else drv) gems;
|
else drv) gems;
|
||||||
self = rec {
|
selfPre = rec {
|
||||||
buildRubyGem = callPackage ./gem.nix { inherit ruby rake; };
|
buildRubyGem = callPackage ./gem.nix { inherit ruby rake; };
|
||||||
|
|
||||||
# import an attrset full of gems, then override badly behaved ones
|
# import an attrset full of gems, then override badly behaved ones
|
||||||
importGems = file: args:
|
importGems = file: args:
|
||||||
let
|
let
|
||||||
patches = callPackage ./patches.nix { inherit ruby; gems = builtGems; };
|
patches = callPackage ./patches.nix { inherit ruby; self = builtGems; };
|
||||||
preBuilt = callPackage file ({ inherit buildRubyGem; self = builtGems; } // args);
|
preBuilt = callPackage file ({ inherit buildRubyGem; self = builtGems; } // args);
|
||||||
builtGems = self // patchGemsWith preBuilt patches;
|
builtGems = self // patchGemsWith preBuilt patches;
|
||||||
in builtGems;
|
in builtGems;
|
||||||
@ -115,14 +115,41 @@ self = rec {
|
|||||||
sha256 = "09z0y0d6bks7i0sqvd8szfqj9i1kkj01anzly7shi83b3gxhrq9m";
|
sha256 = "09z0y0d6bks7i0sqvd8szfqj9i1kkj01anzly7shi83b3gxhrq9m";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
libv8 = buildRubyGem {
|
||||||
|
name = "libv8-3.16.14.3";
|
||||||
|
sha256 = "1arjjbmr9zxkyv6pdrihsz1p5cadzmx8308vgfvrhm380ccgridm";
|
||||||
|
};
|
||||||
|
|
||||||
|
mini_portile = buildRubyGem {
|
||||||
|
name = "mini_portile-0.6.0";
|
||||||
|
sha256 = "09kcn4g63xrdirgwxgjikqg976rr723bkc9bxfr29pk22cj3wavn";
|
||||||
|
};
|
||||||
|
|
||||||
|
nokogiri = buildRubyGem {
|
||||||
|
name = "nokogiri-1.6.3.1";
|
||||||
|
sha256 = "11958hlfd8i3i9y0wk1b6ck9x0j95l4zdbbixmdnnh1r8ijilxli";
|
||||||
|
gemPath = [ mini_portile ];
|
||||||
|
};
|
||||||
|
|
||||||
pg = buildRubyGem {
|
pg = buildRubyGem {
|
||||||
name = "pg-0.17.1";
|
name = "pg-0.17.1";
|
||||||
sha256 = "19hhlq5cp0cgm9b8daxjn8rkk8fq7bxxv1gd43l2hk0qgy7kx4z7";
|
sha256 = "19hhlq5cp0cgm9b8daxjn8rkk8fq7bxxv1gd43l2hk0qgy7kx4z7";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ref = buildRubyGem {
|
||||||
|
name = "ref-1.0.5";
|
||||||
|
sha256 = "19qgpsfszwc2sfh6wixgky5agn831qq8ap854i1jqqhy1zsci3la";
|
||||||
|
};
|
||||||
|
|
||||||
|
therubyracer = buildRubyGem {
|
||||||
|
name = "therubyracer-0.12.1";
|
||||||
|
sha256 = "106fqimqyaalh7p6czbl5m2j69z8gv7cm10mjb8bbb2p2vlmqmi6";
|
||||||
|
gemPath = [ self.libv8 self.ref ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
# TODO: refactor mutual recursion here
|
# TODO: refactor mutual recursion here
|
||||||
# it looks a lot like the importGems function above, but it's too late at night
|
# it looks a lot like the importGems function above, but it's too late at night
|
||||||
# to write a more generic version
|
# to write a more generic version
|
||||||
boringPatches = callPackage ./patches.nix { inherit ruby; gems = patchedSelf; };
|
boringPatches = callPackage ./patches.nix { inherit ruby self; };
|
||||||
patchedSelf = patchGemsWith self boringPatches;
|
self = patchGemsWith selfPre boringPatches;
|
||||||
in patchedSelf
|
in self
|
||||||
|
@ -3,9 +3,8 @@
|
|||||||
# gems in here generally involve native extensions; there's no way to tell
|
# gems in here generally involve native extensions; there's no way to tell
|
||||||
# based on the gemfile
|
# based on the gemfile
|
||||||
|
|
||||||
{ fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi
|
{ libxml2, libxslt, postgresql, python, ruby, self, v8_3_16_14, which, writeScript
|
||||||
, zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty, imagemagick
|
, stdenv }:
|
||||||
, gnumake, pkgconfig, which, postgresql, v8_3_16_14, clang }:
|
|
||||||
|
|
||||||
let
|
let
|
||||||
v8 = v8_3_16_14;
|
v8 = v8_3_16_14;
|
||||||
@ -39,11 +38,8 @@ in
|
|||||||
|
|
||||||
therubyracer = {
|
therubyracer = {
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
addToSearchPath RUBYLIB "${gems.libv8}/${ruby.gemPath}/gems/libv8-3.16.14.3/lib"
|
addToSearchPath RUBYLIB "${self.libv8}/${ruby.gemPath}/gems/libv8-3.16.14.3/lib"
|
||||||
addToSearchPath RUBYLIB "${gems.libv8}/${ruby.gemPath}/gems/libv8-3.16.14.3/ext"
|
addToSearchPath RUBYLIB "${self.libv8}/${ruby.gemPath}/gems/libv8-3.16.14.3/ext"
|
||||||
ln -s ${clang}/bin/clang $TMPDIR/gcc
|
|
||||||
ln -s ${clang}/bin/clang++ $TMPDIR/g++
|
|
||||||
export PATH=$TMPDIR:$PATH
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
|
Loading…
x
Reference in New Issue
Block a user