Browse Source

Commit based upon d6442850bde61f0c3e7e2ae3247b4a856073c5e0

RISCi_ATOM 3 years ago
parent
commit
9f5db9a6db
100 changed files with 5692 additions and 0 deletions
  1. 53 0
      lang/chardet/Makefile
  2. 48 0
      lang/django-appconf/Makefile
  3. 49 0
      lang/django-compressor/Makefile
  4. 48 0
      lang/django-constance/Makefile
  5. 48 0
      lang/django-jsonfield/Makefile
  6. 48 0
      lang/django-picklefield/Makefile
  7. 49 0
      lang/django-postoffice/Makefile
  8. 49 0
      lang/django-restframework/Makefile
  9. 48 0
      lang/django-statici18n/Makefile
  10. 65 0
      lang/django/Makefile
  11. 49 0
      lang/dkjson/Makefile
  12. 339 0
      lang/erlang/Makefile
  13. 11 0
      lang/erlang/patches/101-emulator_includes.patch
  14. 11 0
      lang/erlang/patches/102-musl_compat.patch
  15. 11 0
      lang/erlang/patches/103-disable_emacs.patch
  16. 48 0
      lang/et_xmlfile/Makefile
  17. 48 0
      lang/flup/Makefile
  18. 53 0
      lang/gunicorn/Makefile
  19. 67 0
      lang/jamvm/Makefile
  20. 48 0
      lang/jdcal/Makefile
  21. 52 0
      lang/json4lua/Makefile
  22. 48 0
      lang/lpeg/Makefile
  23. 49 0
      lang/lua-bencode/Makefile
  24. 56 0
      lang/lua-cjson/Makefile
  25. 62 0
      lang/lua-copas/Makefile
  26. 15 0
      lang/lua-copas/patches/makefile.patch
  27. 59 0
      lang/lua-coxpcall/Makefile
  28. 4 0
      lang/lua-coxpcall/patches/config.patch
  29. 58 0
      lang/lua-lsqlite3/Makefile
  30. 48 0
      lang/lua-lzlib/Makefile
  31. 12 0
      lang/lua-lzlib/patches/001-allow_optim_flags.patch
  32. 75 0
      lang/lua-md5/Makefile
  33. 19 0
      lang/lua-md5/patches/config.patch
  34. 10 0
      lang/lua-md5/patches/makefile.patch
  35. 56 0
      lang/lua-mobdebug/Makefile
  36. 42 0
      lang/lua-openssl/Makefile
  37. 135 0
      lang/lua-openssl/patches/0001-Revise-Makefile.patch
  38. 36 0
      lang/lua-openssl/patches/0010-Fix-Linkage.patch
  39. 41 0
      lang/lua-openssl/patches/0020-support-OPENSSL_NO_SSL3_METHOD.patch
  40. 20 0
      lang/lua-openssl/patches/0030-support-OPENSSL_NO_COMP.patch
  41. 46 0
      lang/lua-penlight/Makefile
  42. 54 0
      lang/lua-rings/Makefile
  43. 28 0
      lang/lua-rings/patches/config.patch
  44. 11 0
      lang/lua-rings/patches/makefile.patch
  45. 62 0
      lang/lua-rs232/Makefile
  46. 52 0
      lang/lua-sha2/Makefile
  47. 14 0
      lang/lua-sha2/patches/001-makefile.patch
  48. 95 0
      lang/lua-wsapi/Makefile
  49. 58 0
      lang/lua-xavante/Makefile
  50. 53 0
      lang/luabitop/Makefile
  51. 56 0
      lang/luaexpat/Makefile
  52. 97 0
      lang/luaexpat/files/compat-5.1r5/compat-5.1.c
  53. 13 0
      lang/luaexpat/files/compat-5.1r5/compat-5.1.h
  54. 267 0
      lang/luaexpat/files/compat-5.1r5/compat-5.1.lua
  55. 66 0
      lang/luafilesystem/Makefile
  56. 45 0
      lang/luai2c/Makefile
  57. 57 0
      lang/lualanes/Makefile
  58. 13 0
      lang/lualanes/patches/100-musl-compat.patch
  59. 61 0
      lang/luaposix/Makefile
  60. 30 0
      lang/luaposix/patches/100-eglibc-compat.patch
  61. 32 0
      lang/luaposix/patches/101-disable-curses.patch
  62. 20 0
      lang/luaposix/patches/102-disable-compat-deprecated.diff
  63. 62 0
      lang/luarocks/Makefile
  64. 13 0
      lang/luarocks/patches/01_dont_modify_bin_shebang.diff
  65. 37 0
      lang/luarocks/patches/02_allow_configure_uname_siteconfig_adjustment.patch
  66. 61 0
      lang/luasec/Makefile
  67. 56 0
      lang/luasoap/Makefile
  68. 63 0
      lang/luasocket/Makefile
  69. 237 0
      lang/luasocket/patches/0001-Add-interface-support.patch
  70. 118 0
      lang/luasql/Makefile
  71. 48 0
      lang/lzmq/Makefile
  72. 55 0
      lang/micropython-lib/Makefile
  73. 57 0
      lang/micropython/Makefile
  74. 13 0
      lang/micropython/patches/000-Makefile-no-errors
  75. 68 0
      lang/node-arduino-firmata/Makefile
  76. 306 0
      lang/node-arduino-firmata/files/usr/lib/node/arduino-firmata/lib/arduino-firmata.js
  77. 10 0
      lang/node-arduino-firmata/patches/000-new-serialport.patch
  78. 99 0
      lang/node-cylon/Makefile
  79. 12 0
      lang/node-cylon/patches/0001-serialport.patch
  80. 65 0
      lang/node-hid/Makefile
  81. 65 0
      lang/node-serialport/Makefile
  82. 94 0
      lang/node/Makefile
  83. 12 0
      lang/node/patches/001-hardfloat.patch
  84. 10 0
      lang/node/patches/002-addr_info.patch
  85. 12 0
      lang/node/patches/003-path.patch
  86. 48 0
      lang/openpyxl/Makefile
  87. 52 0
      lang/perl-cgi/Makefile
  88. 48 0
      lang/perl-compress-bzip2/Makefile
  89. 65 0
      lang/perl-dbi/Makefile
  90. 53 0
      lang/perl-device-serialport/Makefile
  91. 73 0
      lang/perl-device-usb/Makefile
  92. 8 0
      lang/perl-device-usb/README.patches
  93. 20 0
      lang/perl-device-usb/patches/100-fix_buildsystem.patch
  94. 30 0
      lang/perl-device-usb/patches/110-just_assume_libusb_is_there.diff
  95. 13 0
      lang/perl-device-usb/patches/120-use_libusb_0_1.patch
  96. 13 0
      lang/perl-device-usb/patches/130-provide-proper-library-paths.patch
  97. 219 0
      lang/perl-device-usb/patches/140-avoid-libusb-name-conflicts.patch
  98. 48 0
      lang/perl-encode-locale/Makefile
  99. 48 0
      lang/perl-file-listing/Makefile
  100. 64 0
      lang/perl-file-sharedir-install/Makefile

+ 53 - 0
lang/chardet/Makefile

