From aed621d5db1d521404238a92f16b879180a469a2 Mon Sep 17 00:00:00 2001
From: Michel Alexandre Salim <michel@michel-slm.name>
Date: Wed, 27 Jan 2021 20:32:07 -0800
Subject: [PATCH] Dynamically detect libdir on Linux

Some Linux distributions (e.g. Fedora, CentOS) put 64-bit libraries
in `/usr/lib64` rather than `/usr/lib`. On such systems `luarocks`
should use `lib64` rather than `lib`.

Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
---
 src/luarocks/core/cfg.lua | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua
index 4ac5ee2..c7d2cb2 100644
--- a/src/luarocks/core/cfg.lua
+++ b/src/luarocks/core/cfg.lua
@@ -397,6 +397,18 @@ local function make_defaults(lua_version, target_cpu, platforms, home)
          defaults.variables.CFLAGS = defaults.variables.CFLAGS.." -fPIC"
       end
       defaults.web_browser = "xdg-open"
+      if platforms.linux then
+         -- inline code from fs/linux.lua since
+         -- luarocks.fs can't be required here
+         -- (circular dependencies)
+         local fd, _, code = io.open("/usr/lib64", "r")
+         if code ~= 2 then
+            defaults.lib_modules_path = "/lib64/lua/"..lua_version
+         end
+         if fd then
+            fd:close()
+         end
+      end
    end
 
    if platforms.cygwin then
-- 
2.29.2
