lua: move Lua packages under lang/lua sub-folder

There are roughly 50 Lua packages.
It's about time we consider a proposal for moving all of them
under a lang/lua sub-folder.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
This commit is contained in:
Alexandru Ardelean
2025-11-16 12:02:03 +02:00
committed by Alexandru Ardelean
parent 1545e6510f
commit 7eebedcdfc
89 changed files with 0 additions and 0 deletions

113
lang/lua/cqueues/Makefile Normal file
View File

@@ -0,0 +1,113 @@
#
# Copyright (C) 2022 Siger Yang <siger.yang@outlook.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=cqueues
PKG_VERSION:=20200726
PKG_RELEASE:=2
PKG_MAINTAINER:=Siger Yang <siger.yang@outlook.com>
PKG_MIRROR_HASH:=214a09c250e92d12cd63cdaedce9491f874a920e8222cc4faf10a978ec7bd1bd
PKG_SOURCE_URL:=https://github.com/wahern/cqueues.git
PKG_SOURCE_VERSION:=rel-$(PKG_VERSION)
PKG_SOURCE_PROTO:=git
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/cqueues/default
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=cqueues for $(1)
URL:=http://25thandclement.com/~william/projects/cqueues.html
DEPENDS:=+libopenssl
endef
define Package/cqueues/default/description
Continuation Queues: Embeddable asynchronous networking, threading, and
notification framework for Lua on Unix.
endef
TARGET_CFLAGS += $(FPIC)
TARGET_LDFLAGS += $(FPIC)
define Package/cqueues
$(call Package/cqueues/default,lua5.1)
DEPENDS+=+liblua
VARIANT:=lua51
endef
define Package/cqueues-lua5.3
$(call Package/cqueues/default,lua5.3)
DEPENDS+=+liblua5.3
VARIANT:=lua53
endef
define Package/cqueues-lua5.4
$(call Package/cqueues/default,lua5.4)
DEPENDS+=+liblua5.4
VARIANT:=lua54
endef
Package/cqueues/description = $(Package/cqueues/default/description)
Package/cqueues-lua5.3/description = $(Package/cqueues/default/description)
Package/cqueues-lua5.4/description = $(Package/cqueues/default/description)
ifeq ($(BUILD_VARIANT),lua51)
MAKE_FLAGS += \
LUA_APIS="5.1" \
LUA51_CPPFLAGS="-I$(STAGING_DIR)/usr/include" \
lua51cpath="/usr/lib/lua" \
lua51path="/usr/lib/lua"
endif
ifeq ($(BUILD_VARIANT),lua53)
MAKE_FLAGS += \
LUA_APIS="5.3" \
LUA53_CPPFLAGS="-I$(STAGING_DIR)/usr/include/lua5.3" \
lua53cpath="/usr/local/lib/lua/5.3" \
lua53path="/usr/local/lib/lua/5.3"
endif
ifeq ($(BUILD_VARIANT),lua54)
MAKE_FLAGS += \
LUA_APIS="5.4" \
LUA54_CPPFLAGS="-I$(STAGING_DIR)/usr/include/lua5.4" \
lua54cpath="/usr/local/lib/lua/5.4" \
lua54path="/usr/local/lib/lua/5.4"
endif
define Package/cqueues/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/lua/_cqueues.so $(1)/usr/lib/lua/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/lua/cqueues.lua $(1)/usr/lib/lua/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lua/cqueues $(1)/usr/lib/lua/
endef
define Package/cqueues-lua5.3/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.3
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.3/_cqueues.so $(1)/usr/local/lib/lua/5.3
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.3/cqueues.lua $(1)/usr/local/lib/lua/5.3
$(CP) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.3/cqueues $(1)/usr/local/lib/lua/5.3
endef
define Package/cqueues-lua5.4/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.4/_cqueues.so $(1)/usr/local/lib/lua/5.4
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.4/cqueues.lua $(1)/usr/local/lib/lua/5.4
$(CP) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.4/cqueues $(1)/usr/local/lib/lua/5.4
endef
$(eval $(call BuildPackage,cqueues))
$(eval $(call BuildPackage,cqueues-lua5.3))
$(eval $(call BuildPackage,cqueues-lua5.4))

48
lang/lua/dkjson/Makefile Normal file
View File

@@ -0,0 +1,48 @@
#
# Copyright (C) 20013-2014 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:=dkjson
PKG_VERSION:=2.5
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/LuaDist/dkjson/tar.gz/$(PKG_VERSION)?
PKG_HASH:=8560ee3c7ed421b293bf0905017bc90bd2f282d56517aa59ec6c53f5fb4057bd
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/dkjson
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=DKJSON
URL:=http://dkolf.de/src/dkjson-lua.fsl/home
MAINTAINER:=Lars Gierth <larsg@systemli.org>
DEPENDS:=+lua
PKGARCH:=all
endef
define Package/dkjson/description
Lua JSON parser/serializer with UTF-8 support
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/dkjson/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/dkjson.lua $(1)/usr/lib/lua/
endef
$(eval $(call BuildPackage,dkjson))

View File

@@ -0,0 +1,51 @@
#
# Copyright (C) 2006-2015 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:=json4lua
PKG_VERSION:=0.9.54
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/amrhassan/json4lua/tar.gz/$(PKG_VERSION)?
PKG_HASH:=2498e5224b024521af7f2de9a2c2af4028cd8da4b724ffd6bd94beede2402cfe
PKG_MAINTAINER:=Amr Hassan <amr.hassan@gmail.com>
PKG_LICENSE:=MIT
LUA_MODULE_PATH:=/usr/lib/lua
include $(INCLUDE_DIR)/package.mk
define Package/json4lua
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=json4lua
URL:=https://github.com/amrhassan/json4lua
DEPENDS:=+lua +luasocket
PKGARCH:=all
endef
define Package/json4lua/description
JSON and JSONRPC for Lua
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/json4lua/install
$(INSTALL_DIR) $(1)/$(LUA_MODULE_PATH)/json
$(INSTALL_DATA) $(PKG_BUILD_DIR)/json/json.lua $(1)/$(LUA_MODULE_PATH)/json.lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/json/rpc.lua $(1)/$(LUA_MODULE_PATH)/json/rpc.lua
endef
$(eval $(call BuildPackage,json4lua))

61
lang/lua/ldbus/Makefile Normal file
View File

@@ -0,0 +1,61 @@
#
# Copyright (C) 2006-2017 OpenWrt.org
#
# This is free software, licensed under the GPL 2 license.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ldbus
PKG_SOURCE_DATE:=2019-08-15
PKG_SOURCE_VERSION:=9e176fe851006037a643610e6d8f3a8e597d4073
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/daurnimator/ldbus
PKG_MIRROR_HASH:=6a17564734b9cd3a9c4713777b8219c5e08252be3fd6ba9f9aecbf109d1ed899
PKG_MAINTAINER:=Enrico Mioso <mrkiko.rs@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=luarocks/host
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/ldbus
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=ldbus Lua DBus bindings
URL:=https://github.com/daurnimator/ldbus
DEPENDS:=+dbus +lua
endef
define Package/ldbus/description
This package contains "ldbus": LUA bindings to interact with the DBUS
message bus system, and services connected to it.
See https://github.com/daurnimator/ldbus
for details.
endef
define Build/Compile
cd $(PKG_BUILD_DIR) && \
luarocks make --pack-binary-rock ldbus-scm-0.rockspec \
LUA_LIBDIR=$(STAGING_DIR)/usr/lib/lua \
LUA_PKGNAME=lua5.1 \
DBUS_INCDIR=$(STAGING_DIR)/usr/include/dbus-1.0/ \
DBUS_ARCH_INCDIR=$(STAGING_DIR)/usr/lib/dbus-1.0/include \
DBUS_LIBDIR=$(STAGING_DIR)/usr/lib \
CC="$(TARGET_CC)" LD="$(TARGET_CC)" \
CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
LDFLAGS="$(TARGET_LDFLAGS)"
endef
define Package/ldbus/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ldbus.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,ldbus))

View File

@@ -0,0 +1,44 @@
#
# This is free software, licensed under your choice of the following SPDX identifiers:
# Apache-2.0, BSD-2-Clause, CC-BY-4.0, ISC, MIT, X11 or GPL-2.0-or-later
include $(TOPDIR)/rules.mk
PKG_NAME:=linotify
PKG_VERSION:=0.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL=https://codeload.github.com/hoelzro/$(PKG_NAME)/tar.gz/$(PKG_VERSION)?
PKG_HASH:=21d005f16043397a85913a7d14a267716d6384f0228718d5de464bfc0274e338
PKG_MAINTAINER:=Karl Palsson <karlp@etactica.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYRIGHT
include $(INCLUDE_DIR)/package.mk
define Package/linotify
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=inotify binding for lua
DEPENDS:=+lua
URL:=https://github.com/hoelzro/linotify
endef
define Package/linotify/description
This provides a lua binding to the inotify file system change notification system
endef
define Build/Compile
cd $(PKG_BUILD_DIR) && \
$(TARGET_CC) -o inotify.so -shared $(FPIC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) linotify.c
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/inotify.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,linotify))

47
lang/lua/lpeg/Makefile Normal file
View File

@@ -0,0 +1,47 @@
#
# Copyright (C) 2015 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:=lpeg
PKG_VERSION:=1.0.2
PKG_RELEASE:=1
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.inf.puc-rio.br/~roberto/lpeg/
PKG_HASH:=48d66576051b6c78388faad09b70493093264588fcd0f258ddaab1cdd4a15ffe
include $(INCLUDE_DIR)/package.mk
define Package/lpeg
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=LPeg
URL:=http://www.inf.puc-rio.br/~roberto/lpeg/
DEPENDS:=+lua
endef
define Package/lpeg/description
LPeg is a new pattern-matching library for Lua, based on Parsing Expression Grammars (PEGs)
endef
define Build/Configure
endef
# add make variable overrides here
MAKE_FLAGS += \
COPT="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) -O2"
define Package/lpeg/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lpeg.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lpeg))

View File

@@ -0,0 +1,49 @@
#
# Copyright (C) 2006-2020 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:=lua-argparse
PKG_VERSION:=0.7.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/luarocks/argparse/tar.gz/$(PKG_VERSION)?
PKG_HASH:=d344e49404c3e7b3e7fa4fe6741c106f25909d9b24923cb08dcceda1f9754809
PKG_BUILD_DIR:=$(BUILD_DIR)/argparse-$(PKG_VERSION)
PKG_MAINTAINER:=Vladimir Malyutin <first-leon@yandex.ru>
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/lua-argparse
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=lua-argparse
URL:=https://github.com/mpeterv/argparse
DEPENDS:=+lua
PKGARCH:=all
endef
define Package/lua-argparse/description
Argparse is a feature-rich command line parser for Lua inspired by argparse for Python.
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/lua-argparse/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/argparse.lua $(1)/usr/lib/lua/
endef
$(eval $(call BuildPackage,lua-argparse))

View File

@@ -0,0 +1,50 @@
#
# Copyright (C) 20013-2014 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:=lua-bencode
PKG_VERSION:=2.2.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://bitbucket.org/wilhelmy/lua-bencode/downloads/
PKG_HASH:=25830ff3fe342c09c65995d46c4d89ad0387cc502b1a2f70f9cca2d8c7ccafdd
PKG_MAINTAINER:=Lars Gierth <larsg@systemli.org>
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/lua-bencode
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=lua-bencode
URL:=https://bitbucket.org/wilhelmy/lua-bencode
DEPENDS:=+lua
PKGARCH:=all
endef
define Package/lua-bencode/description
This is a module for the lua programming language for decoding and encoding
bencoded data which can be used to read and write torrent files for bittorrent.
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/lua-bencode/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/bencode.lua $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-bencode))

View File

@@ -0,0 +1,59 @@
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-bit32
PKG_VERSION:=5.3.0
PKG_RELEASE:=1
PKG_SRC_NAME:=lua-compat-5.2
PKG_SRC_VERSION:=0.3
PKG_SOURCE_URL=https://codeload.github.com/keplerproject/$(PKG_SRC_NAME)/tar.gz/v$(PKG_SRC_VERSION)?
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=627e842c488c1afece4383da9f9a839a7ddbc2f7fedfc456f76e3a590d4ca67f
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SRC_NAME)-$(PKG_SRC_VERSION)
PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=luarocks/host
include $(INCLUDE_DIR)/package.mk
define Package/lua-bit32
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua 5.2 bit manipulation library
DEPENDS:=+lua
endef
define Package/lua-bit32/description
lua-bit32 is the native Lua 5.2 bit manipulation library,
backported to Lua 5.1
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include
define Build/Compile
cd $(PKG_BUILD_DIR) && \
luarocks make --pack-binary-rock bit32-scm-1.rockspec \
LUA_LIBDIR=$(STAGING_DIR)/usr/lib/lua \
LUA_PKGNAME=lua5.1 \
CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
CC="$(TARGET_CC)" LD="$(TARGET_CC)"
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bit32.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-bit32))

View File

@@ -0,0 +1,98 @@
#
# Copyright (C) 2015 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:=lua-cjson
PKG_VERSION:=2.1.0
PKG_RELEASE:=5
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://kyne.au/~mark/software/download/
PKG_HASH:=51bc69cd55931e0cba2ceae39e9efa2483f4292da3a88a1ed470eda829f6c778
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
HOST_BUILD_DEPENDS:=lua/host
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/lua-cjson/default
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua CJSON parser
URL:=https://github.com/mpx/lua-cjson
endef
define Package/lua-cjson
$(Package/lua-cjson/default)
DEPENDS+=+liblua
VARIANT:=lua-51
endef
define Package/lua-cjson-lua5.3
$(Package/lua-cjson/default)
DEPENDS+=+liblua5.3
VARIANT:=lua-53
endef
define Package/lua-cjson-lua5.4
$(Package/lua-cjson/default)
DEPENDS+=+liblua5.4
VARIANT:=lua-54
endef
define Package/lua-cjson/default/description
Lua CJSON is a fast JSON encoding/parsing module for Lua.
endef
Package/lua-cjson/description = $(Package/lua-cjson/default/description)
Package/lua-cjson-lua5.3/description = $(Package/lua-cjson/default/description)
Package/lua-cjson-lua5.4/description = $(Package/lua-cjson/default/description)
CMAKE_OPTIONS += \
-DUSE_LUA=ON
CMAKE_HOST_OPTIONS += \
-DLUA_MATH_LIBRARY=m
ifeq ($(BUILD_VARIANT),lua-53)
CMAKE_OPTIONS += -DUSE_LUA53=ON
endif
ifeq ($(BUILD_VARIANT),lua-54)
CMAKE_OPTIONS += -DUSE_LUA54=ON
endif
define Package/lua-cjson/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/lib/lua/
$(INSTALL_DIR) $(1)/usr/lib/lua/cjson
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lua/cjson/util.lua $(1)/usr/lib/lua/cjson
endef
define Package/lua-cjson-lua5.3/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.3
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/local/lib/lua/5.3
endef
define Package/lua-cjson-lua5.4/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/local/lib/lua/5.4
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,lua-cjson))
$(eval $(call BuildPackage,lua-cjson-lua5.3))
$(eval $(call BuildPackage,lua-cjson-lua5.4))

View File

@@ -0,0 +1,78 @@
--- a/lua_cjson.c
+++ b/lua_cjson.c
@@ -1227,7 +1227,10 @@ static void json_process_value(lua_State
lua_pushlstring(l, token->value.string, token->string_len);
break;;
case T_NUMBER:
- lua_pushnumber(l, token->value.number);
+ if ((lua_Integer)token->value.number == token->value.number)
+ lua_pushinteger(l, (lua_Integer)token->value.number);
+ else
+ lua_pushnumber(l, token->value.number);
break;;
case T_BOOLEAN:
lua_pushboolean(l, token->value.boolean);
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,8 +15,28 @@ if(NOT CMAKE_BUILD_TYPE)
FORCE)
endif()
-find_package(Lua51 REQUIRED)
-include_directories(${LUA_INCLUDE_DIR})
+if(USE_LUA54)
+ find_path(LUA54_INCLUDE_DIRS lua.h PATH_SUFFIXES lua5.4)
+ find_library(LUA54_LIBRARIES lua5.4)
+
+ if (NOT LUA54_INCLUDE_DIRS OR NOT LUA54_LIBRARIES)
+ message(FATAL_ERROR "Liblua 5.4 is required.")
+ endif()
+
+ include_directories(${LUA54_INCLUDE_DIRS})
+elseif(USE_LUA53)
+ find_path(LUA53_INCLUDE_DIRS lua.h PATH_SUFFIXES lua5.3)
+ find_library(LUA53_LIBRARIES lua5.3)
+
+ if (NOT LUA53_INCLUDE_DIRS OR NOT LUA53_LIBRARIES)
+ message(FATAL_ERROR "Liblua 5.3 is required.")
+ endif()
+
+ include_directories(${LUA53_INCLUDE_DIRS})
+else()
+ find_package(Lua51 REQUIRED)
+ include_directories(${LUA_INCLUDE_DIR})
+endif()
if(NOT USE_INTERNAL_FPCONV)
# Use libc number conversion routines (strtod(), sprintf())
@@ -51,7 +71,14 @@ if(NOT HAVE_ISINF)
endif()
set(_MODULE_LINK "${CMAKE_THREAD_LIBS_INIT}")
-get_filename_component(_lua_lib_dir ${LUA_LIBRARY} PATH)
+
+if(USE_LUA54)
+ get_filename_component(_lua_lib_dir ${LUA54_LIBRARIES} PATH)
+elseif(USE_LUA53)
+ get_filename_component(_lua_lib_dir ${LUA53_LIBRARIES} PATH)
+else()
+ get_filename_component(_lua_lib_dir ${LUA_LIBRARY} PATH)
+endif()
if(APPLE)
set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS
@@ -65,7 +92,13 @@ if(WIN32)
# Windows sprintf()/strtod() handle NaN/inf differently. Not supported.
add_definitions(-DDISABLE_INVALID_NUMBERS)
else()
- set(_lua_module_dir "${_lua_lib_dir}/lua/5.1")
+ if(USE_LUA54)
+ set(_lua_module_dir "${_lua_lib_dir}/lua/5.4")
+ elseif(USE_LUA53)
+ set(_lua_module_dir "${_lua_lib_dir}/lua/5.3")
+ else()
+ set(_lua_module_dir "${_lua_lib_dir}/lua/5.1")
+ endif()
endif()
add_library(cjson MODULE lua_cjson.c strbuf.c ${FPCONV_SOURCES})

View File

@@ -0,0 +1,12 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,8 +3,8 @@
# Unix: export LUA_DIR=/home/user/pkg
# Windows: set LUA_DIR=c:\lua51
+cmake_minimum_required(VERSION 3.10)
project(lua-cjson C)
-cmake_minimum_required(VERSION 2.6)
option(USE_INTERNAL_FPCONV "Use internal strtod() / g_fmt() code for performance")
option(MULTIPLE_THREADS "Support multi-threaded apps with internal fpconv - recommended" ON)

View File

@@ -0,0 +1,60 @@
#
# Copyright (C) 2009-2013 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:=lua-copas
PKG_VERSION:=2.0.2
PKG_RELEASE:=1
PKG_SOURCE:=copas-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/keplerproject/copas/tar.gz/$(PKG_VERSION)?
PKG_HASH:=1469eaf987513f5a9a0bee345c040c8fa30ca6194bc75ad78171362f9904cf3e
PKG_BUILD_DIR:=$(BUILD_DIR)/copas-$(PKG_VERSION)
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/lua-copas
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua-Copas
URL:=https://github.com/keplerproject/copas
DEPENDS:=+lua
endef
define Package/lua-copas/description
Copas is a dispatcher based on coroutines that can be used by TCP/IP servers.
endef
define Build/Configure
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
T="$(BUILD_VARIANT)" \
PREFIX="$(PKG_INSTALL_DIR)/usr" \
install
endef
define Package/lua-copas/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DIR) $(1)/usr/lib/lua/copas
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/copas.lua $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/copas/ftp.lua $(1)/usr/lib/lua/copas
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/copas/smtp.lua $(1)/usr/lib/lua/copas
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/copas/http.lua $(1)/usr/lib/lua/copas
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/copas/limit.lua $(1)/usr/lib/lua/copas
endef
$(eval $(call BuildPackage,lua-copas))

View File

@@ -0,0 +1,60 @@
#
# Copyright (C) 2009-2013 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:=lua-coxpcall
PKG_VERSION:=1.17.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_MIRROR_HASH:=e037c1aa1d2a2b213fca144d86cd5b5cf2cd77cec6d8f52d056add7ea806f0dc
PKG_SOURCE_URL:=https://github.com/keplerproject/coxpcall.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=ea22f44e490430e40217f0792bf82eaeaec51903
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/lua-coxpcall
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua-Coxpcall
URL:=https://github.com/keplerproject/coxpcall
DEPENDS:=+lua
endef
define Package/lua-coxpcall/description
Coxpcall encapsulates the protected calls with a coroutine based loop,
so errors can be dealed without the usual pcall/xpcall issues with coroutines.
endef
TARGET_CFLAGS += $(FPIC)
# add make variable overrides here
MAKE_FLAGS +=
define Build/Configure
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
T="$(BUILD_VARIANT)" \
LUA_DIR="$(PKG_INSTALL_DIR)/usr/lib/lua" \
install
endef
define Package/lua-coxpcall/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/coxpcall.lua $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-coxpcall))

View File

@@ -0,0 +1,4 @@
--- /dev/null
+++ b/config
@@ -0,0 +1 @@
+LUA_DIR ?=$(DESTDIR)/usr/lib/lua

View File