@@ -0,0 +1,53 @@
+#
+# Copyright (C) 2007-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:=chardet
+PKG_VERSION:=2.3.0
+PKG_RELEASE:=1
+PKG_LICENSE:=LGPL-2.1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://pypi.python.org/packages/source/c/chardet/
+PKG_MD5SUM:=25274d664ccb5130adae08047416e1a8
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/chardet
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=Universal encoding detector for Python 2 and 3
+  URL:=https://github.com/chardet/chardet
+  DEPENDS:=+python
+endef
+
+define Package/chardet/description
+  Universal encoding detector for Python 2 and 3
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/chardet/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/chardetect \
+	    $(1)/usr/bin
+	# fix python exec path in scripts
+	sed -i 's/#!.*/#!\/usr\/bin\/python/g' $(1)/usr/bin/chardetect
+endef
+
+$(eval $(call BuildPackage,chardet))

+ 48 - 0
lang/django-appconf/Makefile

@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-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:=django-appconf
+PKG_VERSION:=1.0.2
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/34/b9/d07195652ab494b026f7cb0341dd6e5f2e6e39be177abe05e2cec8bd46e4/
+PKG_MD5SUM:=cc11511a47088bc56531df67cd5d6261
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django-appconf
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=A helper class for handling configuration defaults of packaged apps gracefully.
+  URL:=http://django-appconf.readthedocs.org/
+  DEPENDS:=+python +django
+endef
+
+define Package/django-appconf/description
+  A helper class for handling configuration defaults of packaged apps gracefully.
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-appconf/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-appconf))

+ 49 - 0
lang/django-compressor/Makefile

@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2007-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:=django-compressor
+PKG_VERSION:=2.1
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=django_compressor-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/23/46/2c7d582255969ad5259937f5f9e14aec1f3349d0fc0651129330918d1c6d/
+PKG_BUILD_DIR:=$(BUILD_DIR)/django_compressor-$(PKG_VERSION)/
+PKG_MD5SUM:=21ecfe4e8615eae64f7068a5599df9af
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django-compressor
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=Compresses linked and inline JavaScript or CSS into single cached files.
+  URL:=http://django-compressor.readthedocs.org/
+  DEPENDS:=+python +django
+endef
+
+define Package/django-compressor/description
+  Compresses linked and inline JavaScript or CSS into single cached files.
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-compressor/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-compressor))

+ 48 - 0
lang/django-constance/Makefile

@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-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:=django-constance
+PKG_VERSION:=1.2
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/0a/ff/1c1caae2b7be9c26f2aee0703236998e22cf5557fa56726347b5afa149d1/
+PKG_MD5SUM:=f9f8e527df50b0a1533149d9be0b814b
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django-constance
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=Django live settings with pluggable backends, including Redis.
+  URL:=https://github.com/jazzband/django-constance
+  DEPENDS:=+python +django
+endef
+
+define Package/django-constance/description
+  Django live settings with pluggable backends, including Redis.
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-constance/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-constance))

+ 48 - 0
lang/django-jsonfield/Makefile

@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-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:=django-jsonfield
+PKG_VERSION:=1.0.1
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/e4/b2/a079f0a2218e0eb7892edbf404e0bbfbb281a6bbf06966b775f5142ed159/
+PKG_MD5SUM:=2e5e737a3f93f3b5d7ae6026b1340167
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django-jsonfield
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=JSONField for django models
+  URL:=https://github.com/bradjasper/django-jsonfield
+  DEPENDS:=+python +django
+endef
+
+define Package/django-jsonfield/description
+  JSONField for django models
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-jsonfield/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-jsonfield))

+ 48 - 0
lang/django-picklefield/Makefile

@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-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:=django-picklefield
+PKG_VERSION:=0.3.2
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://pypi.python.org/packages/source/d/django-picklefield/
+PKG_MD5SUM:=b2c17ca9e03704ce33890e6aefc7b2e5
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django-picklefield
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=Pickled object field for Django
+  URL:=http://github.com/gintas/django-picklefield/
+  DEPENDS:=+python +django
+endef
+
+define Package/django-picklefield/description
+  Pickled object field for Django
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-picklefield/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-picklefield))

+ 49 - 0
lang/django-postoffice/Makefile

@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2007-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:=django-postoffice
+PKG_VERSION:=2.0.8
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=django-post_office-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/52/25/cc0cfe923f183d7c19b162cac3bf8430ddaed7bad28202b8f93a97d248a4/
+PKG_BUILD_DIR:=$(BUILD_DIR)/django-post_office-$(PKG_VERSION)/
+PKG_MD5SUM:=437bf62cef06381d346ae2bc087c0e3c
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django-postoffice
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=A Django app to monitor and send mail asynchronously, complete with template support.
+  URL:=https://github.com/ui/django-postoffice
+  DEPENDS:=+python +django +django-jsonfield
+endef
+
+define Package/django-postoffice/description
+  A Django app to monitor and send mail asynchronously, complete with template support.
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-postoffice/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-postoffice))

+ 49 - 0
lang/django-restframework/Makefile

@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2007-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:=django-restframework
+PKG_VERSION:=3.3.3
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=djangorestframework-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://pypi.python.org/packages/source/d/djangorestframework/
+PKG_BUILD_DIR:=$(BUILD_DIR)/djangorestframework-$(PKG_VERSION)
+PKG_MD5SUM:=6f5ee9646e7fa87dad4385d3c7e7678d
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django-restframework
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=Web APIs for Django, made easy.
+  URL:=http://www.django-rest-framework.org/
+  DEPENDS:=+python +django
+endef
+
+define Package/django-restframework/description
+  Web APIs for Django, made easy.
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-restframework/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-restframework))

+ 48 - 0
lang/django-statici18n/Makefile

@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-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:=django-statici18n
+PKG_VERSION:=1.2.1
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/72/76/6ee13019e1691bff6b759136068ee77fcc2982b700135caa134030937b28/
+PKG_MD5SUM:=67cac19909dd3272ae1fc73ad8d1dca3
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django-statici18n
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=A Django app that provides helper for generating JavaScript catalog to static files.
+  URL:=http://django-statici18n.readthedocs.org/
+  DEPENDS:=+python +django
+endef
+
+define Package/django-statici18n/description
+  A Django app that provides helper for generating JavaScript catalog to static files.
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-statici18n/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-statici18n))

+ 65 - 0
lang/django/Makefile

@@ -0,0 +1,65 @@
+#
+# Copyright (C) 2007-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:=django
+PKG_VERSION:=1.8.12
+PKG_RELEASE=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/django/django.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=c168aeba175dbb92c615460a360cb1ea978de5d3
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/django
+    SUBMENU:=Python
+    SECTION:=lang
+    CATEGORY:=Languages
+    TITLE:=The web framework for perfectionists with deadlines.
+    MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+    URL:=https://www.djangoproject.com/
+    DEPENDS:=+python
+endef
+
+define Package/django/description
+    The web framework for perfectionists with deadlines.
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Build/InstallDev
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/django-admin.py \
+	    $(1)/usr/bin
+endef
+
+define Package/django/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/django-admin.py \
+	    $(1)/usr/bin
+	# fix python exec path
+	sed -i 's/#!.*/#!\/usr\/bin\/python/g' $(1)/usr/bin/django-admin.py
+endef
+
+$(eval $(call BuildPackage,django))

