diff --git a/utils/haserl/Config.in b/utils/haserl/Config.in new file mode 100644 index 0000000000..e5fb90dba9 --- /dev/null +++ b/utils/haserl/Config.in @@ -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 diff --git a/utils/haserl/Makefile b/utils/haserl/Makefile new file mode 100644 index 0000000000..cdaaaec5f3 --- /dev/null +++ b/utils/haserl/Makefile @@ -0,0 +1,50 @@ +# +# Copyright (C) 2006-2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=haserl +PKG_VERSION:=0.9.33 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=@SF/haserl +PKG_MD5SUM:=a9decddb508944d56f71dd2f821e2ec5 +PKG_MAINTAINER:=Maxim Storchak + +include $(INCLUDE_DIR)/package.mk + +define Package/haserl + SECTION:=utils + 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/ +endef + +$(eval $(call BuildPackage,haserl)) diff --git a/utils/haserl/patches/100-replace-lua2c-with-sed.patch b/utils/haserl/patches/100-replace-lua2c-with-sed.patch new file mode 100644 index 0000000000..5b19fc1ec6 --- /dev/null +++ b/utils/haserl/patches/100-replace-lua2c-with-sed.patch @@ -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 + diff --git a/utils/haserl/patches/101-adjust-script-size.patch b/utils/haserl/patches/101-adjust-script-size.patch new file mode 100644 index 0000000000..a4b7d9a4db --- /dev/null +++ b/utils/haserl/patches/101-adjust-script-size.patch @@ -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,