about summary refs log tree commit diff
path: root/pkgs/top-level
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level')
-rw-r--r--pkgs/top-level/all-packages.nix30
-rw-r--r--pkgs/top-level/lua-packages.nix52
2 files changed, 75 insertions, 7 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a62db92f4905..c1a251b2a170 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3743,6 +3743,8 @@ let
   love_luajit = callPackage ../development/interpreters/love {lua=luajit;};
   love_0_9 = callPackage ../development/interpreters/love/0.9.nix { };
 
+  ### LUA MODULES
+
   lua4 = callPackage ../development/interpreters/lua-4 { };
   lua5_0 = callPackage ../development/interpreters/lua-5/5.0.3.nix { };
   lua5_1 = callPackage ../development/interpreters/lua-5/5.1.nix { };
@@ -3753,12 +3755,23 @@ let
   lua5 = lua5_2_compat;
   lua = lua5;
 
-  lua5_1_sockets = callPackage ../development/interpreters/lua-5/sockets.nix {
-    lua5 = lua5_1; # version 2.* only works with 5.1
-  };
+  lua51Packages = recurseIntoAttrs (import ./lua-packages.nix {
+    pkgs = pkgs // {
+      lua = lua5_1;
+    };
+  });
+
+  lua52Packages = recurseIntoAttrs (import ./lua-packages.nix {
+    pkgs = pkgs // {
+      lua = lua5_2;
+    };
+  });
+
+  luaPackages = lua52Packages;
+
+  lua5_1_sockets = lua51Packages.sockets;
+
   lua5_expat = callPackage ../development/interpreters/lua-5/expat.nix {};
-  lua5_filesystem = callPackage ../development/interpreters/lua-5/filesystem.nix {};
-  lua51_filesystem = lua5_filesystem.override { lua5=lua5_1; };
   lua51_zip = callPackage ../development/interpreters/lua-5/zip.nix { };
   lua5_sec = callPackage ../development/interpreters/lua-5/sec.nix { };
 
@@ -3768,6 +3781,8 @@ let
 
   luajit = callPackage ../development/interpreters/luajit {};
 
+  ### END OF LUA
+
   lush2 = callPackage ../development/interpreters/lush {};
 
   maude = callPackage ../development/interpreters/maude {
@@ -6898,7 +6913,6 @@ let
 
   planetary_annihilation = callPackage ../games/planetaryannihilation { };
 
-
   ### DEVELOPMENT / PYTHON MODULES
 
   # python function with default python interpreter
@@ -9686,7 +9700,9 @@ let
 
   mrxvt = callPackage ../applications/misc/mrxvt { };
 
-  mudlet = callPackage ../games/mudlet { };
+  mudlet = callPackage ../games/mudlet {
+    inherit (lua51Packages) fileSystem;
+  };
 
   multisync = callPackage ../applications/misc/multisync {
     inherit (gnome) ORBit2 libbonobo libgnomeui GConf;
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
new file mode 100644
index 000000000000..c900044f407a
--- /dev/null
+++ b/pkgs/top-level/lua-packages.nix
@@ -0,0 +1,52 @@
+/* This file defines the composition for Lua packages.  It has
+   been factored out of all-packages.nix because there are many of
+   them.  Also, because most Nix expressions for Lua packages are
+   trivial, most are actually defined here.  I.e. there's no function
+   for each package in a separate file: the call to the function would
+   be almost as must code as the function itself. */
+
+{pkgs}:
+
+let self = _self; _self = with self; {
+
+  inherit (pkgs) fetchurl stdenv lua;
+
+  inherit (stdenv.lib) maintainers;
+
+  #define build lua package function
+  buildLuaPackage = import ../development/lua-modules/generic lua;
+
+  fileSystem = buildLuaPackage {
+    name = "filesystem-1.6.2";
+    src = fetchurl {
+      url = "https://github.com/keplerproject/luafilesystem/archive/v1_6_2.tar.gz";
+      sha256 = "1n8qdwa20ypbrny99vhkmx8q04zd2jjycdb5196xdhgvqzk10abz";
+    };  
+    meta = {
+      homepage = "https://github.com/keplerproject/luafilesystem";
+      hydraPlatforms = stdenv.lib.platforms.linux;
+      maintainers = with maintainers; [ flosse ];
+    };
+  };
+
+  sockets = buildLuaPackage rec {
+    name = "sockets-${version}";
+    version = "2.0.2";
+    src = fetchurl {
+        url = "http://files.luaforge.net/releases/luasocket/luasocket/luasocket-${version}/luasocket-${version}.tar.gz";
+        sha256 = "19ichkbc4rxv00ggz8gyf29jibvc2wq9pqjik0ll326rrxswgnag";
+    };
+    disabled = lua.luaversion != "5.1";
+    patchPhase = ''
+        sed -e "s,^INSTALL_TOP_SHARE.*,INSTALL_TOP_SHARE=$out/share/lua/${lua.luaversion}," \
+            -e "s,^INSTALL_TOP_LIB.*,INSTALL_TOP_LIB=$out/lib/lua/${lua.luaversion}," \
+            -i config
+    '';
+    meta = {
+      homepage = "http://w3.impa.br/~diego/software/luasocket/";
+      hydraPlatforms = stdenv.lib.platforms.linux;
+      maintainers = with maintainers; [ mornfall ];
+    };
+  };
+
+}; in self