From: Sen Hastings <sen@hastings.org>
To: buildroot@buildroot.org
Cc: Mahyar Koshkouei <mahyar.koshkouei@gmail.com>,
Sen Hastings <sen@hastings.org>
Subject: [Buildroot] [PATCH 1/1] package/lua: re-add lua 5.2.4
Date: Thu, 9 Apr 2026 18:43:09 -0700 [thread overview]
Message-ID: <20260410014309.18115-3-sen@hastings.org> (raw)
In-Reply-To: <20260410014309.18115-2-sen@hastings.org>
This patch basically reverts
https://lore.kernel.org/buildroot/20181209201557.77C178B686@busybox.osuosl.org/
while adopting the slight changes made to buildroots lua build
infrastructure since 2018.
Signed-off-by: Sen Hastings <sen@hastings.org>
---
Config.in.legacy | 10 +--
package/lua/5.2.4/0001-root-path.patch | 17 ++++
.../lua/5.2.4/0002-shared-libs-for-lua.patch | 78 +++++++++++++++++++
package/lua/5.2.4/0011-linenoise.patch | 26 +++++++
package/lua/5.2.4/lua.hash | 2 +
package/lua/Config.in | 7 +-
package/lua/lua.mk | 6 +-
package/luainterpreter/Config.in | 4 +
package/mpv/mpv.mk | 2 +-
9 files changed, 144 insertions(+), 8 deletions(-)
create mode 100644 package/lua/5.2.4/0001-root-path.patch
create mode 100644 package/lua/5.2.4/0002-shared-libs-for-lua.patch
create mode 100644 package/lua/5.2.4/0011-linenoise.patch
create mode 100644 package/lua/5.2.4/lua.hash
diff --git a/Config.in.legacy b/Config.in.legacy
index 518251c816..0051ac1bde 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -4201,11 +4201,11 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD
This option has been removed in favor of
BR2_PACKAGE_FFTW_QUAD.
-config BR2_PACKAGE_LUA_5_2
- bool "Lua 5.2.x version removed"
- select BR2_LEGACY
- help
- The Lua 5.2.x version was removed.
+#config BR2_PACKAGE_LUA_5_2
+# bool "Lua 5.2.x version removed"
+# select BR2_LEGACY
+# help
+# The Lua 5.2.x version was removed.
# Note: BR2_PACKAGE_LUA_5_2 is still referenced from package/lua/Config.in
config BR2_TARGET_GENERIC_PASSWD_MD5
diff --git a/package/lua/5.2.4/0001-root-path.patch b/package/lua/5.2.4/0001-root-path.patch
new file mode 100644
index 0000000000..c6f242c20e
--- /dev/null
+++ b/package/lua/5.2.4/0001-root-path.patch
@@ -0,0 +1,17 @@
+Adjust installation location to /usr.
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/src/luaconf.h
+===================================================================
+--- a/src/luaconf.h
++++ b/src/luaconf.h
+@@ -100,7 +100,7 @@
+ #else /* }{ */
+
+ #define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/"
+-#define LUA_ROOT "/usr/local/"
++#define LUA_ROOT "/usr/"
+ #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR
+ #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR
+ #define LUA_PATH_DEFAULT \
diff --git a/package/lua/5.2.4/0002-shared-libs-for-lua.patch b/package/lua/5.2.4/0002-shared-libs-for-lua.patch
new file mode 100644
index 0000000000..3cf3b24848
--- /dev/null
+++ b/package/lua/5.2.4/0002-shared-libs-for-lua.patch
@@ -0,0 +1,78 @@
+Add the compilation of a shared library.
+Compile the lua binary with the shared library.
+And install the shared library.
+The variable BUILDMODE allows to switch between static and dynamic mode.
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -42,6 +42,7 @@
+ TO_BIN= lua luac
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
+ TO_LIB= liblua.a
++TO_SOLIB = liblua.so.$(R)
+ TO_MAN= lua.1 luac.1
+
+ # Lua version and release.
+@@ -60,6 +61,8 @@
+ install: dummy
+ cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
+ cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
++ test -f src/$(TO_SOLIB) && cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) || :
++ test -f src/$(TO_SOLIB) && ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so || :
+ cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+ cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+ cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
+Index: b/src/Makefile
+===================================================================
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -29,6 +29,7 @@
+ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+
+ LUA_A= liblua.a
++LUA_SO= liblua.so
+ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
+ lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
+ ltm.o lundump.o lvm.o lzio.o
+@@ -43,8 +44,13 @@
+ LUAC_O= luac.o
+
+ ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
++ifneq (dynamic,$(BUILDMODE))
+ ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
++else
++ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T)
++endif
+ ALL_A= $(LUA_A)
++ALL_SO= $(LUA_SO)
+
+ # Targets start here.
+ default: $(PLAT)
+@@ -55,12 +61,23 @@
+
+ a: $(ALL_A)
+
++so: $(ALL_SO)
++
+ $(LUA_A): $(BASE_O)
+ $(AR) $@ $(BASE_O)
+ $(RANLIB) $@
+
++$(LUA_SO): $(CORE_O) $(LIB_O)
++ $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $?
++ ln -fs $@.$(PKG_VERSION) $@
++
++ifneq (dynamic,$(BUILDMODE))
+ $(LUA_T): $(LUA_O) $(LUA_A)
+ $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
++else
++$(LUA_T): $(LUA_O) $(LUA_SO)
++ $(CC) -o $@ -L. $(LDFLAGS) $(LUA_O) -llua $(LIBS)
++endif
+
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
+ $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
diff --git a/package/lua/5.2.4/0011-linenoise.patch b/package/lua/5.2.4/0011-linenoise.patch
new file mode 100644
index 0000000000..b1f228cd49
--- /dev/null
+++ b/package/lua/5.2.4/0011-linenoise.patch
@@ -0,0 +1,26 @@
+Add support of linenoise (replace readline)
+
+see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/src/lua.c
+===================================================================
+--- a/src/lua.c
++++ b/src/lua.c
+@@ -72,6 +72,15 @@
+ add_history(lua_tostring(L, idx)); /* add it to history */
+ #define lua_freeline(L,b) ((void)L, free(b))
+
++#elif defined(LUA_USE_LINENOISE)
++
++#include <linenoise.h>
++#define lua_readline(L,b,p) ((void)L, ((b)=linenoise(p)) != NULL)
++#define lua_saveline(L,idx) \
++ if (lua_rawlen(L,idx) > 0) /* non-empty line? */ \
++ linenoiseHistoryAdd(lua_tostring(L, idx)); /* add it to history */
++#define lua_freeline(L,b) ((void)L, free(b))
++
+ #elif !defined(lua_readline)
+
+ #define lua_readline(L,b,p) \
diff --git a/package/lua/5.2.4/lua.hash b/package/lua/5.2.4/lua.hash
new file mode 100644
index 0000000000..8b8bed6f24
--- /dev/null
+++ b/package/lua/5.2.4/lua.hash
@@ -0,0 +1,2 @@
+md5 913fdb32207046b273fdb17aad70be13 lua-5.2.4.tar.gz
+sha1 ef15259421197e3d85b7d6e4871b8c26fd82c1cf lua-5.2.4.tar.gz
diff --git a/package/lua/Config.in b/package/lua/Config.in
index 888c34b21d..97d782c5ed 100644
--- a/package/lua/Config.in
+++ b/package/lua/Config.in
@@ -14,7 +14,8 @@ config BR2_PACKAGE_PROVIDES_LUAINTERPRETER
choice
prompt "Lua Version"
- default BR2_PACKAGE_LUA_5_3 if BR2_PACKAGE_LUA_5_2 # legacy
+ default BR2_PACKAGE_LUA_5_2
+ default BR2_PACKAGE_LUA_5_3
default BR2_PACKAGE_LUA_5_4
help
Select the version of Lua API/ABI you wish to use.
@@ -25,6 +26,10 @@ config BR2_PACKAGE_LUA_5_1
select BR2_PACKAGE_LUA_CVT_N2S
select BR2_PACKAGE_LUA_CVT_S2N
+config BR2_PACKAGE_LUA_5_2
+ bool "Lua 5.2.x"
+ select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_2
+
config BR2_PACKAGE_LUA_5_3
bool "Lua 5.3.x"
select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_3
diff --git a/package/lua/lua.mk b/package/lua/lua.mk
index 269eafe4bb..09b79c53c5 100644
--- a/package/lua/lua.mk
+++ b/package/lua/lua.mk
@@ -8,13 +8,15 @@ ifeq ($(BR2_PACKAGE_LUA_5_4),y)
LUA_VERSION = 5.4.8
else ifeq ($(BR2_PACKAGE_LUA_5_3),y)
LUA_VERSION = 5.3.6
+else ifeq ($(BR2_PACKAGE_LUA_5_2),y)
+LUA_VERSION = 5.2.4
else
LUA_VERSION = 5.1.5
endif
LUA_SITE = https://www.lua.org/ftp
LUA_INSTALL_STAGING = YES
LUA_LICENSE = MIT
-ifeq ($(BR2_PACKAGE_LUA_5_3)$(BR2_PACKAGE_LUA_5_4),y)
+ifeq ($(BR2_PACKAGE_LUA_5_2)$(BR2_PACKAGE_LUA_5_3)$(BR2_PACKAGE_LUA_5_4),y)
LUA_LICENSE_FILES = doc/readme.html
else
LUA_LICENSE_FILES = COPYRIGHT
@@ -35,6 +37,8 @@ ifeq ($(BR2_PACKAGE_LUA_5_4),y)
LUA_CFLAGS += -DLUA_COMPAT_5_3
else ifeq ($(BR2_PACKAGE_LUA_5_3),y)
LUA_CFLAGS += -DLUA_COMPAT_5_2
+else ifeq ($(BR2_PACKAGE_LUA_5_2),y)
+LUA_CFLAGS += -DLUA_COMPAT_ALL
endif
ifeq ($(BR2_PACKAGE_LUA_CVT_N2S),)
diff --git a/package/luainterpreter/Config.in b/package/luainterpreter/Config.in
index 873fb345b9..6f4f0d76ab 100644
--- a/package/luainterpreter/Config.in
+++ b/package/luainterpreter/Config.in
@@ -8,12 +8,16 @@ config BR2_PACKAGE_PROVIDES_LUAINTERPRETER
config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION
string
default "5.1" if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1
+ default "5.2" if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_2
default "5.3" if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_3
default "5.4" if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_4
config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1
bool
+config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_2
+ bool
+
config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_3
bool
diff --git a/package/mpv/mpv.mk b/package/mpv/mpv.mk
index 29d4ebfaf7..24923c8136 100644
--- a/package/mpv/mpv.mk
+++ b/package/mpv/mpv.mk
@@ -128,7 +128,7 @@ endif
# LUA support, only for lua51/lua52/luajit
# This enables the controller (OSD) together with libass
-ifeq ($(BR2_PACKAGE_LUA_5_1)$(BR2_PACKAGE_LUAJIT),y)
+ifeq ($(BR2_PACKAGE_LUA_5_1)$(BR2_PACKAGE_LUA_5_2)$(BR2_PACKAGE_LUAJIT),y)
MPV_CONF_OPTS += -Dlua=enabled
MPV_DEPENDENCIES += luainterpreter
else
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2026-04-10 1:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-10 1:43 [Buildroot] [PATCH 0/1] [RFC] re-add lua 5.2.4 Sen Hastings
2026-04-10 1:43 ` Sen Hastings [this message]
2026-04-11 8:10 ` François Perrad via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260410014309.18115-3-sen@hastings.org \
--to=sen@hastings.org \
--cc=buildroot@buildroot.org \
--cc=mahyar.koshkouei@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox