haserl: uptate to 0.9.32, add optional lua support

This patch updates haserl to version 0.9.32 and introduces optional lua support
See http://haserl.sourceforge.net/manpage.html#lbAM

Note: to implement lua support I had to change build process slightly to
get rid of host precompilation of lua script. I decided to patch existing
Makefile.in instead of patching Makefile.am and regenerating everything
from scratch.  If this approach is wrong and it's better to patch Makefile.am,
please let me know.

Signed-off-by: Maxim Storchak <m.storchak@gmail.com>
[florian: fix missing quote after source]
Signed-off-by: Florian Fainelli <florian@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/packages@40702 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
florian 2014-05-05 19:31:06 +00:00
parent 502c47bb5a
commit 3cfbab7ce5
4 changed files with 145 additions and 2 deletions

35
utils/haserl/Config.in Normal file
View File

@ -0,0 +1,35 @@
if PACKAGE_haserl
config HASERL_with_lua
bool
default n
comment "Lua support"
config HASERL_shell_luac
bool
prompt "Support --shell=luac"
select HASERL_with_lua
default n
help
haserl(1):
The luac "shell" is a precompiled lua chunk, so interactive
editing and testing of scripts is not possible. However,
haserl can be compiled with luac support only, and this
allows lua support even in a small memory environment. All
haserl lua features listed above are still available. (If
luac is the only shell built into haserl, the
haserl.loadfile is disabled, as the haserl parser is not
compiled in.)
config HASERL_shell_lua
bool
prompt "Support --shell=lua"
select HASERL_with_lua
default n
help
haserl(1):
If compiled with lua support, --shell=lua will enable lua as the
script language instead of bash shell.
endif

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=haserl
PKG_VERSION:=0.9.29
PKG_VERSION:=0.9.32
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/haserl
PKG_MD5SUM:=4cac9409530200b4a7a82a48ec174800
PKG_MD5SUM:=18e2208aea6d772d1670c1a648bb6b77
include $(INCLUDE_DIR)/package.mk
@ -22,8 +22,25 @@ define Package/haserl
CATEGORY:=Utilities
TITLE:=A CGI wrapper to embed shell scripts in HTML documents
URL:=http://haserl.sourceforge.net/
MENU:=1
DEPENDS:= +HASERL_with_lua:liblua
endef
define Package/haserl/config
source "$(SOURCE)/Config.in"
endef
ifeq ($(CONFIG_HASERL_with_lua),y)
CONFIGURE_ARGS+=--with-lua
TARGET_LDFLAGS += -ldl
endif
ifneq ($(CONFIG_HASERL_shell_lua),y)
CONFIGURE_ARGS+=--disable-luashell
endif
ifneq ($(CONFIG_HASERL_shell_luac),y)
CONFIGURE_ARGS+=--disable-luacshell
endif
define Package/haserl/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/haserl $(1)/usr/bin/

View File

@ -0,0 +1,80 @@
--- a/src/Makefile.in 2013-09-20 23:52:15.000000000 +0300
+++ b/src/Makefile.in 2014-05-03 23:06:17.000000000 +0300
@@ -76,7 +76,6 @@
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-@USE_LUA_TRUE@noinst_PROGRAMS = lua2c$(EXEEXT)
@INCLUDE_LUASHELL_TRUE@@USE_LUA_TRUE@am__append_1 = h_lua.c h_lua.h
@INCLUDE_LUACSHELL_TRUE@@USE_LUA_TRUE@am__append_2 = h_luac.c h_luac.h
bin_PROGRAMS = haserl$(EXEEXT)
@@ -115,9 +114,6 @@
haserl_DEPENDENCIES = $(am__DEPENDENCIES_1)
haserl_LINK = $(CCLD) $(haserl_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
-lua2c_SOURCES = lua2c.c
-lua2c_OBJECTS = lua2c.$(OBJEXT)
-lua2c_LDADD = $(LDADD)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -150,8 +146,8 @@
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-SOURCES = $(haserl_SOURCES) $(nodist_haserl_SOURCES) lua2c.c
-DIST_SOURCES = $(am__haserl_SOURCES_DIST) lua2c.c
+SOURCES = $(haserl_SOURCES) $(nodist_haserl_SOURCES)
+DIST_SOURCES = $(am__haserl_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -273,7 +269,7 @@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-EXTRA_DIST = haserl_lualib.lua lua2c.c
+EXTRA_DIST = haserl_lualib.lua
# Not strictly required, but we explicitly do not distribute the generated inc file
nodist_haserl_SOURCES = haserl_lualib.inc
@@ -386,10 +382,6 @@
@rm -f haserl$(EXEEXT)
$(AM_V_CCLD)$(haserl_LINK) $(haserl_OBJECTS) $(haserl_LDADD) $(LIBS)
-@USE_LUA_FALSE@lua2c$(EXEEXT): $(lua2c_OBJECTS) $(lua2c_DEPENDENCIES) $(EXTRA_lua2c_DEPENDENCIES)
-@USE_LUA_FALSE@ @rm -f lua2c$(EXEEXT)
-@USE_LUA_FALSE@ $(AM_V_CCLD)$(LINK) $(lua2c_OBJECTS) $(lua2c_LDADD) $(LIBS)
-
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -406,7 +398,6 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/haserl-haserl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/haserl-rfc2388.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/haserl-sliding_buffer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lua2c.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -758,17 +749,13 @@
tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
-# lua2c_LIBS ?= -llua -ldl -lm
-@USE_LUA_TRUE@lua2c_LDFLAGS ?= -Wl,-E
-@USE_LUA_TRUE@lua2c: lua2c.c
-@USE_LUA_TRUE@ $(CC_FOR_BUILD) $(CFLAGS) $(LUA_CFLAGS) $(LDFLAGS) $(lua2c_LDFLAGS) \
-@USE_LUA_TRUE@ -o $@ $^ $(LIBS) $(LUA_LIBS)
-@USE_LUA_TRUE@haserl_lualib.inc : haserl_lualib.lua lua2c
-@USE_LUA_TRUE@ if ! ./lua2c haserl_lualib haserl_lualib.lua >$@; then \
+@USE_LUA_TRUE@haserl_lualib.inc : haserl_lualib.lua
+@USE_LUA_TRUE@ if ! sed -re '/--\[\[/,/\]\]--/d; s/[[:space:]]*--.*//g; s/^[[:space:]]*//g; /^$$/d; s/ (=+) /\1/g; s/,[[:space:]]*/,/g; s/ ([()])/\1/g; s/key/k/g; s/value/v/g; s/^/"/; s/$$/\\n"/' haserl_lualib.lua >$@.tmp; then \
@USE_LUA_TRUE@ rm $@; \
@USE_LUA_TRUE@ exit 1 ;\
@USE_LUA_TRUE@ fi
+@USE_LUA_TRUE@ { echo "static const char haserl_lualib[] = "; cat $@.tmp; echo ";"; rm $@.tmp; } >$@
@USE_LUA_TRUE@h_lua_common.c : haserl_lualib.inc

View File

@ -0,0 +1,11 @@
--- a/src/h_lua_common.c 2013-09-20 23:35:19.000000000 +0300
+++ b/src/h_lua_common.c 2014-05-03 19:27:43.000000000 +0300
@@ -79,7 +79,7 @@
/* and load our haserl library */
if (luaL_loadbuffer
- (lua_vm, (const char *) &haserl_lualib, sizeof (haserl_lualib),
+ (lua_vm, (const char *) haserl_lualib, sizeof(haserl_lualib)-1,
"luascript.lua") || lua_pcall (lua_vm, 0, 0, 0))
{
die_with_message (NULL, NULL,