about summary refs log tree commit diff
path: root/pkgs/development/interpreters
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2019-02-01 09:42:53 +0100
committerVladimír Čunát <vcunat@gmail.com>2019-02-01 09:42:53 +0100
commit8ba516664bf367889b06b06e4122372f82f24feb (patch)
tree01b691a7e1ad4797843b4c93d8a9d74fd16311d7 /pkgs/development/interpreters
parentd00ca4476cd91bae052e8ded4d94e124a353d091 (diff)
parent5effa4e0f98b317fe4607b1a6548811017c3325d (diff)
downloadnixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.gz
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.bz2
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.lz
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.xz
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.tar.zst
nixlib-8ba516664bf367889b06b06e4122372f82f24feb.zip
Merge branch 'staging-next' into staging
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r--pkgs/development/interpreters/elixir/1.8.nix4
-rw-r--r--pkgs/development/interpreters/elixir/generic-builder.nix3
-rw-r--r--pkgs/development/interpreters/lua-5/5.1.nix22
-rw-r--r--pkgs/development/interpreters/lua-5/5.2.nix26
-rw-r--r--pkgs/development/interpreters/lua-5/5.3.nix24
-rw-r--r--pkgs/development/interpreters/lua-5/build-rocks.nix0
-rw-r--r--pkgs/development/interpreters/lua-5/build-rockspec.nix0
-rw-r--r--pkgs/development/interpreters/lua-5/setup-hook.nix15
-rw-r--r--pkgs/development/interpreters/lua-5/setup-hook.sh47
-rw-r--r--pkgs/development/interpreters/lua-5/with-packages.nix4
-rw-r--r--pkgs/development/interpreters/lua-5/wrapper.nix73
-rw-r--r--pkgs/development/interpreters/luajit/2.0.nix10
-rw-r--r--pkgs/development/interpreters/luajit/2.1.nix7
-rw-r--r--pkgs/development/interpreters/luajit/default.nix121
-rw-r--r--pkgs/development/interpreters/metamath/default.nix6
-rw-r--r--pkgs/development/interpreters/pixie/default.nix2
-rw-r--r--pkgs/development/interpreters/racket/default.nix4
-rw-r--r--pkgs/development/interpreters/racket/minimal.nix2
-rw-r--r--pkgs/development/interpreters/ruby/default.nix6
-rw-r--r--pkgs/development/interpreters/ruby/patchsets.nix2
20 files changed, 301 insertions, 77 deletions
diff --git a/pkgs/development/interpreters/elixir/1.8.nix b/pkgs/development/interpreters/elixir/1.8.nix
index 65c008f8ac6b..40136fd22de8 100644
--- a/pkgs/development/interpreters/elixir/1.8.nix
+++ b/pkgs/development/interpreters/elixir/1.8.nix
@@ -1,7 +1,7 @@
 { mkDerivation }:
 
 mkDerivation rec {
-  version = "1.8.0-rc.1";
-  sha256 = "06k9q46cwn79ic6kw0b0mskf9rqlgm02jb8n1ajz55kmw134kq6m";
+  version = "1.8.1";
+  sha256 = "1npnrkn21kqqfqrsn06mr78jxs6n5l8c935jpxvnmj7iysp50pf9";
   minimumOTPVersion = "20";
 }
diff --git a/pkgs/development/interpreters/elixir/generic-builder.nix b/pkgs/development/interpreters/elixir/generic-builder.nix
index b4e1cacfe267..844d6eeb4fb9 100644
--- a/pkgs/development/interpreters/elixir/generic-builder.nix
+++ b/pkgs/development/interpreters/elixir/generic-builder.nix
@@ -7,7 +7,7 @@
 , sha256 ? null
 , rev ? "v${version}"
 , src ? fetchFromGitHub { inherit rev sha256; owner = "elixir-lang"; repo = "elixir"; }