@@ -0,0 +1,78 @@
# SPDX-License-Identifier: MIT
#
# Copyright (C) 2021-2022 Gerald Kerma
#
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-cs-bouncer
PKG_SOURCE_DATE:=2022-01-18
PKG_SOURCE_VERSION:=e0f68b1265c386715c1d6ab79fe9063c0a9e3d3a
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/crowdsecurity/$(PKG_NAME)/tar.gz/$(PKG_SOURCE_VERSION)?
PKG_HASH:=c7e92cc9dc023ebcd84f3632d6cf0e38a7d9f5e7bba15367247753a306b89829
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Gerald Kerma <gandalf@gk2.net>
HOST_BUILD_DEPENDS:=lua/host
PKG_BUILD_DEPENDS:=luarocks/host
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
define Package/lua-cs-bouncer
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua Crowdsec Bouncer module
URL:=https://github.com/crowdsecurity/lua-cs-bouncer
DEPENDS:=+lua \
+luasec
endef
define Package/lua-cs-bouncer/description
Lua module to allow ip (or not) from CrowdSec API.
endef
define Build/Compile
endef
define Package/lua-cs-bouncer/install
$(INSTALL_DIR) $(1)/usr/lib/lua/crowdsec
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/lib/*.lua \
$(1)/usr/lib/lua/crowdsec/
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/template.conf \
$(1)/usr/lib/lua/crowdsec/crowdsec.conf
$(INSTALL_DIR) $(1)/usr/lib/crowdsec/lua/plugins/crowdsec
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/nginx/config.lua \
$(1)/usr/lib/crowdsec/lua/plugins/crowdsec/
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/nginx/crowdsec.lua \
$(1)/usr/lib/crowdsec/lua/
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/nginx/recaptcha.lua \
$(1)/usr/lib/crowdsec/lua/
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/nginx/access.lua \
$(1)/usr/lib/crowdsec/lua/
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) \
./files/lua-cs-bouncer.defaults \
$(1)/etc/uci-defaults/99_lua-cs-bouncer
endef
define Package/lua-cs-bouncer/conffiles
/usr/lib/lua/crowdsec/crowdsec.conf
endef
$(eval $(call BuildPackage,lua-cs-bouncer))

View File

@@ -0,0 +1,13 @@
#!/bin/sh
CONFIG=/usr/lib/lua/crowdsec/crowdsec.conf
## Gen&ConfigApiKey
if grep -q "{API_KEY}" "$CONFIG"; then
SUFFIX=`tr -dc A-Za-z0-9 </dev/urandom | head -c 8`
API_KEY=`/usr/bin/cscli bouncers add lua-cs-bouncer-${SUFFIX} -o raw`
sed -i "s,^\(\s*API_KEY\s*=\s*\).*\$,\1$API_KEY," $CONFIG
else
echo API key already registered...
fi
exit 0

View File

@@ -0,0 +1,46 @@
#
# Copyright (C) 2021 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:=lua-curl-v3
PKG_VERSION:=0.3.13~9f8b6dba8
PKG_RELEASE:=2
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE_URL:=https://github.com/Lua-cURL/Lua-cURLv3.git
PKG_MIRROR_HASH:=41f9e418b203fe3bdf256e4a5517ac8dbaf5ab5026b972f603052a0c56dfcfc7
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=9f8b6dba8b5ef1b26309a571ae75cda4034279e5
include $(INCLUDE_DIR)/package.mk
define Package/lua-curl-v3
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua-curl
DEPENDS:=+libcurl +lua
MAINTAINER:=Rainer Poisel <rainer.poisel@gmail.com>
endef
MAKE_FLAGS += \
UNAME="Linux"
define Package/lua-curl-v3/description
Lua bindings to libcurl (Lua-cURLv3)
endef
define Package/lua-curl-v3/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lcurl.so $(1)/usr/lib/lua
$(CP) $(PKG_BUILD_DIR)/src/lua/* $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-curl-v3))

245
lang/lua/lua-eco/Makefile Normal file
View File

@@ -0,0 +1,245 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-eco
PKG_VERSION:=3.13.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL=https://github.com/zhaojh329/lua-eco/releases/download/v$(PKG_VERSION)
PKG_HASH:=7629312a5946774f2fa8372d46e8aa3e06a651a73a343addf0eb8aea4413cad9
PKG_MAINTAINER:=Jianhui Zhao <zhaojh329@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_CONFIG_DEPENDS:= \
LUA_ECO_OPENSSL \
LUA_ECO_WOLFSSL \
LUA_ECO_MBEDTLS
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/lua-eco
TITLE:=A Lua interpreter with a built-in libev event loop
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Lua
URL:=https://github.com/zhaojh329/lua-eco
DEPENDS:=+libev +liblua5.4
endef
define Package/lua-eco/description
Lua-eco is a Lua interpreter with a built-in event loop for scheduling
lightweight coroutines automatically, enabling efficient concurrency in
Lua. Build high-performance, scalable applications.
endef
define Package/lua-eco/Module
TITLE:=$1 support for lua-eco
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Lua
URL:=https://github.com/zhaojh329/lua-eco
DEPENDS:=+lua-eco $2
endef
Package/lua-eco-log=$(call Package/lua-eco/Module,log utils)
Package/lua-eco-base64=$(call Package/lua-eco/Module,base64)
Package/lua-eco-sha1=$(call Package/lua-eco/Module,sha1)
Package/lua-eco-sha256=$(call Package/lua-eco/Module,sha256)
Package/lua-eco-md5=$(call Package/lua-eco/Module,md5)
Package/lua-eco-hmac=$(call Package/lua-eco/Module,hmac)
Package/lua-eco-socket=$(call Package/lua-eco/Module,socket)
Package/lua-eco-dns=$(call Package/lua-eco/Module,dns,+lua-eco-socket)
Package/lua-eco-ssl=$(call Package/lua-eco/Module,ssl,\
+LUA_ECO_OPENSSL:libopenssl +LUA_ECO_WOLFSSL:libwolfssl \
+LUA_ECO_MBEDTLS:libmbedtls +LUA_ECO_MBEDTLS:zlib +lua-eco-socket)
Package/lua-eco-ubus=$(call Package/lua-eco/Module,ubus,+libubus)
Package/lua-eco-http=$(call Package/lua-eco/Module,http/https,+lua-eco-dns +lua-eco-ssl +lua-eco-base64 +lua-eco-log)
Package/lua-eco-mqtt=$(call Package/lua-eco/Module,mqtt,+lua-eco-socket +lua-eco-ssl)
Package/lua-eco-websocket=$(call Package/lua-eco/Module,websocket,+lua-eco-http +lua-eco-base64 +lua-eco-sha1)
Package/lua-eco-termios=$(call Package/lua-eco/Module,termios)
Package/lua-eco-netlink=$(call Package/lua-eco/Module,netlink,+lua-eco-socket)
Package/lua-eco-ip=$(call Package/lua-eco/Module,ip utils,+lua-eco-netlink)
Package/lua-eco-nl80211=$(call Package/lua-eco/Module,nl80211,+lua-eco-netlink)
Package/lua-eco-ssh=$(call Package/lua-eco/Module,ssh,+lua-eco-socket +libssh2)
Package/lua-eco-packet=$(call Package/lua-eco/Module,packet,+lua-eco-nl80211)
Package/lua-eco-uci=$(call Package/lua-eco/Module,uci,+libuci)
Package/lua-eco-shared=$(call Package/lua-eco/Module,shared,+lua-eco-socket)
define Package/lua-eco-ssl/config
choice
prompt "SSL Library"
default LUA_ECO_MBEDTLS
config LUA_ECO_OPENSSL
bool "OpenSSL"
config LUA_ECO_WOLFSSL
bool "wolfSSL"
config LUA_ECO_MBEDTLS
bool "mbedTLS"
endchoice
endef
CMAKE_OPTIONS += \
-DECO_UBUS_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-ubus),N,FF) \
-DECO_SSL_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-ssl),N,FF)
ifneq ($(CONFIG_PACKAGE_lua-eco-ssl),)
ifneq ($(CONFIG_LUA_ECO_OPENSSL),)
CMAKE_OPTIONS += -DUSE_OPENSSL=ON
else ifneq ($(CONFIG_LUA_ECO_WOLFSSL),)
CMAKE_OPTIONS += -DUSE_WOLFSSL=ON
else ifneq ($(CONFIG_LUA_ECO_MBEDTLS),)
CMAKE_OPTIONS += -DUSE_MBEDTLS=ON
endif
endif
define Package/lua-eco/install
$(INSTALL_DIR) $(1)/usr/bin $(1)/usr/local/lib/lua/5.4/eco/core \
$(1)/usr/lib $(1)/usr/local/lib/lua/5.4/eco/encoding
$(INSTALL_BIN) $(PKG_BUILD_DIR)/eco $(1)/usr/bin
$(CP) $(PKG_BUILD_DIR)/libeco.so* $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bufio.so $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_DATA) $(PKG_BUILD_DIR)/hex.lua $(1)/usr/local/lib/lua/5.4/eco/encoding
$(INSTALL_BIN) $(PKG_BUILD_DIR)/{time,bufio,sys,file}.so $(1)/usr/local/lib/lua/5.4/eco/core
$(INSTALL_DATA) $(PKG_BUILD_DIR)/{time,sys,file,sync,channel}.lua $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-log/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_BIN) $(PKG_BUILD_DIR)/log.so $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-base64/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/encoding
$(INSTALL_BIN) $(PKG_BUILD_DIR)/base64.so $(1)/usr/local/lib/lua/5.4/eco/encoding
endef
define Package/lua-eco-sha1/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/hash
$(INSTALL_BIN) $(PKG_BUILD_DIR)/sha1.so $(1)/usr/local/lib/lua/5.4/eco/hash
endef
define Package/lua-eco-sha256/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/hash
$(INSTALL_BIN) $(PKG_BUILD_DIR)/sha256.so $(1)/usr/local/lib/lua/5.4/eco/hash
endef
define Package/lua-eco-md5/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/hash
$(INSTALL_BIN) $(PKG_BUILD_DIR)/md5.so $(1)/usr/local/lib/lua/5.4/eco/hash
endef
define Package/lua-eco-hmac/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/hash
$(INSTALL_BIN) $(PKG_BUILD_DIR)/hmac.lua $(1)/usr/local/lib/lua/5.4/eco/hash
endef
define Package/lua-eco-socket/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/core
$(INSTALL_DATA) $(PKG_BUILD_DIR)/socket.lua $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_BIN) $(PKG_BUILD_DIR)/socket.so $(1)/usr/local/lib/lua/5.4/eco/core
endef
define Package/lua-eco-dns/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_DATA) $(PKG_BUILD_DIR)/dns.lua $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-ssl/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/core
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ssl.lua $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ssl.so $(1)/usr/local/lib/lua/5.4/eco/core
endef
define Package/lua-eco-ubus/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/core
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ubus.lua $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ubus.so $(1)/usr/local/lib/lua/5.4/eco/core
endef
define Package/lua-eco-http/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/http
$(INSTALL_DATA) $(PKG_BUILD_DIR)/http/*.lua $(1)/usr/local/lib/lua/5.4/eco/http
endef
define Package/lua-eco-mqtt/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_DATA) $(PKG_BUILD_DIR)/mqtt.lua $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-websocket/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_DATA) $(PKG_BUILD_DIR)/websocket.lua $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-termios/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_BIN) $(PKG_BUILD_DIR)/termios.so $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-netlink/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/core
$(INSTALL_DATA) $(PKG_BUILD_DIR)/{nl,genl}.lua $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_BIN) $(PKG_BUILD_DIR)/{nl,genl}.so $(1)/usr/local/lib/lua/5.4/eco/core
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rtnl.so $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-ip/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ip.lua $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-nl80211/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/core
$(INSTALL_DATA) $(PKG_BUILD_DIR)/nl80211.lua $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_BIN) $(PKG_BUILD_DIR)/nl80211.so $(1)/usr/local/lib/lua/5.4/eco/core
endef
define Package/lua-eco-ssh/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco/core
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ssh.lua $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ssh.so $(1)/usr/local/lib/lua/5.4/eco/core
endef
define Package/lua-eco-packet/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_DATA) $(PKG_BUILD_DIR)/packet.lua $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-uci/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_DATA) $(PKG_BUILD_DIR)/uci.so $(1)/usr/local/lib/lua/5.4/eco
endef
define Package/lua-eco-shared/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4/eco
$(INSTALL_DATA) $(PKG_BUILD_DIR)/shared.lua $(1)/usr/local/lib/lua/5.4/eco
endef
$(eval $(call BuildPackage,lua-eco))
$(eval $(call BuildPackage,lua-eco-log))
$(eval $(call BuildPackage,lua-eco-base64))
$(eval $(call BuildPackage,lua-eco-sha1))
$(eval $(call BuildPackage,lua-eco-sha256))
$(eval $(call BuildPackage,lua-eco-md5))
$(eval $(call BuildPackage,lua-eco-hmac))
$(eval $(call BuildPackage,lua-eco-socket))
$(eval $(call BuildPackage,lua-eco-dns))
$(eval $(call BuildPackage,lua-eco-ssl))
$(eval $(call BuildPackage,lua-eco-ubus))
$(eval $(call BuildPackage,lua-eco-http))
$(eval $(call BuildPackage,lua-eco-mqtt))
$(eval $(call BuildPackage,lua-eco-websocket))
$(eval $(call BuildPackage,lua-eco-termios))
$(eval $(call BuildPackage,lua-eco-netlink))
$(eval $(call BuildPackage,lua-eco-ip))
$(eval $(call BuildPackage,lua-eco-nl80211))
$(eval $(call BuildPackage,lua-eco-ssh))
$(eval $(call BuildPackage,lua-eco-packet))
$(eval $(call BuildPackage,lua-eco-uci))
$(eval $(call BuildPackage,lua-eco-shared))

43
lang/lua/lua-ev/Makefile Normal file
View File

@@ -0,0 +1,43 @@
#
# Copyright (C) 2019 Jianhui Zhao
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-ev
PKG_VERSION:=1.5
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/brimworks/lua-ev/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=26ac116722a241bf59daf5315ce0ffe751c1babea9a146ffc0a389f1af3facca
PKG_MAINTAINER:=Jianhui Zhao <jianhuizhao329@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/lua-ev
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=lua-ev
URL:=https://github.com/brimworks/lua-ev
DEPENDS:=+lua +libev
endef
define Package/lua-ev/description
Lua integration with libev.
endef
define Package/lua-ev/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/lua/cmod/ev.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-ev))

84
lang/lua/lua-ffi/Makefile Normal file
View File

@@ -0,0 +1,84 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-ffi
PKG_VERSION:=1.1.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL=https://github.com/zhaojh329/lua-ffi/releases/download/v$(PKG_VERSION)
PKG_HASH:=85651aa772de5717b85fc6ac9bba61f0dc20155707fad8099245f97ecd301996
PKG_MAINTAINER:=Jianhui Zhao <zhaojh329@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/lua-ffi/default
TITLE:=A portable lightweight C FFI for $(1), based on libffi
CATEGORY:=Languages
SECTION:=lang
SUBMENU:=Lua
DEPENDS:=+libffi
URL:=https://github.com/zhaojh329/lua-ffi
endef
define Package/lua-ffi/default/description
Lua-ffi is a portable lightweight C FFI for Lua, based on libffi
and aiming to be mostly compatible with LuaJIT FFI, but written
from scratch in C language.
endef
define Package/lua-ffi
$(call Package/lua-ffi/default,lua5.1)
DEPENDS+=+liblua
VARIANT:=lua51
endef
define Package/lua-ffi-lua5.3
$(call Package/lua-ffi/default,lua5.3)
DEPENDS+=+liblua5.3
VARIANT:=lua53
endef
define Package/lua-ffi-lua5.4
$(call Package/lua-ffi/default,lua5.4)
DEPENDS+=+liblua5.4
VARIANT:=lua54
endef
Package/lua-ffi/description = $(Package/lua-ffi/default/description)
Package/lua-ffi-lua5.3/description = $(Package/lua-ffi/default/description)
Package/lua-ffi-lua5.4/description = $(Package/lua-ffi/default/description)
ifeq ($(BUILD_VARIANT),lua51)
CMAKE_OPTIONS += -DLUA_INCLUDE_DIR="$(STAGING_DIR)/usr/include"
endif
ifeq ($(BUILD_VARIANT),lua53)
CMAKE_OPTIONS += -DLUA_INCLUDE_DIR="$(STAGING_DIR)/usr/include/lua5.3"
endif
ifeq ($(BUILD_VARIANT),lua54)
CMAKE_OPTIONS += -DLUA_INCLUDE_DIR="$(STAGING_DIR)/usr/include/lua5.4"
endif
define Package/lua-ffi/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ffi.so $(1)/usr/lib/lua
endef
define Package/lua-ffi-lua5.3/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.3
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ffi.so $(1)/usr/local/lib/lua/5.3
endef
define Package/lua-ffi-lua5.4/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ffi.so $(1)/usr/local/lib/lua/5.4
endef
$(eval $(call BuildPackage,lua-ffi))
$(eval $(call BuildPackage,lua-ffi-lua5.3))
$(eval $(call BuildPackage,lua-ffi-lua5.4))

View File

@@ -0,0 +1,40 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-libmodbus
PKG_VERSION:=0.7
PKG_RELEASE:=1
PKG_SOURCE:=lua-libmodbus-$(PKG_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=lua-libmodbus-$(PKG_VERSION)
PKG_SOURCE_URL:=https://codeload.github.com/etactica/lua-libmodbus/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=70369f4c4e36421095bf00dcee36c633b4284eaa79bcfdfd230bfefb27acefda
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_MAINTAINER:=Karl Palsson <karlp@etactica.com>
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/lua-libmodbus
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=lua-libmodbus
URL:=https://github.com/etactica/lua-libmodbus
DEPENDS:=+liblua +libmodbus
endef
define Package/lua-libmodbus/description
lua-libmodbus is a binding to libmodbus,
see also http://www.libmodbus.org
endef
define Build/Configure
endef
define Package/lua-libmodbus/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libmodbus.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-libmodbus))

View File

@@ -0,0 +1,82 @@
#
# Copyright (C) 2006-2016 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:=lsqlite3
PKG_VERSION:=0.9.5
PKG_RELEASE:=1
PKG_SOURCE:=lsqlite3_fsl09y.zip
PKG_SOURCE_URL:=http://lua.sqlite.org/index.cgi/zip/
PKG_HASH:=d38402aa7640055d260c1246c36e6d6d31b425a25a805431f13695694466b722
PKG_LICENSE:=MIT
PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
PKG_BUILD_DIR:=$(BUILD_DIR)/lsqlite3-$(BUILD_VARIANT)/$(basename $(PKG_SOURCE))
include $(INCLUDE_DIR)/package.mk
define Package/lsqlite3/default
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua wrapper for the SQLite3 library
URL:=http://lua.sqlite.org
DEPENDS:=+libsqlite3
endef
define Package/lsqlite3
$(Package/lsqlite3/default)
DEPENDS+=+liblua
VARIANT:=lua-51
endef
define Package/lsqlite3-lua5.3
$(Package/lsqlite3/default)
DEPENDS+=+liblua5.3
VARIANT:=lua-53
endef
define Package/lsqlite3/default/description
LuaSQLite3 is a thin wrapper around the public domain SQLite3 database engine.
endef
Package/lsqlite3/description = $(Package/lsqlite3/default/description)
Package/lsqlite3-lua5.3/description = $(Package/lsqlite3/default/description)
TARGET_CFLAGS += $(FPIC) -std=gnu99
TARGET_CPPFLAGS += -DLUA_USE_LINUX
TARGET_LDFLAGS += -lsqlite3 -lpthread
ifeq ($(BUILD_VARIANT),lua-53)
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/lua5.3
endif
define Build/Compile
$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) \
-c $(PKG_BUILD_DIR)/lsqlite3.c \
-o $(PKG_BUILD_DIR)/lsqlite3.o \
-DLSQLITE_VERSION=\"$(PKG_VERSION)\"
$(TARGET_CC) $(TARGET_LDFLAGS) -shared \
$(PKG_BUILD_DIR)/lsqlite3.o \
-o $(PKG_BUILD_DIR)/lsqlite3.so
endef
define Package/lsqlite3/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(CP) $(PKG_BUILD_DIR)/*.so $(1)/usr/lib/lua/
endef
define Package/lsqlite3-lua5.3/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.3
$(CP) $(PKG_BUILD_DIR)/*.so $(1)/usr/local/lib/lua/5.3
endef
$(eval $(call BuildPackage,lsqlite3))
$(eval $(call BuildPackage,lsqlite3-lua5.3))

View File

@@ -0,0 +1,49 @@
#
# Copyright (C) 2015 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:=lua-lzlib
PKG_VERSION:=0.4.3
PKG_RELEASE:=1
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_MIRROR_HASH:=b6ef5e3f04b7f2137b39931a175ee802489a2486e70537770919bcccca10e723
PKG_SOURCE_URL:=https://github.com/LuaDist/lzlib.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=79329a07d8f79c19eadd7ea2752b4c4e1574b015
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/lua-lzlib
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua zlib binding
URL:=http://github.com/LuaDist/lzlib
DEPENDS:= +lua +zlib
endef
define Package/lua-lzlib/description
A library to access zlib library functions and also to read/write gzip files using an interface similar to the base io package.
endef
MAKE_FLAGS += \
LUA="$(STAGING_DIR)/usr" \
OFLAGS="$(TARGET_CFLAGS)" \
define Package/lua-lzlib/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/zlib.so $(1)/usr/lib/lua/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/gzip.lua $(1)/usr/lib/lua/
endef
$(eval $(call BuildPackage,lua-lzlib))

View File

@@ -0,0 +1,12 @@
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,8 @@ LUABIN= $(LUA)/bin
ZLIB=../zlib-1.2.3
# no need to change anything below here
-CFLAGS= $(INCS) $(DEFS) $(WARN) -O0 -fPIC
+CFLAGS= $(INCS) $(DEFS) $(WARN) $(OFLAGS) -fPIC
+OFLAGS= -O0
WARN= -g -Werror -Wall -pedantic #-ansi
INCS= -I$(LUAINC) -I$(ZLIB)
LIBS= -L$(ZLIB) -lz -L$(LUALIB) -L$(LUABIN) #-llua51

77
lang/lua/lua-md5/Makefile Normal file
View File

@@ -0,0 +1,77 @@
#
# Copyright (C) 2015 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:=lua-md5
PKG_VERSION:=1.3
PKG_RELEASE:=1
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_MIRROR_HASH:=675b8ba144d14cbe66abfd360d9a8861a18d5b69966768d6cdc78ca3c9fe0baf
PKG_SOURCE_URL:=https://github.com/keplerproject/md5.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=2a98633d7587a4900cfa7cbed340f377f4acd930
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/lua-md5
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua-MD5
URL:=https://github.com/keplerproject/md5
DEPENDS:=+lua
endef
define Package/lua-md5/description
MD5 offers basic cryptographic facilities for Lua
endef
TARGET_CFLAGS += $(FPIC)
# add make variable overrides here
MAKE_FLAGS +=
define Build/Configure
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
PREFIX="$(STAGING_DIR)/usr" \
LUA_LIBDIR="$(STAGING_DIR)/usr/lib/lua" \
clean
$(MAKE) -C $(PKG_BUILD_DIR) \
PREFIX="$(STAGING_DIR)/usr" \
LUA_LIBDIR="$(STAGING_DIR)/usr/lib/lua" \
LIB_OPTION="-shared" \
CC="$(TARGET_CROSS)gcc" \
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
all
endef
define Build/Install
mkdir -p $(PKG_INSTALL_DIR)/usr/lib/lua
$(MAKE) -C $(PKG_BUILD_DIR) \
LUA_LIBDIR="$(PKG_INSTALL_DIR)/usr/lib/lua" \
LUA_DIR="$(PKG_INSTALL_DIR)/usr/lib/lua" \
install
endef
define Package/lua-md5/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/md5.lua $(1)/usr/lib/lua
$(INSTALL_DIR) $(1)/usr/lib/lua/md5
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/core.so $(1)/usr/lib/lua/md5/core.so
endef
$(eval $(call BuildPackage,lua-md5))

View File

@@ -0,0 +1,22 @@
--- a/config
+++ b/config
@@ -1,16 +1,16 @@
# Installation directories
# Default prefix
-PREFIX = /usr/local
+PREFIX = /usr
# Lua version
LUA_SYS_VER ?= 5.2
# System's libraries directory (where binary libraries are installed)
-LUA_LIBDIR= $(PREFIX)/lib/lua/$(LUA_SYS_VER)
+LUA_LIBDIR= $(PREFIX)/lib/lua
# System's lua directory (where Lua libraries are installed)
-LUA_DIR= $(PREFIX)/share/lua/$(LUA_SYS_VER)
+LUA_DIR= $(PREFIX)/share/lua
# Lua includes directory
LUA_INC= $(PREFIX)/include

View File

@@ -0,0 +1,10 @@
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
# $Id: Makefile,v 1.7 2007/10/11 00:02:56 carregal Exp $
-CONFIG= ./config
+CFLAGS+= -fPIC
include $(CONFIG)

View File

@@ -0,0 +1,59 @@
#
# Copyright (C) 2015 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:=lua-mobdebug
PKG_VERSION:=0.70
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/pkulchenko/MobDebug/tar.gz/$(PKG_VERSION)?
PKG_HASH:=35ec131a0ecc74dbe1cc50582ed977120a4ef6d9f815ce07367fdb945cfee370
PKG_BUILD_DIR:=$(BUILD_DIR)/MobDebug-$(PKG_VERSION)
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/lua-mobdebug
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua-MobDebug
URL:=https://github.com/pkulchenko/MobDebug
DEPENDS:=+lua
PKGARCH:=all
endef
define Package/lua-mobdebug/description
MobDebug is a remote debugger for Lua (including Lua 5.1, Lua 5.2, Lua 5.3, and LuaJIT 2.x).
endef
define Build/Configure
endef
define Build/Compile
endef
define Build/Install
endef
# add make variable overrides here
MAKE_FLAGS +=
define Package/lua-mobdebug/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/mobdebug.lua $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-mobdebug))

View File

@@ -0,0 +1,43 @@
#
# Copyright (C) 2013-2015 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:=lua-mosquitto
PKG_VERSION:=0.4.1
PKG_RELEASE:=1
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_MIRROR_HASH:=d6bc828ea05f9a1ff3241f575a6ce699e577f9b79277182699e8fa03ac094ac9
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/flukso/lua-mosquitto.git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/lua-mosquitto
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua-mosquitto
DEPENDS:=+libmosquitto +lua
MAINTAINER:=Karl Palsson <karlp@etactica.com>
endef
define Package/lua-mosquitto/description
Lua bindings to libmosquitto
endef
define Package/lua-mosquitto/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mosquitto.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-mosquitto))

View File

@@ -0,0 +1,44 @@
#
# Copyright (C) 2016 Amnon Paz <pazamnon@gmail.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-openssl
PKG_SOURCE_VERSION:=0.10.0-0
PKG_VERSION:=$(subst -,.,$(PKG_SOURCE_VERSION))
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/zhaozg/lua-openssl.git
PKG_MIRROR_HASH:=e3c6173321132e2ce69cdedd8638acdc970a3fb1c0c3677d4edd9fe39e84853f
PKG_MAINTAINER:=Amnon Paz <pazamnon@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/lua-openssl
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua openSSL binding
URL:=http://github.com/zhaozg/lua-openssl
DEPENDS:=+lua +libopenssl +librt
endef
define Package/lua-openssl/description
A free, MIT-licensed OpenSSL binding for Lua.
endef
define Package/lua-openssl/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/lua/5.1/openssl.so $(1)/usr/lib/lua/
endef
$(eval $(call BuildPackage,lua-openssl))

View File

@@ -0,0 +1,14 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,10 +12,7 @@ endif()
include(GNUInstallDirs)
-find_package(LuaJIT)
-if(NOT LUAJIT_FOUND)
- find_package(Lua REQUIRED)
-endif()
+find_package(Lua REQUIRED)
find_package(OpenSSL REQUIRED)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)

View File

@@ -0,0 +1,47 @@
#
# Copyright (C) 2014 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:=lua-penlight
PKG_VERSION:=1.13.1
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/Penlight-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/lunarmodules/Penlight/tar.gz/$(PKG_VERSION)?
PKG_HASH:=530380e1a377df519c2e589f47823f79701f8e0e67f6bbd994e18d09a470b680
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE.md
include $(INCLUDE_DIR)/package.mk
define Package/lua-penlight
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Penlight
URL:=http://lunarmodules.github.io/Penlight/manual/01-introduction.md.html
DEPENDS:=+luafilesystem
MAINTAINER:=Karl Palsson <karlp@etactica.com>
endef
define Package/lua-penlight/description
It is often said of Lua that it does not include batteries.
Penlight is the batteries.
endef
define Build/Compile
echo "Nothing to compile, pure lua package"
endef
define Package/lua-penlight/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(CP) $(PKG_BUILD_DIR)/lua/pl $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-penlight))

View File

@@ -0,0 +1,55 @@
#
# Copyright (C) 2015 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:=lua-rings
PKG_VERSION:=1.3.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_MIRROR_HASH:=7026ce5898d37a4175b7afad693d59ff1fff1a84adafcabfafd065956a03616c
PKG_SOURCE_URL:=https://github.com/keplerproject/rings.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=2b8a900f8b9dbde304859a3ac9d437795c3fdde3
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/lua-rings
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua-Rings
URL:=http://keplerproject.github.io/rings/
DEPENDS:=+lua
endef
define Package/lua-rings/description
Rings is a library which provides a way to create new Lua states from within Lua.
endef
TARGET_CFLAGS += $(FPIC)
# add make variable overrides here
MAKE_FLAGS +=
define Build/Configure
endef
define Package/lua-rings/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/rings.so $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/stable.lua $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-rings))

View File

@@ -0,0 +1,28 @@
--- a/config
+++ b/config
@@ -1,15 +1,15 @@
# Installation directories
# Default prefix
-PREFIX ?= /usr/local
+PREFIX ?= /usr
DESTDIR ?= /
# System's libraries directory (where binary libraries are installed)
-LUA_LIBDIR ?= $(PREFIX)/lib/lua/5.1
+LUA_LIBDIR ?= $(PREFIX)/lib/lua
# System's lua directory (where Lua libraries are installed)
-LUA_DIR ?= $(PREFIX)/share/lua/5.1
+LUA_DIR ?= $(PREFIX)/lib/lua
# Lua includes directory
LUA_INC ?= $(PREFIX)/include
@@ -24,6 +24,5 @@ LIBNAME ?= $T.so.$V
WARN ?= -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -Wpointer-arith -pedantic
INCS ?= -I$(LUA_INC)
CFLAGS ?= $(WARN) $(INCS)
-CC ?= gcc
# $Id: config,v 1.7 2007/10/29 22:51:39 carregal Exp $

View File

@@ -0,0 +1,11 @@
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,8 @@
T= rings
CONFIG= ./config
+CFLAGS+= -fPIC
+
include $(CONFIG)
SRCS= src/rings.c

View File

@@ -0,0 +1,65 @@
#
# Copyright (C) 2015 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:=lua-rs232
PKG_SOURCE_DATE:=2019-11-20
PKG_SOURCE_VERSION:=c106c94d1a5a84e8582c936528303528608776c2
PKG_RELEASE:=3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/srdgame/librs232
PKG_MIRROR_HASH:=d507ce004a9b02b8d8a31d0c348eb9c481f1030153c941131aeff0dd3046a419
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=lua/host
PKG_BUILD_FLAGS:=gc-sections
include $(INCLUDE_DIR)/package.mk
define Package/lua-rs232
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua Serial Library
URL:=https://github.com/srdgame/librs232
DEPENDS:= +lua
endef
define Package/lua-rs232/description
multiplatform library for serial communications over RS-232
endef
TARGET_LDFLAGS += -Wl,--as-needed
MAKE_FLAGS += luadir='$$$${prefix}/lib/lua' luaexecdir='$$$${exec_prefix}/lib/lua'
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/librs232
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/librs232/rs232* $(1)/usr/include/librs232
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/librs232* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/lua/luars232* $(1)/usr/lib/lua
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/librs232.pc $(1)/usr/lib/pkgconfig
endef
define Package/lua-rs232/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/librs232.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/lua/luars232* $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lua-rs232))

View File

@@ -0,0 +1,56 @@
From 3467c3c354263b066ad47bddfe6eb869c0111e0d Mon Sep 17 00:00:00 2001
From: Damian Wrobel <dwrobel@ertelnet.rybnik.pl>
Date: Tue, 24 Jan 2023 10:19:16 +0100
Subject: [PATCH] Fix rs232_set_* prototypes mismatch
Fixes compilation error on gcc 13 (excerpt):
rs232_posix.c:490:1: error: conflicting types for 'rs232_set_baud' \
due to enum/integer mismatch; have 'unsigned int(struct rs232_port_t *, \
enum rs232_baud_e)' [-Werror=enum-int-mismatch]
490 | rs232_set_baud(struct rs232_port_t *p, enum rs232_baud_e baud)
| ^~~~~~~~~~~~~~
In file included from rs232_posix.c:39:
../include/librs232/rs232.h:203:24: note: previous declaration of \
'rs232_set_baud' with type 'unsigned int(struct rs232_port_t *, unsigned int)'
203 | RS232_LIB unsigned int rs232_set_baud(struct rs232_port_t *p, unsigned int baud);
| ^~~~~~~~~~~~~~
rs232_posix.c:591:1: error: conflicting types for 'rs232_set_dtr' \
due to enum/integer mismatch; have 'unsigned int(struct rs232_port_t *, \
enum rs232_dtr_e)' [-Werror=enum-int-mismatch]
591 | rs232_set_dtr(struct rs232_port_t *p, enum rs232_dtr_e state)
| ^~~~~~~~~~~~~
In file included from rs232_posix.c:39:
../include/librs232/rs232.h:208:24: note: previous declaration of 'rs232_set_dtr' \
with type 'unsigned int(struct rs232_port_t *, unsigned int)'
208 | RS232_LIB unsigned int rs232_set_dtr(struct rs232_port_t *p, unsigned int dtr);
| ^~~~~~~~~~~~~
Signed-off-by: Damian Wrobel <dwrobel@ertelnet.rybnik.pl>
---
include/librs232/rs232.h | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
--- a/include/librs232/rs232.h
+++ b/include/librs232/rs232.h
@@ -200,13 +200,13 @@ RS232_LIB unsigned int rs232_port_open(s
RS232_LIB unsigned int rs232_close(struct rs232_port_t *p);
RS232_LIB unsigned int rs232_flush(struct rs232_port_t *p);
RS232_LIB void rs232_set_device(struct rs232_port_t *p, const char *device);
-RS232_LIB unsigned int rs232_set_baud(struct rs232_port_t *p, unsigned int baud);
-RS232_LIB unsigned int rs232_set_stop(struct rs232_port_t *p, unsigned int stop);
-RS232_LIB unsigned int rs232_set_data(struct rs232_port_t *p, unsigned int data);
-RS232_LIB unsigned int rs232_set_parity(struct rs232_port_t *p, unsigned int parity);
-RS232_LIB unsigned int rs232_set_flow(struct rs232_port_t *p, unsigned int flow);
-RS232_LIB unsigned int rs232_set_dtr(struct rs232_port_t *p, unsigned int dtr);
-RS232_LIB unsigned int rs232_set_rts(struct rs232_port_t *p, unsigned int rts);
+RS232_LIB unsigned int rs232_set_baud(struct rs232_port_t *p, enum rs232_baud_e baud);
+RS232_LIB unsigned int rs232_set_stop(struct rs232_port_t *p, enum rs232_stop_e stop);
+RS232_LIB unsigned int rs232_set_data(struct rs232_port_t *p, enum rs232_data_e data);
+RS232_LIB unsigned int rs232_set_parity(struct rs232_port_t *p, enum rs232_parity_e parity);
+RS232_LIB unsigned int rs232_set_flow(struct rs232_port_t *p, enum rs232_flow_e flow);
+RS232_LIB unsigned int rs232_set_dtr(struct rs232_port_t *p, enum rs232_dtr_e state);
+RS232_LIB unsigned int rs232_set_rts(struct rs232_port_t *p, enum rs232_rts_e state);
RS232_LIB const char * rs232_get_device(struct rs232_port_t *p);
RS232_LIB unsigned int rs232_get_baud(struct rs232_port_t *p);
RS232_LIB unsigned int rs232_get_stop(struct rs232_port_t *p);

View File

@@ -0,0 +1,20 @@
--- a/bindings/lua/luars232.c
+++ b/bindings/lua/luars232.c
@@ -31,7 +31,6 @@
#include "librs232/rs232.h"
-#define MODULE_TIMESTAMP __DATE__ " " __TIME__
#define MODULE_NAMESPACE "luars232"
#define MODULE_VERSION "1.0.3"
#define MODULE_BUILD "$Id: luars232.c 15 2011-02-23 09:02:20Z sp $"
@@ -553,9 +552,6 @@ RS232_LIB int luaopen_luars232(lua_State
lua_pushstring(L, MODULE_BUILD);
lua_setfield(L, -2, "_BUILD");
- lua_pushstring(L, MODULE_TIMESTAMP);
- lua_setfield(L, -2, "_TIMESTAMP");
-
lua_pushstring(L, MODULE_COPYRIGHT);
lua_setfield(L, -2, "_COPYRIGHT");

View File

@@ -0,0 +1,53 @@
#
# Copyright (C) 20013-2014 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:=lua-sha2
PKG_VERSION:=0.2.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_MIRROR_HASH:=79e65bd7cb1b8ef64e125c9e57f40b7d38678599587c1894ce57838814403945
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/lgierth/lua-sha2.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=02bd4bfdc8062c7e1ae51c5a72906efc0a6375ee
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/lua-sha2
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua binding for Aaron Gifford's SHA-2 implementation
URL:=https://code.google.com/p/sha2/
MAINTAINER:=Lars Gierth <larsg@systemli.org>
DEPENDS:=+lua
endef
define Package/lua-sha2/description
Lua Binding for the SHA-2 (SHA-256/384/512) BSD-licensed C implementation by Aaron Gifford.
Also contains a HMAC implementation in Lua.
endef
TARGET_CFLAGS += -fPIC -DSHA2_USE_INTTYPES_H -DBYTE_ORDER -DLITTLE_ENDIAN
TARGET_LDFLAGS += -fPIC -DSHA2_USE_INTTYPES_H -DBYTE_ORDER -DLITTLE_ENDIAN
define Build/Configure
endef
define Package/lua-sha2/install
$(INSTALL_DIR) $(1)/usr/lib/lua/hmac
$(INSTALL_DATA) $(PKG_BUILD_DIR)/sha2.so $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/hmac.lua $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/hmac/sha2.lua $(1)/usr/lib/lua/hmac
$(INSTALL_DATA) $(PKG_BUILD_DIR)/hmac/md5.lua $(1)/usr/lib/lua/hmac
endef
$(eval $(call BuildPackage,lua-sha2))

View File

@@ -0,0 +1,14 @@
From: Lars Gierth <larsg@systemli.org>
Date: Tue, 2 Sep 2014 00:05:39 +0200
Add rump Makefile
new file mode 100644
index 0000000..f081d38
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,4 @@
+all: sha2.o sha2lib.o
+ $(CC) -shared -o sha2.so sha2.o sha2lib.o
+
+.PHONY: all

View File

@@ -0,0 +1,42 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-struct
PKG_VERSION:=0.9.2
PKG_RELEASE:=1
PKG_VERSION_TAG:=$(PKG_VERSION)-1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION_TAG).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/iryont/$(PKG_NAME)/tar.gz/$(PKG_VERSION_TAG)?
PKG_HASH:=30d4e3584e27caa504745fdf5e191f2469ae284dc51271292654856905a4603d
PKG_MAINTAINER:=jasle <jasle@riseup.net>
PKG_LICENSE:=MIT/X11
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION_TAG)
include $(INCLUDE_DIR)/package.mk
define Package/lua-struct
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Implementation of binary packing/unpacking in pure lua
URL:=https://github.com/iryont/lua-struct
endef
define Package/lua-struct/desription
lua-struct is a pure lua Implementation for packing and unpacking
binary data.
endef
define Build/Compile
echo "Nothing to compile, pure lua package"
endef
define Package/lua-struct/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/struct.lua $(1)/usr/lib/lua/
endef
$(eval $(call BuildPackage,lua-struct))

View File

@@ -0,0 +1,97 @@
#
# Copyright (C) 2015 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:=lua-wsapi
PKG_VERSION:=1.7
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/keplerproject/wsapi/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=48dc7aba0fd2e96a3e5ef51045b5d923964f6ae299de761aa0467031ad44e987
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/wsapi-$(PKG_VERSION)
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/lua-wsapi/Default
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua WSAPI
URL:=https://keplerproject.github.io/wsapi/
DEPENDS:= +lua
PKGARCH:=all
endef
define Package/lua-wsapi/Default/description
WSAPI is an API that abstracts the web server from Lua web applications
endef
define Package/lua-wsapi-base
$(call Package/lua-wsapi/Default)
TITLE+= base
DEPENDS+= +luafilesystem
VARIANT:=base
endef
define Package/lua-wsapi-base/description
$(call Package/lua-wsapi/Default/description)
.
This package contains the basic stuff.
endef
define Package/lua-wsapi-xavante
$(call Package/lua-wsapi/Default)
TITLE+= xavante
DEPENDS+= +lua-wsapi-base +lua-xavante
VARIANT:=xavante
endef
define Package/lua-wsapi-xavante/description
$(call Package/lua-wsapi/Default/description)
.
This package contains the Xavante stuff.
endef
define Build/Configure
endef
define Build/Compile
endef
define Build/Install
endef
define Package/lua-wsapi-base/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/wsapi.lua $(1)/usr/lib/lua
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/launcher/wsapi.cgi $(1)/usr/bin
$(INSTALL_DIR) $(1)/usr/lib/lua/wsapi
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/wsapi/{common,request,response,util,cgi,sapi,ringer,mock}.lua $(1)/usr/lib/lua/wsapi
endef
define Package/lua-wsapi-xavante/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/launcher/wsapi $(1)/usr/bin
$(INSTALL_DIR) $(1)/usr/lib/lua/wsapi
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/wsapi/xavante.lua $(1)/usr/lib/lua/wsapi
endef
$(eval $(call BuildPackage,lua-wsapi-base))
$(eval $(call BuildPackage,lua-wsapi-xavante))

View File

@@ -0,0 +1,60 @@
#
# Copyright (C) 2015 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:=lua-xavante
PKG_VERSION:=2.4.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/keplerproject/xavante/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=0e4f49dd96cb092cd5d80cc66a5204dcb22a14f80897a121f2f0d1dceb1c7ba5
PKG_BUILD_DIR:=$(BUILD_DIR)/xavante-$(PKG_VERSION)
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/lua-xavante
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Xavante Web Server
URL:=https://keplerproject.github.io/xavante/
DEPENDS:= +lua
PKGARCH:=all
endef
define Package/lua-xavante/description
Xavante is a Lua HTTP 1.1 Web server that uses a modular architecture based on URI mapped handlers.
endef
define Build/Configure
endef
define Build/Compile
endef
define Build/Install
endef
define Package/lua-xavante/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/sajax/sajax.lua $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/xavante/xavante.lua $(1)/usr/lib/lua
$(INSTALL_DIR) $(1)/usr/lib/lua/xavante
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/xavante/{cgiluahandler,encoding,filehandler,httpd,mime,patternhandler,redirecthandler,vhostshandler,indexhandler,urlhandler,ruleshandler}.lua $(1)/usr/lib/lua/xavante
endef
$(eval $(call BuildPackage,lua-xavante))

165
lang/lua/lua5.4/Makefile Normal file
View File

@@ -0,0 +1,165 @@
#
# Copyright (C) 2006-2023 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:=lua
PKG_VERSION:=5.4.7
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.lua.org/ftp/ \
https://www.tecgraf.puc-rio.br/lua/ftp/
PKG_HASH:=9fbf5e28ef86c69858f6d3d34eccc32e911c1a28b4120ff3e84aaa70cfbf1e30
PKG_BUILD_PARALLEL:=1
PKG_MAINTAINER:=Christian Marangi <ansuelsmth@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYRIGHT
PKG_CPE_ID:=cpe:/a:lua:lua
HOST_PATCH_DIR := ./patches-host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/lua5.4/Default
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua programming language (version 5.4)
URL:=https://www.lua.org/
endef
define Package/lua5.4/Default/description
Lua is a powerful, efficient, lightweight, embeddable scripting language. It
supports procedural programming, object-oriented programming, functional
programming, data-driven programming, and data description.
endef
define Package/liblua5.4
$(call Package/lua5.4/Default)
SUBMENU:=
SECTION:=libs
CATEGORY:=Libraries
TITLE+= (libraries)
ABI_VERSION:=5.4
endef
define Package/liblua5.4/description
$(call Package/lua5.4/Default/description)
This package contains the Lua shared libraries, needed by other programs.
endef
define Package/lua5.4
$(call Package/lua5.4/Default)
DEPENDS:=+liblua5.4
TITLE+= (interpreter)
endef
define Package/lua5.4/description
$(call Package/lua5.4/Default/description)
This package contains the Lua language interpreter.
endef
define Package/luac5.4
$(call Package/lua5.4/Default)
DEPENDS:=+liblua5.4
TITLE+= (compiler)
endef
define Package/luac5.4/description
$(call Package/lua5.4/Default/description)
This package contains the Lua language compiler.
endef
define Build/Prepare
$(call Build/Prepare/Default)
mv $(PKG_BUILD_DIR)/doc/lua.1 $(PKG_BUILD_DIR)/doc/lua5.4.1
mv $(PKG_BUILD_DIR)/doc/luac.1 $(PKG_BUILD_DIR)/doc/luac5.4.1
endef
TARGET_CFLAGS += -DLUA_USE_LINUX $(FPIC) -std=gnu99
define Build/Compile
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
CC="$(TARGET_CROSS)gcc" \
AR="$(TARGET_CROSS)ar rcu" \
RANLIB="$(TARGET_CROSS)ranlib" \
INSTALL_ROOT=/usr \
CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
PKG_VERSION=$(PKG_VERSION) \
linux
rm -rf $(PKG_INSTALL_DIR)
mkdir -p $(PKG_INSTALL_DIR)
$(MAKE) -C $(PKG_BUILD_DIR) \
INSTALL_TOP="$(PKG_INSTALL_DIR)/usr" \
install
endef
define Host/Prepare
$(call Host/Prepare/Default)
mv $(HOST_BUILD_DIR)/doc/lua.1 $(HOST_BUILD_DIR)/doc/lua5.4.1
mv $(HOST_BUILD_DIR)/doc/luac.1 $(HOST_BUILD_DIR)/doc/luac5.4.1
endef
define Host/Configure
$(SED) 's,"/usr/local/","$(STAGING_DIR_HOSTPKG)/",' $(HOST_BUILD_DIR)/src/luaconf.h
endef
ifeq ($(HOST_OS),Darwin)
LUA_OS:=macosx
else
ifeq ($(HOST_OS),FreeBSD)
LUA_OS:=freebsd
else
LUA_OS:=linux
endif
endif
define Host/Compile
$(MAKE) -C $(HOST_BUILD_DIR) \
CC="$(HOSTCC) $(HOST_FPIC) -std=gnu99" \
$(LUA_OS)
endef
define Host/Install
$(MAKE) -C $(HOST_BUILD_DIR) \
INSTALL_TOP="$(STAGING_DIR_HOSTPKG)" \
install
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/lua5.4 $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/include/lua5.4/lua{,lib,conf}.h $(1)/usr/include/lua5.4/
$(CP) $(PKG_INSTALL_DIR)/usr/include/lua5.4/lua.hpp $(1)/usr/include/lua5.4/
$(CP) $(PKG_INSTALL_DIR)/usr/include/lua5.4/lauxlib.h $(1)/usr/include/lua5.4/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/liblua5.4.{a,so*} $(1)/usr/lib/
$(LN) liblua5.4.so.0.0.0 $(1)/usr/lib/liblualib5.4.so
endef
define Package/liblua5.4/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/liblua5.4.so* $(1)/usr/lib/
endef
define Package/lua5.4/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/lua5.4 $(1)/usr/bin/
endef
define Package/luac5.4/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/luac5.4 $(1)/usr/bin/
endef
$(eval $(call BuildPackage,liblua5.4))
$(eval $(call BuildPackage,lua5.4))
$(eval $(call BuildPackage,luac5.4))
$(eval $(call HostBuild))

View File

@@ -0,0 +1,65 @@
From 96576b44a1b368bd6590eb0778ae45cc9ccede3f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Fri, 21 Jun 2019 14:08:38 +0200
Subject: [PATCH] include version number
Including it allows multiple lua versions to coexist.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ PLAT= guess
# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
INSTALL_TOP= /usr/local
INSTALL_BIN= $(INSTALL_TOP)/bin
-INSTALL_INC= $(INSTALL_TOP)/include
+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
INSTALL_LIB= $(INSTALL_TOP)/lib
INSTALL_MAN= $(INSTALL_TOP)/man/man1
INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
@@ -39,10 +39,10 @@ RM= rm -f
PLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris
# What to install.
-TO_BIN= lua luac
+TO_BIN= lua$V luac$V
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
-TO_LIB= liblua.a
-TO_MAN= lua.1 luac.1
+TO_LIB= liblua$V.a
+TO_MAN= lua$V.1 luac$V.1
# Lua version and release.
V= 5.4
@@ -52,7 +52,7 @@ R= $V.7
all: $(PLAT)
$(PLATS) help test clean:
- @cd src && $(MAKE) $@
+ @cd src && $(MAKE) $@ V=$V
install: dummy
cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
--- a/src/Makefile
+++ b/src/Makefile
@@ -32,15 +32,15 @@ CMCFLAGS=
PLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris
-LUA_A= liblua.a
+LUA_A= liblua$V.a
CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
-LUA_T= lua
+LUA_T= lua$V
LUA_O= lua.o
-LUAC_T= luac
+LUAC_T= luac$V
LUAC_O= luac.o
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)

View File

@@ -0,0 +1,27 @@
--- a/src/Makefile
+++ b/src/Makefile
@@ -126,7 +126,7 @@ c89:
@echo ''
FreeBSD NetBSD OpenBSD freebsd:
- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc"
+ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX $(if $(USE_READLINE), -DLUA_USE_READLINE) -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc"
generic: $(ALL)
@@ -136,13 +136,13 @@ ios:
Linux linux: linux-noreadline
linux-noreadline:
- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl"
+ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX $(if $(USE_READLINE), -DLUA_USE_READLINE)" SYSLIBS="-Wl,-E -ldl $(if $(USE_READLINE), -lreadline)"
linux-readline:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline"
Darwin macos macosx:
- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline"
+ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX $(if $(USE_READLINE), -DLUA_USE_READLINE)" SYSLIBS="$(if $(USE_READLINE), -lreadline)"
mingw:
$(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" \

View File

@@ -0,0 +1,65 @@
From 96576b44a1b368bd6590eb0778ae45cc9ccede3f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Fri, 21 Jun 2019 14:08:38 +0200
Subject: [PATCH] include version number
Including it allows multiple lua versions to coexist.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ PLAT= guess
# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
INSTALL_TOP= /usr/local
INSTALL_BIN= $(INSTALL_TOP)/bin
-INSTALL_INC= $(INSTALL_TOP)/include
+INSTALL_INC= $(INSTALL_TOP)/include/lua$V
INSTALL_LIB= $(INSTALL_TOP)/lib
INSTALL_MAN= $(INSTALL_TOP)/man/man1
INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
@@ -39,10 +39,10 @@ RM= rm -f
PLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris
# What to install.
-TO_BIN= lua luac
+TO_BIN= lua$V luac$V
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
-TO_LIB= liblua.a
-TO_MAN= lua.1 luac.1
+TO_LIB= liblua$V.a
+TO_MAN= lua$V.1 luac$V.1
# Lua version and release.
V= 5.4
@@ -52,7 +52,7 @@ R= $V.7
all: $(PLAT)
$(PLATS) help test clean:
- @cd src && $(MAKE) $@
+ @cd src && $(MAKE) $@ V=$V
install: dummy
cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
--- a/src/Makefile
+++ b/src/Makefile
@@ -32,15 +32,15 @@ CMCFLAGS=
PLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris
-LUA_A= liblua.a
+LUA_A= liblua$V.a
CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
-LUA_T= lua
+LUA_T= lua$V
LUA_O= lua.o
-LUAC_T= luac
+LUAC_T= luac$V
LUAC_O= luac.o
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)

View File

@@ -0,0 +1,115 @@
--- a/Makefile
+++ b/Makefile
@@ -41,7 +41,7 @@ PLATS= guess aix bsd c89 freebsd generic
# What to install.
TO_BIN= lua$V luac$V
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
-TO_LIB= liblua$V.a
+TO_LIB= liblua$V.a liblua$V.so.0.0.0
TO_MAN= lua$V.1 luac$V.1
# Lua version and release.
@@ -59,6 +59,9 @@ install: dummy
cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+ ln -s liblua$V.so.0.0.0 $(INSTALL_LIB)/liblua$V.so.0.0
+ ln -s liblua$V.so.0.0.0 $(INSTALL_LIB)/liblua$V.so.0
+ ln -s liblua$V.so.0.0.0 $(INSTALL_LIB)/liblua$V.so
cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
uninstall:
--- a/src/ldebug.h
+++ b/src/ldebug.h
@@ -36,7 +36,7 @@
#endif
-LUAI_FUNC int luaG_getfuncline (const Proto *f, int pc);
+LUA_API int luaG_getfuncline (const Proto *f, int pc);
LUAI_FUNC const char *luaG_findlocal (lua_State *L, CallInfo *ci, int n,
StkId *pos);
LUAI_FUNC l_noret luaG_typeerror (lua_State *L, const TValue *o,
--- a/src/lstring.h
+++ b/src/lstring.h
@@ -50,7 +50,7 @@ LUAI_FUNC void luaS_init (lua_State *L);
LUAI_FUNC void luaS_remove (lua_State *L, TString *ts);
LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s, int nuvalue);
LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l);
-LUAI_FUNC TString *luaS_new (lua_State *L, const char *str);
+LUA_API TString *luaS_new (lua_State *L, const char *str);
LUAI_FUNC TString *luaS_createlngstrobj (lua_State *L, size_t l);
--- a/src/lundump.h
+++ b/src/lundump.h
@@ -29,7 +29,7 @@
LUAI_FUNC LClosure* luaU_undump (lua_State* L, ZIO* Z, const char* name);
/* dump one chunk; from ldump.c */
-LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w,
+LUA_API int luaU_dump (lua_State* L, const Proto* f, lua_Writer w,
void* data, int strip);
#endif
--- a/src/lzio.h
+++ b/src/lzio.h
@@ -44,7 +44,7 @@ typedef struct Mbuffer {
#define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0)
-LUAI_FUNC void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader,
+LUA_API void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader,
void *data);
LUAI_FUNC size_t luaZ_read (ZIO* z, void *b, size_t n); /* read next n bytes */
--- a/src/Makefile
+++ b/src/Makefile
@@ -33,6 +33,7 @@ CMCFLAGS=
PLATS= guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris
LUA_A= liblua$V.a
+LUA_SO= liblua$V.so.0.0.0
CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
@@ -44,8 +45,9 @@ LUAC_T= luac$V
LUAC_O= luac.o
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
+ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T)
ALL_A= $(LUA_A)
+ALL_SO= $(LUA_SO)
# Targets start here.
default: $(PLAT)
@@ -56,14 +58,25 @@ o: $(ALL_O)
a: $(ALL_A)
+so: $(ALL_SO)
+
$(LUA_A): $(BASE_O)
$(AR) $@ $(BASE_O)
$(RANLIB) $@
-$(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
+$(LUA_SO): $(CORE_O) $(LIB_O)
+ $(CC) -o $@ -Wl,-Bsymbolic-functions -shared -Wl,-soname="$@" $?
+ ln -fs $@ liblua$V.so.0.0
+ ln -fs $@ liblua$V.so.0
+ ln -fs $@ liblua$V.so
+
+$(LUA_T): $(LUA_O) $(LUA_SO)
+ $(CC) -o $@ -L. -llua$V $(MYLDFLAGS) $(LUA_O) $(LIBS)
+
+$(LUAC_T): $(LUAC_O) $(LUA_SO)
+ $(CC) -o $@ -L. -llua$V $(MYLDFLAGS) $(LUAC_O) $(LIBS)
-$(LUAC_T): $(LUAC_O) $(LUA_A)
+$(LUAC_T)-host: $(LUAC_O) $(LUA_A)
$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
test:

View File

@@ -0,0 +1,27 @@
--- a/src/Makefile
+++ b/src/Makefile
@@ -126,7 +126,7 @@ c89:
@echo ''
FreeBSD NetBSD OpenBSD freebsd:
- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc"
+ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX $(if $(USE_READLINE), -DLUA_USE_READLINE) -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc"
generic: $(ALL)
@@ -136,13 +136,13 @@ ios:
Linux linux: linux-noreadline
linux-noreadline:
- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl"
+ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX $(if $(USE_READLINE), -DLUA_USE_READLINE)" SYSLIBS="-Wl,-E -ldl $(if $(USE_READLINE), -lreadline)"
linux-readline:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline"
Darwin macos macosx:
- $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline"
+ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX $(if $(USE_READLINE), -DLUA_USE_READLINE)" SYSLIBS="$(if $(USE_READLINE), -lreadline)"
mingw:
$(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" \

View File

@@ -0,0 +1,52 @@
#
# Copyright (C) 2014 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:=luabitop
PKG_VERSION:=1.0.3
PKG_RELEASE:=1
_BASENAME:=LuaBitOp
PKG_SOURCE:=$(_BASENAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://bitop.luajit.org/download/
PKG_HASH:=d514a3d2cefa76c8d11c1b9ec740d5fae316a9c9764e1e12ddea21e4982fab4b
PKG_BUILD_DIR:=$(BUILD_DIR)/$(_BASENAME)-$(PKG_VERSION)
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/luabitop
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=luabitop
URL:=http://bitop.luajit.org/
DEPENDS:=+liblua
endef
define Package/luabitop/description
Lua BitOp is a C extension module for Lua 5.1/5.2 which adds bitwise operations on numbers.
endef
define Build/Configure
endef
TARGET_CFLAGS += $(FPIC) -DLUA_USE_LINUX -DLUA_NUMBER_DOUBLE
define Build/Compile
$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_CPPFLAGS) -std=gnu99 $(FPIC) -DLUA_USE_LINUX -shared -o $(PKG_BUILD_DIR)/bit.so $(PKG_BUILD_DIR)/bit.c
endef
define Package/luabitop/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bit.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,luabitop))

