From 23211617237d206f0efc677e625f3d03614550b5 Mon Sep 17 00:00:00 2001
From: Fabio Mascarenhas <mascarenhas@lambda-2.local>
Date: Sat, 20 Mar 2010 15:34:47 -0300
Subject: files for Lua for Windows support

---
 lfw/7z.dll                                         | Bin 0 -> 858624 bytes
 lfw/7z.exe                                         | Bin 0 -> 161792 bytes
 lfw/lua/luarocks/config.lua                        |  16 ++
 lfw/luarocks-admin.bat                             |   4 +
 lfw/luarocks-admin.lua                             |  16 ++
 lfw/luarocks.bat                                   |   4 +
 lfw/luarocks.lua                                   |  20 ++
 lfw/luarocks_config.lua                            |  10 +
 lfw/rocks/index.html                               |  87 +++++++
 .../luafilesystem/1.5.0-1/doc/us/examples.html     | 103 ++++++++
 lfw/rocks/luafilesystem/1.5.0-1/doc/us/index.html  | 192 +++++++++++++++
 .../luafilesystem/1.5.0-1/doc/us/license.html      | 122 ++++++++++
 .../luafilesystem/1.5.0-1/doc/us/luafilesystem.png | Bin 0 -> 8535 bytes
 lfw/rocks/luafilesystem/1.5.0-1/doc/us/manual.html | 271 +++++++++++++++++++++
 .../1.5.0-1/luafilesystem-1.5.0-1.rockspec         |  27 ++
 lfw/rocks/luafilesystem/1.5.0-1/rock_manifest      |  18 ++
 lfw/rocks/luafilesystem/1.5.0-1/tests/test.lua     | 130 ++++++++++
 .../luasocket/2.0.2-3/luasocket-2.0.2-3.rockspec   |  34 +++
 lfw/rocks/luasocket/2.0.2-3/rock_manifest          |  23 ++
 lfw/rocks/luazip/1.2.3-2/luazip-1.2.3-2.rockspec   |  37 +++
 lfw/rocks/luazip/1.2.3-2/rock_manifest             |   6 +
 lfw/rocks/manifest                                 | 159 ++++++++++++
 lfw/rocks/md5/1.1.2-1/md5-1.1.2-1.rockspec         |  39 +++
 lfw/rocks/md5/1.1.2-1/rock_manifest                |  12 +
 24 files changed, 1330 insertions(+)
 create mode 100644 lfw/7z.dll
 create mode 100644 lfw/7z.exe
 create mode 100644 lfw/lua/luarocks/config.lua
 create mode 100644 lfw/luarocks-admin.bat
 create mode 100644 lfw/luarocks-admin.lua
 create mode 100644 lfw/luarocks.bat
 create mode 100644 lfw/luarocks.lua
 create mode 100644 lfw/luarocks_config.lua
 create mode 100644 lfw/rocks/index.html
 create mode 100644 lfw/rocks/luafilesystem/1.5.0-1/doc/us/examples.html
 create mode 100644 lfw/rocks/luafilesystem/1.5.0-1/doc/us/index.html
 create mode 100644 lfw/rocks/luafilesystem/1.5.0-1/doc/us/license.html
 create mode 100644 lfw/rocks/luafilesystem/1.5.0-1/doc/us/luafilesystem.png
 create mode 100644 lfw/rocks/luafilesystem/1.5.0-1/doc/us/manual.html
 create mode 100644 lfw/rocks/luafilesystem/1.5.0-1/luafilesystem-1.5.0-1.rockspec
 create mode 100644 lfw/rocks/luafilesystem/1.5.0-1/rock_manifest
 create mode 100644 lfw/rocks/luafilesystem/1.5.0-1/tests/test.lua
 create mode 100644 lfw/rocks/luasocket/2.0.2-3/luasocket-2.0.2-3.rockspec
 create mode 100644 lfw/rocks/luasocket/2.0.2-3/rock_manifest
 create mode 100644 lfw/rocks/luazip/1.2.3-2/luazip-1.2.3-2.rockspec
 create mode 100644 lfw/rocks/luazip/1.2.3-2/rock_manifest
 create mode 100644 lfw/rocks/manifest
 create mode 100644 lfw/rocks/md5/1.1.2-1/md5-1.1.2-1.rockspec
 create mode 100644 lfw/rocks/md5/1.1.2-1/rock_manifest

