* [Buildroot] [PATCH 0/1] [RFC] re-add lua 5.2.4
@ 2026-04-10 1:43 Sen Hastings
2026-04-10 1:43 ` [Buildroot] [PATCH 1/1] package/lua: " Sen Hastings
2026-04-11 8:10 ` [Buildroot] [PATCH 0/1] [RFC] " François Perrad via buildroot
0 siblings, 2 replies; 3+ messages in thread
From: Sen Hastings @ 2026-04-10 1:43 UTC (permalink / raw)
To: buildroot; +Cc: Mahyar Koshkouei, Sen Hastings
I'm caught a bit between a rock and a hard place,
I want to use the simplefb (https://codeberg.org/gnarz/simplefb) library
with mpv, however simplefb needs lua 5.2 (or later with slight modification)
and cannot be easily backported to 5.1.
mpv of course only supports 5.2, 5.1 or luajit.
Porting mpv to lua 5.3 or newer would be pretty unwise, the mpv maintainers
have made it very clear it would break stuff (internally & externally)
and they are very uninterested in changing it, see:
https://github.com/mpv-player/mpv/wiki/FAQ#why-does-mpv-not-support-lua-53-or-newer
https://github.com/mpv-player/mpv/issues/9225
The least painful solution to my problem I can think of is re-adding lua 5.2
support to buildroot, basically entirely for the benefit of mpv.
It's very unlikely mpv will *ever* support a newer version of lua.
Any objections? It seems like we are still supporting lua 5.1 for legacy reasons,
and I am happy to maintain this.
Sen Hastings (1):
package/lua: re-add lua 5.2.4
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
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH 1/1] package/lua: re-add lua 5.2.4
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
2026-04-11 8:10 ` [Buildroot] [PATCH 0/1] [RFC] " François Perrad via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Sen Hastings @ 2026-04-10 1:43 UTC (permalink / raw)
To: buildroot; +Cc: Mahyar Koshkouei, Sen Hastings
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH 0/1] [RFC] re-add lua 5.2.4
2026-04-10 1:43 [Buildroot] [PATCH 0/1] [RFC] re-add lua 5.2.4 Sen Hastings
2026-04-10 1:43 ` [Buildroot] [PATCH 1/1] package/lua: " Sen Hastings
@ 2026-04-11 8:10 ` François Perrad via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: François Perrad via buildroot @ 2026-04-11 8:10 UTC (permalink / raw)
To: Sen Hastings, buildroot; +Cc: Mahyar Koshkouei
[-- Attachment #1.1: Type: text/plain, Size: 3152 bytes --]
Le ven. 10 avr. 2026 à 03:44, Sen Hastings <sen@hastings.org> a écrit :
> I'm caught a bit between a rock and a hard place,
> I want to use the simplefb (https://codeberg.org/gnarz/simplefb) library
> with mpv, however simplefb needs lua 5.2 (or later with slight
> modification)
> and cannot be easily backported to 5.1.
>
There are few incompatibility between C/API Lua versions.
It is easy to write a compatible code for simplefb.
The following patch does the job, compatible from Lua 5.1 to Lua 5.5.
So, Lua 5.2 is not needed.
François
---
lsimplefb.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/lsimplefb.c b/lsimplefb.c
index 5efcf11..9e19d4e 100644
--- a/lsimplefb.c
+++ b/lsimplefb.c
@@ -11,6 +11,16 @@
#include "lua.h"
#include "lauxlib.h"
+#if LUA_VERSION_NUM < 502
+#define luaL_setfuncs(L,l,n) luaL_register(L, NULL, (l))
+#endif
+
+#if LUA_VERSION_NUM != 502
+#define luaL_checkunsigned luaL_checkinteger
+#define luaL_optunsigned luaL_optinteger
+#define lua_pushunsigned lua_pushinteger
+#endif
+
#include "simplefb.h"
#define VERSION 0.1
@@ -533,7 +543,11 @@ static const struct luaL_Reg fbL_functions [] ={
*/
int luaopen_simplefb(lua_State *L)
{
+#if LUA_VERSION_NUM >= 502
luaL_newlib(L, fbL_functions);
+#else
+ luaL_register(L, "simplefb", fbL_functions);
+#endif
lua_pushliteral(L, "_VERSION");
lua_pushnumber(L, VERSION);
--
2.48.1
> mpv of course only supports 5.2, 5.1 or luajit.
> Porting mpv to lua 5.3 or newer would be pretty unwise, the mpv maintainers
> have made it very clear it would break stuff (internally & externally)
> and they are very uninterested in changing it, see:
>
> https://github.com/mpv-player/mpv/wiki/FAQ#why-does-mpv-not-support-lua-53-or-newer
> https://github.com/mpv-player/mpv/issues/9225
>
> The least painful solution to my problem I can think of is re-adding lua
> 5.2
> support to buildroot, basically entirely for the benefit of mpv.
> It's very unlikely mpv will *ever* support a newer version of lua.
>
> Any objections? It seems like we are still supporting lua 5.1 for legacy
> reasons,
> and I am happy to maintain this.
>
> Sen Hastings (1):
> package/lua: re-add lua 5.2.4
>
> 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
>
> --
> 2.43.0
>
>
[-- Attachment #1.2: Type: text/html, Size: 4431 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-04-11 8:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-10 1:43 [Buildroot] [PATCH 0/1] [RFC] re-add lua 5.2.4 Sen Hastings
2026-04-10 1:43 ` [Buildroot] [PATCH 1/1] package/lua: " Sen Hastings
2026-04-11 8:10 ` [Buildroot] [PATCH 0/1] [RFC] " François Perrad via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox