Files
buildroot/package/luvi/luvi.mk
Romain Naour 00317f0aff package/luvi: bump to version 2.15.0
Luvi 2.14.0 fails to build with GCC 14.x for several reasons due to
too old lua-openssl 0.8.2-0 submodule:

TestLuvi/build/luvi-2.14.0/deps/lua-openssl/src/ocsp.c: In function 'openssl_ocsp_request_read':
TestLuvi/build/luvi-2.14.0/deps/lua-openssl/src/ocsp.c:124:29: error: passing argument 1 of 'PEM_ASN1_read_bio' from incompatible pointer type [-Wincompatible-pointer-types]
  124 |   OCSP_REQUEST *req = pem ? PEM_read_bio_OCSP_REQUEST(bio, NULL, NULL)
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                             |
      |                             char * (*)()

Fixed in lua-openssl by [1].

TestLuvi/build/luvi-2.14.0/deps/lua-openssl/src/x509.c: In function 'openssl_push_general_name':
TestLuvi/build/luvi-2.14.0/deps/lua-openssl/src/x509.c:377:45: error: passing argument 2 of 'openssl_push_asn1type' from incompatible pointer type [-Wincompatible-pointer-types]
  377 |     openssl_push_asn1type(L, general_name->d.x400Address);
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~
      |                                             |
      |                                             ASN1_STRING * {aka struct asn1_string_st *}

Fixed in lua-openssl by [2].

TestLuvi/build/luvi-2.14.0/deps/lua-openssl/src/openssl.c: In function 'luaclose_openssl':
TestLuvi/build/luvi-2.14.0/deps/lua-openssl/src/stdatomic.h:387:9: error: implicit declaration of function '__c11_atomic_fetch_sub'; did you mean '__atomic_fetch_sub'? [-Wimplicit-function-declaration]
  387 |         __c11_atomic_fetch_sub(object, operand, order)

Fixed in lua-openssl by [3].

Instead of fixing one by one each issues, update to the latest release
that include lua-openssl 0.9.0-0. Luvi v2.15.0 still have some GCC 14.x
issues, backport two additional patches.

Download luvi sources using git method since the release archive
no longer include the release version in its name [4].

Luvi switched to PCRE2 [5], update the optional dependency.

Update TestLuvi to select PCR2 package.

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/11271124430 (TestLuvi)

[1] bfeedbe8c0
[2] e5b5420cc5
[3] cfcaa16d1a
[4] https://github.com/luvit/luvi/releases/download/v2.15.0/luvi-source.tar.gz
[5] https://github.com/luvit/luvi/releases/tag/v2.15.0

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-09-14 23:12:15 +02:00

73 lines
2.1 KiB
Makefile

################################################################################
#
# luvi
#
################################################################################
LUVI_VERSION = v2.15.0
LUVI_SITE = https://github.com/luvit/luvi.git
LUVI_SITE_METHOD = git
LUVI_GIT_SUBMODULES = YES
LUVI_LICENSE = Apache-2.0
LUVI_LICENSE_FILES = LICENSE.txt
LUVI_DEPENDENCIES = libuv luajit luv host-luajit host-pkgconf
# Dispatch all architectures of LuaJIT
ifeq ($(BR2_i386),y)
LUVI_TARGET_ARCH = x86
else ifeq ($(BR2_x86_64),y)
LUVI_TARGET_ARCH = x64
else ifeq ($(BR2_powerpc),y)
LUVI_TARGET_ARCH = ppc
else ifeq ($(BR2_arm)$(BR2_armeb),y)
LUVI_TARGET_ARCH = arm
else ifeq ($(BR2_aarch64),y)
LUVI_TARGET_ARCH = arm64
else ifeq ($(BR2_aarch64_be),y)
LUVI_TARGET_ARCH = arm64be
else ifeq ($(BR2_mips),y)
LUVI_TARGET_ARCH = mips
else ifeq ($(BR2_mipsel),y)
LUVI_TARGET_ARCH = mipsel
else
LUVI_TARGET_ARCH = $(BR2_ARCH)
endif
# LUAJIT_VERSION and the luajit installation path may not use the
# same value. Use the value from luajit.pc file.
LUVI_LUAJIT_MAJVER = `$(PKG_CONFIG_HOST_BINARY) --variable=majver luajit`
LUVI_LUAJIT_MINVER = `$(PKG_CONFIG_HOST_BINARY) --variable=minver luajit`
# Bundled lua bindings have to be linked statically into the luvi executable
LUVI_CONF_OPTS = \
-DBUILD_SHARED_LIBS=OFF \
-DWithSharedLibluv=ON \
-DTARGET_ARCH=$(LUVI_TARGET_ARCH) \
-DLUA_PATH=$(HOST_DIR)/share/luajit-$(LUVI_LUAJIT_MAJVER).$(LUVI_LUAJIT_MINVER)/?.lua
# Add "rex" module (PCRE2 via bundled lrexlib)
ifeq ($(BR2_PACKAGE_PCRE2),y)
LUVI_DEPENDENCIES += pcre2
LUVI_CONF_OPTS += -DWithPCRE2=ON -DWithSharedPCRE2=ON
else
LUVI_CONF_OPTS += -DWithPCRE2=OFF -DWithSharedPCRE2=OFF
endif
# Add "ssl" module (via bundled lua-openssl)
ifeq ($(BR2_PACKAGE_OPENSSL),y)
LUVI_DEPENDENCIES += openssl
LUVI_CONF_OPTS += -DWithOpenSSL=ON -DWithOpenSSLASM=ON -DWithSharedOpenSSL=ON
else
LUVI_CONF_OPTS += -DWithOpenSSL=OFF -DWithOpenSSLASM=OFF -DWithSharedOpenSSL=OFF
endif
# Add "zlib" module (via bundled lua-zlib)
ifeq ($(BR2_PACKAGE_ZLIB),y)
LUVI_DEPENDENCIES += zlib
LUVI_CONF_OPTS += -DWithZLIB=ON -DWithSharedZLIB=ON
else
LUVI_CONF_OPTS += -DWithZLIB=OFF -DWithSharedZLIB=OFF
endif
$(eval $(cmake-package))