From 7f3b08361044e41fa74c7b583d019f9f82c16def Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Mon, 14 Mar 2016 12:32:48 +0300 Subject: [PATCH 01/12] torch: init at torch-git-2016-03-08 Torch is a machine-learning framework written in Lua --- .../machine-learning/torch/default.nix | 10 + .../machine-learning/torch/torch-distro.nix | 355 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 367 insertions(+) create mode 100644 pkgs/applications/science/machine-learning/torch/default.nix create mode 100644 pkgs/applications/science/machine-learning/torch/torch-distro.nix diff --git a/pkgs/applications/science/machine-learning/torch/default.nix b/pkgs/applications/science/machine-learning/torch/default.nix new file mode 100644 index 00000000000..0444e664502 --- /dev/null +++ b/pkgs/applications/science/machine-learning/torch/default.nix @@ -0,0 +1,10 @@ +{ callPackage, fetchgit } : +let + src = fetchgit { + url = "https://github.com/grwlf/torch-distro"; + rev = "f972c4253b14b95b53aefe7b24efa496223e73f2"; + sha256 = "1lhjhivhyypaic33vj1nsghshsajf7vi6gwsclaf3nqdl27d1h1s"; + }; + +in + callPackage (import ./torch-distro.nix) { inherit src; } diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix new file mode 100644 index 00000000000..66e7b15a568 --- /dev/null +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -0,0 +1,355 @@ +{ luarocks, lib , stdenv, writeText , readline, makeWrapper, + less, ncurses, cmake, openblas, coreutils, fetchgit, libuuid, czmq, openssl, + gnuplot, fetchurl, + + src ? ./. +} : + +let + + common_meta = { + homepage = http://torch.ch; + license = stdenv.lib.licenses.bsd3; + maintainers = with stdenv.lib.maintainers; [ smironov ]; + platforms = stdenv.lib.platforms.gnu; + }; + + distro_src = src; + + default_luarocks = luarocks; + + pkgs_gnuplot = gnuplot; + + luapkgs = rec { + + + luajit = + stdenv.mkDerivation rec { + name = "luajit-${version}"; + version = "2.1.0-beta1"; + luaversion = "5.1"; + + src = fetchurl { + url = "http://luajit.org/download/LuaJIT-${version}.tar.gz"; + sha256 = "06170d38387c59d1292001a166e7f5524f5c5deafa8705a49a46fa42905668dd"; + }; + + enableParallelBuilding = true; + + 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}/sbin/ldconfig + ''; + + configurePhase = false; + buildFlags = [ "amalg" ]; # Build highly optimized version + installPhase = '' + make install INSTALL_INC=$out/include PREFIX=$out + ln -s $out/bin/luajit* $out/bin/luajit + ''; + + meta = with stdenv.lib; { + description = "high-performance JIT compiler for Lua 5.1"; + homepage = http://luajit.org; + license = licenses.mit; + platforms = platforms.linux ++ platforms.darwin; + maintainers = [ maintainers.thoughtpolice ]; + }; + }; + + luarocks = default_luarocks.override { + lua = luajit; + }; + + buildLuaRocks = { rockspec ? "", luadeps ? [] , buildInputs ? [] + , preBuild ? "" , postInstall ? "" + , runtimeDeps ? [] , ... }@args : + let + + luadeps_ = + luadeps ++ + (lib.concatMap (d : if d ? luadeps then d.luadeps else []) luadeps); + + runtimeDeps_ = + runtimeDeps ++ + (lib.concatMap (d : if d ? runtimeDeps then d.runtimeDeps else []) luadeps) ++ + [ luajit coreutils ]; + + mkcfg = '' + export LUAROCKS_CONFIG=config.lua + cat >config.lua <= 1.0"' ' ' + export LUA_PATH="$src/?.lua;$LUA_PATH" + ''; + meta = common_meta // { + description = "Torch is a machine-learning library"; + longDescription = '' + Torch is the main package in [Torch7](http://torch.ch) where data + structures for multi-dimensional tensors and mathematical operations + over these are defined. Additionally, it provides many utilities for + accessing files, serializing objects of arbitrary types and other + useful utilities. + ''; + }; + }; + + dok = buildLuaRocks rec { + name = "dok"; + src = "${distro_src}/pkg/dok"; + luadeps = [sundown]; + rockspec = "rocks/${name}-scm-1.rockspec"; + }; + + sys = buildLuaRocks rec { + name = "sys"; + luadeps = [torch]; + buildInputs = [readline cmake]; + src = "${distro_src}/pkg/sys"; + rockspec = "sys-1.1-0.rockspec"; + preBuild = '' + export Torch_DIR=${torch}/share/cmake/torch + ''; + }; + + xlua = buildLuaRocks rec { + name = "xlua"; + luadeps = [torch sys]; + src = "${distro_src}/pkg/xlua"; + rockspec = "xlua-1.0-0.rockspec"; + }; + + nn = buildLuaRocks rec { + name = "nn"; + luadeps = [torch luaffifb]; + buildInputs = [cmake]; + src = "${distro_src}/extra/nn"; + rockspec = "rocks/nn-scm-1.rockspec"; + preBuild = '' + export Torch_DIR=${torch}/share/cmake/torch + ''; + }; + + graph = buildLuaRocks rec { + name = "graph"; + luadeps = [ torch ]; + buildInputs = [cmake]; + src = "${distro_src}/extra/graph"; + rockspec = "rocks/graph-scm-1.rockspec"; + preBuild = '' + export Torch_DIR=${torch}/share/cmake/torch + ''; + }; + + nngraph = buildLuaRocks rec { + name = "nngraph"; + luadeps = [ torch nn graph ]; + buildInputs = [cmake]; + src = "${distro_src}/extra/nngraph"; + preBuild = '' + export Torch_DIR=${torch}/share/cmake/torch + ''; + }; + + image = buildLuaRocks rec { + name = "image"; + luadeps = [ torch dok sys xlua ]; + buildInputs = [cmake]; + src = "${distro_src}/pkg/image"; + rockspec = "image-1.1.alpha-0.rockspec"; + preBuild = '' + export Torch_DIR=${torch}/share/cmake/torch + ''; + }; + + optim = buildLuaRocks rec { + name = "optim"; + luadeps = [ torch ]; + buildInputs = [cmake]; + src = "${distro_src}/pkg/optim"; + rockspec = "optim-1.0.5-0.rockspec"; + preBuild = '' + export Torch_DIR=${torch}/share/cmake/torch + ''; + }; + + gnuplot = buildLuaRocks rec { + name = "gnuplot"; + luadeps = [ torch paths ]; + runtimeDeps = [ pkgs_gnuplot less ]; + src = "${distro_src}/pkg/gnuplot"; + rockspec = "rocks/gnuplot-scm-1.rockspec"; + }; + + trepl = buildLuaRocks rec { + name = "trepl"; + luadeps = [torch gnuplot paths penlight graph nn nngraph image gnuplot optim sys dok]; + runtimeDeps = [ ncurses readline ]; + src = "${distro_src}/exe/trepl"; + meta = common_meta // { + description = "A pure Lua REPL for LuaJIT, with heavy support for Torch types."; + }; + }; + + lbase64 = buildLuaRocks rec { + name = "lbase64"; + src = fetchgit { + url = "https://github.com/LuaDist2/lbase64"; + rev = "1e9e4f1e0bf589a0ed39f58acc185ec5e213d207"; + sha256 = "1i1fpy9v6r4w3lrmz7bmf5ppq65925rv90gx39b3pykfmn0hcb9c"; + }; + }; + + luuid = stdenv.mkDerivation rec { + name = "luuid"; + src = fetchgit { + url = "https://github.com/LuaDist/luuid"; + sha256 = "062gdf1rild11jg46vry93hcbb36b4527pf1dy7q9fv89f7m2nav"; + }; + + preConfigure = '' + cmakeFlags="-DLUA_LIBRARY=${luajit}/lib/lua/${luajit.luaversion} -DINSTALL_CMOD=$out/lib/lua/${luajit.luaversion} -DINSTALL_MOD=$out/lib/lua/${luajit.luaversion}" + ''; + + buildInputs = [cmake libuuid luajit]; + meta = { + # FIXME: set the exact revision for src + broken = true; + }; + }; + + # Doesn't work due to missing deps (according to luarocs). + itorch = buildLuaRocks rec { + name = "itorch"; + luadeps = [torch gnuplot paths penlight graph nn nngraph image gnuplot + optim sys dok lbase64 lua-cjson luuid]; + buildInputs = [czmq openssl]; + src = "${distro_src}/extra/iTorch"; + meta = { + # FIXME: figure out whats wrong with deps + broken = true; + }; + }; + + + }; + +in + +luapkgs + + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1c283e4acb1..a1d5a683c3d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13427,6 +13427,8 @@ let quazip = qt5.quazip.override { qt = qt4; }; }; + torch-packages = recurseIntoAttrs ( callPackage ../applications/science/machine-learning/torch { } ); + torchat = callPackage ../applications/networking/instant-messengers/torchat { wrapPython = pythonPackages.wrapPython; }; From f499f61c85245d28adcd6393b3b2e2a5e891fffc Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Wed, 16 Mar 2016 11:36:04 +0300 Subject: [PATCH 02/12] torch: don't use default value for src --- .../science/machine-learning/torch/torch-distro.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix index 66e7b15a568..cbbaf0383c7 100644 --- a/pkgs/applications/science/machine-learning/torch/torch-distro.nix +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -1,8 +1,7 @@ { luarocks, lib , stdenv, writeText , readline, makeWrapper, less, ncurses, cmake, openblas, coreutils, fetchgit, libuuid, czmq, openssl, gnuplot, fetchurl, - - src ? ./. + src } : let From 1b0513941425af8967e637032bd88dc933892e0a Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Wed, 16 Mar 2016 23:52:09 +0300 Subject: [PATCH 03/12] torch: Read LUA_PATH and LUA_CPATH set by users --- .../science/machine-learning/torch/torch-distro.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix index cbbaf0383c7..2204af0597e 100644 --- a/pkgs/applications/science/machine-learning/torch/torch-distro.nix +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -117,8 +117,10 @@ let wrapProgram $p \ --set LD_LIBRARY_PATH "${lib.makeSearchPath "lib" runtimeDeps_}" \ --set PATH "${lib.makeSearchPath "bin" runtimeDeps_}" \ - --set LUA_PATH "'$LUA_PATH;$out/share/lua/${luajit.luaversion}/?.lua;$out/share/lua/${luajit.luaversion}/?/init.lua'" \ - --set LUA_CPATH "'$LUA_CPATH;$out/lib/lua/${luajit.luaversion}/?.so;$out/lib/lua/${luajit.luaversion}/?/init.so'" + --suffix LUA_PATH ';' "\"$LUA_PATH\"" \ + --suffix LUA_PATH ';' "\"$out/share/lua/${luajit.luaversion}/?.lua;$out/share/lua/${luajit.luaversion}/?/init.lua\"" \ + --suffix LUA_CPATH ';' "\"$LUA_CPATH\"" \ + --suffix LUA_CPATH ';' "\"$out/lib/lua/${luajit.luaversion}/?.so;$out/lib/lua/${luajit.luaversion}/?/init.so\"" done eval "$postInstall" From da66fd2b115c564d87ffb904e764bbb0cbd92f9b Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Sat, 19 Mar 2016 12:35:20 +0300 Subject: [PATCH 04/12] luajit: bump to 2.1.0-beta1 --- pkgs/development/interpreters/luajit/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix index 8e148f1189c..903af0bfd5f 100644 --- a/pkgs/development/interpreters/luajit/default.nix +++ b/pkgs/development/interpreters/luajit/default.nix @@ -2,11 +2,12 @@ stdenv.mkDerivation rec { name = "luajit-${version}"; - version = "2.0.4"; + version = "2.1.0-beta1"; + luaversion = "5.1"; src = fetchurl { url = "http://luajit.org/download/LuaJIT-${version}.tar.gz"; - sha256 = "0zc0y7p6nx1c0pp4nhgbdgjljpfxsb5kgwp4ysz22l1p2bms83v2"; + sha256 = "06170d38387c59d1292001a166e7f5524f5c5deafa8705a49a46fa42905668dd"; }; enableParallelBuilding = true; @@ -24,13 +25,16 @@ stdenv.mkDerivation rec { configurePhase = false; buildFlags = [ "amalg" ]; # Build highly optimized version - installPhase = "make install PREFIX=$out"; + installPhase = '' + make install INSTALL_INC=$out/include PREFIX=$out + ln -s $out/bin/luajit* $out/bin/luajit + ''; meta = with stdenv.lib; { description = "high-performance JIT compiler for Lua 5.1"; homepage = http://luajit.org; license = licenses.mit; platforms = platforms.linux ++ platforms.darwin; - maintainers = [ maintainers.thoughtpolice ]; + maintainers = with maintainers ; [ thoughtpolice smironov ]; }; } From a56b9ab5bebf9534404cd46f6b61f82e17164a0b Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Sat, 19 Mar 2016 12:35:40 +0300 Subject: [PATCH 05/12] torch: use default luajit --- .../machine-learning/torch/torch-distro.nix | 44 +------------------ 1 file changed, 1 insertion(+), 43 deletions(-) diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix index 2204af0597e..1de2b51a19d 100644 --- a/pkgs/applications/science/machine-learning/torch/torch-distro.nix +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -1,7 +1,6 @@ { luarocks, lib , stdenv, writeText , readline, makeWrapper, less, ncurses, cmake, openblas, coreutils, fetchgit, libuuid, czmq, openssl, - gnuplot, fetchurl, - src + gnuplot, fetchurl, luajit, src } : let @@ -21,47 +20,6 @@ let luapkgs = rec { - - luajit = - stdenv.mkDerivation rec { - name = "luajit-${version}"; - version = "2.1.0-beta1"; - luaversion = "5.1"; - - src = fetchurl { - url = "http://luajit.org/download/LuaJIT-${version}.tar.gz"; - sha256 = "06170d38387c59d1292001a166e7f5524f5c5deafa8705a49a46fa42905668dd"; - }; - - enableParallelBuilding = true; - - 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}/sbin/ldconfig - ''; - - configurePhase = false; - buildFlags = [ "amalg" ]; # Build highly optimized version - installPhase = '' - make install INSTALL_INC=$out/include PREFIX=$out - ln -s $out/bin/luajit* $out/bin/luajit - ''; - - meta = with stdenv.lib; { - description = "high-performance JIT compiler for Lua 5.1"; - homepage = http://luajit.org; - license = licenses.mit; - platforms = platforms.linux ++ platforms.darwin; - maintainers = [ maintainers.thoughtpolice ]; - }; - }; - luarocks = default_luarocks.override { lua = luajit; }; From 4a36a0c5047e64e7e5227e1b77cc87b177e47f75 Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Mon, 21 Mar 2016 12:51:20 +0300 Subject: [PATCH 06/12] torch: unhardcode references to luajit --- .../machine-learning/torch/default.nix | 4 ++-- .../machine-learning/torch/torch-distro.nix | 22 +++++++++---------- pkgs/top-level/all-packages.nix | 5 ++++- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/pkgs/applications/science/machine-learning/torch/default.nix b/pkgs/applications/science/machine-learning/torch/default.nix index 0444e664502..bdeeaad189a 100644 --- a/pkgs/applications/science/machine-learning/torch/default.nix +++ b/pkgs/applications/science/machine-learning/torch/default.nix @@ -1,4 +1,4 @@ -{ callPackage, fetchgit } : +{ callPackage, fetchgit, lua } : let src = fetchgit { url = "https://github.com/grwlf/torch-distro"; @@ -7,4 +7,4 @@ let }; in - callPackage (import ./torch-distro.nix) { inherit src; } + callPackage (import ./torch-distro.nix) { inherit lua src; } diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix index 1de2b51a19d..617ba53e516 100644 --- a/pkgs/applications/science/machine-learning/torch/torch-distro.nix +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -1,6 +1,6 @@ { luarocks, lib , stdenv, writeText , readline, makeWrapper, less, ncurses, cmake, openblas, coreutils, fetchgit, libuuid, czmq, openssl, - gnuplot, fetchurl, luajit, src + gnuplot, fetchurl, lua, src } : let @@ -21,7 +21,7 @@ let luapkgs = rec { luarocks = default_luarocks.override { - lua = luajit; + inherit lua; }; buildLuaRocks = { rockspec ? "", luadeps ? [] , buildInputs ? [] @@ -36,7 +36,7 @@ let runtimeDeps_ = runtimeDeps ++ (lib.concatMap (d : if d ? runtimeDeps then d.runtimeDeps else []) luadeps) ++ - [ luajit coreutils ]; + [ lua coreutils ]; mkcfg = '' export LUAROCKS_CONFIG=config.lua @@ -49,7 +49,7 @@ let variables = { LUA_BINDIR = "$out/bin"; LUA_INCDIR = "$out/include"; - LUA_LIBDIR = "$out/lib/lua/${luajit.luaversion}"; + LUA_LIBDIR = "$out/lib/lua/${lua.luaversion}"; }; EOF ''; @@ -63,7 +63,7 @@ let phases = [ "unpackPhase" "patchPhase" "buildPhase"]; - buildInputs = runtimeDeps ++ buildInputs ++ [ makeWrapper luajit ]; + buildInputs = runtimeDeps ++ buildInputs ++ [ makeWrapper lua ]; buildPhase = '' eval "$preBuild" @@ -76,9 +76,9 @@ let --set LD_LIBRARY_PATH "${lib.makeSearchPath "lib" runtimeDeps_}" \ --set PATH "${lib.makeSearchPath "bin" runtimeDeps_}" \ --suffix LUA_PATH ';' "\"$LUA_PATH\"" \ - --suffix LUA_PATH ';' "\"$out/share/lua/${luajit.luaversion}/?.lua;$out/share/lua/${luajit.luaversion}/?/init.lua\"" \ + --suffix LUA_PATH ';' "\"$out/share/lua/${lua.luaversion}/?.lua;$out/share/lua/${lua.luaversion}/?/init.lua\"" \ --suffix LUA_CPATH ';' "\"$LUA_CPATH\"" \ - --suffix LUA_CPATH ';' "\"$out/lib/lua/${luajit.luaversion}/?.so;$out/lib/lua/${luajit.luaversion}/?/init.so\"" + --suffix LUA_CPATH ';' "\"$out/lib/lua/${lua.luaversion}/?.so;$out/lib/lua/${lua.luaversion}/?/init.so\"" done eval "$postInstall" @@ -100,7 +100,7 @@ let makeFlags="PREFIX=$out LUA_LIBRARY=$out/lib/lua" ''; - buildInputs = [luajit]; + buildInputs = [lua]; installPhase = '' make install-extra $makeFlags @@ -260,7 +260,7 @@ let runtimeDeps = [ ncurses readline ]; src = "${distro_src}/exe/trepl"; meta = common_meta // { - description = "A pure Lua REPL for LuaJIT, with heavy support for Torch types."; + description = "A pure Lua REPL for Lua(JIT), with heavy support for Torch types."; }; }; @@ -281,10 +281,10 @@ let }; preConfigure = '' - cmakeFlags="-DLUA_LIBRARY=${luajit}/lib/lua/${luajit.luaversion} -DINSTALL_CMOD=$out/lib/lua/${luajit.luaversion} -DINSTALL_MOD=$out/lib/lua/${luajit.luaversion}" + cmakeFlags="-DLUA_LIBRARY=${lua}/lib/lua/${lua.luaversion} -DINSTALL_CMOD=$out/lib/lua/${lua.luaversion} -DINSTALL_MOD=$out/lib/lua/${lua.luaversion}" ''; - buildInputs = [cmake libuuid luajit]; + buildInputs = [cmake libuuid lua]; meta = { # FIXME: set the exact revision for src broken = true; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a1d5a683c3d..f540404b505 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5159,6 +5159,7 @@ let lua51Packages = recurseIntoAttrs (callPackage ./lua-packages.nix { lua = lua5_1; }); lua52Packages = recurseIntoAttrs (callPackage ./lua-packages.nix { lua = lua5_2; }); + luajitPackages = recurseIntoAttrs (callPackage ./lua-packages.nix { lua = luajit; }); luaPackages = lua52Packages; @@ -13427,7 +13428,9 @@ let quazip = qt5.quazip.override { qt = qt4; }; }; - torch-packages = recurseIntoAttrs ( callPackage ../applications/science/machine-learning/torch { } ); + torchPackages = recurseIntoAttrs ( callPackage ../applications/science/machine-learning/torch { + lua = luajit ; + } ); torchat = callPackage ../applications/networking/instant-messengers/torchat { wrapPython = pythonPackages.wrapPython; From 5211ddb92ea5b9bc326f4b0f9edb4813e03ee811 Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Mon, 21 Mar 2016 22:08:32 +0300 Subject: [PATCH 07/12] torch: add main application to the top-level --- pkgs/top-level/all-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f540404b505..3d7f6969929 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13432,6 +13432,8 @@ let lua = luajit ; } ); + torch-repl = lib.setName "torch-repl" torchPackages.trepl; + torchat = callPackage ../applications/networking/instant-messengers/torchat { wrapPython = pythonPackages.wrapPython; }; From c899444c69d88cba028382692f15bd7fbeb80e54 Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Tue, 22 Mar 2016 00:17:31 +0300 Subject: [PATCH 08/12] luajit: symlinked as 'lua' --- pkgs/development/interpreters/luajit/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix index 903af0bfd5f..8b5da052852 100644 --- a/pkgs/development/interpreters/luajit/default.nix +++ b/pkgs/development/interpreters/luajit/default.nix @@ -27,6 +27,7 @@ stdenv.mkDerivation rec { buildFlags = [ "amalg" ]; # Build highly optimized version installPhase = '' make install INSTALL_INC=$out/include PREFIX=$out + ln -s $out/bin/luajit* $out/bin/lua ln -s $out/bin/luajit* $out/bin/luajit ''; From 6bb8f451826f1bd7bbed69df785ff8e4a5f30fde Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Tue, 22 Mar 2016 00:37:56 +0300 Subject: [PATCH 09/12] torch: image, enable JPEG and PNG support --- .../science/machine-learning/torch/torch-distro.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix index 617ba53e516..88a3071d897 100644 --- a/pkgs/applications/science/machine-learning/torch/torch-distro.nix +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -1,6 +1,6 @@ { luarocks, lib , stdenv, writeText , readline, makeWrapper, less, ncurses, cmake, openblas, coreutils, fetchgit, libuuid, czmq, openssl, - gnuplot, fetchurl, lua, src + gnuplot, fetchurl, lua, src, libjpeg, libpng } : let @@ -227,7 +227,7 @@ let image = buildLuaRocks rec { name = "image"; luadeps = [ torch dok sys xlua ]; - buildInputs = [cmake]; + buildInputs = [cmake libjpeg libpng]; src = "${distro_src}/pkg/image"; rockspec = "image-1.1.alpha-0.rockspec"; preBuild = '' From 56b34be0016276b7bae8c7d4cfcafb90f813be9d Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Tue, 22 Mar 2016 00:47:23 +0300 Subject: [PATCH 10/12] torch: read user PATH and LD_LIBRARY_PATH --- .../science/machine-learning/torch/torch-distro.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix index 88a3071d897..c0c8c056ab5 100644 --- a/pkgs/applications/science/machine-learning/torch/torch-distro.nix +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -73,8 +73,8 @@ let for p in $out/bin/*; do wrapProgram $p \ - --set LD_LIBRARY_PATH "${lib.makeSearchPath "lib" runtimeDeps_}" \ - --set PATH "${lib.makeSearchPath "bin" runtimeDeps_}" \ + --suffix LD_LIBRARY_PATH ';' "${lib.makeSearchPath "lib" runtimeDeps_}" \ + --suffix PATH ';' "${lib.makeSearchPath "bin" runtimeDeps_}" \ --suffix LUA_PATH ';' "\"$LUA_PATH\"" \ --suffix LUA_PATH ';' "\"$out/share/lua/${lua.luaversion}/?.lua;$out/share/lua/${lua.luaversion}/?/init.lua\"" \ --suffix LUA_CPATH ';' "\"$LUA_CPATH\"" \ From ebd7598da486772c2634bd71735c6d7ddad2c600 Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Tue, 22 Mar 2016 18:03:33 +0300 Subject: [PATCH 11/12] torch: remove broken luajitPackages --- pkgs/top-level/all-packages.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3d7f6969929..710118172aa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5159,7 +5159,6 @@ let lua51Packages = recurseIntoAttrs (callPackage ./lua-packages.nix { lua = lua5_1; }); lua52Packages = recurseIntoAttrs (callPackage ./lua-packages.nix { lua = lua5_2; }); - luajitPackages = recurseIntoAttrs (callPackage ./lua-packages.nix { lua = luajit; }); luaPackages = lua52Packages; From de4f541b0e7b2c042dd4a2b1a1a0c0381c392699 Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Tue, 22 Mar 2016 19:42:32 +0300 Subject: [PATCH 12/12] torch: add unsup package --- .../machine-learning/torch/torch-distro.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix index c0c8c056ab5..067cb134114 100644 --- a/pkgs/applications/science/machine-learning/torch/torch-distro.nix +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -254,9 +254,24 @@ let rockspec = "rocks/gnuplot-scm-1.rockspec"; }; + unsup = buildLuaRocks rec { + name = "unsup"; + luadeps = [ torch xlua optim ]; + buildInputs = [ cmake ]; + src = fetchgit { + url = "https://github.com/koraykv/unsup"; + rev = "1d4632e716dc3c82feecc7dd4b22549df442859f"; + sha256 = "0npjq3y1cfmk026sdijcw3f766innrmb3qggnxsz62grczhfvgls"; + }; + rockspec = "unsup-0.1-0.rockspec"; + preBuild = '' + export Torch_DIR=${torch}/share/cmake/torch + ''; + }; + trepl = buildLuaRocks rec { name = "trepl"; - luadeps = [torch gnuplot paths penlight graph nn nngraph image gnuplot optim sys dok]; + luadeps = [torch gnuplot paths penlight graph nn nngraph image gnuplot optim sys dok unsup]; runtimeDeps = [ ncurses readline ]; src = "${distro_src}/exe/trepl"; meta = common_meta // {