diff --git a/lfw/7z.dll b/lfw/7z.dll
new file mode 100644
index 00000000..c0ff7fbe
Binary files /dev/null and b/lfw/7z.dll differ
diff --git a/lfw/7z.exe b/lfw/7z.exe
new file mode 100644
index 00000000..5e3d6f9c
Binary files /dev/null and b/lfw/7z.exe differ
diff --git a/lfw/lua/luarocks/config.lua b/lfw/lua/luarocks/config.lua
new file mode 100644
index 00000000..fd0e2fb9
--- /dev/null
+++ b/lfw/lua/luarocks/config.lua
@@ -0,0 +1,16 @@
+local os = os
+
+module("luarocks.config")
+LFW_ROOT = os.getenv("LUA_DEV")
+LUA_INCDIR=LFW_ROOT..[[\include]]
+LUA_LIBDIR=LFW_ROOT..[[\lib]]
+LUA_BINDIR=LFW_ROOT
+LUA_INTERPRETER=[[lua]]
+LUAROCKS_UNAME_S=[[WindowsNT]]
+LUAROCKS_UNAME_M=[[x86]]
+LUAROCKS_SYSCONFIG=LFW_ROOT..[[\luarocks_config.lua]]
+LUAROCKS_ROCKS_TREE=LFW_ROOT
+LUAROCKS_PREFIX=LFW_ROOT
+LUAROCKS_DOWNLOADER=[[wget]]
+LUAROCKS_MD5CHECKER=[[md5sum]]
+
diff --git a/lfw/luarocks-admin.bat b/lfw/luarocks-admin.bat
new file mode 100644
index 00000000..fb95d0fa
--- /dev/null
+++ b/lfw/luarocks-admin.bat
@@ -0,0 +1,4 @@
+@ECHO OFF
+SETLOCAL
+"%LUA_DEV%\lua" "%LUA_DEV%\luarocks-admin.lua" %*
+ENDLOCAL
diff --git a/lfw/luarocks-admin.lua b/lfw/luarocks-admin.lua
new file mode 100644
index 00000000..4f7a9a2f
--- /dev/null
+++ b/lfw/luarocks-admin.lua
@@ -0,0 +1,16 @@
+#!/usr/local/bin/lua
+
+local command_line = require("luarocks.command_line")
+
+program_name = "luarocks-admin"
+program_description = "LuaRocks repository administration interface"
+
+commands = {
+}
+
+commands.help = require("luarocks.help")
+commands.make_manifest = require("luarocks.make_manifest")
+commands.add = require("luarocks.add")
+commands.refresh_cache = require("luarocks.refresh_cache")
+
+command_line.run_command(...)
diff --git a/lfw/luarocks.bat b/lfw/luarocks.bat
new file mode 100644
index 00000000..44360aa5
--- /dev/null
+++ b/lfw/luarocks.bat
@@ -0,0 +1,4 @@
+@ECHO OFF
+SETLOCAL
+"%LUA_DEV%\lua" "%LUA_DEV%\luarocks.lua" %*
+ENDLOCAL
diff --git a/lfw/luarocks.lua b/lfw/luarocks.lua
new file mode 100644
index 00000000..1c781254
--- /dev/null
+++ b/lfw/luarocks.lua
@@ -0,0 +1,20 @@
+#!/usr/local/bin/lua
+
+local command_line = require("luarocks.command_line")
+
+program_name = "luarocks"
+program_description = "LuaRocks main command-line interface"
+
+commands = {}
+commands.help = require("luarocks.help")
+commands.pack = require("luarocks.pack")
+commands.unpack = require("luarocks.unpack")
+commands.build = require("luarocks.build")
+commands.install = require("luarocks.install")
+commands.search = require("luarocks.search")
+commands.list = require("luarocks.list")
+commands.remove = require("luarocks.remove")
+commands.make = require("luarocks.make")
+commands.download = require("luarocks.download")
+
+command_line.run_command(...)
diff --git a/lfw/luarocks_config.lua b/lfw/luarocks_config.lua
new file mode 100644
index 00000000..86de0253
--- /dev/null
+++ b/lfw/luarocks_config.lua
@@ -0,0 +1,10 @@
+local LFW_ROOT = config.LFW_ROOT
+rocks_servers = {
+   [[http://luarocks.org/repositories/rocks]]
+}
+rocks_trees = {
+   { root = LFW_ROOT, rocks_dir = LFW_ROOT..[[\rocks]],
+     bin_dir = LFW_ROOT..[[\utils]], lua_dir = LFW_ROOT..[[\lua]],
+     lib_dir = LFW_ROOT..[[\clibs]] }
+}
+variables.WRAPPER = LFW_ROOT..[[rclauncher.obj]]
diff --git a/lfw/rocks/index.html b/lfw/rocks/index.html
new file mode 100644
index 00000000..d6baff47
--- /dev/null
+++ b/lfw/rocks/index.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>Available rocks</title>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+<style>
+body {
+   background-color: white;
+   font-family: "bitstream vera sans", "verdana", "sans";
+   font-size: 14px;
+}
+a {
+   color: #0000c0;
+   text-decoration: none;
+}
+a:hover {
+   text-decoration: underline;
+}
+td.main {
+   border-style: none;
+}
+blockquote {
+   font-size: 12px;
+}
+td.package {
+   background-color: #f0f0f0;
+   vertical-align: top;
+}
+td.spacer {
+   height: 5px;
+}
+td.version {
+   background-color: #d0d0d0;
+   vertical-align: top;
+   text-align: left;
+   padding: 5px;
+   width: 100px;
+}
+p.manifest {
+   font-size: 8px;
+}
+</style>
+</head>
+<body>
+<h1>Available rocks</h1>
+<p>
+Lua modules available from this location for use with <a href="http://www.luarocks.org">LuaRocks</a>:
+</p>
+<table class="main">
+<td class="package">
+<p><a name="luafilesystem"></a><b>luafilesystem</b> - <br/>
+</p><blockquote><p><br/>
+<font size="-1"><a href="">latest sources</a>  | License: </font></p>
+</blockquote></a></td>
+<td class="version">
+1.5.0-1:&nbsp;<a href="luafilesystem-1.5.0-1.installed.rock">installed</a><br/></td></tr>
+<tr><td colspan="2" class="spacer"></td></tr>
+<td class="package">
+<p><a name="luasocket"></a><b>luasocket</b> - <br/>
+</p><blockquote><p><br/>
+<font size="-1"><a href="">latest sources</a>  | License: </font></p>
+</blockquote></a></td>
+<td class="version">
+2.0.2-3:&nbsp;<a href="luasocket-2.0.2-3.installed.rock">installed</a><br/></td></tr>
+<tr><td colspan="2" class="spacer"></td></tr>
+<td class="package">
+<p><a name="luazip"></a><b>luazip</b> - <br/>
+</p><blockquote><p><br/>
+<font size="-1"><a href="">latest sources</a>  | License: </font></p>
+</blockquote></a></td>
+<td class="version">
+1.2.3-2:&nbsp;<a href="luazip-1.2.3-2.installed.rock">installed</a><br/></td></tr>
+<tr><td colspan="2" class="spacer"></td></tr>
+<td class="package">
+<p><a name="md5"></a><b>md5</b> - <br/>
+</p><blockquote><p><br/>
+<font size="-1"><a href="">latest sources</a>  | License: </font></p>
+</blockquote></a></td>
+<td class="version">
+1.1.2-1:&nbsp;<a href="md5-1.1.2-1.installed.rock">installed</a><br/></td></tr>
+<tr><td colspan="2" class="spacer"></td></tr>
+</table>
+<p class="manifest">
+<a href="manifest">manifest file</a>
+</p>
+</body>
+</html>
diff --git a/lfw/rocks/luafilesystem/1.5.0-1/doc/us/examples.html b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/examples.html
new file mode 100644
index 00000000..746df62b
--- /dev/null
+++ b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/examples.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<title>LuaFileSystem</title>
+    <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo">
+        <a href="http://www.keplerproject.org">
+		<img alt="LuaFileSystem" src="luafilesystem.png"/>
+	    </a>
+    </div>
+	<div id="product_name"><big><strong>LuaFileSystem</strong></big></div>
+	<div id="product_description">File System Library for the Lua Programming Language</div>
+</div> <!-- id="product" -->
+
+<div id="main">
+	
+<div id="navigation">
+<h1>LuaFileSystem</h1>
+	<ul>
+		<li><a href="index.html">Home</a>
+			<ul>
+				<li><a href="index.html#overview">Overview</a></li>
+				<li><a href="index.html#status">Status</a></li>
+				<li><a href="index.html#download">Download</a></li>
+				<li><a href="index.html#history">History</a></li>
+				<li><a href="index.html#credits">Credits</a></li>
+				<li><a href="index.html#contact">Contact us</a></li>
+			</ul>
+		</li>
+		<li><a href="manual.html">Manual</a>
+			<ul>
+				<li><a href="manual.html#introduction">Introduction</a></li>
+				<li><a href="manual.html#building">Building</a></li>
+				<li><a href="manual.html#installation">Installation</a></li>
+				<li><a href="manual.html#reference">Reference</a></li>
+			</ul>
+		</li>
+		<li><strong>Examples</strong></li>
+        <li><a href="http://luaforge.net/projects/luafilesystem/">Project</a>
+            <ul>
+                <li><a href="http://luaforge.net/tracker/?group_id=66">Bug Tracker</a></li>
+                <li><a href="http://luaforge.net/scm/?group_id=66">CVS</a></li>
+            </ul>
+        </li>
+		<li><a href="license.html">License</a></li>
+	</ul>
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+<h2><a name="example"></a>Examples</h2>
+
+<h3>Directory iterator</h3>
+
+<p>The following example iterates over a directory and recursively lists the
+attributes for each file inside it.</p>
+
+<pre class="example">
+require"lfs"
+
+function attrdir (path)
+    for file in lfs.dir(path) do
+        if file ~= "." and file ~= ".." then
+            local f = path..'/'..file
+            print ("\t "..f)
+            local attr = lfs.attributes (f)
+            assert (type(attr) == "table")
+            if attr.mode == "directory" then
+                attrdir (f)
+            else
+                for name, value in pairs(attr) do
+                    print (name, value)
+                end
+            end
+        end
+    end
+end
+
+attrdir (".")
+</pre>
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+	<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
+	<p><small>$Id: examples.html,v 1.8 2007/12/14 15:28:04 carregal Exp $</small></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+
+</body>
+</html>
diff --git a/lfw/rocks/luafilesystem/1.5.0-1/doc/us/index.html b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/index.html
new file mode 100644
index 00000000..43edefc5
--- /dev/null
+++ b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/index.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<title>LuaFileSystem</title>
+    <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo">
+        <a href="http://www.keplerproject.org">
+		<img alt="LuaFileSystem" src="luafilesystem.png"/>
+	    </a>
+    </div>
+	<div id="product_name"><big><strong>LuaFileSystem</strong></big></div>
+	<div id="product_description">File System Library for the Lua Programming Language</div>
+</div> <!-- id="product" -->
+
+<div id="main">
+	
+<div id="navigation">
+<h1>LuaFileSystem</h1>
+	<ul>
+		<li><strong>Home</strong>
+			<ul> 
+				<li><a href="index.html#overview">Overview</a></li>
+				<li><a href="index.html#status">Status</a></li>
+				<li><a href="index.html#download">Download</a></li>
+				<li><a href="index.html#history">History</a></li>
+				<li><a href="index.html#credits">Credits</a></li>
+				<li><a href="index.html#contact">Contact us</a></li>
+			</ul>
+		</li>
+		<li><a href="manual.html">Manual</a>
+			<ul>
+				<li><a href="manual.html#introduction">Introduction</a></li>
+				<li><a href="manual.html#building">Building</a></li>
+				<li><a href="manual.html#installation">Installation</a></li>
+				<li><a href="manual.html#reference">Reference</a></li>
+			</ul>
+		</li>
+		<li><a href="examples.html">Examples</a></li>
+        <li><a href="http://luaforge.net/projects/luafilesystem/">Project</a>
+            <ul>
+                <li><a href="http://luaforge.net/tracker/?group_id=66">Bug Tracker</a></li>
+                <li><a href="http://luaforge.net/scm/?group_id=66">CVS</a></li>
+            </ul>
+        </li>
+		<li><a href="license.html">License</a></li>
+	</ul>
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+<h2><a name="overview"></a>Overview</h2>
+
+<p>LuaFileSystem is a <a href="http://www.lua.org">Lua</a> library
+developed to complement the set of functions related to file
+systems offered by the standard Lua distribution.</p>
+
+<p>LuaFileSystem offers a portable way to access
+the underlying directory structure and file attributes.</p>
+
+<p>LuaFileSystem is free software and uses the same
+<a href="license.html">license</a> as Lua 5.1.</p>
+
+<h2><a name="status"></a>Status</h2>
+
+<p>Current version is 1.5.0. It was developed for Lua 5.1.</p>
+
+<h2><a name="download"></a>Download</h2>
+
+<p>LuaFileSystem source can be downloaded from its
+<a href="http://github.com/keplerproject/luafilesystem">Github</a>
+page.</p>
+
+<h2><a name="history"></a>History</h2>
+
+<dl class="history">
+	<dt><strong>Version 1.5.0</strong> [20/Oct/2009]</dt>
+	<li>Added explicit next and close methods to second return value of lfs.dir 
+(the directory object), for explicit iteration or explicit closing.</li>
+	<li>Added directory locking via lfs.lock_dir function (see the <a href="manual.html">manual</a>).</li>
+	<dt><strong>Version 1.4.2</strong> [03/Feb/2009]</dt>
+	<dd>
+		<ul>
+			<li>fixed bug [<a href="http://luaforge.net/tracker/?func=detail&amp;group_id=66&amp;aid=13198&amp;atid=356">#13198</a>]
+				lfs.attributes(filename, 'size') overflow on files > 2 Gb again  (bug report and patch by KUBO Takehiro).</li>
+			<li>fixed bug [<a href="http://luaforge.net/tracker/?group_id=66&amp;atid=356&amp;func=detail&amp;aid=39794">#39794</a>]
+				Compile error on Solaris 10 (bug report and patch by Aaron B).</li>
+			<li>fixed compilation problems with Borland C.</li>
+		</ul>
+	</dd>
+	
+    <dt><strong>Version 1.4.1</strong> [07/May/2008]</dt>
+	<dd>
+	<ul>
+	<li>documentation review</li>
+	<li>fixed Windows compilation issues</li>
+	<li>fixed bug in the Windows tests (patch by Shmuel Zeigerman)</li>
+	<li>fixed bug [<a href="http://luaforge.net/tracker/?func=detail&amp;group_id=66&amp;aid=2185&amp;atid=356">#2185</a>]
+		<code>lfs.attributes(filename, 'size')</code> overflow on files > 2 Gb
+	</li>
+	</ul>
+	</dd>
+	
+    <dt><strong>Version 1.4.0</strong> [13/Feb/2008]</dt>
+    <dd>
+    <ul>
+	<li>added function
+	<a href="manual.html#setmode"><code>lfs.setmode</code></a>
+        (works only in Windows systems).</li>
+	<li><a href="manual.html#attributes"><code>lfs.attributes</code></a>
+	raises an error if attribute does not exist</li>
+    </ul>
+    </dd>
+    
+    <dt><strong><a href="http://www.keplerproject.org/luafilesystem/1.3/">Version 1.3.0</a></strong> [26/Oct/2007]</dt>
+    <dd>
+    <ul>
+        <li>added function
+        <a href="manual.html#symlinkattributes"><code>lfs.symlinkattributes</code></a>
+        (works only in non Windows systems).</li>
+    </ul>
+    </dd>
+
+    <dt><strong><a href="http://www.keplerproject.org/luafilesystem/1.2/">Version 1.2.1</a></strong> [08/May/2007]</dt>
+    <dd>
+    <ul>
+        <li>compatible only with Lua 5.1 (Lua 5.0 support was dropped)</li>
+    </ul>
+    </dd>
+
+    <dt><strong><a href="http://www.keplerproject.org/luafilesystem/1.2/">Version 1.2</a></strong> [15/Mar/2006]</dt>
+    <dd>
+    <ul>
+        <li>added optional argument to
+        <a href="manual.html#attributes"><code>lfs.attributes</code></a></li>
+        <li>added function
+        <a href="manual.html#rmdir"><code>lfs.rmdir</code></a></li>
+        <li>bug correction on <a href="manual.html#dir"><code>lfs.dir</code></a></li>
+    </ul>
+    </dd>
+
+    <dt><strong><a href="http://www.keplerproject.org/luafilesystem/1.1/">Version 1.1</a></strong> [30/May/2005]</dt>
+    <dd>
+    <ul>
+        <li>added function <a href="manual.html#touch"><code>lfs.touch</code></a>.</li>
+    </ul>
+    </dd>
+
+    <dt><strong><a href="http://www.keplerproject.org/luafilesystem/1.0/">Version 1.0</a></strong> [21/Jan/2005]</dt>
+    <dd />
+
+    <dt><strong>Version 1.0 Beta</strong> [10/Nov/2004]</dt>
+    <dd />
+</dl>
+
+<h2><a name="credits"></a>Credits</h2>
+
+<p>LuaFileSystem was designed by Roberto Ierusalimschy,
+Andr&eacute; Carregal and Tom&aacute;s Guisasola as part of the
+<a href="http://www.keplerproject.org">Kepler Project</a>,
+which holds its copyright. LuaFileSystem is currently maintained by F&aacute;bio Mascarenhas.</p>
+
+<h2><a name="contact"></a>Contact us</h2>
+
+<p>For more information please
+<a href="mailto:info-NO-SPAM-THANKS@keplerproject.org">contact us</a>.
+Comments are welcome!</p>
+
+<p>You can also reach other Kepler developers and users on the Kepler Project
+<a href="http://luaforge.net/mail/?group_id=104">mailing list</a>.</p>
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+	<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
+	<p><small>$Id: index.html,v 1.44 2009/02/04 21:21:33 carregal Exp $</small></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+
+</body>
+</html>
diff --git a/lfw/rocks/luafilesystem/1.5.0-1/doc/us/license.html b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/license.html
new file mode 100644
index 00000000..4ecad4bd
--- /dev/null
+++ b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/license.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<title>LuaFileSystem</title>
+    <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo">
+        <a href="http://www.keplerproject.org">
+		<img alt="LuaFileSystem" src="luafilesystem.png"/>
+	    </a>
+    </div>
+	<div id="product_name"><big><strong>LuaFileSystem</strong></big></div>
+	<div id="product_description">File System Library for the Lua Programming Language</div>
+</div> <!-- id="product" -->
+
+<div id="main">
+	
+<div id="navigation">
+<h1>LuaFileSystem</h1>
+	<ul>
+		<li><a href="index.html">Home</a>
+			<ul>
+				<li><a href="index.html#overview">Overview</a></li>
+				<li><a href="index.html#status">Status</a></li>
+				<li><a href="index.html#download">Download</a></li>
+				<li><a href="index.html#history">History</a></li>
+				<li><a href="index.html#credits">Credits</a></li>
+				<li><a href="index.html#contact">Contact us</a></li>
+			</ul>
+		</li>
+		<li><a href="manual.html">Manual</a>
+			<ul>
+				<li><a href="manual.html#introduction">Introduction</a></li>
+				<li><a href="manual.html#building">Building</a></li>
+				<li><a href="manual.html#installation">Installation</a></li>
+				<li><a href="manual.html#reference">Reference</a></li>
+			</ul>
+		</li>
+		<li><a href="examples.html">Examples</a></li>
+        <li><a href="http://luaforge.net/projects/luafilesystem/">Project</a>
+            <ul>
+                <li><a href="http://luaforge.net/tracker/?group_id=66">Bug Tracker</a></li>
+                <li><a href="http://luaforge.net/scm/?group_id=66">CVS</a></li>
+            </ul>
+        </li>
+		<li><strong>License</strong></li>
+	</ul>
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+<h1>License</h1>
+
+<p>
+LuaFileSystem is free software: it can be used for both academic
+and commercial purposes at absolutely no cost. There are no
+royalties or GNU-like "copyleft" restrictions. LuaFileSystem
+qualifies as
+<a href="http://www.opensource.org/docs/definition.html">Open Source</a>
+software.
+Its licenses are compatible with
+<a href="http://www.gnu.org/licenses/gpl.html">GPL</a>.
+LuaFileSystem is not in the public domain and the
+<a href="http://www.keplerproject.org">Kepler Project</a>
+keep its copyright.
+The legal details are below. 
+</p>
+
+<p>The spirit of the license is that you are free to use
+LuaFileSystem for any purpose at no cost without having to ask us.
+The only requirement is that if you do use LuaFileSystem, then you
+should give us credit by including the appropriate copyright notice
+somewhere in your product or its documentation.</p>
+
+<p>The LuaFileSystem library is designed and implemented by Roberto
+Ierusalimschy, Andr&eacute; Carregal and Tom&aacute;s Guisasola.
+The implementation is not derived from licensed software.</p>
+
+<hr/>
+<p>Copyright &copy; 2003 Kepler Project.</p>
+
+<p>Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:</p>
+
+<p>The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.</p>
+
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.</p>
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+	<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
+	<p><small>$Id: license.html,v 1.13 2008/02/11 22:42:21 carregal Exp $</small></p>
+</div><!-- id="about" -->
+
+</div><!-- id="container" -->
+
+</body>
+</html>
diff --git a/lfw/rocks/luafilesystem/1.5.0-1/doc/us/luafilesystem.png b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/luafilesystem.png
new file mode 100644
index 00000000..e1dd8c65
Binary files /dev/null and b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/luafilesystem.png differ
diff --git a/lfw/rocks/luafilesystem/1.5.0-1/doc/us/manual.html b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/manual.html
new file mode 100644
index 00000000..1409c404
--- /dev/null
+++ b/lfw/rocks/luafilesystem/1.5.0-1/doc/us/manual.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<title>LuaFileSystem</title>
+    <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo">
+        <a href="http://www.keplerproject.org"><img alt="LuaFileSystem" src="luafilesystem.png"/></a>
+    </div>
+	<div id="product_name"><big><strong>LuaFileSystem</strong></big></div>
+	<div id="product_description">File System Library for the Lua Programming Language</div>
+</div> <!-- id="product" -->
+
+<div id="main">
+	
+<div id="navigation">
+<h1>LuaFileSystem</h1>
+	<ul>
+		<li><a href="index.html">Home</a>
+			<ul>
+				<li><a href="index.html#overview">Overview</a></li>
+				<li><a href="index.html#status">Status</a></li>
+				<li><a href="index.html#download">Download</a></li>
+				<li><a href="index.html#history">History</a></li>
+				<li><a href="index.html#credits">Credits</a></li>
+				<li><a href="index.html#contact">Contact us</a></li>
+			</ul>
+		</li>
+		<li><strong>Manual</strong>
+			<ul>
+				<li><a href="manual.html#introduction">Introduction</a></li>
+				<li><a href="manual.html#building">Building</a></li>
+				<li><a href="manual.html#installation">Installation</a></li>
+				<li><a href="manual.html#reference">Reference</a></li>
+			</ul>
+		</li>
+		<li><a href="examples.html">Examples</a></li>
+        <li><a href="http://luaforge.net/projects/luafilesystem/">Project</a>
+            <ul>
+                <li><a href="http://luaforge.net/tracker/?group_id=66">Bug Tracker</a></li>
+                <li><a href="http://luaforge.net/scm/?group_id=66">CVS</a></li>
+            </ul>
+        </li>
+		<li><a href="license.html">License</a></li>
+	</ul>
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+<h2><a name="introduction"></a>Introduction</h2>
+
+<p>LuaFileSystem is a <a href="http://www.lua.org">Lua</a> library
+developed to complement the set of functions related to file
+systems offered by the standard Lua distribution.</p>
+
+<p>LuaFileSystem offers a portable way to access
+the underlying directory structure and file attributes.</p>
+
+<h2><a name="building"></a>Building</h2>
+
+<p>
+LuaFileSystem should be built with Lua 5.1 so the language library
+and header files for the target version must be installed properly.
+</p>
+
+<p>
+LuaFileSystem offers a Makefile and a separate configuration file,
+<code>config</code>,
+which should be edited to suit your installation before running
+<code>make</code>.
+The file has some definitions like paths to the external libraries,
+compiler options and the like.
+</p>
+
+<p>On Windows, the C runtime used to compile LuaFileSystem must be the same
+runtime that Lua uses, or some LuaFileSystem functions will not work.</p>
+
+<h2><a name="installation"></a>Installation</h2>
+
+<p>The easiest way to install LuaFileSystem is to use LuaRocks:</p>
+
+<pre class="example">
+luarocks install luafilesystem
+</pre>
+
+<p>If you prefer to install LuaFileSystem manually, the compiled binary should be copied to a directory in your
+<a href="http://www.lua.org/manual/5.1/manual.html#pdf-package.cpath">C path</a>.</p>
+
+<h2><a name="reference"></a>Reference</h2>
+
+<p>
+LuaFileSystem offers the following functions:
+</p>
+
+<dl class="reference">
+    <dt><a name="attributes"></a><strong><code>lfs.attributes (filepath [, aname])</code></strong></dt>
+    <dd>Returns a table with the file attributes corresponding to
+    <code>filepath</code> (or <code>nil</code> followed by an error message
+    in case of error).
+    If the second optional argument is given, then only the value of the
+    named attribute is returned (this use is equivalent to
+    <code>lfs.attributes(filepath).aname</code>, but the table is not created
+    and only one attribute is retrieved from the O.S.).
+    The attributes are described as follows;
+    attribute <code>mode</code> is a string, all the others are numbers,
+    and the time related attributes use the same time reference of
+    <a href="http://www.lua.org/manual/5.1/manual.html#pdf-os.time"><code>os.time</code></a>: 
+        <dl>
+        <dt><strong><code>dev</code></strong></dt>
+        <dd>on Unix systems, this represents the device that the inode resides on. On Windows systems,
+        represents the drive number of the disk containing the file</dd>
+        
+        <dt><strong><code>ino</code></strong></dt>
+        <dd>on Unix systems, this represents the inode number. On Windows systems this has no meaning</dd>
+        
+        <dt><strong><code>mode</code></strong></dt>
+        <dd>string representing the associated protection mode (the values could be
+        <code>file</code>, <code>directory</code>, <code>link</code>, <code>socket</code>,
+        <code>named pipe</code>, <code>char device</code>, <code>block device</code> or
+        <code>other</code>)</dd>
+        
+        <dt><strong><code>nlink</code></strong></dt>
+		<dd>number of hard links to the file</dd>
+
+        <dt><strong><code>uid</code></strong></dt>
+		<dd>user-id of owner (Unix only, always 0 on Windows)</dd>
+
+        <dt><strong><code>gid</code></strong></dt>
+		<dd>group-id of owner (Unix only, always 0 on Windows)</dd>
+
+        <dt><strong><code>rdev</code></strong></dt>
+		<dd>on Unix systems, represents the device type, for special file inodes.
+        On Windows systems represents the same as <code>dev</code></dd>
+
+        <dt><strong><code>access</code></strong></dt>
+		<dd>time of last access</dd>
+
+        <dt><strong><code>modification</code></strong></dt>
+		<dd>time of last data modification</dd>
+
+        <dt><strong><code>change</code></strong></dt>
+		<dd>time of last file status change</dd>
+
+        <dt><strong><code>size</code></strong></dt>
+		<dd>file size, in bytes</dd>
+
+        <dt><strong><code>blocks</code></strong></dt>
+		<dd>block allocated for file; (Unix only)</dd>
+        
+        <dt><strong><code>blksize</code></strong></dt>
+		<dd>optimal file system I/O blocksize; (Unix only)</dd>
+	    </dl>
+    This function uses <code>stat</code> internally thus if the given
+    <code>filepath</code> is a symbolic link, it is followed (if it points to
+    another link the chain is followed recursively) and the information
+    is about the file it refers to.
+    To obtain information about the link itself, see function
+    <a href="#symlinkattributes">lfs.symlinkattributes</a>.
+	</dd>
+
+    <dt><a name="chdir"></a><strong><code>lfs.chdir (path)</code></strong></dt>
+    <dd>Changes the current working directory to the given
+    <code>path</code>.<br />
+    Returns <code>true</code> in case of success or <code>nil</code> plus an
+    error string.</dd>
+
+    <dt><a name="chdir"></a><strong><code>lfs.lock_dir(path, [seconds_stale])</code></strong></dt>
+    <dd>Creates a lockfile (called lockfile.lfs) in <code>path</code> if it does not
+  exist and returns the lock. If the lock already exists checks it
+  it's stale, using the second parameter (default for the second
+  parameter is <code>INT_MAX</code>, which in practice means the lock will never
+  be stale. To free the the lock call <code>lock:free()</code>. <br/>
+   In case of any errors it returns nil and the error message. In
+  particular, if the lock exists and is not stale it returns the
+  "File exists" message.</dd>
+        
+    <dt><a name="getcwd"></a><strong><code>lfs.currentdir ()</code></strong></dt>
+    <dd>Returns a string with the current working directory or <code>nil</code>
+    plus an error string.</dd>
+    
+    <dt><a name="dir"></a><strong><code>iter, dir_obj = lfs.dir (path)</code></strong></dt>
+    <dd>
+    Lua iterator over the entries of a given directory.
+    Each time the iterator is called with <code>dir_obj</code> it returns a directory entry's name as a string, or
+    <code>nil</code> if there are no more entries. You can also iterate by calling <code>dir_obj:next()</code>, and
+    explicitly close the directory before the iteration finished with <code>dir_obj:close()</code>.
+    Raises an error if <code>path</code> is not a directory.
+    </dd>
+    
+    <dt><a name="lock"></a><strong><code>lfs.lock (filehandle, mode[, start[, length]])</code></strong></dt>
+    <dd>Locks a file or a part of it. This function works on <em>open files</em>; the
+    file handle should be specified as the first argument.
+    The string <code>mode</code> could be either
+    <code>r</code> (for a read/shared lock) or <code>w</code> (for a
+    write/exclusive lock). The optional arguments <code>start</code>
+    and <code>length</code> can be used to specify a starting point and
+    its length; both should be numbers.<br />
+    Returns <code>true</code> if the operation was successful; in
+    case of error, it returns <code>nil</code> plus an error string.
+    </dd>
+    
+    <dt><a name="mkdir"></a><strong><code>lfs.mkdir (dirname)</code></strong></dt>
+    <dd>Creates a new directory. The argument is the name of the new
+    directory.<br />
+    Returns <code>true</code> if the operation was successful;
+    in case of error, it returns <code>nil</code> plus an error string.
+    </dd>
+    
+    <dt><a name="rmdir"></a><strong><code>lfs.rmdir (dirname)</code></strong></dt>
+    <dd>Removes an existing directory. The argument is the name of the directory.<br />
+    Returns <code>true</code> if the operation was successful;
+    in case of error, it returns <code>nil</code> plus an error string.</dd>
+
+    <dt><a name="setmode"></a><strong><code>lfs.setmode (file, mode)</code></strong></dt>
+    <dd>Sets the writing mode for a file. The mode string can be either <code>binary</code> or <code>text</code>.
+    Returns the previous mode string for the file. This function is only available in Windows, so you may want to make sure that
+    <code>lfs.setmode</code> exists before using it.
+    </dd>
+    
+    <dt><a name="symlinkattributes"></a><strong><code>lfs.symlinkattributes (filepath [, aname])</code></strong></dt>
+    <dd>Identical to <a href="#attributes">lfs.attributes</a> except that
+    it obtains information about the link itself (not the file it refers to).
+    This function is not available in Windows so you may want to make sure that
+    <code>lfs.symlinkattributes</code> exists before using it.
+    </dd>
+
+    <dt><a name="touch"></a><strong><code>lfs.touch (filepath [, atime [, mtime]])</code></strong></dt>
+    <dd>Set access and modification times of a file. This function is
+    a bind to <code>utime</code> function. The first argument is the
+    filename, the second argument (<code>atime</code>) is the access time,
+    and the third argument (<code>mtime</code>) is the modification time.
+    Both times are provided in seconds (which should be generated with
+    Lua standard function <code>os.time</code>).
+    If the modification time is omitted, the access time provided is used;
+    if both times are omitted, the current time is used.<br />
+    Returns <code>true</code> if the operation was successful;
+    in case of error, it returns <code>nil</code> plus an error string.
+    </dd>
+    
+    <dt><a name="unlock"></a><strong><code>lfs.unlock (filehandle[, start[, length]])</code></strong></dt>
+    <dd>Unlocks a file or a part of it. This function works on
+    <em>open files</em>; the file handle should be specified as the first
+    argument. The optional arguments <code>start</code> and
+    <code>length</code> can be used to specify a starting point and its
+    length; both should be numbers.<br />
+    Returns <code>true</code> if the operation was successful;
+    in case of error, it returns <code>nil</code> plus an error string.
+    </dd>
+</dl>
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+	<p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
+	<p><small>$Id: manual.html,v 1.45 2009/06/03 20:53:55 mascarenhas Exp $</small></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+
+</body>
+</html>
diff --git a/lfw/rocks/luafilesystem/1.5.0-1/luafilesystem-1.5.0-1.rockspec b/lfw/rocks/luafilesystem/1.5.0-1/luafilesystem-1.5.0-1.rockspec
new file mode 100644
index 00000000..1170ad25
--- /dev/null
+++ b/lfw/rocks/luafilesystem/1.5.0-1/luafilesystem-1.5.0-1.rockspec
@@ -0,0 +1,27 @@
+package = "LuaFileSystem"
+
+version = "1.5.0-1"
+
+source = {
+   url = "http://cloud.github.com/downloads/keplerproject/luafilesystem/luafilesystem-1.5.0.tar.gz",
+}
+
+description = {
+   summary = "File System Library for the Lua Programming Language",
+   detailed = [[
+      LuaFileSystem is a Lua library developed to complement the set of
+      functions related to file systems offered by the standard Lua
+      distribution. LuaFileSystem offers a portable way to access the
+      underlying directory structure and file attributes.
+   ]]
+}
+
+dependencies = {
+   "lua >= 5.1"
+}
+
+build = {
+   type = "module",
+   modules = { lfs = "src/lfs.c" },
+   copy_directories = { "doc", "tests" }
+}
diff --git a/lfw/rocks/luafilesystem/1.5.0-1/rock_manifest b/lfw/rocks/luafilesystem/1.5.0-1/rock_manifest
new file mode 100644
index 00000000..f04415b7
--- /dev/null
+++ b/lfw/rocks/luafilesystem/1.5.0-1/rock_manifest
@@ -0,0 +1,18 @@
+rock_manifest = {
+  doc={
+    us={
+      ['examples.html']='bc2c38e7bb14ee8a2c7dfde31d847589',
+      ['license.html']='d6b3b3fc89fc8e2632120161dbccb91c',
+      ['luafilesystem.png']='81e923e976e99f894ea0aa8b52baff29',
+      ['index.html']='3280eecd8a8213280ea6fc63aeca85d3',
+      ['manual.html']='4ce5fbcb073538cb5509c20e7fa4b13b'
+    }
+  },
+  ['luafilesystem-1.5.0-1.rockspec']='f24df0bf7653276bcff6e80c53b45cb0',
+  lib={
+    ['lfs.dll']='e0500be912db2d07f08b4c4de202046e'
+  },
+  tests={
+    ['test.lua']='ce1edc52d74c6d9a28aefb73c80c6f29'
+  }
+}
diff --git a/lfw/rocks/luafilesystem/1.5.0-1/tests/test.lua b/lfw/rocks/luafilesystem/1.5.0-1/tests/test.lua
new file mode 100644
index 00000000..71110749
--- /dev/null
+++ b/lfw/rocks/luafilesystem/1.5.0-1/tests/test.lua
@@ -0,0 +1,130 @@
+#!/usr/local/bin/lua5.1
+
+local tmp = "/tmp"
+local sep = "/"
+local upper = ".."
+
+require"lfs"
+print (lfs._VERSION)
+
+function attrdir (path)
+	for file in lfs.dir(path) do
+		if file ~= "." and file ~= ".." then
+			local f = path..sep..file
+			print ("\t=> "..f.." <=")
+			local attr = lfs.attributes (f)
+			assert (type(attr) == "table")
+			if attr.mode == "directory" then
+				attrdir (f)
+			else
+				for name, value in pairs(attr) do
+					print (name, value)
+				end
+			end
+		end
+	end
+end
+
+-- Checking changing directories
+local current = assert (lfs.currentdir())
+local reldir = string.gsub (current, "^.*%"..sep.."([^"..sep.."])$", "%1")
+assert (lfs.chdir (upper), "could not change to upper directory")
+assert (lfs.chdir (reldir), "could not change back to current directory")
+assert (lfs.currentdir() == current, "error trying to change directories")
+assert (lfs.chdir ("this couldn't be an actual directory") == nil, "could change to a non-existent directory")
+
+-- Changing creating and removing directories
+local tmpdir = current..sep.."lfs_tmp_dir"
+local tmpfile = tmpdir..sep.."tmp_file"
+-- Test for existence of a previous lfs_tmp_dir
+-- that may have resulted from an interrupted test execution and remove it
+if lfs.chdir (tmpdir) then
+    assert (lfs.chdir (upper), "could not change to upper directory")
+    assert (os.remove (tmpfile), "could not remove file from previous test")    
+    assert (lfs.rmdir (tmpdir), "could not remove directory from previous test")
+end
+
+-- tries to create a directory
+assert (lfs.mkdir (tmpdir), "could not make a new directory")
+local attrib, errmsg = lfs.attributes (tmpdir)
+if not attrib then
+	error ("could not get attributes of file `"..tmpdir.."':\n"..errmsg)
+end
+local f = io.open(tmpfile, "w")
+f:close()
+
+-- Change access time
+local testdate = os.time({ year = 2007, day = 10, month = 2, hour=0})
+assert (lfs.touch (tmpfile, testdate))
+local new_att = assert (lfs.attributes (tmpfile))
+assert (new_att.access == testdate, "could not set access time")
+assert (new_att.modification == testdate, "could not set modification time")
+
+-- Change access and modification time
+local testdate1 = os.time({ year = 2007, day = 10, month = 2, hour=0})
+local testdate2 = os.time({ year = 2007, day = 11, month = 2, hour=0})
+
+assert (lfs.touch (tmpfile, testdate2, testdate1))
+local new_att = assert (lfs.attributes (tmpfile))
+assert (new_att.access == testdate2, "could not set access time")
+assert (new_att.modification == testdate1, "could not set modification time")
+
+local res, err = lfs.symlinkattributes(tmpfile)
+if err ~= "symlinkattributes not supported on this platform" then
+    -- Checking symbolic link information (does not work in Windows)
+    assert (os.execute ("ln -s "..tmpfile.." _a_link_for_test_"))
+    assert (lfs.attributes"_a_link_for_test_".mode == "file")
+    assert (lfs.symlinkattributes"_a_link_for_test_".mode == "link")
+    assert (os.remove"_a_link_for_test_")
+end
+
+if lfs.setmode then
+    -- Checking text/binary modes (works only in Windows)
+    local f = io.open(tmpfile, "w")
+    local result, mode = lfs.setmode(f, "binary")
+    assert((result and mode == "text") or (not result and mode == "setmode not supported on this platform"))
+    result, mode = lfs.setmode(f, "text")
+    assert((result and mode == "binary") or (not result and mode == "setmode not supported on this platform"))
+    f:close()
+end
+    
+-- Restore access time to current value
+assert (lfs.touch (tmpfile, attrib.access, attrib.modification))
+new_att = assert (lfs.attributes (tmpfile))
+assert (new_att.access == attrib.access)
+assert (new_att.modification == attrib.modification)
+
+-- Remove new file and directory
+assert (os.remove (tmpfile), "could not remove new file")
+assert (lfs.rmdir (tmpdir), "could not remove new directory")
+assert (lfs.mkdir (tmpdir..sep.."lfs_tmp_dir") == nil, "could create a directory inside a non-existent one")
+
+-- Trying to get attributes of a non-existent file
+assert (lfs.attributes ("this couldn't be an actual file") == nil, "could get attributes of a non-existent file")
+assert (type(lfs.attributes (upper)) == "table", "couldn't get attributes of upper directory")
+
+-- Stressing directory iterator
+count = 0
+for i = 1, 4000 do
+	for file in lfs.dir (tmp) do
+		count = count + 1
+	end
+end
+
+-- Stressing directory iterator, explicit version
+count = 0
+for i = 1, 4000 do
+  local iter, dir = lfs.dir(tmp)
+  local file = dir:next()
+  while file do
+    count = count + 1
+    file = dir:next()
+  end
+  assert(not pcall(dir.next, dir))
+end
+
+-- directory explicit close
+local iter, dir = lfs.dir(tmp)
+dir:close()
+assert(not pcall(dir.next, dir))
+print"Ok!"
diff --git a/lfw/rocks/luasocket/2.0.2-3/luasocket-2.0.2-3.rockspec b/lfw/rocks/luasocket/2.0.2-3/luasocket-2.0.2-3.rockspec
new file mode 100644
index 00000000..aa1fa918
--- /dev/null
+++ b/lfw/rocks/luasocket/2.0.2-3/luasocket-2.0.2-3.rockspec
@@ -0,0 +1,34 @@
+package = "LuaSocket"
+version = "2.0.2-3"
+source = {
+   url = "http://luaforge.net/frs/download.php/2664/luasocket-2.0.2.tar.gz",
+   md5 = "41445b138deb7bcfe97bff957503da8e"
+}
+description = {
+   summary = "Network support for the Lua language",
+   detailed = [[
+      LuaSocket is a Lua extension library that is composed by two parts: a C core
+      that provides support for the TCP and UDP transport layers, and a set of Lua
+      modules that add support for functionality commonly needed by applications
+      that deal with the Internet.
+   ]]
+}
+build = {
+   type = "make",
+   build_variables = {
+      CFLAGS = "$(CFLAGS) -DLUASOCKET_DEBUG -I$(LUA_INCDIR)",
+      LDFLAGS = "$(LIBFLAG) -O -fpic",
+      LD = "$(CC)"
+   },
+   install_variables = {
+      INSTALL_TOP_SHARE = "$(LUADIR)",
+      INSTALL_TOP_LIB = "$(LIBDIR)"
+   },
+   platforms = {
+      macosx = {
+         build_variables = {
+            CFLAGS = "$(CFLAGS) -DLUASOCKET_DEBUG -DUNIX_HAS_SUN_LEN -fno-common -I$(LUA_INCDIR)"
+         }
+      }
+   }
+}
diff --git a/lfw/rocks/luasocket/2.0.2-3/rock_manifest b/lfw/rocks/luasocket/2.0.2-3/rock_manifest
new file mode 100644
index 00000000..08776c0a
--- /dev/null
+++ b/lfw/rocks/luasocket/2.0.2-3/rock_manifest
@@ -0,0 +1,23 @@
+rock_manifest = {
+  ['luasocket-2.0.2-3.rockspec']='eb546dbbd806881232d4164ac2121d1a',
+  lua={
+    ['ltn12.lua']='3dfc54ef5c4d74c9558b503ea5595d0d',
+    socket={
+      ['ftp.lua']='a8fbe980f396bccfdaa5671a981e60cd',
+      ['url.lua']='2bb6b15f77e9fcf4fc028435d41ad748',
+      ['http.lua']='811e12534358f97907079ec49db9d753',
+      ['smtp.lua']='1d32e3dc5060e7e2f67b59e8f8376c63',
+      ['tp.lua']='b98814d6a43aa13dd01f78f3b573f4f6'
+    },
+    ['mime.lua']='6042de20ee4cacb2089388f1038bb92b',
+    ['socket.lua']='f8d9f766ce71816a68c90bb12a29eed9'
+  },
+  lib={
+    socket={
+      ['core.dll']='58a9887fb51f92e707c80f9ce4196d5c'
+    },
+    mime={
+      ['core.dll']='05efb07488c0ba45f35230b0066422f4'
+    }
+  }
+}
diff --git a/lfw/rocks/luazip/1.2.3-2/luazip-1.2.3-2.rockspec b/lfw/rocks/luazip/1.2.3-2/luazip-1.2.3-2.rockspec
new file mode 100644
index 00000000..92a99872
--- /dev/null
+++ b/lfw/rocks/luazip/1.2.3-2/luazip-1.2.3-2.rockspec
@@ -0,0 +1,37 @@
+package = "LuaZip"
+version = "1.2.3-2"
+source = {
+   url = "http://luaforge.net/frs/download.php/2493/luazip-1.2.3.tar.gz"
+}
+description = {
+   summary = "Library for reading files inside zip files",
+   detailed = [[
+      LuaZip is a lightweight Lua extension library used to read files
+      stored inside zip files. The API is very similar to the standard
+      Lua I/O library API.
+   ]],
+   license = "MIT/X11",
+   homepage = "http://www.keplerproject.org/luaexpat/"
+}
+dependencies = {
+   "lua >= 5.1"
+}
+external_dependencies = {
+   ZZIP = {
+      header = "zzip.h"
+   }
+}
+build = {
+   type = "make",
+   variables = {
+      LUA_VERSION_NUM="501",
+   },
+   build_variables = {
+      LIB_OPTION = "$(LIBFLAG) -L$(ZZIP_LIBDIR)",
+      CFLAGS = "$(CFLAGS) -I$(LUA_INCDIR) -I$(ZZIP_INCDIR)",
+   },
+   install_variables = {
+      LUA_LIBDIR = "$(LIBDIR)",
+      LUA_DIR = "$(LUADIR)"
+   }
+}
diff --git a/lfw/rocks/luazip/1.2.3-2/rock_manifest b/lfw/rocks/luazip/1.2.3-2/rock_manifest
new file mode 100644
index 00000000..8b71eec7
--- /dev/null
+++ b/lfw/rocks/luazip/1.2.3-2/rock_manifest
@@ -0,0 +1,6 @@
+rock_manifest = {
+  lib={
+    ['zip.dll']='2d450eb4b48a5d6fd8a7ce99f3e24e8e'
+  },
+  ['luazip-1.2.3-2.rockspec']='b0086cd00fa9693c0083199e9b57e717'
+}
diff --git a/lfw/rocks/manifest b/lfw/rocks/manifest
new file mode 100644
index 00000000..8f462a9c
--- /dev/null
+++ b/lfw/rocks/manifest
@@ -0,0 +1,159 @@
+modules = {
+  ['socket.http']={
+    'luasocket/2.0.2-3'
+  },
+  socket={
+    'luasocket/2.0.2-3'
+  },
+  ['des56']={
+    'md5/1.1.2-1'
+  },
+  ['md5.core']={
+    'md5/1.1.2-1'
+  },
+  lfs={
+    'luafilesystem/1.5.0-1'
+  },
+  ['md5']={
+    'md5/1.1.2-1'
+  },
+  ['socket.ftp']={
+    'luasocket/2.0.2-3'
+  },
+  ['socket.url']={
+    'luasocket/2.0.2-3'
+  },
+  ['socket.smtp']={
+    'luasocket/2.0.2-3'
+  },
+  ['mime.core']={
+    'luasocket/2.0.2-3'
+  },
+  zip={
+    'luazip/1.2.3-2'
+  },
+  ['ltn12']={
+    'luasocket/2.0.2-3'
+  },
+  mime={
+    'luasocket/2.0.2-3'
+  },
+  ['socket.tp']={
+    'luasocket/2.0.2-3'
+  },
+  ['socket.core']={
+    'luasocket/2.0.2-3'
+  }
+}
+commands = {}
+dependencies = {
+  luazip={
+    ['1.2.3-2']={
+      {
+        name='lua',
+        constraints={
+          {
+            op='>=',
+            version={
+              5, 1, string='5.1'
+            }
+          }
+        }
+      }
+    }
+  },
+  luafilesystem={
+    ['1.5.0-1']={
+      {
+        name='lua',
+        constraints={
+          {
+            op='>=',
+            version={
+              5, 1, string='5.1'
+            }
+          }
+        }
+      }
+    }
+  },
+  luasocket={
+    ['2.0.2-3']={}
+  },
+  ['md5']={
+    ['1.1.2-1']={
+      {
+        name='lua',
+        constraints={
+          {
+            op='>=',
+            version={
+              5, 1, string='5.1'
+            }
+          }
+        }
+      }
+    }
+  }
+}
+repository = {
+  luafilesystem={
+    ['1.5.0-1']={
+      {
+        modules={
+          lfs='lfs.dll'
+        },
+        commands={},
+        dependencies={},
+        arch='installed'
+      }
+    }
+  },
+  luazip={
+    ['1.2.3-2']={
+      {
+        modules={
+          zip='zip.dll'
+        },
+        commands={},
+        dependencies={},
+        arch='installed'
+      }
+    }
+  },
+  luasocket={
+    ['2.0.2-3']={
+      {
+        modules={
+          ['socket.http']='socket/http.lua',
+          socket='socket.lua',
+          ['socket.url']='socket/url.lua',
+          ['socket.smtp']='socket/smtp.lua',
+          ['socket.ftp']='socket/ftp.lua',
+          ['socket.core']='socket/core.dll',
+          ['ltn12']='ltn12.lua',
+          mime='mime.lua',
+          ['mime.core']='mime/core.dll',
+          ['socket.tp']='socket/tp.lua'
+        },
+        commands={},
+        dependencies={},
+        arch='installed'
+      }
+    }
+  },
+  ['md5']={
+    ['1.1.2-1']={
+      {
+        modules={
+          ['md5.core']='md5/core.dll',
+          ['des56']='des56.dll',
+          ['md5']='md5.lua'
+        },
+        commands={},
+        dependencies={},
+        arch='installed'
+      }
+    }
+  }
+}
diff --git a/lfw/rocks/md5/1.1.2-1/md5-1.1.2-1.rockspec b/lfw/rocks/md5/1.1.2-1/md5-1.1.2-1.rockspec
new file mode 100644
index 00000000..66267018
--- /dev/null
+++ b/lfw/rocks/md5/1.1.2-1/md5-1.1.2-1.rockspec
@@ -0,0 +1,39 @@
+package = "MD5"
+version = "1.1.2-1"
+source = {
+   url = ""
+}
+description = {
+   summary = "Basic cryptographic library",
+   detailed = [[
+      MD5 offers basic cryptographic facilities for Lua 5.1:
+      a hash (digest) function, a pair crypt/decrypt based on MD5 and CFB,
+      and a pair crypt/decrypt based on DES with 56-bit keys.
+   ]],
+   license = "MIT/X11",
+   homepage = "http://www.keplerproject.org/md5/"
+}
+dependencies = {
+   "lua >= 5.1"
+}
+build = {
+   type = "make",
+   variables = {
+      LUA_VERSION_NUM="501",
+   },
+   build_variables = {
+     LIB_OPTION = "$(LIBFLAG)",
+     CFLAGS = "$(CFLAGS) -I$(LUA_INCDIR)",
+   },
+   install_variables = {
+      LUA_LIBDIR = "$(LIBDIR)",
+      LUA_DIR = "$(LUADIR)"
+   },
+   platforms = {
+     win32 = {
+       build_variables = {
+	 LUA_LIB = "$(LUA_LIBDIR)\\lua5.1.lib"
+       }
+     }
+   }
+}
diff --git a/lfw/rocks/md5/1.1.2-1/rock_manifest b/lfw/rocks/md5/1.1.2-1/rock_manifest
new file mode 100644
index 00000000..120edb5c
--- /dev/null
+++ b/lfw/rocks/md5/1.1.2-1/rock_manifest
@@ -0,0 +1,12 @@
+rock_manifest = {
+  ['md5-1.1.2-1.rockspec']='a3953425b9c63515ae647a874fc07f96',
+  lua={
+    ['md5.lua']='d4cd3727e9968f1cddbbe02d85288a9c'
+  },
+  lib={
+    ['des56.dll']='13ffbb58e4b1685d5d27b41840b88d43',
+    ['md5']={
+      ['core.dll']='b925346324ca57f32d8c42541f881119'
+    }
+  }
+}
-- 
cgit v1.2.3-55-g6feb