lua: revert r15108 & r15109

SVN-Revision: 15256
v19.07.3_mercusys_ac12_duma
Jo-Philipp Wich 15 years ago
parent a9f97c3def
commit 98e70367c9

@ -1,5 +1,5 @@
#
# Copyright (C) 2006-2009 OpenWrt.org
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=lua
PKG_VERSION:=5.1.4
PKG_RELEASE:=4
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
@ -18,10 +18,6 @@ PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
http://www.tecgraf.puc-rio.br/lua/ftp/
PKG_MD5SUM:=d0870f2de55d59c1c8419f36e8fac150
HOST_PATCH_DIR=./patches-host
PKG_BUILD_DEPENDS:=lua/host zlib
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
define Package/lua/Default
@ -84,21 +80,9 @@ $(call Package/lua/Default/description)
This package contains LUA language examples.
endef
# Host build
define Host/Configure
endef
define Host/Compile
$(MAKE) -C $(HOST_BUILD_DIR)/src luac-host
define Build/Configure
endef
define Host/Install
$(INSTALL_BIN) $(HOST_BUILD_DIR)/src/luac-host $(STAGING_DIR_HOST)/bin/luac
endef
# Target build
TARGET_CFLAGS += -DLUA_USE_LINUX $(FPIC)
ifneq ($(CONFIG_USE_EGLIBC),)
@ -107,8 +91,6 @@ ifneq ($(CONFIG_USE_EGLIBC),)
endif
endif
Build/Configure=$(Host/Configure)
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
CC="$(TARGET_CROSS)gcc" \
@ -157,7 +139,6 @@ define Package/lua-examples/install
$(1)/usr/share/lua/examples/
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,liblua))
$(eval $(call BuildPackage,lua))
$(eval $(call BuildPackage,luac))

@ -1,136 +0,0 @@
diff -ur lua-5.1.4.orig/src/Makefile lua-5.1.4/src/Makefile
--- lua-5.1.4.orig/src/Makefile 2009-04-04 23:06:04.000000000 +0200
+++ lua-5.1.4/src/Makefile 2009-04-04 23:06:15.000000000 +0200
@@ -12,7 +12,7 @@
AR= ar rcu
RANLIB= ranlib
RM= rm -f
-LIBS= -lm $(MYLIBS)
+LIBS= -lm -lz $(MYLIBS)
MYCFLAGS=
MYLDFLAGS=
diff -ur lua-5.1.4.orig/src/lauxlib.c lua-5.1.4/src/lauxlib.c
--- lua-5.1.4.orig/src/lauxlib.c 2009-04-04 23:06:04.000000000 +0200
+++ lua-5.1.4/src/lauxlib.c 2009-04-05 03:35:24.000000000 +0200
@@ -11,6 +11,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <zlib.h>
/* This file uses only the official API of Lua.
@@ -535,6 +536,12 @@
char buff[LUAL_BUFFERSIZE];
} LoadF;
+typedef struct LoadGZ {
+ int first_chunk;
+ gzFile f;
+ char buffer[LUAL_GZLDBUFFER];
+} LoadGZ;
+
static const char *getF (lua_State *L, void *ud, size_t *size) {
LoadF *lf = (LoadF *)ud;
@@ -550,6 +557,28 @@
}
+static const char *getGZ (lua_State *L, void *ud, size_t *size) {
+ LoadGZ *lf = (LoadGZ *)ud;
+ char *sp = 0;
+ (void)L;
+ if (gzeof(lf->f)) return NULL;
+ *size = gzread(lf->f, lf->buffer, sizeof(lf->buffer));
+ if (*size > 0) {
+ if (lf->first_chunk) {
+ lf->first_chunk = 0;
+ if ((lf->buffer[0] == '#') && (lf->buffer[1] == '!') &&
+ (sp=strstr(lf->buffer, "\n")) != NULL)
+ {
+ *size -= ((uint)sp - (uint)lf->buffer);
+ return sp;
+ }
+ }
+ return lf->buffer;
+ }
+ return NULL;
+}
+
+
static int errfile (lua_State *L, const char *what, int fnameindex) {
const char *serr = strerror(errno);
const char *filename = lua_tostring(L, fnameindex) + 1;
@@ -560,6 +589,31 @@
LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {
+ if ((filename != NULL) && strstr(filename, ".lua.gz")) {
+ return luaL_loadfile_gzip(L, filename);
+ }
+ else {
+ return luaL_loadfile_plain(L, filename);
+ }
+}
+
+
+LUALIB_API int luaL_loadfile_gzip (lua_State *L, const char *filename) {
+ LoadGZ gzf;
+ int status;
+ int fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */
+ lua_pushfstring(L, "@%s", filename);
+ gzf.f = gzopen(filename, "r");
+ gzf.first_chunk = 1;
+ if (gzf.f == Z_NULL) return errfile(L, "open", fnameindex);
+ status = lua_load(L, getGZ, &gzf, lua_tostring(L, -1));
+ (void)gzclose(gzf.f);
+ lua_remove(L, fnameindex);
+ return status;
+}
+
+
+LUALIB_API int luaL_loadfile_plain (lua_State *L, const char *filename) {
LoadF lf;
int status, readstatus;
int c;
diff -ur lua-5.1.4.orig/src/lauxlib.h lua-5.1.4/src/lauxlib.h
--- lua-5.1.4.orig/src/lauxlib.h 2009-04-04 23:06:04.000000000 +0200
+++ lua-5.1.4/src/lauxlib.h 2009-04-04 23:06:15.000000000 +0200
@@ -81,6 +81,8 @@
LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref);
LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename);
+LUALIB_API int (luaL_loadfile_gzip) (lua_State *L, const char *filename);
+LUALIB_API int (luaL_loadfile_plain) (lua_State *L, const char *filename);
LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz,
const char *name);
LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s);
diff -ur lua-5.1.4.orig/src/luaconf.h lua-5.1.4/src/luaconf.h
--- lua-5.1.4.orig/src/luaconf.h 2009-04-04 23:06:04.000000000 +0200
+++ lua-5.1.4/src/luaconf.h 2009-04-04 23:27:20.000000000 +0200
@@ -101,7 +101,9 @@
#define LUA_CDIR LUA_ROOT "lib/lua/5.1/"
#define LUA_PATH_DEFAULT \
"./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
- LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua"
+ LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \
+ "./?.lua.gz;" LUA_LDIR"?.lua.gz;" LUA_LDIR"?/init.lua.gz;" \
+ LUA_CDIR"?.lua.gz;" LUA_CDIR"?/init.lua.gz"
#define LUA_CPATH_DEFAULT \
"./?.so;" LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
#endif
@@ -506,6 +508,12 @@
*/
#define LUAL_BUFFERSIZE BUFSIZ
+
+/*
+@@ LUAL_GZLDBUFFER is the buffer size used by the gzip source loader.
+*/
+#define LUAL_GZLDBUFFER 8192
+
/* }================================================================== */

@ -6,8 +6,8 @@ Index: lua-5.1.4/src/Makefile
AR= ar rcu
RANLIB= ranlib
RM= rm -f
-LIBS= -lm -lz $(MYLIBS)
+LIBS= -lm -lz -lcrypt $(MYLIBS)
-LIBS= -lm $(MYLIBS)
+LIBS= -lm -lcrypt $(MYLIBS)
MYCFLAGS=
MYLDFLAGS=

Loading…
Cancel
Save