diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2012-03-09 21:36:20 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2012-03-09 21:36:20 -0300 |
commit | 37aded056fae788088855b36281b1d23b0131fdb (patch) | |
tree | 32562f8400a8ff3a1ea298cb662e5bf3929d565d /src | |
parent | 9b9df2fa3475531aba8e41e38ba7d452d802cfb6 (diff) | |
download | luarocks-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.lua | 25 | ||||
-rw-r--r-- | src/luarocks/deps.lua | 4 | ||||
-rw-r--r-- | src/luarocks/fs/lua.lua | 5 | ||||
-rw-r--r-- | src/luarocks/fs/unix/tools.lua | 3 | ||||
-rw-r--r-- | src/luarocks/fs/win32/tools.lua | 3 | ||||
-rw-r--r-- | src/luarocks/persist.lua | 21 |
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 | ||
14 | local rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, type, assert = | 14 | local 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 | ||
17 | module("luarocks.cfg") | 17 | module("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 | ||
28 | lua_version = _VERSION:sub(5) | ||
28 | program_version = "2.0.8" | 29 | program_version = "2.0.8" |
29 | user_agent = "LuaRocks/"..program_version | 30 | user_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. |
131 | function execute_string(cmd) | 131 | function 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. |
18 | function execute_string(cmd) | 18 | function 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. |
112 | function execute_string(cmd) | 112 | function 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 |