+ 49 - 0
lang/dkjson/Makefile

@@ -0,0 +1,49 @@
+#
+# 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:=3
+
+PKG_SOURCE_URL:=https://github.com/LuaDist/dkjson.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=e72ba0c9f5d8b8746fc306f6189a819dbb5cd0be
+PKG_LICENSE:=MIT
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+
+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
+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))

+ 339 - 0
lang/erlang/Makefile

@@ -0,0 +1,339 @@
+#
+# Copyright (C) 2009-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:=erlang
+PKG_VERSION:=17.5
+PKG_RELEASE:=3
+
+PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:= http://www.erlang.org/download/ \
+	http://erlang.mirror.su.se/
+PKG_MD5SUM:=346dd0136bf1cc28cebc140e505206bb
+
+PKG_LICENSE:=ErlPL-1.1
+PKG_LICENSE_FILES:=EPLICENCE
+PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org>
+
+PKG_BUILD_DEPENDS:=erlang/host openssl
+PKG_USE_MIPS16:=0
+
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/otp_src_$(PKG_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/otp_src_$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/erlang/Default
+  SUBMENU:=Erlang
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Erlang/OTP programming language
+  URL:=http://www.erlang.org/
+endef
+
+define Package/erlang/Default/description
+ Erlang/OTP is a general-purpose programming language and runtime
+ environment. Erlang has built-in support for concurrency, distribution
+ and fault tolerance.
+endef
+
+define Package/erlang
+$(call Package/erlang/Default)
+  DEPENDS+= +libncurses +librt +zlib
+  PROVIDES:= erlang-erts=6.4 erlang-kernel=3.2 erlang-sasl=2.4.1 erlang-stdlib=2.4
+endef
+
+define Package/erlang/description
+$(call Package/erlang/Default/description)
+ .
+ This package contains the runtime implementation and a minimal set of
+ modules (erts, kernel, sasl & stdlib).
+endef
+
+
+define Package/erlang-asn1
+$(call Package/erlang/Default)
+  TITLE:=Abstract Syntax Notation One (ASN.1) support
+  VERSION:=3.0.4
+  DEPENDS+= +erlang +erlang-syntax-tools
+endef
+
+define Package/erlang-asn1/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides Abstract Syntax Notation One (ASN.1)
+ support.
+endef
+
+
+define Package/erlang-compiler
+$(call Package/erlang/Default)
+  TITLE:=Byte code compiler
+  VERSION:=5.0.4
+  DEPENDS+= +erlang +erlang-hipe
+endef
+
+define Package/erlang-compiler/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides a byte code compiler for Erlang which
+ produces highly compact code.
+endef
+
+
+define Package/erlang-crypto
+$(call Package/erlang/Default)
+  TITLE:=Cryptography support
+  VERSION:=3.5
+  DEPENDS+= +erlang +libopenssl
+endef
+
+define Package/erlang-crypto/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides functions for computation of message
+ digests, and encryption and decryption functions.
+endef
+
+
+define Package/erlang-hipe
+$(call Package/erlang/Default)
+  TITLE:=High Performance Erlang
+  VERSION:=3.11.3
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-hipe/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides HiPE (High Performance Erlang)
+ support.
+endef
+
+
+define Package/erlang-inets
+$(call Package/erlang/Default)
+  TITLE:=Internet clients and servers
+  VERSION:=5.10.6
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-inets/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides a container for Internet clients and
+ servers. Currently a FTP client, a HTTP client and server, and a tftp
+ client and server have been incorporated in Inets.
+endef
+
+
+define Package/erlang-mnesia
+$(call Package/erlang/Default)
+  TITLE:=Distributed database
+  VERSION:=4.12.5
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-mnesia/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides a distributed DataBase Management
+ System (DBMS), appropriate for telecommunications applications and
+ other Erlang applications which require continuous operation and
+ exhibit soft real-time properties.
+endef
+
+
+define Package/erlang-runtime-tools
+$(call Package/erlang/Default)
+  TITLE:=Low-profile debugging/tracing tools
+  VERSION:=1.8.16
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-runtime-tools/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides low footprint tracing/debugging tools
+ suitable for inclusion in a production system.
+endef
+
+
+define Package/erlang-snmp
+$(call Package/erlang/Default)
+  TITLE:=Simple Network Management Protocol (SNMP) support
+  VERSION:=5.1.1
+  DEPENDS+= +erlang +erlang-asn1
+endef
+
+define Package/erlang-snmp/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides Simple Network Management Protocol
+ (SNMP) support including a MIB compiler and tools for creating SNMP
+ agents.
+endef
+
+
+define Package/erlang-ssh
+$(call Package/erlang/Default)
+  TITLE:=Secure Shell (SSH) support
+  VERSION:=3.2
+  DEPENDS+= +erlang +erlang-crypto
+endef
+
+define Package/erlang-ssh/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides an implementation of the Secure Shell
+ protocol, with SSH & SFTP support.
+endef
+
+
+define Package/erlang-ssl
+$(call Package/erlang/Default)
+  TITLE:=Secure Sockets Layer (SSL) support
+  VERSION:=6.0
+  DEPENDS+= +erlang +erlang-crypto
+endef
+
+define Package/erlang-ssl/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides support for secure communication over
+ sockets.
+endef
+
+
+define Package/erlang-syntax-tools
+$(call Package/erlang/Default)
+  TITLE:=Abstract Erlang syntax trees handling support
+  VERSION:=1.6.18
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-syntax-tools/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides support for handling abstract Erlang
+ syntax trees.
+endef
+
+
+# Host
+
+HOST_CONFIGURE_ARGS += \
+	--disable-hipe \
+	--disable-smp-support \
+	--without-javac
+
+HOST_CFLAGS += -D_GNU_SOURCE
+
+define Host/Compile
+	$(MAKE) -C $(HOST_BUILD_DIR) all
+endef
+
+define Host/Install
+	$(MAKE) -C $(HOST_BUILD_DIR) install
+endef
+
+
+# Target
+
+CONFIGURE_ARGS += \
+	--disable-hipe \
+	--disable-smp-support \
+	--without-javac \
+	--enable-dynamic-ssl-lib
+
+CONFIGURE_VARS += \
+	SHLIB_LD="$(TARGET_CC)" \
+	TARGET_ARCH="$(TARGET_ARCH)" \
+	ac_cv_func_mmap_fixed_mapped=yes \
+	ac_cv_path_WX_CONFIG_PATH=no \
+	erl_xcomp_getaddrinfo=no \
+	erl_xcomp_sysroot="$(STAGING_DIR)"
+
+EXTRA_CFLAGS+=-D_GNU_SOURCE
+EXTRA_LDFLAGS+=-lz
+
+define Build/Compile
+	$(MAKE) -C $(PKG_BUILD_DIR) \
+		noboot
+	$(MAKE) -C $(PKG_BUILD_DIR) \
+		INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
+		install
+endef
+
+define Package/erlang/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	for f in epmd erl erlc escript run_erl; do \
+		$(CP) $(PKG_INSTALL_DIR)/usr/bin/$$$$f $(1)/usr/bin/ ; \
+	done
+	$(INSTALL_DIR) $(1)/usr/lib/erlang/bin
+	for f in erl erlc escript run_erl start start.boot start.script start_clean.boot start_erl start_sasl.boot to_erl; do \
+		$(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/bin/$$$$f $(1)/usr/lib/erlang/bin/ ; \
+	done
+	$(INSTALL_DIR) $(1)/usr/lib/erlang/lib
+	for m in erts kernel sasl stdlib; do \
+		$(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/lib/$$$$m-* $(1)/usr/lib/erlang/lib/ ; \
+		rm -rf $(1)/usr/lib/erlang/lib/$$$$m-*/examples ; \
+		rm -rf $(1)/usr/lib/erlang/lib/$$$$m-*/src ; \
+	done
+	$(INSTALL_DIR) $(1)/usr/lib/erlang
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/erts-* $(1)/usr/lib/erlang/
+	rm -rf $(1)/usr/lib/erlang/erts-*/{doc,include,lib,man,src}
+	rm -rf $(1)/usr/lib/erlang/erts-*/bin/*.src
+	$(INSTALL_DIR) $(1)/usr/lib/erlang/releases
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/releases/* $(1)/usr/lib/erlang/releases/
+	$(SED) 's,%ERL_ROOT%,/usr/lib/erlang,g' \
+		$(1)/usr/lib/erlang/releases/RELEASES.src
+	mv -f $(1)/usr/lib/erlang/releases/RELEASES.src \
+		$(1)/usr/lib/erlang/releases/RELEASES
+	for f in bin/erl bin/start erts-*/bin/erl erts-*/bin/start; do \
+		$(SED) 's,^\(ROOTDIR\)=.*,\1=/usr/lib/erlang,g' \
+			$(1)/usr/lib/erlang/$$$$f ; \
+	done
+endef
+
+define Build/InstallDev
+	$(INSTALL_DIR) $(1)/usr/lib
+	$(CP) $(PKG_BUILD_DIR)/lib/erl_interface/obj/*/*.a $(1)/usr/lib/
+	$(INSTALL_DIR) $(1)/usr/include
+	$(CP) $(PKG_BUILD_DIR)/lib/erl_interface/include/*.h $(1)/usr/include/
+endef
+
+define BuildModule
+
+  define Package/erlang-$(1)/install
+	$(INSTALL_DIR) $$(1)/usr/lib/erlang/lib
+	for m in $(2); do \
+		$(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/lib/$$$$$$$$m-* $$(1)/usr/lib/erlang/lib/ ; \
+		rm -rf $$(1)/usr/lib/erlang/lib/$$$$$$$$m-*/{examples,priv/obj,src} ; \
+	done
+  endef
+
+  $$(eval $$(call BuildPackage,erlang-$(1)))
+
+endef
+
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,erlang))
+$(eval $(call BuildModule,asn1,asn1))
+$(eval $(call BuildModule,compiler,compiler))
+$(eval $(call BuildModule,crypto,crypto))
+$(eval $(call BuildModule,hipe,hipe))
+$(eval $(call BuildModule,inets,inets))
+$(eval $(call BuildModule,mnesia,mnesia))
+$(eval $(call BuildModule,runtime-tools,runtime_tools))
+$(eval $(call BuildModule,snmp,snmp))
+$(eval $(call BuildModule,ssh,ssh))
+$(eval $(call BuildModule,ssl,ssl))
+$(eval $(call BuildModule,syntax-tools,syntax_tools))

+ 11 - 0
lang/erlang/patches/101-emulator_includes.patch

@@ -0,0 +1,11 @@
+--- a/erts/emulator/Makefile.in
++++ b/erts/emulator/Makefile.in
+@@ -682,7 +682,7 @@ $(OBJDIR)/beam_emu.o: beam/beam_emu.c
+ endif
+ 
+ $(OBJDIR)/%.o: beam/%.c
+-	$(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@
++	$(V_CC) $(INCLUDES) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) -c $< -o $@
+ 
+ $(OBJDIR)/%.o: $(TARGET)/%.c
+ 	$(V_CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@

+ 11 - 0
lang/erlang/patches/102-musl_compat.patch

@@ -0,0 +1,11 @@
+--- a/lib/erl_interface/src/connect/ei_resolve.c
++++ b/lib/erl_interface/src/connect/ei_resolve.c
+@@ -642,7 +642,7 @@ struct hostent *ei_gethostbyname_r(const
+ #ifndef HAVE_GETHOSTBYNAME_R
+   return my_gethostbyname_r(name,hostp,buffer,buflen,h_errnop);
+ #else
+-#if (defined(__GLIBC__) || (__FreeBSD_version >= 602000) || defined(__DragonFly__) || defined(__ANDROID__))
++#if (defined(_GNU_SOURCE) || (__FreeBSD_version >= 602000) || defined(__DragonFly__) || defined(__ANDROID__))
+   struct hostent *result;
+ 
+   gethostbyname_r(name, hostp, buffer, buflen, &result, h_errnop);

+ 11 - 0
lang/erlang/patches/103-disable_emacs.patch

@@ -0,0 +1,11 @@
+--- a/lib/tools/Makefile
++++ b/lib/tools/Makefile
+@@ -23,7 +23,7 @@ include $(ERL_TOP)/make/$(TARGET)/otp.mk
+ # Macros
+ # ----------------------------------------------------
+ 
+-SUB_DIRECTORIES = c_src src doc/src examples priv emacs
++SUB_DIRECTORIES = c_src src doc/src examples priv
+ 
+ include vsn.mk
+ VSN = $(TOOLS_VSN)

+ 48 - 0
lang/et_xmlfile/Makefile

@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-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:=et_xmlfile
+PKG_VERSION:=1.0.1
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://pypi.python.org/packages/source/e/et_xmlfile/
+PKG_MD5SUM:=f47940fd9d556375420b2e276476cfaf
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/et_xmlfile
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=An implementation of lxml.xmlfile for the standard library
+  URL:=https://bitbucket.org/openpyxl/et_xmlfile
+  DEPENDS:=+python
+endef
+
+define Package/et_xmlfile/description
+  An implementation of lxml.xmlfile for the standard library
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/et_xmlfile/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,et_xmlfile))

+ 48 - 0
lang/flup/Makefile

@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-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:=flup
+PKG_VERSION:=1.0.2
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://pypi.python.org/packages/source/f/flup/
+PKG_MD5SUM:=24dad7edc5ada31dddd49456ee8d5254
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/flup
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=Random assortment of WSGI servers
+  URL:=http://www.saddi.com/software/flup/
+  DEPENDS:=+python
+endef
+
+define Package/flup/description
+  Random assortment of WSGI servers
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/flup/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,flup))

