summary refs log tree commit diff
path: root/pkgs/development/interpreters/ruby/patches.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/ruby/patches.nix')
-rw-r--r--pkgs/development/interpreters/ruby/patches.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/ruby/patches.nix b/pkgs/development/interpreters/ruby/patches.nix
new file mode 100644
index 000000000000..abcb1d0dfe4a
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/patches.nix
@@ -0,0 +1,49 @@
+{fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi, zlib,
+  libuuid, gems}:
+
+let
+  patchUsrBinEnv = writeScript "path-usr-bin-env" ''
+    #!/bin/sh
+    set -x
+    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
+{
+  sup = { buildInputs = [ gems.ncursesw ]; };
+  sqlite3 = { propagatedBuildInputs = [ sqlite ]; };
+  rails = { gemFlags = "--no-ri --no-rdoc"; };
+  ncurses = { propagatedBuildInputs = [ ncurses ]; };
+  ncursesw = { propagatedBuildInputs = [ ncurses ]; };
+  nokogiri = {
+    buildFlags=["--with-xml2-dir=${libxml2} --with-xml2-include=${libxml2}/include/libxml2"
+                "--with-xslt-dir=${libxslt}" ];
+  };
+
+  ffi = {
+    postUnpack = "onetuh";
+    buildFlags=["--with-ffi-dir=${libffi}"];
+    NIX_POST_EXTRACT_FILES_HOOK = patchUsrBinEnv;
+  };
+
+  xrefresh_server =
+  let patch = fetchurl {
+      url = "http://mawercer.de/~nix/xrefresh.diff.gz";
+      sha256 = "1f7bnmn1pgkmkml0ms15m5lx880hq2sxy7vsddb3sbzm7n1yyicq";
+    };
+  in {
+    propagatedBuildInputs = [ gems.rb_inotify ];
+
+    # monitor implementation for Linux
+    postInstall = ''
+      cd $out/${ruby.gemPath}/gems/*
+      zcat ${patch} | patch -p 1
+    '';
+  };
+
+  xapian_full = {
+    buildInputs = [ gems.rake zlib libuuid ];
+    gemFlags = "--no-rdoc --no-ri";
+  };
+}