luvi, lit, luvi: fix build, statically compile everything; luv: add LuaJIT variant, allow tests on LuaJIT variant (#13884)

This commit is contained in:
nilFinx
2026-04-01 09:11:19 +00:00
committed by GitHub
parent 729309c868
commit 110d06a7e0
7 changed files with 266 additions and 32 deletions

View File

@@ -82,5 +82,5 @@ INSTALL()
TEST()
{
make test
make test LUA_TEST_BIN="lua"
}

View File

@@ -0,0 +1,97 @@
SUMMARY="Bare libuv bindings for Lua"
DESCRIPTION="luv are bare libuv bindings for Lua."
HOMEPAGE="https://github.com/luvit/luv"
COPYRIGHT="2014 The Luvit Authors"
LICENSE="Apache v2"
REVISION="1"
SOURCE_URI="https://github.com/luvit/luv/archive/refs/tags/${portVersion//_/-}.tar.gz"
CHECKSUM_SHA256="e8b8774b31d24be4fcf2b021b90599ecccc8e476c61efcc59c3c10cab813a885"
SOURCE_DIR="luv-${portVersion//_/-}"
srcGitRev_2="64ed183ab243cdc737203e835892b4e6cb446e46"
SOURCE_URI_2="https://github.com/lunarmodules/lua-compat-5.3/archive/$srcGitRev_2.tar.gz"
CHECKSUM_SHA256_2="a646a752cb4639ea17823870b30a49a4072f980b9bc96e3d1f0b4c2e3d2be230"
SOURCE_FILENAME_2="lua-compat-5.3-$srcGitRev_2.tar.gz"
SOURCE_DIR_2="lua-compat-5.3-$srcGitRev_2"
PATCHES="luv-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
if [ "$targetArchitecture" = x86_gcc2 ]; then
SECONDARY_ARCHITECTURES="x86"
fi
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
luv_luajit$secondaryArchSuffix = $portVersion
lib:libluv$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:liblua$secondaryArchSuffix
lib:libuv$secondaryArchSuffix
"
CONFLICTS="
luv$secondaryArchSuffix
"
PROVIDES_devel="
luv_luajit${secondaryArchSuffix}_devel = $portVersion
devel:libluv$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
luv_luajit$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libluajit_5.1$secondaryArchSuffix
devel:libuv$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:gcc$secondaryArchSuffix
cmd:make
cmd:cmake
"
TEST_REQUIRES="
cmd:luajit
"
BUILD()
{
rm -df deps/lua-compat-5.3
ln -sf $sourceDir2 deps/lua-compat-5.3
cmake \
-B build -S.\
-DWITH_LUA_ENGINE=LuaJIT \
-DLUA_BUILD_TYPE=System \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_SHARED_LIBUV=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=OFF \
-DCMAKE_INSTALL_PREFIX=$prefix \
-DSHAREDLIBS_INSTALL_BIN_DIR=$binDir \
-DSHAREDLIBS_INSTALL_INC_DIR=$includeDir \
-DSHAREDLIBS_INSTALL_LIB_DIR=$libDir
make -C build $jobArgs
}
INSTALL()
{
LUAVERSION="5.1"
make -C build install
make -C build BUILD_MODULE=0 install
prepareInstalledDevelLib libluv
fixPkgconfig
packageEntries devel $developDir
}
TEST()
{
LUAVERSION="5.1"
make test LUA_TEST_BIN="luajit"
}

View File

@@ -15,7 +15,7 @@ index 70679fe..ed51b01 100644
-test: luv
- ${LUABIN} tests/run.lua
+test:
+ LUA_CPATH=";build/?.so" lua tests/run.lua
+ LUA_CPATH=";build/?.so" $(LUA_TEST_BIN) tests/run.lua
$(MAKE) -C $(BUILD_DIR) test
$(BUILD_DIR)/test tests/manual-test-external-loop.lua

View File

@@ -16,22 +16,31 @@ COPYRIGHT="2012 The Luvit Authors
"
LICENSE="Apache v2"
REVISION="1"
SOURCE_URI="https://lit.luvit.io/packages/luvit/lit/v$portVersion.zip"
CHECKSUM_SHA256="5dd3eb583815afc0589fd330144b2a8ac6a572c79b4cd7d34471d464bb2dde12"
SOURCE_URI="$HOMEPAGE/archive/refs/tags/$portVersion.tar.gz"
CHECKSUM_SHA256="7675c451f0465036f06ee96c5cb26ab24ef82a408fc9379feca5fb5e807674e1"
SOURCE_FILENAME="lit-$portVersion.zip"
SOURCE_DIR=""
SOURCE_DIR="lit-$portVersion"
srcGitRev_2="00bd21b8cc3a2e233276f5a70b57ca7347fdf520"
SOURCE_URI_2="https://github.com/creationix/lua-git/archive/$srcGitRev_2.tar.gz"
CHECKSUM_SHA256_2="8de544b4a1e7981233c6a452c204505c30f90b79b4b4446e2035897a01a142c8"
SOURCE_FILENAME_2="lua-git-$srcGitRev_2.zip"
SOURCE_DIR_2="lua-git-$srcGitRev_2"
ARCHITECTURES="all !x86_gcc2"
if [ "$targetArchitecture" = x86_gcc2 ]; then
SECONDARY_ARCHITECTURES="?x86"
fi
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
lit = $portVersion
lit$secondaryArchSuffix = $portVersion
cmd:lulit = $portVersion
"
REQUIRES="
haiku
haiku$secondaryArchSuffix
luv_luajit${secondaryArchSuffix}
lib:libcrypto$secondaryArchSuffix
lib:libluajit_5.1$secondaryArchSuffix
lib:libpcre2_8$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libuv$secondaryArchSuffix
"
BUILD_PREREQUIRES="
@@ -40,8 +49,14 @@ BUILD_PREREQUIRES="
cmd:which
"
TEST_REQUIRES="
cmd:luvi
"
BUILD()
{
rm -df deps/git
ln -sf $sourceDir2 deps/git
mkdir -p /tmp/luvithome
HOME=/tmp/luvithome luvi . -- make . lit $(which luvi)
}
@@ -52,3 +67,8 @@ INSTALL()
# Rename lit to lulit to avoid conflict with LLVM's cmd:lit (like it's done in AUR)
install -m 0755 lit $prefix/bin/lulit
}
TEST()
{
luvi tests -- tests/run.lua
}