+ 53 - 0
lang/gunicorn/Makefile

@@ -0,0 +1,53 @@
+#
+# Copyright (C) 2007-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:=gunicorn
+PKG_VERSION:=19.6.0
+PKG_RELEASE=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/84/ce/7ea5396efad1cef682bbc4068e72a0276341d9d9d0f501da609fab9fcb80/
+PKG_MD5SUM:=338e5e8a83ea0f0625f768dba4597530
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/gunicorn
+    SUBMENU:=Python
+    SECTION:=lang
+    CATEGORY:=Languages
+    TITLE:=WSGI HTTP Server for UNIX
+    MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+    URL:=http://gunicorn.org/
+    DEPENDS:=+python +python-setuptools
+endef
+
+define Package/gunicorn/description
+    WSGI HTTP Server for UNIX
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/gunicorn/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gunicorn* \
+	    $(1)/usr/bin
+	# fix python exec path in scripts
+	$(SED) 's/#!.*/#!\/usr\/bin\/python/g' $(1)/usr/bin/gunicorn*
+endef
+
+$(eval $(call BuildPackage,gunicorn))

+ 67 - 0
lang/jamvm/Makefile

@@ -0,0 +1,67 @@
+#
+# 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:=jamvm
+PKG_VERSION:=2.0.0
+PKG_RELEASE:=1
+PKG_LICENSE:=GPL-2.0+
+PKG_MAINTAINER:=Dana H. Myers <k6jq@comcast.net>
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_MD5SUM:=a6e3321ef4b3cfb4afc20bd75452e11e
+
+PKG_USE_MIPS16:=0
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/jamvm
+  SUBMENU:=Java
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=A compact Java Virtual Machine
+  URL:=http://sourceforge.net/projects/jamvm
+  DEPENDS:=+zlib +libpthread +librt +classpath @!avr32
+endef
+
+define Package/jamvm/description
+ JamVM is a new Java Virtual Machine which conforms to the JVM
+ specification version (blue book). In comparison to most other VM's (free
+ and commercial) it is extremely small.However, unlike other small VMs
+ (e.g. KVM) it is designed to support the full specification, and includes
+ support for object finalisation, Soft/Weak/Phantom References, the Java
+ Native Interface (JNI) and the Reflection API.
+endef
+
+CONFIGURE_ARGS += \
+	--with-java-runtime-library=gnuclasspath \
+	--with-classpath-install-dir=/usr \
+	--disable-int-inlining \
+	--disable-shared \
+	--without-pic
+
+MAKE_FLAGS += \
+	GLIBJ_ZIP=$(STAGING_DIR)/usr/share/classpath/glibj.zip
+
+define Package/jamvm/install
+	$(INSTALL_DIR) $(1)/usr
+	$(CP) \
+		$(PKG_INSTALL_DIR)/usr/bin \
+		$(PKG_INSTALL_DIR)/usr/share \
+		$(1)/usr/
+endef
+
+define Build/InstallDev
+	$(CP) $(PKG_INSTALL_DIR)/* $(1)/
+endef
+
+$(eval $(call BuildPackage,jamvm))

+ 48 - 0
lang/jdcal/Makefile

@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-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:=jdcal
+PKG_VERSION:=1.2
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://pypi.python.org/packages/source/j/jdcal/
+PKG_MD5SUM:=ab8d5ba300fd1eb01514f363d19b1eb9
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/jdcal
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+  TITLE:=Julian dates from proleptic Gregorian and Julian calendars.
+  URL:=http://github.com/phn/jdcal
+  DEPENDS:=+python
+endef
+
+define Package/jdcal/description
+  Julian dates from proleptic Gregorian and Julian calendars.
+endef
+
+define Build/Compile
+	$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/jdcal/install
+	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+	$(CP) \
+	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+	    $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,jdcal))

+ 52 - 0
lang/json4lua/Makefile

@@ -0,0 +1,52 @@
+#
+# 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.53
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=https://github.com/amrhassan/json4lua.git
+PKG_SOURCE_VERSION:=$(PKG_VERSION)
+
+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
+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))

+ 48 - 0
lang/lpeg/Makefile

@@ -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:=lpeg
+PKG_VERSION:=0.12.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_MD5SUM:=fabb614eb46e370d4f6b8fd82d17ca7e
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+
+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 +=
+
+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))

+ 49 - 0
lang/lua-bencode/Makefile

@@ -0,0 +1,49 @@
+#
+# 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.1.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=https://bitbucket.org/wilhelmy/lua-bencode/downloads/
+PKG_HASH:=4624f33ff026bc62990a323ee4953e42d68430c38a1a4726c9cfd77c085b1422
+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
+	MAINTAINER:=Lars Gierth <larsg@systemli.org>
+	DEPENDS:=+lua
+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))

+ 56 - 0
lang/lua-cjson/Makefile

@@ -0,0 +1,56 @@
+#
+# 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:=2
+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:=http://www.kyne.com.au/~mark/software/download/
+PKG_MD5SUM:=24f270663e9f6ca8ba2a02cef19f7963
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(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
+  SUBMENU:=Lua
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Lua CJSON parser
+  URL:=https://github.com/mpx/lua-cjson
+  DEPENDS:= +lua
+endef
+
+define Package/lua-cjson/description
+  Lua CJSON is a fast JSON encoding/parsing module for Lua.
+endef
+
+CMAKE_OPTIONS += \
+	-DUSE_LUA=ON
+
+CMAKE_HOST_OPTIONS += \
+	-DLUA_MATH_LIBRARY=m
+
+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
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,lua-cjson))

+ 62 - 0
lang/lua-copas/Makefile

@@ -0,0 +1,62 @@
+#
+# 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.0
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/keplerproject/copas.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=f39a80add9f7c010ac979297652bbaaea0360a27
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
+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
+
+# add make variable overrides here
+MAKE_FLAGS +=
+
+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))

+ 15 - 0
lang/lua-copas/patches/makefile.patch

@@ -0,0 +1,15 @@
+--- lua-copas-1.2.1_org/Makefile	2014-06-04 16:39:17.451563827 +0800
++++ lua-copas-1.2.1/Makefile	2014-06-04 16:39:41.115563309 +0800
+@@ -1,10 +1,10 @@
+ # $Id: Makefile,v 1.3 2007/10/29 22:50:16 carregal Exp $
+ 
+ # Default prefix
+-PREFIX = /usr/local
++PREFIX ?= $(DESTDIR)/usr
+ 
+ # System's lua directory (where Lua libraries are installed)
+-LUA_DIR= $(PREFIX)/share/lua/5.1
++LUA_DIR= $(PREFIX)/lib/lua
+ 
+ install:
+ 	mkdir -p $(LUA_DIR)/copas

+ 59 - 0
lang/lua-coxpcall/Makefile

@@ -0,0 +1,59 @@
+#
+# 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.15.0
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/keplerproject/coxpcall.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=979257892884816c97391dfd7b0a7b30dcc8f479
+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))

+ 4 - 0
lang/lua-coxpcall/patches/config.patch

@@ -0,0 +1,4 @@
+--- lua-coxpcall-1.15.0_org/config	1970-01-01 08:00:00.000000000 +0800
++++ lua-coxpcall-1.15.0/config	2014-06-04 16:51:55.487547258 +0800
+@@ -0,0 +1 @@
++LUA_DIR ?=$(DESTDIR)/usr/lib/lua

+ 58 - 0
lang/lua-lsqlite3/Makefile

@@ -0,0 +1,58 @@
+#
+# 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.3
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=http://lua.sqlite.org/index.cgi/zip/lsqlite3_fsl09w.zip
+PKG_MD5SUM:=8e16ef4fda82eb73295bf2f1050d14f1
+
+PKG_LICENSE:=MIT
+PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)_fsl09w.zip
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/lsqlite3
+  SUBMENU:=Lua
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Lua wrapper for the SQLite3 library
+  URL:=http://lua.sqlite.org
+  DEPENDS:= +lua +libsqlite3
+endef
+
+define Package/lsqlite3/description
+ LuaSQLite3 is a thin wrapper around the public domain SQLite3 database engine.
+endef
+
+TARGET_CFLAGS += $(FPIC) -std=gnu99
+TARGET_CPPFLAGS += -DLUA_USE_LINUX
+TARGET_LDFLAGS += -llua -lsqlite3 -lpthread
+
+define Build/Compile
+	$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) \
+		-c $(PKG_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/lsqlite3.c \
+		-o $(PKG_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/lsqlite3.o \
+		-DSQLITE_VERSION="$(PKG_VERSION)"
+	$(TARGET_CC) $(TARGET_LDFLAGS) -shared \
+		$(PKG_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/lsqlite3.o \
+		-o $(PKG_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/lsqlite3.so
+endef
+
+define Package/lsqlite3/install
+	$(INSTALL_DIR) $(1)/usr/lib/lua
+	$(CP) $(PKG_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/*.so $(1)/usr/lib/lua/
+endef
+
+$(eval $(call BuildPackage,lsqlite3))

+ 48 - 0
lang/lua-lzlib/Makefile

@@ -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:=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_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))

+ 12 - 0
lang/lua-lzlib/patches/001-allow_optim_flags.patch

@@ -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

+ 75 - 0
lang/lua-md5/Makefile

@@ -0,0 +1,75 @@
+#
+# 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.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:=https://github.com/keplerproject/md5.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=024b65738b4434860777fc43d7cacaefea29ec60
+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
+	$(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))

+ 19 - 0
lang/lua-md5/patches/config.patch

@@ -0,0 +1,19 @@
+--- lua-md5-1.2/config	2014-06-04 16:55:50.000000000 +0800
++++ lua-md5-1.2_new/config	2014-06-04 16:57:54.223539416 +0800
+@@ -1,13 +1,13 @@
+ # Installation directories
+ 
+ # Default prefix
+-PREFIX = /usr/local
++PREFIX = /usr
+ 
+ # 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

+ 10 - 0
lang/lua-md5/patches/makefile.patch

@@ -0,0 +1,10 @@
+--- a/Makefile.orig	2014-06-04 17:16:40.083514808 +0800
++++ b/Makefile	2014-06-04 17:17:27.111513780 +0800
+@@ -1,6 +1,6 @@
+ # $Id: Makefile,v 1.7 2007/10/11 00:02:56 carregal Exp $
+ 
+-CONFIG= ./config
++CFLAGS+= -fPIC
+ 
+ include $(CONFIG)
+ 

+ 56 - 0
lang/lua-mobdebug/Makefile

@@ -0,0 +1,56 @@
+#
+# 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.61
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/pkulchenko/MobDebug.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=9a03aa59696647ba3b7f9ae2f29a9f28532a4feb
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
+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
+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))

+ 42 - 0
lang/lua-openssl/Makefile

@@ -0,0 +1,42 @@
+#
+# 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_VERSION:=0.6.0
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Amnon Paz <pazamnon@gmail.com>
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/zhaozg/lua-openssl.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=1b950e6ff8617205cda1a1b612637ef21b9daf96
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/$(PKG_NAME)
+  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/$(PKG_NAME)/install
+	$(INSTALL_DIR) $(1)/usr/lib/lua
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/openssl.so $(1)/usr/lib/lua/
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))

+ 135 - 0
lang/lua-openssl/patches/0001-Revise-Makefile.patch

@@ -0,0 +1,135 @@
+diff --git a/Makefile b/Makefile
+index 6cb1176..6605879 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,85 +1,45 @@
+-T=openssl
+-
+-PREFIX		?=/usr/local
+-LIB_OPTION	?= -shared 
+-
+-#Lua auto detect
+-LUA_VERSION ?= $(shell pkg-config luajit --print-provides)
+-ifeq ($(LUA_VERSION),)                         ############ Not use luajit
+-LUAV		?= $(shell lua -e "_,_,v=string.find(_VERSION,'Lua (.+)');print(v)")
+-LUA_CFLAGS	?= -I$(PREFIX)/include/lua$(LUAV)
+-LUA_LIBS	?= -L$(PREFIX)/lib 
+-LUA_LIBDIR	?= $(PREFIX)/lib/lua/$(LUAV)
+-else
+-LUAV		?= $(shell lua -e "_,_,v=string.find(_VERSION,'Lua (.+)');print(v)")
+-LUA_CFLAGS	?= $(shell pkg-config luajit --cflags)
+-LUA_LIBS	?= $(shell pkg-config luajit --libs)
+-LUA_LIBDIR	?= $(PREFIX)/lib/lua/$(LUAV)
+-endif
+-
+-#OS auto detect
+-SYS := $(shell gcc -dumpmachine)
+-
+-ifneq (, $(findstring linux, $(SYS)))
+-# Do linux things
+-LDFLAGS		    = -fPIC -lrt -ldl
+-OPENSSL_LIBS	?= $(shell pkg-config openssl --libs) 
+-OPENSSL_CFLAGS	?= $(shell pkg-config openssl --cflags)
+-CFLAGS		    = -fPIC $(OPENSSL_CFLAGS) $(LUA_CFLAGS) 
+-endif
+-ifneq (, $(findstring apple, $(SYS)))
+-# Do darwin things
+-LDFLAGS		    = -fPIC -lrt -ldl
+-OPENSSL_LIBS	?= $(shell pkg-config openssl --libs) 
+-OPENSSL_CFLAGS	?= $(shell pkg-config openssl --cflags)
+-CFLAGS		    = -fPIC $(OPENSSL_CFLAGS) $(LUA_CFLAGS)
+-endif
+-ifneq (, $(findstring mingw, $(SYS)))
+-# Do mingw things
+-V			= $(shell lua -e "v=string.gsub('$(LUAV)','%.','');print(v)")
+-LDFLAGS		= -mwindows -lcrypt32 -lssl -lcrypto -lws2_32 $(PREFIX)/bin/lua$(V).dll 
+-LUA_CFLAGS	= -DLUA_LIB -DLUA_BUILD_AS_DLL -I$(PREFIX)/include/
+-CFLAGS		= $(OPENSSL_CFLAGS) $(LUA_CFLAGS)
+-endif
+-ifneq (, $(findstring cygwin, $(SYS)))
+-# Do cygwin things
+-OPENSSL_LIBS	?= $(shell pkg-config openssl --libs) 
+-OPENSSL_CFLAGS  ?= $(shell pkg-config openssl --cflags)
+-CFLAGS		= -fPIC $(OPENSSL_CFLAGS) $(LUA_CFLAGS)
+-endif
+-#custome config
+-ifeq (.config, $(wildcard .config))
+-include .config
+-endif
+-
+-LIBNAME= $T.so.$V
+-
+-#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X
+-
+-# Compilation directives
+-WARN_MOST	= -Wall -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic
+-WARN		= -Wall -Wno-unused-value
+-WARN_MIN	= 
+-CFLAGS		+= $(WARN_MIN) -DPTHREADS 
+-CC= gcc -g $(CFLAGS) -Ideps
+-
+-
+-OBJS=src/asn1.o src/auxiliar.o src/bio.o src/cipher.o src/cms.o src/compat.o src/crl.o src/csr.o src/dh.o src/digest.o src/dsa.o \
+-src/ec.o src/engine.o src/hmac.o src/lbn.o src/lhash.o src/misc.o src/ocsp.o src/openssl.o src/ots.o src/pkcs12.o src/pkcs7.o    \
+-src/pkey.o src/rsa.o src/ssl.o src/th-lock.o src/util.o src/x509.o src/xattrs.o src/xexts.o src/xname.o src/xstore.o src/xalgor.o src/callback.o 
+-
+-.c.o:
+-	$(CC) -c -o $@ $?
+-
+-all: $T.so
+-	echo $(SYS)
+-
+-$T.so: $(OBJS)
+-	MACOSX_DEPLOYMENT_TARGET="10.3"; export MACOSX_DEPLOYMENT_TARGET; $(CC) $(CFLAGS) $(LIB_OPTION) -o $T.so $(OBJS) $(OPENSSL_LIBS) $(LUA_LIBS) $(LDFLAGS)
+-
+-install: all
+-	mkdir -p $(LUA_LIBDIR)
+-	cp $T.so $(LUA_LIBDIR)
+-
+-clean:
+-	rm -f $T.so $(OBJS) 
++.PHONY: install clean
++
++PKGC ?= pkg-config
++
++LIBNAME = openssl.so
++LIB_OPTION = -shared
++
++# lua's package config can be under various names
++LUAPKGC := $(shell for pc in lua lua5.1 lua5.2 lua5.3; do \
++		$(PKGC) --exists $$pc && echo $$pc && break; \
++	done)
++
++BUILD_DIR = $(shell pwd)
++
++# LUA include/libraries build flags
++LUA_LIBDIR := $(shell $(PKGC) --variable=libdir $(LUAPKGC))
++LUA_CFLAGS := $(shell $(PKGC) --cflags $(LUAPKGC))
++LUA_LIBS := $(shell $(PKGC) --libs-only-L $(LUAPKGC))
++
++# openssl include/libraries build flags
++OPENSSL_LIBS	= $(shell $(PKGC) openssl --libs)
++OPENSSL_CFLAGS	= $(shell $(PKGC) openssl --cflags)
++
++# openssl include/libraries build flags
++LOCAL_INCLUDE = -I$(BUILD_DIR)/deps
++
++CFLAGS	+= -fPIC -DPTHREADS -g $(LOCAL_INCLUDE) $(OPENSSL_CFLAGS) $(LUA_CFLAGS)
++LDFLAGS += -lrt -ldl $(OPENSSL_LIBS) $(LUA_LIBS)
++
++OBJS = src/asn1.o src/auxiliar.o src/bio.o src/cipher.o src/cms.o src/compat.o src/crl.o src/csr.o src/dh.o src/digest.o src/dsa.o src/ec.o src/engine.o src/hmac.o src/lbn.o src/lhash.o src/misc.o src/ocsp.o src/openssl.o src/ots.o src/pkcs12.o src/pkcs7.o src/pkey.o src/rsa.o src/ssl.o src/th-lock.o src/util.o src/x509.o src/xattrs.o src/xexts.o src/xname.o src/xstore.o src/xalgor.o src/callback.o
++
++all: clean $(LIBNAME)
++
++$(LIBNAME): $(OBJS)
++	$(CC) $(LDFLAGS) $(LIB_OPTION) $(OBJS) -o $@
++
++%.o: %.c
++	$(CC) $(CFLAGS) -c $< -o $@
++
++install: all
++	mkdir -p $(LUA_LIBDIR)
++	cp $(LIBNAME) $(LUA_LIBDIR)
++
++clean:
++	rm -f $(LIBNAME) $(OBJS)

+ 36 - 0
lang/lua-openssl/patches/0010-Fix-Linkage.patch

@@ -0,0 +1,36 @@
+diff --git a/deps/lua-compat/c-api/compat-5.3.c b/deps/lua-compat/c-api/compat-5.3.c
+index 4395bbc..4a8877c 100644
+--- a/deps/lua-compat/c-api/compat-5.3.c
++++ b/deps/lua-compat/c-api/compat-5.3.c
+@@ -491,17 +491,6 @@ COMPAT53_API int lua_geti (lua_State *L, int index, lua_Integer i) {
+ }
+
+
+-COMPAT53_API int lua_isinteger (lua_State *L, int index) {
+-  if (lua_type(L, index) == LUA_TNUMBER) {
+-    lua_Number n = lua_tonumber(L, index);
+-    lua_Integer i = lua_tointeger(L, index);
+-    if (i == n)
+-      return 1;
+-  }
+-  return 0;
+-}
+-
+-
+ static void compat53_reverse (lua_State *L, int a, int b) {
+   for (; a < b; ++a, --b) {
+     lua_pushvalue(L, a);
+diff --git a/deps/lua-compat/c-api/compat-5.3.h b/deps/lua-compat/c-api/compat-5.3.h
+index 2309294..8e67bae 100644
+--- a/deps/lua-compat/c-api/compat-5.3.h
++++ b/deps/lua-compat/c-api/compat-5.3.h
+@@ -244,9 +244,6 @@ typedef int (*lua_KFunction)(lua_State *L, int status, lua_KContext ctx);
+ #define lua_geti COMPAT53_CONCAT(COMPAT53_PREFIX, _geti)
+ COMPAT53_API int lua_geti (lua_State *L, int index, lua_Integer i);
+
+-#define lua_isinteger COMPAT53_CONCAT(COMPAT53_PREFIX, _isinteger)
+-COMPAT53_API int lua_isinteger (lua_State *L, int index);
+-
+ #define lua_numbertointeger(n, p) \
+   ((*(p) = (lua_Integer)(n)), 1)
+

+ 41 - 0
lang/lua-openssl/patches/0020-support-OPENSSL_NO_SSL3_METHOD.patch

@@ -0,0 +1,41 @@
+--- lua-openssl-0.6.0.old/src/ssl.c	2016-09-19 08:30:43.735075695 +0200
++++ lua-openssl-0.6.0/src/ssl.c	2016-09-19 09:02:45.733813437 +0200
+@@ -24,12 +24,17 @@
+   SSL_METHOD* method = NULL;
+   const char* ciphers;
+   SSL_CTX* ctx;
+-  if (strcmp(meth, "SSLv3") == 0)
++  if (0);
++
++#ifndef OPENSSL_NO_SSL3
++  else if (strcmp(meth, "SSLv3") == 0)
+     method = SSLv3_method();    /* SSLv3 */
+   else if (strcmp(meth, "SSLv3_server") == 0)
+     method = SSLv3_server_method(); /* SSLv3 */
+   else if (strcmp(meth, "SSLv3_client") == 0)
+     method = SSLv3_client_method(); /* SSLv3 */
++#endif
++
+   else if (strcmp(meth, "SSLv23") == 0)
+     method = SSLv23_method();   /* SSLv3 but can rollback to v2 */
+   else if (strcmp(meth, "SSLv23_server") == 0)
+@@ -79,15 +84,15 @@
+ #endif
+   else
+     luaL_error(L, "#1:%s not supported\n"
+-               "Maybe SSLv3 SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server\n",
+-               "default is SSLv3",
++               "Maybe [SSLv3] SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server\n",
++               "default is TLSv1",
+                meth);
+   ciphers = luaL_optstring(L, 2, SSL_DEFAULT_CIPHER_LIST);
+   ctx = SSL_CTX_new(method);
+   if (!ctx)
+     luaL_error(L, "#1:%s not supported\n"
+-               "Maybe SSLv3 SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server\n",
+-               "default is SSLv3",
++               "Maybe [SSLv3] SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server\n",
++               "default is TLSv1",
+                meth);
+   openssl_newvalue(L, ctx);
+   SSL_CTX_set_cipher_list(ctx, ciphers);

