From 26b746fcda935094984ed73af556771c0cd5f744 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Sat, 16 Apr 2022 17:33:29 -0300 Subject: deps: verify version mismatch when checking for Lua library --- src/luarocks/deps.lua | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua index cbd8962c..25905ae3 100644 --- a/src/luarocks/deps.lua +++ b/src/luarocks/deps.lua @@ -743,8 +743,17 @@ function deps.check_lua_libdir(vars) local ok = check_external_dependency("LUA", { library = libnames }, vars, "build", cache) vars.LUA_INCDIR = save_LUA_INCDIR if ok then - if fs.exists(dir.path(vars.LUA_LIBDIR, vars.LUA_LIBDIR_FILE)) then - vars.LUALIB = vars.LUA_LIBDIR_FILE + local filename = dir.path(vars.LUA_LIBDIR, vars.LUA_LIBDIR_FILE) + local fd = io.open(filename, "r") + if fd then + local txt = fd:read("*a") + fd:close() + if txt:match("Lua " .. cfg.lua_version, 1, true) then + vars.LUALIB = vars.LUA_LIBDIR_FILE + return true + else + return nil, "Lua library at " .. filename .. " does not match Lua version " .. cfg.lua_version .. ". You may want to override this by configuring LUA_INCDIR.", "dependency" + end end return true end -- cgit v1.2.3-55-g6feb