View File

@@ -0,0 +1,61 @@
#
# Copyright (C) 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:=luaexpat
PKG_VERSION:=1.5.2
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/lunarmodules/luaexpat
PKG_MIRROR_HASH:=d479e41ea28b71ede214754d0cde87e6582022fcdd3981c928b41491062835c8
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENCE
PKG_CPE_ID:=cpe:/a:matthewwild:luaexpat
include $(INCLUDE_DIR)/package.mk
define Package/luaexpat
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=LuaExpat
URL:=http://matthewwild.co.uk/projects/luaexpat/
MAINTAINER:=W. Michael Petullo <mike@flyn.org>
DEPENDS:=+lua +libexpat
endef
define Package/luaexpat/description
LuaExpat is a SAX XML parser based on the Expat library.
endef
define Build/Configure
endef
define Build/Compile
$(CP) files/compat-5.1r5 $(PKG_BUILD_DIR)/compat-5.1r5
$(MAKE) -C $(PKG_BUILD_DIR) \
EXPAT_INC="-I$(STAGING_DIR)/usr/include/" \
LUA_INC="-I$(STAGING_DIR)/usr/include/" \
LUA_LIBDIR="$(STAGING_DIR)/usr/lib/" \
COMPAT_DIR="$(PKG_BUILD_DIR)/compat-5.1r5" \
LDFLAGS="-shared $(TARGET_LDFLAGS)" \
CC="$(TARGET_CC) $(TARGET_CFLAGS) $(FPIC) -std=c99" \
LD="$(TARGET_CROSS)ld -shared"
endef
define Package/luaexpat/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/lxp.so $(1)/usr/lib/lua/lxp.so
$(INSTALL_DIR) $(1)/usr/lib/lua/lxp
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/lxp/lom.lua $(1)/usr/lib/lua/lxp
endef
$(eval $(call BuildPackage,luaexpat))