+ 20 - 0
lang/lua-openssl/patches/0030-support-OPENSSL_NO_COMP.patch

@@ -0,0 +1,20 @@
+--- lua-openssl-0.6.0.old/src/ssl.c	2016-09-19 08:30:43.735075695 +0200
++++ lua-openssl-0.6.0/src/ssl.c	2016-09-19 08:48:37.393737125 +0200
+@@ -1245,7 +1250,7 @@
+   lua_pushinteger(L, st);
+   return 2;
+ }
+-#ifndef LIBRESSL_VERSION_NUMBER
++#if !defined(OPENSSL_NO_COMP) && !defined(LIBRESSL_VERSION_NUMBER)
+ static int openssl_ssl_current_compression(lua_State *L)
+ {
+   SSL* s = CHECK_OBJECT(1, SSL, "openssl.ssl");
+@@ -1803,7 +1808,7 @@
+   {"getfd",     openssl_ssl_getfd},
+
+   {"current_cipher",        openssl_ssl_current_cipher},
+-#ifndef LIBRESSL_VERSION_NUMBER
++#if !defined(OPENSSL_NO_COMP) && !defined(LIBRESSL_VERSION_NUMBER)
+   {"current_compression",   openssl_ssl_current_compression},
+ #endif
+   {"getpeerverification",   openssl_ssl_getpeerverification},

+ 46 - 0
lang/lua-penlight/Makefile

@@ -0,0 +1,46 @@
+#
+# 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.3.2
+PKG_RELEASE:=2
+PKG_BUILD_DIR:=$(BUILD_DIR)/Penlight-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/stevedonovan/Penlight/archive/
+PKG_MD5SUM:=0315a39834bb6fab07741ec04ede1bf4
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE.md
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/$(PKG_NAME)
+  SUBMENU:=Lua
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Penlight
+  URL:=http://stevedonovan.github.io/Penlight/api/manual/01-introduction.md.html
+  DEPENDS:=+luafilesystem
+  MAINTAINER:= Karl Palsson <karlp@remake.is>
+endef
+
+define Package/$(PKG_NAME)/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/$(PKG_NAME)/install
+	$(INSTALL_DIR) $(1)/usr/lib/lua
+	$(CP) $(PKG_BUILD_DIR)/lua/pl $(1)/usr/lib/lua
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))