-}:
+} @ args:
 
 let
   inherit (stdenv.lib) getVersion versionAtLeast;
@@ -62,6 +62,7 @@ in
             --replace "/usr/bin/env elixir" "${coreutils}/bin/env elixir"
     '';
 
+    pos = builtins.unsafeGetAttrPos "sha256" args;
     meta = with stdenv.lib; {
       homepage = https://elixir-lang.org/;
       description = "A functional, meta-programming aware language built on top of the Erlang VM";
diff --git a/pkgs/development/interpreters/lua-5/5.1.nix b/pkgs/development/interpreters/lua-5/5.1.nix
index 09af492490cf..b2948b392d5e 100644
--- a/pkgs/development/interpreters/lua-5/5.1.nix
+++ b/pkgs/development/interpreters/lua-5/5.1.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchurl, readline }:
+{ stdenv, fetchurl, readline
+, self
+, callPackage
+, packageOverrides ? (self: super: {})
+}:
 
 let
   dsoPatch = fetchurl {
@@ -6,6 +10,7 @@ let
     sha256 = "11fcyb4q55p4p7kdb8yp85xlw8imy14kzamp2khvcyxss4vw8ipw";
     name = "lua-arch.patch";
   };
+  luaPackages = callPackage ../../lua-modules {lua=self; overrides=packageOverrides;};
 in
 stdenv.mkDerivation rec {
   name = "lua-${version}";
@@ -17,6 +22,10 @@ stdenv.mkDerivation rec {
     sha256 = "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333";
   };
 
+  LuaPathSearchPaths    = luaPackages.getLuaPathList luaversion;
+  LuaCPathSearchPaths   = luaPackages.getLuaCPathList luaversion;
+  setupHook = luaPackages.lua-setup-hook LuaPathSearchPaths LuaCPathSearchPaths;
+
   buildInputs = [ readline ];
 
   patches = (if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch ])