View File

@@ -8,41 +8,97 @@ COPYRIGHT="2012 The Luvit Authors
"
LICENSE="Apache v2"
REVISION="1"
SOURCE_URI="https://github.com/luvit/luvi/releases/download/v$portVersion/luvi-source.tar.gz"
CHECKSUM_SHA256="91f40fb6421888c2ee403de80248250c234f3bfb6dd1edbbc9188a89e4b9708a"
SOURCE_URI="$HOMEPAGE/archive/refs/tags/v$portVersion.tar.gz"
CHECKSUM_SHA256="54b3a77781dad81abafeef5d972123798900d5498852d0667eacd8358cbb0f8d"
SOURCE_FILENAME="luvi-$portVersion.tar.gz"
SOURCE_DIR=""
SOURCE_DIR="luvi-$portVersion"
srcGitRev_2="55bbd00e53890e50e05018907140f4f3d3e234f4"
SOURCE_URI_2="https://github.com/luvit/lpeg/archive/$srcGitRev_2.tar.gz"
CHECKSUM_SHA256_2="63f8b88357361f72b04b2096b2e3540825c5c1ba226fb659cb8cc59783a134b7"
SOURCE_FILENAME_2="lpeg-$srcGitRev_2.tar.gz"
SOURCE_DIR_2="lpeg-$srcGitRev_2"
srcGitRev_3="9aa5e7e9ca47da1bd0e023dfa0b1b2d43aa358f3"
SOURCE_URI_3="https://github.com/rrthomas/lrexlib/archive/$srcGitRev_3.tar.gz"
CHECKSUM_SHA256_3="c2c028549e4f634ec3c81c591f4bdafcad0e3a9a98a933b6bab76af709c3b444"
SOURCE_FILENAME_3="lrexlib-$srcGitRev_3.tar.gz"
SOURCE_DIR_3="lrexlib-$srcGitRev_3"
version_4="0.11.0-2"
SOURCE_URI_4="https://github.com/zhaozg/lua-openssl/releases/download/$version_4/openssl-$version_4.tar.gz"
CHECKSUM_SHA256_4="61d7450c53afe11ba1936a3916df68a454476a05a753f3b2c8332f981883ea34"
SOURCE_FILENAME_4="openssl-$version_4.tar.gz"
SOURCE_DIR_4="openssl-$version_4"
srcGitRev_5="bf7a1f0a5aa1deae9cab2d73b5ef9edec41b877c"
SOURCE_URI_5="https://github.com/richgel999/miniz/archive/$srcGitRev_5.tar.gz"
CHECKSUM_SHA256_5="d8ae3141fb67d280587224dcb80f02f4d39ab42aafe46e8e0c4b8bb6a810b542"
SOURCE_FILENAME_5="miniz-$srcGitRev_5.tar.gz"
SOURCE_DIR_5="miniz-$srcGitRev_5"
srcGitRev_6="79f6934306367e700050de9614eab9ac01bd4d6f"
SOURCE_URI_6="https://github.com/luvit/luv/archive/$srcGitRev_6.tar.gz"
CHECKSUM_SHA256_6="0f6f9d33ccf8278d0d288f8f90ba5633efe376c3c8cd0fb05a85f1fc7f1a0db1"
SOURCE_FILENAME_6="luv-$srcGitRev_6.tar.gz"
SOURCE_DIR_6="luv-$srcGitRev_6"
PATCHES="luvi-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
if [ "$targetArchitecture" = x86_gcc2 ]; then
SECONDARY_ARCHITECTURES="?x86" # luv has this, and official Windows build of luvi supports 32 bit, so assuming that it works
fi
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
luvi = $portVersion
luvi$secondaryArchSuffix = $portVersion
cmd:luvi
"
REQUIRES="
haiku
haiku$secondaryArchSuffix
luv_luajit${secondaryArchSuffix}
lib:libluajit_5.1$secondaryArchSuffix
lib:libpcre2_8$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libuv$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku_devel
haiku${secondaryArchSuffix}_devel
luv_luajit${secondaryArchSuffix}_devel
devel:libluajit_5.1$secondaryArchSuffix
devel:libpcre2_8$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libuv$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:gcc
cmd:ld
cmd:gcc$secondaryArchSuffix
cmd:make
cmd:install
cmd:cmake
cmd:perl
cmd:git
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
make regular
make $jobArgs
rm -df deps/lpeg deps/lrexlib deps/lua-openssl deps/miniz deps/luv $sourceDir6/deps/libuv
ln -sf $sourceDir2 deps/lpeg
ln -sf $sourceDir3 deps/lrexlib
ln -sf $sourceDir4 deps/lua-openssl
ln -sf $sourceDir5 deps/miniz
ln -sf $sourceDir6 deps/luv
ln -sf $sourceDir4/deps/compat-5.3 deps/luv/deps/lua-compat-5.3
echo $portVersion > VERSION
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release \
-DWITH_LUA_ENGINE=LuaJIT \
-DLUA_BUILD_TYPE=System \
-DWITH_AMALG=ON \
-DWithOpenSSLASM=ON \
-DWithOpenSSL=ON \
-DWithPCRE2=ON \
-DWithLPEG=ON \
-DWithZLIB=OFF \
-DWithSharedOpenSSL=ON \
-DWithSharedPCRE2=ON \
-DWithSharedLPEG=ON \
-DWithSharedZLIB=ON \
-DWITH_SHARED_LIBUV=ON \
-DWithSharedLibluv=ON
make -C build $jobArgs
}
INSTALL()

