{ fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi , zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty, imagemagick , pkgconfig }: let patchUsrBinEnv = writeScript "path-usr-bin-env" '' #!/bin/sh echo "===================" find "$1" -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g" find "$1" -type f -name "*.mk" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g" ''; in { buildr = { # Many Buildfiles rely on RUBYLIB containing the current directory # (as was the default in Ruby < 1.9.2). extraWrapperFlags = "--prefix RUBYLIB : ."; }; fakes3 = { postInstall = '' cd $out/${ruby.gemPath}/gems/* patch -Np1 -i ${../../ruby-modules/fake-s3-list-bucket.patch} ''; }; ffi = { postUnpack = "onetuh"; buildFlags = ["--with-ffi-dir=${libffi}"]; NIX_POST_EXTRACT_FILES_HOOK = patchUsrBinEnv; }; iconv = { buildInputs = [ libiconvOrEmpty ]; }; libv8 = { # This fix is needed to fool scons, which clears the environment by default. # It's ugly, but it works. # # We create a gcc wrapper wrapper, which reexposes the environment variables # that scons hides. Furthermore, they treat warnings as errors causing the # build to fail, due to an unused variable. # # Finally, we must set CC and AR explicitly to allow scons to find the # compiler and archiver preBuild = '' cat > $TMPDIR/g++ <