package/lua: add 5.4.0 version
authorFrancois Perrad <fperrad@gmail.com>
Tue, 28 Jul 2020 13:21:40 +0000 (15:21 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 8 Aug 2020 16:25:51 +0000 (18:25 +0200)
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/lua/5.4.0/0001-root-path.patch [new file with mode: 0644]
package/lua/5.4.0/0002-shared-libs-for-lua.patch [new file with mode: 0644]
package/lua/5.4.0/0011-linenoise.patch [new file with mode: 0644]
package/lua/Config.in
package/lua/lua.hash
package/lua/lua.mk
package/luainterpreter/Config.in
package/pkg-luarocks.mk

diff --git a/package/lua/5.4.0/0001-root-path.patch b/package/lua/5.4.0/0001-root-path.patch
new file mode 100644 (file)
index 0000000..588fecb
--- /dev/null
@@ -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
+@@ -227,7 +227,7 @@
+ #else                 /* }{ */
+-#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 "/"
diff --git a/package/lua/5.4.0/0002-shared-libs-for-lua.patch b/package/lua/5.4.0/0002-shared-libs-for-lua.patch
new file mode 100644 (file)
index 0000000..4ff2044
--- /dev/null
@@ -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.
+@@ -57,6 +58,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
+@@ -33,6 +33,7 @@
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline 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
+ LIB_O=        lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
+ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
+@@ -44,8 +45,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)
+@@ -56,12 +62,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.4.0/0011-linenoise.patch b/package/lua/5.4.0/0011-linenoise.patch
new file mode 100644 (file)
index 0000000..e842e5b
--- /dev/null
@@ -0,0 +1,25 @@
+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
+@@ -401,6 +401,14 @@
+ #define lua_saveline(L,line)  ((void)L, add_history(line))
+ #define lua_freeline(L,b)     ((void)L, free(b))
++#elif defined(LUA_USE_LINENOISE)
++
++#include <linenoise.h>
++#define lua_initreadline(L)   ((void)L)
++#define lua_readline(L,b,p)   ((void)L, ((b)=linenoise(p)) != NULL)
++#define lua_saveline(L,line)  ((void)L, linenoiseHistoryAdd(line))
++#define lua_freeline(L,b)     ((void)L, free(b))
++
+ #else                         /* }{ */
+ #define lua_initreadline(L)  ((void)L)
index d6ddc708e73febb93ddf94c4d0720192b1080a1d..5d4cee5d5bc2a155f9273fb40ccdf3037bbcdac3 100644 (file)
@@ -26,9 +26,13 @@ config BR2_PACKAGE_LUA_5_3
        bool "Lua 5.3.x"
        select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_3
 
+config BR2_PACKAGE_LUA_5_4
+       bool "Lua 5.4.x"
+       select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_4
+
 endchoice
 
-if BR2_PACKAGE_LUA_5_3
+if BR2_PACKAGE_LUA_5_3 || BR2_PACKAGE_LUA_5_4
 config BR2_PACKAGE_LUA_32BITS
        bool "Use 32 bit numbers"
        default y if !BR2_ARCH_IS_64
index 3e7812b7dc21f311571e0f35eb26c81d400b0aaf..ab72480e552aeb440c55fd12ecdf8bf3356a7381 100644 (file)
@@ -1,4 +1,7 @@
 # Hashes from: http://www.lua.org/ftp/
+md5 dbf155764e5d433fc55ae80ea7060b60           lua-5.4.0.tar.gz
+sha1 8cdbffa8a214a23d190d7c45f38c19518ae62e89  lua-5.4.0.tar.gz
+
 md5 4f4b4f323fd3514a68e0ab3da8ce3455           lua-5.3.5.tar.gz
 sha1 112eb10ff04d1b4c9898e121d6bdf54a81482447  lua-5.3.5.tar.gz
 
index ce75af6b023cd6c32567b3cb151051c276c6f205..ee604b612124a5dd1400b80393ffaab9f1fe28f7 100644 (file)
@@ -4,7 +4,9 @@
 #
 ################################################################################
 
-ifeq ($(BR2_PACKAGE_LUA_5_3),y)
+ifeq ($(BR2_PACKAGE_LUA_5_4),y)
+LUA_VERSION = 5.4.0
+else ifeq ($(BR2_PACKAGE_LUA_5_3),y)
 LUA_VERSION = 5.3.5
 else
 LUA_VERSION = 5.1.5
@@ -12,7 +14,7 @@ endif
 LUA_SITE = http://www.lua.org/ftp
 LUA_INSTALL_STAGING = YES
 LUA_LICENSE = MIT
-ifeq ($(BR2_PACKAGE_LUA_5_3),y)
+ifeq ($(BR2_PACKAGE_LUA_5_3)$(BR2_PACKAGE_LUA_5_4),y)
 LUA_LICENSE_FILES = doc/readme.html
 else
 LUA_LICENSE_FILES = COPYRIGHT
@@ -22,7 +24,9 @@ LUA_PROVIDES = luainterpreter
 
 LUA_CFLAGS = -Wall -fPIC -DLUA_USE_POSIX
 
-ifeq ($(BR2_PACKAGE_LUA_5_3),y)
+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
 endif
 
index d35b35ff318d28d07ec446c520763d489f8e2d50..873fb345b9e643bde6086003a6c8e44bb722d2ec 100644 (file)
@@ -9,6 +9,7 @@ config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION
        string
        default "5.1" if BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1
        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
@@ -16,6 +17,9 @@ config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1
 config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_3
        bool
 
+config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_4
+       bool
+
 config BR2_PACKAGE_PROVIDES_HOST_LUAINTERPRETER
        string
        default "host-lua"
index 603c0851b45472033a19ebe48d4409aff9ec8597..81a6cf208a56f04f5e2d4c8ccf361d521cbd4e3b 100644 (file)
@@ -23,6 +23,9 @@ HOST_LUAROCKS_CFLAGS = $(HOST_CFLAGS) -fPIC
 ifeq ($(BR2_PACKAGE_LUA_5_3),y)
 LUAROCKS_CFLAGS += -DLUA_COMPAT_5_2
 HOST_LUAROCKS_CFLAGS += -DLUA_COMPAT_5_2
+else ifeq ($(BR2_PACKAGE_LUA_5_4),y)
+LUAROCKS_CFLAGS += -DLUA_COMPAT_5_3
+HOST_LUAROCKS_CFLAGS += -DLUA_COMPAT_5_3
 endif
 
 ################################################################################