aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Chapuis <git@catwell.info>2025-12-01 22:25:11 +0100
committerPierre Chapuis <git@catwell.info>2025-12-26 11:06:49 +0100
commit291fc8a34fc186b011c9d6b09a80bf179cae6f62 (patch)
tree9cf8b991a245619405e47f675f88ede6455614ce
parentddb1c93bf93c9774cb9d854a665d51c369ea5acd (diff)
downloadluarocks-291fc8a34fc186b011c9d6b09a80bf179cae6f62.tar.gz
luarocks-291fc8a34fc186b011c9d6b09a80bf179cae6f62.tar.bz2
luarocks-291fc8a34fc186b011c9d6b09a80bf179cae6f62.zip
support Lua 5.5
-rw-r--r--GNUmakefile2
-rw-r--r--binary/luaposix-35.1-1.rockspec2
-rwxr-xr-xconfigure18
-rw-r--r--spec/init_spec.lua4
-rw-r--r--src/luarocks/cmd/write_rockspec.lua10
-rw-r--r--src/luarocks/cmd/write_rockspec.tl12
-rw-r--r--src/luarocks/core/util.lua2
-rw-r--r--src/luarocks/core/util.tl2
-rw-r--r--src/luarocks/deps.lua6
-rw-r--r--src/luarocks/deps.tl6
-rw-r--r--src/luarocks/fs/lua.lua1
-rw-r--r--src/luarocks/tools/patch.lua1
-rw-r--r--src/luarocks/tools/patch.tl1
-rw-r--r--src/luarocks/util.lua6
-rw-r--r--src/luarocks/util.tl6
15 files changed, 59 insertions, 20 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 46be0cc6..37cfdf7d 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -16,7 +16,7 @@ buildbinarydir = ./build-binary
16 16
17LUAROCKS_FILES = $(shell find src/luarocks/ -type f -name '*.lua') 17LUAROCKS_FILES = $(shell find src/luarocks/ -type f -name '*.lua')
18 18
19LUA_ENV_VARS = LUA_PATH LUA_PATH_5_2 LUA_PATH_5_3 LUA_PATH_5_4 LUA_CPATH LUA_CPATH_5_2 LUA_CPATH_5_3 LUA_CPATH_5_4 19LUA_ENV_VARS = LUA_PATH LUA_PATH_5_2 LUA_PATH_5_3 LUA_PATH_5_4 LUA_PATH_5_5 LUA_CPATH LUA_CPATH_5_2 LUA_CPATH_5_3 LUA_CPATH_5_4 LUA_CPATH_5_5
20 20
21all: build 21all: build
22 22
diff --git a/binary/luaposix-35.1-1.rockspec b/binary/luaposix-35.1-1.rockspec
index 1940c755..0f23d39d 100644
--- a/binary/luaposix-35.1-1.rockspec
+++ b/binary/luaposix-35.1-1.rockspec
@@ -14,7 +14,7 @@ description = {
14} 14}
15 15
16dependencies = { 16dependencies = {
17 'lua >= 5.1, < 5.5', 17 'lua >= 5.1, < 5.6',
18} 18}
19 19
20do 20do
diff --git a/configure b/configure
index cc3e9dab..4c294105 100755
--- a/configure
+++ b/configure
@@ -120,7 +120,7 @@ Where to install files provided by rocks:
120 - Default is [PREFIX] 120 - Default is [PREFIX]
121 121
122Where is your Lua interpreter: 122Where is your Lua interpreter:
123 --lua-version=VERSION Use specific Lua version: 5.1, 5.2, 5.3, or 5.4 123 --lua-version=VERSION Use specific Lua version: 5.1, 5.2, 5.3, 5.4 or 5.5
124 - Default is auto-detected. 124 - Default is auto-detected.
125 --with-lua-bin=LUA_BINDIR Location of your Lua binar(y/ies). 125 --with-lua-bin=LUA_BINDIR Location of your Lua binar(y/ies).
126 - Default is the directory of the 126 - Default is the directory of the
@@ -151,7 +151,7 @@ EOF
151# ------------- 151# -------------
152 152
153detect_lua_version() { 153detect_lua_version() {
154 detected_lua=$($1 -e 'print(_VERSION:match(" (5%.[1234])$"))' 2> /dev/null) 154 detected_lua=$($1 -e 'print(_VERSION:match(" (5%.[12345])$"))' 2> /dev/null)
155 if [ "$detected_lua" != "nil" ] 155 if [ "$detected_lua" != "nil" ]
156 then 156 then
157 if [ "$LUA_VERSION_SET" != "yes" ] 157 if [ "$LUA_VERSION_SET" != "yes" ]
@@ -258,7 +258,7 @@ do
258 [ -n "$value" ] || die "Missing value in flag $key." 258 [ -n "$value" ] || die "Missing value in flag $key."
259 LUA_VERSION="$value" 259 LUA_VERSION="$value"
260 case "$LUA_VERSION" in 260 case "$LUA_VERSION" in
261 5.1|5.2|5.3|5.4) ;; 261 5.1|5.2|5.3|5.4|5.5) ;;
262 *) die "Invalid Lua version in flag $key." 262 *) die "Invalid Lua version in flag $key."
263 esac 263 esac
264 LUA_VERSION_SET=yes 264 LUA_VERSION_SET=yes
@@ -362,8 +362,11 @@ case "$LUA_VERSION" in
3625.4) 3625.4)
363 names="lua5.4 lua54 lua-5.4 lua-54 lua" 363 names="lua5.4 lua54 lua-5.4 lua-54 lua"
364 ;; 364 ;;
3655.5)
366 names="lua5.5 lua55 lua-5.5 lua-55 lua"
367 ;;
365*) 368*)
366 names="lua5.4 lua54 lua-5.4 lua-54 lua5.3 lua53 lua-5.3 lua-53 lua5.2 lua52 lua-5.2 lua-52 lua5.1 lua51 lua-5.1 lua-51 luajit lua" 369 names="lua5.5 lua55 lua-5.5 lua-55 lua5.4 lua54 lua-5.4 lua-54 lua5.3 lua53 lua-5.3 lua-53 lua5.2 lua52 lua-5.2 lua-52 lua5.1 lua51 lua-5.1 lua-51 luajit lua"
367 ;; 370 ;;
368esac 371esac
369 372
@@ -438,7 +441,12 @@ check_incdir() {
438 do 441 do
439 if [ -f "$lua_h" ] 442 if [ -f "$lua_h" ]
440 then 443 then
441 grep "LUA_VERSION_NUM.*$LUA_VERSION" "$lua_h" > /dev/null 2> /dev/null && return 444 if [ "$LUA_VERSION" = "5.5" ]
445 then
446 grep "LUA_VERSION_MINOR_N.*5" "$lua_h" > /dev/null 2> /dev/null && return
447 else
448 grep "LUA_VERSION_NUM.*$LUA_VERSION" "$lua_h" > /dev/null 2> /dev/null && return
449 fi
442 fi 450 fi
443 tried="$tried $lua_h" 451 tried="$tried $lua_h"
444 done 452 done
diff --git a/spec/init_spec.lua b/spec/init_spec.lua
index 88bd23a5..6cc0dd90 100644
--- a/spec/init_spec.lua
+++ b/spec/init_spec.lua
@@ -153,13 +153,13 @@ describe("luarocks init #integration", function()
153 lfs.mkdir(myproject) 153 lfs.mkdir(myproject)
154 lfs.chdir(myproject) 154 lfs.chdir(myproject)
155 155
156 assert(run.luarocks("init --lua-versions=5.1,5.2,5.3,5.4")) 156 assert(run.luarocks("init --lua-versions=5.1,5.2,5.3,5.4,5.5"))
157 local rockspec_name = myproject .. "/myproject-dev-1.rockspec" 157 local rockspec_name = myproject .. "/myproject-dev-1.rockspec"
158 assert.truthy(lfs.attributes(rockspec_name)) 158 assert.truthy(lfs.attributes(rockspec_name))
159 local fd = assert(io.open(rockspec_name, "rb")) 159 local fd = assert(io.open(rockspec_name, "rb"))
160 local data = fd:read("*a") 160 local data = fd:read("*a")
161 fd:close() 161 fd:close()
162 assert.truthy(data:find("lua >= 5.1, < 5.5", 1, true)) 162 assert.truthy(data:find("lua >= 5.1, < 5.6", 1, true))
163 end, finally) 163 end, finally)
164 end) 164 end)
165 165
diff --git a/src/luarocks/cmd/write_rockspec.lua b/src/luarocks/cmd/write_rockspec.lua
index b84c2803..5710c982 100644
--- a/src/luarocks/cmd/write_rockspec.lua
+++ b/src/luarocks/cmd/write_rockspec.lua
@@ -28,12 +28,17 @@ local lua_versions = {
28 "5.2", 28 "5.2",
29 "5.3", 29 "5.3",
30 "5.4", 30 "5.4",
31 "5.5",
31 "5.1,5.2", 32 "5.1,5.2",
32 "5.2,5.3", 33 "5.2,5.3",
33 "5.3,5.4", 34 "5.3,5.4",
35 "5.4,5.5",
34 "5.1,5.2,5.3", 36 "5.1,5.2,5.3",
35 "5.2,5.3,5.4", 37 "5.2,5.3,5.4",
38 "5.3,5.4,5.5",
36 "5.1,5.2,5.3,5.4", 39 "5.1,5.2,5.3,5.4",
40 "5.2,5.3,5.4,5.5",
41 "5.1,5.2,5.3,5.4,5.5",
37} 42}
38 43
39function write_rockspec.cmd_options(parser) 44function write_rockspec.cmd_options(parser)
@@ -110,12 +115,17 @@ local lua_version_dep = {
110 ["5.2"] = "lua ~> 5.2", 115 ["5.2"] = "lua ~> 5.2",
111 ["5.3"] = "lua ~> 5.3", 116 ["5.3"] = "lua ~> 5.3",
112 ["5.4"] = "lua ~> 5.4", 117 ["5.4"] = "lua ~> 5.4",
118 ["5.5"] = "lua ~> 5.5",
113 ["5.1,5.2"] = "lua >= 5.1, < 5.3", 119 ["5.1,5.2"] = "lua >= 5.1, < 5.3",
114 ["5.2,5.3"] = "lua >= 5.2, < 5.4", 120 ["5.2,5.3"] = "lua >= 5.2, < 5.4",
115 ["5.3,5.4"] = "lua >= 5.3, < 5.5", 121 ["5.3,5.4"] = "lua >= 5.3, < 5.5",
122 ["5.4,5.5"] = "lua >= 5.4, < 5.6",
116 ["5.1,5.2,5.3"] = "lua >= 5.1, < 5.4", 123 ["5.1,5.2,5.3"] = "lua >= 5.1, < 5.4",
117 ["5.2,5.3,5.4"] = "lua >= 5.2, < 5.5", 124 ["5.2,5.3,5.4"] = "lua >= 5.2, < 5.5",
125 ["5.3,5.4,5.5"] = "lua >= 5.3, < 5.6",
118 ["5.1,5.2,5.3,5.4"] = "lua >= 5.1, < 5.5", 126 ["5.1,5.2,5.3,5.4"] = "lua >= 5.1, < 5.5",
127 ["5.2,5.3,5.4,5.5"] = "lua >= 5.2, < 5.6",
128 ["5.1,5.2,5.3,5.4,5.5"] = "lua >= 5.1, < 5.6",
119} 129}
120 130
121local simple_scm_protocols = { 131local simple_scm_protocols = {
diff --git a/src/luarocks/cmd/write_rockspec.tl b/src/luarocks/cmd/write_rockspec.tl
index 7354a683..2ec4eea9 100644
--- a/src/luarocks/cmd/write_rockspec.tl
+++ b/src/luarocks/cmd/write_rockspec.tl
@@ -28,12 +28,17 @@ local lua_versions = {
28 "5.2", 28 "5.2",
29 "5.3", 29 "5.3",
30 "5.4", 30 "5.4",
31 "5.5",
31 "5.1,5.2", 32 "5.1,5.2",
32 "5.2,5.3", 33 "5.2,5.3",
33 "5.3,5.4", 34 "5.3,5.4",
35 "5.4,5.5",
34 "5.1,5.2,5.3", 36 "5.1,5.2,5.3",
35 "5.2,5.3,5.4", 37 "5.2,5.3,5.4",
36 "5.1,5.2,5.3,5.4" 38 "5.3,5.4,5.5",
39 "5.1,5.2,5.3,5.4",
40 "5.2,5.3,5.4,5.5",
41 "5.1,5.2,5.3,5.4,5.5",
37} 42}
38 43
39function write_rockspec.cmd_options(parser: Parser) 44function write_rockspec.cmd_options(parser: Parser)
@@ -110,12 +115,17 @@ local lua_version_dep = {
110 ["5.2"] = "lua ~> 5.2", 115 ["5.2"] = "lua ~> 5.2",
111 ["5.3"] = "lua ~> 5.3", 116 ["5.3"] = "lua ~> 5.3",
112 ["5.4"] = "lua ~> 5.4", 117 ["5.4"] = "lua ~> 5.4",
118 ["5.5"] = "lua ~> 5.5",
113 ["5.1,5.2"] = "lua >= 5.1, < 5.3", 119 ["5.1,5.2"] = "lua >= 5.1, < 5.3",
114 ["5.2,5.3"] = "lua >= 5.2, < 5.4", 120 ["5.2,5.3"] = "lua >= 5.2, < 5.4",
115 ["5.3,5.4"] = "lua >= 5.3, < 5.5", 121 ["5.3,5.4"] = "lua >= 5.3, < 5.5",
122 ["5.4,5.5"] = "lua >= 5.4, < 5.6",
116 ["5.1,5.2,5.3"] = "lua >= 5.1, < 5.4", 123 ["5.1,5.2,5.3"] = "lua >= 5.1, < 5.4",
117 ["5.2,5.3,5.4"] = "lua >= 5.2, < 5.5", 124 ["5.2,5.3,5.4"] = "lua >= 5.2, < 5.5",
125 ["5.3,5.4,5.5"] = "lua >= 5.3, < 5.6",
118 ["5.1,5.2,5.3,5.4"] = "lua >= 5.1, < 5.5", 126 ["5.1,5.2,5.3,5.4"] = "lua >= 5.1, < 5.5",
127 ["5.2,5.3,5.4,5.5"] = "lua >= 5.2, < 5.6",
128 ["5.1,5.2,5.3,5.4,5.5"] = "lua >= 5.1, < 5.6",
119} 129}
120 130
121local simple_scm_protocols = { 131local simple_scm_protocols = {
diff --git a/src/luarocks/core/util.lua b/src/luarocks/core/util.lua
index a6ff0fcb..40ba213d 100644
--- a/src/luarocks/core/util.lua
+++ b/src/luarocks/core/util.lua
@@ -96,7 +96,7 @@ function util.show_table(t, tname, top_indent)
96 else 96 else
97 cart = cart .. " = {\n" 97 cart = cart .. " = {\n"
98 for k, v in pairs(value) do 98 for k, v in pairs(value) do
99 k = basic_serialize(k) 99 local k = basic_serialize(k)
100 local fname = ("%s[%s]"):format(name, k) 100 local fname = ("%s[%s]"):format(name, k)
101 field = ("[%s]"):format(k) 101 field = ("[%s]"):format(k)
102 102
diff --git a/src/luarocks/core/util.tl b/src/luarocks/core/util.tl
index b1bbea05..1a6fefca 100644
--- a/src/luarocks/core/util.tl
+++ b/src/luarocks/core/util.tl
@@ -96,7 +96,7 @@ function util.show_table(t: {any:any}, tname: string, top_indent: string): strin
96 else 96 else
97 cart = cart .. " = {\n" 97 cart = cart .. " = {\n"
98 for k, v in pairs(value) do 98 for k, v in pairs(value) do
99 k = basic_serialize(k) 99 local k = basic_serialize(k)
100 local fname = ("%s[%s]"):format(name, k) 100 local fname = ("%s[%s]"):format(name, k)
101 field = ("[%s]"):format(k) 101 field = ("[%s]"):format(k)
102 -- three spaces between levels 102 -- three spaces between levels
diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua
index 13b531f6..3eded47a 100644
--- a/src/luarocks/deps.lua
+++ b/src/luarocks/deps.lua
@@ -713,7 +713,11 @@ local function lua_h_exists(d, luaver)
713 if fd then 713 if fd then
714 local data = fd:read("*a") 714 local data = fd:read("*a")
715 fd:close() 715 fd:close()
716 if data:match("LUA_VERSION_NUM%s*" .. tostring(luanum)) then 716 if major == "5" and minor == "5" then
717 if data:match("LUA_VERSION_MINOR_N%s5") and data:match("LUA_VERSION_MAJOR_N%s5") then
718 return d ~= nil
719 end
720 elseif data:match("LUA_VERSION_NUM%s*" .. tostring(luanum)) then
717 return d ~= nil 721 return d ~= nil
718 end 722 end
719 return nil, "Lua header lua.h found at " .. d .. " does not match Lua version " .. luaver .. ". You can use `luarocks config variables.LUA_INCDIR <path>` to set the correct location.", "dependency", 2 723 return nil, "Lua header lua.h found at " .. d .. " does not match Lua version " .. luaver .. ". You can use `luarocks config variables.LUA_INCDIR <path>` to set the correct location.", "dependency", 2
diff --git a/src/luarocks/deps.tl b/src/luarocks/deps.tl
index 98fad54d..85980347 100644
--- a/src/luarocks/deps.tl
+++ b/src/luarocks/deps.tl
@@ -713,7 +713,11 @@ local function lua_h_exists(d: string, luaver: string): boolean, string, string,
713 if fd then 713 if fd then
714 local data = fd:read("*a") 714 local data = fd:read("*a")
715 fd:close() 715 fd:close()
716 if data:match("LUA_VERSION_NUM%s*" .. tostring(luanum)) then 716 if major == "5" and minor == "5" then
717 if data:match("LUA_VERSION_MINOR_N%s5") and data:match("LUA_VERSION_MAJOR_N%s5") then
718 return d ~= nil
719 end
720 elseif data:match("LUA_VERSION_NUM%s*" .. tostring(luanum)) then
717 return d ~= nil 721 return d ~= nil
718 end 722 end
719 return nil, "Lua header lua.h found at " .. d .. " does not match Lua version " .. luaver .. ". You can use `luarocks config variables.LUA_INCDIR <path>` to set the correct location.", "dependency", 2 723 return nil, "Lua header lua.h found at " .. d .. " does not match Lua version " .. luaver .. ". You can use `luarocks config variables.LUA_INCDIR <path>` to set the correct location.", "dependency", 2
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua
index 0f1ee55e..45324c77 100644
--- a/src/luarocks/fs/lua.lua
+++ b/src/luarocks/fs/lua.lua
@@ -213,6 +213,7 @@ function fs_lua.modules(at)
213 local path = package.path:sub(-1, -1) == ";" and package.path or package.path .. ";" 213 local path = package.path:sub(-1, -1) == ";" and package.path or package.path .. ";"
214 local paths = {} 214 local paths = {}
215 for location in path:gmatch("(.-);") do 215 for location in path:gmatch("(.-);") do
216 local location = location
216 if location:lower() == "?.lua" then 217 if location:lower() == "?.lua" then
217 location = "./?.lua" 218 location = "./?.lua"
218 end 219 end
diff --git a/src/luarocks/tools/patch.lua b/src/luarocks/tools/patch.lua
index d1575cb0..5b00e9b1 100644
--- a/src/luarocks/tools/patch.lua
+++ b/src/luarocks/tools/patch.lua
@@ -188,6 +188,7 @@ function patch.read_patch(filename, data)
188 local lineno = 0 188 local lineno = 0
189 189
190 for line in file_lines(fp) do 190 for line in file_lines(fp) do
191 local line = line
191 lineno = lineno + 1 192 lineno = lineno + 1
192 if state == 'header' then 193 if state == 'header' then
193 if startswith(line, "--- ") then 194 if startswith(line, "--- ") then
diff --git a/src/luarocks/tools/patch.tl b/src/luarocks/tools/patch.tl
index 553964e3..2cfd3841 100644
--- a/src/luarocks/tools/patch.tl
+++ b/src/luarocks/tools/patch.tl
@@ -188,6 +188,7 @@ function patch.read_patch(filename: string, data: string): Files, boolean
188 local lineno = 0 188 local lineno = 0
189 189
190 for line in file_lines(fp) do 190 for line in file_lines(fp) do
191 local line = line
191 lineno = lineno + 1 192 lineno = lineno + 1
192 if state == 'header' then 193 if state == 'header' then
193 if startswith(line, "--- ") then 194 if startswith(line, "--- ") then
diff --git a/src/luarocks/util.lua b/src/luarocks/util.lua
index ffa53b09..b35c63ce 100644
--- a/src/luarocks/util.lua
+++ b/src/luarocks/util.lua
@@ -160,7 +160,7 @@ function util.variable_substitutions(tbl, vars)
160end 160end
161 161
162function util.lua_versions(sort) 162function util.lua_versions(sort)
163 local versions = { "5.1", "5.2", "5.3", "5.4" } 163 local versions = { "5.1", "5.2", "5.3", "5.4", "5.5" }
164 local i = 0 164 local i = 0
165 if sort == "descending" then 165 if sort == "descending" then
166 i = #versions + 1 166 i = #versions + 1
@@ -286,7 +286,7 @@ local function collect_rockspecs(versions, paths, unnamed_paths, subdir)
286 local vers = require("luarocks.core.vers") 286 local vers = require("luarocks.core.vers")
287 if fs.is_dir(subdir) then 287 if fs.is_dir(subdir) then
288 for file in fs.dir(subdir) do 288 for file in fs.dir(subdir) do
289 file = dir.path(subdir, file) 289 local file = dir.path(subdir, file)
290 290
291 if file:match("rockspec$") and fs.is_file(file) then 291 if file:match("rockspec$") and fs.is_file(file) then
292 local rock, version = path.parse_name(file) 292 local rock, version = path.parse_name(file)
@@ -550,7 +550,7 @@ function util.get_rocks_provided(rockspec)
550 rocks_provided["bit32"] = lv .. "-1" 550 rocks_provided["bit32"] = lv .. "-1"
551 end 551 end
552 552
553 if lv == "5.3" or lv == "5.4" then 553 if lv == "5.3" or lv == "5.4" or lv == "5.5" then
554 rocks_provided["utf8"] = lv .. "-1" 554 rocks_provided["utf8"] = lv .. "-1"
555 end 555 end
556 556
diff --git a/src/luarocks/util.tl b/src/luarocks/util.tl
index b68883e5..f2fb5a5a 100644
--- a/src/luarocks/util.tl
+++ b/src/luarocks/util.tl
@@ -160,7 +160,7 @@ function util.variable_substitutions<K>(tbl: {K: string}, vars: {string: string}
160end 160end
161 161
162function util.lua_versions(sort?: string): function(): string 162function util.lua_versions(sort?: string): function(): string
163 local versions = { "5.1", "5.2", "5.3", "5.4" } 163 local versions = { "5.1", "5.2", "5.3", "5.4", "5.5" }
164 local i = 0 164 local i = 0
165 if sort == "descending" then 165 if sort == "descending" then
166 i = #versions + 1 166 i = #versions + 1
@@ -286,7 +286,7 @@ local function collect_rockspecs(versions: {string: string}, paths: {string: str
286 local vers = require("luarocks.core.vers") 286 local vers = require("luarocks.core.vers")
287 if fs.is_dir(subdir) then 287 if fs.is_dir(subdir) then
288 for file in fs.dir(subdir) do 288 for file in fs.dir(subdir) do
289 file = dir.path(subdir, file) 289 local file = dir.path(subdir, file)
290 290
291 if file:match("rockspec$") and fs.is_file(file) then 291 if file:match("rockspec$") and fs.is_file(file) then
292 local rock, version = path.parse_name(file) 292 local rock, version = path.parse_name(file)
@@ -550,7 +550,7 @@ function util.get_rocks_provided(rockspec?: Rockspec): {string: string}
550 rocks_provided["bit32"] = lv.."-1" 550 rocks_provided["bit32"] = lv.."-1"
551 end 551 end
552 552
553 if lv == "5.3" or lv == "5.4" then 553 if lv == "5.3" or lv == "5.4" or lv == "5.5" then
554 rocks_provided["utf8"] = lv.."-1" 554 rocks_provided["utf8"] = lv.."-1"
555 end 555 end
556 556