+ 54 - 0
lang/lua-rings/Makefile

@@ -0,0 +1,54 @@
+#
+# 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_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))

+ 28 - 0
lang/lua-rings/patches/config.patch

@@ -0,0 +1,28 @@
+--- lua-rings-1.3.0_org/config	2014-06-04 15:24:24.223662038 +0800
++++ lua-rings-1.3.0/config	2014-06-04 16:16:15.183594040 +0800
+@@ -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 @@
+ 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 $

+ 11 - 0
lang/lua-rings/patches/makefile.patch

@@ -0,0 +1,11 @@
+--- lua-rings-1.3.0_org/Makefile	2014-06-04 15:24:37.583661746 +0800
++++ lua-rings-1.3.0/Makefile	2014-06-04 15:23:41.611662970 +0800
+@@ -3,6 +3,8 @@
+ T= rings
+ CONFIG= ./config
+ 
++CFLAGS+= -fPIC
++
+ include $(CONFIG)
+ 
+ SRCS= src/rings.c

+ 62 - 0
lang/lua-rs232/Makefile

@@ -0,0 +1,62 @@
+#
+# 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_VERSION:=1.0.3
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/srdgame/librs232.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=a9d463181e7f7034fe6a55bc38e845fb04fa93ba
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_INSTALL:=1
+
+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
+
+CONFIGURE_ARGS += \
+	--with-lua-inc=$(STAGING_DIR)/usr/include \
+	--with-lua-lib=$(STAGING_DIR)/usr/lib
+
+#define Build/Configure
+#	( cd "$(PKG_BUILD_DIR)"; ./autogen.sh )
+#	$(call Build/Configure/Default)
+#endef
+define Build/Configure
+endef
+
+define Build/Compile
+	(cd "$(PKG_BUILD_DIR)"; $(TARGET_CC)  src/rs232.c src/rs232_posix.c bindings/lua/luars232.c -DLUAROCKS_HACK -std=gnu99 -I./include -I$(STAGING_DIR)/usr/include -L$(STAGING_DIR)/usr/lib -fPIC -shared -o luars232.so)
+endef
+
+define Build/Install
+endef
+
+define Package/lua-rs232/install
+	$(INSTALL_DIR) $(1)/usr/lib/lua
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/luars232.so $(1)/usr/lib/lua/
+endef
+
+$(eval $(call BuildPackage,lua-rs232))

