diff --git a/lang/lua55/Makefile b/lang/lua55/Makefile index 271eb1477e3c..113f0d82468a 100644 --- a/lang/lua55/Makefile +++ b/lang/lua55/Makefile @@ -1,145 +1,145 @@ PORTNAME= lua -DISTVERSION= 5.5.0 +DISTVERSION= 5.5.1 CATEGORIES= lang MASTER_SITES= https://www.lua.org/ftp/ PKGNAMESUFFIX= ${LUA_VER_STR} MAINTAINER= tagattie@FreeBSD.org COMMENT= Powerful, efficient, lightweight, embeddable scripting language WWW= https://www.lua.org/ LICENSE= MIT USES= cpe lua:core,55 USE_LDCONFIG= yes # using the "bsd" target rather than "freebsd" saves patching out the # assumption of using base libedit in order to make it configurable. "bsd" # is "generic" plus the POSIX and DLOPEN options, plus -Wl,-E at link time; # it doesn't set CC either, which makes it easier for us to control that too. ALL_TARGET= bsd LUA_LIB_STATIC= liblua-${LUA_VER}.a LUA_LIB_SHARED= liblua-${LUA_VER}.so LUA_PC_FILE= lua-${LUA_VER}.pc CFLAGS+= -fPIC # 2019-01-25: -pthread in LIBS is a work around for the following bug: # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235211 LIBS+= -pthread WITHOUT_NO_STRICT_ALIASING= yes MAKE_ARGS+= CC="${CC}" \ CMCFLAGS="" \ MYCFLAGS="${CPPFLAGS} ${CFLAGS}" \ MYLDFLAGS="${LDFLAGS}" \ MYLIBS="${LIBS}" \ LUA_T=${LUA_CMD} \ LUAC_T=${LUAC_CMD} \ LUA_A=${LUA_LIB_STATIC} \ LUA_SO=${LUA_LIB_SHARED} \ LUA_SONAME=${LUA_LIB_SHARED} \ TO_BIN="${LUA_CMD} ${LUAC_CMD}" \ TO_LIB="${LUA_LIB_SHARED} ${LUA_LIB_STATIC}" \ INSTALL_TOP=${STAGEDIR}${PREFIX} \ INSTALL_INC=${STAGEDIR}${LUA_INCDIR} \ INSTALL_EXEC="${INSTALL_PROGRAM}" # Source, destination, and filenames to copy for the DOCS option # (automatically added to pkg-plist if DOCS is set) # We override DOCSDIR to get a per-version subdir. # We put the docs for Lua proper in a lua/ subdir of the version subdir # so that ports for Lua modules can use the version subdir too without # making a mess. DOCSDIR= ${LUA_DOCSDIR} BUILD_WRKDOC= ${WRKSRC}/doc SUB_FILES= ${LUA_PC_FILE} SUB_LIST= version=${PORTVERSION} \ includedir=${LUA_INCDIR} \ libdir=${LUA_LIBDIR} \ soname=lua-${LUA_VER} BUILD_WRKSRC= ${WRKSRC}/src PORTDOCS= * # Options OPTIONS_DEFAULT= LIBEDIT_DL OPTIONS_GROUP= DOCSGRP DEBUGGRP OPTIONS_GROUP_DEBUGGRP= ASSERT APICHECK OPTIONS_GROUP_DOCSGRP= DOCS OPTIONS_SINGLE= EDITGRP OPTIONS_SINGLE_EDITGRP= EDITNONE LIBEDIT LIBEDIT_DL READLINE READLINE_DL # Option descriptions APICHECK_DESC= Enable API checks ASSERT_DESC= Enable interpreter assertions DEBUGGRP_DESC= Debugging options DOCSGRP_DESC= Documentation options DOCS_DESC= Install language and API reference (HTML, ~400kB) EDITGRP_DESC= Interactive command-line editing EDITNONE_DESC= No command-line editing LIBEDIT_DESC= Use libedit (breaks lcurses) LIBEDIT_DL_DESC= Use dynamically loaded libedit (recommended) READLINE_DESC= Use GNU Readline (breaks lcurses) READLINE_DL_DESC= Use dynamically loaded GNU readline # Option implementations APICHECK_CPPFLAGS= -DLUA_USE_APICHECK ASSERT_CPPFLAGS= -DLUAI_ASSERT # EDITNONE currently requires no settings LIBEDIT_USES= libedit LIBEDIT_CPPFLAGS= -DLUA_USE_READLINE LIBEDIT_LIBS= -ledit LIBEDIT_DL_USES= libedit LIBEDIT_DL_CPPFLAGS= -DLUA_USE_DLOPEN \ -DLUA_READLINELIB='\"${LOCALBASE}/lib/libedit.so\"' LIBEDIT_DL_EXTRA_PATCHES=${PATCHDIR}/extra-patch-dlopen READLINE_USES= readline READLINE_CPPFLAGS= -DLUA_USE_READLINE READLINE_LIBS= -lreadline READLINE_DL_USES= readline READLINE_DL_CPPFLAGS= -DLUA_USE_DLOPEN \ -DLUA_READLINELIB='\"${LOCALBASE}/lib/libreadline.so\"' # end of option vars post-patch: @${REINPLACE_CMD} -e "/LUA_ROOT/s,/usr/local,${LUA_PREFIX}," \ ${WRKSRC}/src/luaconf.h @${REINPLACE_CMD} -e "s|man/man|share/man/man|g" \ ${WRKSRC}/Makefile post-patch-LIBEDIT-on: @${REINPLACE_CMD} -e "s,readline/,editline/,g ; \ /history\.h/d" ${WRKSRC}/src/lua.c post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${LUA_LIB_SHARED} ${MV} ${STAGEDIR}${PREFIX}/share/man/man1/lua.1 \ ${STAGEDIR}${PREFIX}/share/man/man1/${LUA_CMD}.1 ${MV} ${STAGEDIR}${PREFIX}/share/man/man1/luac.1 \ ${STAGEDIR}${PREFIX}/share/man/man1/${LUAC_CMD}.1 ${INSTALL_DATA} ${WRKDIR}/${LUA_PC_FILE} \ ${STAGEDIR}${PREFIX}/libdata/pkgconfig post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} (cd ${BUILD_WRKDOC} && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} '-not -name *\.1') .include diff --git a/lang/lua55/distinfo b/lang/lua55/distinfo index 3413a4a73796..0f920adb9ad5 100644 --- a/lang/lua55/distinfo +++ b/lang/lua55/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1778587320 -SHA256 (lua-5.5.0.tar.gz) = 57ccc32bbbd005cab75bcc52444052535af691789dba2b9016d5c50640d68b3d -SIZE (lua-5.5.0.tar.gz) = 396950 +TIMESTAMP = 1786089486 +SHA256 (lua-5.5.1.tar.gz) = 1c4b4068d67061f2a2231ad2b5422e77acea1487ea9890f6320af614f4373dce +SIZE (lua-5.5.1.tar.gz) = 398643 diff --git a/lang/lua55/files/extra-patch-dlopen b/lang/lua55/files/extra-patch-dlopen index edfbfce1e868..6a4bcc428ef7 100644 --- a/lang/lua55/files/extra-patch-dlopen +++ b/lang/lua55/files/extra-patch-dlopen @@ -1,42 +1,43 @@ ---- src/lua.c.orig 2025-12-15 10:44:40 UTC +--- src/lua.c.orig 2026-08-07 07:59:17 UTC +++ src/lua.c -@@ -498,18 +498,30 @@ static void lua_initreadline (lua_State *L) { +@@ -513,18 +513,29 @@ static void lua_initreadline (lua_State *L) { #include static void lua_initreadline (lua_State *L) { + union { + void *ptr; + l_readlineT rlfunc; + l_addhistT ahfunc; + char **rlnamevar; + int *icompvar; + } u; + - void *lib = dlopen(LUA_READLINELIB, RTLD_NOW | RTLD_LOCAL); -- if (lib == NULL) -+ if (lib == NULL) { - lua_warning(L, "library '" LUA_READLINELIB "' not found", 0); -- else { + const char *rllib = l_getenv(LUA_RLLIB_VAR); /* name of readline library */ + void *lib; /* library handle */ + if (rllib == NULL) /* no environment variable? */ + rllib = LUA_READLINELIB; /* use default name */ + lib = dlopen(rllib, RTLD_NOW | RTLD_LOCAL); + if (lib != NULL) { - const char **name = cast(const char**, dlsym(lib, "rl_readline_name")); - if (name != NULL) - *name = "lua"; - l_readline = cast(l_readlineT, cast_func(dlsym(lib, "readline"))); - l_addhist = cast(l_addhistT, cast_func(dlsym(lib, "add_history"))); -- if (l_readline == NULL) -- lua_warning(L, "unable to load 'readline'", 0); -+ return; +- if (l_readline != NULL) /* could load readline function? */ ++ u.ptr = dlsym(lib, "readline"); ++ l_readline = u.rlfunc; ++ u.ptr = dlsym(lib, "add_history"); ++ l_addhist = u.ahfunc; ++ if ((u.ptr = dlsym(lib, "rl_readline_name"))) ++ *u.rlnamevar = "lua"; ++ if ((u.ptr = dlsym(lib, "rl_inhibit_completion"))) ++ *u.icompvar = 1; ++ if (l_readline != NULL) + return; /* everything ok */ + /* else emit a warning */ } -+ -+ u.ptr = dlsym(lib, "readline"); -+ l_readline = u.rlfunc; -+ u.ptr = dlsym(lib, "add_history"); -+ l_addhist = u.ahfunc; -+ if ((u.ptr = dlsym(lib, "rl_readline_name"))) -+ *u.rlnamevar = "lua"; -+ if ((u.ptr = dlsym(lib, "rl_inhibit_completion"))) -+ *u.icompvar = 1; -+ if (l_readline == NULL) -+ lua_warning(L, "unable to load 'readline' from dynamic library", 0); +@@ -791,4 +802,3 @@ int main (int argc, char **argv) { + lua_close(L); + return (result && status == LUA_OK) ? EXIT_SUCCESS : EXIT_FAILURE; } - - #else /* }{ */ +-