aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2012-03-09 21:36:20 -0300
committerHisham Muhammad <hisham@gobolinux.org>2012-03-09 21:36:20 -0300
commit37aded056fae788088855b36281b1d23b0131fdb (patch)
tree32562f8400a8ff3a1ea298cb662e5bf3929d565d /src
parent9b9df2fa3475531aba8e41e38ba7d452d802cfb6 (diff)
downloadluarocks-37aded056fae788088855b36281b1d23b0131fdb.tar.gz
luarocks-37aded056fae788088855b36281b1d23b0131fdb.tar.bz2
luarocks-37aded056fae788088855b36281b1d23b0131fdb.zip
Further steps for Lua 5.2 support
Diffstat (limited to 'src')
-rw-r--r--src/luarocks/cfg.lua25
-rw-r--r--src/luarocks/deps.lua4
-rw-r--r--src/luarocks/fs/lua.lua5
-rw-r--r--src/luarocks/fs/unix/tools.lua3
-rw-r--r--src/luarocks/fs/win32/tools.lua3
-rw-r--r--src/luarocks/persist.lua21
6 files changed, 38 insertions, 23 deletions
diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua
index 9628a291..8527ba52 100644
--- a/src/luarocks/cfg.lua
+++ b/src/luarocks/cfg.lua
@@ -11,8 +11,8 @@
11-- (~/.luarocks/config.lua on Unix or %APPDATA%/luarocks/config.lua on 11-- (~/.luarocks/config.lua on Unix or %APPDATA%/luarocks/config.lua on
12-- Windows). 12-- Windows).
13 13
14local rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, type, assert = 14local rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, type, assert, _VERSION =
15 rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, type, assert 15 rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, type, assert, _VERSION
16 16
17module("luarocks.cfg") 17module("luarocks.cfg")
18 18
@@ -25,6 +25,7 @@ end
25 25
26_M.site_config = site_config 26_M.site_config = site_config
27 27
28lua_version = _VERSION:sub(5)
28program_version = "2.0.8" 29program_version = "2.0.8"
29user_agent = "LuaRocks/"..program_version 30user_agent = "LuaRocks/"..program_version
30 31
@@ -150,8 +151,8 @@ local defaults = {
150 use_extensions = false, 151 use_extensions = false,
151 accept_unknown_fields = false, 152 accept_unknown_fields = false,
152 153
153 lua_modules_path = "/share/lua/5.1/", 154 lua_modules_path = "/share/lua/"..lua_version,
154 lib_modules_path = "/lib/lua/5.1/", 155 lib_modules_path = "/lib/lua/"..lua_version,
155 156
156 arch = "unknown", 157 arch = "unknown",
157 lib_extension = "unknown", 158 lib_extension = "unknown",
@@ -230,9 +231,9 @@ if detected.windows then
230 defaults.external_lib_extension = "dll" 231 defaults.external_lib_extension = "dll"
231 defaults.obj_extension = "obj" 232 defaults.obj_extension = "obj"
232 defaults.external_deps_dirs = { "c:/external/" } 233 defaults.external_deps_dirs = { "c:/external/" }
233 defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR and site_config.LUA_BINDIR:gsub("\\", "/") or "c:/lua5.1/bin" 234 defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR and site_config.LUA_BINDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/bin"
234 defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR and site_config.LUA_INCDIR:gsub("\\", "/") or "c:/lua5.1/include" 235 defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR and site_config.LUA_INCDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/include"
235 defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR and site_config.LUA_LIBDIR:gsub("\\", "/") or "c:/lua5.1/lib" 236 defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR and site_config.LUA_LIBDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/lib"
236 defaults.cmake_generator = "MinGW Makefiles" 237 defaults.cmake_generator = "MinGW Makefiles"
237 defaults.makefile = "Makefile.win" 238 defaults.makefile = "Makefile.win"
238 defaults.variables.MAKE = "nmake" -- TODO: Split Windows flavors between mingw and msvc 239 defaults.variables.MAKE = "nmake" -- TODO: Split Windows flavors between mingw and msvc
@@ -241,10 +242,10 @@ if detected.windows then
241 defaults.variables.WRAPPER = site_config.LUAROCKS_PREFIX .. "\\2.0\\rclauncher.obj" 242 defaults.variables.WRAPPER = site_config.LUAROCKS_PREFIX .. "\\2.0\\rclauncher.obj"
242 defaults.variables.LD = "link" 243 defaults.variables.LD = "link"
243 defaults.variables.MT = "mt" 244 defaults.variables.MT = "mt"
244 defaults.variables.LUALIB = "lua5.1.lib" 245 defaults.variables.LUALIB = "lua"..lua_version..".lib"
245 defaults.variables.CFLAGS = "/MD /O2" 246 defaults.variables.CFLAGS = "/MD /O2"
246 defaults.variables.LIBFLAG = "/dll" 247 defaults.variables.LIBFLAG = "/dll"
247 defaults.variables.LUALIB = "lua5.1.lib" 248 defaults.variables.LUALIB = "lua"..lua_version..".lib"
248 defaults.external_deps_patterns = { 249 defaults.external_deps_patterns = {
249 bin = { "?.exe", "?.bat" }, 250 bin = { "?.exe", "?.bat" },
250 lib = { "?.lib", "?.dll", "lib?.dll" }, 251 lib = { "?.lib", "?.dll", "lib?.dll" },
@@ -268,9 +269,9 @@ if detected.mingw32 then
268 defaults.external_lib_extension = "dll" 269 defaults.external_lib_extension = "dll"
269 defaults.obj_extension = "o" 270 defaults.obj_extension = "o"
270 defaults.external_deps_dirs = { "c:/external/" } 271 defaults.external_deps_dirs = { "c:/external/" }
271 defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR and site_config.LUA_BINDIR:gsub("\\", "/") or "c:/lua5.1/bin" 272 defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR and site_config.LUA_BINDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/bin"
272 defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR and site_config.LUA_INCDIR:gsub("\\", "/") or "c:/lua5.1/include" 273 defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR and site_config.LUA_INCDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/include"
273 defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR and site_config.LUA_LIBDIR:gsub("\\", "/") or "c:/lua5.1/lib" 274 defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR and site_config.LUA_LIBDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/lib"
274 defaults.cmake_generator = "MinGW Makefiles" 275 defaults.cmake_generator = "MinGW Makefiles"
275 defaults.make = "mingw32-make" -- TODO: Split Windows flavors between mingw and msvc 276 defaults.make = "mingw32-make" -- TODO: Split Windows flavors between mingw and msvc
276 defaults.makefile = "Makefile.win" 277 defaults.makefile = "Makefile.win"
diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua
index 9cc9f2c4..194e0e7e 100644
--- a/src/luarocks/deps.lua
+++ b/src/luarocks/deps.lua
@@ -317,7 +317,7 @@ local function match_dep(dep, blacklist)
317 317
318 local versions 318 local versions
319 if dep.name == "lua" then 319 if dep.name == "lua" then
320 versions = { (_VERSION:gsub("Lua ", "")) } 320 versions = { cfg.lua_version }
321 else 321 else
322 versions = manif_core.get_versions(dep.name) 322 versions = manif_core.get_versions(dep.name)
323 end 323 end
@@ -470,7 +470,7 @@ function fulfill_dependencies(rockspec)
470 if not match_dep(dep) then 470 if not match_dep(dep) then
471 local rock = search.find_suitable_rock(dep) 471 local rock = search.find_suitable_rock(dep)
472 if not rock then 472 if not rock then
473 return nil, "Could not find a rock to satisfy dependency: "..show_dep(dep) 473 return nil, "Could not satisfy dependency: "..show_dep(dep)
474 end 474 end
475 local ok, err, errcode = install.run(rock) 475 local ok, err, errcode = install.run(rock)
476 if not ok then 476 if not ok then
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua
index 1cae25f4..191ef35c 100644
--- a/src/luarocks/fs/lua.lua
+++ b/src/luarocks/fs/lua.lua
@@ -59,7 +59,7 @@ function is_writable(file)
59 if fh then fh:close() end 59 if fh then fh:close() end
60 os.remove(file2) 60 os.remove(file2)
61 else 61 else
62 local fh = io.open(file, 'rb+') 62 local fh = io.open(file, 'r+b')
63 result = fh ~= nil 63 result = fh ~= nil
64 if fh then fh:close() end 64 if fh then fh:close() end
65 end 65 end
@@ -129,7 +129,8 @@ if lfs_ok then
129-- @return boolean: true if command succeeds (status code 0), false 129-- @return boolean: true if command succeeds (status code 0), false
130-- otherwise. 130-- otherwise.
131function execute_string(cmd) 131function execute_string(cmd)
132 if os.execute(cmd) == 0 then 132 local code = os.execute(cmd)
133 if code == 0 or code == true then
133 return true 134 return true
134 else 135 else
135 return false 136 return false
diff --git a/src/luarocks/fs/unix/tools.lua b/src/luarocks/fs/unix/tools.lua
index d6d60adc..37efcf66 100644
--- a/src/luarocks/fs/unix/tools.lua
+++ b/src/luarocks/fs/unix/tools.lua
@@ -17,7 +17,8 @@ local vars = cfg.variables
17-- otherwise. 17-- otherwise.
18function execute_string(cmd) 18function execute_string(cmd)
19 local actual_cmd = "cd " .. fs.Q(fs.current_dir()) .. " && " .. cmd 19 local actual_cmd = "cd " .. fs.Q(fs.current_dir()) .. " && " .. cmd
20 if os.execute(actual_cmd) == 0 then 20 local code = os.execute(actual_cmd)
21 if code == 0 or code == true then
21 return true 22 return true
22 else 23 else
23 return false 24 return false
diff --git a/src/luarocks/fs/win32/tools.lua b/src/luarocks/fs/win32/tools.lua
index 2ad84371..6115f382 100644
--- a/src/luarocks/fs/win32/tools.lua
+++ b/src/luarocks/fs/win32/tools.lua
@@ -110,7 +110,8 @@ end
110-- @return boolean: true if command succeeds (status code 0), false 110-- @return boolean: true if command succeeds (status code 0), false
111-- otherwise. 111-- otherwise.
112function execute_string(cmd) 112function execute_string(cmd)
113 if os.execute(command_at(fs.current_dir(), cmd)) == 0 then 113 local code = os.execute(command_at(fs.current_dir(), cmd))
114 if code == 0 or code == true then
114 return true 115 return true
115 else 116 else
116 return false 117 return false
diff --git a/src/luarocks/persist.lua b/src/luarocks/persist.lua
index 6d411e0f..182b3da6 100644
--- a/src/luarocks/persist.lua
+++ b/src/luarocks/persist.lua
@@ -18,17 +18,28 @@ function load_into_table(filename, tbl)
18 assert(type(filename) == "string") 18 assert(type(filename) == "string")
19 assert(type(tbl) == "table" or not tbl) 19 assert(type(tbl) == "table" or not tbl)
20 20
21 local chunk, err = loadfile(filename) 21 local result, chunk, ran, err
22 local result = tbl or {}
23 if setfenv then -- Lua 5.1
24 chunk, err = loadfile(filename)
25 if chunk then
26 setfenv(chunk, result)
27 ran, err = pcall(chunk)
28 end
29 else -- Lua 5.2
30 chunk, err = loadfile(filename, "t", result)
31 if chunk then
32 ran, err = pcall(chunk)
33 end
34 end
35
22 if not chunk then 36 if not chunk then
23 if err:sub(1,5) ~= filename:sub(1,5) then 37 if err:sub(1,5) ~= filename:sub(1,5) then
24 return false, err 38 return false, err
25 end 39 end
26 return nil, "Error loading file: "..err 40 return nil, "Error loading file: "..err
27 end 41 end
28 local result = tbl or {} 42 if not ran then
29 setfenv(chunk, result)
30 local ok, err = pcall(chunk)
31 if not ok then
32 return nil, "Error running file: "..err 43 return nil, "Error running file: "..err
33 end 44 end
34 return result 45 return result