View File

@@ -0,0 +1,97 @@
/*
** Compat-5.1
** Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/compat)
** $Id: compat-5.1.c,v 1.13 2006/02/20 21:12:47 carregal Exp $
*/
#include <stdio.h>
#include <string.h>
#include "lua.h"
#include "lauxlib.h"
#include "compat-5.1.h"
static void getfield(lua_State *L, int idx, const char *name) {
const char *end = strchr(name, '.');
lua_pushvalue(L, idx);
while (end) {
lua_pushlstring(L, name, end - name);
lua_gettable(L, -2);
lua_remove(L, -2);
if (lua_isnil(L, -1)) return;
name = end+1;
end = strchr(name, '.');
}
lua_pushstring(L, name);
lua_gettable(L, -2);
lua_remove(L, -2);
}
static void setfield(lua_State *L, int idx, const char *name) {
const char *end = strchr(name, '.');
lua_pushvalue(L, idx);
while (end) {
lua_pushlstring(L, name, end - name);
lua_gettable(L, -2);
/* create table if not found */
if (lua_isnil(L, -1)) {
lua_pop(L, 1);
lua_newtable(L);
lua_pushlstring(L, name, end - name);
lua_pushvalue(L, -2);
lua_settable(L, -4);
}
lua_remove(L, -2);
name = end+1;
end = strchr(name, '.');
}
lua_pushstring(L, name);
lua_pushvalue(L, -3);
lua_settable(L, -3);
lua_pop(L, 2);
}
LUALIB_API void luaL_module(lua_State *L, const char *libname,
const luaL_reg *l, int nup) {
if (libname) {
getfield(L, LUA_GLOBALSINDEX, libname); /* check whether lib already exists */
if (lua_isnil(L, -1)) {
int env, ns;
lua_pop(L, 1); /* get rid of nil */
lua_pushliteral(L, "require");
lua_gettable(L, LUA_GLOBALSINDEX); /* look for require */
lua_getfenv(L, -1); /* getfenv(require) */
lua_remove(L, -2); /* remove function require */
env = lua_gettop(L);
lua_newtable(L); /* create namespace for lib */
ns = lua_gettop(L);
getfield(L, env, "package.loaded"); /* get package.loaded table */
if (lua_isnil(L, -1)) { /* create package.loaded table */
lua_pop(L, 1); /* remove previous result */
lua_newtable(L);
lua_pushvalue(L, -1);
setfield(L, env, "package.loaded");
}
else if (!lua_istable(L, -1))
luaL_error(L, "name conflict for library `%s'", libname);
lua_pushstring(L, libname);
lua_pushvalue(L, ns);
lua_settable(L, -3); /* package.loaded[libname] = ns */
lua_pop(L, 1); /* get rid of package.loaded table */
lua_pushvalue(L, ns); /* copy namespace */
setfield(L, LUA_GLOBALSINDEX, libname);
lua_remove (L, env); /* remove env */
}
lua_insert(L, -(nup+1)); /* move library table to below upvalues */
}
for (; l->name; l++) {
int i;
lua_pushstring(L, l->name);
for (i=0; i<nup; i++) /* copy upvalues to the top */
lua_pushvalue(L, -(nup+1));
lua_pushcclosure(L, l->func, nup);
lua_settable(L, -(nup+3));
}
lua_pop(L, nup); /* remove upvalues */
}

View File

@@ -0,0 +1,13 @@
/*
** Compat-5.1
** Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/compat/)
** $Id: compat-5.1.h,v 1.8 2006/02/20 21:12:47 carregal Exp $
*/
#ifndef COMPAT_H
LUALIB_API void luaL_module(lua_State *L, const char *libname,
const luaL_reg *l, int nup);
#define luaL_openlib luaL_module
#endif

View File

@@ -0,0 +1,267 @@
--
-- Compat-5.1
-- Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/compat)
-- According to Lua 5.1
-- $Id: compat-5.1.lua,v 1.22 2006/02/20 21:12:47 carregal Exp $
--
_COMPAT51 = "Compat-5.1 R5"
local LUA_DIRSEP = '/'
local LUA_OFSEP = '_'
local OLD_LUA_OFSEP = ''
local POF = 'luaopen_'
local LUA_PATH_MARK = '?'
local LUA_IGMARK = ':'
local assert, error, getfenv, ipairs, loadfile, loadlib, pairs, setfenv, setmetatable, type = assert, error, getfenv, ipairs, loadfile, loadlib, pairs, setfenv, setmetatable, type
local find, format, gfind, gsub, sub = string.find, string.format, string.gfind, string.gsub, string.sub
--
-- avoid overwriting the package table if it's already there
--
package = package or {}
local _PACKAGE = package
package.path = LUA_PATH or os.getenv("LUA_PATH") or
("./?.lua;" ..
"/usr/local/share/lua/5.0/?.lua;" ..
"/usr/local/share/lua/5.0/?/?.lua;" ..
"/usr/local/share/lua/5.0/?/init.lua" )
package.cpath = LUA_CPATH or os.getenv("LUA_CPATH") or
"./?.so;" ..
"./l?.so;" ..
"/usr/local/lib/lua/5.0/?.so;" ..
"/usr/local/lib/lua/5.0/l?.so"
--
-- make sure require works with standard libraries
--
package.loaded = package.loaded or {}
package.loaded.debug = debug
package.loaded.string = string
package.loaded.math = math
package.loaded.io = io
package.loaded.os = os
package.loaded.table = table
package.loaded.base = _G
package.loaded.coroutine = coroutine
local _LOADED = package.loaded
--
-- avoid overwriting the package.preload table if it's already there
--
package.preload = package.preload or {}
local _PRELOAD = package.preload
--
-- looks for a file `name' in given path
--
local function findfile (name, pname)
name = gsub (name, "%.", LUA_DIRSEP)
local path = _PACKAGE[pname]
assert (type(path) == "string", format ("package.%s must be a string", pname))
for c in gfind (path, "[^;]+") do
c = gsub (c, "%"..LUA_PATH_MARK, name)
local f = io.open (c)
if f then
f:close ()
return c
end
end
return nil -- not found
end
--
-- check whether library is already loaded
--
local function loader_preload (name)
assert (type(name) == "string", format (
"bad argument #1 to `require' (string expected, got %s)", type(name)))
assert (type(_PRELOAD) == "table", "`package.preload' must be a table")
return _PRELOAD[name]
end
--
-- Lua library loader
--
local function loader_Lua (name)
assert (type(name) == "string", format (
"bad argument #1 to `require' (string expected, got %s)", type(name)))
local filename = findfile (name, "path")
if not filename then
return false
end
local f, err = loadfile (filename)
if not f then
error (format ("error loading module `%s' (%s)", name, err))
end
return f
end
local function mkfuncname (name)
name = gsub (name, "^.*%"..LUA_IGMARK, "")
name = gsub (name, "%.", LUA_OFSEP)
return POF..name
end
local function old_mkfuncname (name)
--name = gsub (name, "^.*%"..LUA_IGMARK, "")
name = gsub (name, "%.", OLD_LUA_OFSEP)
return POF..name
end
--
-- C library loader
--
local function loader_C (name)
assert (type(name) == "string", format (
"bad argument #1 to `require' (string expected, got %s)", type(name)))
local filename = findfile (name, "cpath")
if not filename then
return false
end
local funcname = mkfuncname (name)
local f, err = loadlib (filename, funcname)
if not f then
funcname = old_mkfuncname (name)
f, err = loadlib (filename, funcname)
if not f then
error (format ("error loading module `%s' (%s)", name, err))
end
end
return f
end
local function loader_Croot (name)
local p = gsub (name, "^([^.]*).-$", "%1")
if p == "" then
return
end
local filename = findfile (p, "cpath")
if not filename then
return
end
local funcname = mkfuncname (name)
local f, err, where = loadlib (filename, funcname)
if f then
return f
elseif where ~= "init" then
error (format ("error loading module `%s' (%s)", name, err))
end
end
-- create `loaders' table
package.loaders = package.loaders or { loader_preload, loader_Lua, loader_C, loader_Croot, }
local _LOADERS = package.loaders
--
-- iterate over available loaders
--
local function load (name, loaders)
-- iterate over available loaders
assert (type (loaders) == "table", "`package.loaders' must be a table")
for i, loader in ipairs (loaders) do
local f = loader (name)
if f then
return f
end
end
error (format ("module `%s' not found", name))
end
-- sentinel
local sentinel = function () end
--
-- new require
--
function _G.require (modname)
assert (type(modname) == "string", format (
"bad argument #1 to `require' (string expected, got %s)", type(name)))
local p = _LOADED[modname]
if p then -- is it there?
if p == sentinel then
error (format ("loop or previous error loading module '%s'", modname))
end
return p -- package is already loaded
end
local init = load (modname, _LOADERS)
_LOADED[modname] = sentinel
local actual_arg = _G.arg
_G.arg = { modname }
local res = init (modname)
if res then
_LOADED[modname] = res
end
_G.arg = actual_arg
if _LOADED[modname] == sentinel then
_LOADED[modname] = true
end
return _LOADED[modname]
end
-- findtable
local function findtable (t, f)
assert (type(f)=="string", "not a valid field name ("..tostring(f)..")")
local ff = f.."."
local ok, e, w = find (ff, '(.-)%.', 1)
while ok do
local nt = rawget (t, w)
if not nt then
nt = {}
t[w] = nt
elseif type(t) ~= "table" then
return sub (f, e+1)
end
t = nt
ok, e, w = find (ff, '(.-)%.', e+1)
end
return t
end
--
-- new package.seeall function
--
function _PACKAGE.seeall (module)
local t = type(module)
assert (t == "table", "bad argument #1 to package.seeall (table expected, got "..t..")")
local meta = getmetatable (module)
if not meta then
meta = {}
setmetatable (module, meta)
end
meta.__index = _G
end
--
-- new module function
--
function _G.module (modname, ...)
local ns = _LOADED[modname]
if type(ns) ~= "table" then
ns = findtable (_G, modname)
if not ns then
error (string.format ("name conflict for module '%s'", modname))
end
_LOADED[modname] = ns
end
if not ns._NAME then
ns._NAME = modname
ns._M = ns
ns._PACKAGE = gsub (modname, "[^.]*$", "")
end
setfenv (2, ns)
for i, f in ipairs (arg) do
f (ns)
end
end

