From 7b3dc5c37093b79a3f68855462414617e3ebc002 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Fri, 16 Jan 2015 22:09:50 +0100 Subject: [PATCH] lua: add 5.3.x serie Signed-off-by: Francois Perrad Signed-off-by: Peter Korsgaard --- package/lua/5.3.0/0001-root-path.patch | 17 ++++ .../lua/5.3.0/0002-shared-libs-for-lua.patch | 78 +++++++++++++++++++ package/lua/5.3.0/0004-lua-pc.patch | 40 ++++++++++ package/lua/5.3.0/0011-linenoise.patch | 26 +++++++ package/lua/Config.in | 4 + package/lua/lua.mk | 15 +++- package/luarocks/luarocks.mk | 6 +- 7 files changed, 182 insertions(+), 4 deletions(-) create mode 100644 package/lua/5.3.0/0001-root-path.patch create mode 100644 package/lua/5.3.0/0002-shared-libs-for-lua.patch create mode 100644 package/lua/5.3.0/0004-lua-pc.patch create mode 100644 package/lua/5.3.0/0011-linenoise.patch diff --git a/package/lua/5.3.0/0001-root-path.patch b/package/lua/5.3.0/0001-root-path.patch new file mode 100644 index 0000000000..660bc15f32 --- /dev/null +++ b/package/lua/5.3.0/0001-root-path.patch @@ -0,0 +1,17 @@ +Adjust installation location to /usr. + +Signed-off-by: Francois Perrad + +Index: b/src/luaconf.h +=================================================================== +--- a/src/luaconf.h ++++ b/src/luaconf.h +@@ -175,7 +175,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 "/" + #define LUA_PATH_DEFAULT \ diff --git a/package/lua/5.3.0/0002-shared-libs-for-lua.patch b/package/lua/5.3.0/0002-shared-libs-for-lua.patch new file mode 100644 index 0000000000..493828c9da --- /dev/null +++ b/package/lua/5.3.0/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 + +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 bsd c89 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.3.0/0004-lua-pc.patch b/package/lua/5.3.0/0004-lua-pc.patch new file mode 100644 index 0000000000..d3129d703c --- /dev/null +++ b/package/lua/5.3.0/0004-lua-pc.patch @@ -0,0 +1,40 @@ +add lua.pc + +Signed-off-by: Francois Perrad + +Index: b/etc/lua.pc +=================================================================== +--- /dev/null ++++ b/etc/lua.pc +@@ -0,0 +1,31 @@ ++# lua.pc -- pkg-config data for Lua ++ ++# vars from install Makefile ++ ++# grep '^V=' ../Makefile ++V= 5.3 ++# grep '^R=' ../Makefile ++R= 5.3.0 ++ ++# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/' ++prefix= /usr ++INSTALL_BIN= ${prefix}/bin ++INSTALL_INC= ${prefix}/include ++INSTALL_LIB= ${prefix}/lib ++INSTALL_MAN= ${prefix}/man/man1 ++INSTALL_LMOD= ${prefix}/share/lua/${V} ++INSTALL_CMOD= ${prefix}/lib/lua/${V} ++ ++# canonical vars ++exec_prefix=${prefix} ++libdir=${exec_prefix}/lib ++includedir=${prefix}/include ++ ++Name: Lua ++Description: An Extensible Extension Language ++Version: ${R} ++Requires: ++Libs: -L${libdir} -llua -lm ++Cflags: -I${includedir} ++ ++# (end of lua.pc) diff --git a/package/lua/5.3.0/0011-linenoise.patch b/package/lua/5.3.0/0011-linenoise.patch new file mode 100644 index 0000000000..b2e56955d9 --- /dev/null +++ b/package/lua/5.3.0/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 + +Index: b/src/lua.c +=================================================================== +--- a/src/lua.c ++++ b/src/lua.c +@@ -85,6 +85,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 ++#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)) ++ + #else /* }{ */ + + #define lua_readline(L,b,p) \ diff --git a/package/lua/Config.in b/package/lua/Config.in index 0e318585cd..dde999f2c8 100644 --- a/package/lua/Config.in +++ b/package/lua/Config.in @@ -23,11 +23,15 @@ choice config BR2_PACKAGE_LUA_5_2 bool "Lua 5.2.x" + config BR2_PACKAGE_LUA_5_3 + bool "Lua 5.3.x" + endchoice config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION default "5.1" if BR2_PACKAGE_LUA_5_1 default "5.2" if BR2_PACKAGE_LUA_5_2 + default "5.3" if BR2_PACKAGE_LUA_5_3 choice prompt "Lua command-line editing" diff --git a/package/lua/lua.mk b/package/lua/lua.mk index f1164ecaa3..0e30186ebf 100644 --- a/package/lua/lua.mk +++ b/package/lua/lua.mk @@ -4,11 +4,15 @@ # ################################################################################ +ifeq ($(BR2_PACKAGE_LUA_5_3),y) +LUA_VERSION = 5.3.0 +else ifeq ($(BR2_PACKAGE_LUA_5_2),y) LUA_VERSION = 5.2.3 else LUA_VERSION = 5.1.5 endif +endif LUA_SITE = http://www.lua.org/ftp LUA_INSTALL_STAGING = YES LUA_LICENSE = MIT @@ -23,10 +27,11 @@ LUA_PROVIDES = luainterpreter LUA_CFLAGS = -Wall -fPIC -DLUA_USE_POSIX ifeq ($(BR2_PACKAGE_LUA_5_2),y) -LUA_CFLAGS += -DLUA_COMPAT_ALL -ifneq ($(BR2_LARGEFILE),y) -LUA_CFLAGS += -D_FILE_OFFSET_BITS=32 + LUA_CFLAGS += -DLUA_COMPAT_ALL endif + +ifeq ($(BR2_PACKAGE_LUA_5_3),y) + LUA_CFLAGS += -DLUA_COMPAT_5_2 endif ifeq ($(BR2_STATIC_LIBS),y) @@ -49,6 +54,10 @@ ifeq ($(BR2_PACKAGE_LUA_LINENOISE),y) endif endif +ifneq ($(BR2_LARGEFILE),y) + LUA_CFLAGS += -D_FILE_OFFSET_BITS=32 +endif + # We never want to have host-readline and host-ncurses as dependencies # of host-lua. HOST_LUA_DEPENDENCIES = diff --git a/package/luarocks/luarocks.mk b/package/luarocks/luarocks.mk index 44bd520fa9..40fdc9122a 100644 --- a/package/luarocks/luarocks.mk +++ b/package/luarocks/luarocks.mk @@ -13,6 +13,10 @@ HOST_LUAROCKS_DEPENDENCIES = host-luainterpreter LUAROCKS_CONFIG_DIR = $(HOST_DIR)/usr/etc/luarocks LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/config-$(LUAINTERPRETER_ABIVER).lua +LUAROCKS_CFLAGS = $(TARGET_CFLAGS) -fPIC +ifeq ($(BR2_PACKAGE_LUA_5_3),y) + LUAROCKS_CFLAGS += -DLUA_COMPAT_5_2 +endif HOST_LUAROCKS_CONF_OPTS = \ --prefix=$(HOST_DIR)/usr \ @@ -37,7 +41,7 @@ define HOST_LUAROCKS_INSTALL_CMDS echo " LUA_LIBDIR = [[$(STAGING_DIR)/usr/lib]]," >> $(LUAROCKS_CONFIG_FILE) echo " CC = [[$(TARGET_CC)]]," >> $(LUAROCKS_CONFIG_FILE) echo " LD = [[$(TARGET_CC)]]," >> $(LUAROCKS_CONFIG_FILE) - echo " CFLAGS = [[$(TARGET_CFLAGS) -fPIC]]," >> $(LUAROCKS_CONFIG_FILE) + echo " CFLAGS = [[$(LUAROCKS_CFLAGS)]]," >> $(LUAROCKS_CONFIG_FILE) echo " LIBFLAG = [[-shared $(TARGET_LDFLAGS)]]," >> $(LUAROCKS_CONFIG_FILE) echo "}" >> $(LUAROCKS_CONFIG_FILE) echo "external_deps_dirs = { [[$(STAGING_DIR)/usr]] }" >> $(LUAROCKS_CONFIG_FILE) -- 2.30.2