pantry/projects/luarocks.org/package.yml
Jacob Heider 4ef8940db3 fix(luarocks)
closes #6568

thanks, @magnusviri!
2024-07-01 11:09:23 -04:00

99 lines
3.1 KiB
YAML

distributable:
url: https://github.com/luarocks/luarocks/archive/refs/tags/v{{version.raw}}.tar.gz
strip-components: 1
versions:
github: luarocks/luarocks/tags
strip: /v/
dependencies:
lua.org: '*'
info-zip.org/unzip: '*'
runtime:
env:
LUA_PATH: $LUA_PATH;{{prefix}}/share/lua/{{deps.lua.org.version.marketing}}/?.lua;{{prefix}}/share/lua/{{deps.lua.org.version.marketing}}/?/init.lua;{{prefix}}/lib/lua/{{deps.lua.org.version.marketing}}/?.lua;{{prefix}}/lib/lua/{{deps.lua.org.version.marketing}}/?/init.lua
LUA_CPATH: $LUA_CPATH;{{prefix}}/lib/lua/{{deps.lua.org.version.marketing}}/?.so;{{prefix}}/lib/lua/{{deps.lua.org.version.marketing}}/loadall.so
build:
dependencies:
gnu.org/make: ^4
gnu.org/sed: ^4
script:
- ./configure $ARGS
- make --jobs {{ hw.concurrency }} install
- run: |
fix-shebangs.ts luarocks-admin luarocks
sed -i \
-e 's|\[\[{{prefix}}|debug.getinfo(1).source:match("@?(.*/)") .. \[\[..|g' \
luarocks-admin luarocks
working-directory: ${{prefix}}/bin
# luarocks config has fixed paths
- run: |
mv bin tbin
mkdir bin
working-directory: ${{prefix}}
- run: |
cat $PROP >luarocks
cat $PROP >luarocks-admin
chmod +x luarocks luarocks-admin
working-directory: ${{prefix}}/bin
prop: |
#!/bin/sh
d="$(cd "$(dirname "$0")"/.. && pwd)"
x="$(basename "$0")"
cat >"$d/etc/luarocks/config-{{deps.lua.org.version.marketing}}.lua" <<EOF
-- LuaRocks configuration
rocks_trees = {
{ name = "user", root = home .. "/.luarocks" };
{ name = "system", root = "${PKGX_DIR:-$HOME/.pkgx}/luarocks.org/v{{version}}" };
}
variables = {
LUA_DIR = "${PKGX_DIR:-$HOME/.pkgx}/lua.org/v{{deps.lua.org.version.marketing}}";
LUA_BINDIR = "${PKGX_DIR:-$HOME/.pkgx}/lua.org/v{{deps.lua.org.version.marketing}}/bin";
LUA_VERSION = "{{deps.lua.org.version.marketing}}";
LUA = "${PKGX_DIR:-$HOME/.pkgx}/lua.org/v{{deps.lua.org.version.marketing}}/bin/lua";
}
EOF
exec "$d/tbin/$x" "$@"
env:
ARGS:
- --prefix="{{prefix}}"
- --sysconfdir="{{prefix}}/etc"
- --rocks-tree="{{prefix}}"
- --force-config
- --disable-incdir-check
provides:
- bin/luarocks
- bin/luarocks-admin
test:
dependencies:
gnu.org/gcc: '*'
curl.se: '*'
script:
- run: EXTRA_ARGS="RT_LIBDIR=$(dirname $(find /usr/lib -name librt.a | head -n1))"
if: linux
- test "$(luarocks --version | awk 'NR==1 {print $NF}')" = "{{version.raw}}"
- luarocks install busted $EXTRA_ARGS
- run:
- luarocks install luasocket
- lua $FIXTURE
fixture:
extname: lua
content: |
local status, socket = pcall(require, "socket")
if status then
print("Socket module loaded successfully.")
else
print("Failed to load socket module.")
print("Error: " .. socket)
os.exit(1)
end