View File

@@ -0,0 +1,66 @@
#
# Copyright (C) 2008-2010 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:=luafilesystem
PKG_VERSION:=1.8.0
PKG_RELEASE:=1
PKG_LICENSE:=MIT
PKG_MIRROR_HASH:=69c676dd811fc77e205b1b8064017536fade1be47e50ba785c243a5d7540cdf6
PKG_SOURCE_URL:=https://github.com/keplerproject/luafilesystem.git
PKG_SOURCE_VERSION:=v$(subst .,_,$(PKG_VERSION))
PKG_SOURCE_PROTO:=git
include $(INCLUDE_DIR)/package.mk
define Package/luafilesystem
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=LuaFileSystem
URL:=http://keplerproject.github.com/luafilesystem/
MAINTAINER:=W. Michael Petullo <mike@flyn.org>
DEPENDS:=+liblua
endef
define Package/luafilesystem/description
This package contains the LuaFileSystem library, a set of portable
functions for directory creation, listing and deletion and for file
locking.
endef
define Build/Configure
endef
TARGET_CFLAGS += $(FPIC) $(TARGET_CPPFLAGS)
TARGET_LDFLAGS += -llua
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS) -std=gnu99" \
LDFLAGS="$(TARGET_LDFLAGS)"
$(TARGET_CROSS)ar r $(PKG_BUILD_DIR)/src/luafilesystem.a $(PKG_BUILD_DIR)/src/lfs.o
endef
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR)/usr/include
$(INSTALL_DIR) $(STAGING_DIR)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/lfs.h $(STAGING_DIR)/usr/include
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/lfs.so $(STAGING_DIR)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/luafilesystem.a $(STAGING_DIR)/usr/lib/lua
endef
define Package/luafilesystem/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/lfs.so $(1)/usr/lib/lua/lfs.so
endef
$(eval $(call BuildPackage,luafilesystem))

98
lang/lua/luajit/Makefile Normal file
View File

