From e4a2a7e73e43dc84f9b5f58880efc08b132b9f29 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Tue, 28 Oct 2014 04:16:14 +0000 Subject: [PATCH] simplification / refactoring --- pkgs/development/interpreters/ruby/fixes.nix | 98 ++++++++----------- pkgs/development/interpreters/ruby/gem.nix | 2 +- .../interpreters/ruby/import-gems.nix | 57 ----------- .../interpreters/ruby/load-ruby-env.nix | 66 ++++--------- .../interpreters/ruby/rubygems.nix | 2 +- pkgs/top-level/all-packages.nix | 20 +--- 6 files changed, 67 insertions(+), 178 deletions(-) delete mode 100644 pkgs/development/interpreters/ruby/import-gems.nix diff --git a/pkgs/development/interpreters/ruby/fixes.nix b/pkgs/development/interpreters/ruby/fixes.nix index eebda22263ac..6457e7133874 100644 --- a/pkgs/development/interpreters/ruby/fixes.nix +++ b/pkgs/development/interpreters/ruby/fixes.nix @@ -17,67 +17,51 @@ # This seperates "what to build" (the exact gem versions) from "how to build" # (to make gems behave if necessary). -{ lib, gemset, buildRubyGem, writeScript, ruby, libxml2, libxslt, python, stdenv -, which, postgresql, v8_3_16_14, clang }: +{ lib, fetchurl, writeScript, ruby, libxml2, libxslt, python, stdenv, which +, postgresql, v8_3_16_14, clang }: let - const = x: y: x; v8 = v8_3_16_14; - gems = lib.mapAttrs (name: attrs: - if (lib.isDerivation attrs) then attrs - else (instantiate name attrs) - ) gemset; +in - instantiate = (name: attrs: - let - gemPath = map (name: gems."${name}") (attrs.dependencies or []); - fixedAttrs = attrs // (fixes."${name}" or const {}) attrs; - in - buildRubyGem (fixedAttrs // { name = "${name}-${attrs.version}"; inherit gemPath; }) - ); - - fixes = { - bundler = attrs: { - dontPatchShebangs = 1; - }; - - libv8 = attrs: { - buildFlags = [ "--with-system-v8" ]; - buildInputs = [ which v8 python ]; - }; - - nokogiri = attrs: { - buildFlags = [ - "--with-xml2-dir=${libxml2}" - "--with-xml2-include=${libxml2}/include/libxml2" - "--with-xslt-dir=${libxslt}" - "--use-system-libraries" - ]; - }; - - therubyracer = attrs: { - dontBuild = false; - - preInstall = '' - addToSearchPath RUBYLIB "${gems.libv8}/gems/libv8-3.16.14.3/lib" - addToSearchPath RUBYLIB "${gems.libv8}/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 '' - cat >> $out/nix-support/setup-hook <> $out/nix-support/setup-hook <