@@ -39,6 +48,16 @@ stdenv.mkDerivation rec {
     rmdir $out/{share,lib}/lua/5.1 $out/{share,lib}/lua
   '';
 
+  passthru = rec {
+    buildEnv = callPackage ./wrapper.nix {
+      lua=self;
+      inherit (luaPackages) requiredLuaModules;
+    };
+    withPackages = import ./with-packages.nix { inherit buildEnv luaPackages;};
+    pkgs = luaPackages;
+    interpreter = "${self}/bin/lua";
+  };
+
   meta = {
     homepage = http://www.lua.org;
     description = "Powerful, fast, lightweight, embeddable scripting language";
@@ -51,6 +70,7 @@ stdenv.mkDerivation rec {
       for configuration, scripting, and rapid prototyping.
     '';
     license = stdenv.lib.licenses.mit;
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
     hydraPlatforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/interpreters/lua-5/5.2.nix b/pkgs/development/interpreters/lua-5/5.2.nix
index a8badf647c0c..e89a2cbece6d 100644
--- a/pkgs/development/interpreters/lua-5/5.2.nix
+++ b/pkgs/development/interpreters/lua-5/5.2.nix
@@ -1,4 +1,10 @@
-{ stdenv, fetchurl, readline, compat ? false }:
+{ stdenv, fetchurl, readline
+# compiles compatibility layer with lua5.1
+, compat ? false
+, callPackage
+, self
+, packageOverrides ? (self: super: {})
+}:
 
 let
   dsoPatch = fetchurl {
@@ -6,12 +12,17 @@ let
     sha256 = "1by1dy4ql61f5c6njq9ibf9kaqm3y633g2q8j54iyjr4cxvqwqz9";
     name = "lua-arch.patch";
   };
+  luaPackages = callPackage ../../lua-modules {lua=self; overrides=packageOverrides;};
 in
 stdenv.mkDerivation rec {
   name = "lua-${version}";
   luaversion = "5.2";
   version = "${luaversion}.4";
 
+  LuaPathSearchPaths    = luaPackages.getLuaPathList luaversion;
+  LuaCPathSearchPaths   = luaPackages.getLuaCPathList luaversion;
+  setupHook = luaPackages.lua-setup-hook LuaPathSearchPaths LuaCPathSearchPaths;
+
   src = fetchurl {
     url = "https://www.lua.org/ftp/${name}.tar.gz";
     sha256 = "0jwznq0l8qg9wh5grwg07b5cy3lzngvl5m2nl1ikp6vqssmf9qmr";
@@ -21,6 +32,19 @@ stdenv.mkDerivation rec {
 
   patches = if stdenv.isDarwin then [ ./5.2.darwin.patch ] else [ dsoPatch ];
 
+
+  passthru = rec {
+    buildEnv = callPackage ./wrapper.nix {
+      lua = self;
+      inherit (luaPackages) requiredLuaModules;
+    };
+    withPackages = import ./with-packages.nix { inherit buildEnv luaPackages;};
+    pkgs = luaPackages;
+    interpreter = "${self}/bin/lua";
+  };
+
+  enableParallelBuilding = true;
+
   configurePhase =
     if stdenv.isDarwin
     then ''
diff --git a/pkgs/development/interpreters/lua-5/5.3.nix b/pkgs/development/interpreters/lua-5/5.3.nix
index eb34391e1993..c1fdc0fd9904 100644
--- a/pkgs/development/interpreters/lua-5/5.3.nix
+++ b/pkgs/development/interpreters/lua-5/5.3.nix
@@ -1,5 +1,11 @@
-{ stdenv, fetchurl, readline, compat ? false }:
-
+{ stdenv, fetchurl, readline, compat ? false
+, callPackage
+, self
+, packageOverrides ? (self: super: {})
+}:
+let
+  luaPackages = callPackage ../../lua-modules {lua=self; overrides=packageOverrides;};
+in
 stdenv.mkDerivation rec {
   name = "lua-${version}";
   luaversion = "5.3";
@@ -10,6 +16,10 @@ stdenv.mkDerivation rec {
     sha256 = "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac";
   };
 
+  LuaPathSearchPaths    = luaPackages.getLuaPathList luaversion;
+  LuaCPathSearchPaths   = luaPackages.getLuaCPathList luaversion;
+  setupHook = luaPackages.lua-setup-hook LuaPathSearchPaths LuaCPathSearchPaths;
+
   buildInputs = [ readline ];
 
   patches = if stdenv.isDarwin then [ ./5.2.darwin.patch ] else [];
@@ -54,6 +64,16 @@ stdenv.mkDerivation rec {
     ln -s "$out/lib/pkgconfig/lua.pc" "$out/lib/pkgconfig/lua${luaversion}.pc"
   '';
 
+  passthru = rec {
+    buildEnv = callPackage ./wrapper.nix {
+      lua = self;
+      inherit (luaPackages) requiredLuaModules;
+    };
+    withPackages = import ./with-packages.nix { inherit buildEnv luaPackages;};
+    pkgs = luaPackages;
+    interpreter = "${self}/bin/lua";
+  };
+
   meta = {
     homepage = http://www.lua.org;
     description = "Powerful, fast, lightweight, embeddable scripting language";
diff --git a/pkgs/development/interpreters/lua-5/build-rocks.nix b/pkgs/development/interpreters/lua-5/build-rocks.nix
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/build-rocks.nix
diff --git a/pkgs/development/interpreters/lua-5/build-rockspec.nix b/pkgs/development/interpreters/lua-5/build-rockspec.nix
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/build-rockspec.nix
diff --git a/pkgs/development/interpreters/lua-5/setup-hook.nix b/pkgs/development/interpreters/lua-5/setup-hook.nix
new file mode 100644
index 000000000000..62caffd8d8a0
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/setup-hook.nix
@@ -0,0 +1,15 @@
+{ runCommand, lib, }:
+
+LuaPathSearchPaths: LuaCPathSearchPaths:
+
+let
+  hook = ./setup-hook.sh;
+in runCommand "lua-setup-hook.sh" {
+  # hum doesn't seem to like caps !! BUG ?
+  luapathsearchpaths=lib.escapeShellArgs LuaPathSearchPaths;
+  luacpathsearchpaths=lib.escapeShellArgs LuaCPathSearchPaths;
+} ''
+  cp ${hook} hook.sh
+  substituteAllInPlace hook.sh
+  mv hook.sh $out
+''
diff --git a/pkgs/development/interpreters/lua-5/setup-hook.sh b/pkgs/development/interpreters/lua-5/setup-hook.sh
new file mode 100644
index 000000000000..5e37bd27f617
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/setup-hook.sh
@@ -0,0 +1,47 @@
+# set -e
+
+nix_print() {
+    if (( "${NIX_DEBUG:-0}" >= $1 )); then
+        echo "$2"
+    fi
+}
+
+nix_debug() {
+    nix_print 3 "$1"
+}
+
+addToLuaSearchPathWithCustomDelimiter() {
+    local varName="$1"
+    local absPattern="$2"
+    # delete longest match starting from the lua placeholder '?'
+    local topDir="${absPattern%%\?*}"
+
+    # export only if the folder exists else LUA_PATH grows too big
+    if  [ ! -d "$topDir" ]; then return; fi
+
+    export "${varName}=${!varName:+${!varName};}${absPattern}"
+}
+
+addToLuaPath() {
+    local dir="$1"
+
+    if [[ ! -d "$dir" ]]; then
+        nix_debug "$dir not a directory abort"
+        return 0
+    fi
+    cd "$dir"
+    for pattern in @luapathsearchpaths@;
+    do
+        addToLuaSearchPathWithCustomDelimiter LUA_PATH "$PWD/$pattern"
+    done
+
+    # LUA_CPATH
+    for pattern in @luacpathsearchpaths@;
+    do
+        addToLuaSearchPathWithCustomDelimiter LUA_CPATH "$PWD/$pattern"
+    done
+    cd - >/dev/null
+}
+
+addEnvHooks "$hostOffset" addToLuaPath
+
diff --git a/pkgs/development/interpreters/lua-5/with-packages.nix b/pkgs/development/interpreters/lua-5/with-packages.nix
new file mode 100644
index 000000000000..0e0fbd397358
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/with-packages.nix
@@ -0,0 +1,4 @@
+{ buildEnv, luaPackages }:
+
+# this is a function that returns a function that returns an environment
+f: let packages = f luaPackages; in buildEnv.override { extraLibs = packages; }
diff --git a/pkgs/development/interpreters/lua-5/wrapper.nix b/pkgs/development/interpreters/lua-5/wrapper.nix
new file mode 100644
index 000000000000..9abbd77d575e
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/wrapper.nix
@@ -0,0 +1,73 @@
+{ stdenv, lua, buildEnv, makeWrapper
+, extraLibs ? []
+, extraOutputsToInstall ? []
+, postBuild ? ""
+, ignoreCollisions ? false
+, lib
+, requiredLuaModules
+, makeWrapperArgs ? []
+}:
+
+# Create a lua executable that knows about additional packages.
+let
+  env = let
+    paths =  requiredLuaModules (extraLibs ++ [ lua ] );
+  in buildEnv {
+    name = "${lua.name}-env";
+
+    inherit paths;
+    inherit ignoreCollisions;
+    extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
+
+    # we create wrapper for the binaries in the different packages
+    postBuild = ''
+
+      . "${makeWrapper}/nix-support/setup-hook"
+
+      # get access to lua functions
+      . ${lua}/nix-support/setup-hook
+
+      if [ -L "$out/bin" ]; then
+          unlink "$out/bin"
+      fi
+      mkdir -p "$out/bin"
+
+      addToLuaPath "$out"
+
+      # take every binary from lua packages and put them into the env
+      for path in ${stdenv.lib.concatStringsSep " " paths}; do
+        nix_debug "looking for binaries in path = $path"
+        if [ -d "$path/bin" ]; then
+          cd "$path/bin"
+          for prg in *; do
+            if [ -f "$prg" ]; then
+              rm -f "$out/bin/$prg"
+              if [ -x "$prg" ]; then
+                nix_debug "Making wrapper $prg"
+                makeWrapper "$path/bin/$prg" "$out/bin/$prg" --suffix LUA_PATH ';' "$LUA_PATH"   --suffix LUA_CPATH ';' "$LUA_CPATH" ${stdenv.lib.concatStringsSep " " makeWrapperArgs}
+              fi
+            fi
+          done
+        fi
+      done
+    '' + postBuild;
+
+    inherit (lua) meta;
+
+    passthru = lua.passthru // {
+      interpreter = "${env}/bin/lua";
+      inherit lua;
+      env = stdenv.mkDerivation {
+        name = "interactive-${lua.name}-environment";
+        nativeBuildInputs = [ env ];
+
+        buildCommand = ''
+          echo >&2 ""
+          echo >&2 "*** lua 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
+          echo >&2 ""
+          exit 1
+        '';
+    };
+    };
+  };
+in env
diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix
new file mode 100644
index 000000000000..0889b7fefe68
--- /dev/null
+++ b/pkgs/development/interpreters/luajit/2.0.nix
@@ -0,0 +1,10 @@
+{ self, callPackage, lib }:
+callPackage ./default.nix {
+  inherit self;
+  version = "2.0.5";
+  isStable = true;
+  sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7";
+  extraMeta = {
+    platforms = lib.filter (p: p != "aarch64-linux") lib.meta.platforms;
+  };
+}
diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix
new file mode 100644
index 000000000000..0f223963132e
--- /dev/null
+++ b/pkgs/development/interpreters/luajit/2.1.nix
@@ -0,0 +1,7 @@
+{ self, callPackage, lib }:
+callPackage ./default.nix {
+  inherit self;
+  version = "2.1.0-beta3";
+  isStable = false;
+  sha256 = "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs";
+}
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index 9ee628f498ee..c95b9e8b8e37 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -1,71 +1,74 @@
-{ stdenv, lib, fetchurl }:
-rec {
+{ stdenv, lib, fetchurl
+, name ? "luajit-${version}"
+, isStable
+, sha256
+, version
+, extraMeta ? {}
+, callPackage
+, self
+, packageOverrides ? (self: super: {})
+}:
+let
+  luaPackages = callPackage ../../lua-modules {lua=self; overrides=packageOverrides;};
+in
+stdenv.mkDerivation rec {
+  inherit name version;
+  src = fetchurl {
+    url = "http://luajit.org/download/LuaJIT-${version}.tar.gz";
+    inherit sha256;
+  };
 
-  luajit = luajit_2_1;
+  luaversion = "5.1";
 
-  luajit_2_0 = generic {
-    version = "2.0.5";
-    isStable = true;
-    sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7";
-    meta = genericMeta // {
-      platforms = lib.filter (p: p != "aarch64-linux") genericMeta.platforms;
-    };
-  };
+  patchPhase = ''
+    substituteInPlace Makefile \
+      --replace /usr/local "$out"
+
+    substituteInPlace src/Makefile --replace gcc cc
+  '' + stdenv.lib.optionalString (stdenv.cc.libc != null)
+  ''
+    substituteInPlace Makefile \
+      --replace ldconfig ${stdenv.cc.libc.bin or stdenv.cc.libc}/bin/ldconfig
+  '';
+
+  configurePhase = false;
 
-  luajit_2_1 = generic {
-    version = "2.1.0-beta3";
-    isStable = false;
-    sha256 = "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs";
+  buildFlags = [ "amalg" ]; # Build highly optimized version
+  enableParallelBuilding = true;
+
+  installPhase   = ''
+      make install PREFIX="$out"
+      ( cd "$out/include"; ln -s luajit-*/* . )
+      ln -s "$out"/bin/luajit-* "$out"/bin/lua
+    ''
+    + stdenv.lib.optionalString (!isStable) ''
+      ln -s "$out"/bin/luajit-* "$out"/bin/luajit
+    '';
+
+  LuaPathSearchPaths = [
+    "lib/lua/${luaversion}/?.lua" "share/lua/${luaversion}/?.lua"
+    "share/lua/${luaversion}/?/init.lua" "lib/lua/${luaversion}/?/init.lua"
+    "share/${name}/?.lua"
+  ];
+  LuaCPathSearchPaths = [ "lib/lua/${luaversion}/?.so" "share/lua/${luaversion}/?.so" ];
+  setupHook = luaPackages.lua-setup-hook LuaPathSearchPaths LuaCPathSearchPaths;
+
+  passthru = rec {
+    buildEnv = callPackage ../lua-5/wrapper.nix {
+      lua = self;
+      inherit (luaPackages) requiredLuaModules;
+    };
+    withPackages = import ../lua-5/with-packages.nix { inherit buildEnv luaPackages;};
+    pkgs = luaPackages;
+    interpreter = "${self}/bin/lua";
   };
 
-  genericMeta = with stdenv.lib; {
+  meta = with stdenv.lib; extraMeta // {
     description = "High-performance JIT compiler for Lua 5.1";
     homepage    = http://luajit.org;
     license     = licenses.mit;
     platforms   = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ thoughtpolice smironov vcunat andir ];
   };
-
-  generic =
-    { version, sha256 ? null, isStable
-    , name ? "luajit-${version}"
-    , src ?
-      (fetchurl {
-        url = "http://luajit.org/download/LuaJIT-${version}.tar.gz";
-        inherit sha256;
-      })
-    , meta ? genericMeta
-    }:
-
-    stdenv.mkDerivation rec {
-      inherit name version src meta;
-
-      luaversion = "5.1";
-
-      patchPhase = ''
-        substituteInPlace Makefile \
-          --replace /usr/local "$out"
-
-        substituteInPlace src/Makefile --replace gcc cc
-      '' + stdenv.lib.optionalString (stdenv.cc.libc != null)
-      ''
-        substituteInPlace Makefile \
-          --replace ldconfig ${stdenv.cc.libc.bin or stdenv.cc.libc}/bin/ldconfig
-      '';
-
-      configurePhase = false;
-
-      buildFlags = [ "amalg" ]; # Build highly optimized version
-      enableParallelBuilding = true;
-
-      installPhase   = ''
-        make install PREFIX="$out"
-        ( cd "$out/include"; ln -s luajit-*/* . )
-        ln -s "$out"/bin/luajit-* "$out"/bin/lua
-      ''
-        + stdenv.lib.optionalString (!isStable)
-          ''
-            ln -s "$out"/bin/luajit-* "$out"/bin/luajit
-          '';
-    };
 }
+
diff --git a/pkgs/development/interpreters/metamath/default.nix b/pkgs/development/interpreters/metamath/default.nix
index fedb9f59f80f..e8e23cee830a 100644
--- a/pkgs/development/interpreters/metamath/default.nix
+++ b/pkgs/development/interpreters/metamath/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "metamath-${version}";
-  version = "0.171";
+  version = "0.172";
 
   buildInputs = [ autoreconfHook ];
 
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "Taneb";
     repo = "metamath";
-    rev = "1c622a844fbdee43f13a629c73d8b33ff7fc4e44";
-    sha256 = "0bkz75saddlwinyqwmxx89nilaar401j63kgqfqiak8iw2nk3wln";
+    rev = "43141cd17638f8efb409dc5d46e7de6a6c39ec42";
+    sha256 = "07c7df0zl0wsb0pvdgkwikpr8kz7fi3mshxzk61vkamyp68djjb5";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/interpreters/pixie/default.nix b/pkgs/development/interpreters/pixie/default.nix
index 928a55173243..d1f2edce936d 100644
--- a/pkgs/development/interpreters/pixie/default.nix
+++ b/pkgs/development/interpreters/pixie/default.nix
@@ -35,7 +35,7 @@ let
     nativeBuildInputs = [ makeWrapper pkgconfig ];
     buildInputs = libs;
     PYTHON = if buildWithPypy
-      then "${pypy}/pypy-c/.pypy-c-wrapped"
+      then "${pypy}/pypy-c/pypy-c"
       else "${python2.interpreter}";
     unpackPhase = ''
       cp -R ${pixie-src} pixie-src
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index efe14da5834f..b834de7356f7 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -41,7 +41,7 @@ in
 
 stdenv.mkDerivation rec {
   name = "racket-${version}";
-  version = "7.1"; # always change at once with ./minimal.nix
+  version = "7.2"; # always change at once with ./minimal.nix
 
   src = (stdenv.lib.makeOverridable ({ name, sha256 }:
     fetchurl rec {
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     }
   )) {
     inherit name;
-    sha256 = "180z0z6srzyipi9wfnbh61nbvzxr5d1cls7wxapv6fw92y52jwz9";
+    sha256 = "12cq0kiigmf9bxb4rcgxdhwc2fcdwvlyb1q3f8x4hswcpgq1ybg4";
   };
 
   FONTCONFIG_FILE = fontsConf;
diff --git a/pkgs/development/interpreters/racket/minimal.nix b/pkgs/development/interpreters/racket/minimal.nix
index 114023defcd4..c7e2056b7ca3 100644
--- a/pkgs/development/interpreters/racket/minimal.nix
+++ b/pkgs/development/interpreters/racket/minimal.nix
@@ -5,7 +5,7 @@ racket.overrideAttrs (oldAttrs: rec {
   name = "racket-minimal-${oldAttrs.version}";
   src = oldAttrs.src.override {
     inherit name;
-    sha256 = "11vcqxdgyarv89ijd46wzrdl2wk7xjirg7ynlz7r0smdcqrcl711";
+    sha256 = "01wsiyqfiiwn2n4xxk8d8di92l2ng7yhc4bfmgrvkgaqzy3zfhhx";
   };
 
   meta = oldAttrs.meta // {
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index 7365cd522734..2a2392011d13 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -223,10 +223,10 @@ in {
   };
 
   ruby_2_6 = generic {
-    version = rubyVersion "2" "6" "0" "";
+    version = rubyVersion "2" "6" "1" "";
     sha256 = {
-      src = "0wn0gxlx6xhhqrm2caxp0h6cj4nw7knnv5gh27qqzj0i9a95phzk";
-      git = "0bwbl4hz18dd5aij2l4s6xy90dc17d03kk577gdl34l9mbd9m7mn";
+      src = "1f0w37jz2ryvlx260rw3s3wl0wg7dkzphb54lpvrqg90pfvly0hp";
+      git = "07gp7df1izw9rdbp9ciw4q5kq8icx3zd5w1xrhwsw0dfbsmmnsrj";
     };
   };
 }
diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix
index 8afc64edb3fd..fae76c706121 100644
--- a/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/pkgs/development/interpreters/ruby/patchsets.nix
@@ -16,6 +16,6 @@ rec {
     "${patchSet}/patches/ruby/2.5/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.5/head/railsexpress/03-more-detailed-stacktrace.patch"
   ];
-  "2.6.0" = ops useRailsExpress [ # no Rails Express patchset yet (2018-12-26)
+  "2.6.1" = ops useRailsExpress [ # no Rails Express patchset yet (2019-01-30)
   ];
 }