diff options
-rw-r--r-- | contrib/package/luaposix/Makefile | 43 | ||||
-rw-r--r-- | contrib/package/luaposix/patches/200-crypt.patch | 62 |
2 files changed, 105 insertions, 0 deletions
diff --git a/contrib/package/luaposix/Makefile b/contrib/package/luaposix/Makefile new file mode 100644 index 0000000000..bcbd401860 --- /dev/null +++ b/contrib/package/luaposix/Makefile @@ -0,0 +1,43 @@ +# Copyright (C) 2008 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +# $Id$ + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luaposix +PKG_VERSION:=5.1.3 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://luaforge.net/frs/download.php/3449 +PKG_MD5SUM:=4271f321c39d0560d9fbe6ca882a67aa + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install + +include $(INCLUDE_DIR)/package.mk + +define Package/luaposix + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=LUA + TITLE:=Posix library for Lua + URL:=http://luaforge.net/projects/luaposix/ + DEPENDS:=+liblua +endef + +define Build/Configure +endef + +MAKE_FLAGS += \ + OS=Linux + +define Package/luaposix/install + $(INSTALL_DIR) $(1)/usr/lib/lua + $(CP) $(PKG_BUILD_DIR)/posix.so $(1)/usr/lib/lua +endef + +$(eval $(call BuildPackage,luaposix)) diff --git a/contrib/package/luaposix/patches/200-crypt.patch b/contrib/package/luaposix/patches/200-crypt.patch new file mode 100644 index 0000000000..6ceab55567 --- /dev/null +++ b/contrib/package/luaposix/patches/200-crypt.patch @@ -0,0 +1,62 @@ +--- a/lposix.c ++++ b/lposix.c +@@ -1016,6 +1016,29 @@ + } + #endif + ++/* ++ * XXX: GNU and BSD handle the forward declaration of crypt() in different ++ * and annoying ways (especially GNU). Declare it here just to make sure ++ * that it's there ++ */ ++char *crypt(const char *, const char *); ++ ++static int Pcrypt(lua_State *L) ++{ ++ const char *str, *salt; ++ char *res; ++ ++ str = luaL_checkstring(L, 1); ++ salt = luaL_checkstring(L, 2); ++ if (strlen(salt) < 2) ++ luaL_error(L, "not enough salt"); ++ ++ res = crypt(str, salt); ++ lua_pushstring(L, res); ++ ++ return 1; ++} ++ + static const luaL_reg R[] = + { + {"access", Paccess}, +@@ -1023,6 +1046,7 @@ + {"chdir", Pchdir}, + {"chmod", Pchmod}, + {"chown", Pchown}, ++ {"crypt", Pcrypt}, + {"ctermid", Pctermid}, + {"dirname", Pdirname}, + {"dir", Pdir}, +--- a/Makefile ++++ b/Makefile +@@ -37,8 +37,10 @@ + OS=$(shell uname) + ifeq ($(OS),Darwin) + LDFLAGS_SHARED=-bundle -undefined dynamic_lookup ++ LIBS= + else + LDFLAGS_SHARED=-shared ++ LIBS=-lcrypt + endif + + # targets +@@ -50,7 +52,7 @@ + $(LUA) test.lua + + $T: $(OBJS) +- $(CC) $(LDFLAGS) -o $@ $(LDFLAGS_SHARED) $(OBJS) ++ $(CC) $(LDFLAGS) -o $@ $(LDFLAGS_SHARED) $(OBJS) $(LIBS) + + $(OBJS): modemuncher.c + |