@@ -0,0 +1,98 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luajit
PKG_VERSION:=2.1.0
PKG_REAL_VERSION:=$(PKG_VERSION)-beta3
PKG_RELEASE:=8
PKG_SOURCE:=LuaJIT-$(PKG_REAL_VERSION).tar.gz
PKG_SOURCE_URL:=https://luajit.org/download
PKG_HASH:=1ad2e34b111c802f9d0cdf019e986909123237a28c746b21295b63c9e785d9c3
PKG_BUILD_DIR:=$(BUILD_DIR)/LuaJIT-$(PKG_REAL_VERSION)
PKG_MAINTAINER:=Morteza Milani <milani@pichak.co>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYRIGHT
PKG_CPE_ID:=cpe:/a:luajit:luajit
PKG_BUILD_FLAGS:=no-mips16
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/luajit
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=LuaJIT
URL:=https://www.luajit.org
DEPENDS:=@HAS_LUAJIT_ARCH
endef
define Package/luajit/description
LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language. *** Requires GCC Multilib on host system to build! ***
endef
define Package/luajit/config
config HAS_LUAJIT_ARCH
bool
default y if i386||x86_64||arm||armeb||aarch64||powerpc||mips||mipsel||mips64
endef
ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH), x86_64 mips64))
ifeq ($(CONFIG_ARCH_64BIT),)
HOST_BITS := -m32
endif
endif
define Build/Compile
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
HOST_CC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_BITS)" \
CROSS="$(TARGET_CROSS)" \
DPREFIX=$(PKG_INSTALL_DIR)/usr \
PREFIX=/usr \
TARGET_SYS=Linux \
TARGET_CFLAGS="$(TARGET_CFLAGS)" \
BUILDMODE=dynamic
rm -rf $(PKG_INSTALL_DIR)
mkdir -p $(PKG_INSTALL_DIR)
$(MAKE) -C $(PKG_BUILD_DIR) \
DPREFIX=$(PKG_INSTALL_DIR)/usr \
PREFIX=/usr \
TARGET_SYS=Linux \
install
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/luajit-2.1
$(CP) $(PKG_INSTALL_DIR)/usr/include/luajit-2.1/*.{h,hpp} $(1)/usr/include/luajit-2.1
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/luajit.pc $(1)/usr/lib/pkgconfig/
$(CP) $(PKG_INSTALL_DIR)/usr/bin/luajit-$(PKG_REAL_VERSION) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME)
endef
define Package/luajit/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/luajit-$(PKG_REAL_VERSION) $(1)/usr/bin/$(PKG_NAME)
endef
define Host/Compile
$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \
DPREFIX=$(STAGING_DIR_HOSTPKG) \
TARGET_CFLAGS="$(HOST_CFLAGS)" \
TARGET_LDFLAGS="$(HOST_LDFLAGS)"
endef
define Host/Install
$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \
DPREFIX=$(STAGING_DIR_HOSTPKG) \
install
$(CP) $(STAGING_DIR_HOSTPKG)/bin/luajit-$(PKG_REAL_VERSION) $(STAGING_DIR_HOSTPKG)/bin/$(PKG_NAME)
endef
$(eval $(call HostBuild,luajit))
$(eval $(call BuildPackage,luajit))

View File

@@ -0,0 +1,13 @@
--- a/src/luaconf.h
+++ b/src/luaconf.h
@@ -35,8 +35,8 @@
#ifndef LUA_LMULTILIB
#define LUA_LMULTILIB "lib"
#endif
-#define LUA_LROOT "/usr/local"
-#define LUA_LUADIR "/lua/5.1/"
+#define LUA_LROOT "/usr"
+#define LUA_LUADIR "/lua/"
#define LUA_LJDIR "/luajit-2.1.0-beta3/"
#ifdef LUA_ROOT

View File

@@ -0,0 +1,12 @@
--- a/src/lj_arch.h
+++ b/src/lj_arch.h
@@ -391,9 +391,6 @@
#endif
#endif
#elif !LJ_TARGET_PS3
-#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3)
-#error "Need at least GCC 4.3 or newer"
-#endif
#endif
#endif

View File

@@ -0,0 +1,26 @@
commit 18c9cf7d3788a8f7408df45df92fc4ae3bcc0d80
Author: Mike Pall <mike>
Date: Sat Jan 25 17:37:12 2020 +0100
Fix POSIX install with missing or incompatible ldconfig.
--- a/Makefile
+++ b/Makefile
@@ -75,7 +75,7 @@ SYMLINK= ln -sf
INSTALL_X= install -m 0755
INSTALL_F= install -m 0644
UNINSTALL= $(RM)
-LDCONFIG= ldconfig -n
+LDCONFIG= ldconfig -n 2>/dev/null
SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \
-e "s|^multilib=.*|multilib=$(MULTILIB)|"
@@ -121,7 +121,7 @@ install: $(INSTALL_DEP)
$(RM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
cd src && test -f $(FILE_SO) && \
$(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
- $(LDCONFIG) $(INSTALL_LIB) && \
+ ( $(LDCONFIG) $(INSTALL_LIB) || : ) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,744 @@
From 71b7bc88341945f13f3951e2bb5fd247b639ff7a Mon Sep 17 00:00:00 2001
From: Mike Pall <mike>
Date: Sun, 3 Sep 2017 23:20:53 +0200
Subject: [PATCH] PPC: Add soft-float support to JIT compiler backend.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
---
src/lj_arch.h | 1 -
src/lj_asm_ppc.h | 321 ++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 278 insertions(+), 44 deletions(-)
--- a/src/lj_arch.h
+++ b/src/lj_arch.h
@@ -273,7 +273,6 @@
#endif
#if LJ_ABI_SOFTFP
-#define LJ_ARCH_NOJIT 1 /* NYI */
#define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL
#else
#define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL_SINGLE
--- a/src/lj_asm_ppc.h
+++ b/src/lj_asm_ppc.h
@@ -226,6 +226,7 @@ static void asm_fusexrefx(ASMState *as,
emit_tab(as, pi, rt, left, right);
}
+#if !LJ_SOFTFP
/* Fuse to multiply-add/sub instruction. */
static int asm_fusemadd(ASMState *as, IRIns *ir, PPCIns pi, PPCIns pir)
{
@@ -245,6 +246,7 @@ static int asm_fusemadd(ASMState *as, IR
}
return 0;
}
+#endif
/* -- Calls --------------------------------------------------------------- */
@@ -253,13 +255,17 @@ static void asm_gencall(ASMState *as, co
{
uint32_t n, nargs = CCI_XNARGS(ci);
int32_t ofs = 8;
- Reg gpr = REGARG_FIRSTGPR, fpr = REGARG_FIRSTFPR;
+ Reg gpr = REGARG_FIRSTGPR;
+#if !LJ_SOFTFP
+ Reg fpr = REGARG_FIRSTFPR;
+#endif
if ((void *)ci->func)
emit_call(as, (void *)ci->func);
for (n = 0; n < nargs; n++) { /* Setup args. */
IRRef ref = args[n];
if (ref) {
IRIns *ir = IR(ref);
+#if !LJ_SOFTFP
if (irt_isfp(ir->t)) {
if (fpr <= REGARG_LASTFPR) {
lua_assert(rset_test(as->freeset, fpr)); /* Already evicted. */
@@ -271,7 +277,9 @@ static void asm_gencall(ASMState *as, co
emit_spstore(as, ir, r, ofs);
ofs += irt_isnum(ir->t) ? 8 : 4;
}
- } else {
+ } else
+#endif
+ {
if (gpr <= REGARG_LASTGPR) {
lua_assert(rset_test(as->freeset, gpr)); /* Already evicted. */
ra_leftov(as, gpr, ref);
@@ -290,8 +298,10 @@ static void asm_gencall(ASMState *as, co
}
checkmclim(as);
}
+#if !LJ_SOFTFP
if ((ci->flags & CCI_VARARG)) /* Vararg calls need to know about FPR use. */
emit_tab(as, fpr == REGARG_FIRSTFPR ? PPCI_CRXOR : PPCI_CREQV, 6, 6, 6);
+#endif
}
/* Setup result reg/sp for call. Evict scratch regs. */
@@ -299,8 +309,10 @@ static void asm_setupresult(ASMState *as
{
RegSet drop = RSET_SCRATCH;
int hiop = ((ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t));
+#if !LJ_SOFTFP
if ((ci->flags & CCI_NOFPRCLOBBER))
drop &= ~RSET_FPR;
+#endif
if (ra_hasreg(ir->r))
rset_clear(drop, ir->r); /* Dest reg handled below. */
if (hiop && ra_hasreg((ir+1)->r))
@@ -308,7 +320,7 @@ static void asm_setupresult(ASMState *as
ra_evictset(as, drop); /* Evictions must be performed first. */
if (ra_used(ir)) {
lua_assert(!irt_ispri(ir->t));
- if (irt_isfp(ir->t)) {
+ if (!LJ_SOFTFP && irt_isfp(ir->t)) {
if ((ci->flags & CCI_CASTU64)) {
/* Use spill slot or temp slots. */
int32_t ofs = ir->s ? sps_scale(ir->s) : SPOFS_TMP;
@@ -377,6 +389,7 @@ static void asm_retf(ASMState *as, IRIns
/* -- Type conversions ---------------------------------------------------- */
+#if !LJ_SOFTFP
static void asm_tointg(ASMState *as, IRIns *ir, Reg left)
{
RegSet allow = RSET_FPR;
@@ -409,15 +422,23 @@ static void asm_tobit(ASMState *as, IRIn
emit_fai(as, PPCI_STFD, tmp, RID_SP, SPOFS_TMP);
emit_fab(as, PPCI_FADD, tmp, left, right);
}
+#endif
static void asm_conv(ASMState *as, IRIns *ir)
{
IRType st = (IRType)(ir->op2 & IRCONV_SRCMASK);
+#if !LJ_SOFTFP
int stfp = (st == IRT_NUM || st == IRT_FLOAT);
+#endif
IRRef lref = ir->op1;
- lua_assert(irt_type(ir->t) != st);
lua_assert(!(irt_isint64(ir->t) ||
(st == IRT_I64 || st == IRT_U64))); /* Handled by SPLIT. */
+#if LJ_SOFTFP
+ /* FP conversions are handled by SPLIT. */
+ lua_assert(!irt_isfp(ir->t) && !(st == IRT_NUM || st == IRT_FLOAT));
+ /* Can't check for same types: SPLIT uses CONV int.int + BXOR for sfp NEG. */
+#else
+ lua_assert(irt_type(ir->t) != st);
if (irt_isfp(ir->t)) {
Reg dest = ra_dest(as, ir, RSET_FPR);
if (stfp) { /* FP to FP conversion. */
@@ -476,7 +497,9 @@ static void asm_conv(ASMState *as, IRIns
emit_fb(as, PPCI_FCTIWZ, tmp, left);
}
}
- } else {
+ } else
+#endif
+ {
Reg dest = ra_dest(as, ir, RSET_GPR);
if (st >= IRT_I8 && st <= IRT_U16) { /* Extend to 32 bit integer. */
Reg left = ra_alloc1(as, ir->op1, RSET_GPR);
@@ -496,17 +519,41 @@ static void asm_strto(ASMState *as, IRIn
{
const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_strscan_num];
IRRef args[2];
- int32_t ofs;
+ int32_t ofs = SPOFS_TMP;
+#if LJ_SOFTFP
+ ra_evictset(as, RSET_SCRATCH);
+ if (ra_used(ir)) {
+ if (ra_hasspill(ir->s) && ra_hasspill((ir+1)->s) &&
+ (ir->s & 1) == LJ_BE && (ir->s ^ 1) == (ir+1)->s) {
+ int i;
+ for (i = 0; i < 2; i++) {
+ Reg r = (ir+i)->r;
+ if (ra_hasreg(r)) {
+ ra_free(as, r);
+ ra_modified(as, r);
+ emit_spload(as, ir+i, r, sps_scale((ir+i)->s));
+ }
+ }
+ ofs = sps_scale(ir->s & ~1);
+ } else {
+ Reg rhi = ra_dest(as, ir+1, RSET_GPR);
+ Reg rlo = ra_dest(as, ir, rset_exclude(RSET_GPR, rhi));
+ emit_tai(as, PPCI_LWZ, rhi, RID_SP, ofs);
+ emit_tai(as, PPCI_LWZ, rlo, RID_SP, ofs+4);
+ }
+ }
+#else
RegSet drop = RSET_SCRATCH;
if (ra_hasreg(ir->r)) rset_set(drop, ir->r); /* Spill dest reg (if any). */
ra_evictset(as, drop);
+ if (ir->s) ofs = sps_scale(ir->s);
+#endif
asm_guardcc(as, CC_EQ);
emit_ai(as, PPCI_CMPWI, RID_RET, 0); /* Test return status. */
args[0] = ir->op1; /* GCstr *str */
args[1] = ASMREF_TMP1; /* TValue *n */
asm_gencall(as, ci, args);
/* Store the result to the spill slot or temp slots. */
- ofs = ir->s ? sps_scale(ir->s) : SPOFS_TMP;
emit_tai(as, PPCI_ADDI, ra_releasetmp(as, ASMREF_TMP1), RID_SP, ofs);
}
@@ -530,7 +577,10 @@ static void asm_tvptr(ASMState *as, Reg
Reg src = ra_alloc1(as, ref, allow);
emit_setgl(as, src, tmptv.gcr);
}
- type = ra_allock(as, irt_toitype(ir->t), allow);
+ if (LJ_SOFTFP && (ir+1)->o == IR_HIOP)
+ type = ra_alloc1(as, ref+1, allow);
+ else
+ type = ra_allock(as, irt_toitype(ir->t), allow);
emit_setgl(as, type, tmptv.it);
}
}
@@ -574,11 +624,27 @@ static void asm_href(ASMState *as, IRIns
Reg tisnum = RID_NONE, tmpnum = RID_NONE;
IRRef refkey = ir->op2;
IRIns *irkey = IR(refkey);
+ int isk = irref_isk(refkey);
IRType1 kt = irkey->t;
uint32_t khash;
MCLabel l_end, l_loop, l_next;
rset_clear(allow, tab);
+#if LJ_SOFTFP
+ if (!isk) {
+ key = ra_alloc1(as, refkey, allow);
+ rset_clear(allow, key);
+ if (irkey[1].o == IR_HIOP) {
+ if (ra_hasreg((irkey+1)->r)) {
+ tmpnum = (irkey+1)->r;
+ ra_noweak(as, tmpnum);
+ } else {
+ tmpnum = ra_allocref(as, refkey+1, allow);
+ }
+ rset_clear(allow, tmpnum);
+ }
+ }
+#else
if (irt_isnum(kt)) {
key = ra_alloc1(as, refkey, RSET_FPR);
tmpnum = ra_scratch(as, rset_exclude(RSET_FPR, key));
@@ -588,6 +654,7 @@ static void asm_href(ASMState *as, IRIns
key = ra_alloc1(as, refkey, allow);
rset_clear(allow, key);
}
+#endif
tmp2 = ra_scratch(as, allow);
rset_clear(allow, tmp2);
@@ -610,7 +677,7 @@ static void asm_href(ASMState *as, IRIns
asm_guardcc(as, CC_EQ);
else
emit_condbranch(as, PPCI_BC|PPCF_Y, CC_EQ, l_end);
- if (irt_isnum(kt)) {
+ if (!LJ_SOFTFP && irt_isnum(kt)) {
emit_fab(as, PPCI_FCMPU, 0, tmpnum, key);
emit_condbranch(as, PPCI_BC, CC_GE, l_next);
emit_ab(as, PPCI_CMPLW, tmp1, tisnum);
@@ -620,7 +687,10 @@ static void asm_href(ASMState *as, IRIns
emit_ab(as, PPCI_CMPW, tmp2, key);
emit_condbranch(as, PPCI_BC, CC_NE, l_next);
}
- emit_ai(as, PPCI_CMPWI, tmp1, irt_toitype(irkey->t));
+ if (LJ_SOFTFP && ra_hasreg(tmpnum))
+ emit_ab(as, PPCI_CMPW, tmp1, tmpnum);
+ else
+ emit_ai(as, PPCI_CMPWI, tmp1, irt_toitype(irkey->t));
if (!irt_ispri(kt))
emit_tai(as, PPCI_LWZ, tmp2, dest, (int32_t)offsetof(Node, key.gcr));
}
@@ -629,19 +699,19 @@ static void asm_href(ASMState *as, IRIns
(((char *)as->mcp-(char *)l_loop) & 0xffffu);
/* Load main position relative to tab->node into dest. */
- khash = irref_isk(refkey) ? ir_khash(irkey) : 1;
+ khash = isk ? ir_khash(irkey) : 1;
if (khash == 0) {
emit_tai(as, PPCI_LWZ, dest, tab, (int32_t)offsetof(GCtab, node));
} else {
Reg tmphash = tmp1;
- if (irref_isk(refkey))
+ if (isk)
tmphash = ra_allock(as, khash, allow);
emit_tab(as, PPCI_ADD, dest, dest, tmp1);
emit_tai(as, PPCI_MULLI, tmp1, tmp1, sizeof(Node));
emit_asb(as, PPCI_AND, tmp1, tmp2, tmphash);
emit_tai(as, PPCI_LWZ, dest, tab, (int32_t)offsetof(GCtab, node));
emit_tai(as, PPCI_LWZ, tmp2, tab, (int32_t)offsetof(GCtab, hmask));
- if (irref_isk(refkey)) {
+ if (isk) {
/* Nothing to do. */
} else if (irt_isstr(kt)) {
emit_tai(as, PPCI_LWZ, tmp1, key, (int32_t)offsetof(GCstr, hash));
@@ -651,13 +721,19 @@ static void asm_href(ASMState *as, IRIns
emit_asb(as, PPCI_XOR, tmp1, tmp1, tmp2);
emit_rotlwi(as, tmp1, tmp1, (HASH_ROT2+HASH_ROT1)&31);
emit_tab(as, PPCI_SUBF, tmp2, dest, tmp2);
- if (irt_isnum(kt)) {
+ if (LJ_SOFTFP ? (irkey[1].o == IR_HIOP) : irt_isnum(kt)) {
+#if LJ_SOFTFP
+ emit_asb(as, PPCI_XOR, tmp2, key, tmp1);
+ emit_rotlwi(as, dest, tmp1, HASH_ROT1);
+ emit_tab(as, PPCI_ADD, tmp1, tmpnum, tmpnum);
+#else
int32_t ofs = ra_spill(as, irkey);
emit_asb(as, PPCI_XOR, tmp2, tmp2, tmp1);
emit_rotlwi(as, dest, tmp1, HASH_ROT1);
emit_tab(as, PPCI_ADD, tmp1, tmp1, tmp1);
emit_tai(as, PPCI_LWZ, tmp2, RID_SP, ofs+4);
emit_tai(as, PPCI_LWZ, tmp1, RID_SP, ofs);
+#endif
} else {
emit_asb(as, PPCI_XOR, tmp2, key, tmp1);
emit_rotlwi(as, dest, tmp1, HASH_ROT1);
@@ -784,8 +860,8 @@ static PPCIns asm_fxloadins(IRIns *ir)
case IRT_U8: return PPCI_LBZ;
case IRT_I16: return PPCI_LHA;
case IRT_U16: return PPCI_LHZ;
- case IRT_NUM: return PPCI_LFD;
- case IRT_FLOAT: return PPCI_LFS;
+ case IRT_NUM: lua_assert(!LJ_SOFTFP); return PPCI_LFD;
+ case IRT_FLOAT: if (!LJ_SOFTFP) return PPCI_LFS;
default: return PPCI_LWZ;
}
}
@@ -795,8 +871,8 @@ static PPCIns asm_fxstoreins(IRIns *ir)
switch (irt_type(ir->t)) {
case IRT_I8: case IRT_U8: return PPCI_STB;
case IRT_I16: case IRT_U16: return PPCI_STH;
- case IRT_NUM: return PPCI_STFD;
- case IRT_FLOAT: return PPCI_STFS;
+ case IRT_NUM: lua_assert(!LJ_SOFTFP); return PPCI_STFD;
+ case IRT_FLOAT: if (!LJ_SOFTFP) return PPCI_STFS;
default: return PPCI_STW;
}
}
@@ -839,7 +915,8 @@ static void asm_fstore(ASMState *as, IRI
static void asm_xload(ASMState *as, IRIns *ir)
{
- Reg dest = ra_dest(as, ir, irt_isfp(ir->t) ? RSET_FPR : RSET_GPR);
+ Reg dest = ra_dest(as, ir,
+ (!LJ_SOFTFP && irt_isfp(ir->t)) ? RSET_FPR : RSET_GPR);
lua_assert(!(ir->op2 & IRXLOAD_UNALIGNED));
if (irt_isi8(ir->t))
emit_as(as, PPCI_EXTSB, dest, dest);
@@ -857,7 +934,8 @@ static void asm_xstore_(ASMState *as, IR
Reg src = ra_alloc1(as, irb->op1, RSET_GPR);
asm_fusexrefx(as, PPCI_STWBRX, src, ir->op1, rset_exclude(RSET_GPR, src));
} else {
- Reg src = ra_alloc1(as, ir->op2, irt_isfp(ir->t) ? RSET_FPR : RSET_GPR);
+ Reg src = ra_alloc1(as, ir->op2,
+ (!LJ_SOFTFP && irt_isfp(ir->t)) ? RSET_FPR : RSET_GPR);
asm_fusexref(as, asm_fxstoreins(ir), src, ir->op1,
rset_exclude(RSET_GPR, src), ofs);
}
@@ -871,10 +949,19 @@ static void asm_ahuvload(ASMState *as, I
Reg dest = RID_NONE, type = RID_TMP, tmp = RID_TMP, idx;
RegSet allow = RSET_GPR;
int32_t ofs = AHUREF_LSX;
+ if (LJ_SOFTFP && (ir+1)->o == IR_HIOP) {
+ t.irt = IRT_NUM;
+ if (ra_used(ir+1)) {
+ type = ra_dest(as, ir+1, allow);
+ rset_clear(allow, type);
+ }
+ ofs = 0;
+ }
if (ra_used(ir)) {
- lua_assert(irt_isnum(t) || irt_isint(t) || irt_isaddr(t));
- if (!irt_isnum(t)) ofs = 0;
- dest = ra_dest(as, ir, irt_isnum(t) ? RSET_FPR : RSET_GPR);
+ lua_assert((LJ_SOFTFP ? 0 : irt_isnum(ir->t)) ||
+ irt_isint(ir->t) || irt_isaddr(ir->t));
+ if (LJ_SOFTFP || !irt_isnum(t)) ofs = 0;
+ dest = ra_dest(as, ir, (!LJ_SOFTFP && irt_isnum(t)) ? RSET_FPR : allow);
rset_clear(allow, dest);
}
idx = asm_fuseahuref(as, ir->op1, &ofs, allow);
@@ -883,12 +970,13 @@ static void asm_ahuvload(ASMState *as, I
asm_guardcc(as, CC_GE);
emit_ab(as, PPCI_CMPLW, type, tisnum);
if (ra_hasreg(dest)) {
- if (ofs == AHUREF_LSX) {
+ if (!LJ_SOFTFP && ofs == AHUREF_LSX) {
tmp = ra_scratch(as, rset_exclude(rset_exclude(RSET_GPR,
(idx&255)), (idx>>8)));
emit_fab(as, PPCI_LFDX, dest, (idx&255), tmp);
} else {
- emit_fai(as, PPCI_LFD, dest, idx, ofs);
+ emit_fai(as, LJ_SOFTFP ? PPCI_LWZ : PPCI_LFD, dest, idx,
+ ofs+4*LJ_SOFTFP);
}
}
} else {
@@ -911,7 +999,7 @@ static void asm_ahustore(ASMState *as, I
int32_t ofs = AHUREF_LSX;
if (ir->r == RID_SINK)
return;
- if (irt_isnum(ir->t)) {
+ if (!LJ_SOFTFP && irt_isnum(ir->t)) {
src = ra_alloc1(as, ir->op2, RSET_FPR);
} else {
if (!irt_ispri(ir->t)) {
@@ -919,11 +1007,14 @@ static void asm_ahustore(ASMState *as, I
rset_clear(allow, src);
ofs = 0;
}
- type = ra_allock(as, (int32_t)irt_toitype(ir->t), allow);
+ if (LJ_SOFTFP && (ir+1)->o == IR_HIOP)
+ type = ra_alloc1(as, (ir+1)->op2, allow);
+ else
+ type = ra_allock(as, (int32_t)irt_toitype(ir->t), allow);
rset_clear(allow, type);
}
idx = asm_fuseahuref(as, ir->op1, &ofs, allow);
- if (irt_isnum(ir->t)) {
+ if (!LJ_SOFTFP && irt_isnum(ir->t)) {
if (ofs == AHUREF_LSX) {
emit_fab(as, PPCI_STFDX, src, (idx&255), RID_TMP);
emit_slwi(as, RID_TMP, (idx>>8), 3);
@@ -948,21 +1039,33 @@ static void asm_sload(ASMState *as, IRIn
IRType1 t = ir->t;
Reg dest = RID_NONE, type = RID_NONE, base;
RegSet allow = RSET_GPR;
+ int hiop = (LJ_SOFTFP && (ir+1)->o == IR_HIOP);
+ if (hiop)
+ t.irt = IRT_NUM;
lua_assert(!(ir->op2 & IRSLOAD_PARENT)); /* Handled by asm_head_side(). */
- lua_assert(irt_isguard(t) || !(ir->op2 & IRSLOAD_TYPECHECK));
+ lua_assert(irt_isguard(ir->t) || !(ir->op2 & IRSLOAD_TYPECHECK));
lua_assert(LJ_DUALNUM ||
!irt_isint(t) || (ir->op2 & (IRSLOAD_CONVERT|IRSLOAD_FRAME)));
+#if LJ_SOFTFP
+ lua_assert(!(ir->op2 & IRSLOAD_CONVERT)); /* Handled by LJ_SOFTFP SPLIT. */
+ if (hiop && ra_used(ir+1)) {
+ type = ra_dest(as, ir+1, allow);
+ rset_clear(allow, type);
+ }
+#else
if ((ir->op2 & IRSLOAD_CONVERT) && irt_isguard(t) && irt_isint(t)) {
dest = ra_scratch(as, RSET_FPR);
asm_tointg(as, ir, dest);
t.irt = IRT_NUM; /* Continue with a regular number type check. */
- } else if (ra_used(ir)) {
+ } else
+#endif
+ if (ra_used(ir)) {
lua_assert(irt_isnum(t) || irt_isint(t) || irt_isaddr(t));
- dest = ra_dest(as, ir, irt_isnum(t) ? RSET_FPR : RSET_GPR);
+ dest = ra_dest(as, ir, (!LJ_SOFTFP && irt_isnum(t)) ? RSET_FPR : allow);
rset_clear(allow, dest);
base = ra_alloc1(as, REF_BASE, allow);
rset_clear(allow, base);
- if ((ir->op2 & IRSLOAD_CONVERT)) {
+ if (!LJ_SOFTFP && (ir->op2 & IRSLOAD_CONVERT)) {
if (irt_isint(t)) {
emit_tai(as, PPCI_LWZ, dest, RID_SP, SPOFS_TMPLO);
dest = ra_scratch(as, RSET_FPR);
@@ -994,10 +1097,13 @@ dotypecheck:
if ((ir->op2 & IRSLOAD_TYPECHECK)) {
Reg tisnum = ra_allock(as, (int32_t)LJ_TISNUM, allow);
asm_guardcc(as, CC_GE);
- emit_ab(as, PPCI_CMPLW, RID_TMP, tisnum);
+#if !LJ_SOFTFP
type = RID_TMP;
+#endif
+ emit_ab(as, PPCI_CMPLW, type, tisnum);
}
- if (ra_hasreg(dest)) emit_fai(as, PPCI_LFD, dest, base, ofs-4);
+ if (ra_hasreg(dest)) emit_fai(as, LJ_SOFTFP ? PPCI_LWZ : PPCI_LFD, dest,
+ base, ofs-(LJ_SOFTFP?0:4));
} else {
if ((ir->op2 & IRSLOAD_TYPECHECK)) {
asm_guardcc(as, CC_NE);
@@ -1119,6 +1225,7 @@ static void asm_obar(ASMState *as, IRIns
/* -- Arithmetic and logic operations ------------------------------------- */
+#if !LJ_SOFTFP
static void asm_fparith(ASMState *as, IRIns *ir, PPCIns pi)
{
Reg dest = ra_dest(as, ir, RSET_FPR);
@@ -1146,13 +1253,17 @@ static void asm_fpmath(ASMState *as, IRI
else
asm_callid(as, ir, IRCALL_lj_vm_floor + ir->op2);
}
+#endif
static void asm_add(ASMState *as, IRIns *ir)
{
+#if !LJ_SOFTFP
if (irt_isnum(ir->t)) {
if (!asm_fusemadd(as, ir, PPCI_FMADD, PPCI_FMADD))
asm_fparith(as, ir, PPCI_FADD);
- } else {
+ } else
+#endif
+ {
Reg dest = ra_dest(as, ir, RSET_GPR);
Reg right, left = ra_hintalloc(as, ir->op1, dest, RSET_GPR);
PPCIns pi;
@@ -1191,10 +1302,13 @@ static void asm_add(ASMState *as, IRIns
static void asm_sub(ASMState *as, IRIns *ir)
{
+#if !LJ_SOFTFP
if (irt_isnum(ir->t)) {
if (!asm_fusemadd(as, ir, PPCI_FMSUB, PPCI_FNMSUB))
asm_fparith(as, ir, PPCI_FSUB);
- } else {
+ } else
+#endif
+ {
PPCIns pi = PPCI_SUBF;
Reg dest = ra_dest(as, ir, RSET_GPR);
Reg left, right;
@@ -1220,9 +1334,12 @@ static void asm_sub(ASMState *as, IRIns
static void asm_mul(ASMState *as, IRIns *ir)
{
+#if !LJ_SOFTFP
if (irt_isnum(ir->t)) {
asm_fparith(as, ir, PPCI_FMUL);
- } else {
+ } else
+#endif
+ {
PPCIns pi = PPCI_MULLW;
Reg dest = ra_dest(as, ir, RSET_GPR);
Reg right, left = ra_hintalloc(as, ir->op1, dest, RSET_GPR);
@@ -1250,9 +1367,12 @@ static void asm_mul(ASMState *as, IRIns
static void asm_neg(ASMState *as, IRIns *ir)
{
+#if !LJ_SOFTFP
if (irt_isnum(ir->t)) {
asm_fpunary(as, ir, PPCI_FNEG);
- } else {
+ } else
+#endif
+ {
Reg dest, left;
PPCIns pi = PPCI_NEG;
if (as->flagmcp == as->mcp) {
@@ -1563,9 +1683,40 @@ static void asm_bitshift(ASMState *as, I
PPCI_RLWINM|PPCF_MB(0)|PPCF_ME(31))
#define asm_bror(as, ir) lua_assert(0)
+#if LJ_SOFTFP
+static void asm_sfpmin_max(ASMState *as, IRIns *ir)
+{
+ CCallInfo ci = lj_ir_callinfo[IRCALL_softfp_cmp];
+ IRRef args[4];
+ MCLabel l_right, l_end;
+ Reg desthi = ra_dest(as, ir, RSET_GPR), destlo = ra_dest(as, ir+1, RSET_GPR);
+ Reg righthi, lefthi = ra_alloc2(as, ir, RSET_GPR);
+ Reg rightlo, leftlo = ra_alloc2(as, ir+1, RSET_GPR);
+ PPCCC cond = (IROp)ir->o == IR_MIN ? CC_EQ : CC_NE;
+ righthi = (lefthi >> 8); lefthi &= 255;
+ rightlo = (leftlo >> 8); leftlo &= 255;
+ args[0^LJ_BE] = ir->op1; args[1^LJ_BE] = (ir+1)->op1;
+ args[2^LJ_BE] = ir->op2; args[3^LJ_BE] = (ir+1)->op2;
+ l_end = emit_label(as);
+ if (desthi != righthi) emit_mr(as, desthi, righthi);
+ if (destlo != rightlo) emit_mr(as, destlo, rightlo);
+ l_right = emit_label(as);
+ if (l_end != l_right) emit_jmp(as, l_end);
+ if (desthi != lefthi) emit_mr(as, desthi, lefthi);
+ if (destlo != leftlo) emit_mr(as, destlo, leftlo);
+ if (l_right == as->mcp+1) {
+ cond ^= 4; l_right = l_end; ++as->mcp;
+ }
+ emit_condbranch(as, PPCI_BC, cond, l_right);
+ ra_evictset(as, RSET_SCRATCH);
+ emit_cmpi(as, RID_RET, 1);
+ asm_gencall(as, &ci, args);
+}
+#endif
+
static void asm_min_max(ASMState *as, IRIns *ir, int ismax)
{
- if (irt_isnum(ir->t)) {
+ if (!LJ_SOFTFP && irt_isnum(ir->t)) {
Reg dest = ra_dest(as, ir, RSET_FPR);
Reg tmp = dest;
Reg right, left = ra_alloc2(as, ir, RSET_FPR);
@@ -1653,7 +1804,7 @@ static void asm_intcomp_(ASMState *as, I
static void asm_comp(ASMState *as, IRIns *ir)
{
PPCCC cc = asm_compmap[ir->o];
- if (irt_isnum(ir->t)) {
+ if (!LJ_SOFTFP && irt_isnum(ir->t)) {
Reg right, left = ra_alloc2(as, ir, RSET_FPR);
right = (left >> 8); left &= 255;
asm_guardcc(as, (cc >> 4));
@@ -1674,6 +1825,44 @@ static void asm_comp(ASMState *as, IRIns
#define asm_equal(as, ir) asm_comp(as, ir)
+#if LJ_SOFTFP
+/* SFP comparisons. */
+static void asm_sfpcomp(ASMState *as, IRIns *ir)
+{
+ const CCallInfo *ci = &lj_ir_callinfo[IRCALL_softfp_cmp];
+ RegSet drop = RSET_SCRATCH;
+ Reg r;
+ IRRef args[4];
+ args[0^LJ_BE] = ir->op1; args[1^LJ_BE] = (ir+1)->op1;
+ args[2^LJ_BE] = ir->op2; args[3^LJ_BE] = (ir+1)->op2;
+
+ for (r = REGARG_FIRSTGPR; r <= REGARG_FIRSTGPR+3; r++) {
+ if (!rset_test(as->freeset, r) &&
+ regcost_ref(as->cost[r]) == args[r-REGARG_FIRSTGPR])
+ rset_clear(drop, r);
+ }
+ ra_evictset(as, drop);
+ asm_setupresult(as, ir, ci);
+ switch ((IROp)ir->o) {
+ case IR_ULT:
+ asm_guardcc(as, CC_EQ);
+ emit_ai(as, PPCI_CMPWI, RID_RET, 0);
+ case IR_ULE:
+ asm_guardcc(as, CC_EQ);
+ emit_ai(as, PPCI_CMPWI, RID_RET, 1);
+ break;
+ case IR_GE: case IR_GT:
+ asm_guardcc(as, CC_EQ);
+ emit_ai(as, PPCI_CMPWI, RID_RET, 2);
+ default:
+ asm_guardcc(as, (asm_compmap[ir->o] & 0xf));
+ emit_ai(as, PPCI_CMPWI, RID_RET, 0);
+ break;
+ }
+ asm_gencall(as, ci, args);
+}
+#endif
+
#if LJ_HASFFI
/* 64 bit integer comparisons. */
static void asm_comp64(ASMState *as, IRIns *ir)
@@ -1703,19 +1892,36 @@ static void asm_comp64(ASMState *as, IRI
/* Hiword op of a split 64 bit op. Previous op must be the loword op. */
static void asm_hiop(ASMState *as, IRIns *ir)
{
-#if LJ_HASFFI
+#if LJ_HASFFI || LJ_SOFTFP
/* HIOP is marked as a store because it needs its own DCE logic. */
int uselo = ra_used(ir-1), usehi = ra_used(ir); /* Loword/hiword used? */
if (LJ_UNLIKELY(!(as->flags & JIT_F_OPT_DCE))) uselo = usehi = 1;
if ((ir-1)->o == IR_CONV) { /* Conversions to/from 64 bit. */
as->curins--; /* Always skip the CONV. */
+#if LJ_HASFFI && !LJ_SOFTFP
if (usehi || uselo)
asm_conv64(as, ir);
return;
+#endif
} else if ((ir-1)->o <= IR_NE) { /* 64 bit integer comparisons. ORDER IR. */
as->curins--; /* Always skip the loword comparison. */
+#if LJ_SOFTFP
+ if (!irt_isint(ir->t)) {
+ asm_sfpcomp(as, ir-1);
+ return;
+ }
+#endif
+#if LJ_HASFFI
asm_comp64(as, ir);
+#endif
+ return;
+#if LJ_SOFTFP
+ } else if ((ir-1)->o == IR_MIN || (ir-1)->o == IR_MAX) {
+ as->curins--; /* Always skip the loword min/max. */
+ if (uselo || usehi)
+ asm_sfpmin_max(as, ir-1);
return;
+#endif
} else if ((ir-1)->o == IR_XSTORE) {
as->curins--; /* Handle both stores here. */
if ((ir-1)->r != RID_SINK) {
@@ -1726,14 +1932,27 @@ static void asm_hiop(ASMState *as, IRIns
}
if (!usehi) return; /* Skip unused hiword op for all remaining ops. */
switch ((ir-1)->o) {
+#if LJ_HASFFI
case IR_ADD: as->curins--; asm_add64(as, ir); break;
case IR_SUB: as->curins--; asm_sub64(as, ir); break;
case IR_NEG: as->curins--; asm_neg64(as, ir); break;
+#endif
+#if LJ_SOFTFP
+ case IR_SLOAD: case IR_ALOAD: case IR_HLOAD: case IR_ULOAD: case IR_VLOAD:
+ case IR_STRTO:
+ if (!uselo)
+ ra_allocref(as, ir->op1, RSET_GPR); /* Mark lo op as used. */
+ break;
+#endif
case IR_CALLN:
+ case IR_CALLS:
case IR_CALLXS:
if (!uselo)
ra_allocref(as, ir->op1, RID2RSET(RID_RETLO)); /* Mark lo op as used. */
break;
+#if LJ_SOFTFP
+ case IR_ASTORE: case IR_HSTORE: case IR_USTORE: case IR_TOSTR:
+#endif
case IR_CNEWI:
/* Nothing to do here. Handled by lo op itself. */
break;
@@ -1797,8 +2016,19 @@ static void asm_stack_restore(ASMState *
if ((sn & SNAP_NORESTORE))
continue;
if (irt_isnum(ir->t)) {
+#if LJ_SOFTFP
+ Reg tmp;
+ RegSet allow = rset_exclude(RSET_GPR, RID_BASE);
+ lua_assert(irref_isk(ref)); /* LJ_SOFTFP: must be a number constant. */
+ tmp = ra_allock(as, (int32_t)ir_knum(ir)->u32.lo, allow);
+ emit_tai(as, PPCI_STW, tmp, RID_BASE, ofs+(LJ_BE?4:0));
+ if (rset_test(as->freeset, tmp+1)) allow = RID2RSET(tmp+1);
+ tmp = ra_allock(as, (int32_t)ir_knum(ir)->u32.hi, allow);
+ emit_tai(as, PPCI_STW, tmp, RID_BASE, ofs+(LJ_BE?0:4));
+#else
Reg src = ra_alloc1(as, ref, RSET_FPR);
emit_fai(as, PPCI_STFD, src, RID_BASE, ofs);
+#endif
} else {
Reg type;
RegSet allow = rset_exclude(RSET_GPR, RID_BASE);
@@ -1811,6 +2041,10 @@ static void asm_stack_restore(ASMState *
if ((sn & (SNAP_CONT|SNAP_FRAME))) {
if (s == 0) continue; /* Do not overwrite link to previous frame. */
type = ra_allock(as, (int32_t)(*flinks--), allow);
+#if LJ_SOFTFP
+ } else if ((sn & SNAP_SOFTFPNUM)) {
+ type = ra_alloc1(as, ref+1, rset_exclude(RSET_GPR, RID_BASE));
+#endif
} else {
type = ra_allock(as, (int32_t)irt_toitype(ir->t), allow);
}
@@ -1947,14 +2181,15 @@ static Reg asm_setup_call_slots(ASMState
int nslots = 2, ngpr = REGARG_NUMGPR, nfpr = REGARG_NUMFPR;
asm_collectargs(as, ir, ci, args);
for (i = 0; i < nargs; i++)
- if (args[i] && irt_isfp(IR(args[i])->t)) {
+ if (!LJ_SOFTFP && args[i] && irt_isfp(IR(args[i])->t)) {
if (nfpr > 0) nfpr--; else nslots = (nslots+3) & ~1;
} else {
if (ngpr > 0) ngpr--; else nslots++;
}
if (nslots > as->evenspill) /* Leave room for args in stack slots. */
as->evenspill = nslots;
- return irt_isfp(ir->t) ? REGSP_HINT(RID_FPRET) : REGSP_HINT(RID_RET);
+ return (!LJ_SOFTFP && irt_isfp(ir->t)) ? REGSP_HINT(RID_FPRET) :
+ REGSP_HINT(RID_RET);
}
static void asm_setup_target(ASMState *as)

View File

@@ -0,0 +1,112 @@
From 195e0be62c0aa0f6aaf63a93ee322bb0a630576c Mon Sep 17 00:00:00 2001
From: Clint Bland <bland.cr@gmail.com>
Date: Wed, 13 Mar 2019 19:19:16 -0700
Subject: [PATCH] Have powerpc use fake GOT like MIPS
---
src/lj_dispatch.c | 15 +++++++++++++++
src/lj_dispatch.h | 29 ++++++++++++++++++++++++++++-
src/vm_ppc.dasc | 9 ++++++++-
3 files changed, 51 insertions(+), 2 deletions(-)
--- a/src/lj_dispatch.c
+++ b/src/lj_dispatch.c
@@ -56,6 +56,18 @@ static const ASMFunction dispatch_got[]
#undef GOTFUNC
#endif
+#if LJ_TARGET_PPC
+#include <math.h>
+LJ_FUNCA_NORET void LJ_FASTCALL lj_ffh_coroutine_wrap_err(lua_State *L,
+ lua_State *co);
+
+#define GOTFUNC(name) (ASMFunction)name,
+static const ASMFunction dispatch_got[] = {
+ GOTDEF(GOTFUNC)
+};
+#undef GOTFUNC
+#endif
+
/* Initialize instruction dispatch table and hot counters. */
void lj_dispatch_init(GG_State *GG)
{
@@ -77,6 +89,9 @@ void lj_dispatch_init(GG_State *GG)
#if LJ_TARGET_MIPS
memcpy(GG->got, dispatch_got, LJ_GOT__MAX*sizeof(ASMFunction *));
#endif
+#if LJ_TARGET_PPC
+ memcpy(GG->got, dispatch_got, LJ_GOT__MAX*4);
+#endif
}
#if LJ_HASJIT
--- a/src/lj_dispatch.h
+++ b/src/lj_dispatch.h
@@ -66,6 +66,33 @@ GOTDEF(GOTENUM)
};
#endif
+#if LJ_TARGET_PPC
+/* Need our own global offset table for the dreaded MIPS calling conventions. */
+#if LJ_SOFTFP
+#ifndef _LJ_IRCALL_H
+extern double __ledf2(double a, double b);
+extern double __adddf3(double a, double b);
+extern double __subdf3(double a, double b);
+extern double __muldf3(double a, double b);
+extern double __divdf3(double a, double b);
+#endif
+#define SFGOTDEF(_) _(__ledf2) _(__adddf3) _(__subdf3) _(__muldf3) _(__divdf3)
+#else
+#define SFGOTDEF(_)
+#endif
+#define GOTDEF(_) \
+ _(floor) _(ceil) _(trunc) _(log) _(log10) _(exp) _(sin) _(cos) _(tan) \
+ _(asin) _(acos) _(atan) _(sinh) _(cosh) _(tanh) _(frexp) _(modf) _(atan2) \
+ _(pow) _(fmod) _(ldexp) _(sqrt) SFGOTDEF(_)
+
+enum {
+#define GOTENUM(name) LJ_GOT_##name,
+GOTDEF(GOTENUM)
+#undef GOTENUM
+ LJ_GOT__MAX
+};
+#endif
+
/* Type of hot counter. Must match the code in the assembler VM. */
/* 16 bits are sufficient. Only 0.0015% overhead with maximum slot penalty. */
typedef uint16_t HotCount;
@@ -89,7 +116,7 @@ typedef uint16_t HotCount;
typedef struct GG_State {
lua_State L; /* Main thread. */
global_State g; /* Global state. */
-#if LJ_TARGET_MIPS
+#if LJ_TARGET_MIPS || LJ_TARGET_PPC
ASMFunction got[LJ_GOT__MAX]; /* Global offset table. */
#endif
#if LJ_HASJIT
--- a/src/vm_ppc.dasc
+++ b/src/vm_ppc.dasc
@@ -59,7 +59,12 @@
|.define ENV_OFS, 8
|.endif
|.else // No TOC.
-|.macro blex, target; bl extern target@plt; .endmacro
+|.macro blex, target
+| lwz TMP0, DISPATCH_GOT(target)(DISPATCH)
+| mtctr TMP0
+| bctrl
+| //bl extern target@plt
+|.endmacro
|.macro .toc, a, b; .endmacro
|.endif
|.macro .tocenv, a, b; .if TOCENV; a, b; .endif; .endmacro
@@ -482,6 +487,8 @@
|// Assumes DISPATCH is relative to GL.
#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field))
#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field))
+#define GG_DISP2GOT (GG_OFS(got) - GG_OFS(dispatch))
+#define DISPATCH_GOT(name) (GG_DISP2GOT + 4*LJ_GOT_##name)
|
#define PC2PROTO(field) ((int)offsetof(GCproto, field)-(int)sizeof(GCproto))
|

View File

@@ -0,0 +1,58 @@
From 2c8b9d5807a515a0ff859899065f512beabcbaed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Bo=C5=99ek?= <simon.borek@nic.cz>
Date: Sat, 16 Jul 2022 18:39:55 +0200
Subject: [PATCH] PPC/e500 with SPE enabled: use soft float instead of failing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This allows building LuaJit for systems with Power ISA SPE
extension[^1] support by using soft float on LuaJit side.
While e500 CPU cores support SPE instruction set extension
allowing them to perform floating point arithmetic natively,
this isn't required. They can function with software floating
point to integer arithmetic translation as well,
just like FPU-less PowerPC CPUs without SPE support.
Therefore I see no need to prevent them from running LuaJit
explicitly.
[^1]: https://www.nxp.com/docs/en/reference-manual/SPEPEM.pdf
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Šimon Bořek <simon.borek@nic.cz>
---
src/lj_arch.h | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
--- a/src/lj_arch.h
+++ b/src/lj_arch.h
@@ -256,7 +256,7 @@
#define LJ_ARCH_NAME "ppc"
#if !defined(LJ_ARCH_HASFPU)
-#if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE)
+#if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE) || defined(__NO_FPRS__)
#define LJ_ARCH_HASFPU 0
#else
#define LJ_ARCH_HASFPU 1
@@ -264,7 +264,7 @@
#endif
#if !defined(LJ_ABI_SOFTFP)
-#if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE)
+#if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE) || defined(__NO_FPRS__)
#define LJ_ABI_SOFTFP 1
#else
#define LJ_ABI_SOFTFP 0
@@ -442,9 +442,6 @@
#if LJ_ARCH_PPC64
#error "No support for PowerPC 64 bit mode (yet)"
#endif
-#if defined(__NO_FPRS__) && !defined(_SOFT_FLOAT)
-#error "No support for PPC/e500 anymore (use LuaJIT 2.0)"
-#endif
#elif LJ_TARGET_MIPS32
#if !((defined(_MIPS_SIM_ABI32) && _MIPS_SIM == _MIPS_SIM_ABI32) || (defined(_ABIO32) && _MIPS_SIM == _ABIO32))
#error "Only o32 ABI supported for MIPS32"

97
lang/lua/luajit2/Makefile Normal file
View File

@@ -0,0 +1,97 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luajit2
PKG_SOURCE_DATE:=2025-10-30
PKG_VERSION:=2.1.$(subst -,.,$(PKG_SOURCE_DATE))
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/openresty/luajit2
PKG_MIRROR_HASH:=7b986a40ef091df5168eaa8b2012d3a95110fafeb69a7c199e3fca9795bae631
PKG_SOURCE_VERSION:=71fae383f6c4637d64b03a6d0ec76ae8c19d6821
PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYRIGHT
PKG_BUILD_FLAGS:=no-mips16
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
# HAS_LUAJIT_ARCH config is defined in luajit and is used to define
# arch deoendency for luajit. Since luajit2 is an improved version of
# luajit, they share the same arch dependency. Refer there to update
# dependency for them.
define Package/luajit2
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Lua
TITLE:=LuaJIT from OpenResty
URL:=https://www.luajit.org
DEPENDS:=@HAS_LUAJIT_ARCH
PROVIDES:=luajit
endef
define Package/luajit2/description
OpenResty's maintained branch of LuaJIT, a Just-In-Time (JIT) compiler for the Lua programming language
endef
ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH), x86_64 mips64))
ifeq ($(CONFIG_ARCH_64BIT),)
HOST_BITS := -m32
endif
endif
define Build/Compile
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
HOST_CC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_BITS)" \
CROSS="$(TARGET_CROSS)" \
DESTDIR=$(PKG_INSTALL_DIR) \
PREFIX=/usr \
TARGET_SYS=Linux \
TARGET_CFLAGS="$(TARGET_CFLAGS)" \
BUILDMODE=dynamic
$(RM) -rf $(PKG_INSTALL_DIR)
mkdir -p $(PKG_INSTALL_DIR)
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR=$(PKG_INSTALL_DIR) \
PREFIX=/usr \
TARGET_SYS=Linux \
install
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/luajit-2.1
$(CP) $(PKG_INSTALL_DIR)/usr/include/luajit-2.1/*.{h,hpp} $(1)/usr/include/luajit-2.1
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/luajit.pc $(1)/usr/lib/pkgconfig/
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/luajit-* $(1)/usr/bin/$(PKG_NAME)
endef
define Package/luajit2/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/luajit-* $(1)/usr/bin/$(PKG_NAME)
endef
define Host/Compile
$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \
DPREFIX=$(STAGING_DIR_HOSTPKG) \
TARGET_CFLAGS="$(HOST_CFLAGS)" \
TARGET_LDFLAGS="$(HOST_LDFLAGS)"
endef
define Host/Install
$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \
DPREFIX=$(STAGING_DIR_HOSTPKG) \
install
$(CP) $(STAGING_DIR_HOSTPKG)/bin/luajit-* $(STAGING_DIR_HOSTPKG)/bin/$(PKG_NAME)
endef
$(eval $(call HostBuild,luajit2))
$(eval $(call BuildPackage,luajit2))

View File

@@ -0,0 +1,13 @@
--- a/src/luaconf.h
+++ b/src/luaconf.h
@@ -34,8 +34,8 @@
#ifndef LUA_LMULTILIB
#define LUA_LMULTILIB "lib"
#endif
-#define LUA_LROOT "/usr/local"
-#define LUA_LUADIR "/lua/5.1/"
+#define LUA_LROOT "/usr"
+#define LUA_LUADIR "/lua/"
#ifdef LUA_ROOT
#define LUA_JROOT LUA_ROOT

View File

@@ -0,0 +1,57 @@
#
# Copyright (C) 2007-2014 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:=lualanes
PKG_VERSION:=3.16.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/LuaLanes/lanes/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=22cfa836de4be14fe588b9cd34e936d6f61ec6f4096d8ae30d4ec35855d9608f
PKG_BUILD_DIR:=$(BUILD_DIR)/lanes-$(PKG_VERSION)
PKG_MAINTAINER:=Vladimir Malyutin <first-leon@yandex.ru>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=COPYRIGHT
PKG_BUILD_DEPENDS:=lua/host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/lualanes
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=LuaLanes
URL:=http://lualanes.github.io/lanes/
DEPENDS:=+lua +luac +liblua +libpthread
endef
define Package/lualanes/description
Lua Lanes is a Lua extension library providing the possibility to run
multiple Lua states in parallel. It is intended to be used for optimizing
performance on multicore CPU's and to study ways to make Lua programs
naturally parallel to begin with.
Lanes is included into your software by the regular require "lanes" method.
No C side programming is needed; all APIs are Lua side, and most existing
extension modules should work seamlessly together with the multiple lanes.
Lanes supports Lua 5.1, 5.2 and 5.3
endef
define Package/lualanes/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/lua/lmod/lanes.lua $(1)/usr/lib/lua/
$(INSTALL_DIR) $(1)/usr/lib/lua/lanes
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/lua/cmod/core.so $(1)/usr/lib/lua/lanes/core.so
endef
$(eval $(call BuildPackage,lualanes))

112
lang/lua/luaossl/Makefile Normal file
View File

@@ -0,0 +1,112 @@
#
# Copyright (C) 2021 Siger Yang <siger.yang@outlook.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=luaossl
PKG_VERSION:=20220711
PKG_RELEASE:=2
PKG_MAINTAINER:=Siger Yang <siger.yang@outlook.com>
PKG_MIRROR_HASH:=7abb1070da36906f9ef310af1a12827543bb5de4bbe239068420fd8b3e3858d2
PKG_SOURCE_URL:=https://github.com/wahern/luaossl.git
PKG_SOURCE_VERSION:=rel-$(PKG_VERSION)
PKG_SOURCE_PROTO:=git
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/luaossl/default
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Comprehensive binding to OpenSSL for $(1)
URL:=http://25thandclement.com/~william/projects/luaossl.html
DEPENDS:=+libopenssl
endef
define Package/luaossl/default/description
luaossl is a comprehensive binding to OpenSSL for Lua 5.1, 5.2, and
later. It includes support for certificate and key management, key
generation, signature verification, and deep bindings to the
distinguished name, alternative name, and X.509v3 extension interfaces.
endef
TARGET_CFLAGS += $(FPIC)
TARGET_LDFLAGS += $(FPIC)
define Package/luaossl
$(call Package/luaossl/default,lua5.1)
DEPENDS+=+liblua
VARIANT:=lua51
endef
define Package/luaossl-lua5.3
$(call Package/luaossl/default,lua5.3)
DEPENDS+=+liblua5.3
VARIANT:=lua53
endef
define Package/luaossl-lua5.4
$(call Package/luaossl/default,lua5.4)
DEPENDS+=+liblua5.4
VARIANT:=lua54
endef
Package/luaossl/description = $(Package/luaossl/default/description)
Package/luaossl-lua5.3/description = $(Package/luaossl/default/description)
Package/luaossl-lua5.4/description = $(Package/luaossl/default/description)
ifeq ($(BUILD_VARIANT),lua51)
MAKE_FLAGS += \
LUA_APIS="5.1" \
LUA51_CPPFLAGS="-I$(STAGING_DIR)/usr/include" \
lua51cpath="/usr/lib/lua" \
lua51path="/usr/lib/lua"
endif
ifeq ($(BUILD_VARIANT),lua53)
MAKE_FLAGS += \
LUA_APIS="5.3" \
LUA53_CPPFLAGS="-I$(STAGING_DIR)/usr/include/lua5.3" \
lua53cpath="/usr/local/lib/lua/5.3" \
lua53path="/usr/local/lib/lua/5.3"
endif
ifeq ($(BUILD_VARIANT),lua54)
MAKE_FLAGS += \
LUA_APIS="5.4" \
LUA54_CPPFLAGS="-I$(STAGING_DIR)/usr/include/lua5.4" \
lua54cpath="/usr/local/lib/lua/5.4" \
lua54path="/usr/local/lib/lua/5.4"
endif
define Package/luaossl/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/lua/_openssl.so $(1)/usr/lib/lua/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/lua/openssl.lua $(1)/usr/lib/lua/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lua/openssl $(1)/usr/lib/lua/
endef
define Package/luaossl-lua5.3/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.3
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.3/_openssl.so $(1)/usr/local/lib/lua/5.3/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.3/openssl.lua $(1)/usr/local/lib/lua/5.3/
$(CP) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.3/openssl $(1)/usr/local/lib/lua/5.3/
endef
define Package/luaossl-lua5.4/install
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.4/_openssl.so $(1)/usr/local/lib/lua/5.4/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.4/openssl.lua $(1)/usr/local/lib/lua/5.4/
$(CP) $(PKG_INSTALL_DIR)/usr/local/lib/lua/5.4/openssl $(1)/usr/local/lib/lua/5.4/
endef
$(eval $(call BuildPackage,luaossl))
$(eval $(call BuildPackage,luaossl-lua5.3))
$(eval $(call BuildPackage,luaossl-lua5.4))

View File

@@ -0,0 +1,15 @@
commit 8686cae32fc04045c1404c2febf84242c298bf0d
Author: Sergey V. Lobanov <sergey@lobanov.in>
Date: Fri Jan 7 23:00:03 2022 +0300
fix build on macos
OpenWrt is always Linux. Disable OS detection
--- a/mk/vendor.os
+++ b/mk/vendor.os
@@ -1,3 +1,3 @@
#!/bin/sh
-uname -s
+echo Linux

View File

@@ -0,0 +1,65 @@
#
# 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:=36.3
PKG_RELEASE:=2
PKG_SOURCE_URL:=https://codeload.github.com/$(PKG_NAME)/$(PKG_NAME)/tar.gz/v$(PKG_VERSION)?
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=82cd9a96c41a4a3205c050206f0564ff4456f773a8f9ffc9235ff8f1907ca5e6
PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
PKG_BUILD_DEPENDS:=luarocks/host
include $(INCLUDE_DIR)/package.mk
define Package/luaposix
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=POSIX binding for LuaJIT, Lua 5.1, 5.2 and 5.3
URL:=https://github.com/luaposix/luaposix
DEPENDS:= +USE_GLIBC:libcrypt-compat +lua +lua-bit32
endef
define Package/luaposix/description
luaposix is a general POSIX library for Lua providing access
to various low level libc functions.
endef
TARGET_PATH_PKG:=$(CURDIR)/scripts:$(TARGET_PATH_PKG)
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include
define Build/Compile
cd $(PKG_BUILD_DIR) && \
LDFLAGS="$(TARGET_LDFLAGS) $(FPIC)" \
CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
CC="$(TARGET_CC)" LD="$(TARGET_CC)" \
LUA_PKGNAME=lua5.1 \
LUA_LIBDIR=$(STAGING_DIR)/usr/lib/lua \
luarocks make --force --deps-mode=none --pack-binary-rock luaposix-$(PKG_VERSION)-1.rockspec \
LUA_LIBDIR=$(STAGING_DIR)/usr/lib/lua \
LUA_PKGNAME=lua5.1 \
CC="$(TARGET_CC)" LD="$(TARGET_CC)" \
CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
LDFLAGS="$(TARGET_LDFLAGS)"
endef
define Package/luaposix/install
$(INSTALL_DIR) $(1)/usr/lib/lua/posix/sys
$(INSTALL_BIN) $(PKG_BUILD_DIR)/linux/posix/*.so $(1)/usr/lib/lua/posix/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/linux/posix/sys/*.so $(1)/usr/lib/lua/posix/sys/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/posix/*.lua $(1)/usr/lib/lua/posix/
rm -f $(1)/usr/lib/lua/posix/{deprecated,compat}.lua
endef
$(eval $(call BuildPackage,luaposix))

View File

@@ -0,0 +1,17 @@
--- a/lib/posix/init.lua
+++ b/lib/posix/init.lua
@@ -437,14 +437,6 @@ do
end
end
- -- Inject deprecated APIs (overwriting submodules) for backwards compatibility.
- for k, v in next, (require 'posix.deprecated') do
- rawset(M, k, v)
- end
- for k, v in next, (require 'posix.compat') do
- rawset(M, k, v)
- end
-
--- Metamethods
-- @section metamethods

View File

@@ -0,0 +1,2 @@
#!/bin/sh
echo Linux

View File

@@ -0,0 +1,89 @@
#
# Copyright (C) 2006-2015 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:=luarocks
PKG_VERSION:=2.2.2
PKG_RELEASE:=4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/keplerproject/luarocks
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_MIRROR_HASH:=9b2f880e0ff57a0d7e3a9d8d5365c73e6f546891bc39d2c6ef4c3443a8ca4b45
PKG_MAINTAINER:=Amr Hassan <amr.hassan@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=lua/host
HOST_BUILD_DEPENDS:=$(PKG_BUILD_DEPENDS)
HOST_BUILD_PARALLEL:=1
HOST_BUILD_PREFIX:=$(STAGING_DIR)/host
HOST_BUILD_DIR:=$(BUILD_DIR)/host/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
define Package/luarocks
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=luarocks
URL:=https://github.com/keplerproject/luarocks
DEPENDS:=+lua +luac +liblua +luasocket +unzip +curl +luasec
endef
define Package/luarocks/description
LuaRocks is a deployment and management system for Lua modules.
endef
# My custom args, copied and modified from SDK_ROOT/include/package-defaults.mk
CONFIGURE_ARGS = \
--prefix=$(CONFIGURE_PREFIX) \
--sysconfdir=/etc \
--with-lua=$(STAGING_DIR_HOSTPKG)
HOST_CONFIGURE_ARGS= \
--prefix=$(STAGING_DIR)/host \
--sysconfdir=$(STAGING_DIR)/host/etc \
--with-lua=$(STAGING_DIR_HOSTPKG)
CONFIGURE_VARS = \
LUAROCKS_UNAME_S="Linux" \
LUAROCKS_UNAME_M="$(ARCH)"
HOST_CONFIGURE_VARS = \
LUAROCKS_UNAME_S="Linux" \
LUAROCKS_UNAME_M="$(ARCH)"
define Build/Compile
$(call Build/Compile/Default,build)
endef
define Host/Compile
$(call Host/Compile/Default,build)
endef
define Package/luarocks/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/luarocks-5.1 $(1)/usr/bin/luarocks
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/luarocks-admin-5.1 $(1)/usr/bin/luarocks-admin
$(CP) $(PKG_INSTALL_DIR)/usr/share $(1)/usr/share
$(CP) $(PKG_INSTALL_DIR)/etc $(1)/etc
endef
define Host/Install
$(MAKE) -C $(HOST_BUILD_DIR) install
endef
$(eval $(call BuildPackage,luarocks))
$(eval $(call HostBuild))

View File

@@ -0,0 +1,11 @@
--- a/Makefile
+++ b/Makefile
@@ -89,7 +89,7 @@ build_bins: cleanup_bins
for f in $(BIN_FILES) ;\
do \
sed "1d" src/bin/$$f > src/bin/$$f.bak ;\
- echo "#!$(LUA_BINDIR)/lua$(LUA_SUFFIX)" > src/bin/$$f ;\
+ echo "#!/usr/bin/env lua5.1" > src/bin/$$f ;\
echo "package.path = [[$(LUADIR)/?.lua;]]..package.path" | sed "s,//,/,g" >> src/bin/$$f ;\
cat src/bin/$$f.bak >> src/bin/$$f ;\
chmod +x src/bin/$$f ;\

View File

@@ -0,0 +1,35 @@
--- a/configure
+++ b/configure
@@ -388,18 +388,22 @@ then
fi
echo_n "Configuring for system... "
-if uname -s
-then
- LUAROCKS_UNAME_S=`uname -s`
-else
- die "Could not determine operating system. 'uname -s' failed."
+if [ -z "$LUAROCKS_UNAME_S" ]; then
+ if uname -s
+ then
+ LUAROCKS_UNAME_S=`uname -s`
+ else
+ die "Could not determine operating system. 'uname -s' failed."
+ fi
fi
echo_n "Configuring for architecture... "
-if uname -m
-then
- LUAROCKS_UNAME_M=`uname -m`
-else
- die "Could not determine processor architecture. 'uname -m' failed."
+if [ -z "$LUAROCKS_UNAME_M" ]; then
+ if uname -m
+ then
+ LUAROCKS_UNAME_M=`uname -m`
+ else
+ die "Could not determine processor architecture. 'uname -m' failed."
+ fi
fi
for v in 5.1 5.2 5.3; do

65
lang/lua/luasec/Makefile Normal file
View File

@@ -0,0 +1,65 @@
#
# Copyright (C) 2009-2014 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:=luasec
PKG_VERSION:=1.3.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/brunoos/luasec/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=97293092ba385ab390decb6678bc8cbeffd5899bfbc49eb7ef4aa00f5e31c3d4
MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/luasec
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=LuaSec
URL:=https://github.com/brunoos/luasec
DEPENDS:=+lua +libopenssl +luasocket
endef
define Package/luasec/description
LuaSec is a binding for OpenSSL library to provide TLS/SSL communication.
endef
define Build/Configure
endef
TARGET_CFLAGS += $(FPIC)
TARGET_LDFLAGS += $(FPIC)
MAKE_FLAGS += \
LD="$(TARGET_CC)" \
INC_PATH="" \
LIB_PATH="" \
LUACPATH="$(PKG_INSTALL_DIR)/usr/lib/lua" \
LUAPATH="$(PKG_INSTALL_DIR)/usr/lib/lua"
define Build/Compile
$(call Build/Compile/Default,linux)
endef
define Package/luasec/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/lua/ssl.so $(1)/usr/lib/lua/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/lua/ssl.lua $(1)/usr/lib/lua/
$(INSTALL_DIR) $(1)/usr/lib/lua/ssl
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/lua/ssl/https.lua $(1)/usr/lib/lua/ssl/
endef
$(eval $(call BuildPackage,luasec))

View File

@@ -0,0 +1,28 @@
--- a/src/Makefile
+++ b/src/Makefile
@@ -16,8 +16,8 @@ WARN=-Wall -pedantic
BSD_CFLAGS=-O2 -fPIC $(WARN) $(INCDIR) $(DEFS)
BSD_LDFLAGS=-O -fPIC -shared $(LIBDIR)
-LNX_CFLAGS=-O2 -fPIC $(WARN) $(INCDIR) $(DEFS)
-LNX_LDFLAGS=-O -fPIC -shared $(LIBDIR)
+LNX_CFLAGS=$(INCDIR) $(DEFS)
+LNX_LDFLAGS=-shared $(LIBDIR)
MAC_ENV=env MACOSX_DEPLOYMENT_TARGET='$(MACVER)'
MAC_CFLAGS=-O2 -fno-common $(WARN) $(INCDIR) $(DEFS)
@@ -34,10 +34,10 @@ LDFLAGS += $(MYLDFLAGS)
all:
install: $(CMOD) $(LMOD)
- $(INSTALL) -d $(DESTDIR)$(LUAPATH)/ssl $(DESTDIR)$(LUACPATH)
- $(INSTALL) $(CMOD) $(DESTDIR)$(LUACPATH)
- $(INSTALL) -m644 $(LMOD) $(DESTDIR)$(LUAPATH)
- $(INSTALL) -m644 https.lua $(DESTDIR)$(LUAPATH)/ssl
+ $(INSTALL) -d $(LUAPATH)/ssl $(LUACPATH)
+ $(INSTALL) $(CMOD) $(LUACPATH)
+ $(INSTALL) -m644 $(LMOD) $(LUAPATH)
+ $(INSTALL) -m644 https.lua $(LUAPATH)/ssl
linux:
@$(MAKE) $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" EXTRA="$(EXTRA)"

53
lang/lua/luasoap/Makefile Normal file
View File

@@ -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:=luasoap
PKG_VERSION:=4.0.2
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/tomasguisasola/luasoap
PKG_SOURCE_VERSION:=$(PKG_VERSION)
PKG_MIRROR_HASH:=ecd82fe9d7c62c6870f042ba65ce57054d68193779af9461cb4d95b83983bf80
PKG_MAINTAINER:=Liu Peng <pengliu@credosemi.com>
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/luasoap
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=LuaSOAP
URL:=https://github.com/tomasguisasola/luasoap
DEPENDS:=+lua +luaexpat +luasec +luasocket
PKGARCH:=all
endef
define Package/luasoap/description
LuaSOAP is a library of functions to deal with SOAP.
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/luasoap/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/soap.lua $(1)/usr/lib/lua/
$(INSTALL_DIR) $(1)/usr/lib/lua/soap
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/{client,server}.lua $(1)/usr/lib/lua/soap/
$(INSTALL_DIR) $(1)/usr/lib/lua/soap/tests
$(INSTALL_DATA) $(PKG_BUILD_DIR)/tests/test{,-http,-server,-wsdl}.lua $(1)/usr/lib/lua/soap/tests/
endef
$(eval $(call BuildPackage,luasoap))

100
lang/lua/luasocket/Makefile Normal file
View File

@@ -0,0 +1,100 @@
#
# Copyright (C) 2009-2013 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:=luasocket
PKG_VERSION:=3.1.0
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/lunarmodules/luasocket
PKG_MIRROR_HASH:=1ee81f1f5a63d0d14c8c8571e8940604cbf1443c3b18ee7d3d1bac6791f853fc
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/luasocket/default
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
URL:=http://w3.impa.br/~diego/software/luasocket
endef
define Package/luasocket
$(Package/luasocket/default)
TITLE:=LuaSocket
DEPENDS:=+lua
VARIANT:=lua-51
DEFAULT_VARIANT:=1
endef
define Package/luasocket5.3
$(Package/luasocket/default)
TITLE:=LuaSocket 5.3
DEPENDS:=+liblua5.3
VARIANT:=lua-53
endef
ifeq ($(BUILD_VARIANT),lua-51)
LUA_VERSION=5.1
endif
ifeq ($(BUILD_VARIANT),lua-53)
LUA_VERSION=5.3
endif
define Package/luasocket/default/description
LuaSocket is the most comprehensive networking support
library for the Lua language. It provides easy access to
TCP, UDP, DNS, SMTP, FTP, HTTP, MIME and much more.
endef
Package/luasocket/description = $(Package/luasocket/default/description)
Package/luasocket5.3/description = $(Package/luasocket/default/description)
define Build/Configure
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR)/ \
LIBDIR="$(TARGET_LDFLAGS)" \
CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
LD="$(TARGET_CROSS)ld -shared" \
LUAV=$(LUA_VERSION) LUAINC_linux_base=$(STAGING_DIR)/usr/include \
all
endef
define Package/luasocket/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/{ltn12,mime,socket}.lua $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mime-1.0.3.so $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/socket-3.0.0.so $(1)/usr/lib/lua
$(INSTALL_DIR) $(1)/usr/lib/lua/mime
ln -sf ../mime-1.0.3.so $(1)/usr/lib/lua/mime/core.so
$(INSTALL_DIR) $(1)/usr/lib/lua/socket
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/{ftp,http,smtp,tp,url,headers}.lua $(1)/usr/lib/lua/socket
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/unix.so $(1)/usr/lib/lua/socket
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/serial.so $(1)/usr/lib/lua/socket
ln -sf ../socket-3.0.0.so $(1)/usr/lib/lua/socket/core.so
endef
define Package/luasocket5.3/install
$(MAKE) -C $(PKG_BUILD_DIR)/src \
DESTDIR="$(1)" \
LUAV=$(LUA_VERSION) \
install
endef
$(eval $(call BuildPackage,luasocket))
$(eval $(call BuildPackage,luasocket5.3))

View File

@@ -0,0 +1,228 @@
From 96fdf07acf78ecfc9be76a8b0591f38fe6f1a875 Mon Sep 17 00:00:00 2001
From: Steven Barth <steven@midlink.org>
Date: Sat, 9 Nov 2013 12:01:42 +0100
Subject: [PATCH] Add interface resolving
---
src/if.c | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/if.h | 27 ++++++++++++++
src/luasocket.c | 2 +
src/makefile | 2 +
src/options.c | 9 +++++
5 files changed, 153 insertions(+)
create mode 100644 src/if.c
create mode 100644 src/if.h
--- /dev/null
+++ b/src/if.c
@@ -0,0 +1,117 @@
+/*
+ * $Id: if.c $
+ *
+ * Author: Markus Stenberg <fingon@iki.fi>
+ *
+ * Copyright (c) 2012 cisco Systems, Inc.
+ *
+ * Created: Tue Dec 4 14:50:34 2012 mstenber
+ * Last modified: Wed Dec 5 18:51:08 2012 mstenber
+ * Edit time: 24 min
+ *
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
+
+#include "if.h"
+
+#include "lauxlib.h"
+
+static int if_global_indextoname(lua_State *L);
+static int if_global_nametoindex(lua_State *L);
+static int if_global_nameindex(lua_State *L);
+
+static luaL_Reg func[] = {
+ { "indextoname", if_global_indextoname},
+ { "nametoindex", if_global_nametoindex},
+ { "nameindex", if_global_nameindex},
+ { NULL, NULL}
+};
+
+int if_open(lua_State *L)
+{
+ lua_pushstring(L, "iface");
+ lua_newtable(L);
+#if LUA_VERSION_NUM < 503
+ luaL_openlib(L, NULL, func, 0);
+#else
+ luaL_setfuncs(L, func, 0);
+#endif
+ lua_settable(L, -3);
+ return 0;
+}
+
+int if_global_indextoname(lua_State *L)
+{
+ unsigned int ifnumber;
+ const char *name;
+ char buf[IF_NAMESIZE+1];
+
+ if (!lua_isnumber(L, 1))
+ {
+ lua_pushnil(L);
+ lua_pushstring(L, "indextoname expects only number argument");
+ return 2;
+ }
+ ifnumber = lua_tonumber(L, 1);
+ if (!(name = if_indextoname(ifnumber, buf)))
+ {
+ lua_pushnil(L);
+ lua_pushstring(L, "nonexistent interface");
+ return 2;
+ }
+ lua_pushstring(L, name);
+ return 1;
+}
+
+int if_global_nametoindex(lua_State *L)
+{
+ unsigned int ifnumber;
+ if (!lua_isstring(L, 1))
+ {
+ lua_pushnil(L);
+ lua_pushstring(L, "nametoindex expects only string argument");
+ return 2;
+ }
+ if (!(ifnumber = if_nametoindex(lua_tostring(L, 1))))
+ {
+ lua_pushnil(L);
+ lua_pushstring(L, "nonexistent interface");
+ return 2;
+ }
+ lua_pushnumber(L, ifnumber);
+ return 1;
+}
+
+int if_global_nameindex(lua_State *L)
+{
+ struct if_nameindex *ni, *oni;
+ int i = 1;
+ oni = ni = if_nameindex();
+ lua_newtable(L);
+ while (ni && ni->if_index && *(ni->if_name))
+ {
+ /* at result[i], we store.. */
+ lua_pushnumber(L, i);
+
+ /* new table with two items - index, name*/
+ lua_newtable(L);
+ lua_pushstring(L, "index");
+ lua_pushnumber(L, ni->if_index);
+ lua_settable(L, -3);
+
+ lua_pushstring(L, "name");
+ lua_pushstring(L, ni->if_name);
+ lua_settable(L, -3);
+
+ /* Then, actually store it */
+ lua_settable(L, -3);
+
+ i++;
+ ni++;
+ }
+ if_freenameindex(oni);
+ return 1;
+}
--- /dev/null
+++ b/src/if.h
@@ -0,0 +1,27 @@
+/*
+ * $Id: if.h $
+ *
+ * Author: Markus Stenberg <fingon@iki.fi>
+ *
+ * Copyright (c) 2012 cisco Systems, Inc.
+ *
+ * Created: Tue Dec 4 14:37:24 2012 mstenber
+ * Last modified: Tue Dec 4 14:51:43 2012 mstenber
+ * Edit time: 7 min
+ *
+ */
+
+/* This module provides Lua wrapping for the advanced socket API
+ * defined in RFC3542, or mainly, the access to the system's interface
+ * list. It is necessary for use of recvmsg/sendmsg.
+ *
+ * TODO - Do something clever with Windows?
+ */
+#ifndef IF_H
+#define IF_H
+
+#include "lua.h"
+
+int if_open(lua_State *L);
+
+#endif /* IF_H */
--- a/src/luasocket.c
+++ b/src/luasocket.c
@@ -21,6 +21,7 @@
#include "tcp.h"
#include "udp.h"
#include "select.h"
+#include "if.h"
/*-------------------------------------------------------------------------*\
* Internal function prototypes
@@ -41,6 +42,7 @@ static const luaL_Reg mod[] = {
{"tcp", tcp_open},
{"udp", udp_open},
{"select", select_open},
+ {"iface", if_open},
{NULL, NULL}
};
--- a/src/makefile
+++ b/src/makefile
@@ -303,6 +303,7 @@ SOCKET_OBJS= \
compat.$(O) \
options.$(O) \
inet.$(O) \
+ if.$(O) \
$(SOCKET) \
except.$(O) \
select.$(O) \
@@ -440,6 +441,7 @@ auxiliar.$(O): auxiliar.c auxiliar.h
buffer.$(O): buffer.c buffer.h io.h timeout.h
except.$(O): except.c except.h
inet.$(O): inet.c inet.h socket.h io.h timeout.h usocket.h
+if.$(O): if.c if.h
io.$(O): io.c io.h timeout.h
luasocket.$(O): luasocket.c luasocket.h auxiliar.h except.h \
timeout.h buffer.h io.h inet.h socket.h usocket.h tcp.h \
--- a/src/options.c
+++ b/src/options.c
@@ -7,7 +7,10 @@
#include "options.h"
#include "inet.h"
#include <string.h>
-
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
+
/*=========================================================================*\
* Internal functions prototypes
\*=========================================================================*/
@@ -414,6 +417,12 @@ static int opt_ip6_setmembership(lua_Sta
if (!lua_isnil(L, -1)) {
if (lua_isnumber(L, -1)) {
val.ipv6mr_interface = (unsigned int) lua_tonumber(L, -1);
+ } else if (lua_isstring(L, -1)) {
+ if (!(val.ipv6mr_interface = if_nametoindex(lua_tostring(L, -1)))) {
+ lua_pushnil(L);
+ lua_pushstring(L, "nonexistent interface");
+ return 2;
+ }
} else
luaL_argerror(L, -1, "number 'interface' field expected");
}

View File

@@ -0,0 +1,25 @@
--- a/src/makefile
+++ b/src/makefile
@@ -397,18 +397,18 @@ none:
all: $(SOCKET_SO) $(MIME_SO)
$(SOCKET_SO): $(SOCKET_OBJS)
- $(LD) $(SOCKET_OBJS) $(LDFLAGS)$@
+ $(CC) $(SOCKET_OBJS) $(LDFLAGS)$@
$(MIME_SO): $(MIME_OBJS)
- $(LD) $(MIME_OBJS) $(LDFLAGS)$@
+ $(CC) $(MIME_OBJS) $(LDFLAGS)$@
all-unix: all $(UNIX_SO) $(SERIAL_SO)
$(UNIX_SO): $(UNIX_OBJS)
- $(LD) $(UNIX_OBJS) $(LDFLAGS)$@
+ $(CC) $(UNIX_OBJS) $(LDFLAGS)$@
$(SERIAL_SO): $(SERIAL_OBJS)
- $(LD) $(SERIAL_OBJS) $(LDFLAGS)$@
+ $(CC) $(SERIAL_OBJS) $(LDFLAGS)$@
install:
$(INSTALL_DIR) $(INSTALL_TOP_LDIR)

112
lang/lua/luasql/Makefile Normal file
View File

@@ -0,0 +1,112 @@
#
# Copyright (C) 2010-2014 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:=luasql
PKG_VERSION:=2.4.0
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/keplerproject/luasql/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=db2458a8c8c5f3bc717e4030fe2878f1ad8d71e437ec6149c381eebad5d525c5
PKG_MAINTAINER:=
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=doc/us/license.html
include $(INCLUDE_DIR)/package.mk
define Package/luasql/Default
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua SQL binding
URL:=https://keplerproject.github.io/luasql/
DEPENDS:= +lua
endef
define Package/luasql/Default/description
LuaSQL is a simple interface from Lua to a DBMS.
endef
define Package/luasql-mysql
$(call Package/luasql/Default)
TITLE+= for MySQL
DEPENDS+= +libmysqlclient
VARIANT:=mysql
endef
define Package/luasql-mysql/description
$(call Package/luasql/Default/description)
.
This package contains the MySQL binding.
endef
define Package/luasql-pgsql
$(call Package/luasql/Default)
TITLE+= for PostgreSQL
DEPENDS+= +libpq
VARIANT:=postgres
endef
define Package/luasql-pgsql/description
$(call Package/luasql/Default/description)
.
This package contains the PostgreSQL binding.
endef
define Package/luasql-sqlite3
$(call Package/luasql/Default)
TITLE+= for SQLite 3
DEPENDS+= +libsqlite3
VARIANT:=sqlite3
endef
define Package/luasql-sqlite3/description
$(call Package/luasql/Default/description)
.
This package contains the SQLite 3 binding.
endef
TARGET_CFLAGS += $(FPIC) -std=gnu99
TARGET_CPPFLAGS += -DLUA_USE_LINUX
ifeq ($(BUILD_VARIANT),mysql)
MAKE_FLAGS += DRIVER_INCS_mysql='-I$(STAGING_DIR)/usr/include/mysql' \
DRIVER_LIBS_mysql='$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib/mysql -lmysqlclient -lz'
endif
ifeq ($(BUILD_VARIANT),postgres)
MAKE_FLAGS += DRIVER_LIBS_postgres='$(TARGET_LDFLAGS) -lpq'
endif
ifeq ($(BUILD_VARIANT),sqlite3)
MAKE_FLAGS += DRIVER_LIBS_sqlite='$(TARGET_LDFLAGS) -lsqlite3 -lpthread'
endif
MAKE_FLAGS += \
LIB_OPTION="-shared" \
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
$(BUILD_VARIANT)
define Package/Install/Default
$(INSTALL_DIR) $(1)/usr/lib/lua/luasql
$(CP) $(PKG_BUILD_DIR)/src/*.so $(1)/usr/lib/lua/luasql/
endef
Package/luasql-mysql/install = $(Package/Install/Default)
Package/luasql-pgsql/install = $(Package/Install/Default)
Package/luasql-sqlite3/install = $(Package/Install/Default)
$(eval $(call BuildPackage,luasql-mysql))
$(eval $(call BuildPackage,luasql-pgsql))
$(eval $(call BuildPackage,luasql-sqlite3))

View File

@@ -0,0 +1,58 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luasrcdiet
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Matthias Schiffer <mschiffer@universe-factory.net>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYRIGHT
PKG_SOURCE_URL:=https://github.com/jirutka/luasrcdiet.git
PKG_SOURCE_VERSION:=f138fc9359821d9201cd6b57cfa2fcbed5b9af97
PKG_SOURCE_PROTO:=git
PKG_MIRROR_HASH:=a3e316f273d4daf4bc5caea295d050efb2624125960de593c72b3aef0126583c
HOST_BUILD_DEPENDS:=lua/host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/luasrcdiet
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=luasrcdiet
URL:=https://github.com/jirutka/luasrcdiet
DEPENDS:=+lua
PKGARCH:=all
endef
define Package/luasrcdiet/description
Compresses Lua source code by removing unnecessary characters
endef
define Build/Compile
endef
define Package/luasrcdiet/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/luasrcdiet $(1)/usr/bin/luasrcdiet
$(INSTALL_DIR) $(1)/usr/lib/lua
$(CP) $(PKG_BUILD_DIR)/luasrcdiet $(1)/usr/lib/lua/
endef
define Host/Compile
endef
define Host/Install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/luasrcdiet $(1)/bin/
$(INSTALL_DIR) $(1)/lib/lua/5.1
$(CP) $(HOST_BUILD_DIR)/luasrcdiet $(1)/lib/lua/5.1/
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,luasrcdiet))

11
lang/lua/luv/Config.in Normal file
View File

@@ -0,0 +1,11 @@
menu "Configuration"
depends on PACKAGE_luv
config LUV_USE_LUAJIT_ENGINE
bool "Use luajit engine"
select PACKAGE_luajit
help
If selected, luv will be compiled against luajit. If not selected, luv will use Lua as engine.
default n
endmenu

62
lang/lua/luv/Makefile Normal file
View File

@@ -0,0 +1,62 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luv
PKG_REAL_VERSION:=1.51.0-1
PKG_VERSION:=$(subst -,.,$(PKG_REAL_VERSION))
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_REAL_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/luvit/luv/releases/download/$(PKG_REAL_VERSION)
PKG_HASH:=dc706d9141c185bdce08b6fc8a9d4df05c3ac3676809ee4e9e37e1553d821237
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REAL_VERSION)
PKG_MAINTAINER:=Morteza Milani <milani@pichak.co>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/luv
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Luv
URL:=https://github.com/luvit/luv
DEPENDS:=+libuv +!LUV_USE_LUAJIT_ENGINE:lua
endef
define Package/luv/description
Bare libuv bindings for lua
endef
define Package/luv/config
source "$(SOURCE)/Config.in"
endef
CMAKE_OPTIONS += \
-DLUA_BUILD_TYPE=System \
-DWITH_SHARED_LIBUV=ON \
-DBUILD_MODULE=OFF \
-DBUILD_SHARED_LIBS=ON \
-DWITH_LUA_ENGINE=$(if $(CONFIG_LUV_USE_LUAJIT_ENGINE),Luajit,Lua)
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/luv
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/luv/*.h $(1)/usr/include/luv
$(INSTALL_DIR) $(1)/usr/lib/lua
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libluv.so* $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libluv.pc $(1)/usr/lib/pkgconfig
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libluv.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libluv.pc
endef
define Package/luv/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libluv.so.1.51.0 $(1)/usr/lib/lua/luv.so
endef
$(eval $(call BuildPackage,luv))

66
lang/lua/lyaml/Makefile Executable file
View File

@@ -0,0 +1,66 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=lyaml
PKG_VERSION:=6.2.7
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/gvvaughan/lyaml/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=9bb489cefae48b150d66f6bab4141d8d5831fcb7465bfc52a9845fa01efc63b0
PKG_MAINTAINER:=Mathew McBride <matt@traverse.com.au>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=lua/host luarocks/host HOST_OS_MACOS:fakeuname/host
include $(INCLUDE_DIR)/package.mk
ifeq ($(CONFIG_HOST_OS_MACOS),y)
include ../../utils/fakeuname/fakeuname.mk
endif
define Package/lyaml
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua lib-yaml bindings
URL:=https://github.com/gvvaughan/lyaml
DEPENDS:= +lua +libyaml
endef
define Package/lyaml/description
Lua bindings for libyaml
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include
# Note: the duplicate environment exports are not a typo!
# First is for luarocks, then the second is for the compilation
# invoked by luarocks
# (Same setup as luaposix)
define Build/Compile
cd $(PKG_BUILD_DIR) && \
LUA_LIBDIR=$(STAGING_DIR)/usr/lib/lua \
LUA_PKGNAME=lua5.1 \
CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
CC="$(TARGET_CC)" LD="$(TARGET_CC)" \
$(if $(CONFIG_HOST_OS_MACOS),PATH=$(FAKEUNAME_PATH):$(TARGET_PATH_PKG)) \
luarocks make --pack-binary-rock lyaml-$(PKG_VERSION)-1.rockspec \
LUA_LIBDIR=$(STAGING_DIR)/usr/lib/lua \
YAML_DIR=$(STAGING_DIR)/usr \
LUA_INCDIR=$(STAGING_DIR)/usr/include \
LUA_PKGNAME=lua5.1 \
CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
CC="$(TARGET_CC)" LD="$(TARGET_CC)"
endef
define Package/lyaml/install
$(INSTALL_DIR) $(1)/usr/lib/lua/lyaml
$(INSTALL_BIN) $(PKG_BUILD_DIR)/linux/yaml.so $(1)/usr/lib/lua/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/lyaml/*.lua $(1)/usr/lib/lua/lyaml/
endef
$(eval $(call BuildPackage,lyaml))

48
lang/lua/lzmq/Makefile Normal file
View File

@@ -0,0 +1,48 @@
#
# Copyright (C) 2015 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:=lzmq
PKG_VERSION:=0.4.4
PKG_RELEASE:=2
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/zeromq/lzmq/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=cf70200045b8bcb0e929c338ad421b6a291cf1038053532888dc201af3224d8b
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/lzmq
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua ZeroMQ binding
URL:=https://github.com/zeromq/lzmq
DEPENDS:= +lua +libzmq
endef
define Package/lzmq/description
LZMQ is a Lua binding to ZeroMQ.
endef
CMAKE_OPTIONS += \
-DUSE_LUA=ON
define Package/lzmq/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lzmq.so $(1)/usr/lib/lua/
$(INSTALL_DIR) $(1)/usr/lib/lua/lzmq
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lzmq/timer.so $(1)/usr/lib/lua/lzmq
$(CP) -R $(PKG_BUILD_DIR)/src/lua/lzmq/* $(1)/usr/lib/lua/lzmq
endef
$(eval $(call BuildPackage,lzmq))

View File

@@ -0,0 +1,10 @@
--- a/src/lzmq.c
+++ b/src/lzmq.c
@@ -23,6 +23,7 @@
#include <assert.h>
#include "zsupport.h"
#include <memory.h>
+#include <stdlib.h>
#define LUAZMQ_MODULE_NAME "lzmq"
#define LUAZMQ_MODULE_LICENSE "MIT"

53
lang/lua/uuid/Makefile Normal file
View File

@@ -0,0 +1,53 @@
#
# Copyright (C) 2006-2015 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:=uuid
PKG_VERSION:=0.2.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_MIRROR_HASH:=142b60b266d90db6177eb07919d8b71ac4a3bb17859540d4655c02f395526962
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/Tieske/uuid.git
PKG_SOURCE_VERSION:=version_$(PKG_VERSION)
PKG_MAINTAINER:=Amr Hassan <amr.hassan@gmail.com>
PKG_LICENSE=Apache-2.0
LUA_MODULE_PATH:=/usr/lib/lua
include $(INCLUDE_DIR)/package.mk
define Package/uuid
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=uuid
URL:=https://github.com/Tieske/uuid
DEPENDS:=+lua +luasocket
PKGARCH:=all
endef
define Package/uuid/description
A pure Lua uuid generator
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/uuid/install
$(INSTALL_DIR) $(1)/$(LUA_MODULE_PATH)
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/uuid.lua $(1)/$(LUA_MODULE_PATH)/uuid.lua
endef
$(eval $(call BuildPackage,uuid))