public inbox for buildroot@busybox.net
 help / color / mirror / Atom feed
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

  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