View File

@@ -0,0 +1,46 @@
From c0c9feb7e1b1332b74ed0cedfce2b6be5c998578 Mon Sep 17 00:00:00 2001
From: nilFinx <nulflox@disroot.org>
Date: Sun, 29 Mar 2026 21:03:14 +0900
Subject: Fix build on Haiku with manual dependencies pulling
---
CMakeLists.txt | 2 +-
deps/lua-openssl.cmake | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0b0007d..ffc3461 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -109,7 +109,7 @@ else (WithSharedLibluv)
add_subdirectory(deps/luv) # Build luv
endif (WithSharedLibluv)
-set(LUA_COMPAT53_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps/luv/deps/lua-compat-5.3" CACHE PATH "Path to lua-compat-5.3")
+set(LUA_COMPAT53_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps/lua-openssl/deps/compat-5.3" CACHE PATH "Path to lua-compat-5.3")
include_directories(${LUA_COMPAT53_DIR})
include_directories(${LUA_COMPAT53_DIR}/c-api)
diff --git a/deps/lua-openssl.cmake b/deps/lua-openssl.cmake
index 6cd47fc..dd9ddd0 100644
--- a/deps/lua-openssl.cmake
+++ b/deps/lua-openssl.cmake
@@ -6,6 +6,7 @@ include_directories(
${CMAKE_BINARY_DIR}/include
${LUA_OPENSSL_DIR}/deps/auxiliar
${LUA_OPENSSL_DIR}/deps/lua-compat
+ ${LUA_OPENSSL_DIR}/deps/lua-compat/c-api
${LUA_OPENSSL_DIR}/src
)
@@ -47,6 +48,7 @@ add_library(lua_openssl STATIC
${LUA_OPENSSL_DIR}/src/pkcs7.c
${LUA_OPENSSL_DIR}/src/pkey.c
${LUA_OPENSSL_DIR}/src/private.h
+ ${LUA_OPENSSL_DIR}/src/provider.c
${LUA_OPENSSL_DIR}/src/rsa.c
${LUA_OPENSSL_DIR}/src/sk.h
${LUA_OPENSSL_DIR}/src/srp.c
--
2.52.0

View File

@@ -29,10 +29,10 @@ COPYRIGHT="2012 The Luvit Authors
"
LICENSE="Apache v2"
REVISION="1"
SOURCE_URI="https://lit.luvit.io/packages/luvit/luvit/v$portVersion.zip"
CHECKSUM_SHA256="c75cb97f71a6f10213a9dfc0d99bc07dc82fd970bb41c51a6c456dbb77aa0bcc"
SOURCE_URI="https://github.com/luvit/luvit/archive/refs/tags/$portVersion.tar.gz"
CHECKSUM_SHA256="b792781d77028edb7e5761e96618c96162bd68747b8fced9a6fc52f123837c2c"
SOURCE_FILENAME="luvit-$portVersion.zip"
SOURCE_DIR=""
SOURCE_DIR="luvit-$portVersion"
ARCHITECTURES="all !x86_gcc2"
if [ "$targetArchitecture" = x86_gcc2 ]; then
@@ -40,25 +40,35 @@ SECONDARY_ARCHITECTURES="?x86"
fi
PROVIDES="
luvit = $portVersion
luvit$secondaryArchSuffix = $portVersion
cmd:luvit = $portVersion
"
REQUIRES="
haiku
haiku$secondaryArchSuffix
luv_luajit$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libluajit_5.1$secondaryArchSuffix
lib:libpcre2_8$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libuv$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:install
cmd:lit
cmd:lulit
cmd:luvi
cmd:make
cmd:which
"
TEST_REQUIRES="
cmd:luvit
"
BUILD()
{
mkdir -p /tmp/luvitbuild
HOME=/tmp/luvitbuild lit make . luvit $(which luvi)
HOME=/tmp/luvitbuild lulit make . luvit $(which luvi)
}
INSTALL()
@@ -66,3 +76,8 @@ INSTALL()
mkdir -p $prefix/bin
install -m 0755 luvit $prefix/bin
}
TEST()
{
luvit tests/run.lua
}