+ 52 - 0
lang/lua-sha2/Makefile

@@ -0,0 +1,52 @@
+#
+# 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_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))

+ 14 - 0
lang/lua-sha2/patches/001-makefile.patch

@@ -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

+ 95 - 0
lang/lua-wsapi/Makefile

@@ -0,0 +1,95 @@
+#
+# 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.6.1
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/keplerproject/wsapi.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=eed8338401196cc155e59280adbe58d78933ead0
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
+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
+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))

+ 58 - 0
lang/lua-xavante/Makefile

@@ -0,0 +1,58 @@
+#
+# 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.3.0
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/keplerproject/xavante.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=9825b905133e14d37a4c179f2d02367ab93f1ef6
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/lua-xavante
+  SUBMENU:=Lua
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Xavante Web Server
+  URL:=http://keplerproject.github.io/xavante/
+  DEPENDS:= +lua
+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))

+ 53 - 0
lang/luabitop/Makefile

@@ -0,0 +1,53 @@
+#
+# 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.2
+PKG_RELEASE:=1
+
+_BASENAME:=LuaBitOp
+
+PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
+PKG_SOURCE:=$(_BASENAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://bitop.luajit.org/download/
+PKG_MD5SUM:=d0c1080fe0c844e8477279668e2d0d06
+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))

+ 56 - 0
lang/luaexpat/Makefile

@@ -0,0 +1,56 @@
+# 
+# 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.3.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://matthewwild.co.uk/projects/luaexpat
+PKG_MD5SUM:=3c20b5795e7107f847f8da844fbfe2da
+
+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))

+ 97 - 0
lang/luaexpat/files/compat-5.1r5/compat-5.1.c

@@ -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 */
+}
+

+ 13 - 0
lang/luaexpat/files/compat-5.1r5/compat-5.1.h

@@ -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 $
+*/