diff --git a/lang/luaposix/Makefile b/lang/luaposix/Makefile new file mode 100644 index 000000000..e82e31d42 --- /dev/null +++ b/lang/luaposix/Makefile @@ -0,0 +1,53 @@ +# +# Copyright (C) 2011 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:=luaposix +PKG_VERSION:=v31 +PKG_RELEASE:=1 + +PKG_SOURCE:=release-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/luaposix/luaposix/archive/ +PKG_MD5SUM:=a25ff76d54bbbebf7a1f3b20c9806ee3 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-release-$(PKG_VERSION) +PKG_REMOVE_FILES:=aclocal.m4 +PKG_FIXUP:=autoreconf + +include $(INCLUDE_DIR)/package.mk + +define Package/luaposix + SUBMENU:=Lua + SECTION:=lang + CATEGORY:=Languages + TITLE:=luaposix + URL:=http://luaforge.net/projects/luaposix/ + DEPENDS:=+lua +librt +luabitop + PKG_BUILD_DEPENDS:=+lua/host +endef + +define Package/luaposix/description + luaposix is a general POSIX library for Lua providing access + to various low level libc functions. +endef + +TARGET_CFLAGS += -DLUA_USE_LINUX $(FPIC) -std=gnu99 + +ifneq ($(CONFIG_USE_EGLIBC),) + ifeq ($(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),) + TARGET_CFLAGS += -DNO_GETLOGIN + endif +endif + + +define Package/luaposix/install + $(INSTALL_DIR) $(1)/usr/lib/lua + $(INSTALL_BIN) $(PKG_BUILD_DIR)/ext/posix/.libs/posix_c.so $(1)/usr/lib/lua + $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/posix.lua $(1)/usr/lib/lua +endef + +$(eval $(call BuildPackage,luaposix)) diff --git a/lang/luaposix/patches/100-eglibc-compat.patch b/lang/luaposix/patches/100-eglibc-compat.patch new file mode 100644 index 000000000..0cdff83d2 --- /dev/null +++ b/lang/luaposix/patches/100-eglibc-compat.patch @@ -0,0 +1,28 @@ +--- a/ext/posix/posix.c ++++ b/ext/posix/posix.c +@@ -1970,6 +1970,7 @@ static int Pctermid(lua_State *L) + return 1; + } + ++#ifndef NO_GETLOGIN + /*** + Current logged-in user. + @see getlogin(3) +@@ -1980,6 +1981,7 @@ static int Pgetlogin(lua_State *L) + lua_pushstring(L, getlogin()); + return 1; + } ++#endif + + static void Fgetpasswd(lua_State *L, int i, const void *data) + { +@@ -3786,7 +3788,9 @@ static const luaL_Reg R[] = + #if _POSIX_VERSION >= 200112L + MENTRY( Pgetgroups ), + #endif ++#ifndef NO_GETLOGIN + MENTRY( Pgetlogin ), ++#endif + MENTRY( Pgetopt ), + MENTRY( Pgetpasswd ), + MENTRY( Pgetpid ),