git:
depth: 10
+ quiet: true
+
language: c
dist: trusty
sudo: false
--- /dev/null
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=atop
+PKG_RELEASE:=1
+PKG_VERSION:=2.3.0
+PKG_LICENSE:=GPL-2.0
+PKG_SOURCE_URL:=https://www.atoptool.nl/download/
+PKG_HASH:=73e4725de0bafac8c63b032e8479e2305e3962afbe977ec1abd45f9e104eb264
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/atop
+ SECTION:=admin
+ CATEGORY:=Administration
+ TITLE:=System and process monitor for Linux
+ DEPENDS:=+zlib +libncurses
+ URL:=https://www.atoptool.nl/
+ MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
+endef
+
+define Package/atop/description
+ Atop is an ASCII full-screen performance monitor for
+ Linux that is capable of reporting the activity of all
+ processes (even if processes have finished during the
+ interval), daily logging of system and process activity
+ for long-term analysis, highlighting overloaded system
+ resources by using colors, etcetera. At regular
+ intervals, it shows system-level activity related to the
+ CPU, memory, swap, disks (including LVM) and network
+ layers, and for every process (and thread) it shows e.g.
+ the CPU utilization, memory growth, disk utilization,
+ priority, username, state, and exit code. In combination
+ with the optional kernel module netatop, it even shows
+ network activity per process/thread.
+endef
+
+MAKE_FLAGS += \
+ CFLAGS+="-Wno-misleading-indentation -Wno-unused-const-variable -Wno-format-truncation"
+
+define Package/atop/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/atop $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,atop))
PKG_NAME:=ipmitool
PKG_VERSION:=1.8.18
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
--- /dev/null
+From b57487e360916ab3eaa50aa6d021c73b6337a4a0 Mon Sep 17 00:00:00 2001
+From: Dennis Schridde <dennis.schridde@uni-heidelberg.de>
+Date: Wed, 30 Nov 2016 17:33:00 +0100
+Subject: [PATCH 1/4] ID:461 - OpenSSL 1.1 compatibility - "error: storage size
+ of 'ctx' isn't known"
+
+In OpenSSL 1.1 EVP_CIPHER_CTX became opaque, cf. `man 3ssl EVP_EncryptInit`
+
+Fixes: ID:461
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index d5fac37..3c0df23 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -164,10 +164,10 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ uint8_t * output,
+ uint32_t * bytes_written)
+ {
+- EVP_CIPHER_CTX ctx;
+- EVP_CIPHER_CTX_init(&ctx);
+- EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
+- EVP_CIPHER_CTX_set_padding(&ctx, 0);
++ EVP_CIPHER_CTX* ctx;
++ EVP_CIPHER_CTX_init(ctx);
++ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++ EVP_CIPHER_CTX_set_padding(ctx, 0);
+
+
+ *bytes_written = 0;
+@@ -191,7 +191,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
+
+
+- if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
++ if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
+ {
+ /* Error */
+ *bytes_written = 0;
+@@ -201,7 +201,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ {
+ uint32_t tmplen;
+
+- if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
++ if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+ {
+ *bytes_written = 0;
+ return; /* Error */
+@@ -210,7 +210,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ {
+ /* Success */
+ *bytes_written += tmplen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_cleanup(ctx);
+ }
+ }
+ }
+@@ -239,10 +239,10 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ uint8_t * output,
+ uint32_t * bytes_written)
+ {
+- EVP_CIPHER_CTX ctx;
+- EVP_CIPHER_CTX_init(&ctx);
+- EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
+- EVP_CIPHER_CTX_set_padding(&ctx, 0);
++ EVP_CIPHER_CTX* ctx;
++ EVP_CIPHER_CTX_init(ctx);
++ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++ EVP_CIPHER_CTX_set_padding(ctx, 0);
+
+
+ if (verbose >= 5)
+@@ -266,7 +266,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
+
+
+- if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
++ if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
+ {
+ /* Error */
+ lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
+@@ -277,7 +277,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ {
+ uint32_t tmplen;
+
+- if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
++ if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+ {
+ char buffer[1000];
+ ERR_error_string(ERR_get_error(), buffer);
+@@ -290,7 +290,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ {
+ /* Success */
+ *bytes_written += tmplen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_cleanup(ctx);
+ }
+ }
+
+--
+2.16.1
+
--- /dev/null
+From 77fe5635037ebaf411cae46cf5045ca819b5c145 Mon Sep 17 00:00:00 2001
+From: Zdenek Styblik <stybla@turnovfree.net>
+Date: Sun, 15 Jan 2017 15:11:25 +0100
+Subject: [PATCH 2/4] ID:461 - Make compiler happier about changes related to
+ OpenSSL 1.1
+
+Complaint was that ctx isn't initialized.
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index 3c0df23..d12d0e3 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -164,7 +164,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ uint8_t * output,
+ uint32_t * bytes_written)
+ {
+- EVP_CIPHER_CTX* ctx;
++ EVP_CIPHER_CTX *ctx = NULL;
+ EVP_CIPHER_CTX_init(ctx);
+ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+ EVP_CIPHER_CTX_set_padding(ctx, 0);
+@@ -239,7 +239,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ uint8_t * output,
+ uint32_t * bytes_written)
+ {
+- EVP_CIPHER_CTX* ctx;
++ EVP_CIPHER_CTX *ctx = NULL;
+ EVP_CIPHER_CTX_init(ctx);
+ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+ EVP_CIPHER_CTX_set_padding(ctx, 0);
+--
+2.16.1
+
--- /dev/null
+From f004b4b7197fc83e7d47ec8cbcaefffa9a922717 Mon Sep 17 00:00:00 2001
+From: Zdenek Styblik <stybla@turnovfree.net>
+Date: Sun, 12 Mar 2017 14:00:35 +0100
+Subject: [PATCH 3/4] ID:480 - ipmitool coredumps in EVP_CIPHER_CTX_init
+
+IPMI tool coredumps due to changes introduced in ID:461. This shouldn't be
+surprise as a NULL pointer is passed to init. Commit addresses this issue by
+calling EVP_CIPHER_CTX_new() instead of EVP_CIPHER_CTX_init(), which is
+deprecated, and by checking return value of call to former function.
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index d12d0e3..0e330c1 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -165,10 +165,13 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ uint32_t * bytes_written)
+ {
+ EVP_CIPHER_CTX *ctx = NULL;
+- EVP_CIPHER_CTX_init(ctx);
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL) {
++ *bytes_written = 0;
++ return;
++ }
+ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+ EVP_CIPHER_CTX_set_padding(ctx, 0);
+-
+
+ *bytes_written = 0;
+
+@@ -240,11 +243,14 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ uint32_t * bytes_written)
+ {
+ EVP_CIPHER_CTX *ctx = NULL;
+- EVP_CIPHER_CTX_init(ctx);
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL) {
++ *bytes_written = 0;
++ return;
++ }
+ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+ EVP_CIPHER_CTX_set_padding(ctx, 0);
+
+-
+ if (verbose >= 5)
+ {
+ printbuf(iv, 16, "decrypting with this IV");
+--
+2.16.1
+
--- /dev/null
+From 1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1 Mon Sep 17 00:00:00 2001
+From: Holger Liebig <holger.liebig@ts.fujitsu.com>
+Date: Tue, 4 Apr 2017 20:43:05 +0200
+Subject: [PATCH 4/4] ID:480 - Call EVP_CIPHER_CTX_free() instead of
+ EVP_CIPHER_CTX_cleanup()
+
+Call EVP_CIPHER_CTX_free() instead of EVP_CIPHER_CTX_cleanup() to fix memory
+leak.
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 44 +++++++++++++++++---------------
+ 1 file changed, 23 insertions(+), 21 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index 0e330c1..9652a5e 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -165,13 +165,6 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ uint32_t * bytes_written)
+ {
+ EVP_CIPHER_CTX *ctx = NULL;
+- ctx = EVP_CIPHER_CTX_new();
+- if (ctx == NULL) {
+- *bytes_written = 0;
+- return;
+- }
+- EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+- EVP_CIPHER_CTX_set_padding(ctx, 0);
+
+ *bytes_written = 0;
+
+@@ -185,6 +178,14 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ printbuf(input, input_length, "encrypting this data");
+ }
+
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL) {
++ lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
++ return;
++ }
++ EVP_CIPHER_CTX_init(ctx);
++ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++ EVP_CIPHER_CTX_set_padding(ctx, 0);
+
+ /*
+ * The default implementation adds a whole block of padding if the input
+@@ -198,7 +199,6 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+ {
+ /* Error */
+ *bytes_written = 0;
+- return;
+ }
+ else
+ {
+@@ -206,16 +206,17 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+
+ if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+ {
++ /* Error */
+ *bytes_written = 0;
+- return; /* Error */
+ }
+ else
+ {
+ /* Success */
+ *bytes_written += tmplen;
+- EVP_CIPHER_CTX_cleanup(ctx);
+ }
+ }
++ /* performs cleanup and free */
++ EVP_CIPHER_CTX_free(ctx);
+ }
+
+
+@@ -243,13 +244,6 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ uint32_t * bytes_written)
+ {
+ EVP_CIPHER_CTX *ctx = NULL;
+- ctx = EVP_CIPHER_CTX_new();
+- if (ctx == NULL) {
+- *bytes_written = 0;
+- return;
+- }
+- EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+- EVP_CIPHER_CTX_set_padding(ctx, 0);
+
+ if (verbose >= 5)
+ {
+@@ -258,12 +252,20 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ printbuf(input, input_length, "decrypting this data");
+ }
+
+-
+ *bytes_written = 0;
+
+ if (input_length == 0)
+ return;
+
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL) {
++ lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
++ return;
++ }
++ EVP_CIPHER_CTX_init(ctx);
++ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++ EVP_CIPHER_CTX_set_padding(ctx, 0);
++
+ /*
+ * The default implementation adds a whole block of padding if the input
+ * data is perfectly aligned. We would like to keep that from happening.
+@@ -277,7 +279,6 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+ /* Error */
+ lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
+ *bytes_written = 0;
+- return;
+ }
+ else
+ {
+@@ -285,20 +286,21 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+
+ if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+ {
++ /* Error */
+ char buffer[1000];
+ ERR_error_string(ERR_get_error(), buffer);
+ lprintf(LOG_DEBUG, "the ERR error %s", buffer);
+ lprintf(LOG_DEBUG, "ERROR: decrypt final failed");
+ *bytes_written = 0;
+- return; /* Error */
+ }
+ else
+ {
+ /* Success */
+ *bytes_written += tmplen;
+- EVP_CIPHER_CTX_cleanup(ctx);
+ }
+ }
++ /* performs cleanup and free */
++ EVP_CIPHER_CTX_free(ctx);
+
+ if (verbose >= 5)
+ {
+--
+2.16.1
+
--- /dev/null
+#
+# This is free software, licensed under the GNU General Public License v2.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=netatop
+PKG_RELEASE:=1
+PKG_VERSION:=2.0
+PKG_LICENSE:=GPL-2.0
+PKG_SOURCE_URL:=https://www.atoptool.nl/download/
+PKG_HASH:=c66d7ca094d667428924f2faff2afb816b17565e8c3628e43bfa0e1a2e22c20e
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+define KernelPackage/netatop
+ URL:=https://www.atoptool.nl/
+ CATEGORY:=Kernel modules
+ SUBMENU:=Netfilter Extensions
+ TITLE:=netatop netfilter module
+ FILES:= \
+ $(PKG_BUILD_DIR)/module/netatop.$(LINUX_KMOD_SUFFIX)
+ AUTOLOAD:=$(call AutoProbe,netatop)
+endef
+
+define KernelPackage/netatop/description
+ The optional kernel module netatop can be loaded to gather statistics about
+ the TCP and UDP packets that have been transmitted/received per process and
+ per thread. As soon as atop discovers that this module is active, it shows
+ the columns SNET and RNET in the generic screen for the number of transmitted
+ and received packets per process. When the 'n' key is pressed, it shows
+ detailed counters about the number packets transmitted/received via TCP and
+ UDP, the average sizes of these packets, and the total bandwidth consumed
+ for input and output per process/thread.
+endef
+
+define Package/netatop
+ SECTION:=admin
+ CATEGORY:=Administration
+ TITLE:=network counter for atop
+ DEPENDS:=+zlib +kmod-netatop
+ URL:=https://www.atoptool.nl/
+endef
+
+define Package/netatop/description
+ The daemon netatopd is packaged with the netatop kernel module. This
+ daemon takes care that information is gathered about processes that are
+ finished. For every finished process that has transferred network packets,
+ a binary record is written to a dedicated logfile. The added records in the
+ logfile are read by atop with every sample to show information about the
+ network activity of finished processes as well.
+endef
+
+NETATOP_KMOD_MAKEOPTS= \
+ ARCH="$(LINUX_KARCH)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ KERNDIR="$(LINUX_DIR)"
+NETATOP_DAEMON_MAKEOPTS= \
+ CC="$(TARGET_CC)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)"
+
+define Build/Compile/netatop
+ $(MAKE) -C $(PKG_BUILD_DIR)/module \
+ $(NETATOP_KMOD_MAKEOPTS) \
+ netatop.$(LINUX_KMOD_SUFFIX)
+ $(MAKE) -C $(PKG_BUILD_DIR)/daemon \
+ $(NETATOP_DAEMON_MAKEOPTS) \
+ all
+endef
+
+define Build/Compile
+ $(call Build/Compile/netatop)
+endef
+
+define Package/netatop/install
+ $(INSTALL_DIR) $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/daemon/netatopd $(1)/usr/sbin/
+endef
+
+$(eval $(call KernelPackage,netatop))
+$(eval $(call BuildPackage,netatop))
--- /dev/null
+diff --git a/daemon/Makefile b/daemon/Makefile
+index e028e95..1233855 100644
+--- a/daemon/Makefile
++++ b/daemon/Makefile
+@@ -6,7 +6,7 @@ THISDIR = $(shell pwd)
+ all: netatopd
+
+ netatopd: netatopd.o Makefile
+- $(CC) netatopd.o -o netatopd -lz
++ $(CC) $(LDFLAGS) netatopd.o -o netatopd -lz
+
+ clean:
+ rm -f *.o netatopd
endef
CONFIGURE_VARS += \
+ gl_cv_func_getopt_gnu=yes \
ac_cv_func_mempcpy=n
TARGET_CFLAGS += --std=gnu99
PKG_NAME:=gcc
PKG_VERSION:=5.4.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE_URL:=@GNU/gcc/gcc-$(PKG_VERSION)
PKG_HASH:=608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
TARGET_LANGUAGES:="c,c++"
BUGURL=https://dev.openwrt.org/
PKGVERSION=OpenWrt GCC $(PKG_VERSION)
+TARGET_CPPFLAGS += -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS
# not using sstrip here as this fucks up the .so's somehow
STRIP:=$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)strip
cp $(PKG_BUILD_DIR)/config.sub $(PKG_BUILD_DIR)/mpc/
endef
+TARGET_CXX += -std=gnu++03
+CONFIGURE_ARGS += CXX_FOR_TARGET="$(TARGET_CXX)" CXXFLAGS_FOR_TARGET="-g -O2 -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS"
define Build/Configure
(cd $(PKG_BUILD_DIR); rm -f config.cache; \
include $(TOPDIR)/rules.mk
PKG_NAME:=erlang
-PKG_VERSION:=17.5
-PKG_RELEASE:=3
+PKG_VERSION:=19.3
+PKG_RELEASE:=6
PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:= http://www.erlang.org/download/ \
- http://erlang.mirror.su.se/
-PKG_HASH:=3c28820c981b30c50df8ac2a4a238e5813454fa3ed2ad530bc7948a282846474
+PKG_SOURCE_URL:= http://www.erlang.org/download/
+PKG_HASH:=fe4a00651db39b8542b04530a48d24b2f2e7e0b77cbe93d728c9f05325bdfe83
PKG_LICENSE:=ErlPL-1.1
PKG_LICENSE_FILES:=EPLICENCE
-PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org>
+PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org> \
+ Arnaud Sautaux <arnaud.sautaux@infoteam.ch>
PKG_BUILD_DEPENDS:=erlang/host openssl
PKG_USE_MIPS16:=0
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
+ PROVIDES:= erlang-erts=8.3 erlang-kernel=5.2 erlang-sasl=3.0.3 erlang-stdlib=3.3
endef
define Package/erlang/description
define Package/erlang-asn1
$(call Package/erlang/Default)
TITLE:=Abstract Syntax Notation One (ASN.1) support
- VERSION:=3.0.4
+ VERSION:=4.0.4
DEPENDS+= +erlang +erlang-syntax-tools
endef
define Package/erlang-compiler
$(call Package/erlang/Default)
TITLE:=Byte code compiler
- VERSION:=5.0.4
+ VERSION:=7.0.4
DEPENDS+= +erlang +erlang-hipe
endef
define Package/erlang-crypto
$(call Package/erlang/Default)
TITLE:=Cryptography support
- VERSION:=3.5
+ VERSION:=3.7.3
DEPENDS+= +erlang +libopenssl
endef
define Package/erlang-hipe
$(call Package/erlang/Default)
TITLE:=High Performance Erlang
- VERSION:=3.11.3
+ VERSION:=3.15.4
DEPENDS+= +erlang
endef
define Package/erlang-inets
$(call Package/erlang/Default)
TITLE:=Internet clients and servers
- VERSION:=5.10.6
+ VERSION:=6.3.6
DEPENDS+= +erlang
endef
define Package/erlang-mnesia
$(call Package/erlang/Default)
TITLE:=Distributed database
- VERSION:=4.12.5
+ VERSION:=4.14.3
DEPENDS+= +erlang
endef
define Package/erlang-runtime-tools
$(call Package/erlang/Default)
TITLE:=Low-profile debugging/tracing tools
- VERSION:=1.8.16
+ VERSION:=1.11.1
DEPENDS+= +erlang
endef
define Package/erlang-snmp
$(call Package/erlang/Default)
TITLE:=Simple Network Management Protocol (SNMP) support
- VERSION:=5.1.1
+ VERSION:=5.2.5
DEPENDS+= +erlang +erlang-asn1
endef
endef
+define Package/erlang-public-key
+$(call Package/erlang/Default)
+ TITLE:=Public Key support
+ VERSION:=1.4
+ DEPENDS+= +erlang +erlang-crypto +erlang-asn1
+endef
+
+define Package/erlang-public-key/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides functions to handle public-key infrastructure.
+endef
+
+
define Package/erlang-ssh
$(call Package/erlang/Default)
TITLE:=Secure Shell (SSH) support
- VERSION:=3.2
+ VERSION:=4.4.1
DEPENDS+= +erlang +erlang-crypto
endef
define Package/erlang-ssl
$(call Package/erlang/Default)
TITLE:=Secure Sockets Layer (SSL) support
- VERSION:=6.0
+ VERSION:=8.1.1
DEPENDS+= +erlang +erlang-crypto
endef
define Package/erlang-syntax-tools
$(call Package/erlang/Default)
TITLE:=Abstract Erlang syntax trees handling support
- VERSION:=1.6.18
+ VERSION:=2.1.1
DEPENDS+= +erlang
endef
endef
+define Package/erlang-tools
+$(call Package/erlang/Default)
+ TITLE:=Erlang tools support
+ VERSION:=2.9.1
+ DEPENDS+= +erlang
+endef
+
+define Package/erlang-tools/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides support for misc tools.
+endef
+
+
+define Package/erlang-reltool
+$(call Package/erlang/Default)
+ TITLE:=Erlang reltool support
+ VERSION:=0.7.3
+ DEPENDS+= +erlang
+endef
+
+define Package/erlang-reltool/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides support for release management.
+endef
+
+
+define Package/erlang-erl-interface
+$(call Package/erlang/Default)
+ TITLE:=Erlang erl_interface support
+ VERSION:=3.9.3
+ DEPENDS+= +erlang
+endef
+
+define Package/erlang-erl-interface/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides support for erlang interoperability with other languages.
+endef
+
+define Package/erlang-os_mon
+$(call Package/erlang/Default)
+ TITLE:=Erlang OS Monitoring Application
+ VERSION:=2.4.2
+ DEPENDS+= +erlang
+endef
+
+define Package/erlang-os_mon/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides the following services:
+ cpu_sup CPU load and utilization supervision
+ disksup Disk supervision
+ memsup Memory supervision
+endef
+
+define Package/erlang-xmerl
+$(call Package/erlang/Default)
+ TITLE:=Erlang XML export
+ VERSION:=1.3.13
+ DEPENDS+= +erlang
+endef
+
+define Package/erlang-xmerl/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides functions for exporting XML data to an external format
+endef
+
# Host
HOST_CONFIGURE_ARGS += \
$(eval $(call BuildModule,mnesia,mnesia))
$(eval $(call BuildModule,runtime-tools,runtime_tools))
$(eval $(call BuildModule,snmp,snmp))
+$(eval $(call BuildModule,public-key,public_key))
$(eval $(call BuildModule,ssh,ssh))
$(eval $(call BuildModule,ssl,ssl))
$(eval $(call BuildModule,syntax-tools,syntax_tools))
+$(eval $(call BuildModule,tools,tools))
+$(eval $(call BuildModule,reltool,reltool))
+$(eval $(call BuildModule,erl-interface,erl_interface))
+$(eval $(call BuildModule,os_mon,os_mon))
+$(eval $(call BuildModule,xmerl,xmerl))
+
+++ /dev/null
---- 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 $@
+++ /dev/null
---- 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);
+++ /dev/null
---- 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)
)
endef
+# $(1) additional arguments for go command line (optional)
define GoPackage/Build/Compile
( \
cd $(GO_PKG_BUILD_DIR) ; \
done ; \
\
if [ "$(GO_PKG_GO_GENERATE)" = 1 ]; then \
- go generate -v $$$$targets ; \
+ go generate -v $(1) $$$$targets ; \
fi ; \
\
if [ "$(GO_PKG_SOURCE_ONLY)" != 1 ]; then \
esac ; \
trimpath="all=-trimpath=$(GO_PKG_BUILD_DIR)" ; \
ldflags="all=-linkmode external -extldflags '$(TARGET_LDFLAGS)'" ; \
- go install $$$$installsuffix -gcflags "$$$$trimpath" -asmflags "$$$$trimpath" -ldflags "$$$$ldflags" -v $$$$targets ; \
+ go install \
+ $$$$installsuffix \
+ -gcflags "$$$$trimpath" \
+ -asmflags "$$$$trimpath" \
+ -ldflags "$$$$ldflags" \
+ -v \
+ $(1) \
+ $$$$targets ; \
retval=$$$$? ; \
\
if [ "$$$$retval" -eq 0 ] && [ -z "$(call GoPackage/has_binaries)" ]; then \
GO_VERSION_MAJOR_MINOR:=1.10
-GO_VERSION_PATCH:=
+GO_VERSION_PATCH:=3
PKG_NAME:=golang
PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
-PKG_RELEASE:=1
+PKG_RELEASE:=2
+
+GO_SOURCE_URLS:=https://dl.google.com/go/ \
+ https://mirrors.ustc.edu.cn/golang/ \
+ https://mirrors.nju.edu.cn/golang/
PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
-PKG_SOURCE_URL:=https://golang.org/dl/
-PKG_HASH:=f3de49289405fda5fd1483a8fe6bd2fa5469e005fd567df64485c4fa000c7f24
+PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
+PKG_HASH:=567b1cc66c9704d1c019c50bef946272e911ec6baf244310f87f4e678be155f2
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
\
linux_ppc64 linux_ppc64le linux_mips linux_mipsle linux_mips64 linux_mips64le
-BOOTSTRAP_SOURCE_PROTO:=git
-BOOTSTRAP_SOURCE_URL:=https://go.googlesource.com/go
-BOOTSTRAP_SOURCE_VERSION:=4d5426a570c2820c5894a61b52e3dc147e4e7925
-BOOTSTRAP_SOURCE_DATE:=20170926
-BOOTSTRAP_MIRROR_HASH:=a3e26ee7c96486c841d29cbea3bf548ce2d999b9235275091cbe60ae6efa4cb1
-
-BOOTSTRAP_VERSION:=$(BOOTSTRAP_SOURCE_DATE)-$(call version_abbrev,$(BOOTSTRAP_SOURCE_VERSION))
-BOOTSTRAP_SOURCE_SUBDIR:=golang-bootstrap-$(BOOTSTRAP_VERSION)
-BOOTSTRAP_SOURCE:=$(BOOTSTRAP_SOURCE_SUBDIR).tar.xz
+BOOTSTRAP_SOURCE:=go1.4-bootstrap-20171003.tar.gz
+BOOTSTRAP_SOURCE_URL:=$(GO_SOURCE_URLS)
+BOOTSTRAP_HASH:=f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52
BOOTSTRAP_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap
PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
HOST_UNPACK:=$(HOST_TAR) -C $(HOST_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
-BOOTSTRAP_UNPACK:=$(HOST_TAR) -C $(BOOTSTRAP_BUILD_DIR) --strip-components=1 -xJf $(DL_DIR)/$(BOOTSTRAP_SOURCE)
+BOOTSTRAP_UNPACK:=$(HOST_TAR) -C $(BOOTSTRAP_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(BOOTSTRAP_SOURCE)
# don't strip ELF executables in test data (and go itself)
RSTRIP:=:
define Download/golang-bootstrap
FILE:=$(BOOTSTRAP_SOURCE)
URL:=$(BOOTSTRAP_SOURCE_URL)
- SUBDIR:=$(BOOTSTRAP_SOURCE_SUBDIR)
- PROTO:=$(BOOTSTRAP_SOURCE_PROTO)
- MIRROR_HASH:=$(BOOTSTRAP_MIRROR_HASH)
- VERSION:=$(BOOTSTRAP_SOURCE_VERSION)
+ HASH:=$(BOOTSTRAP_HASH)
endef
$(eval $(call Download,golang-bootstrap))
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-openssl
-PKG_VERSION:=0.6.0
+PKG_VERSION:=0.7.1
PKG_RELEASE:=1
PKG_MAINTAINER:=Amnon Paz <pazamnon@gmail.com>
PKG_LICENSE:=MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=33de8fa469f66bbf6df09c4ba4e3386c0613cc061f5adff0928d532af6905773
+PKG_MIRROR_HASH:=225e3fe09226ff72968a7f36a33e207d27332107456a754abbaa59f99a3038f3
PKG_SOURCE_URL:=https://github.com/zhaozg/lua-openssl.git
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=1b950e6ff8617205cda1a1b612637ef21b9daf96
+PKG_SOURCE_VERSION:=b104bbe914d279276560f188854036075b99f724
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
-diff --git a/Makefile b/Makefile
-index 6cb1176..6605879 100644
--- a/Makefile
+++ b/Makefile
-@@ -1,85 +1,45 @@
--T=openssl\r
--\r
+@@ -1,58 +1,36 @@
+ T=openssl\r
++.PHONY: install clean\r
+ \r
-PREFIX ?=/usr/local\r
-LIB_OPTION ?= -shared \r
--\r
++PKGC ?= pkg-config\r
+ \r
-#Lua auto detect\r
-LUA_VERSION ?= $(shell pkg-config luajit --print-provides)\r
-ifeq ($(LUA_VERSION),) ############ Not use luajit\r
-LUA_LIBS ?= $(shell pkg-config luajit --libs)\r
-LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUAV)\r
-endif\r
--\r
++LIB_OPTION = -shared \r
+ \r
-#OS auto detect\r
-SYS := $(shell gcc -dumpmachine)\r
--\r
++# lua's package config can be under various names\r
++LUAPKGC := $(shell for pc in lua lua5.1 lua5.2 lua5.3; do \\r
++ $(PKGC) --exists $$pc && echo $$pc && break; \\r
++ done)\r
+ \r
-ifneq (, $(findstring linux, $(SYS)))\r
-# Do linux things\r
-LDFLAGS = -fPIC -lrt -ldl\r
-ifneq (, $(findstring apple, $(SYS)))\r
-# Do darwin things\r
-LDFLAGS = -fPIC -lrt -ldl\r
--OPENSSL_LIBS ?= $(shell pkg-config openssl --libs) \r
--OPENSSL_CFLAGS ?= $(shell pkg-config openssl --cflags)\r
++BUILD_DIR = $(shell pwd)\r
++\r
++# LUA include/libraries build flags\r
++#LUAV ?= $(shell lua -e "_,_,v=string.find(_VERSION,'Lua (.+)');print(v)")\r
++LUA_LIBDIR := $(shell $(PKGC) --variable=libdir $(LUAPKGC))\r
++LUA_CFLAGS := $(shell $(PKGC) --cflags $(LUAPKGC))\r
++LUA_LIBS := $(shell $(PKGC) --libs-only-L $(LUAPKGC))\r
++#LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUAV)\r
++\r
++# openssl include/libraries build flags\r
++LDFLAGS += -lrt -ldl $(OPENSSL_LIBS) $(LUA_LIBS)\r
+ OPENSSL_LIBS ?= $(shell pkg-config openssl --libs) \r
+ OPENSSL_CFLAGS ?= $(shell pkg-config openssl --cflags)\r
-CFLAGS = -fPIC $(OPENSSL_CFLAGS) $(LUA_CFLAGS)\r
-endif\r
-ifneq (, $(findstring mingw, $(SYS)))\r
-CFLAGS = -fPIC $(OPENSSL_CFLAGS) $(LUA_CFLAGS)\r
-endif\r
-#custome config\r
--ifeq (.config, $(wildcard .config))\r
--include .config\r
--endif\r
--\r
++# openssl include/libraries build flags\r
++LOCAL_INCLUDE = -I$(BUILD_DIR)/deps\r
++CFLAGS += -fPIC -DPTHREADS $(LOCAL_INCLUDE) $(OPENSSL_CFLAGS) $(LUA_CFLAGS) \r
+ ifeq (.config, $(wildcard .config))\r
+ include .config\r
+ endif\r
+ \r
-LIBNAME= $T.so.$V\r
--\r
--#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X\r
--\r
--# Compilation directives\r
--WARN_MOST = -Wall -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic\r
--WARN = -Wall -Wno-unused-value\r
--WARN_MIN = \r
--CFLAGS += $(WARN_MIN) -DPTHREADS \r
--CC= gcc -g $(CFLAGS) -Ideps\r
--\r
--\r
--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 \\r
--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 \\r
--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 \r
--\r
++LIBNAME= $T.so\r
+ \r
+ #LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X\r
+ \r
+@@ -68,11 +46,12 @@ OBJS=src/asn1.o src/auxiliar.o src/bio.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 \\r
+ 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 \r
+ \r
-.c.o:\r
- $(CC) -c -o $@ $?\r
--\r
--all: $T.so\r
-- echo $(SYS)\r
--\r
--$T.so: $(OBJS)\r
-- MACOSX_DEPLOYMENT_TARGET="10.3"; export MACOSX_DEPLOYMENT_TARGET; $(CC) $(CFLAGS) $(LIB_OPTION) -o $T.so $(OBJS) $(OPENSSL_LIBS) $(LUA_LIBS) $(LDFLAGS)\r
--\r
--install: all\r
-- mkdir -p $(LUA_LIBDIR)\r
-- cp $T.so $(LUA_LIBDIR)\r
--\r
--clean:\r
-- rm -f $T.so $(OBJS) \r
-+.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)
++%.o: %.c\r
++ $(CC) $(CFLAGS) -c $< -o $@\r
+ \r
+ all: $T.so\r
+ echo $(SYS)\r
++ $(CC) $(LDFLAGS) $(LIB_OPTION) $(OBJS) -o $@\r
+ \r
+ $T.so: $(OBJS)\r
+ MACOSX_DEPLOYMENT_TARGET="10.3"; export MACOSX_DEPLOYMENT_TARGET; $(CC) $(CFLAGS) $(LIB_OPTION) -o $T.so $(OBJS) $(OPENSSL_LIBS) $(LUA_LIBS) $(LDFLAGS)\r
+++ /dev/null
---- 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);
--- /dev/null
+--- a/src/csr.c
++++ b/src/csr.c
+@@ -38,7 +38,7 @@ static LUA_FUNCTION(openssl_csr_read)
+ return openssl_pushresult(L, 0);
+ }
+ \r
+-\r
++#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
+ static X509 *X509_REQ_to_X509_ex(X509_REQ *r, int days, EVP_PKEY *pkey, const EVP_MD* md)\r
+ {\r
+ X509 *ret = NULL;\r
+@@ -91,14 +91,19 @@ static X509 *X509_REQ_to_X509_ex(X509_RE
+ }\r
+ return (ret);\r
+ }\r
++#endif\r
+
+ static LUA_FUNCTION(openssl_csr_to_x509)
+ {
+ X509_REQ * csr = CHECK_OBJECT(1, X509_REQ, "openssl.x509_req");
+ EVP_PKEY * pkey = CHECK_OBJECT(2, EVP_PKEY, "openssl.evp_pkey");
+ int days = luaL_optint(L, 3, 365);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ const EVP_MD* md = get_digest(L, 4, "sha256");
+ X509* cert = X509_REQ_to_X509_ex(csr, days, pkey, md);
++#else
++ X509* cert = X509_REQ_to_X509(csr, days, pkey);
++#endif
+ if (cert)
+ {
+ PUSH_OBJECT(cert, "openssl.x509");
+++ /dev/null
---- 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},
+++ /dev/null
-#
-# Copyright (C) 2017 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:=luai2c
-PKG_VERSION:=1.1.2
-PKG_RELEASE:=4
-PKG_MAINTAINER:=Frank Edelhaeuser <mrpace2@gmail.com>
-PKG_LICENSE:=MIT
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=1c25062e95064cda4866243ff6797ef597dd57260da559ca68129aa7a72a9cda
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/mrpace2/lua-i2c.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/luai2c
- SUBMENU:=Lua
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=Lua I2C binding
- URL:=https://github.com/mrpace2/lua-i2c/
- DEPENDS:=+liblua +kmod-i2c-core
- MAINTAINER:=Frank Edelhaeuser <mrpace2@gmail.com>
-endef
-
-define Package/luai2c/description
- This is the Lua binding for I2C. It provides access to I2C slaves supported by the kernel.
-endef
-
-define Package/luai2c/install
- $(INSTALL_DIR) $(1)/usr/lib/lua
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/i2c.so $(1)/usr/lib/lua
- $(INSTALL_DIR) $(1)/usr/lib/lua/i2c
- $(INSTALL_DATA) $(PKG_BUILD_DIR)/examples/* $(1)/usr/lib/lua/i2c
-endef
-
-$(eval $(call BuildPackage,luai2c))
PKG_NAME:=luasec
PKG_VERSION:=0.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/brunoos/luasec/archive/
--- /dev/null
+--- a/src/context.c
++++ b/src/context.c
+@@ -24,7 +24,7 @@
+ #include "context.h"
+ #include "options.h"
+
+-#ifndef OPENSSL_NO_ECDH
++#ifndef OPENSSL_NO_EC
+ #include <openssl/ec.h>
+ #include "ec.h"
+ #endif
+@@ -35,10 +35,6 @@ typedef const SSL_METHOD LSEC_SSL_METHOD
+ typedef SSL_METHOD LSEC_SSL_METHOD;
+ #endif
+
+-#if OPENSSL_VERSION_NUMBER>=0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+-#define SSLv23_method() TLS_method()
+-#endif
+-
+ /*-- Compat - Lua 5.1 --------------------------------------------------------*/
+
+ #if (LUA_VERSION_NUM == 501)
+@@ -304,7 +300,7 @@ static int verify_cb(int preverify_ok, X
+ return (verify & LSEC_VERIFY_CONTINUE ? 1 : preverify_ok);
+ }
+
+-#ifndef OPENSSL_NO_ECDH
++#ifndef OPENSSL_NO_EC
+ static EC_KEY *find_ec_key(const char *str)
+ {
+ p_ec ptr;
+@@ -565,7 +561,7 @@ static int set_dhparam(lua_State *L)
+ /**
+ * Set elliptic curve.
+ */
+-#ifdef OPENSSL_NO_ECDH
++#ifdef OPENSSL_NO_EC
+ static int set_curve(lua_State *L)
+ {
+ lua_pushboolean(L, 0);
+--- a/src/ssl.c
++++ b/src/ssl.c
+@@ -31,6 +31,13 @@
+ #include "context.h"
+ #include "ssl.h"
+
++
++#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER<0x10100000L
++#define SSL_is_server(s) (s->server)
++#define X509_up_ref(c) CRYPTO_add(&c->references, 1, CRYPTO_LOCK_X509)
++#endif
++
++
+ /**
+ * Underline socket error.
+ */
+@@ -406,7 +413,9 @@ static int meth_want(lua_State *L)
+ */
+ static int meth_compression(lua_State *L)
+ {
+-#if !defined(OPENSSL_NO_COMP)
++#ifdef OPENSSL_NO_COMP
++ const void *comp;
++#else
+ const COMP_METHOD *comp;
+ #endif
+ p_ssl ssl = (p_ssl)luaL_checkudata(L, 1, "SSL:Connection");
+@@ -415,15 +424,11 @@ static int meth_compression(lua_State *L
+ lua_pushstring(L, "closed");
+ return 2;
+ }
+-#if !defined(OPENSSL_NO_COMP)
+ comp = SSL_get_current_compression(ssl->ssl);
+ if (comp)
+ lua_pushstring(L, SSL_COMP_get_name(comp));
+ else
+ lua_pushnil(L);
+-#else
+- lua_pushnil(L);
+-#endif
+ return 1;
+ }
+
+@@ -461,7 +466,7 @@ static int meth_getpeercertificate(lua_S
+ /* In a server-context, the stack doesn't contain the peer cert,
+ * so adjust accordingly.
+ */
+- if (ssl->ssl->server)
++ if (SSL_is_server(ssl->ssl))
+ --n;
+ certs = SSL_get_peer_cert_chain(ssl->ssl);
+ if (n >= sk_X509_num(certs)) {
+@@ -471,7 +476,7 @@ static int meth_getpeercertificate(lua_S
+ cert = sk_X509_value(certs, n);
+ /* Increment the reference counting of the object. */
+ /* See SSL_get_peer_certificate() source code. */
+- CRYPTO_add(&cert->references, 1, CRYPTO_LOCK_X509);
++ X509_up_ref(cert);
+ lsec_pushx509(L, cert);
+ return 1;
+ }
+@@ -493,7 +498,7 @@ static int meth_getpeerchain(lua_State *
+ return 2;
+ }
+ lua_newtable(L);
+- if (ssl->ssl->server) {
++ if (SSL_is_server(ssl->ssl)) {
+ lsec_pushx509(L, SSL_get_peer_certificate(ssl->ssl));
+ lua_rawseti(L, -2, idx++);
+ }
+@@ -503,7 +508,7 @@ static int meth_getpeerchain(lua_State *
+ cert = sk_X509_value(certs, i);
+ /* Increment the reference counting of the object. */
+ /* See SSL_get_peer_certificate() source code. */
+- CRYPTO_add(&cert->references, 1, CRYPTO_LOCK_X509);
++ X509_up_ref(cert);
+ lsec_pushx509(L, cert);
+ lua_rawseti(L, -2, idx++);
+ }
+--- a/src/x509.c
++++ b/src/x509.c
+@@ -32,6 +32,17 @@
+
+ #include "x509.h"
+
++
++/*
++ * ASN1_STRING_data is deprecated in OpenSSL 1.1.0
++ */
++#if OPENSSL_VERSION_NUMBER>=0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)
++#define LSEC_ASN1_STRING_data(x) ASN1_STRING_get0_data(x)
++#else
++#define LSEC_ASN1_STRING_data(x) ASN1_STRING_data(x)
++#endif
++
++
+ static const char* hex_tab = "0123456789abcdef";
+
+ /**
+@@ -146,7 +157,7 @@ static void push_asn1_string(lua_State*
+ }
+ switch (encode) {
+ case LSEC_AI5_STRING:
+- lua_pushlstring(L, (char*)ASN1_STRING_data(string),
++ lua_pushlstring(L, (char*)LSEC_ASN1_STRING_data(string),
+ ASN1_STRING_length(string));
+ break;
+ case LSEC_UTF8_STRING:
+@@ -182,7 +193,7 @@ static void push_asn1_ip(lua_State *L, A
+ {
+ int af;
+ char dst[INET6_ADDRSTRLEN];
+- unsigned char *ip = ASN1_STRING_data(string);
++ unsigned char *ip = (unsigned char*)LSEC_ASN1_STRING_data(string);
+ switch(ASN1_STRING_length(string)) {
+ case 4:
+ af = AF_INET;
+@@ -293,11 +304,11 @@ int meth_extensions(lua_State* L)
+ break;
+
+ /* Push ret[oid] */
+- push_asn1_objname(L, extension->object, 1);
++ push_asn1_objname(L, X509_EXTENSION_get_object(extension), 1);
+ push_subtable(L, -2);
+
+ /* Set ret[oid].name = name */
+- push_asn1_objname(L, extension->object, 0);
++ push_asn1_objname(L, X509_EXTENSION_get_object(extension), 0);
+ lua_setfield(L, -2, "name");
+
+ n_general_names = sk_GENERAL_NAME_num(values);
+@@ -404,7 +415,7 @@ static int meth_pubkey(lua_State* L)
+ bytes = BIO_get_mem_data(bio, &data);
+ if (bytes > 0) {
+ lua_pushlstring(L, data, bytes);
+- switch(EVP_PKEY_type(pkey->type)) {
++ switch(EVP_PKEY_base_id(pkey)) {
+ case EVP_PKEY_RSA:
+ lua_pushstring(L, "RSA");
+ break;
PKG_NAME:=luasql
PKG_VERSION:=2.3.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_MIRROR_HASH:=b6251065656bf3e066d90d492dd06eec2c2cc76ab4b94187ce3ed9620d41f741
--- /dev/null
+commit 6df3f672313f8dbca219199c8ec8d20c0247347f
+Author: Tomás Guisasola <tomasguisasola@gmail.com>
+Date: Mon Jul 31 09:41:49 2017 -0300
+
+ Add support for building with MariaDB (thanks to Florian Weimer).
+
+--- a/src/ls_mysql.c
++++ b/src/ls_mysql.c
+@@ -602,7 +602,11 @@ LUASQL_API int luaopen_luasql_mysql (lua
+ luaL_setfuncs(L, driver, 0);
+ luasql_set_info (L);
+ lua_pushliteral (L, "_MYSQLVERSION");
++#ifdef MARIADB_CLIENT_VERSION_STR
++ lua_pushliteral (L, MARIADB_CLIENT_VERSION_STR);
++#else
+ lua_pushliteral (L, MYSQL_SERVER_VERSION);
++#endif
+ lua_settable (L, -3);
+ return 1;
+ }
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/luvit/luv.git
+PKG_MIRROR_HASH:=28a4e5f115dacd3b293522bea211576d6bf0519c79971a3dee56632d04a13cb3
PKG_SOURCE_VERSION:=1.9.1-1
PKG_SOURCE_DATE:=2016-12-16
include $(TOPDIR)/rules.mk
PKG_NAME:=lzmq
-PKG_VERSION:=0.4.3
+PKG_VERSION:=0.4.4
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://codeload.github.com/zeromq/lzmq/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=51ec00117b0570db82b1eba7b62e95d7e98c880a028584b195a98b433dd8edd1
+PKG_HASH:=cf70200045b8bcb0e929c338ad421b6a291cf1038053532888dc201af3224d8b
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
include $(TOPDIR)/rules.mk
PKG_NAME:=node
-PKG_VERSION:=v8.10.0
-PKG_RELEASE:=2
+PKG_VERSION:=v8.11.3
+PKG_RELEASE:=1
PKG_SOURCE:=node-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://nodejs.org/dist/${PKG_VERSION}
-PKG_HASH:=b72d4e71618d6bcbd039b487b51fa7543631a4ac3331d7caf69bdf55b5b2901a
+PKG_HASH:=577c751fdca91c46c60ffd8352e5b465881373bfdde212c17c3a3c1bd2616ee0
HOST_BUILD_DEPENDS:=python/host
PKG_BUILD_DEPENDS:=python/host
MAKE_VARS+= \
DESTCPU=$(NODEJS_CPU)
+CONFIGURE_VARS:= \
+ CC="$(TARGET_CC) $(TARGET_OPTIMIZATION)" \
+ CXX="$(TARGET_CXX) $(TARGET_OPTIMIZATION)" \
+ CC_host="$(HOSTCC)" \
+ CXX_host="$(HOSTCXX)"
+
CONFIGURE_ARGS:= \
--dest-cpu=$(NODEJS_CPU) \
--dest-os=linux \
--without-snapshot \
--shared-zlib \
--shared-openssl \
+ --with-intl=$(if $(CONFIG_NODEJS_ICU),system-icu,none) \
+ $(if $(findstring mips,$(NODEJS_CPU)), \
+ $(if $(CONFIG_SOFT_FLOAT),--with-mips-float-abi=soft)) \
+ $(if $(findstring +neon,$(CONFIG_CPU_TYPE)),--with-arm-fpu=neon) \
+ $(if $(findstring +vfp",$(CONFIG_CPU_TYPE)),--with-arm-fpu=vfp) \
+ $(if $(findstring +vfpv3",$(CONFIG_CPU_TYPE)),--with-arm-fpu=vfpv3-d16) \
+ $(if $(findstring +vfpv4",$(CONFIG_CPU_TYPE)),--with-arm-fpu=vfpv3) \
--prefix=/usr
-ifneq ($(findstring arm,$(NODEJS_CPU)),)
-ifeq ($(CONFIG_SOFT_FLOAT),y)
-CONFIGURE_ARGS+= --with-arm-float-abi=softfp
-else
-
-CONFIGURE_ARGS+= --with-arm-float-abi=hard
-
-ifneq ($(findstring vfp,$(CONFIG_CPU_TYPE)),)
-ARM_FPU=vfp
-endif
-
-ifneq ($(findstring vfpv3,$(CONFIG_CPU_TYPE)),)
-ARM_FPU=vfpv3
-endif
-
-ifneq ($(findstring vfpv3-d16,$(CONFIG_CPU_TYPE)),)
-ARM_FPU=vfpv3-d16
-endif
-
-ifneq ($(findstring neon,$(CONFIG_CPU_TYPE)),)
-ARM_FPU=neon
-endif
-
-CONFIGURE_ARGS+= --with-arm-fpu=$(ARM_FPU)
-endif
-endif
-
-ifneq ($(findstring mips,$(NODEJS_CPU)),)
-ifeq ($(CONFIG_SOFT_FLOAT),y)
-CONFIGURE_ARGS+= \
- --with-mips-float-abi=soft
-endif
-endif
-
-ifeq ($(CONFIG_NODEJS_ICU),y)
-CONFIGURE_ARGS+= \
- --with-intl=system-icu
-else
-CONFIGURE_ARGS+= \
- --with-intl=none
-endif
-
HOST_CONFIGURE_VARS:=
HOST_CONFIGURE_ARGS:= \
index 7c0f65a5735..0aa4adbd467 100644
--- a/src/node_crypto.cc
+++ b/src/node_crypto.cc
-@@ -44,9 +44,9 @@
- #include "StartComAndWoSignData.inc"
+@@ -36,9 +36,9 @@
+ #include "v8.h"
#include <algorithm>
+#include <cmath>
include $(TOPDIR)/rules.mk
PKG_NAME:=perl-text-csv_xs
-PKG_VERSION:=1.35
+PKG_VERSION:=1.36
PKG_RELEASE:=1
-PKG_SOURCE_URL:=http://www.cpan.org/authors/id/H/HM/HMBRAND/
+PKG_SOURCE_URL:=https://www.cpan.org/authors/id/H/HM/HMBRAND/
PKG_SOURCE:=Text-CSV_XS-$(PKG_VERSION).tgz
-PKG_HASH:=2b4f111e9486b230b02bfabbbf50c453f959d18ec17351a930e41f0959b358b7
+PKG_HASH:=c321b09ad98a332138f25f55afb83befd7c045134085c7cb280fc325e688942c
PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
PKG_MAINTAINER:=Philip Prindeville <philipp@redfish-solutions.com>
include $(TOPDIR)/rules.mk
PKG_NAME:=php
-PKG_VERSION:=7.2.6
-PKG_RELEASE:=1
+PKG_VERSION:=7.2.7
+PKG_RELEASE:=2
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_HASH:=1f004e049788a3effc89ef417f06a6cf704c95ae2a718b2175185f2983381ae7
+PKG_HASH:=eb01c0153b3baf1f64b8b044013ce414b52fede222df3f509e8ff209478f31f0
PKG_FIXUP:=libtool autoreconf
PKG_BUILD_PARALLEL:=1
iconv imap intl \
json \
ldap \
- mbstring mysqli \
+ mbstring mysqli mysqlnd \
opcache openssl \
pcntl pdo pdo-mysql pdo-pgsql pdo-sqlite pgsql phar \
session shmop simplexml snmp soap sockets sqlite3 sysvmsg sysvsem sysvshm \
config PHP7_SYSTEMTZDATA
bool "Use system timezone data instead of php's built-in database"
depends on PACKAGE_php7-cli || PACKAGE_php7-cgi
- select PACKAGE_zoneinfo-core
default y
help
Enabling this feature automatically selects the zoneinfo-core package
$(call Package/php7/Default)
DEPENDS:=+libpcre +zlib \
- +PHP7_LIBXML:libxml2
+ +PHP7_LIBXML:libxml2 \
+ +PHP7_SYSTEMTZDATA:zoneinfo-core
endef
define Package/php7/description
endif
ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-mysqli),)
- CONFIGURE_ARGS+= --with-mysqli=shared,"$(STAGING_DIR)/usr/bin/mysql_config"
+ CONFIGURE_ARGS+= --with-mysqli=shared
else
CONFIGURE_ARGS+= --without-mysqli
endif
+ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-mysqlnd),)
+ CONFIGURE_ARGS+= --enable-mysqlnd=shared
+else
+ CONFIGURE_ARGS+= --disable-mysqlnd
+endif
+
ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-opcache),)
CONFIGURE_ARGS+= --enable-opcache=shared
else
ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-pdo),)
CONFIGURE_ARGS+= --enable-pdo=shared
ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-pdo-mysql),)
- CONFIGURE_ARGS+= --with-pdo-mysql=shared,"$(STAGING_DIR)/usr"
+ CONFIGURE_ARGS+= --with-pdo-mysql=shared
else
CONFIGURE_ARGS+= --without-pdo-mysql
endif
$(eval $(call BuildModule,json,JSON))
$(eval $(call BuildModule,ldap,LDAP,+PACKAGE_php7-mod-ldap:libopenldap +PACKAGE_php7-mod-ldap:libsasl2))
$(eval $(call BuildModule,mbstring,MBString))
-$(eval $(call BuildModule,mysqli,MySQL Improved Extension,+PACKAGE_php7-mod-mysqli:libmariadbclient))
+$(eval $(call BuildModule,mysqli,MySQL Improved Extension,+PACKAGE_php7-mod-mysqli:php7-mod-mysqlnd,30))
+$(eval $(call BuildModule,mysqlnd,MySQL Native Driver))
$(eval $(call BuildModule,opcache,OPcache,,,zend))
$(eval $(call BuildModule,openssl,OpenSSL,+PACKAGE_php7-mod-openssl:libopenssl))
$(eval $(call BuildModule,pcntl,PCNTL))
$(eval $(call BuildModule,pdo,PHP Data Objects))
-$(eval $(call BuildModule,pdo-mysql,PDO driver for MySQL,+php7-mod-pdo +PACKAGE_php7-mod-pdo-mysql:libmariadbclient))
+$(eval $(call BuildModule,pdo-mysql,PDO driver for MySQL,+php7-mod-pdo +PACKAGE_php7-mod-pdo-mysql:php7-mod-mysqlnd))
$(eval $(call BuildModule,pdo-pgsql,PDO driver for PostgreSQL,+php7-mod-pdo +PACKAGE_php7-mod-pdo-pgsql:libpq))
$(eval $(call BuildModule,pdo-sqlite,PDO driver for SQLite 3.x,+php7-mod-pdo +PACKAGE_php7-mod-pdo-sqlite:libsqlite3 +PACKAGE_php7-mod-pdo-sqlite:librt))
$(eval $(call BuildModule,pgsql,PostgreSQL,+PACKAGE_php7-mod-pgsql:libpq))
--- /dev/null
+#
+# 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-formtools
+PKG_VERSION:=2.1
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/4a/86/ccbb8225dec0621f99f7e19f3dea0a629f1e41bd99fd58ac3e2f388e028f
+PKG_HASH:=7703793f1675aa6e871f9fed147e8563816d7a5b9affdc5e3459899596217f7c
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/django-formtools
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=A set of high-level abstractions for Django forms
+ URL:=https://django-formtools.readthedocs.io/en/latest/
+ DEPENDS:=+python +django
+endef
+
+define Package/django-formtools/description
+ Django "formtools" is a set of high-level abstractions for Django forms.
+ Currently for form previews and multi-step forms.
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-formtools/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-formtools))
--- /dev/null
+#
+# 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-ranged-response
+PKG_VERSION:=0.2.0
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/70/e3/9372fcdca8e9c3205e7979528ccd1a14354a9a24d38efff11c1846ff8bf1
+PKG_HASH:=f71fff352a37316b9bead717fc76e4ddd6c9b99c4680cdf4783b9755af1cf985
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/django-ranged-response
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=Modified Django FileResponse that adds Content-Range headers.
+ URL:=https://github.com/wearespindle/django-ranged-fileresponse
+ DEPENDS:=+python +django
+endef
+
+define Package/django-ranged-response/description
+ Modified Django FileResponse that adds Content-Range headers.
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-ranged-response/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-ranged-response))
--- /dev/null
+#
+# 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-simple-captcha
+PKG_VERSION:=0.5.9
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/d7/f4/ea95b04ed3abc7bf225716f17e35c5a185f6100db4d7541a46696ce40351
+PKG_HASH:=0c30a14f02502119fd1a4d308dd5d2b899d0f4284825a396bbb010afd904754a
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/django-simple-captcha
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=A very simple, yet powerful, Django captcha application
+ URL:=https://github.com/mbi/django-simple-captcha
+ DEPENDS:=+python +python-six +django +pillow +django-ranged-response
+endef
+
+define Package/django-simple-captcha/description
+ Django Simple Captcha is an extremely simple, yet highly customizable Django
+ application to add captcha images to any Django form.
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-simple-captcha/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-simple-captcha))
--- /dev/null
+#
+# 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-webpack-loader
+PKG_VERSION:=0.6.0
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/ff/0f/e812908c5dcc7c8cac5beba2cddd14bbfe045496117b3d306a71b19fc828
+PKG_HASH:=60bab6b9a037a5346fad12d2a70a6bc046afb33154cf75ed640b93d3ebd5f520
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/django-webpack-loader
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=Transparently use webpack with django
+ URL:=https://github.com/owais/django-webpack-loader
+ DEPENDS:=+python +django
+endef
+
+define Package/django-webpack-loader/description
+ Use webpack to generate your static bundles without django’s staticfiles or opaque wrappers.
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-webpack-loader/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-webpack-loader))
--- /dev/null
+#
+# 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:=pyjwt
+PKG_VERSION:=1.6.4
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=PyJWT-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/00/5e/b358c9bb24421e6155799d995b4aa3aa3307ffc7ecae4ad9d29fd7e07a73
+PKG_HASH:=4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176
+PKG_BUILD_DIR:=$(BUILD_DIR)/PyJWT-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/pyjwt
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=JSON Web Token implementation in Python
+ URL:=http://github.com/jpadilla/pyjwt
+ DEPENDS:=+python
+endef
+
+define Package/pyjwt/description
+ A Python implementation of RFC 7519.
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/pyjwt/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,pyjwt))
include $(TOPDIR)/rules.mk
PKG_NAME:=python-asn1crypto
-PKG_VERSION:=0.23.0
+PKG_VERSION:=0.24.0
PKG_RELEASE:=1
PKG_SOURCE:=asn1crypto-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/31/53/8bca924b30cb79d6d70dbab6a99e8731d1e4dd3b090b7f3d8412a8d8ffbc
-PKG_HASH:=0874981329cfebb366d6584c3d16e913f2a0eb026c9463efcc4aaf42a9d94d70
+PKG_SOURCE_URL:=https://pypi.io/packages/source/a/asn1crypto
+PKG_HASH:=9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49
PKG_LICENSE:=MIT
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
include $(TOPDIR)/rules.mk
PKG_NAME:=python-attrs
-PKG_VERSION:=17.4.0
-PKG_RELEASE:=2
+PKG_VERSION:=18.1.0
+PKG_RELEASE:=1
PKG_SOURCE:=attrs-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/8b/0b/a06cfcb69d0cb004fde8bc6f0fd192d96d565d1b8aa2829f0f20adb796e5
-PKG_HASH:=1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/a/attrs
+PKG_HASH:=e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-attrs-$(PKG_VERSION)
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Python
- URL:=https://attrs.readthedocs.org/
+ URL:=http://www.attrs.org/
endef
define Package/python-attrs
$(call Package/python-attrs/Default)
- TITLE:=python-attrs
+ TITLE:=Classes Without Boilerplate
DEPENDS:=+PACKAGE_python-attrs:python-light
VARIANT:=python
endef
define Package/python3-attrs
$(call Package/python-attrs/Default)
- TITLE:=python3-attrs
+ TITLE:=Classes Without Boilerplate
DEPENDS:=+PACKAGE_python3-attrs:python3-light
VARIANT:=python3
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=python-automat
-PKG_VERSION:=0.6.0
+PKG_VERSION:=0.7.0
PKG_RELEASE:=1
PKG_SOURCE:=Automat-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/A/Automat
-PKG_HASH:=3c1fd04ecf08ac87b4dd3feae409542e9bf7827257097b2b6ed5692f69d6f6a8
+PKG_HASH:=cbd78b83fa2d81fe2a4d23d258e1661dd7493c9a50ee2f1a5b2cac61c1793b0e
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-automat-$(PKG_VERSION)
- 'm2r',
- ],
install_requires=[
- "attrs",
+ "attrs>=16.1.0",
"six",
--- a/setup.py
+++ b/setup.py
@@ -27,15 +27,6 @@ setup(
- "attrs",
+ "attrs>=16.1.0",
"six",
],
- extras_require={
+ packages=find_packages(exclude=["*._test", "*._test.*"]),
package_dir={'automat': 'automat'},
install_requires=[
- "attrs",
+ "attrs>=16.1.0",
@@ -30,6 +30,7 @@ setup(
author='Glyph',
author_email='glyph@twistedmatrix.com',
+ exclude_package_data={'':['_test/*']},
license="MIT",
keywords='fsm finite state machine automata',
- )
+ classifiers=[
--- /dev/null
+#
+# 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:=python-certifi
+PKG_VERSION:=2018.4.16
+PKG_RELEASE:=1
+PKG_LICENSE:=MPL-2.0
+
+PKG_SOURCE:=certifi-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/4d/9c/46e950a6f4d6b4be571ddcae21e7bc846fcbb88f1de3eff0f6dd0a6be55d
+PKG_HASH:=13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7
+PKG_BUILD_DIR:=$(BUILD_DIR)/certifi-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-certifi
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=Python package for providing Mozilla's CA Bundle.
+ URL:=http://certifi.io/
+ DEPENDS:=+python
+endef
+
+define Package/python-certifi/description
+ Certifi is a carefully curated collection of Root Certificates for validating the
+ trustworthiness of SSL certificates while verifying the identity of TLS hosts.
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-certifi/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-certifi))
include $(TOPDIR)/rules.mk
PKG_NAME:=python-cffi
-PKG_VERSION:=1.11.4
+PKG_VERSION:=1.11.5
PKG_RELEASE:=1
PKG_SOURCE:=cffi-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/10/f7/3b302ff34045f25065091d40e074479d6893882faef135c96f181a57ed06
-PKG_HASH:=df9083a992b17a28cd4251a3f5c879e0198bb26c9e808c4647e0a18739f1d11d
+PKG_SOURCE_URL:=https://pypi.io/packages/source/c/cffi
+PKG_HASH:=e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-cffi-$(PKG_VERSION)
include $(TOPDIR)/rules.mk
PKG_NAME:=python-cryptography
-PKG_VERSION:=2.1.4
-PKG_RELEASE:=2
+PKG_VERSION:=2.2.2
+PKG_RELEASE:=1
PKG_SOURCE:=cryptography-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/78/c5/7188f15a92413096c93053d5304718e1f6ba88b818357d05d19250ebff85
-PKG_HASH:=e4d967371c5b6b2e67855066471d844c5d52d210c36c28d49a8507b96e2c5291
+PKG_SOURCE_URL:=https://pypi.io/packages/source/c/cryptography
+PKG_HASH:=9fc295bf69130a342e7a19a39d7bbeb15c0bcaabc7382ec33ef3b2b7d18d2f63
PKG_LICENSE:=Apache-2.0 BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE.APACHE LICENSE.BSD
--- a/src/_cffi_src/openssl/ssl.py
+++ b/src/_cffi_src/openssl/ssl.py
-@@ -597,9 +597,6 @@ static const long TLS_ST_OK = 0;
+@@ -646,13 +646,6 @@ static const long TLS_ST_OK = 0;
#if defined(OPENSSL_NO_DTLS) || CRYPTOGRAPHY_OPENSSL_LESS_THAN_102
static const long Cryptography_HAS_GENERIC_DTLS_METHOD = 0;
-const SSL_METHOD *(*DTLS_method)(void) = NULL;
-const SSL_METHOD *(*DTLS_server_method)(void) = NULL;
-const SSL_METHOD *(*DTLS_client_method)(void) = NULL;
+-static const long SSL_OP_NO_DTLSv1 = NULL;
+-static const long SSL_OP_NO_DTLSv1_2 = NULL;
+-long *(*DTLS_set_link_mtu)(SSL *, long) = NULL;
+-long *(*DTLS_get_link_min_mtu)(SSL *) = NULL;
#else
static const long Cryptography_HAS_GENERIC_DTLS_METHOD = 1;
#endif
include $(TOPDIR)/rules.mk
PKG_NAME:=pycurl
-PKG_VERSION:=7.43.0.1
+PKG_VERSION:=7.43.0.2
PKG_RELEASE:=1
PKG_MAINTAINER:=Waldemar Konik <informatyk74@interia.pl>
PKG_LICENSE:=LGPL-2.1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://dl.bintray.com/pycurl/pycurl/
-PKG_HASH:=43231bf2bafde923a6d9bb79e2407342a5f3382c1ef0a3b2e491c6a4e50b91aa
+PKG_HASH:=0f0cdfc7a92d4f2a5c44226162434e34f7d6967d3af416a6f1448649c09a25a4
include $(INCLUDE_DIR)/package.mk
include ../python-package.mk
endef
define Build/Compile
- $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+ $(call Build/Compile/PyMod,,install --with-openssl --prefix=/usr --root=$(PKG_INSTALL_DIR))
endef
define Package/python-curl/install
include $(TOPDIR)/rules.mk
PKG_NAME:=python-hyperlink
-PKG_VERSION:=17.3.1
+PKG_VERSION:=18.0.0
PKG_RELEASE:=1
PKG_SOURCE:=hyperlink-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/h/hyperlink
-PKG_HASH:=bc4ffdbde9bdad204d507bd8f554f16bba82dd356f6130cb16f41422909c33bc
+PKG_HASH:=f01b4ff744f14bc5d0a22a6b9f1525ab7d6312cb0ff967f59414bbac52f0a306
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-hyperlink-$(PKG_VERSION)
define Package/python-hyperlink
$(call Package/python-hyperlink/Default)
TITLE:=Pure-Python immutable URLs
- DEPENDS:=+PACKAGE_python-hyperlink:python-light
+ DEPENDS:= \
+ +PACKAGE_python-hyperlink:python-light \
+ +PACKAGE_python-hyperlink:python-idna
VARIANT:=python
endef
define Package/python3-hyperlink
$(call Package/python-hyperlink/Default)
TITLE:=Pure-Python immutable URLs
- DEPENDS:=+PACKAGE_python3-hyperlink:python3-light
+ DEPENDS:= \
+ +PACKAGE_python3-hyperlink:python3-light \
+ +PACKAGE_python3-hyperlink:python3-idna
VARIANT:=python3
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=python-idna
-PKG_VERSION:=2.6
-PKG_RELEASE:=2
+PKG_VERSION:=2.7
+PKG_RELEASE:=1
PKG_SOURCE:=idna-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/f4/bd/0467d62790828c23c47fc1dfa1b1f052b24efdf5290f071c7a91d0d82fd3
-PKG_HASH:=2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f
+PKG_SOURCE_URL:=https://pypi.io/packages/source/i/idna
+PKG_HASH:=684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE.rst
include $(TOPDIR)/rules.mk
PKG_NAME:=python-ipaddress
-PKG_VERSION:=1.0.19
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.22
+PKG_RELEASE:=1
PKG_SOURCE:=ipaddress-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/f0/ba/860a4a3e283456d6b7e2ab39ce5cf11a3490ee1a363652ac50abf9f0f5df
-PKG_HASH:=200d8686011d470b5e4de207d803445deee427455cd0cb7c982b68cf82524f81
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/i/ipaddress
+PKG_HASH:=b146c751ea45cad6188dd6cf2d9b757f6f4f8d6ffb96a023e6f2e26eea02a72c
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-ipaddress-$(PKG_VERSION)
define Package/python-ipaddress
$(call Package/python-ipaddress/Default)
- TITLE:=python-ipaddress
+ TITLE:=Python 3.3+'s ipaddress
DEPENDS:=+PACKAGE_python-ipaddress:python-light
VARIANT:=python
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=python-lxml
-PKG_VERSION:=4.1.1
+PKG_VERSION:=4.2.1
PKG_RELEASE:=1
PKG_SOURCE:=lxml-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=http://lxml.de/files/
-PKG_HASH:=940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e
+PKG_HASH:=e2629cdbcad82b83922a3488937632a4983ecc0fed3e5cfbf430d069382eeb9b
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-lxml-$(PKG_VERSION)
PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
#
-# Copyright (C) 2007-2014 OpenWrt.org
+# Copyright (C) 2007-2018 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:=MySQL-python
-PKG_VERSION:=1.2.5
-PKG_RELEASE:=1
+PKG_NAME:=python-mysql
+PKG_VERSION:=1.3.12
+PKG_RELEASE:=2
PKG_LICENSE:=GPL-2.0
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/M/MySQL-python/
-PKG_HASH:=811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e140c74
+PKG_SOURCE:=mysqlclient-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/m/mysqlclient
+PKG_HASH:=2d9ec33de39f4d9c64ad7322ede0521d85829ce36a76f9dd3d6ab76a9c8648e5
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-mysql-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
include ../python-package.mk
+include ../python3-package.mk
-define Package/python-mysql
+PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
+
+# Help python-mysql find libiconv.so when using uClibc.
+ifneq ($(CONFIG_USE_UCLIBC),)
+TARGET_CPPFLAGS+= \
+ -I$(STAGING_DIR)/usr/lib/libiconv-full/include
+TARGET_LDFLAGS += \
+ -L$(STAGING_DIR)/usr/lib/libiconv-full/lib
+endif
+
+define Package/python-mysql/Default
SUBMENU:=Python
SECTION:=lang
CATEGORY:=Languages
- TITLE:=MySQL database adapter for Python
- URL:=https://pypi.python.org/pypi/MySQL-python
+ URL:=https://pypi.python.org/project/mysqlclient
MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
- DEPENDS:=+python +libmysqlclient
+endef
+
+define Package/python-mysql
+ $(call Package/python-mysql/Default)
+ TITLE:=MySQL database adapter for Python
+ DEPENDS:=+PACKAGE_python-mysql:python +libmysqlclient
+ VARIANT:=python
+endef
+
+define Package/python3-mysql
+ $(call Package/python-mysql/Default)
+ TITLE:=MySQL database adapter for Python3
+ DEPENDS:=+PACKAGE_python3-mysql:python3 +libmysqlclient
+ VARIANT:=python3
endef
define Package/python-mysql/description
server that provides the Python database API.
endef
-define Build/Compile
- $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
-endef
-
-define Package/python-mysql/install
- $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
- $(CP) \
- $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
- $(1)$(PYTHON_PKG_DIR)
+define Package/python3-mysql/description
+$(call Package/python-mysql/description)
+.
+(Variant for Python3)
endef
+$(eval $(call PyPackage,python-mysql))
$(eval $(call BuildPackage,python-mysql))
+
+$(eval $(call Py3Package,python3-mysql))
+$(eval $(call BuildPackage,python3-mysql))
+++ /dev/null
---- MySQL-python-1.2.2/site_orig.cfg 2007-08-15 12:58:40.000000000 +0200
-+++ MySQL-python-1.2.2/site.cfg 2007-08-15 12:58:49.000000000 +0200
-@@ -4,7 +4,7 @@
- # static: link against a static library (probably required for embedded)
-
- embedded = False
--threadsafe = True
-+threadsafe = False
- static = False
-
- # The path to mysql_config.
--- /dev/null
+#
+# 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:=python-oauthlib
+PKG_VERSION:=2.1.0
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=oauthlib-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/df/5f/3f4aae7b28db87ddef18afed3b71921e531ca288dc604eb981e9ec9f8853
+PKG_HASH:=ac35665a61c1685c56336bda97d5eefa246f1202618a1d6f34fccb1bdd404162
+PKG_BUILD_DIR:=$(BUILD_DIR)/oauthlib-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-oauthlib
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
+ URL:=https://github.com/oauthlib/oauthlib
+ DEPENDS:=+python
+endef
+
+define Package/python-oauthlib/description
+ A generic, spec-compliant, thorough implementation of the OAuth request-signing logic for Python
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-oauthlib/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-oauthlib))
include $(TOPDIR)/rules.mk
PKG_NAME:=python-ply
-PKG_VERSION:=3.10
-PKG_RELEASE:=2
+PKG_VERSION:=3.11
+PKG_RELEASE:=1
PKG_SOURCE:=ply-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.dabeaz.com/ply
-PKG_HASH:=96e94af7dd7031d8d6dd6e2a8e0de593b511c211a86e28a9c9621c275ac8bacb
+PKG_SOURCE_URL:=http://www.dabeaz.com/ply \
+ https://files.pythonhosted.org/packages/source/p/ply
+PKG_HASH:=00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-ply-$(PKG_VERSION)
define Package/python-ply
$(call Package/python-ply/Default)
- TITLE:=python-ply
+ TITLE:=lex and yacc for Python
DEPENDS:=+PACKAGE_python-ply:python-light
VARIANT:=python
endef
define Package/python3-ply
$(call Package/python-ply/Default)
- TITLE:=python3-ply
+ TITLE:=lex and yacc for Python
DEPENDS:=+PACKAGE_python3-ply:python3-light
VARIANT:=python3
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=python-pyasn1
-PKG_VERSION:=0.4.2
-PKG_RELEASE:=2
+PKG_VERSION:=0.4.3
+PKG_RELEASE:=1
PKG_SOURCE:=pyasn1-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/eb/3d/b7d0fdf4a882e26674c68c20f40682491377c4db1439870f5b6f862f76ed
-PKG_HASH:=d258b0a71994f7770599835249cece1caef3c70def868c4915e6e5ca49b67d15
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/p/pyasn1
+PKG_HASH:=fb81622d8f3509f0026b0683fe90fea27be7284d3826a5f2edf97f69151ab0fc
PKG_LICENSE:=BSD-2-Clause
PKG_LICENSE_FILES:=LICENSE.txt
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Python
- URL:=http://pyasn1.sourceforge.net/
+ URL:=https://github.com/etingof/pyasn1
endef
define Package/python-pyasn1
$(call Package/python-pyasn1/Default)
- TITLE:=python-pyasn1
+ TITLE:=ASN.1 library for Python
DEPENDS:=+PACKAGE_python-pyasn1:python-light
VARIANT:=python
endef
define Package/python3-pyasn1
$(call Package/python-pyasn1/Default)
- TITLE:=python3-pyasn1
+ TITLE:=ASN.1 library for Python
DEPENDS:=+PACKAGE_python3-pyasn1:python3-light
VARIANT:=python3
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=python-pyopenssl
-PKG_VERSION:=17.5.0
-PKG_RELEASE:=2
+PKG_VERSION:=18.0.0
+PKG_RELEASE:=1
PKG_SOURCE:=pyOpenSSL-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/3b/15/a5d90ab1a41075e8f0fae334f13452549528f82142b3b9d0c9d86ab7178c
-PKG_HASH:=2c10cfba46a52c0b0950118981d61e72c1e5b1aac451ca1bc77de1a679456773
+
+PKG_SOURCE_URL:=https://pypi.io/packages/source/p/pyOpenSSL
+PKG_HASH:=6488f1423b00f73b7ad5167885312bb0ce410d3312eb212393795b53c8caa580
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=python-pyserial
-PKG_VERSION:=3.1.1
+PKG_VERSION:=3.4
PKG_RELEASE:=1
-PKG_MAINTAINER:=Micke Prag <micke.prag@telldus.se>
-PKG_LICENSE:=Python-2.0
PKG_SOURCE:=pyserial-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://pypi.python.org/packages/3c/d8/a9fa247ca60b02b3bebbd61766b4f321393b57b13c53b18f6f62cf172c08/
-PKG_HASH:=d657051249ce3cbd0446bcfb2be07a435e1029da4d63f53ed9b4cdde7373364c
+PKG_SOURCE_URL:=https://pypi.python.org/packages/cc/74/11b04703ec416717b247d789103277269d567db575d2fd88f25d9767fe3d/
+PKG_HASH:=6e2d401fdee0eab996cf734e67773a0143b932772ca8b42451440cfed942c627
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-pyserial-$(PKG_VERSION)
-PKG_BUILD_DIR:=$(BUILD_DIR)/pyserial-$(PKG_VERSION)
-PKG_BUILD_DEPENDS:=python
+PKG_LICENSE:=BSD
+PKG_MAINTAINER:=Micke Prag <micke.prag@telldus.se>
include $(INCLUDE_DIR)/package.mk
include ../python-package.mk
+include ../python3-package.mk
-define Package/python-pyserial
- SUBMENU:=Python
- SECTION:=lang
+PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
+
+define Package/python-pyserial/Default
+ SECTION:=lang-python
CATEGORY:=Languages
+ SUBMENU:=Python
+ URL:=https://github.com/pyserial/pyserial
+endef
+
+define Package/python-pyserial
+$(call Package/python-pyserial/Default)
TITLE:=python-pyserial
- URL:=http://pyserial.sourceforge.net
DEPENDS:=+python-light
+ VARIANT:=python
endef
-define Package/python-pyserial/description
- serial port python bindings
+define Package/python3-pyserial
+$(call Package/python-pyserial/Default)
+ TITLE:=python3-pyserial
+ DEPENDS:=+python3-light
+ VARIANT:=python3
endef
-define Build/Compile
- $(call Build/Compile/PyMod,,install --prefix=/usr --root="$(PKG_INSTALL_DIR)")
+define Package/python-pyserial/description
+This module encapsulates the access for the serial port. It provides backends
+for Python running on Windows, OSX, Linux, BSD (possibly any POSIX compliant
+system) and IronPython. The module named "serial" automatically selects the
+appropriate backend.
endef
-define Package/python-pyserial/install
- $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
- $(CP) \
- $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
- $(1)$(PYTHON_PKG_DIR)
+define Package/python3-pyserial/description
+$(call Package/python-pyserial/description)
+.
+(Variant for Python3)
endef
+$(eval $(call PyPackage,python-pyserial))
$(eval $(call BuildPackage,python-pyserial))
+$(eval $(call BuildPackage,python-pyserial-src))
+
+$(eval $(call Py3Package,python3-pyserial))
+$(eval $(call BuildPackage,python3-pyserial))
+$(eval $(call BuildPackage,python3-pyserial-src))
--- /dev/null
+#
+# 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:=python-qrcode
+PKG_VERSION:=6.0
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=qrcode-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/8d/b6/beed3d50e1047a2aa6437d3a653e5f31feb7f4de8bc054299dc205682e41
+PKG_HASH:=037b0db4c93f44586e37f84c3da3f763874fcac85b2974a69a98e399ac78e1bf
+PKG_BUILD_DIR:=$(BUILD_DIR)/qrcode-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-qrcode
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=QR Code image generator
+ URL:=https://github.com/lincolnloop/python-qrcode
+ DEPENDS:=+python +python-six
+endef
+
+define Package/python-qrcode/description
+ Pure python QR Code generator
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-qrcode/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-qrcode))
--- /dev/null
+#
+# 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:=python-requests-oauthlib
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=1
+PKG_LICENSE:=ISC
+
+PKG_SOURCE:=requests-oauthlib-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/95/be/072464f05b70e4142cb37151e215a2037b08b1400f8a56f2538b76ca6205
+PKG_HASH:=8886bfec5ad7afb391ed5443b1f697c6f4ae98d0e5620839d8b4499c032ada3f
+PKG_BUILD_DIR:=$(BUILD_DIR)/requests-oauthlib-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-requests-oauthlib
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=OAuthlib authentication support for Requests.
+ URL:=https://github.com/requests/requests-oauthlib
+ DEPENDS:=+python +python-requests +python-oauthlib +python-cryptography +pyjwt
+endef
+
+define Package/python-requests-oauthlib/description
+ This project provides first-class OAuth library support for Requests.
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-requests-oauthlib/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-requests-oauthlib))
--- /dev/null
+#
+# 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:=python-requests
+PKG_VERSION:=2.19.1
+PKG_RELEASE:=1
+PKG_LICENSE:=Apache-2.0
+
+PKG_SOURCE:=requests-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/54/1f/782a5734931ddf2e1494e4cd615a51ff98e1879cbe9eecbdfeaf09aa75e9
+PKG_HASH:=ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a
+PKG_BUILD_DIR:=$(BUILD_DIR)/requests-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-requests
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+ MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+ TITLE:=HTTP library for Python
+ URL:=http://python-requests.org/
+ DEPENDS:=+python +chardet +python-idna +python-urllib3 +python-certifi
+endef
+
+define Package/python-requests/description
+ Requests is the only Non-GMO HTTP library for Python, safe for human consumption.
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-requests/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-requests))
include $(TOPDIR)/rules.mk
PKG_NAME:=python-zope-interface
-PKG_VERSION:=4.4.3
-PKG_RELEASE:=2
+PKG_VERSION:=4.5.0
+PKG_RELEASE:=1
PKG_SOURCE:=zope.interface-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/bd/d2/25349ed41f9dcff7b3baf87bd88a4c82396cf6e02f1f42bb68657a3132af
-PKG_HASH:=d6d26d5dfbfd60c65152938fcb82f949e8dada37c041f72916fef6621ba5c5ce
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/z/zope.interface
+PKG_HASH:=57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-zope-interface-$(PKG_VERSION)
define Package/python-zope-interface
$(call Package/python-zope-interface/Default)
- TITLE:=python-zope-interface
+ TITLE:=Interfaces for Python
DEPENDS:=+PACKAGE_python-zope-interface:python-light
VARIANT:=python
endef
define Package/python3-zope-interface
$(call Package/python-zope-interface/Default)
- TITLE:=python3-zope-interface
+ TITLE:=Interfaces for Python
DEPENDS:=+PACKAGE_python3-zope-interface:python3-light
VARIANT:=python3
endef
(Variant for Python3)
endef
-define PyPackage/python-zope-interface/filespec
-+|$(PYTHON_PKG_DIR)
--|$(PYTHON_PKG_DIR)/zope/interface/common/tests
--|$(PYTHON_PKG_DIR)/zope/interface/tests
-endef
-
-define Py3Package/python3-zope-interface/filespec
-+|$(PYTHON3_PKG_DIR)
--|$(PYTHON3_PKG_DIR)/zope/interface/common/tests
--|$(PYTHON3_PKG_DIR)/zope/interface/tests
-endef
-
$(eval $(call PyPackage,python-zope-interface))
$(eval $(call BuildPackage,python-zope-interface))
$(eval $(call BuildPackage,python-zope-interface-src))
--- /dev/null
+diff --git a/setup.py b/setup.py
+index 0eb36ea..2e64aae 100644
+--- a/setup.py
++++ b/setup.py
+@@ -121,7 +121,7 @@ setup(name='zope.interface',
+ "Framework :: Zope3",
+ "Topic :: Software Development :: Libraries :: Python Modules",
+ ],
+- packages=find_packages('src'),
++ packages=find_packages('src', exclude=["*.tests", "*.tests.*"]),
+ package_dir={'': 'src'},
+ namespace_packages=["zope"],
+ cmdclass={
+@@ -129,6 +129,7 @@ setup(name='zope.interface',
+ },
+ test_suite='zope.interface.tests',
+ include_package_data=True,
++ exclude_package_data={'':['tests/*']},
+ zip_safe=False,
+ tests_require=tests_require,
+ install_requires=['setuptools'],
include $(TOPDIR)/rules.mk
PKG_NAME:=twisted
-PKG_VERSION:=17.9.0
+PKG_VERSION:=18.4.0
PKG_RELEASE:=1
PKG_SOURCE:=Twisted-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/T/Twisted
-PKG_HASH:=0da1a7e35d5fcae37bc9c7978970b5feb3bc82822155b8654ec63925c05af75c
+PKG_HASH:=a4cc164a781859c74de47f17f0e85f4bce8a3321a9d0892c015c8f80c4158ad9
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-twisted-$(PKG_VERSION)
PKG_BUILD_DEPENDS:=USE_MUSL:librpc
+++ /dev/null
-diff --git a/src/twisted/python/_setup.py b/src/twisted/python/_setup.py
-index 3b5f69d4b..c69c5d13c 100644
---- a/src/twisted/python/_setup.py
-+++ b/src/twisted/python/_setup.py
-@@ -142,7 +142,6 @@ _CONSOLE_SCRIPTS = [
- "cftp = twisted.conch.scripts.cftp:run",
- "conch = twisted.conch.scripts.conch:run",
- "pyhtmlizer = twisted.scripts.htmlizer:run",
-- "tkconch = twisted.conch.scripts.tkconch:run",
- "trial = twisted.scripts.trial:run",
- "twist = twisted.application.twist._twist:Twist.main",
- "twistd = twisted.scripts.twistd:run",
-diff --git a/src/twisted/python/twisted-completion.zsh b/src/twisted/python/twisted-completion.zsh
-index 4d97aa5d3..9a8d4d82e 100644
---- a/src/twisted/python/twisted-completion.zsh
-+++ b/src/twisted/python/twisted-completion.zsh
-@@ -1,4 +1,4 @@
--#compdef twistd trial conch cftp ckeygen pyhtmlizer tkconch
-+#compdef twistd trial conch cftp ckeygen pyhtmlizer
- #
- # This is the ZSH completion file for Twisted commands. It calls the current
- # command-line with the special "--_shell-completion" option which is handled
--- /dev/null
+--- a/src/twisted/python/_setup.py
++++ b/src/twisted/python/_setup.py
+@@ -143,7 +143,6 @@ _CONSOLE_SCRIPTS = [
+ "conch = twisted.conch.scripts.conch:run",
+ "mailmail = twisted.mail.scripts.mailmail:run",
+ "pyhtmlizer = twisted.scripts.htmlizer:run",
+- "tkconch = twisted.conch.scripts.tkconch:run",
+ "trial = twisted.scripts.trial:run",
+ "twist = twisted.application.twist._twist:Twist.main",
+ "twistd = twisted.scripts.twistd:run",
+--- a/src/twisted/python/twisted-completion.zsh
++++ b/src/twisted/python/twisted-completion.zsh
+@@ -1,4 +1,4 @@
+-#compdef twist twistd trial conch cftp ckeygen pyhtmlizer tkconch
++#compdef twist twistd trial conch cftp ckeygen pyhtmlizer
+ #
+ # This is the ZSH completion file for Twisted commands. It calls the current
+ # command-line with the special "--_shell-completion" option which is handled
-diff --git a/src/twisted/python/_setup.py b/src/twisted/python/_setup.py
-index 3b5f69d4b..2dca47aa5 100644
--- a/src/twisted/python/_setup.py
+++ b/src/twisted/python/_setup.py
-@@ -175,11 +175,6 @@ class ConditionalExtension(Extension, object):
-
+@@ -169,11 +169,6 @@ class ConditionalExtension(Extension, ob
# The C extensions used for Twisted.
_EXTENSIONS = [
-- ConditionalExtension(
+ ConditionalExtension(
- "twisted.test.raiser",
- sources=["src/twisted/test/raiser.c"],
- condition=lambda _: _isCPython),
-
- ConditionalExtension(
+- ConditionalExtension(
"twisted.internet.iocpreactor.iocpsupport",
sources=[
-@@ -232,7 +227,7 @@ def getSetupArgs(extensions=_EXTENSIONS):
- requirements.append("hyperlink >= 17.1.1")
+ "src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c",
+@@ -240,7 +235,7 @@ def getSetupArgs(extensions=_EXTENSIONS)
+ ]
arguments.update(dict(
- packages=find_packages("src"),
use_incremental=True,
setup_requires=["incremental >= 16.10.1"],
install_requires=requirements,
-@@ -241,6 +236,7 @@ def getSetupArgs(extensions=_EXTENSIONS):
+@@ -249,6 +244,7 @@ def getSetupArgs(extensions=_EXTENSIONS)
},
cmdclass=command_classes,
include_package_data=True,
include $(TOPDIR)/rules.mk
PKG_NAME:=apr-util
-PKG_VERSION:=1.6.0
+PKG_VERSION:=1.6.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@APACHE/apr/
-PKG_HASH:=8474c93fa74b56ac6ca87449abe3e155723d5f534727f3f33283f6631a48ca4c
+PKG_HASH:=d3e12f7b6ad12687572a3a39475545a072608f4ba03a6ce8a3778f607dd0035b
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=Apache License
include $(TOPDIR)/rules.mk
PKG_NAME:=apr
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.6.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@APACHE/apr/
-PKG_HASH:=09109cea377bab0028bba19a92b5b0e89603df9eab05c0f7dbd4dd83d48dcebd
+PKG_HASH:=131f06d16d7aabd097fa992a33eec2b6af3962f93e6d570a9bd4d85e95993172
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=Apache License
include $(TOPDIR)/rules.mk
PKG_NAME:=avahi
-PKG_VERSION:=0.6.32
-PKG_RELEASE:=3
+PKG_VERSION:=0.7
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/lathiat/avahi/releases/download/v$(PKG_VERSION)
-PKG_HASH:=d54991185d514a0aba54ebeb408d7575b60f5818a772e28fa0e18b98bc1db454
+PKG_SOURCE_URL:=https://github.com/lathiat/avahi/releases/download/v$(PKG_VERSION) \
+ https://avahi.org/download
+PKG_HASH:=57a99b5dfe7fdae794e3d1ee7a62973a368e91e414bd0dfa5d84434de5b14804
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_BUILD_DEPENDS:=intltool/host
+diff --git a/Makefile.am b/Makefile.am
+index 8234d69..156d4c4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -75,8 +75,7 @@ SUBDIRS = \
DX_INPUT = \
$(srcdir)/avahi-common/address.h \
+diff --git a/avahi-python/avahi-discover/Makefile.am b/avahi-python/avahi-discover/Makefile.am
+index 5fc4b25..4c39d3d 100644
--- a/avahi-python/avahi-discover/Makefile.am
+++ b/avahi-python/avahi-discover/Makefile.am
@@ -38,7 +38,6 @@ if HAVE_GDBM
avahi_discover_PYTHON += __init__.py
endif
+diff --git a/avahi-ui/Makefile.am b/avahi-ui/Makefile.am
+index 238d43a..65a147a 100644
--- a/avahi-ui/Makefile.am
+++ b/avahi-ui/Makefile.am
-@@ -78,7 +78,6 @@ endif
+@@ -80,7 +80,6 @@ endif
bin_PROGRAMS = bssh
desktop_DATA += bssh.desktop bvnc.desktop
bssh_SOURCES = bssh.c
-@@ -106,6 +105,4 @@ endif # HAVE_GLIB
+@@ -108,6 +107,4 @@ endif # HAVE_GLIB
endif
endif
-@INTLTOOL_DESKTOP_RULE@
-
CLEANFILES = $(desktop_DATA) $(desktop_DATA_in)
+diff --git a/configure.ac b/configure.ac
+index 6678971..00dac6e 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -23,7 +23,7 @@ AC_INIT([avahi],[0.6.29],[avahi (at) lis
+@@ -23,7 +23,7 @@ AC_INIT([avahi],[0.7],[avahi (at) lists (dot) freedesktop (dot) org])
AC_CONFIG_SRCDIR([avahi-core/server.c])
AC_CONFIG_MACRO_DIR([common])
AC_CONFIG_HEADERS([config.h])
AC_CHECK_PROG([STOW], [stow], [yes], [no])
AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
-@@ -412,12 +410,6 @@ if test "x$have_kqueue" = "xyes" ; then
+@@ -413,12 +411,6 @@ if test "x$have_kqueue" = "xyes" ; then
AC_DEFINE([HAVE_KQUEUE], 1, [Enable BSD kqueue() usage])
fi
+++ /dev/null
-diff --git a/avahi-common/simple-watch.c b/avahi-common/simple-watch.c
-index 8df18dd..08d8090 100644
---- a/avahi-common/simple-watch.c
-+++ b/avahi-common/simple-watch.c
-@@ -21,7 +21,7 @@
- #include <config.h>
- #endif
-
--#include <sys/poll.h>
-+#include <poll.h>
- #include <assert.h>
- #include <string.h>
- #include <errno.h>
-diff --git a/avahi-common/simple-watch.h b/avahi-common/simple-watch.h
-index 72c1905..db87122 100644
---- a/avahi-common/simple-watch.h
-+++ b/avahi-common/simple-watch.h
-@@ -22,7 +22,7 @@
-
- /** \file simple-watch.h Simple poll() based main loop implementation */
-
--#include <sys/poll.h>
-+#include <poll.h>
- #include <avahi-common/cdecl.h>
- #include <avahi-common/watch.h>
-
-diff --git a/avahi-common/thread-watch.c b/avahi-common/thread-watch.c
-index c0cadeb..ecb202b 100644
---- a/avahi-common/thread-watch.c
-+++ b/avahi-common/thread-watch.c
-@@ -21,7 +21,7 @@
- #include <config.h>
- #endif
-
--#include <sys/poll.h>
-+#include <poll.h>
- #include <assert.h>
- #include <string.h>
- #include <errno.h>
-diff --git a/avahi-common/thread-watch.h b/avahi-common/thread-watch.h
-index dec0cf3..1b44ccb 100644
---- a/avahi-common/thread-watch.h
-+++ b/avahi-common/thread-watch.h
-@@ -22,7 +22,7 @@
-
- /** \file thread-watch.h Threaded poll() based main loop implementation */
-
--#include <sys/poll.h>
-+#include <poll.h>
- #include <avahi-common/cdecl.h>
- #include <avahi-common/watch.h>
-
-diff --git a/avahi-common/watch.h b/avahi-common/watch.h
-index 86e63d3..eea12ec 100644
---- a/avahi-common/watch.h
-+++ b/avahi-common/watch.h
-@@ -22,7 +22,7 @@
-
- /** \file watch.h Simplistic main loop abstraction */
-
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/time.h>
-
- #include <avahi-common/cdecl.h>
--- /dev/null
+From ef0ea001f6dd13d6a2e0bc17d13f595d2829f8a8 Mon Sep 17 00:00:00 2001
+From: Jeremiah McConnell <miah@miah.com>
+Date: Fri, 15 Jun 2018 11:31:10 -0600
+Subject: [PATCH] move runtime_dir to /var/run
+
+Upstream transitioned to using /run as runtime_dir for 0.7. Revert
+that change for procd compatibility.
+
+Signed-off-by: Jeremiah McConnell <miah@miah.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 72d61478..8f6e9768 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -984,7 +984,7 @@ AC_DEFINE_UNQUOTED(AVAHI_AUTOIPD_GROUP,"$AVAHI_AUTOIPD_GROUP", [Group for runnin
+ #
+ # Avahi runtime dir
+ #
+-avahi_runtime_dir="/run"
++avahi_runtime_dir="${localstatedir}/run"
+ avahi_socket="${avahi_runtime_dir}/avahi-daemon/socket"
+ AC_SUBST(avahi_runtime_dir)
+ AC_SUBST(avahi_socket)
include $(TOPDIR)/rules.mk
PKG_NAME:=faad2
-PKG_VERSION:=2.8.6
+PKG_VERSION:=2.8.8
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/faac/faad2-src/$(PKG_NAME)-2.8.0
-PKG_HASH:=654977adbf62eb81f4fca00152aca58ce3b6dd157181b9edd7bed687a7c73f21
+PKG_HASH:=985c3fadb9789d2815e50f4ff714511c79c2710ac27a4aaaf5c0c2662141426d
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_FIXUP:=autoreconf
#
-# Copyright (C) 2007-2017 OpenWrt.org
+# Copyright (C) 2007-2018 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:=fftw3
-PKG_VERSION:=3.3.7
+PKG_VERSION:=3.3.8
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0+
PKG_SOURCE:=fftw-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.fftw.org
-PKG_HASH:=3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573
+PKG_HASH:=6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/fftw-$(PKG_VERSION)
PKG_FIXUP:=autoreconf
define Package/fftw3l
$(call Package/fftw3)
- DEPENDS:=@BROKEN
VARIANT:=long-double
TITLE+= (long-double precision)
endef
+++ /dev/null
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -241,7 +241,7 @@
- CTAGS = ctags
- CSCOPE = cscope
- DIST_SUBDIRS = support genfft kernel simd-support dft rdft reodft api \
-- libbench2 . threads tests mpi doc tools m4
-+ libbench2 . threads mpi doc tools m4
- am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(srcdir)/fftw.pc.in AUTHORS COPYING ChangeLog INSTALL NEWS \
- README TODO compile config.guess config.sub install-sh \
-@@ -470,7 +470,7 @@
- # tools are available, such as fig2dev in maintainer mode)
- @BUILD_DOC_TRUE@DOCDIR = doc
- SUBDIRS = support $(GENFFT) kernel simd-support dft rdft reodft api \
--libbench2 $(CHICKEN_EGG) tests mpi $(DOCDIR) tools m4
-+libbench2 $(CHICKEN_EGG) mpi m4
-
- EXTRA_DIST = COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in
- SIMD_LIBS = \
include $(TOPDIR)/rules.mk
PKG_NAME:=file
-PKG_VERSION:=5.25
+PKG_VERSION:=5.33
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
http://pkgs.fedoraproject.org/lookaside/pkgs/file/ \
http://download.openpkg.org/components/cache/file/ \
ftp://ftp.astron.com/pub/file/
-PKG_HASH:=3735381563f69fb4239470b8c51b876a80425348b8285a7cded8b61d6b890eca
+PKG_HASH:=1c52c8c3d271cd898d5511c36a68059cda94036111ab293f01f83c3525b737c6
PKG_LICENSE:=BSD-2c
PKG_LICENSE_FILES:=COPYING
CONFIGURE_ARGS += \
--enable-shared \
--enable-static \
+ --disable-libseccomp
MAKE_PATH := src
$(SED) "/^#/d" $(PKG_INSTALL_DIR)/usr/share/file/magic
$(SED) "/^$$$$/d" $(PKG_INSTALL_DIR)/usr/share/file/magic
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/file/magic $(1)/usr/share/misc/
-
- # For some reason both "magic" and "magic.mgc" MUST exist
- ln -sf magic $(1)/usr/share/misc/magic.mgc
endef
define Package/libmagic/install
include $(TOPDIR)/rules.mk
PKG_NAME:=freetype
-PKG_VERSION:=2.9
+PKG_VERSION:=2.9.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/freetype
-PKG_HASH:=e6ffba3c8cef93f557d1f767d7bc3dee860ac7a3aaff588a521e081bc36f4c8a
+PKG_HASH:=db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d
PKG_LICENSE:=FTL GPL-2.0 MIT ZLIB
PKG_LICENSE_FILES:=docs/LICENSE.TXT docs/FTL.TXT docs/GPLv2.TXT src/bdf/README src/pcf/README src/gzip/zlib.h
CATEGORY:=Libraries
TITLE:=A free, high-quality and portable font engine
URL:=http://www.freetype.org/
- DEPENDS:=+zlib +libbz2 +libpng
+ DEPENDS:=+zlib +libpng
endef
define Package/libfreetype/description
TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
+ --enable-freetype-config \
--enable-shared \
--enable-static \
- --with-bzip2=yes \
+ --with-bzip2=no \
--with-zlib=yes \
--with-png=yes
include $(TOPDIR)/rules.mk
PKG_NAME:=giflib
-PKG_VERSION:=5.1.2
+PKG_VERSION:=5.1.4
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/giflib
-PKG_HASH:=76c0a084c3b02f9315ff937b8be6096186002fea26f33e2123081ba2be6e2a7c
+PKG_HASH:=df27ec3ff24671f80b29e6ab1c4971059c14ac3db95406884fc26574631ba8d5
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
include $(TOPDIR)/rules.mk
PKG_NAME:=glpk
-PKG_VERSION:=4.63
+PKG_VERSION:=4.65
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=914d27f1a51c2bf4a51f1bd4a507f875fcca99db7b219380b836a25b29b3e7f6
+PKG_HASH:=4281e29b628864dfe48d393a7bedd781e5b475387c20d8b0158f329994721a10
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=COPYING
SECTION:=libs
CATEGORY:=Libraries
TITLE:=The GNU Linear Programming Kit
- URL:=http://www.gnu.org/software/glpk/
+ URL:=https://www.gnu.org/software/glpk/
endef
define Package/libglpk/description
SECTION:=libs
CATEGORY:=Libraries
TITLE:=The GNU Linear Programming Kit (glpsol)
- URL:=http://www.gnu.org/software/glpk/
+ URL:=https://www.gnu.org/software/glpk/
DEPENDS:=libglpk
endef
PKG_NAME:=ibrcommon
PKG_VERSION:=1.0.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
--- /dev/null
+From fe7ae129b8be052e5178b07e76e19ede21b13261 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Tue, 22 May 2018 16:40:20 -0300
+Subject: [PATCH] ibrcommon: added openssl 1.1 compatibility
+
+This patch adds compatibility to openssl 1.1.0.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ ibrcommon/ssl/HMacStream.cpp | 11 ++++----
+ ibrcommon/ssl/HMacStream.h | 2 +-
+ ibrcommon/ssl/RSASHA256Stream.cpp | 28 +++++++++---------
+ ibrcommon/ssl/RSASHA256Stream.h | 2 +-
+ ibrcommon/ssl/iostreamBIO.cpp | 44 ++++++++++++++++++++++-------
+ ibrcommon/ssl/openssl_compat.h | 38 +++++++++++++++++++++++++
+ 6 files changed, 95 insertions(+), 30 deletions(-)
+ create mode 100644 ibrcommon/ssl/openssl_compat.h
+
+diff --git a/ibrcommon/ssl/HMacStream.cpp b/ibrcommon/ssl/HMacStream.cpp
+index e5d317e3..66d8ce42 100644
+--- a/ibrcommon/ssl/HMacStream.cpp
++++ b/ibrcommon/ssl/HMacStream.cpp
+@@ -20,29 +20,30 @@
+ */
+
+ #include "ibrcommon/ssl/HMacStream.h"
++#include "openssl_compat.h"
+
+ namespace ibrcommon
+ {
+ HMacStream::HMacStream(const unsigned char * const key, const int key_size)
+ : HashStream(EVP_MAX_MD_SIZE, BUFF_SIZE), key_(key), key_size_(key_size)
+ {
+- HMAC_CTX_init(&ctx_);
+- HMAC_Init_ex(&ctx_, key_, key_size_, EVP_sha1(), NULL);
++ ctx_ = HMAC_CTX_new();
++ HMAC_Init_ex(ctx_, key_, key_size_, EVP_sha1(), NULL);
+ }
+
+ HMacStream::~HMacStream()
+ {
+- HMAC_CTX_cleanup(&ctx_);
++ HMAC_CTX_free(ctx_);
+ }
+
+ void HMacStream::update(char *buf, const size_t size)
+ {
+ // hashing
+- HMAC_Update(&ctx_, (unsigned char*)buf, size);
++ HMAC_Update(ctx_, (unsigned char*)buf, size);
+ }
+
+ void HMacStream::finalize(char * hash, unsigned int &size)
+ {
+- HMAC_Final(&ctx_, (unsigned char*)hash, &size);
++ HMAC_Final(ctx_, (unsigned char*)hash, &size);
+ }
+ }
+diff --git a/ibrcommon/ssl/HMacStream.h b/ibrcommon/ssl/HMacStream.h
+index 7dcea168..d04bceb8 100644
+--- a/ibrcommon/ssl/HMacStream.h
++++ b/ibrcommon/ssl/HMacStream.h
+@@ -44,7 +44,7 @@ namespace ibrcommon
+ const unsigned char * const key_;
+ const int key_size_;
+
+- HMAC_CTX ctx_;
++ HMAC_CTX* ctx_;
+ };
+ }
+
+diff --git a/ibrcommon/ssl/RSASHA256Stream.cpp b/ibrcommon/ssl/RSASHA256Stream.cpp
+index d94430ed..d25c5d2f 100644
+--- a/ibrcommon/ssl/RSASHA256Stream.cpp
++++ b/ibrcommon/ssl/RSASHA256Stream.cpp
+@@ -21,6 +21,7 @@
+
+ #include "ibrcommon/ssl/RSASHA256Stream.h"
+ #include "ibrcommon/Logger.h"
++#include "openssl_compat.h"
+ #include <openssl/err.h>
+
+ namespace ibrcommon
+@@ -30,11 +31,11 @@ namespace ibrcommon
+ {
+ // Initialize get pointer. This should be zero so that underflow is called upon first read.
+ setp(&out_buf_[0], &out_buf_[BUFF_SIZE - 1]);
+- EVP_MD_CTX_init(&_ctx);
++ _ctx = EVP_MD_CTX_new();
+
+ if (!_verify)
+ {
+- if (!EVP_SignInit_ex(&_ctx, EVP_sha256(), NULL))
++ if (!EVP_SignInit_ex(_ctx, EVP_sha256(), NULL))
+ {
+ IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the signature function" << IBRCOMMON_LOGGER_ENDL;
+ ERR_print_errors_fp(stderr);
+@@ -42,7 +43,7 @@ namespace ibrcommon
+ }
+ else
+ {
+- if (!EVP_VerifyInit_ex(&_ctx, EVP_sha256(), NULL))
++ if (!EVP_VerifyInit_ex(_ctx, EVP_sha256(), NULL))
+ {
+ IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the verification function" << IBRCOMMON_LOGGER_ENDL;
+ ERR_print_errors_fp(stderr);
+@@ -52,18 +53,19 @@ namespace ibrcommon
+
+ RSASHA256Stream::~RSASHA256Stream()
+ {
+- EVP_MD_CTX_cleanup(&_ctx);
++ EVP_MD_CTX_free(_ctx);
+ }
+
+ void RSASHA256Stream::reset()
+ {
+- EVP_MD_CTX_cleanup(&_ctx);
+-
+- EVP_MD_CTX_init(&_ctx);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ EVP_MD_CTX_cleanup(_ctx);
++#endif
++ EVP_MD_CTX_init(_ctx);
+
+ if (!_verify)
+ {
+- if (!EVP_SignInit_ex(&_ctx, EVP_sha256(), NULL))
++ if (!EVP_SignInit_ex(_ctx, EVP_sha256(), NULL))
+ {
+ IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the signature function" << IBRCOMMON_LOGGER_ENDL;
+ ERR_print_errors_fp(stderr);
+@@ -71,7 +73,7 @@ namespace ibrcommon
+ }
+ else
+ {
+- if (!EVP_VerifyInit_ex(&_ctx, EVP_sha256(), NULL))
++ if (!EVP_VerifyInit_ex(_ctx, EVP_sha256(), NULL))
+ {
+ IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the verfication function" << IBRCOMMON_LOGGER_ENDL;
+ ERR_print_errors_fp(stderr);
+@@ -91,7 +93,7 @@ namespace ibrcommon
+ std::vector<unsigned char> sign(EVP_PKEY_size(_pkey));
+ unsigned int size = EVP_PKEY_size(_pkey);
+
+- _return_code = EVP_SignFinal(&_ctx, &sign[0], &size, _pkey);
++ _return_code = EVP_SignFinal(_ctx, &sign[0], &size, _pkey);
+
+ _sign = std::string((const char*)&sign[0], size);
+
+@@ -107,7 +109,7 @@ namespace ibrcommon
+ if (!_sign_valid)
+ {
+ sync();
+- _return_code = EVP_VerifyFinal(&_ctx, reinterpret_cast<const unsigned char *>(their_sign.c_str()), static_cast<unsigned int>(their_sign.size()), _pkey);
++ _return_code = EVP_VerifyFinal(_ctx, reinterpret_cast<const unsigned char *>(their_sign.c_str()), static_cast<unsigned int>(their_sign.size()), _pkey);
+ _sign_valid = true;
+ }
+ return _return_code;
+@@ -145,7 +147,7 @@ namespace ibrcommon
+ if (!_verify)
+ // hashing
+ {
+- if (!EVP_SignUpdate(&_ctx, &out_buf_[0], iend - ibegin))
++ if (!EVP_SignUpdate(_ctx, &out_buf_[0], iend - ibegin))
+ {
+ IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to feed data into the signature function" << IBRCOMMON_LOGGER_ENDL;
+ ERR_print_errors_fp(stderr);
+@@ -153,7 +155,7 @@ namespace ibrcommon
+ }
+ else
+ {
+- if (!EVP_VerifyUpdate(&_ctx, &out_buf_[0], iend - ibegin))
++ if (!EVP_VerifyUpdate(_ctx, &out_buf_[0], iend - ibegin))
+ {
+ IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to feed data into the verification function" << IBRCOMMON_LOGGER_ENDL;
+ ERR_print_errors_fp(stderr);
+diff --git a/ibrcommon/ssl/RSASHA256Stream.h b/ibrcommon/ssl/RSASHA256Stream.h
+index 344f8e10..6f3a1168 100644
+--- a/ibrcommon/ssl/RSASHA256Stream.h
++++ b/ibrcommon/ssl/RSASHA256Stream.h
+@@ -106,7 +106,7 @@ namespace ibrcommon
+
+ /** the context in which the streamed data will be feed into for
+ calculation of the hash/signature */
+- EVP_MD_CTX _ctx;
++ EVP_MD_CTX * _ctx;
+
+ /** tells if the context needs to be finalized to get a valid signature or
+ verification */
+diff --git a/ibrcommon/ssl/iostreamBIO.cpp b/ibrcommon/ssl/iostreamBIO.cpp
+index 18c1b55c..ea6c63eb 100644
+--- a/ibrcommon/ssl/iostreamBIO.cpp
++++ b/ibrcommon/ssl/iostreamBIO.cpp
+@@ -23,6 +23,7 @@
+
+ #include "ibrcommon/Logger.h"
+
++#include "openssl_compat.h"
+ #include <openssl/err.h>
+
+ namespace ibrcommon
+@@ -42,7 +43,20 @@ static int create(BIO *bio);
+ //static int destroy(BIO *bio);
+ //static long (*callback_ctrl)(BIO *, int, bio_info_cb *);
+
+-
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++BIO_METHOD * BIO_iostream_method()
++{
++ static BIO_METHOD *iostream_method = NULL;
++ if (iostream_method) {
++ iostream_method = BIO_meth_new(iostreamBIO::type, iostreamBIO::name);
++ BIO_meth_set_write(iostream_method, bwrite);
++ BIO_meth_set_read(iostream_method, bread);
++ BIO_meth_set_ctrl(iostream_method, ctrl);
++ BIO_meth_set_create(iostream_method, create);
++ }
++ return iostream_method;
++}
++#else
+ static BIO_METHOD iostream_method =
+ {
+ iostreamBIO::type,
+@@ -56,12 +70,17 @@ static BIO_METHOD iostream_method =
+ NULL,//destroy,
+ NULL//callback_ctrl
+ };
++BIO_METHOD * BIO_iostream_method()
++{
++ return &iostream_method;
++}
++#endif
+
+ iostreamBIO::iostreamBIO(iostream *stream)
+ : _stream(stream)
+ {
+ /* create BIO */
+- _bio = BIO_new(&iostream_method);
++ _bio = BIO_new(BIO_iostream_method());
+ if(!_bio){
+ /* creation failed, throw exception */
+ char err_buf[ERR_BUF_SIZE];
+@@ -72,7 +91,7 @@ iostreamBIO::iostreamBIO(iostream *stream)
+ }
+
+ /* save the iostream in the bio object */
+- _bio->ptr = stream;
++ BIO_set_data(_bio, (void *) stream);
+ }
+
+ BIO * iostreamBIO::getBIO(){
+@@ -81,10 +100,10 @@ BIO * iostreamBIO::getBIO(){
+
+ static int create(BIO *bio)
+ {
+- bio->ptr = NULL;
+- /* (from openssl memory bio) */
+- bio->shutdown=1;
+- bio->init=1;
++ BIO_set_data(bio, NULL);
++ BIO_set_shutdown(bio, 1);
++ BIO_set_init(bio, 1);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ /* from bss_mem.c (openssl):
+ * bio->num is used to hold the value to return on 'empty', if it is
+ * 0, should_retry is not set
+@@ -93,6 +112,7 @@ static int create(BIO *bio)
+ * it is set to 0 since the underlying stream is blocking
+ */
+ bio->num= 0;
++#endif
+
+ return 1;
+ }
+@@ -102,7 +122,7 @@ static int create(BIO *bio)
+ static long ctrl(BIO *bio, int cmd, long num, void *)
+ {
+ long ret;
+- iostream *stream = reinterpret_cast<iostream*>(bio->ptr);
++ iostream *stream = reinterpret_cast<iostream*>(BIO_get_data(bio));
+
+ IBRCOMMON_LOGGER_DEBUG_TAG("iostreamBIO", 90) << "ctrl called, cmd: " << cmd << ", num: " << num << "." << IBRCOMMON_LOGGER_ENDL;
+
+@@ -147,8 +167,12 @@ static long ctrl(BIO *bio, int cmd, long num, void *)
+
+ static int bread(BIO *bio, char *buf, int len)
+ {
+- iostream *stream = reinterpret_cast<iostream*>(bio->ptr);
++ iostream *stream = reinterpret_cast<iostream*>(BIO_get_data(bio));
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ int num_bytes = 0;
++#else
+ int num_bytes = bio->num;
++#endif
+
+ try{
+ /* make sure to read at least 1 byte and then read as much as we can */
+@@ -170,7 +194,7 @@ static int bwrite(BIO *bio, const char *buf, int len)
+ if(len == 0){
+ return 0;
+ }
+- iostream *stream = reinterpret_cast<iostream*>(bio->ptr);
++ iostream *stream = reinterpret_cast<iostream*>(BIO_get_data(bio));
+
+ /* write the data */
+ try{
+diff --git a/ibrcommon/ssl/openssl_compat.h b/ibrcommon/ssl/openssl_compat.h
+new file mode 100644
+index 00000000..e491677f
+--- /dev/null
++++ b/ibrcommon/ssl/openssl_compat.h
+@@ -0,0 +1,38 @@
++#ifndef OPENSSL_COMPAT_H
++#define OPENSSL_COMPAT_H
++
++#include <openssl/crypto.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <openssl/evp.h>
++#include <openssl/hmac.h>
++
++static inline EVP_MD_CTX * EVP_MD_CTX_new()
++{
++ EVP_MD_CTX *ctx;
++
++ ctx = (EVP_MD_CTX *) OPENSSL_malloc(sizeof(EVP_MD_CTX));
++ EVP_MD_CTX_init(ctx);
++ return ctx;
++}
++#define EVP_MD_CTX_free(c) if (c != NULL) OPENSSL_free(c)
++
++static inline HMAC_CTX * HMAC_CTX_new()
++{
++ HMAC_CTX *ctx;
++
++ ctx = (HMAC_CTX *) OPENSSL_malloc(sizeof(HMAC_CTX));
++ HMAC_CTX_init(ctx);
++ return ctx;
++}
++#define HMAC_CTX_free(c) if (c != NULL) OPENSSL_free(c)
++
++#define BIO_get_data(b) b->ptr
++#define BIO_set_data(b, v) b->ptr=v
++#define BIO_set_shutdown(b, v) b->shutdown=v
++#define BIO_set_init(b, v) b->init=v
++
++#endif /* OPENSSL_VERSION_NUMBER */
++
++#endif /* OPENSSL_COMPAT_H */
++
+--
+2.16.1
+
include $(TOPDIR)/rules.mk
PKG_NAME:=icu4c
-PKG_VERSION:=61.1
+PKG_VERSION:=62.1
PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-61_1-src.tgz
+PKG_SOURCE:=$(PKG_NAME)-62_1-src.tgz
PKG_SOURCE_URL:=http://download.icu-project.org/files/$(PKG_NAME)/$(PKG_VERSION)
-PKG_HASH:=d007f89ae8a2543a53525c74359b65b36412fa84b3349f1400be6dcf409fafef
+PKG_HASH:=3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3
PKG_LICENSE:=ICU-1.8.1+
PKG_LICENSE_FILES:=LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=jansson
-PKG_VERSION:=2.10
+PKG_VERSION:=2.11
PKG_RELEASE:=1
PKG_LICENSE:=MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.digip.org/jansson/releases/
-PKG_HASH:=241125a55f739cd713808c4e0089986b8c3da746da8b384952912ad659fa2f5a
+PKG_HASH:=783132e2fc970feefc2fa54199ef65ee020bd8e0e991a78ea44b8586353a0947
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=ldns
-PKG_VERSION:=1.6.17
-PKG_RELEASE:=2
+PKG_VERSION:=1.7.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.nlnetlabs.nl/downloads/ldns
-PKG_HASH:=8b88e059452118e8949a2752a55ce59bc71fa5bc414103e17f5b6b06f9bcc8cd
+PKG_HASH:=c19f5b1b4fb374cfe34f4845ea11b1e0551ddc67803bd6ddd5d2a20f0997a6cc
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
endef
CONFIGURE_ARGS += \
+ --disable-dane-ta-usage \
--disable-ecdsa \
--disable-gost \
--with-drill \
--- /dev/null
+--- a/configure.ac
++++ b/configure.ac
+@@ -842,7 +842,7 @@ ACX_CHECK_FORMAT_ATTRIBUTE
+ ACX_CHECK_UNUSED_ATTRIBUTE
+
+ # check OSX deployment target, if needed
+-if echo $build_os | grep darwin > /dev/null; then
++if echo $target_os | grep darwin > /dev/null; then
+ sdk_p=`xcode-select -print-path`;
+ sdk_v="$( /usr/bin/xcrun --show-sdk-version )";
+ case $sdk_v in
+++ /dev/null
---- a/doc/doxyparse.pl
-+++ b/doc/doxyparse.pl
-@@ -273,7 +273,7 @@ foreach (keys %manpages) {
-
- print MAN $MAN_MIDDLE;
-
-- if (defined(@$also)) {
-+ if (@$also) {
- print MAN "\n.SH SEE ALSO\n\\fI";
- print MAN join "\\fR, \\fI", @$also;
- print MAN "\\fR.\nAnd ";
include $(TOPDIR)/rules.mk
PKG_NAME:=libantlr3c
-PKG_VERSION:=3.2
+PKG_VERSION:=3.4
PKG_RELEASE:=1
-PKG_HASH:=2ccfb8a8bdd3d6c1d60742ff3a5a954af6d5a8d7f8901c87229fc6fa540ac99a
+PKG_HASH:=ca914a97f1a2d2f2c8e1fca12d3df65310ff0286d35c48b7ae5f11dcc8b2eb52
-PKG_SOURCE_URL:=http://www.antlr3.org/download/C
+PKG_SOURCE_URL:=https://www.antlr3.org/download/C
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_MAINTAINER:=Espen Jürgensen <espenjurgensen+openwrt@gmail.com>
SECTION:=libs
CATEGORY:=Libraries
TITLE:=libantlr3c
- URL:=http://www.antlr3.org/
+ URL:=https://www.antlr3.org/
endef
define Package/libantlr3c/description
include $(TOPDIR)/rules.mk
PKG_NAME:=libdmapsharing
-PKG_VERSION:=2.9.39
+PKG_VERSION:=3.9.1
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE:=libdmapsharing-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.flyn.org/projects/libdmapsharing/
-PKG_HASH:=a90dc0681ae81700e46efc539f70edb6edd936b782a9a695434bea660a43a5ef
+PKG_SOURCE_URL:=https://www.flyn.org/projects/libdmapsharing/
+PKG_HASH:=7567888f588d0ee0a017385c09c68ceec0383b3e9b47f0df061a4386a69b1610
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
define Package/libdmapsharing
SECTION:=libs
CATEGORY:=Libraries
- DEPENDS:=+libsoup +mdnsresponder +gstreamer1 +gst1-plugins-base +libgst1app
+ DEPENDS:=+libsoup +mdnsresponder +gstreamer1-libs +gstreamer1-plugins-base +gst1-mod-app
TITLE:=libdmapsharing
URL:=http://www.flyn.org/projects/libdmapsharing/
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/
$(CP) \
- $(PKG_INSTALL_DIR)/usr/include/libdmapsharing-3.0/ \
+ $(PKG_INSTALL_DIR)/usr/include/libdmapsharing-4.0/ \
$(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) \
include $(TOPDIR)/rules.mk
PKG_NAME:=libfmt
-PKG_VERSION:=4.1.0
+PKG_VERSION:=5.1.0
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_MIRROR_HASH:=112c964c1537fbc2f3a993f405547fc57b0f3d1524c808006920c53fab42c233
+PKG_MIRROR_HASH:=458debd5a0fbfdc36715ce63a0c1b1be84140ee9fbe28232a27c90448630469c
PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
PKG_LICENSE:=BSD-2-Clause
include $(TOPDIR)/rules.mk
PKG_NAME:=libgee
-PKG_VERSION:=0.20.0
+PKG_VERSION:=0.20.1
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNOME/libgee/0.20/
-PKG_HASH:=21308ba3ed77646dda2e724c0e8d5a2f8d101fb05e078975a532d7887223c2bb
+PKG_HASH:=bb2802d29a518e8c6d2992884691f06ccfcc25792a5686178575c7111fea4630
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_LICENSE_FILES:=LICENSE-MIT
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=83acea397da4cdb9192c27abbd53a9eb8e5a9e1bcea2873b499f7ccc0d68f518
+PKG_MIRROR_HASH:=cf154fc12666dfa404f2537bb54e32196841e0f9d32312bf1e4daaf43f97f9a5
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=git://github.com/nodejs/http-parser.git
PKG_SOURCE_PROTO:=git
include $(TOPDIR)/rules.mk
PKG_NAME:=libidn2
-PKG_VERSION:=2.0.4
+PKG_VERSION:=2.0.5
PKG_RELEASE:=1
PKG_MAINTAINER:=Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
PKG_LICENSE:=GPL-2.0-or-later LGPL-3.0-or-later
PKG_SOURCE_URL:=@GNU/libidn
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=644b6b03b285fb0ace02d241d59483d98bc462729d8bb3608d5cad5532f3d2f0
+PKG_HASH:=53f69170886f1fa6fa5b332439c7a77a7d22626a82ef17e2c1224858bb4ca2b8
PKG_INSTALL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=liblo
-PKG_VERSION:=0.28
+PKG_VERSION:=0.29
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/liblo
-PKG_HASH:=da94a9b67b93625354dd89ff7fe31e5297fc9400b6eaf7378c82ee1caf7db909
+PKG_HASH:=ace1b4e234091425c150261d1ca7070cece48ee3c228a5612d048116d864c06a
PKG_LICENSE:=LGPL-2.1+
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=libmraa
-PKG_VERSION:=0.8.0
+PKG_VERSION:=0.9.0
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/intel-iot-devkit/mraa.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=70600dece4138b0c0dbaff42f57828f1559cd840
+PKG_SOURCE_VERSION:=049ba5fa9f2d18ac0ec6729c46916b34998d3c5f
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=9cbda58e7c7790db3d62cee62f399975effcdc2d9688d3d6bb2b4a86748faff9
+PKG_MIRROR_HASH:=0c81cff6dcfe401ead0d8976c6f9a6a86b75ab38413a45a40b7eb20b639d78e4
PKG_BUILD_DEPENDS:=node python/host swig/host node/host
CMAKE_INSTALL:=1
-From 6fecad819376442d057bdd35a0909cfac9df02f5 Mon Sep 17 00:00:00 2001
-From: John Crispin <blogic@openwrt.org>
-Date: Thu, 23 Jul 2015 12:18:39 +0200
-Subject: [PATCH 1/4] base
-
----
CMakeLists.txt | 10 ++++------
api/mraa/types.h | 1 +
include/mraa_internal.h | 7 +++++++
# Make a version file containing the current version from git.
-include (GetGitRevisionDescription)
-git_describe (VERSION "--tags")
--if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND" OR "x_${VERSION}" STREQUAL "x_HEAD-HASH-NOTFOUND")
+-if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND" OR "x_${VERSION}" STREQUAL "x_HEAD-HASH-NOTFOUND" OR "x_${VERSION}" STREQUAL "x_-128-NOTFOUND")
- message (WARNING " - Install git to compile a production libmraa!")
-- set (VERSION "v0.8.0-dirty")
+- set (VERSION "v0.8.1-dirty")
-endif ()
-+set (VERSION "v0.8.0")
++set (VERSION "v0.9.0")
message (INFO " - libmraa Version ${VERSION}")
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://sourceforge.net/projects/libnet-dev/files/
+PKG_SOURCE_URL:=@SF/libnet-dev
PKG_HASH:=72c380785ad44183005e654b47cc12485ee0228d7fa6b0a87109ff7614be4a63
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE:=BSD-3-Clause
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
-PKG_VERSION:=0.10.17
+PKG_VERSION:=0.11.37
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=bd93b091d6e4414283c6c764dc451aee61e09997
-PKG_MIRROR_HASH:=499847be79d202cb0c933aad8133a38ebca7099344a1194404e488aa4d10ff08
+PKG_SOURCE_VERSION:=46d56e08b161eb60f37410dae4d5e1a8a1bedd58
+PKG_MIRROR_HASH:=e12007b69eee42d1eb9925a93bcac7a71139583a76a59c78039b48cc20fc431f
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/cesnet/libnetconf2/
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
include $(TOPDIR)/rules.mk
PKG_NAME:=libnetfilter_acct
-PKG_VERSION:=1.0.2
+PKG_VERSION:=1.0.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:= \
- http://www.netfilter.org/projects/libnetfilter_acct/files/ \
- ftp://ftp.netfilter.org/pub/libnetfilter_acct/ \
- http://mirrors.evolva.ro/netfilter.org/libnetfilter_acct/
-PKG_HASH:=0128f19c3419fbd84f7e6d46b13a33ef7bda9b9f5e493bc5ae1882d087514b71
+PKG_SOURCE_URL:=https://netfilter.org/projects/libnetfilter_acct/files
+PKG_HASH:=4250ceef3efe2034f4ac05906c3ee427db31b9b0a2df41b2744f4bf79a959a1a
PKG_LICENSE:=LGPL-2.1+
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=nopoll
-PKG_VERSION:=0.4.2
-PKG_RELEASE:=2
+PKG_VERSION:=0.4.6
+PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ASPLes/nopoll.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=60a81fbd199551ac5dd017b9a44fb46e8530680b
+PKG_SOURCE_VERSION:=5cf7c10c3b0b758ad254504bf0ae7e600b118528
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
-PKG_MIRROR_HASH:=ce67b91ea54dda6678321e05a3e584648032a31323409a76df5dd60e7bfd17de
+PKG_MIRROR_HASH:=fae82c7c711520be07ed4e9828724d0a8ee5de7d7b4395e4ac9f72da25fcc524
PKG_MAINTAINER:=John Clark <inindev@gmail.com>
+++ /dev/null
-From 675ac7b4b64d398de8a61e9c713383b8c0d9071f Mon Sep 17 00:00:00 2001
-From: Florian Fainelli <f.fainelli@gmail.com>
-Date: Tue, 20 Jun 2017 20:06:36 -0700
-Subject: [PATCH] nopoll: * [fix] Avoid clashes with isset() from sys/param.h
-
----
- src/nopoll_io.c | 4 ++--
- src/nopoll_loop.c | 4 ++--
- src/nopoll_private.h | 4 ++--
- 3 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/nopoll_io.c b/src/nopoll_io.c
-index 036aa2c1c685..b3e48c2385d0 100644
---- a/src/nopoll_io.c
-+++ b/src/nopoll_io.c
-@@ -204,8 +204,8 @@ noPollIoEngine * nopoll_io_get_engine (noPollCtx * ctx, noPollIoEngineType engin
- engine->destroy = nopoll_io_wait_select_destroy;
- engine->clear = nopoll_io_wait_select_clear;
- engine->wait = nopoll_io_wait_select_wait;
-- engine->addto = nopoll_io_wait_select_add_to;
-- engine->isset = nopoll_io_wait_select_is_set;
-+ engine->add_to = nopoll_io_wait_select_add_to;
-+ engine->is_set = nopoll_io_wait_select_is_set;
-
- /* call to create the object */
- engine->ctx = ctx;
-diff --git a/src/nopoll_loop.c b/src/nopoll_loop.c
-index f58b8133b79a..60112f8dbf58 100644
---- a/src/nopoll_loop.c
-+++ b/src/nopoll_loop.c
-@@ -64,7 +64,7 @@ nopoll_bool nopoll_loop_register (noPollCtx * ctx, noPollConn * conn, noPollPtr
-
- /* register the connection socket */
- /* nopoll_log (ctx, NOPOLL_LEVEL_DEBUG, "Adding socket id: %d", conn->session);*/
-- if (! ctx->io_engine->addto (conn->session, ctx, conn, ctx->io_engine->io_object)) {
-+ if (! ctx->io_engine->add_to (conn->session, ctx, conn, ctx->io_engine->io_object)) {
-
- /* remove this connection from registry */
- nopoll_ctx_unregister_conn (ctx, conn);
-@@ -109,7 +109,7 @@ nopoll_bool nopoll_loop_process (noPollCtx * ctx, noPollConn * conn, noPollPtr u
- int * conn_changed = (int *) user_data;
-
- /* check if the connection have something to notify */
-- if (ctx->io_engine->isset (ctx, conn->session, ctx->io_engine->io_object)) {
-+ if (ctx->io_engine->is_set (ctx, conn->session, ctx->io_engine->io_object)) {
-
- /* call to notify action according to role */
- switch (conn->role) {
-diff --git a/src/nopoll_private.h b/src/nopoll_private.h
-index 82fd27bb7fba..cd895d1e3ffd 100644
---- a/src/nopoll_private.h
-+++ b/src/nopoll_private.h
-@@ -340,8 +340,8 @@ struct _noPollIoEngine {
- noPollIoMechDestroy destroy;
- noPollIoMechClear clear;
- noPollIoMechWait wait;
-- noPollIoMechAddTo addto;
-- noPollIoMechIsSet isset;
-+ noPollIoMechAddTo add_to;
-+ noPollIoMechIsSet is_set;
- };
-
- struct _noPollMsg {
---
-2.11.0
-
include $(TOPDIR)/rules.mk
PKG_NAME:=libogg
-PKG_VERSION:=1.3.2
-PKG_RELEASE:=2
+PKG_VERSION:=1.3.3
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://downloads.xiph.org/releases/ogg/
-PKG_HASH:=3f687ccdd5ac8b52d76328fbbfebc70c459a40ea891dbf3dccb74a210826e79b
+PKG_SOURCE_URL:=https://downloads.xiph.org/releases/ogg/
+PKG_HASH:=4f3fc6178a533d392064f14776b23c397ed4b9f48f5de297aba73b643f955c08
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=BSD-3-Clause
include $(TOPDIR)/rules.mk
PKG_NAME:=libsamplerate
-PKG_VERSION:=0.1.8
+PKG_VERSION:=0.1.9
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.mega-nerd.com/SRC/
-PKG_HASH:=93b54bdf46d5e6d2354b7034395fe329c222a966790de34520702bb9642f1c06
+PKG_HASH:=0a7eb168e2f21353fb6d84da152e4512126f7dc48ccb0be80578c565413444c1
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
include $(TOPDIR)/rules.mk
PKG_NAME:=libsearpc
-PKG_VERSION:=6.2.2
+PKG_VERSION:=3.0.8
PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
PKG_LICENSE:=GPL-3.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/haiwen/libsearpc.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=8998e7b2c5587f0b94c48db24e2952d08def5add
+PKG_SOURCE_VERSION:=12a01268825e9c7e17794c58c367e3b4db912ad9
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=207baa1fc63a60c117cf4985b60a18212b151fa070f208621633c3b53ab679bf
+PKG_MIRROR_HASH:=8ca4785c4d276afeac212a26a143b22e45b85cf196c1218e4630f6072a33f430
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=libsoc
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/jackmitch/libsoc.git
+PKG_MIRROR_HASH:=bdfaace3d59da30c4aa5ef78b5e235b5e9c41cd56867e04cb0acefc4dcd62d33
PKG_SOURCE_DATE:=2016-12-22
PKG_SOURCE_VERSION:=5b788d4d558a78c52e6cfe97325e4564b307a3a0
--enable-static \
--disable-cxx
-MAKE_FLAGS += \
- CFLAGS="$(TARGET_CFLAGS)" \
- DESTDIR="$(PKG_INSTALL_DIR)" \
- all install
-
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libsoc_board.h $(1)/usr/include/
PKG_NAME:=libssh
PKG_VERSION:=0.7.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://red.libssh.org/attachments/download/218/
--- /dev/null
+--- a/src/libcrypto.c
++++ b/src/libcrypto.c
+@@ -43,10 +43,12 @@
+ #include <openssl/hmac.h>
+ #include <openssl/opensslv.h>
+ #include <openssl/rand.h>
++#include "libcrypto-compat.h"
+
+ #ifdef HAVE_OPENSSL_AES_H
+ #define HAS_AES
+ #include <openssl/aes.h>
++#include <openssl/modes.h>
+ #endif
+ #ifdef HAVE_OPENSSL_BLOWFISH_H
+ #define HAS_BLOWFISH
+@@ -133,18 +135,20 @@ static const EVP_MD *nid_to_evpmd(int ni
+ void evp(int nid, unsigned char *digest, int len, unsigned char *hash, unsigned int *hlen)
+ {
+ const EVP_MD *evp_md = nid_to_evpmd(nid);
+- EVP_MD_CTX md;
++ EVP_MD_CTX *md;
+
+- EVP_DigestInit(&md, evp_md);
+- EVP_DigestUpdate(&md, digest, len);
+- EVP_DigestFinal(&md, hash, hlen);
++ md = EVP_MD_CTX_new();
++ EVP_DigestInit(md, evp_md);
++ EVP_DigestUpdate(md, digest, len);
++ EVP_DigestFinal(md, hash, hlen);
++ EVP_MD_CTX_free(md);
+ }
+
+ EVPCTX evp_init(int nid)
+ {
+ const EVP_MD *evp_md = nid_to_evpmd(nid);
+
+- EVPCTX ctx = malloc(sizeof(EVP_MD_CTX));
++ EVPCTX ctx = EVP_MD_CTX_new();
+ if (ctx == NULL) {
+ return NULL;
+ }
+@@ -322,32 +326,33 @@ void ssh_mac_final(unsigned char *md, ss
+ HMACCTX hmac_init(const void *key, int len, enum ssh_hmac_e type) {
+ HMACCTX ctx = NULL;
+
+- ctx = malloc(sizeof(*ctx));
++ ctx = HMAC_CTX_new();
+ if (ctx == NULL) {
+ return NULL;
+ }
+
+ #ifndef OLD_CRYPTO
+- HMAC_CTX_init(ctx); // openssl 0.9.7 requires it.
++ HMAC_CTX_reset(ctx); // openssl 0.9.7 requires it.
+ #endif
+
+ switch(type) {
+ case SSH_HMAC_SHA1:
+- HMAC_Init(ctx, key, len, EVP_sha1());
++ HMAC_Init_ex(ctx, key, len, EVP_sha1(), NULL);
+ break;
+ case SSH_HMAC_SHA256:
+- HMAC_Init(ctx, key, len, EVP_sha256());
++ HMAC_Init_ex(ctx, key, len, EVP_sha256(), NULL);
+ break;
+ case SSH_HMAC_SHA384:
+- HMAC_Init(ctx, key, len, EVP_sha384());
++ HMAC_Init_ex(ctx, key, len, EVP_sha384(), NULL);
+ break;
+ case SSH_HMAC_SHA512:
+- HMAC_Init(ctx, key, len, EVP_sha512());
++ HMAC_Init_ex(ctx, key, len, EVP_sha512(), NULL);
+ break;
+ case SSH_HMAC_MD5:
+- HMAC_Init(ctx, key, len, EVP_md5());
++ HMAC_Init_ex(ctx, key, len, EVP_md5(), NULL);
+ break;
+ default:
++ HMAC_CTX_free(ctx);
+ SAFE_FREE(ctx);
+ ctx = NULL;
+ }
+@@ -363,7 +368,8 @@ void hmac_final(HMACCTX ctx, unsigned ch
+ HMAC_Final(ctx,hashmacbuf,len);
+
+ #ifndef OLD_CRYPTO
+- HMAC_CTX_cleanup(ctx);
++ HMAC_CTX_free(ctx);
++ ctx = NULL;
+ #else
+ HMAC_cleanup(ctx);
+ #endif
+@@ -455,7 +461,11 @@ static void aes_ctr128_encrypt(struct ss
+ * Same for num, which is being used to store the current offset in blocksize in CTR
+ * function.
+ */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ AES_ctr128_encrypt(in, out, len, cipher->key, cipher->IV, tmp_buffer, &num);
++#else
++ CRYPTO_ctr128_encrypt(in, out, len, cipher->key, cipher->IV, tmp_buffer, &num, (block128_f)AES_encrypt);
++#endif
+ }
+ #endif /* BROKEN_AES_CTR */
+ #endif /* HAS_AES */
+--- a/src/pki_crypto.c
++++ b/src/pki_crypto.c
+@@ -31,6 +31,7 @@
+ #include <openssl/dsa.h>
+ #include <openssl/err.h>
+ #include <openssl/rsa.h>
++#include "libcrypto-compat.h"
+
+ #ifdef HAVE_OPENSSL_EC_H
+ #include <openssl/ec.h>
+@@ -230,7 +231,10 @@ ssh_key pki_key_dup(const ssh_key key, i
+ }
+
+ switch (key->type) {
+- case SSH_KEYTYPE_DSS:
++ case SSH_KEYTYPE_DSS: {
++ const BIGNUM *p = NULL, *q = NULL, *g = NULL,
++ *pub_key = NULL, *priv_key = NULL;
++ BIGNUM *np, *nq, *ng, *npub_key, *npriv_key;
+ new->dsa = DSA_new();
+ if (new->dsa == NULL) {
+ goto fail;
+@@ -243,36 +247,54 @@ ssh_key pki_key_dup(const ssh_key key, i
+ * pub_key = public key y = g^x
+ * priv_key = private key x
+ */
+- new->dsa->p = BN_dup(key->dsa->p);
+- if (new->dsa->p == NULL) {
++ DSA_get0_pqg(key->dsa, &p, &q, &g);
++ np = BN_dup(p);
++ nq = BN_dup(q);
++ ng = BN_dup(g);
++ if (np == NULL || nq == NULL || ng == NULL) {
++ BN_free(np);
++ BN_free(nq);
++ BN_free(ng);
+ goto fail;
+ }
+
+- new->dsa->q = BN_dup(key->dsa->q);
+- if (new->dsa->q == NULL) {
++ rc = DSA_set0_pqg(new->dsa, np, nq, ng);
++ if (rc == 0) {
++ BN_free(np);
++ BN_free(nq);
++ BN_free(ng);
+ goto fail;
+ }
+
+- new->dsa->g = BN_dup(key->dsa->g);
+- if (new->dsa->g == NULL) {
++ DSA_get0_key(key->dsa, &pub_key, &priv_key);
++ npub_key = BN_dup(pub_key);
++ if (npub_key == NULL) {
+ goto fail;
+ }
+
+- new->dsa->pub_key = BN_dup(key->dsa->pub_key);
+- if (new->dsa->pub_key == NULL) {
++ rc = DSA_set0_key(new->dsa, npub_key, NULL);
++ if (rc == 0) {
+ goto fail;
+ }
+
+ if (!demote && (key->flags & SSH_KEY_FLAG_PRIVATE)) {
+- new->dsa->priv_key = BN_dup(key->dsa->priv_key);
+- if (new->dsa->priv_key == NULL) {
++ npriv_key = BN_dup(priv_key);
++ if (npriv_key == NULL) {
++ goto fail;
++ }
++
++ rc = DSA_set0_key(new->dsa, NULL, npriv_key);
++ if (rc == 0) {
+ goto fail;
+ }
+ }
+
+ break;
++ }
+ case SSH_KEYTYPE_RSA:
+- case SSH_KEYTYPE_RSA1:
++ case SSH_KEYTYPE_RSA1: {
++ const BIGNUM *n = NULL, *e = NULL, *d = NULL;
++ BIGNUM *nn, *ne, *nd;
+ new->rsa = RSA_new();
+ if (new->rsa == NULL) {
+ goto fail;
+@@ -288,62 +310,82 @@ ssh_key pki_key_dup(const ssh_key key, i
+ * dmq1 = d mod (q-1)
+ * iqmp = q^-1 mod p
+ */
+- new->rsa->n = BN_dup(key->rsa->n);
+- if (new->rsa->n == NULL) {
++ RSA_get0_key(key->rsa, &n, &e, &d);
++ nn = BN_dup(n);
++ ne = BN_dup(e);
++ if (nn == NULL || ne == NULL) {
++ BN_free(nn);
++ BN_free(ne);
+ goto fail;
+ }
+
+- new->rsa->e = BN_dup(key->rsa->e);
+- if (new->rsa->e == NULL) {
++ rc = RSA_set0_key(new->rsa, nn, ne, NULL);
++ if (rc == 0) {
++ BN_free(nn);
++ BN_free(ne);
+ goto fail;
+ }
+
+ if (!demote && (key->flags & SSH_KEY_FLAG_PRIVATE)) {
+- new->rsa->d = BN_dup(key->rsa->d);
+- if (new->rsa->d == NULL) {
++ const BIGNUM *p = NULL, *q = NULL, *dmp1 = NULL,
++ *dmq1 = NULL, *iqmp = NULL;
++ BIGNUM *np, *nq, *ndmp1, *ndmq1, *niqmp;
++
++ nd = BN_dup(d);
++ if (nd == NULL) {
++ goto fail;
++ }
++
++ rc = RSA_set0_key(new->rsa, NULL, NULL, nd);
++ if (rc == 0) {
+ goto fail;
+ }
+
+ /* p, q, dmp1, dmq1 and iqmp may be NULL in private keys, but the
+ * RSA operations are much faster when these values are available.
+ */
+- if (key->rsa->p != NULL) {
+- new->rsa->p = BN_dup(key->rsa->p);
+- if (new->rsa->p == NULL) {
++ RSA_get0_factors(key->rsa, &p, &q);
++ if (p != NULL && q != NULL) { /* need to set both of them */
++ np = BN_dup(p);
++ nq = BN_dup(q);
++ if (np == NULL || nq == NULL) {
++ BN_free(np);
++ BN_free(nq);
+ goto fail;
+ }
+- }
+
+- if (key->rsa->q != NULL) {
+- new->rsa->q = BN_dup(key->rsa->q);
+- if (new->rsa->q == NULL) {
++ rc = RSA_set0_factors(new->rsa, np, nq);
++ if (rc == 0) {
++ BN_free(np);
++ BN_free(nq);
+ goto fail;
+ }
+ }
+
+- if (key->rsa->dmp1 != NULL) {
+- new->rsa->dmp1 = BN_dup(key->rsa->dmp1);
+- if (new->rsa->dmp1 == NULL) {
++ RSA_get0_crt_params(key->rsa, &dmp1, &dmq1, &iqmp);
++ if (dmp1 != NULL || dmq1 != NULL || iqmp != NULL) {
++ ndmp1 = BN_dup(dmp1);
++ ndmq1 = BN_dup(dmq1);
++ niqmp = BN_dup(iqmp);
++ if (ndmp1 == NULL || ndmq1 == NULL || niqmp == NULL) {
++ BN_free(ndmp1);
++ BN_free(ndmq1);
++ BN_free(niqmp);
+ goto fail;
+ }
+- }
+
+- if (key->rsa->dmq1 != NULL) {
+- new->rsa->dmq1 = BN_dup(key->rsa->dmq1);
+- if (new->rsa->dmq1 == NULL) {
+- goto fail;
+- }
+- }
+-
+- if (key->rsa->iqmp != NULL) {
+- new->rsa->iqmp = BN_dup(key->rsa->iqmp);
+- if (new->rsa->iqmp == NULL) {
++ rc = RSA_set0_crt_params(new->rsa, ndmp1, ndmq1, niqmp);
++ if (rc == 0) {
++ BN_free(ndmp1);
++ BN_free(ndmq1);
++ BN_free(niqmp);
+ goto fail;
+ }
+ }
+ }
+
+ break;
++ }
+ case SSH_KEYTYPE_ECDSA:
+ #ifdef HAVE_OPENSSL_ECC
+ new->ecdsa_nid = key->ecdsa_nid;
+@@ -409,11 +451,30 @@ int pki_key_generate_rsa(ssh_key key, in
+
+ int pki_key_generate_dss(ssh_key key, int parameter){
+ int rc;
++#if OPENSSL_VERSION_NUMBER > 0x10100000L
++ key->dsa = DSA_new();
++ if (key->dsa == NULL) {
++ return SSH_ERROR;
++ }
++ rc = DSA_generate_parameters_ex(key->dsa,
++ parameter,
++ NULL, /* seed */
++ 0, /* seed_len */
++ NULL, /* counter_ret */
++ NULL, /* h_ret */
++ NULL); /* cb */
++ if (rc != 1) {
++ DSA_free(key->dsa);
++ key->dsa = NULL;
++ return SSH_ERROR;
++ }
++#else
+ key->dsa = DSA_generate_parameters(parameter, NULL, 0, NULL, NULL,
+ NULL, NULL);
+ if(key->dsa == NULL){
+ return SSH_ERROR;
+ }
++#endif
+ rc = DSA_generate_key(key->dsa);
+ if (rc != 1){
+ DSA_free(key->dsa);
+@@ -466,51 +527,64 @@ int pki_key_compare(const ssh_key k1,
+ enum ssh_keycmp_e what)
+ {
+ switch (k1->type) {
+- case SSH_KEYTYPE_DSS:
++ case SSH_KEYTYPE_DSS: {
++ const BIGNUM *p1, *p2, *q1, *q2, *g1, *g2,
++ *pub_key1, *pub_key2, *priv_key1, *priv_key2;
+ if (DSA_size(k1->dsa) != DSA_size(k2->dsa)) {
+ return 1;
+ }
+- if (bignum_cmp(k1->dsa->p, k2->dsa->p) != 0) {
++ DSA_get0_pqg(k1->dsa, &p1, &q1, &g1);
++ DSA_get0_pqg(k2->dsa, &p2, &q2, &g2);
++ if (bignum_cmp(p1, p2) != 0) {
+ return 1;
+ }
+- if (bignum_cmp(k1->dsa->q, k2->dsa->q) != 0) {
++ if (bignum_cmp(q1, q2) != 0) {
+ return 1;
+ }
+- if (bignum_cmp(k1->dsa->g, k2->dsa->g) != 0) {
++ if (bignum_cmp(g1, g2) != 0) {
+ return 1;
+ }
+- if (bignum_cmp(k1->dsa->pub_key, k2->dsa->pub_key) != 0) {
++ DSA_get0_key(k1->dsa, &pub_key1, &priv_key1);
++ DSA_get0_key(k2->dsa, &pub_key2, &priv_key2);
++ if (bignum_cmp(pub_key1, pub_key2) != 0) {
+ return 1;
+ }
+
+ if (what == SSH_KEY_CMP_PRIVATE) {
+- if (bignum_cmp(k1->dsa->priv_key, k2->dsa->priv_key) != 0) {
++ if (bignum_cmp(priv_key1, priv_key2) != 0) {
+ return 1;
+ }
+ }
+ break;
++ }
+ case SSH_KEYTYPE_RSA:
+- case SSH_KEYTYPE_RSA1:
++ case SSH_KEYTYPE_RSA1: {
++ const BIGNUM *e1, *e2, *n1, *n2, *p1, *p2, *q1, *q2;
+ if (RSA_size(k1->rsa) != RSA_size(k2->rsa)) {
+ return 1;
+ }
+- if (bignum_cmp(k1->rsa->e, k2->rsa->e) != 0) {
++ RSA_get0_key(k1->rsa, &n1, &e1, NULL);
++ RSA_get0_key(k2->rsa, &n2, &e2, NULL);
++ if (bignum_cmp(e1, e2) != 0) {
+ return 1;
+ }
+- if (bignum_cmp(k1->rsa->n, k2->rsa->n) != 0) {
++ if (bignum_cmp(n1, n2) != 0) {
+ return 1;
+ }
+
+ if (what == SSH_KEY_CMP_PRIVATE) {
+- if (bignum_cmp(k1->rsa->p, k2->rsa->p) != 0) {
++ RSA_get0_factors(k1->rsa, &p1, &q1);
++ RSA_get0_factors(k2->rsa, &p2, &q2);
++ if (bignum_cmp(p1, p2) != 0) {
+ return 1;
+ }
+
+- if (bignum_cmp(k1->rsa->q, k2->rsa->q) != 0) {
++ if (bignum_cmp(q1, q2) != 0) {
+ return 1;
+ }
+ }
+ break;
++ }
+ case SSH_KEYTYPE_ECDSA:
+ #ifdef HAVE_OPENSSL_ECC
+ {
+@@ -586,7 +660,7 @@ ssh_string pki_private_key_to_pem(const
+ } else {
+ rc = PEM_write_bio_DSAPrivateKey(mem,
+ key->dsa,
+- NULL, /* cipher */
++ EVP_aes_128_cbc(),
+ NULL, /* kstr */
+ 0, /* klen */
+ NULL, /* auth_fn */
+@@ -611,7 +685,7 @@ ssh_string pki_private_key_to_pem(const
+ } else {
+ rc = PEM_write_bio_RSAPrivateKey(mem,
+ key->rsa,
+- NULL, /* cipher */
++ EVP_aes_128_cbc(),
+ NULL, /* kstr */
+ 0, /* klen */
+ NULL, /* auth_fn */
+@@ -621,8 +695,8 @@ ssh_string pki_private_key_to_pem(const
+ goto err;
+ }
+ break;
+- case SSH_KEYTYPE_ECDSA:
+ #ifdef HAVE_ECC
++ case SSH_KEYTYPE_ECDSA:
+ if (passphrase == NULL) {
+ struct pem_get_password_struct pgp = { auth_fn, auth_data };
+
+@@ -636,7 +710,7 @@ ssh_string pki_private_key_to_pem(const
+ } else {
+ rc = PEM_write_bio_ECPrivateKey(mem,
+ key->ecdsa,
+- NULL, /* cipher */
++ EVP_aes_128_cbc(),
+ NULL, /* kstr */
+ 0, /* klen */
+ NULL, /* auth_fn */
+@@ -819,43 +893,65 @@ int pki_pubkey_build_dss(ssh_key key,
+ ssh_string q,
+ ssh_string g,
+ ssh_string pubkey) {
++ int rc;
++ BIGNUM *bp, *bq, *bg, *bpub_key;
++
+ key->dsa = DSA_new();
+ if (key->dsa == NULL) {
+ return SSH_ERROR;
+ }
+
+- key->dsa->p = make_string_bn(p);
+- key->dsa->q = make_string_bn(q);
+- key->dsa->g = make_string_bn(g);
+- key->dsa->pub_key = make_string_bn(pubkey);
+- if (key->dsa->p == NULL ||
+- key->dsa->q == NULL ||
+- key->dsa->g == NULL ||
+- key->dsa->pub_key == NULL) {
+- DSA_free(key->dsa);
+- return SSH_ERROR;
++ bp = make_string_bn(p);
++ bq = make_string_bn(q);
++ bg = make_string_bn(g);
++ bpub_key = make_string_bn(pubkey);
++ if (bp == NULL || bq == NULL ||
++ bg == NULL || bpub_key == NULL) {
++ goto fail;
++ }
++
++ rc = DSA_set0_pqg(key->dsa, bp, bq, bg);
++ if (rc == 0) {
++ goto fail;
++ }
++
++ rc = DSA_set0_key(key->dsa, bpub_key, NULL);
++ if (rc == 0) {
++ goto fail;
+ }
+
+ return SSH_OK;
++fail:
++ DSA_free(key->dsa);
++ return SSH_ERROR;
+ }
+
+ int pki_pubkey_build_rsa(ssh_key key,
+ ssh_string e,
+ ssh_string n) {
++ int rc;
++ BIGNUM *be, *bn;
++
+ key->rsa = RSA_new();
+ if (key->rsa == NULL) {
+ return SSH_ERROR;
+ }
+
+- key->rsa->e = make_string_bn(e);
+- key->rsa->n = make_string_bn(n);
+- if (key->rsa->e == NULL ||
+- key->rsa->n == NULL) {
+- RSA_free(key->rsa);
+- return SSH_ERROR;
++ be = make_string_bn(e);
++ bn = make_string_bn(n);
++ if (be == NULL || bn == NULL) {
++ goto fail;
++ }
++
++ rc = RSA_set0_key(key->rsa, bn, be, NULL);
++ if (rc == 0) {
++ goto fail;
+ }
+
+ return SSH_OK;
++fail:
++ RSA_free(key->rsa);
++ return SSH_ERROR;
+ }
+
+ ssh_string pki_publickey_to_blob(const ssh_key key)
+@@ -889,23 +985,26 @@ ssh_string pki_publickey_to_blob(const s
+ }
+
+ switch (key->type) {
+- case SSH_KEYTYPE_DSS:
+- p = make_bignum_string(key->dsa->p);
++ case SSH_KEYTYPE_DSS: {
++ const BIGNUM *bp, *bq, *bg, *bpub_key;
++ DSA_get0_pqg(key->dsa, &bp, &bq, &bg);
++ p = make_bignum_string((BIGNUM *)bp);
+ if (p == NULL) {
+ goto fail;
+ }
+
+- q = make_bignum_string(key->dsa->q);
++ q = make_bignum_string((BIGNUM *)bq);
+ if (q == NULL) {
+ goto fail;
+ }
+
+- g = make_bignum_string(key->dsa->g);
++ g = make_bignum_string((BIGNUM *)bg);
+ if (g == NULL) {
+ goto fail;
+ }
+
+- n = make_bignum_string(key->dsa->pub_key);
++ DSA_get0_key(key->dsa, &bpub_key, NULL);
++ n = make_bignum_string((BIGNUM *)bpub_key);
+ if (n == NULL) {
+ goto fail;
+ }
+@@ -937,14 +1036,17 @@ ssh_string pki_publickey_to_blob(const s
+ n = NULL;
+
+ break;
++ }
+ case SSH_KEYTYPE_RSA:
+- case SSH_KEYTYPE_RSA1:
+- e = make_bignum_string(key->rsa->e);
++ case SSH_KEYTYPE_RSA1: {
++ const BIGNUM *be, *bn;
++ RSA_get0_key(key->rsa, &bn, &be, NULL);
++ e = make_bignum_string((BIGNUM *)be);
+ if (e == NULL) {
+ goto fail;
+ }
+
+- n = make_bignum_string(key->rsa->n);
++ n = make_bignum_string((BIGNUM *)bn);
+ if (n == NULL) {
+ goto fail;
+ }
+@@ -964,6 +1066,7 @@ ssh_string pki_publickey_to_blob(const s
+ n = NULL;
+
+ break;
++ }
+ case SSH_KEYTYPE_ECDSA:
+ #ifdef HAVE_OPENSSL_ECC
+ rc = ssh_buffer_reinit(buffer);
+@@ -1065,13 +1168,15 @@ int pki_export_pubkey_rsa1(const ssh_key
+ char *e;
+ char *n;
+ int rsa_size = RSA_size(key->rsa);
++ const BIGNUM *be, *bn;
+
+- e = bignum_bn2dec(key->rsa->e);
++ RSA_get0_key(key->rsa, &bn, &be, NULL);
++ e = bignum_bn2dec(be);
+ if (e == NULL) {
+ return SSH_ERROR;
+ }
+
+- n = bignum_bn2dec(key->rsa->n);
++ n = bignum_bn2dec(bn);
+ if (n == NULL) {
+ OPENSSL_free(e);
+ return SSH_ERROR;
+@@ -1136,6 +1241,7 @@ static ssh_string pki_dsa_signature_to_b
+ {
+ char buffer[40] = { 0 };
+ ssh_string sig_blob = NULL;
++ const BIGNUM *pr, *ps;
+
+ ssh_string r;
+ int r_len, r_offset_in, r_offset_out;
+@@ -1143,12 +1249,13 @@ static ssh_string pki_dsa_signature_to_b
+ ssh_string s;
+ int s_len, s_offset_in, s_offset_out;
+
+- r = make_bignum_string(sig->dsa_sig->r);
++ DSA_SIG_get0(sig->dsa_sig, &pr, &ps);
++ r = make_bignum_string((BIGNUM *)pr);
+ if (r == NULL) {
+ return NULL;
+ }
+
+- s = make_bignum_string(sig->dsa_sig->s);
++ s = make_bignum_string((BIGNUM *)ps);
+ if (s == NULL) {
+ ssh_string_free(r);
+ return NULL;
+@@ -1201,13 +1308,15 @@ ssh_string pki_signature_to_blob(const s
+ ssh_string s;
+ ssh_buffer b;
+ int rc;
++ const BIGNUM *pr, *ps;
+
+ b = ssh_buffer_new();
+ if (b == NULL) {
+ return NULL;
+ }
+
+- r = make_bignum_string(sig->ecdsa_sig->r);
++ ECDSA_SIG_get0(sig->ecdsa_sig, &pr, &ps);
++ r = make_bignum_string((BIGNUM *)pr);
+ if (r == NULL) {
+ ssh_buffer_free(b);
+ return NULL;
+@@ -1219,7 +1328,7 @@ ssh_string pki_signature_to_blob(const s
+ return NULL;
+ }
+
+- s = make_bignum_string(sig->ecdsa_sig->s);
++ s = make_bignum_string((BIGNUM *)ps);
+ if (s == NULL) {
+ ssh_buffer_free(b);
+ return NULL;
+@@ -1324,6 +1433,7 @@ ssh_signature pki_signature_from_blob(co
+ ssh_string s;
+ size_t len;
+ int rc;
++ BIGNUM *pr = NULL, *ps = NULL;
+
+ sig = ssh_signature_new();
+ if (sig == NULL) {
+@@ -1363,9 +1473,9 @@ ssh_signature pki_signature_from_blob(co
+ }
+ ssh_string_fill(r, ssh_string_data(sig_blob), 20);
+
+- sig->dsa_sig->r = make_string_bn(r);
++ pr = make_string_bn(r);
+ ssh_string_free(r);
+- if (sig->dsa_sig->r == NULL) {
++ if (pr == NULL) {
+ ssh_signature_free(sig);
+ return NULL;
+ }
+@@ -1377,9 +1487,15 @@ ssh_signature pki_signature_from_blob(co
+ }
+ ssh_string_fill(s, (char *)ssh_string_data(sig_blob) + 20, 20);
+
+- sig->dsa_sig->s = make_string_bn(s);
++ ps = make_string_bn(s);
+ ssh_string_free(s);
+- if (sig->dsa_sig->s == NULL) {
++ if (ps == NULL) {
++ ssh_signature_free(sig);
++ return NULL;
++ }
++
++ rc = DSA_SIG_set0(sig->dsa_sig, pr, ps);
++ if (rc == 0) {
+ ssh_signature_free(sig);
+ return NULL;
+ }
+@@ -1427,17 +1543,17 @@ ssh_signature pki_signature_from_blob(co
+ ssh_print_hexa("r", ssh_string_data(r), ssh_string_len(r));
+ #endif
+
+- make_string_bn_inplace(r, sig->ecdsa_sig->r);
++ pr = make_string_bn(r);
+ ssh_string_burn(r);
+ ssh_string_free(r);
+- if (sig->ecdsa_sig->r == NULL) {
++ if (pr == NULL) {
+ ssh_buffer_free(b);
+ ssh_signature_free(sig);
+ return NULL;
+ }
+
+ s = buffer_get_ssh_string(b);
+- rlen = buffer_get_rest_len(b);
++ rlen = buffer_get_len(b);
+ ssh_buffer_free(b);
+ if (s == NULL) {
+ ssh_signature_free(sig);
+@@ -1448,10 +1564,16 @@ ssh_signature pki_signature_from_blob(co
+ ssh_print_hexa("s", ssh_string_data(s), ssh_string_len(s));
+ #endif
+
+- make_string_bn_inplace(s, sig->ecdsa_sig->s);
++ ps = make_string_bn(s);
+ ssh_string_burn(s);
+ ssh_string_free(s);
+- if (sig->ecdsa_sig->s == NULL) {
++ if (ps == NULL) {
++ ssh_signature_free(sig);
++ return NULL;
++ }
++
++ rc = ECDSA_SIG_set0(sig->ecdsa_sig, pr, ps);
++ if (rc == 0) {
+ ssh_signature_free(sig);
+ return NULL;
+ }
+@@ -1578,8 +1700,12 @@ ssh_signature pki_do_sign(const ssh_key
+ }
+
+ #ifdef DEBUG_CRYPTO
+- ssh_print_bignum("r", sig->dsa_sig->r);
+- ssh_print_bignum("s", sig->dsa_sig->s);
++ {
++ const BIGNUM *pr, *ps;
++ DSA_SIG_get0(sig->dsa_sig, &pr, &ps);
++ ssh_print_bignum("r", (BIGNUM *) pr);
++ ssh_print_bignum("s", (BIGNUM *) ps);
++ }
+ #endif
+
+ break;
+@@ -1601,8 +1727,12 @@ ssh_signature pki_do_sign(const ssh_key
+ }
+
+ # ifdef DEBUG_CRYPTO
+- ssh_print_bignum("r", sig->ecdsa_sig->r);
+- ssh_print_bignum("s", sig->ecdsa_sig->s);
++ {
++ const BIGNUM *pr, *ps;
++ ECDSA_SIG_get0(sig->ecdsa_sig, &pr, &ps);
++ ssh_print_bignum("r", (BIGNUM *) pr);
++ ssh_print_bignum("s", (BIGNUM *) ps);
++ }
+ # endif /* DEBUG_CRYPTO */
+
+ break;
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -164,6 +164,9 @@ else (WITH_GCRYPT)
+ ${libssh_SRCS}
+ pki_crypto.c
+ )
++ if(OPENSSL_VERSION VERSION_LESS "1.1.0")
++ set(libssh_SRCS ${libssh_SRCS} libcrypto-compat.c)
++ endif()
+ endif (WITH_GCRYPT)
+
+ if (WITH_SFTP)
+--- /dev/null
++++ b/src/libcrypto-compat.c
+@@ -0,0 +1,334 @@
++/*
++ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
++ *
++ * Licensed under the OpenSSL license (the "License"). You may not use
++ * this file except in compliance with the License. You can obtain a copy
++ * in the file LICENSE in the source distribution or at
++ * https://www.openssl.org/source/license.html
++ */
++
++#include "config.h"
++
++#include <string.h>
++#include <openssl/engine.h>
++#include "libcrypto-compat.h"
++
++static void *OPENSSL_zalloc(size_t num)
++{
++ void *ret = OPENSSL_malloc(num);
++
++ if (ret != NULL)
++ memset(ret, 0, num);
++ return ret;
++}
++
++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
++{
++ /* If the fields n and e in r are NULL, the corresponding input
++ * parameters MUST be non-NULL for n and e. d may be
++ * left NULL (in case only the public key is used).
++ */
++ if ((r->n == NULL && n == NULL)
++ || (r->e == NULL && e == NULL))
++ return 0;
++
++ if (n != NULL) {
++ BN_free(r->n);
++ r->n = n;
++ }
++ if (e != NULL) {
++ BN_free(r->e);
++ r->e = e;
++ }
++ if (d != NULL) {
++ BN_free(r->d);
++ r->d = d;
++ }
++
++ return 1;
++}
++
++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
++{
++ /* If the fields p and q in r are NULL, the corresponding input
++ * parameters MUST be non-NULL.
++ */
++ if ((r->p == NULL && p == NULL)
++ || (r->q == NULL && q == NULL))
++ return 0;
++
++ if (p != NULL) {
++ BN_free(r->p);
++ r->p = p;
++ }
++ if (q != NULL) {
++ BN_free(r->q);
++ r->q = q;
++ }
++
++ return 1;
++}
++
++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
++{
++ /* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input
++ * parameters MUST be non-NULL.
++ */
++ if ((r->dmp1 == NULL && dmp1 == NULL)
++ || (r->dmq1 == NULL && dmq1 == NULL)
++ || (r->iqmp == NULL && iqmp == NULL))
++ return 0;
++
++ if (dmp1 != NULL) {
++ BN_free(r->dmp1);
++ r->dmp1 = dmp1;
++ }
++ if (dmq1 != NULL) {
++ BN_free(r->dmq1);
++ r->dmq1 = dmq1;
++ }
++ if (iqmp != NULL) {
++ BN_free(r->iqmp);
++ r->iqmp = iqmp;
++ }
++
++ return 1;
++}
++
++void RSA_get0_key(const RSA *r,
++ const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
++{
++ if (n != NULL)
++ *n = r->n;
++ if (e != NULL)
++ *e = r->e;
++ if (d != NULL)
++ *d = r->d;
++}
++
++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
++{
++ if (p != NULL)
++ *p = r->p;
++ if (q != NULL)
++ *q = r->q;
++}
++
++void RSA_get0_crt_params(const RSA *r,
++ const BIGNUM **dmp1, const BIGNUM **dmq1,
++ const BIGNUM **iqmp)
++{
++ if (dmp1 != NULL)
++ *dmp1 = r->dmp1;
++ if (dmq1 != NULL)
++ *dmq1 = r->dmq1;
++ if (iqmp != NULL)
++ *iqmp = r->iqmp;
++}
++
++void DSA_get0_pqg(const DSA *d,
++ const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
++{
++ if (p != NULL)
++ *p = d->p;
++ if (q != NULL)
++ *q = d->q;
++ if (g != NULL)
++ *g = d->g;
++}
++
++int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
++{
++ /* If the fields p, q and g in d are NULL, the corresponding input
++ * parameters MUST be non-NULL.
++ */
++ if ((d->p == NULL && p == NULL)
++ || (d->q == NULL && q == NULL)
++ || (d->g == NULL && g == NULL))
++ return 0;
++
++ if (p != NULL) {
++ BN_free(d->p);
++ d->p = p;
++ }
++ if (q != NULL) {
++ BN_free(d->q);
++ d->q = q;
++ }
++ if (g != NULL) {
++ BN_free(d->g);
++ d->g = g;
++ }
++
++ return 1;
++}
++
++void DSA_get0_key(const DSA *d,
++ const BIGNUM **pub_key, const BIGNUM **priv_key)
++{
++ if (pub_key != NULL)
++ *pub_key = d->pub_key;
++ if (priv_key != NULL)
++ *priv_key = d->priv_key;
++}
++
++int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
++{
++ /* If the field pub_key in d is NULL, the corresponding input
++ * parameters MUST be non-NULL. The priv_key field may
++ * be left NULL.
++ */
++ if (d->pub_key == NULL && pub_key == NULL)
++ return 0;
++
++ if (pub_key != NULL) {
++ BN_free(d->pub_key);
++ d->pub_key = pub_key;
++ }
++ if (priv_key != NULL) {
++ BN_free(d->priv_key);
++ d->priv_key = priv_key;
++ }
++
++ return 1;
++}
++
++void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
++{
++ if (pr != NULL)
++ *pr = sig->r;
++ if (ps != NULL)
++ *ps = sig->s;
++}
++
++int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
++{
++ if (r == NULL || s == NULL)
++ return 0;
++ BN_clear_free(sig->r);
++ BN_clear_free(sig->s);
++ sig->r = r;
++ sig->s = s;
++ return 1;
++}
++
++void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
++{
++ if (pr != NULL)
++ *pr = sig->r;
++ if (ps != NULL)
++ *ps = sig->s;
++}
++
++int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
++{
++ if (r == NULL || s == NULL)
++ return 0;
++ BN_clear_free(sig->r);
++ BN_clear_free(sig->s);
++ sig->r = r;
++ sig->s = s;
++ return 1;
++}
++
++EVP_MD_CTX *EVP_MD_CTX_new(void)
++{
++ return OPENSSL_zalloc(sizeof(EVP_MD_CTX));
++}
++
++static void OPENSSL_clear_free(void *str, size_t num)
++{
++ if (str == NULL)
++ return;
++ if (num)
++ OPENSSL_cleanse(str, num);
++ OPENSSL_free(str);
++}
++
++/* This call frees resources associated with the context */
++int EVP_MD_CTX_reset(EVP_MD_CTX *ctx)
++{
++ if (ctx == NULL)
++ return 1;
++
++ /*
++ * Don't assume ctx->md_data was cleaned in EVP_Digest_Final, because
++ * sometimes only copies of the context are ever finalised.
++ */
++ if (ctx->digest && ctx->digest->cleanup
++ && !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_CLEANED))
++ ctx->digest->cleanup(ctx);
++ if (ctx->digest && ctx->digest->ctx_size && ctx->md_data
++ && !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE)) {
++ OPENSSL_clear_free(ctx->md_data, ctx->digest->ctx_size);
++ }
++ EVP_PKEY_CTX_free(ctx->pctx);
++#ifndef OPENSSL_NO_ENGINE
++ ENGINE_finish(ctx->engine);
++#endif
++ OPENSSL_cleanse(ctx, sizeof(*ctx));
++
++ return 1;
++}
++
++void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
++{
++ EVP_MD_CTX_reset(ctx);
++ OPENSSL_free(ctx);
++}
++
++HMAC_CTX *HMAC_CTX_new(void)
++{
++ HMAC_CTX *ctx = OPENSSL_zalloc(sizeof(HMAC_CTX));
++
++ if (ctx != NULL) {
++ if (!HMAC_CTX_reset(ctx)) {
++ HMAC_CTX_free(ctx);
++ return NULL;
++ }
++ }
++ return ctx;
++}
++
++static void hmac_ctx_cleanup(HMAC_CTX *ctx)
++{
++ EVP_MD_CTX_reset(&ctx->i_ctx);
++ EVP_MD_CTX_reset(&ctx->o_ctx);
++ EVP_MD_CTX_reset(&ctx->md_ctx);
++ ctx->md = NULL;
++ ctx->key_length = 0;
++ OPENSSL_cleanse(ctx->key, sizeof(ctx->key));
++}
++
++void HMAC_CTX_free(HMAC_CTX *ctx)
++{
++ if (ctx != NULL) {
++ hmac_ctx_cleanup(ctx);
++#if OPENSSL_VERSION_NUMBER > 0x10100000L
++ EVP_MD_CTX_free(&ctx->i_ctx);
++ EVP_MD_CTX_free(&ctx->o_ctx);
++ EVP_MD_CTX_free(&ctx->md_ctx);
++#endif
++ OPENSSL_free(ctx);
++ }
++}
++
++int HMAC_CTX_reset(HMAC_CTX *ctx)
++{
++ HMAC_CTX_init(ctx);
++ return 1;
++}
++
++#ifndef HAVE_OPENSSL_EVP_CIPHER_CTX_NEW
++EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void)
++{
++ return OPENSSL_zalloc(sizeof(EVP_CIPHER_CTX));
++}
++
++void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
++{
++ /* EVP_CIPHER_CTX_reset(ctx); alias */
++ EVP_CIPHER_CTX_init(ctx);
++ OPENSSL_free(ctx);
++}
++#endif
+--- /dev/null
++++ b/src/libcrypto-compat.h
+@@ -0,0 +1,42 @@
++#ifndef LIBCRYPTO_COMPAT_H
++#define LIBCRYPTO_COMPAT_H
++
++#include <openssl/opensslv.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <openssl/rsa.h>
++#include <openssl/dsa.h>
++#include <openssl/ecdsa.h>
++#include <openssl/dh.h>
++#include <openssl/evp.h>
++#include <openssl/hmac.h>
++
++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp);
++void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d);
++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q);
++void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp);
++
++void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
++int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g);
++void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key);
++int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key);
++
++void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps);
++int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s);
++
++void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps);
++int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s);
++
++int EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
++EVP_MD_CTX *EVP_MD_CTX_new(void);
++void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
++
++HMAC_CTX *HMAC_CTX_new(void);
++int HMAC_CTX_reset(HMAC_CTX *ctx);
++void HMAC_CTX_free(HMAC_CTX *ctx);
++
++#endif /* OPENSSL_VERSION_NUMBER */
++
++#endif /* LIBCRYPTO_COMPAT_H */
include $(TOPDIR)/rules.mk
PKG_NAME:=libstrophe
-PKG_VERSION:=0.9.1
+PKG_VERSION:=0.9.2
PKG_RELEASE=1
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Chih-Wei Chen <changeway@gmail.com>
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=https://github.com/strophe/libstrophe
-PKG_SOURCE_SUBDIR=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=https://codeload.github.com/strophe/libstrophe/tar.gz/$(PKG_VERSION)?
PKG_SOURCE_VERSION:=9931ad4fa2aa7f204c608010eb2ebf84bcf7d542
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=6a499bcfc7c52db6765957ff38f48a344ad121ac0b665fd3d4adb7d8deadc427
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=158145bc1565a5fd0bbd7f57e3e15d768e58b8a460897ab5918a5a689d67ae6f
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=talloc
-PKG_VERSION:=2.1.11
+PKG_VERSION:=2.1.13
MAJOR_VERSION:=2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://www.samba.org/ftp/talloc/
-PKG_HASH:=639eb35556a0af999123c4d883e79be05ff9f00ab4f9e4ac2e5775f9c5eeeed3
+PKG_SOURCE_URL:=https://www.samba.org/ftp/talloc
+PKG_HASH:=84f399dbf0ad97006a2b4953ea99452d033faac15aabfddd4ba61734764c6047
PKG_MAINTAINER:=Lucile Quirion <lucile.quirion@savoirfairelinux.com>
PKG_LICENSE:=LGPL-3.0+
include $(TOPDIR)/rules.mk
PKG_NAME:=libtasn1
-PKG_VERSION:=4.12
+PKG_VERSION:=4.13
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=6753da2e621257f33f5b051cc114d417e5206a0818fe0b1ecfd6153f70934753
+PKG_HASH:=7e528e8c317ddd156230c4e31d082cd13e7ddeb7a54824be82632209550c8cca
PKG_LICENSE:=LGPLv2.1+
PKG_LICENSE_FILES:=COPYING.LIB
PKG_NAME:=libtorrent
PKG_VERSION:=0.13.6-git-1
-PKG_RELEASE=$(PKG_SOURCE_VERSION)
+PKG_RELEASE=$(PKG_SOURCE_VERSION).1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/rakshasa/libtorrent.git
--- /dev/null
+From 4607bbf78040789dee29266878ce109136b984ef Mon Sep 17 00:00:00 2001
+From: rakshasa <sundell.software@gmail.com>
+Date: Tue, 20 Dec 2016 19:51:02 +0900
+Subject: [PATCH] Added support for openssl 1.1.
+
+---
+ configure.ac | 4 ++++
+ src/utils/diffie_hellman.cc | 36 ++++++++++++++++++++++++++++++++++--
+ 2 files changed, 38 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 65e34872..27e33570 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -69,12 +69,15 @@ AC_ARG_ENABLE(openssl,
+ [ --disable-openssl Don't use OpenSSL's SHA1 implementation.],
+ [
+ if test "$enableval" = "yes"; then
++dnl move to scripts.
+ PKG_CHECK_MODULES(OPENSSL, libcrypto,
+ CXXFLAGS="$CXXFLAGS $OPENSSL_CFLAGS";
+ LIBS="$LIBS $OPENSSL_LIBS")
+
+ AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
+ AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
++ AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
++
+ else
+ AC_DEFINE(USE_NSS_SHA, 1, Using Mozilla's SHA1 implementation.)
+ fi
+@@ -85,6 +88,7 @@ AC_ARG_ENABLE(openssl,
+
+ AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
+ AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
++ AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
+ ]
+ )
+
+diff --git a/src/utils/diffie_hellman.cc b/src/utils/diffie_hellman.cc
+index aa653d45..7ec13165 100644
+--- a/src/utils/diffie_hellman.cc
++++ b/src/utils/diffie_hellman.cc
+@@ -54,11 +54,23 @@ DiffieHellman::DiffieHellman(const unsigned char *prime, int primeLength,
+ m_secret(NULL), m_size(0) {
+
+ #ifdef USE_OPENSSL
++
+ m_dh = DH_new();
++
++#ifdef USE_OPENSSL_1_1
++ BIGNUM * const dh_p = BN_bin2bn(prime, primeLength, NULL);
++ BIGNUM * const dh_g = BN_bin2bn(generator, generatorLength, NULL);
++
++ if (dh_p == NULL || dh_g == NULL ||
++ !DH_set0_pqg(m_dh, dh_p, NULL, dh_g))
++ throw internal_error("Could not generate Diffie-Hellman parameters");
++#else
+ m_dh->p = BN_bin2bn(prime, primeLength, NULL);
+ m_dh->g = BN_bin2bn(generator, generatorLength, NULL);
++#endif
+
+ DH_generate_key(m_dh);
++
+ #else
+ throw internal_error("Compiled without encryption support.");
+ #endif
+@@ -74,7 +86,19 @@ DiffieHellman::~DiffieHellman() {
+ bool
+ DiffieHellman::is_valid() const {
+ #ifdef USE_OPENSSL
++ if (m_dh == NULL)
++ return false;
++
++#ifdef USE_OPENSSL_1_1
++ const BIGNUM *pub_key;
++
++ DH_get0_key(m_dh, &pub_key, NULL);
++
++ return pub_key != NULL;
++#else
+ return m_dh != NULL && m_dh->pub_key != NULL;
++#endif
++
+ #else
+ return false;
+ #endif
+@@ -103,8 +127,16 @@ DiffieHellman::store_pub_key(unsigned char* dest, unsigned int length) {
+ #ifdef USE_OPENSSL
+ std::memset(dest, 0, length);
+
+- if ((int)length >= BN_num_bytes(m_dh->pub_key))
+- BN_bn2bin(m_dh->pub_key, dest + length - BN_num_bytes(m_dh->pub_key));
++ const BIGNUM *pub_key;
++
++#ifdef USE_OPENSSL_1_1
++ DH_get0_key(m_dh, &pub_key, NULL);
++#else
++ pub_key = m_dh->pub_key;
++#endif
++
++ if ((int)length >= BN_num_bytes(pub_key))
++ BN_bn2bin(pub_key, dest + length - BN_num_bytes(pub_key));
+ #endif
+ }
+
include $(TOPDIR)/rules.mk
PKG_NAME:=libuv
-PKG_VERSION:=1.19.2
+PKG_VERSION:=1.20.3
PKG_RELEASE:=1
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://dist.libuv.org/dist/v$(PKG_VERSION)/
-PKG_HASH:=7cbcf2017e7116cf9da8ec1c6a146d578536b1e479458438873c991f984a53d7
+PKG_HASH:=3bb7aad916c7a5fd0053dcb6adee49905360a2a160f4a59bc62dbe4370328579
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=libuwsc
-PKG_VERSION:=2.0.2
+PKG_VERSION:=2.0.4
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_SOURCE_URL=https://github.com/zhaojh329/libuwsc.git
-PKG_MIRROR_HASH:=8f384a41aa9adf50fefa933a01b695d1bb6505af03d6c0cb3506283fc0229b34
+PKG_MIRROR_HASH:=91c5964088d6df591e10c40deffef0be47f5c06896fcf27a7afe83c8e49b1a74
CMAKE_INSTALL:=1
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
include $(TOPDIR)/rules.mk
PKG_NAME:=libwebsockets
-PKG_VERSION:=2.4.1
-PKG_RELEASE:=2
+PKG_VERSION:=3.0.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://codeload.github.com/warmcat/libwebsockets/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=29414be4f79f6abc0e6aadccd09a4da0f0c431e3b5691f496acd081ae6a8240c
-
+PKG_HASH:=a6b611c212c52f161f70556339fdaa199b7e9b6a167c4638e086d19db75d6290
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
+++ /dev/null
-From d7b6c04aaf416344332e73f49fe457013e3ccf36 Mon Sep 17 00:00:00 2001
-From: Alexander Couzens <lynxis@fe80.eu>
-Date: Sun, 10 Dec 2017 00:54:06 +0100
-Subject: [PATCH] CMakeLists: build reproducible by default
-Merged-upstream: yes
-
-Using the build user and build hostname as part of the git hash breaks
-reproducible builds. Make this part optional, but build reproducible by
-default.
----
- CMakeLists.txt | 47 +++++++++++++++++++++++++++--------------------
- 1 file changed, 27 insertions(+), 20 deletions(-)
-
-Index: libwebsockets-2.4.0/CMakeLists.txt
-===================================================================
---- libwebsockets-2.4.0.orig/CMakeLists.txt
-+++ libwebsockets-2.4.0/CMakeLists.txt
-@@ -39,26 +39,32 @@ message(STATUS "CMAKE_TOOLCHAIN_FILE='${
- find_package(Git)
- if(GIT_EXECUTABLE)
- execute_process(
-- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-- COMMAND "${GIT_EXECUTABLE}" describe
-- OUTPUT_VARIABLE GIT_HASH
-- OUTPUT_STRIP_TRAILING_WHITESPACE
-- )
-- execute_process(
-- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-- COMMAND "whoami"
-- OUTPUT_VARIABLE GIT_USER
-- OUTPUT_STRIP_TRAILING_WHITESPACE
-- )
-- execute_process(
-- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-- COMMAND "hostname"
-- OUTPUT_VARIABLE GIT_HOST
-- OUTPUT_STRIP_TRAILING_WHITESPACE
-- )
-- string(REGEX REPLACE "([^\\])[\\]([^\\])" "\\1\\\\\\\\\\2" GIT_USER ${GIT_USER})
-- set(LWS_BUILD_HASH ${GIT_USER}@${GIT_HOST}-${GIT_HASH})
-- message("Git commit hash: ${LWS_BUILD_HASH}")
-+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-+ COMMAND "${GIT_EXECUTABLE}" describe
-+ OUTPUT_VARIABLE GIT_HASH
-+ OUTPUT_STRIP_TRAILING_WHITESPACE
-+ )
-+ set(LWS_BUILD_HASH ${GIT_HASH})
-+
-+ # appen the build user and hostname
-+ if(NOT LWS_REPRODUCIBLE)
-+ execute_process(
-+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-+ COMMAND "whoami"
-+ OUTPUT_VARIABLE GIT_USER
-+ OUTPUT_STRIP_TRAILING_WHITESPACE
-+ )
-+ execute_process(
-+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-+ COMMAND "hostname"
-+ OUTPUT_VARIABLE GIT_HOST
-+ OUTPUT_STRIP_TRAILING_WHITESPACE
-+ )
-+ string(REGEX REPLACE "([^\\])[\\]([^\\])" "\\1\\\\\\\\\\2" GIT_USER ${GIT_USER})
-+ set(LWS_BUILD_HASH ${GIT_USER}@${GIT_HOST}-${GIT_HASH})
-+ endif()
-+
-+ message("Git commit hash: ${LWS_BUILD_HASH}")
- endif()
-
- set(LWS_WITH_BUNDLED_ZLIB_DEFAULT OFF)
-@@ -121,6 +127,7 @@ option(LWS_AVOID_SIGPIPE_IGN "Android 7+
- option(LWS_WITH_STATS "Keep statistics of lws internal operations" OFF)
- option(LWS_WITH_SOCKS5 "Allow use of SOCKS5 proxy on client connections" OFF)
- option(LWS_WITH_PEER_LIMITS "Track peers and restrict resources a single peer can allocate" OFF)
-+option(LWS_REPRODUCIBLE "Build libwebsockets reproducible. It removes the build user and hostname from the build" ON)
-
- macro(confirm_command CMD NOCMD)
- find_program (HAVE_CMD_${CMD} ${CMD} )
--- /dev/null
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b260969..ece281d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1050,9 +1050,9 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_C_COMPILER_ID
+ endif()
+
+ if (UNIX AND NOT LWS_WITH_ESP32)
+- set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized -Werror ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
++ set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
+ else()
+- set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized -Werror ${VISIBILITY_FLAG} ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
++ set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized ${VISIBILITY_FLAG} ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
+ endif()
+ endif ()
+
PKG_NAME:=x264
PKG_VERSION:=snapshot-20180401-2245
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://download.videolan.org/x264/snapshots/
CONFIGURE_ARGS += --disable-asm
else
ifneq ($(CONFIG_TARGET_x86),)
-ifeq ($(CONFIG_YASM),y)
- CONFIGURE_VARS+= AS=yasm
- MAKE_FLAGS+= AS=yasm
+ifeq ($(CONFIG_NASM),y)
+ CONFIGURE_VARS+= AS=nasm
+ MAKE_FLAGS+= AS=nasm
else
CONFIGURE_VARS+= AS=
MAKE_FLAGS+= AS=
include $(TOPDIR)/rules.mk
PKG_NAME:=libyang
-PKG_VERSION:=0.14.53
+PKG_VERSION:=0.15.130
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=GPL-2.0+
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=2698bd6484526facbf82b1263810b938b82a2f23
-PKG_MIRROR_HASH:=3bfe4fd8236f0d1903d275aa76e039645d1093ef4204ab3b9bef46aecbe68f72
+PKG_SOURCE_VERSION:=d6baaf90e24af3b07649e9dda6fc0d9b272b2ebc
+PKG_MIRROR_HASH:=eace667ae787ac27b7c717a52f672d05e55608c47d9e54d39d60f8ab5e47f0c9
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/CESNET/libyang.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libyang.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/libyang
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang/* $(1)/usr/lib/libyang/
+ $(INSTALL_DIR) $(1)/usr/lib/libyang/extensions
+ $(INSTALL_DIR) $(1)/usr/lib/libyang/user_types
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang/extensions/* $(1)/usr/lib/libyang/extensions
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang/user_types/* $(1)/usr/lib/libyang/user_types
endef
define Package/yanglint/install
+++ /dev/null
-Index: libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23/src/extensions.c
-===================================================================
---- libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23.orig/src/extensions.c
-+++ libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23/src/extensions.c
-@@ -123,11 +123,14 @@ lyext_load_plugins(void)
-
- /* and construct the filepath */
- asprintf(&str, "%s/%s", pluginsdir, file->d_name);
--
-- /* load the plugin - first, try if it is already loaded... */
-- dlhandler = dlopen(str, RTLD_NOW | RTLD_NOLOAD);
-- dlerror(); /* Clear any existing error */
-- if (dlhandler) {
-+ /* load the plugin */
-+ dlhandler = dlopen(str, RTLD_NOW);
-+ if (!dlhandler) {
-+ LOGERR(LY_ESYS, "Loading \"%s\" as a plugin failed (%s).", str, dlerror());
-+ free(str);
-+ continue;
-+ }
-+ if (ly_set_contains(&dlhandlers, dlhandler) != -1) {
- /* the plugin is already loaded */
- LOGVRB("Extension plugin \"%s\" already loaded.", str);
- free(str);
-@@ -137,14 +140,6 @@ lyext_load_plugins(void)
- continue;
- }
-
-- /* ... and if not, load it */
-- dlhandler = dlopen(str, RTLD_NOW);
-- if (!dlhandler) {
-- LOGERR(LY_ESYS, "Loading \"%s\" as an extension plugin failed (%s).", str, dlerror());
-- free(str);
-- continue;
-- }
-- LOGVRB("Extension plugin \"%s\" successfully loaded.", str);
- free(str);
- dlerror(); /* Clear any existing error */
-
-@@ -156,6 +151,7 @@ lyext_load_plugins(void)
- dlclose(dlhandler);
- continue;
- }
-+ LOGVRB("Plugin \"%s\" successfully loaded.", str)
-
- for(u = 0; plugin[u].name; u++) {
- /* check extension implementations for collisions */
PKG_NAME:=libzdb
PKG_VERSION:=3.1
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_LICENSE:=GPL-3.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
include $(INCLUDE_DIR)/package.mk
+# Help libzdb find libiconv.so when using uClibc.
+ifneq ($(CONFIG_USE_UCLIBC),)
+TARGET_CPPFLAGS+= \
+ -I$(STAGING_DIR)/usr/lib/libiconv-full/include
+TARGET_LDFLAGS += \
+ -L$(STAGING_DIR)/usr/lib/libiconv-full/lib
+endif
+
define Package/libzdb
SECTION:=libs
CATEGORY:=Libraries
- DBCPPFLAGS="$DBCPPFLAGS `$MYSQLCONFIG --include`"
- DBLDFLAGS="$DBLDFLAGS `$MYSQLCONFIG --libs`"
+ DBCPPFLAGS="$DBCPPFLAGS -I$STAGING_DIR/usr/include/mysql"
-+ DBLDFLAGS="$DBLDFLAGS -L$STAGING_DIR/usr/lib/mysql -L$STAGING_DIR/usr/lib -lmysqlclient -lz -lcrypt -lm"
++ DBLDFLAGS="$DBLDFLAGS -L$STAGING_DIR/usr/lib/mysql -L$STAGING_DIR/usr/lib -lmysqlclient -liconv -lz -lcrypt -lm"
AC_DEFINE([HAVE_LIBMYSQLCLIENT], 1, [Define to 1 to enable mysql])
else
CPPFLAGS=$svd_CPPFLAGS
include $(TOPDIR)/rules.mk
PKG_NAME:=mxml
-PKG_VERSION:=2.10
+PKG_VERSION:=2.11
PKG_RELEASE:=1
-PKG_HASH:=267ff58b64ddc767170d71dab0c729c06f45e1df9a9b6f75180b564f09767891
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/michaelrsweet/mxml/releases/download/release-$(PKG_VERSION)/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/michaelrsweet/mxml.git
+PKG_SOURCE_VERSION:=7b0bb60e51d39b2aaa8e8ca5bf9f3c38e63d643b
+PKG_MIRROR_HASH:=e6f38a91f420c0bc64f892163049c37c5cc7744bffbcb05ad1fddec7b34ea438
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
PKG_FIXUP:=autoreconf
PKG_MAINTAINER:=Espen Jürgensen <espenjurgensen+openwrt@gmail.com>
+++ /dev/null
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -88,7 +88,7 @@ PUBLIBOBJS = mxml-attr.o mxml-entity.o m
- mxml-index.o mxml-node.o mxml-search.o mxml-set.o
- LIBOBJS = $(PUBLIBOBJS) mxml-private.o mxml-string.o
- OBJS = mxmldoc.o testmxml.o $(LIBOBJS)
--TARGETS = $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man
-+TARGETS = $(LIBMXML)
-
-
- #
include $(TOPDIR)/rules.mk
PKG_NAME:=openldap
-PKG_VERSION:=2.4.45
-PKG_RELEASE:=2
+PKG_VERSION:=2.4.46
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/ \
- ftp://sunsite.cnlab-switch.ch/mirror/OpenLDAP/openldap-release/ \
- ftp://ftp.nl.uu.net/pub/unix/db/openldap/openldap-release/ \
- ftp://ftp.plig.org/pub/OpenLDAP/openldap-release/
-PKG_HASH:=cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824
+PKG_SOURCE_URL:=https://gpl.savoirfairelinux.net/pub/mirrors/openldap/openldap-release/ \
+ http://mirror.eu.oneandone.net/software/openldap/openldap-release/ \
+ http://mirror.switch.ch/ftp/software/mirror/OpenLDAP/openldap-release/ \
+ https://www.openldap.org/software/download/OpenLDAP/openldap-release/
+PKG_HASH:=9a90dcb86b99ae790ccab93b7585a31fbcbeec8c94bf0f7ab0ca0a87ea0c4b2d
PKG_LICENSE:=OLDAP-2.8
PKG_LICENSE_FILES:=LICENSE
/etc/openldap/slapd.conf
endef
-TARGET_CFLAGS += $(FPIC) -lpthread
+TARGET_CFLAGS += $(FPIC) -lpthread \
+ -DURANDOM_DEVICE=\\\"/dev/urandom\\\"
CONFIGURE_ARGS += \
--enable-shared \
include $(TOPDIR)/rules.mk
PKG_NAME:=p11-kit
-PKG_VERSION:=0.23.10
+PKG_VERSION:=0.23.12
PKG_RELEASE:=1
PKG_MAINTAINER:=Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=f9212a3f225ef543e13fae9945527d66c0cbb67246320035dd94fab2bce5ae43
+PKG_HASH:=58bae22f19db1de1a1103e7ca4149eed6e303e727878c2cd5ea9e6fe445fd403
PKG_SOURCE_URL:=https://github.com/p11-glue/$(PKG_NAME)/releases/download/$(PKG_VERSION)
+PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
--- /dev/null
+From dec5f888a457e36d81065ebc69f7d8d966be527d Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <dueno@redhat.com>
+Date: Thu, 31 May 2018 11:02:51 +0200
+Subject: [PATCH] build: Ease issetugid() check when cross-compiling
+
+When cross-compiling, the configure check for issetugid() aborts,
+because of the pessimistic default of AC_RUN_IFELSE. This patch
+provides the non-pessimistic default to AC_RUN_IFELSE and wrap the
+macro invocation with AC_CACHE_CHECK so that the user can override the
+check by setting ac_cv_issetugid_openbsd=yes, as suggested in:
+https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Runtime.html#Runtime
+---
+ configure.ac | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e99a3c7..bd6ece0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -115,15 +115,17 @@ if test "$os_unix" = "yes"; then
+
+ # Check if issetugid() is available and has compatible behavior with OpenBSD
+ AC_CHECK_FUNCS([issetugid], [
+- AC_MSG_CHECKING([whether issetugid() can detect setuid/setgid])
+- issetugid_openbsd=no
+- AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]],
+- [[return issetugid ();]])],
+- [chmod 02777 ./conftest$EXEEXT; ./conftest$EXEEXT || issetugid_openbsd=yes])
+- if test "$issetugid_openbsd" = yes; then
++ AC_CACHE_CHECK([whether issetugid() can detect setuid/setgid],
++ [ac_cv_issetugid_openbsd],
++ [ac_cv_issetugid_openbsd=no
++ AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]],
++ [[return issetugid ();]])],
++ [chmod 02777 ./conftest$EXEEXT; ./conftest$EXEEXT || ac_cv_issetugid_openbsd=yes],
++ [ac_cv_issetugid_openbsd=no],
++ [ac_cv_issetugid_openbsd="guessing no"])])
++ if test "$ac_cv_issetugid_openbsd" = yes; then
+ AC_DEFINE([HAVE_ISSETUGID_OPENBSD], [1], [Whether issetugid() has compatible behavior with OpenBSD])
+ fi
+- AC_MSG_RESULT([$issetugid_openbsd])
+ ])
+
+ # Required functions
+--
+2.17.1
+
include $(TOPDIR)/rules.mk
PKG_NAME:=pcre
-PKG_VERSION:=8.41
-PKG_RELEASE:=2
+PKG_VERSION:=8.42
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=e62c7eac5ae7c0e7286db61ff82912e1c0b7a0c13706616e94a7dd729321b530
+PKG_HASH:=2cd04b7c887808be030254e8d77de11d3fe9d4505c39d4b15d2664ffe8bf9301
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=BSD-3-Clause
include $(TOPDIR)/rules.mk
PKG_NAME:=pcre2
-PKG_VERSION:=10.30
+PKG_VERSION:=10.31
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=90bd41c605d30e3745771eb81928d779f158081a51b2f314bbcc1f73de5773db
+PKG_SOURCE_URL:=@SF/$(PKG_NAME) \
+ ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre
+PKG_HASH:=e07d538704aa65e477b6a392b32ff9fc5edf75ab9a40ddfc876186c4ff4d68ac
PKG_MAINTAINER:=Shane Peelar <lookatyouhacker@gmail.com>
PKG_LICENSE:=BSD-3-Clause
include $(TOPDIR)/rules.mk
PKG_NAME:=libprotobuf-c
-PKG_VERSION:=v1.2.1
-PKG_RELEASE:=$(PKG_SOURCE_VERSION)
+PKG_VERSION:=v1.3.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_MIRROR_HASH:=2ebe48454fe454d118cf952655a24477c4bed892cee7ae085dc56d05ac711a8a
+PKG_MIRROR_HASH:=596b8cfa47d66cf4278229b780125e199bc0df08defe849654b1ffb5e52b0c03
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=git://github.com/protobuf-c/protobuf-c.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=$(PKG_VERSION)
PKG_BUILD_DEPENDS:=protobuf-c/host
+HOST_BUILD_DEPENDS:=protobuf/host
PKG_INSTALL:=1
PKG_FIXUP:=autoreconf
PKG_NAME:=tdb
PKG_VERSION:=1.3.15
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=GPL-2.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
define Package/tdb/install
$(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=xmlrpc-c
-PKG_VERSION:=1.39.12
+PKG_VERSION:=1.39.13
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=@SF/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(PKG_VERSION)
-PKG_HASH:=d830f3264a832dfe09f629cc64036acfd08121692526d0fabe090f7ff881ce08
+PKG_HASH:=491e44cae3763d285fc2a75fe6574882964f16451adbb7e6f3293916e120fca9
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=VARIOUS
include $(TOPDIR)/rules.mk
PKG_NAME:=yaml
-PKG_VERSION:=0.1.6
+PKG_VERSION:=0.1.7
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://pyyaml.org/download/libyaml/
-PKG_HASH:=7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749
+PKG_SOURCE_URL:=https://pyyaml.org/download/libyaml/
+PKG_HASH:=8088e457264a98ba451a90b8661fcb4f9d6f478f7265d48322a196cec2480729
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=zeromq
-PKG_VERSION:=4.1.4
+PKG_VERSION:=4.1.6
PKG_RELEASE:=1
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=GPL-3.0+
PKG_LICENSE_FILES:=LICENCE.txt
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:= https://github.com/zeromq/zeromq4-1/releases/download/v$(PKG_VERSION)/
-PKG_HASH:=e99f44fde25c2e4cb84ce440f87ca7d3fe3271c2b8cfbc67d55e4de25e6fe378
+PKG_SOURCE_URL:=https://github.com/zeromq/zeromq4-1/releases/download/v$(PKG_VERSION)
+PKG_HASH:=02ebf60a43011e770799336365bcbce2eb85569e9b5f52aa0d8cc04672438a0a
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
$(call Package/libzmq/default)
VARIANT:=curve
TITLE+= (CurveZMQ)
- DEPENDS+=+libsodium
+ DEPENDS+=+libsodium
endef
define Package/libzmq-nc/description
--- a/configure.ac
+++ b/configure.ac
-@@ -148,8 +148,10 @@ case "${host_os}" in
+@@ -150,8 +150,10 @@ case "${host_os}" in
*linux*)
# Define on Linux to enable all library features. Define if using a gnu compiler
if test "x$GXX" = "xyes"; then
--- a/src/stream_engine.cpp
+++ b/src/stream_engine.cpp
-@@ -208,7 +208,7 @@ void zmq::stream_engine_t::plug (io_thre
+@@ -208,7 +208,7 @@ void zmq::stream_engine_t::plug (io_thread_t *io_thread_,
// Compile metadata.
typedef metadata_t::dict_t properties_t;
properties_t properties;
zmq_assert (metadata == NULL);
metadata = new (std::nothrow) metadata_t (properties);
}
-@@ -815,7 +815,7 @@ void zmq::stream_engine_t::mechanism_rea
+@@ -815,7 +815,7 @@ void zmq::stream_engine_t::mechanism_ready ()
// If we have a peer_address, add it to metadata
if (!peer_address.empty()) {
include $(TOPDIR)/rules.mk
PKG_NAME:=alpine
-PKG_VERSION:=2.20
-PKG_RELEASE:=2
+PKG_VERSION:=2.21.999
+PKG_RELEASE:=1
-PKG_SOURCE_URL:=http://patches.freeiz.com/alpine/release/src/
+PKG_SOURCE_PROTO:=git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=ed639b6e5bb97e6b0645c85262ca6a784316195d461ce8d8411999bf80449227
+PKG_SOURCE_URL:=http://repo.or.cz/alpine.git
+PKG_SOURCE_VERSION:=349642a84039a4b026513c32a3b4f8594acd50df
+PKG_MIRROR_HASH:=8db14c4ae14329a7cffc8ea5099b7fa5c7adf79ca03893b23b1a8c45b847e5af
PKG_MAINTAINER:=Antti Seppälä <a.seppala@gmail.com>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
+PKG_FIXUP:=autoreconf
+
PKG_INSTALL:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+++ /dev/null
-diff -Nru alpine-2.20-orig/configure alpine-2.20/configure
---- alpine-2.20-orig/configure 2015-01-18 09:00:42.100645053 +0200
-+++ alpine-2.20/configure 2015-01-25 12:01:11.831015443 +0200
-@@ -17643,10 +17643,8 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Openssl library version >= 1.0.1c" >&5
- $as_echo_n "checking Openssl library version >= 1.0.1c... " >&6; }
- if test "$cross_compiling" = yes; then :
-- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cross compiling: not checking" >&5
-+$as_echo "$as_me: WARNING: cross compiling: not checking" >&2;}
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-diff -Nru alpine-2.20-orig/configure.ac alpine-2.20/configure.ac
---- alpine-2.20-orig/configure.ac 2015-01-18 08:38:08.893495949 +0200
-+++ alpine-2.20/configure.ac 2015-01-25 12:01:02.773015236 +0200
-@@ -1370,7 +1370,8 @@
- }
- ]])],
- [ AC_MSG_RESULT(yes) ],
-- [ alpine_SSLTYPE="none" ])
-+ [ alpine_SSLTYPE="none" ],
-+ [ AC_MSG_WARN([cross compiling: not checking])])
-
- if test "x$alpine_SSLTYPE" = "xnone" ; then
- AC_MSG_ERROR(Install openssl version >= 1.0.1c)
include $(TOPDIR)/rules.mk
PKG_NAME:=dovecot
-PKG_VERSION:=2.2.35
+PKG_VERSION:=2.3.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.dovecot.org/releases/2.2
-PKG_HASH:=cce15db2fc5233386b63a3cf21c465c09e6e55014ed66c4f184b7d221a47180c
+PKG_SOURCE_URL:=https://www.dovecot.org/releases/2.3
+PKG_HASH:=6e48f0fa60768427f03035b0a3e93d1ae29b972bb2bd9ca998ccc6a0f6dae393
PKG_LICENSE:=LGPL-2.1 MIT BSD-3-Clause Unique
PKG_LICENSE_FILES:=COPYING COPYING.LGPL COPYING.MIT
PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
CATEGORY:=Mail
DEPENDS:=+DOVECOT_GSSAPI:krb5-libs +DOVECOT_LDAP:libopenldap +DOVECOT_MYSQL:libmysqlclient +DOVECOT_PGSQL:libpq +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap +DOVECOT_ICU:icu
TITLE:=An IMAP and POP3 daemon
- URL:=http://www.dovecot.org/
+ URL:=https://www.dovecot.org/
USERID:=dovecot=59:dovecot=59
ABI_VERSION:=$(PKG_VERSION)
endef
--with-notify=dnotify \
--without-lzma \
--without-lz4 \
+ --without-sodium \
$(if $(CONFIG_DOVECOT_GSSAPI),--with-gssapi=yes,--with-gssapi=no) \
$(if $(CONFIG_DOVECOT_LDAP),--with-ldap=yes,--with-ldap=no) \
$(if $(CONFIG_DOVECOT_MYSQL),--with-mysql=yes,--with-mysql=no) \
-diff -u --recursive dovecot-2.2.35-vanilla/configure.ac dovecot-2.2.35/configure.ac
---- dovecot-2.2.35-vanilla/configure.ac 2018-03-19 08:22:42.000000000 -0400
-+++ dovecot-2.2.35/configure.ac 2018-05-25 10:41:36.122503480 -0400
-@@ -490,9 +490,10 @@
-
- if test "$ioloop" = "best" || test "$ioloop" = "epoll"; then
- AC_CACHE_CHECK([whether we can use epoll],i_cv_epoll_works,[
+diff -u --recursive dovecot-2.3.1-vanilla/m4/fd_passing.m4 dovecot-2.3.1/m4/fd_passing.m4
+--- dovecot-2.3.1-vanilla/m4/fd_passing.m4 2018-06-08 20:02:15.849850956 -0400
++++ dovecot-2.3.1/m4/fd_passing.m4 2018-06-08 20:04:28.947016370 -0400
+@@ -8,7 +8,7 @@
+ CFLAGS="$CFLAGS -DBUGGY_CMSG_MACROS"
+ fi
+
+- AC_TRY_RUN([
++ AC_TRY_LINK([
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/wait.h>
+@@ -16,7 +16,7 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include "fdpass.h"
+-
++ ], [
+ static
+ int nopen(void)
+ {
+diff -u --recursive dovecot-2.3.1-vanilla/m4/glibc.m4 dovecot-2.3.1/m4/glibc.m4
+--- dovecot-2.3.1-vanilla/m4/glibc.m4 2018-06-08 20:02:15.850850957 -0400
++++ dovecot-2.3.1/m4/glibc.m4 2018-06-08 20:04:00.780981363 -0400
+@@ -17,7 +17,7 @@
+ dnl * Old glibcs have broken posix_fallocate(). Make sure not to use it.
+ dnl * It may also be broken in AIX.
+ AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
- AC_TRY_RUN([
+ AC_TRY_LINK([
- #include <sys/epoll.h>
+ #define _XOPEN_SOURCE 600
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -26,6 +26,7 @@
+ #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7)
+ possibly broken posix_fallocate
+ #endif
++ ], [
+ int main() {
+ int fd = creat("conftest.temp", 0600);
+ int ret;
+diff -u --recursive dovecot-2.3.1-vanilla/m4/ioloop.m4 dovecot-2.3.1/m4/ioloop.m4
+--- dovecot-2.3.1-vanilla/m4/ioloop.m4 2018-06-08 20:02:15.850850957 -0400
++++ dovecot-2.3.1/m4/ioloop.m4 2018-06-08 20:03:31.666945181 -0400
+@@ -4,9 +4,9 @@
+ if test "$ioloop" = "best" || test "$ioloop" = "epoll"; then
+ AC_CACHE_CHECK([whether we can use epoll],i_cv_epoll_works,[
+- AC_TRY_RUN([
++ AC_TRY_LINK([
+ #include <sys/epoll.h>
+-
++ ], [
+ int main()
+ {
+ return epoll_create(5) < 1;
+diff -u --recursive dovecot-2.3.1-vanilla/m4/mmap_write.m4 dovecot-2.3.1/m4/mmap_write.m4
+--- dovecot-2.3.1-vanilla/m4/mmap_write.m4 2018-06-08 20:02:15.850850957 -0400
++++ dovecot-2.3.1/m4/mmap_write.m4 2018-06-08 20:03:27.369939841 -0400
+@@ -1,7 +1,7 @@
+ dnl * If mmap() plays nicely with write()
+ AC_DEFUN([DOVECOT_MMAP_WRITE], [
+ AC_CACHE_CHECK([whether shared mmaps get updated by write()s],i_cv_mmap_plays_with_write,[
+- AC_TRY_RUN([
++ AC_TRY_LINK([
+ #include <stdio.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -9,6 +9,7 @@
+ #include <fcntl.h>
+ #include <sys/mman.h>
+ #include <string.h>
+ ], [
- int main()
- {
- return epoll_create(5) < 1;
-@@ -596,7 +597,7 @@
- dnl * Old glibcs have broken posix_fallocate(). Make sure not to use it.
- dnl * It may also be broken in AIX.
- AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
-- AC_TRY_RUN([
-+ AC_TRY_LINK([
- #define _XOPEN_SOURCE 600
- #include <stdio.h>
- #include <stdlib.h>
-@@ -605,6 +606,7 @@
- #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7)
- possibly broken posix_fallocate
- #endif
-+ ], [
- int main() {
- int fd = creat("conftest.temp", 0600);
- int ret;
-@@ -2059,7 +2061,7 @@
-
- # does the kerberos library support SPNEGO?
- AC_CACHE_CHECK([whether GSSAPI supports SPNEGO],i_cv_gssapi_spnego,[
-- AC_TRY_RUN([
-+ AC_TRY_LINK([
- #ifdef HAVE_GSSAPI_H
- # include <gssapi.h>
- #else
-@@ -2067,6 +2069,7 @@
- #endif
- #include <krb5.h>
- #include <string.h>
-+ ], [
- int main(void) {
- OM_uint32 minor_status;
- gss_OID_set mech_set;
+ int main() {
+ /* return 0 if we're signed */
+ int f = open("conftest.mmap", O_RDWR|O_CREAT|O_TRUNC, 0600);
+diff -u --recursive dovecot-2.3.1-vanilla/m4/want_gssapi.m4 dovecot-2.3.1/m4/want_gssapi.m4
+--- dovecot-2.3.1-vanilla/m4/want_gssapi.m4 2018-06-08 20:02:15.850850957 -0400
++++ dovecot-2.3.1/m4/want_gssapi.m4 2018-06-08 20:04:13.204996804 -0400
+@@ -54,7 +54,7 @@
+
+ # does the kerberos library support SPNEGO?
+ AC_CACHE_CHECK([whether GSSAPI supports SPNEGO],i_cv_gssapi_spnego,[
+- AC_TRY_RUN([
++ AC_TRY_LINK([
+ #ifdef HAVE_GSSAPI_H
+ # include <gssapi.h>
+ #else
+@@ -62,6 +62,7 @@
+ #endif
+ #include <krb5.h>
+ #include <string.h>
++ ], [
+ int main(void) {
+ OM_uint32 minor_status;
+ gss_OID_set mech_set;
PKG_NAME:=fdm
PKG_VERSION:=1.9
-PKG_RELEASE:=2
+PKG_RELEASE:=4
PKG_LICENSE:=BSD-2-Clause
-PKG_SOURCE:=$(PKG_VERSION).zip
-PKG_SOURCE_URL:=https://github.com/nicm/fdm/archive
-PKG_HASH:=ee08f9133657c8c959b738079c2e4f556cf5cca2daa8343feaf4f07698ad6086
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/nicm/fdm/releases/download/$(PKG_VERSION)
+PKG_HASH:=16416c38a9a7e32d187220cc5ae61a51463d5e4e47419c5c513f422523d39914
+PKG_FIXUP:=autoreconf
+
+PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
SECTION:=mail
CATEGORY:=Mail
TITLE:=fetch mail and deliver
- URL:=http://fdm.sourceforge.net/
+ URL:=https://github.com/nicm/fdm
MAINTAINER:=Dmitry V. Zimin <pfzim@mail.ru>
MENU:=1
DEPENDS:=+tdb +zlib +libopenssl +FDM_WITH_PCRE:libpcre
PREFIX="/usr" \
$(if $(CONFIG_FDM_WITH_PCRE),PCRE=1)
-define Build/Prepare
- $(call Build/Prepare/Default)
- $(CP) ./src/compat/* $(PKG_BUILD_DIR)/
-endef
-
-define Build/Configure
- ( cd $(PKG_BUILD_DIR); ./autogen.sh )
- $(call Build/Configure/Default)
-endef
-
define Package/fdm/config
source "$(SOURCE)/Config.in"
endef
+++ /dev/null
---- a/fdm.h 2011-10-10 17:36:29.000000000 +0400
-+++ b/fdm.h 2014-11-13 12:56:59.217083683 +0300
-@@ -719,6 +719,11 @@
- size_t strlcat(char *, const char *, size_t);
- #endif
-
-+int local_b64_ntop(uint8_t const *src, size_t srclength, char *target,
-+ size_t targsize);
-+
-+int local_b64_pton(char const *src, uint8_t *target, size_t targsize);
-+
- /* shm.c */
- char *shm_path(struct shm *);
- void *shm_create(struct shm *, size_t);
+++ /dev/null
---- a/imap-common.c 2011-12-20 00:19:03.000000000 +0400
-+++ b/imap-common.c 2014-11-13 12:56:06.930418446 +0300
-@@ -206,7 +206,7 @@
-
- size = (strlen(in) * 2) + 1;
- out = xcalloc(1, size);
-- if (b64_ntop(in, strlen(in), out, size) < 0) {
-+ if (local_b64_ntop(in, strlen(in), out, size) < 0) {
- xfree(out);
- return (NULL);
- }
-@@ -222,7 +222,7 @@
-
- size = (strlen(in) * 4) + 1;
- out = xcalloc(1, size);
-- if (b64_pton(in, out, size) < 0) {
-+ if (local_b64_pton(in, out, size) < 0) {
- xfree(out);
- return (NULL);
- }
+++ /dev/null
-Index: fdm-1.9/Makefile.am
-===================================================================
---- fdm-1.9.orig/Makefile.am
-+++ fdm-1.9/Makefile.am
-@@ -107,7 +107,9 @@ dist_fdm_SOURCES = \
- xmalloc.c \
- \
- parse.y \
-- lex.c
-+ lex.c \
-+ b64_ntop.c \
-+ b64_pton.c
-
- nodist_fdm_SOURCES =
- if NO_STRLCAT
--- /dev/null
+From eb7461e4ceab14020b3a129d826e4ee86f9da8c6 Mon Sep 17 00:00:00 2001
+From: Nicholas Marriott <nicholas.marriott@gmail.com>
+Date: Tue, 26 Jun 2018 12:19:25 +0100
+Subject: [PATCH] Compat fixes from Rosen Penev.
+
+---
+ Makefile.am | 6 +
+ compat/base64.c | 317 ++++++++++++++++++++++++++++++++++++++++++++++++
+ fdm.h | 18 +++
+ 3 files changed, 343 insertions(+), 2 deletions(-)
+ create mode 100644 compat/base64.c
+
+diff --git a/Makefile.am b/Makefile.am
+index a4ebbf3..fb25d33 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -110,6 +110,9 @@ dist_fdm_SOURCES = \
+ lex.c
+
+ nodist_fdm_SOURCES =
++if NO_B64_NTOP
++nodist_fdm_SOURCES += compat/base64.c
++endif
+ if NO_STRLCAT
+ nodist_fdm_SOURCES += compat/strlcat.c
+ endif
+diff --git a/compat/base64.c b/compat/base64.c
+new file mode 100644
+index 0000000..4e44d6a
+--- /dev/null
++++ b/compat/base64.c
+@@ -0,0 +1,317 @@
++/* $OpenBSD: base64.c,v 1.8 2015/01/16 16:48:51 deraadt Exp $ */
++
++/*
++ * Copyright (c) 1996 by Internet Software Consortium.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ */
++
++/*
++ * Portions Copyright (c) 1995 by International Business Machines, Inc.
++ *
++ * International Business Machines, Inc. (hereinafter called IBM) grants
++ * permission under its copyrights to use, copy, modify, and distribute this
++ * Software with or without fee, provided that the above copyright notice and
++ * all paragraphs of this notice appear in all copies, and that the name of IBM
++ * not be used in connection with the marketing of any product incorporating
++ * the Software or modifications thereof, without specific, written prior
++ * permission.
++ *
++ * To the extent it has a right to do so, IBM grants an immunity from suit
++ * under its patents, if any, for the use, sale or manufacture of products to
++ * the extent that such products are used for performing Domain Name System
++ * dynamic updates in TCP/IP networks by means of the Software. No immunity is
++ * granted for any product per se or for any other function of any product.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
++ */
++
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <arpa/nameser.h>
++
++#include <ctype.h>
++#include <resolv.h>
++#include <stdio.h>
++
++#include <stdlib.h>
++#include <string.h>
++
++#include "fdm.h"
++
++static const char Base64[] =
++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++static const char Pad64 = '=';
++
++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
++ The following encoding technique is taken from RFC 1521 by Borenstein
++ and Freed. It is reproduced here in a slightly edited form for
++ convenience.
++
++ A 65-character subset of US-ASCII is used, enabling 6 bits to be
++ represented per printable character. (The extra 65th character, "=",
++ is used to signify a special processing function.)
++
++ The encoding process represents 24-bit groups of input bits as output
++ strings of 4 encoded characters. Proceeding from left to right, a
++ 24-bit input group is formed by concatenating 3 8-bit input groups.
++ These 24 bits are then treated as 4 concatenated 6-bit groups, each
++ of which is translated into a single digit in the base64 alphabet.
++
++ Each 6-bit group is used as an index into an array of 64 printable
++ characters. The character referenced by the index is placed in the
++ output string.
++
++ Table 1: The Base64 Alphabet
++
++ Value Encoding Value Encoding Value Encoding Value Encoding
++ 0 A 17 R 34 i 51 z
++ 1 B 18 S 35 j 52 0
++ 2 C 19 T 36 k 53 1
++ 3 D 20 U 37 l 54 2
++ 4 E 21 V 38 m 55 3
++ 5 F 22 W 39 n 56 4
++ 6 G 23 X 40 o 57 5
++ 7 H 24 Y 41 p 58 6
++ 8 I 25 Z 42 q 59 7
++ 9 J 26 a 43 r 60 8
++ 10 K 27 b 44 s 61 9
++ 11 L 28 c 45 t 62 +
++ 12 M 29 d 46 u 63 /
++ 13 N 30 e 47 v
++ 14 O 31 f 48 w (pad) =
++ 15 P 32 g 49 x
++ 16 Q 33 h 50 y
++
++ Special processing is performed if fewer than 24 bits are available
++ at the end of the data being encoded. A full encoding quantum is
++ always completed at the end of a quantity. When fewer than 24 input
++ bits are available in an input group, zero bits are added (on the
++ right) to form an integral number of 6-bit groups. Padding at the
++ end of the data is performed using the '=' character.
++
++ Since all base64 input is an integral number of octets, only the
++ -------------------------------------------------
++ following cases can arise:
++
++ (1) the final quantum of encoding input is an integral
++ multiple of 24 bits; here, the final unit of encoded
++ output will be an integral multiple of 4 characters
++ with no "=" padding,
++ (2) the final quantum of encoding input is exactly 8 bits;
++ here, the final unit of encoded output will be two
++ characters followed by two "=" padding characters, or
++ (3) the final quantum of encoding input is exactly 16 bits;
++ here, the final unit of encoded output will be three
++ characters followed by one "=" padding character.
++ */
++
++int
++b64_ntop(src, srclength, target, targsize)
++ u_char const *src;
++ size_t srclength;
++ char *target;
++ size_t targsize;
++{
++ size_t datalength = 0;
++ u_char input[3];
++ u_char output[4];
++ int i;
++
++ while (2 < srclength) {
++ input[0] = *src++;
++ input[1] = *src++;
++ input[2] = *src++;
++ srclength -= 3;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++ output[3] = input[2] & 0x3f;
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Base64[output[3]];
++ }
++
++ /* Now we worry about padding. */
++ if (0 != srclength) {
++ /* Get what's left. */
++ input[0] = input[1] = input[2] = '\0';
++ for (i = 0; i < srclength; i++)
++ input[i] = *src++;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ if (srclength == 1)
++ target[datalength++] = Pad64;
++ else
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Pad64;
++ }
++ if (datalength >= targsize)
++ return (-1);
++ target[datalength] = '\0'; /* Returned value doesn't count \0. */
++ return (datalength);
++}
++
++/* skips all whitespace anywhere.
++ converts characters, four at a time, starting at (or after)
++ src from base - 64 numbers into three 8 bit bytes in the target area.
++ it returns the number of data bytes stored at the target, or -1 on error.
++ */
++
++int
++b64_pton(src, target, targsize)
++ char const *src;
++ u_char *target;
++ size_t targsize;
++{
++ int tarindex, state, ch;
++ u_char nextbyte;
++ char *pos;
++
++ state = 0;
++ tarindex = 0;
++
++ while ((ch = (unsigned char)*src++) != '\0') {
++ if (isspace(ch)) /* Skip whitespace anywhere. */
++ continue;
++
++ if (ch == Pad64)
++ break;
++
++ pos = strchr(Base64, ch);
++ if (pos == 0) /* A non-base64 character. */
++ return (-1);
++
++ switch (state) {
++ case 0:
++ if (target) {
++ if (tarindex >= targsize)
++ return (-1);
++ target[tarindex] = (pos - Base64) << 2;
++ }
++ state = 1;
++ break;
++ case 1:
++ if (target) {
++ if (tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 4;
++ nextbyte = ((pos - Base64) & 0x0f) << 4;
++ if (tarindex + 1 < targsize)
++ target[tarindex+1] = nextbyte;
++ else if (nextbyte)
++ return (-1);
++ }
++ tarindex++;
++ state = 2;
++ break;
++ case 2:
++ if (target) {
++ if (tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 2;
++ nextbyte = ((pos - Base64) & 0x03) << 6;
++ if (tarindex + 1 < targsize)
++ target[tarindex+1] = nextbyte;
++ else if (nextbyte)
++ return (-1);
++ }
++ tarindex++;
++ state = 3;
++ break;
++ case 3:
++ if (target) {
++ if (tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64);
++ }
++ tarindex++;
++ state = 0;
++ break;
++ }
++ }
++
++ /*
++ * We are done decoding Base-64 chars. Let's see if we ended
++ * on a byte boundary, and/or with erroneous trailing characters.
++ */
++
++ if (ch == Pad64) { /* We got a pad char. */
++ ch = (unsigned char)*src++; /* Skip it, get next. */
++ switch (state) {
++ case 0: /* Invalid = in first position */
++ case 1: /* Invalid = in second position */
++ return (-1);
++
++ case 2: /* Valid, means one byte of info */
++ /* Skip any number of spaces. */
++ for (; ch != '\0'; ch = (unsigned char)*src++)
++ if (!isspace(ch))
++ break;
++ /* Make sure there is another trailing = sign. */
++ if (ch != Pad64)
++ return (-1);
++ ch = (unsigned char)*src++; /* Skip the = */
++ /* Fall through to "single trailing =" case. */
++ /* FALLTHROUGH */
++
++ case 3: /* Valid, means two bytes of info */
++ /*
++ * We know this char is an =. Is there anything but
++ * whitespace after it?
++ */
++ for (; ch != '\0'; ch = (unsigned char)*src++)
++ if (!isspace(ch))
++ return (-1);
++
++ /*
++ * Now make sure for cases 2 and 3 that the "extra"
++ * bits that slopped past the last full byte were
++ * zeros. If we don't check them, they become a
++ * subliminal channel.
++ */
++ if (target && tarindex < targsize &&
++ target[tarindex] != 0)
++ return (-1);
++ }
++ } else {
++ /*
++ * We ended by seeing the end of the string. Make sure we
++ * have no partial bytes lying around.
++ */
++ if (state != 0)
++ return (-1);
++ }
++
++ return (tarindex);
++}
+diff --git a/fdm.h b/fdm.h
+index 5de799c..abc52e0 100644
+--- a/fdm.h
++++ b/fdm.h
+@@ -84,6 +84,18 @@ extern char *__progname;
+ #define INFTIM -1
+ #endif
+
++#ifndef WAIT_ANY
++#define WAIT_ANY -1
++#endif
++
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
++#ifndef ACCESSPERMS
++#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
++#endif
++
+ #ifndef __dead
+ #define __dead __attribute__ ((__noreturn__))
+ #endif
+@@ -707,6 +719,12 @@ size_t strlcpy(char *, const char *, size_t);
+ size_t strlcat(char *, const char *, size_t);
+ #endif
+
++#ifndef HAVE_B64_NTOP
++/* base64.c */
++int b64_ntop(src, srclength, target, targsize);
++int b64_pton(src, target, targsize);
++#endif
++
+ /* shm.c */
+ char *shm_path(struct shm *);
+ void *shm_create(struct shm *, size_t);
+--
+2.17.1
+
+++ /dev/null
---- a/fdm.c
-+++ b/fdm.c
-@@ -22,6 +22,10 @@
- #include <sys/utsname.h>
- #include <sys/wait.h>
-
-+#ifndef WAIT_ANY
-+#define WAIT_ANY (-1)
-+#endif
-+
- #include <errno.h>
- #include <fcntl.h>
- #include <fnmatch.h>
--- /dev/null
+From f6c656c5c0368b2fb4284af0484c3bedfc7ae42c Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Tue, 26 Jun 2018 14:14:34 -0700
+Subject: [PATCH] Fix compile with OpenSSL 1.1.0
+
+OpenSSL 1.1.0 deprecared SSL_library_init and SSL_load_error_strings.
+They're part of OPENSSL_init_ssl now.
+---
+ fdm.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/fdm.c b/fdm.c
+index cdf8383..9355b91 100644
+--- a/fdm.c
++++ b/fdm.c
+@@ -717,8 +717,13 @@ retry:
+ }
+ conf.lock_file = lock;
+
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ SSL_library_init();
+ SSL_load_error_strings();
++#else
++ OPENSSL_init_ssl(0, NULL);
++#endif
+
+ /* Filter account list. */
+ TAILQ_INIT(&actaq);
+--
+2.17.1
+
+++ /dev/null
---- a/fetch-maildir.c
-+++ b/fetch-maildir.c
-@@ -31,6 +31,8 @@
- #include "fdm.h"
- #include "fetch.h"
-
-+#define GLOB_BRACE 0
-+
- int fetch_maildir_commit(struct account *, struct mail *);
- void fetch_maildir_abort(struct account *);
- u_int fetch_maildir_total(struct account *);
---- a/fetch-mbox.c
-+++ b/fetch-mbox.c
-@@ -32,6 +32,8 @@
- #include "fdm.h"
- #include "fetch.h"
-
-+#define GLOB_BRACE 0
-+
- int fetch_mbox_commit(struct account *, struct mail *);
- void fetch_mbox_abort(struct account *);
- u_int fetch_mbox_total(struct account *);
+++ /dev/null
---- a/file.c
-+++ b/file.c
-@@ -26,6 +26,8 @@
-
- #include "fdm.h"
-
-+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
-+
- int mklock(u_int, const char *);
- void rmlock(u_int, const char *);
- int lockfd(u_int, int);
--- /dev/null
+From 070cee8d1efba1ca260777a204fba7cdfe676ca5 Mon Sep 17 00:00:00 2001
+From: Nicholas Marriott <nicholas.marriott@gmail.com>
+Date: Tue, 17 Jan 2017 23:14:03 +0000
+Subject: [PATCH] Look for OPENSSL_init_ssl, from Tomasz Miasko.
+
+---
+ configure.ac | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5793c2d..161040c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -93,11 +93,16 @@ if test "x$found_libcrypto" = xno; then
+ AC_MSG_ERROR("libcrypto not found")
+ fi
+ AC_SEARCH_LIBS(
+- SSL_library_init,
++ OPENSSL_init_ssl,
+ [ssl],
+ found_libssl=yes,
+ found_libssl=no
+ )
++AC_SEARCH_LIBS(
++ SSL_library_init,
++ [ssl],
++ found_libssl=yes
++)
+ if test "x$found_libssl" = xno; then
+ AC_MSG_ERROR("libssl not found")
+ fi
+++ /dev/null
-/*
- * Copyright (c) 1996, 1998 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-/*
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software. No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
-//#include <config.h>
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "fdm.h"
-
-#define Assert(Cond) if (!(Cond)) abort()
-
-static const char Base64[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const char Pad64 = '=';
-
-/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
- The following encoding technique is taken from RFC 1521 by Borenstein
- and Freed. It is reproduced here in a slightly edited form for
- convenience.
-
- A 65-character subset of US-ASCII is used, enabling 6 bits to be
- represented per printable character. (The extra 65th character, "=",
- is used to signify a special processing function.)
-
- The encoding process represents 24-bit groups of input bits as output
- strings of 4 encoded characters. Proceeding from left to right, a
- 24-bit input group is formed by concatenating 3 8-bit input groups.
- These 24 bits are then treated as 4 concatenated 6-bit groups, each
- of which is translated into a single digit in the base64 alphabet.
-
- Each 6-bit group is used as an index into an array of 64 printable
- characters. The character referenced by the index is placed in the
- output string.
-
- Table 1: The Base64 Alphabet
-
- Value Encoding Value Encoding Value Encoding Value Encoding
- 0 A 17 R 34 i 51 z
- 1 B 18 S 35 j 52 0
- 2 C 19 T 36 k 53 1
- 3 D 20 U 37 l 54 2
- 4 E 21 V 38 m 55 3
- 5 F 22 W 39 n 56 4
- 6 G 23 X 40 o 57 5
- 7 H 24 Y 41 p 58 6
- 8 I 25 Z 42 q 59 7
- 9 J 26 a 43 r 60 8
- 10 K 27 b 44 s 61 9
- 11 L 28 c 45 t 62 +
- 12 M 29 d 46 u 63 /
- 13 N 30 e 47 v
- 14 O 31 f 48 w (pad) =
- 15 P 32 g 49 x
- 16 Q 33 h 50 y
-
- Special processing is performed if fewer than 24 bits are available
- at the end of the data being encoded. A full encoding quantum is
- always completed at the end of a quantity. When fewer than 24 input
- bits are available in an input group, zero bits are added (on the
- right) to form an integral number of 6-bit groups. Padding at the
- end of the data is performed using the '=' character.
-
- Since all base64 input is an integral number of octets, only the
- following cases can arise:
-
- (1) the final quantum of encoding input is an integral
- multiple of 24 bits; here, the final unit of encoded
- output will be an integral multiple of 4 characters
- with no "=" padding,
- (2) the final quantum of encoding input is exactly 8 bits;
- here, the final unit of encoded output will be two
- characters followed by two "=" padding characters, or
- (3) the final quantum of encoding input is exactly 16 bits;
- here, the final unit of encoded output will be three
- characters followed by one "=" padding character.
- */
-
-int
-local_b64_ntop(uint8_t const *src, size_t srclength, char *target, size_t targsize) {
- size_t datalength = 0;
- uint8_t input[3];
- uint8_t output[4];
- size_t i;
-
- while (2 < srclength) {
- input[0] = *src++;
- input[1] = *src++;
- input[2] = *src++;
- srclength -= 3;
-
- output[0] = input[0] >> 2;
- output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
- output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
- output[3] = input[2] & 0x3f;
- Assert(output[0] < 64);
- Assert(output[1] < 64);
- Assert(output[2] < 64);
- Assert(output[3] < 64);
-
- if (datalength + 4 > targsize)
- return (-1);
- target[datalength++] = Base64[output[0]];
- target[datalength++] = Base64[output[1]];
- target[datalength++] = Base64[output[2]];
- target[datalength++] = Base64[output[3]];
- }
-
- /* Now we worry about padding. */
- if (0 != srclength) {
- /* Get what's left. */
- input[0] = input[1] = input[2] = '\0';
- for (i = 0; i < srclength; i++)
- input[i] = *src++;
- output[0] = input[0] >> 2;
- output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
- output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
- Assert(output[0] < 64);
- Assert(output[1] < 64);
- Assert(output[2] < 64);
-
- if (datalength + 4 > targsize)
- return (-1);
- target[datalength++] = Base64[output[0]];
- target[datalength++] = Base64[output[1]];
- if (srclength == 1)
- target[datalength++] = Pad64;
- else
- target[datalength++] = Base64[output[2]];
- target[datalength++] = Pad64;
- }
- if (datalength >= targsize)
- return (-1);
- target[datalength] = '\0'; /* Returned value doesn't count \0. */
- return (datalength);
-}
+++ /dev/null
-/*
- * Copyright (c) 1996, 1998 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-/*
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software. No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
-//#include <config.h>
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "fdm.h"
-
-#define Assert(Cond) if (!(Cond)) abort()
-
-static const char Base64[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const char Pad64 = '=';
-
-/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
- The following encoding technique is taken from RFC 1521 by Borenstein
- and Freed. It is reproduced here in a slightly edited form for
- convenience.
-
- A 65-character subset of US-ASCII is used, enabling 6 bits to be
- represented per printable character. (The extra 65th character, "=",
- is used to signify a special processing function.)
-
- The encoding process represents 24-bit groups of input bits as output
- strings of 4 encoded characters. Proceeding from left to right, a
- 24-bit input group is formed by concatenating 3 8-bit input groups.
- These 24 bits are then treated as 4 concatenated 6-bit groups, each
- of which is translated into a single digit in the base64 alphabet.
-
- Each 6-bit group is used as an index into an array of 64 printable
- characters. The character referenced by the index is placed in the
- output string.
-
- Table 1: The Base64 Alphabet
-
- Value Encoding Value Encoding Value Encoding Value Encoding
- 0 A 17 R 34 i 51 z
- 1 B 18 S 35 j 52 0
- 2 C 19 T 36 k 53 1
- 3 D 20 U 37 l 54 2
- 4 E 21 V 38 m 55 3
- 5 F 22 W 39 n 56 4
- 6 G 23 X 40 o 57 5
- 7 H 24 Y 41 p 58 6
- 8 I 25 Z 42 q 59 7
- 9 J 26 a 43 r 60 8
- 10 K 27 b 44 s 61 9
- 11 L 28 c 45 t 62 +
- 12 M 29 d 46 u 63 /
- 13 N 30 e 47 v
- 14 O 31 f 48 w (pad) =
- 15 P 32 g 49 x
- 16 Q 33 h 50 y
-
- Special processing is performed if fewer than 24 bits are available
- at the end of the data being encoded. A full encoding quantum is
- always completed at the end of a quantity. When fewer than 24 input
- bits are available in an input group, zero bits are added (on the
- right) to form an integral number of 6-bit groups. Padding at the
- end of the data is performed using the '=' character.
-
- Since all base64 input is an integral number of octets, only the
- following cases can arise:
-
- (1) the final quantum of encoding input is an integral
- multiple of 24 bits; here, the final unit of encoded
- output will be an integral multiple of 4 characters
- with no "=" padding,
- (2) the final quantum of encoding input is exactly 8 bits;
- here, the final unit of encoded output will be two
- characters followed by two "=" padding characters, or
- (3) the final quantum of encoding input is exactly 16 bits;
- here, the final unit of encoded output will be three
- characters followed by one "=" padding character.
- */
-
-/* skips all whitespace anywhere.
- converts characters, four at a time, starting at (or after)
- src from base - 64 numbers into three 8 bit bytes in the target area.
- it returns the number of data bytes stored at the target, or -1 on error.
- */
-
-static int b64rmap_initialized = 0;
-static uint8_t b64rmap[256];
-
-static const uint8_t b64rmap_special = 0xf0;
-static const uint8_t b64rmap_end = 0xfd;
-static const uint8_t b64rmap_space = 0xfe;
-static const uint8_t b64rmap_invalid = 0xff;
-
-/**
- * Initializing the reverse map is not thread safe.
- * Which is fine for NSD. For now...
- **/
-static void
-b64_initialize_rmap ()
-{
- int i;
- char ch;
-
- /* Null: end of string, stop parsing */
- b64rmap[0] = b64rmap_end;
-
- for (i = 1; i < 256; ++i) {
- ch = (char)i;
- /* Whitespaces */
- if (isspace(ch))
- b64rmap[i] = b64rmap_space;
- /* Padding: stop parsing */
- else if (ch == Pad64)
- b64rmap[i] = b64rmap_end;
- /* Non-base64 char */
- else
- b64rmap[i] = b64rmap_invalid;
- }
-
- /* Fill reverse mapping for base64 chars */
- for (i = 0; Base64[i] != '\0'; ++i)
- b64rmap[(uint8_t)Base64[i]] = i;
-
- b64rmap_initialized = 1;
-}
-
-static int
-b64_pton_do(char const *src, uint8_t *target, size_t targsize)
-{
- int tarindex, state, ch;
- uint8_t ofs;
-
- state = 0;
- tarindex = 0;
-
- while (1)
- {
- ch = *src++;
- ofs = b64rmap[ch];
-
- if (ofs >= b64rmap_special) {
- /* Ignore whitespaces */
- if (ofs == b64rmap_space)
- continue;
- /* End of base64 characters */
- if (ofs == b64rmap_end)
- break;
- /* A non-base64 character. */
- return (-1);
- }
-
- switch (state) {
- case 0:
- if ((size_t)tarindex >= targsize)
- return (-1);
- target[tarindex] = ofs << 2;
- state = 1;
- break;
- case 1:
- if ((size_t)tarindex + 1 >= targsize)
- return (-1);
- target[tarindex] |= ofs >> 4;
- target[tarindex+1] = (ofs & 0x0f)
- << 4 ;
- tarindex++;
- state = 2;
- break;
- case 2:
- if ((size_t)tarindex + 1 >= targsize)
- return (-1);
- target[tarindex] |= ofs >> 2;
- target[tarindex+1] = (ofs & 0x03)
- << 6;
- tarindex++;
- state = 3;
- break;
- case 3:
- if ((size_t)tarindex >= targsize)
- return (-1);
- target[tarindex] |= ofs;
- tarindex++;
- state = 0;
- break;
- default:
- abort();
- }
- }
-
- /*
- * We are done decoding Base-64 chars. Let's see if we ended
- * on a byte boundary, and/or with erroneous trailing characters.
- */
-
- if (ch == Pad64) { /* We got a pad char. */
- ch = *src++; /* Skip it, get next. */
- switch (state) {
- case 0: /* Invalid = in first position */
- case 1: /* Invalid = in second position */
- return (-1);
-
- case 2: /* Valid, means one byte of info */
- /* Skip any number of spaces. */
- for ((void)NULL; ch != '\0'; ch = *src++)
- if (b64rmap[ch] != b64rmap_space)
- break;
- /* Make sure there is another trailing = sign. */
- if (ch != Pad64)
- return (-1);
- ch = *src++; /* Skip the = */
- /* Fall through to "single trailing =" case. */
- /* FALLTHROUGH */
-
- case 3: /* Valid, means two bytes of info */
- /*
- * We know this char is an =. Is there anything but
- * whitespace after it?
- */
- for ((void)NULL; ch != '\0'; ch = *src++)
- if (b64rmap[ch] != b64rmap_space)
- return (-1);
-
- /*
- * Now make sure for cases 2 and 3 that the "extra"
- * bits that slopped past the last full byte were
- * zeros. If we don't check them, they become a
- * subliminal channel.
- */
- if (target[tarindex] != 0)
- return (-1);
- }
- } else {
- /*
- * We ended by seeing the end of the string. Make sure we
- * have no partial bytes lying around.
- */
- if (state != 0)
- return (-1);
- }
-
- return (tarindex);
-}
-
-
-static int
-b64_pton_len(char const *src)
-{
- int tarindex, state, ch;
- uint8_t ofs;
-
- state = 0;
- tarindex = 0;
-
- while (1)
- {
- ch = *src++;
- ofs = b64rmap[ch];
-
- if (ofs >= b64rmap_special) {
- /* Ignore whitespaces */
- if (ofs == b64rmap_space)
- continue;
- /* End of base64 characters */
- if (ofs == b64rmap_end)
- break;
- /* A non-base64 character. */
- return (-1);
- }
-
- switch (state) {
- case 0:
- state = 1;
- break;
- case 1:
- tarindex++;
- state = 2;
- break;
- case 2:
- tarindex++;
- state = 3;
- break;
- case 3:
- tarindex++;
- state = 0;
- break;
- default:
- abort();
- }
- }
-
- /*
- * We are done decoding Base-64 chars. Let's see if we ended
- * on a byte boundary, and/or with erroneous trailing characters.
- */
-
- if (ch == Pad64) { /* We got a pad char. */
- ch = *src++; /* Skip it, get next. */
- switch (state) {
- case 0: /* Invalid = in first position */
- case 1: /* Invalid = in second position */
- return (-1);
-
- case 2: /* Valid, means one byte of info */
- /* Skip any number of spaces. */
- for ((void)NULL; ch != '\0'; ch = *src++)
- if (b64rmap[ch] != b64rmap_space)
- break;
- /* Make sure there is another trailing = sign. */
- if (ch != Pad64)
- return (-1);
- ch = *src++; /* Skip the = */
- /* Fall through to "single trailing =" case. */
- /* FALLTHROUGH */
-
- case 3: /* Valid, means two bytes of info */
- /*
- * We know this char is an =. Is there anything but
- * whitespace after it?
- */
- for ((void)NULL; ch != '\0'; ch = *src++)
- if (b64rmap[ch] != b64rmap_space)
- return (-1);
-
- }
- } else {
- /*
- * We ended by seeing the end of the string. Make sure we
- * have no partial bytes lying around.
- */
- if (state != 0)
- return (-1);
- }
-
- return (tarindex);
-}
-
-
-int
-local_b64_pton(char const *src, uint8_t *target, size_t targsize)
-{
- if (!b64rmap_initialized)
- b64_initialize_rmap ();
-
- if (target)
- return b64_pton_do (src, target, targsize);
- else
- return b64_pton_len (src);
-}
#
# Copyright (C) 2009 David Cooper <dave@kupesoft.com>
# Copyright (C) 2009-2015 OpenWrt.org
-# Copyright (C) 2016 Daniel Dickinson <lede@daniel.thecshore.com>
+# Copyright (C) 2016 Daniel Dickinson <cshored@thecshore.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
PKG_LICENSE:=GPL-3.0+
PKG_LICENSE_FILES:=COPYING
-PKG_MAINTAINER:=Daniel Dickinson <lede@daniel.thecshore.com>
+PKG_MAINTAINER:=Daniel Dickinson <cshoreded@thecshore.com>
include $(INCLUDE_DIR)/package.mk
PKG_NAME:=nail
PKG_VERSION:=12.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_LICENSE:=BSD-2-Clause
PKG_SOURCE:=heirloom-mailx_$(PKG_VERSION).orig.tar.gz
cp = ssl_method_string(uhp);
if (cp != NULL) {
-+#ifndef OPENSSL_NO_SSL2
++#if !defined(OPENSSL_NO_SSL2) && !OPENSSL_VERSION_NUMBER >= 0x10100000L
if (equal(cp, "ssl2"))
method = SSLv2_client_method();
- else if (equal(cp, "ssl3"))
--- /dev/null
+--- a/openssl.c
++++ b/openssl.c
+@@ -137,7 +137,11 @@ ssl_rand_init(void)
+
+ if ((cp = value("ssl-rand-egd")) != NULL) {
+ cp = expand(cp);
++#ifndef OPENSSL_NO_EGD
+ if (RAND_egd(cp) == -1) {
++#else
++ if (1) {
++#endif
+ fprintf(stderr, catgets(catd, CATSET, 245,
+ "entropy daemon at \"%s\" not available\n"),
+ cp);
PKG_NAME:=opendkim
PKG_VERSION:=2.10.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
PKG_INSTALL:=1
PKG_BUILD_DEPENDS:=openssl
+PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
--- /dev/null
+Description: Build and work with either openssl 1.0.2 or 1.1.0
+ * Add patch to build with either openssl 1.0.2 or 1.1.0 (Closes: #828466)
+ - Thanks to Sebastian Andrzej Siewior for the patch
+Author: Sebastian Andrzej Siewior
+Bug-Debian: http://bugs.debian.org/828466
+Origin: vendor
+Forwarded: no
+Reviewed-By: Scott Kitterman <scott@kitterman.com>
+Last-Update: <YYYY-MM-DD>
+
+--- opendkim-2.11.0~alpha.orig/configure.ac
++++ opendkim-2.11.0~alpha/configure.ac
+@@ -864,26 +864,28 @@ then
+ AC_SEARCH_LIBS([ERR_peek_error], [crypto], ,
+ AC_MSG_ERROR([libcrypto not found]))
+
+- AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
+- [
+- if test x"$enable_shared" = x"yes"
+- then
+- AC_MSG_ERROR([Cannot build shared opendkim
+- against static openssl libraries.
+- Configure with --disable-shared
+- to get this working or obtain a
+- shared libssl library for
+- opendkim to use.])
+- fi
+
+- # avoid caching issue - last result of SSL_library_init
+- # shouldn't be cached for this next check
+- unset ac_cv_search_SSL_library_init
+- LIBCRYPTO_LIBS="$LIBCRYPTO_LIBS -ldl"
+- AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
+- AC_MSG_ERROR([libssl not found]), [-ldl])
+- ]
+- )
++ AC_LINK_IFELSE(
++ [AC_LANG_PROGRAM([[#include <openssl/ssl.h>]],
++ [[SSL_library_init();]])],
++ [od_have_ossl="yes";],
++ [od_have_ossl="no";])
++ if test x"$od_have_ossl" = x"no"
++ then
++ if test x"$enable_shared" = x"yes"
++ then
++ AC_MSG_ERROR([Cannot build shared opendkim
++ against static openssl libraries.
++ Configure with --disable-shared
++ to get this working or obtain a
++ shared libssl library for
++ opendkim to use.])
++ fi
++
++ LIBCRYPTO_LIBS="$LIBCRYPTO_LIBS -ldl"
++ AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
++ AC_MSG_ERROR([libssl not found]), [-ldl])
++ fi
+
+ AC_CHECK_DECL([SHA256_DIGEST_LENGTH],
+ AC_DEFINE([HAVE_SHA256], 1,
+--- opendkim-2.11.0~alpha.orig/opendkim/opendkim-crypto.c
++++ opendkim-2.11.0~alpha/opendkim/opendkim-crypto.c
+@@ -222,7 +222,11 @@ dkimf_crypto_free_id(void *ptr)
+ {
+ assert(pthread_setspecific(id_key, ptr) == 0);
+
++#if OPENSSL_VERSION_NUMBER >= 0x10100000
++ OPENSSL_thread_stop();
++#else
+ ERR_remove_state(0);
++#endif
+
+ free(ptr);
+
+@@ -392,11 +396,15 @@ dkimf_crypto_free(void)
+ {
+ if (crypto_init_done)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000
++ OPENSSL_thread_stop();
++#else
+ CRYPTO_cleanup_all_ex_data();
+ CONF_modules_free();
+ EVP_cleanup();
+ ERR_free_strings();
+ ERR_remove_state(0);
++#endif
+
+ if (nmutexes > 0)
+ {
include $(TOPDIR)/rules.mk
PKG_NAME:=dovecot-pigeonhole
-PKG_VERSION_PLUGIN:=0.4.21
+PKG_VERSION_PLUGIN:=0.5.1
PKG_VERSION_DOVECOT:=$(shell make --no-print-directory -C ../dovecot/ val.PKG_VERSION V=s)
PKG_VERSION:=$(PKG_VERSION_DOVECOT)-$(PKG_VERSION_PLUGIN)
PKG_RELEASE:=2
-DOVECOT_VERSION:=2.2
+DOVECOT_VERSION:=2.3
PKG_SOURCE:=dovecot-$(DOVECOT_VERSION)-pigeonhole-$(PKG_VERSION_PLUGIN).tar.gz
PKG_SOURCE_URL:=https://pigeonhole.dovecot.org/releases/$(DOVECOT_VERSION)
-PKG_HASH:=4ae09cb788c5334d167f5a89ee70b0616c3231e5904ad258ce408e4953cfdd6a
+PKG_HASH:=e3b0aa59261881bcb0d33a6c398f3cb5f9f75e077e67bae175cf33c362577547
PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=COPYING COPYING.LGPL
PKG_NAME:=ffmpeg
PKG_VERSION:=3.2.10
-PKG_RELEASE:=3
+PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://ffmpeg.org/releases/
FFMPEG_CONFIGURE+= --enable-lto
endif
-ifneq ($(CONFIG_YASM),y)
-FFMPEG_CONFIGURE+= --disable-yasm
-
+ifneq ($(CONFIG_TARGET_x86),)
+ifeq ($(CONFIG_NASM),y)
+ FFMPEG_CONFIGURE += --yasmexe=nasm
+else
+ FFMPEG_CONFIGURE += --disable-yasm
+endif
endif
ifeq ($(BUILD_VARIANT),full)
FFMPEG_CONFIGURE+= $(if $(CONFIG_PACKAGE_lame-lib),--enable-libmp3lame)
# x264 support and fdk-aac support can't coexist and be distributed.
# Prioritize x264 over fdk-aac in default builds (maintain status-quo).
- ifeq ($(CONFIG_PACKAGE_libx264),y)
+ ifneq ($(CONFIG_PACKAGE_libx264),)
FFMPEG_CONFIGURE+= \
--enable-gpl \
--enable-libx264
--enable-libshine --enable-encoder=libshine
endif
-ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libx264),y)
+ifneq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libx264),)
FFMPEG_CONFIGURE+= \
--enable-libx264 --enable-encoder=libx264
endif
$(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale} $(1)/usr/include/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.{a,so*} $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.pc $(1)/usr/lib/pkgconfig/
-ifeq ($(CONFIG_PACKAGE_libx264),y)
+ifneq ($(CONFIG_PACKAGE_libx264),)
$(CP) $(PKG_INSTALL_DIR)/usr/include/libpostproc $(1)/usr/include/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpostproc.{a,so*} $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpostproc.pc $(1)/usr/lib/pkgconfig/
define Package/libffmpeg-full/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.so.* $(1)/usr/lib/
-ifeq ($(CONFIG_PACKAGE_libx264),y)
+ifneq ($(CONFIG_PACKAGE_libx264),)
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpostproc.so.* $(1)/usr/lib/
endif
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-libav
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
PKG_SOURCE:=gst-libav-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-libav
-PKG_HASH:=2a56aa5d2d8cd912f2bce17f174713d2c417ca298f1f9c28ee66d4aa1e1d9e62
+PKG_HASH:=eff80a02d2f2fb9f34b67e9a26e9954d3218c7aa18e863f2a47805fa7066029d
PKG_LICENSE:=GPL-2.0 LGPL-2.0
PKG_LICENSE_FILES:=COPYING COPYING.LIB
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-plugins-bad
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-bad-$(PKG_VERSION)
PKG_SOURCE:=gst-plugins-bad-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-bad/
-PKG_HASH:=0c7857be16686d5c1ba6e34bd338664d3d4599d32714a8eca5c8a41a101e2d08
+PKG_HASH:=2a77c6908032aafdf2cd2e5823fec948f16a25c2d1497a953828d762dc20d61a
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
$(eval $(call GstBuildLibrary,photography,photography,,))
$(eval $(call GstBuildLibrary,basecamerabinsrc,basecamerabinsrc,app,))
$(eval $(call GstBuildLibrary,uridownloader,uridownloader,,))
-$(eval $(call GstBuildLibrary,badbase,badbase,,))
# 1: short name
# 2: description
$(eval $(call GstBuildPlugin,mpegpsmux,mpegpsmux support,,,))
#$(eval $(call GstBuildPlugin,mpegtsdemux,mpegtsdemux support,mpegts pbutils,,))
#$(eval $(call GstBuildPlugin,mpegtsmux,mpegtsmux support,video,,))
-$(eval $(call GstBuildPlugin,mxf,mxf support,badbase audio video,,))
+$(eval $(call GstBuildPlugin,mxf,mxf support,audio video,,))
$(eval $(call GstBuildPlugin,opusparse,OPUS streams library,pbutils,,+libopus))
$(eval $(call GstBuildPlugin,pcapparse,pcapparse support,,,))
$(eval $(call GstBuildPlugin,pnm,pnm support,video,,))
-diff -u --recursive gst-plugins-bad-1.12.4-vanilla/configure.ac gst-plugins-bad-1.12.4/configure.ac
---- gst-plugins-bad-1.12.4-vanilla/configure.ac 2018-02-11 19:46:16.942758605 -0500
-+++ gst-plugins-bad-1.12.4/configure.ac 2018-02-11 19:46:38.356808019 -0500
-@@ -3619,38 +3619,6 @@
+diff -u --recursive gst-plugins-bad-1.14.1-vanilla/configure.ac gst-plugins-bad-1.14.1/configure.ac
+--- gst-plugins-bad-1.14.1-vanilla/configure.ac 2018-07-08 22:17:07.553492088 -0400
++++ gst-plugins-bad-1.14.1/configure.ac 2018-07-08 22:17:38.866597074 -0400
+@@ -2600,24 +2600,6 @@
sys/wasapi/Makefile
sys/winks/Makefile
sys/winscreencap/Makefile
-tests/examples/avsamplesink/Makefile
-tests/examples/camerabin2/Makefile
-tests/examples/codecparsers/Makefile
+-tests/examples/compositor/Makefile
-tests/examples/directfb/Makefile
-tests/examples/audiomixmatrix/Makefile
--tests/examples/gl/Makefile
--tests/examples/gl/cocoa/Makefile
--tests/examples/gl/clutter/Makefile
--tests/examples/gl/generic/Makefile
--tests/examples/gl/generic/cube/Makefile
--tests/examples/gl/generic/cubeyuv/Makefile
--tests/examples/gl/generic/doublecube/Makefile
--tests/examples/gl/generic/recordgraphic/Makefile
--tests/examples/gl/gtk/Makefile
--tests/examples/gl/gtk/3dvideo/Makefile
--tests/examples/gl/gtk/filternovideooverlay/Makefile
--tests/examples/gl/gtk/filtervideooverlay/Makefile
--tests/examples/gl/gtk/fxtest/Makefile
--tests/examples/gl/gtk/switchvideooverlay/Makefile
--tests/examples/gl/qt/Makefile
--tests/examples/gl/sdl/Makefile
--tests/examples/gtk/Makefile
+-tests/examples/ipcpipeline/Makefile
-tests/examples/mpegts/Makefile
-tests/examples/mxf/Makefile
-tests/examples/opencv/Makefile
-tests/examples/uvch264/Makefile
-tests/examples/waylandsink/Makefile
+-tests/examples/webrtc/Makefile
-tests/icles/Makefile
ext/voamrwbenc/Makefile
ext/voaacenc/Makefile
ext/assrender/Makefile
-diff -u --recursive gst-plugins-bad-1.12.4-vanilla/Makefile.am gst-plugins-bad-1.12.4/Makefile.am
---- gst-plugins-bad-1.12.4-vanilla/Makefile.am 2018-02-11 19:46:16.980758692 -0500
-+++ gst-plugins-bad-1.12.4/Makefile.am 2018-02-11 19:46:49.443833603 -0500
+diff -u --recursive gst-plugins-bad-1.14.1-vanilla/Makefile.am gst-plugins-bad-1.14.1/Makefile.am
+--- gst-plugins-bad-1.14.1-vanilla/Makefile.am 2018-07-08 22:17:07.553492088 -0400
++++ gst-plugins-bad-1.14.1/Makefile.am 2018-07-08 22:17:51.278638694 -0400
@@ -2,11 +2,11 @@
SUBDIRS = \
- m4 common docs tests tools
+ m4 common docs tools
- # include before EXTRA_DIST for win32 assignment
- include $(top_srcdir)/common/win32.mak
+ EXTRA_DIST = \
+ depcomp \
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-plugins-base
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-base-$(PKG_VERSION)
PKG_SOURCE:=gst-plugins-base-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-base/
-PKG_HASH:=4c306b03df0212f1b8903784e29bb3493319ba19ebebf13b0c56a17870292282
+PKG_HASH:=1026c7c3082d825d9b5d034c1a6dd8a4ebab60eb3738b0a0afde4ad2dc0b0db5
PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_gst1-mod-alsa \
-diff -u --recursive gst-plugins-base-1.12.4-vanilla/configure.ac gst-plugins-base-1.12.4/configure.ac
---- gst-plugins-base-1.12.4-vanilla/configure.ac 2018-02-11 09:54:25.065243893 -0500
-+++ gst-plugins-base-1.12.4/configure.ac 2018-02-11 09:55:12.112340832 -0500
-@@ -942,24 +942,6 @@
- pkgconfig/gstreamer-video-uninstalled.pc
+diff -u --recursive gst-plugins-base-1.14.1-vanilla/configure.ac gst-plugins-base-1.14.1/configure.ac
+--- gst-plugins-base-1.14.1-vanilla/configure.ac 2018-07-07 18:10:49.601305039 -0400
++++ gst-plugins-base-1.14.1/configure.ac 2018-07-07 18:11:03.465363471 -0400
+@@ -992,40 +992,6 @@
+ pkgconfig/gstreamer-gl-uninstalled.pc
pkgconfig/gstreamer-plugins-base.pc
pkgconfig/gstreamer-plugins-base-uninstalled.pc
-tests/Makefile
-tests/examples/encoding/Makefile
-tests/examples/fft/Makefile
-tests/examples/gio/Makefile
+-tests/examples/gl/Makefile
+-tests/examples/gl/generic/Makefile
+-tests/examples/gl/generic/cube/Makefile
+-tests/examples/gl/generic/doublecube/Makefile
+-tests/examples/gl/generic/recordgraphic/Makefile
+-tests/examples/gl/generic/cubeyuv/Makefile
+-tests/examples/gl/qt/Makefile
+-tests/examples/gl/gtk/Makefile
+-tests/examples/gl/gtk/fxtest/Makefile
+-tests/examples/gl/gtk/3dvideo/Makefile
+-tests/examples/gl/gtk/switchvideooverlay/Makefile
+-tests/examples/gl/gtk/filternovideooverlay/Makefile
+-tests/examples/gl/gtk/filtervideooverlay/Makefile
+-tests/examples/gl/cocoa/Makefile
+-tests/examples/gl/sdl/Makefile
+-tests/examples/gl/clutter/Makefile
-tests/examples/overlay/Makefile
-tests/examples/seek/Makefile
-tests/examples/snapshot/Makefile
docs/Makefile
docs/libs/Makefile
docs/plugins/Makefile
-diff -u --recursive gst-plugins-base-1.12.4-vanilla/Makefile.am gst-plugins-base-1.12.4/Makefile.am
---- gst-plugins-base-1.12.4-vanilla/Makefile.am 2018-02-11 09:54:25.091243946 -0500
-+++ gst-plugins-base-1.12.4/Makefile.am 2018-02-11 09:55:19.994357073 -0500
+diff -u --recursive gst-plugins-base-1.14.1-vanilla/Makefile.am gst-plugins-base-1.14.1/Makefile.am
+--- gst-plugins-base-1.14.1-vanilla/Makefile.am 2018-07-07 18:10:49.601305039 -0400
++++ gst-plugins-base-1.14.1/Makefile.am 2018-07-07 18:11:09.186387585 -0400
@@ -11,7 +11,6 @@
gst-libs \
gst sys $(SUBDIRS_EXT) \
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-plugins-good
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-good-$(PKG_VERSION)
PKG_SOURCE:=gst-plugins-good-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-good/
-PKG_HASH:=649f49bec60892d47ee6731b92266974c723554da1c6649f21296097715eb957
+PKG_HASH:=34ec062ddb766a32377532e039781f4a16fbc3e8b449e642605bacab26a99172
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
-diff -u --recursive gst-plugins-good-1.12.4-vanilla/configure.ac gst-plugins-good-1.12.4/configure.ac
---- gst-plugins-good-1.12.4-vanilla/configure.ac 2018-02-11 10:36:40.335391048 -0500
-+++ gst-plugins-good-1.12.4/configure.ac 2018-02-11 10:37:22.304475546 -0500
-@@ -1061,20 +1061,6 @@
+diff -u --recursive gst-plugins-good-1.14.1-vanilla/configure.ac gst-plugins-good-1.14.1/configure.ac
+--- gst-plugins-good-1.14.1-vanilla/configure.ac 2018-07-07 18:56:53.008234372 -0400
++++ gst-plugins-good-1.14.1/configure.ac 2018-07-07 18:57:24.886355477 -0400
+@@ -1292,22 +1292,6 @@
sys/v4l2/Makefile
sys/waveform/Makefile
sys/ximage/Makefile
-tests/examples/audiofx/Makefile
-tests/examples/cairo/Makefile
-tests/examples/equalizer/Makefile
+-tests/examples/gtk/Makefile
-tests/examples/jack/Makefile
-tests/examples/level/Makefile
-tests/examples/rtp/Makefile
+-tests/examples/rtsp/Makefile
-tests/examples/shapewipe/Makefile
-tests/examples/spectrum/Makefile
-tests/examples/v4l2/Makefile
common/Makefile
common/m4/Makefile
m4/Makefile
-diff -u --recursive gst-plugins-good-1.12.4-vanilla/Makefile.am gst-plugins-good-1.12.4/Makefile.am
---- gst-plugins-good-1.12.4-vanilla/Makefile.am 2018-02-11 10:36:40.335391048 -0500
-+++ gst-plugins-good-1.12.4/Makefile.am 2018-02-11 10:37:37.242505621 -0500
+diff -u --recursive gst-plugins-good-1.14.1-vanilla/Makefile.am gst-plugins-good-1.14.1/Makefile.am
+--- gst-plugins-good-1.14.1-vanilla/Makefile.am 2018-07-07 18:56:53.008234372 -0400
++++ gst-plugins-good-1.14.1/Makefile.am 2018-07-07 18:57:30.015374957 -0400
@@ -2,7 +2,6 @@
ALWAYS_SUBDIRS = \
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-plugins-ugly
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-ugly-$(PKG_VERSION)
PKG_SOURCE:=gst-plugins-ugly-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-ugly/
-PKG_HASH:=1c165b8d888ed350acd8e6ac9f6fe06508e6fcc0a3afc6ccc9fbeb30df9be522
+PKG_HASH:=cff2430bb13f54ef81409a0b3d65ce409a376d4a7bab57a14a97d602539fe1d3
PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_gst1-mod-asf \
- CONFIG_PACKAGE_gst1-mod-lame \
- CONFIG_PACKAGE_gst1-mod-mpg123 \
CONFIG_PACKAGE_gst1-mod-mpeg2dec \
PKG_FIXUP:=autoreconf
--disable-dvdread \
--disable-dvdsub \
--disable-iec958 \
- $(call GST_COND_SELECT,lame) \
- $(call GST_COND_SELECT,mpg123) \
$(call GST_COND_SELECT,mpeg2dec) \
--disable-mpegaudioparse \
--disable-mpegstream \
endef
$(eval $(call GstBuildPlugin,asf,ASF demuxer,audio video riff rtp rtsp sdp tag,,))
-$(eval $(call GstBuildPlugin,lame,MP3 encoder (using LAME),audio,,+lame-lib))
-$(eval $(call GstBuildPlugin,mpg123,MP3 decoder (using mpg123),audio tag,,+libid3tag +mpg123))
$(eval $(call GstBuildPlugin,mpeg2dec,MPEG decoder,video,,+libmpeg2))
$(eval $(call BuildPackage,gstreamer1-plugins-ugly))
include $(TOPDIR)/rules.mk
PKG_NAME:=gstreamer1
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
PKG_BUILD_DIR:=$(BUILD_DIR)/gstreamer-$(PKG_VERSION)
PKG_SOURCE:=gstreamer-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gstreamer/
-PKG_HASH:=5a8704aa4c2eeb04da192c4a9942f94f860ac1a585de90d9f914bac26a970674
+PKG_HASH:=28d82b0d261544a9bf85b429399929e4986eb00efcf1ce16cc71d269a4c3186c
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=autogen.sh aclocal.m4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/mpromonet/v4l2rtspserver.git
-PKG_SOURCE_VERSION:=d7e8dd4d35a802219222642a2e3b28f2dc5069c1
-PKG_DATE:=2017-12-20
+PKG_MIRROR_HASH:=ccd2424b94feb7c52e53700b8613e16291463e3717aff598385d8439ad8c81af
+PKG_SOURCE_VERSION:=7ead7613fe6719b6004d229130f7d62aa0a149e7
+PKG_DATE:=2018-05-26
PKG_NAME:=v4l2rtspserver
PKG_VERSION:=$(PKG_DATE)-$(PKG_SOURCE_VERSION)
PKG_RELEASE:=1
PKG_MAINTAINER:=Roger Dammit <rogerdammit@gmail.com>
-LIVE555_VERSION:=2017.10.28
-LIVE555_MD5SUM:=a5acd14c4fa7b50f7270304d3b4a70ae
+LIVE555_VERSION:=2018.04.25
+LIVE555_MD5SUM:=9b58a5d62659eb29b9bd85d1b29c3a75
LIVE555_FILE:=live.$(LIVE555_VERSION).tar.gz
CMAKE_INSTALL:=1
endef
define Package/v4l2rtspserver/conffiles
- /etc/config/v4l2rtspserver
+/etc/config/v4l2rtspserver
endef
define Download/live555
$(MAKE) $(MAKE_FLAGS) -C $(PKG_BUILD_DIR)/v4l2wrapper CFLAGS="$(TARGET_CFLAGS) -I $(PKG_BUILD_DIR)/v4l2wrapper/inc"
$(CP) $(PKG_BUILD_DIR)/v4l2wrapper/libv4l2wrapper.a $(PKG_BUILD_DIR)
- # patch cmake file
- $(SED) 's/DEBUG/RELEASE/' $(PKG_BUILD_DIR)/CMakeLists.txt
+ # cmake patches (these are very hacky and should be a lot cleaner)
+
+ # prevent root path override
+ $(SED) 's/SET(CMAKE_FIND_ROOT_PATH/#SET(CMAKE_FIND_ROOT_PATH/' $(PKG_BUILD_DIR)/CMakeLists.txt
+
+ # set search path for v4l2wrapper to current build dir
+ $(SED) 's/V4L2WRAPPER_LIBRARY libv4l2wrapper.a/V4L2WRAPPER_LIBRARY libv4l2wrapper.a PATHS "." NO_CMAKE_FIND_ROOT_PATH/' $(PKG_BUILD_DIR)/CMakeLists.txt
+
+ # disable ALSA
+ $(SED) 's/find_package(ALSA QUIET)//' $(PKG_BUILD_DIR)/CMakeLists.txt
endef
define Package/v4l2rtspserver/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/v4l2rtspserver-$(PKG_VERSION) $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/v4l2rtspserver-$(PKG_VERSION) $(1)/usr/bin/
mv $(1)/usr/bin/v4l2rtspserver-$(PKG_VERSION) $(1)/usr/bin/v4l2rtspserver
$(INSTALL_DIR) $(1)/etc/init.d
-COMPILE_OPTS = $(INCLUDES) -I. -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED -DNO_SSTREAM=1 -DALLOW_RTSP_SERVER_PORT_REUSE=1
+COMPILE_OPTS = $(INCLUDES) -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED -DNO_SSTREAM=1 -DALLOW_RTSP_SERVER_PORT_REUSE=1
C = c
C_COMPILER = $(GCC)
CFLAGS += $(COMPILE_OPTS)
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/clark15b/xupnpd.git
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
-PKG_MIRROR_HASH:=333e9938556c9a02b28732b5512626b991c65eaf0eb60d38e29f72ec513d312f
+PKG_MIRROR_HASH:=bba5aae63bb5c70af831a0f2ecbed3b0e39aa814ae383929b8eaef4ca1a8f421
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=youtube-dl
-PKG_VERSION:=2018.03.10
+PKG_VERSION:=2018.06.04
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://yt-dl.org/downloads/$(PKG_VERSION)/
-PKG_HASH:=4bfadccb19e379ce38f5601c72dacf0ac5e03881230afee6df2152ab42fa75c5
+PKG_HASH:=436ef69e59a1acf8091f5c294a563d6859ce6ec42543ea3abb501e2c09131301
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
PKG_LICENSE:=Unlicense
PKG_NAME:=acme
PKG_VERSION:=2.7.8
-PKG_RELEASE:=3
+PKG_RELEASE:=4
PKG_LICENSE:=GPLv3
PKG_SOURCE_PROTO:=git
translate("Webserver root directory. Set this to the webserver " ..
"document root to run Acme in webroot mode. The web " ..
"server must be accessible from the internet on port 80."))
-wr.rmempty = false
+wr.optional = true
dom = cs:option(DynamicList, "domains", translate("Domain names"),
translate("Domain names to include in the certificate. " ..
"In DNS mode, the domain name does not have to resolve to the router IP. " ..
"DNS mode is also the only mode that supports wildcard certificates. " ..
"Using this mode requires the acme-dnsapi package to be installed."))
-dns.rmempty = false
+dns.optional = true
cred = cs:option(DynamicList, "credentials", translate("DNS API credentials"),
translate("The credentials for the DNS API mode selected above. " ..
include $(TOPDIR)/rules.mk
PKG_NAME:=adblock
-PKG_VERSION:=3.5.2
+PKG_VERSION:=3.5.3
PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
option adb_src_desc 'generic blocklist, infrequent updates, approx. 6.000 entries'
option enabled '0'
-config source 'sysctl'
+config source 'sysctl'
option adb_src 'http://sysctl.org/cameleon/hosts'
option adb_src_rset '/^127\.0\.0\.1[[:space:]]+([^([:space:]|#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$2)}'
option adb_src_desc 'broad blocklist, weekly updates, approx. 16.500 entries'
option enabled '0'
config source 'winspy'
- option adb_src 'https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/win10/spy.txt'
+ option adb_src 'https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt'
option adb_src_rset '/^0\.0\.0\.0[[:space:]]+([^([:space:]|#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$2)}'
option adb_src_desc 'focus on windows spy & telemetry domains, infrequent updates, approx. 300 entries'
option enabled '0'
option adb_src_rset '/^([^([:space:]|#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$1)}'
option adb_src_desc 'focus on zeus botnet by abuse.ch, daily updates, approx. 400 entries'
option enabled '0'
+
#
LC_ALL=C
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="3.5.2"
+adb_ver="3.5.3"
adb_sysver="unknown"
adb_enabled=0
adb_debug=0
adb_hashutil="$(command -v sha256sum)"
adb_hashold=""
adb_hashnew=""
-adb_cnt=0
+adb_cnt=""
adb_rc=0
adb_action="${1:-"start"}"
adb_pidfile="/var/run/adblock.pid"
adb_dnsdir="${adb_dnsdir:-"/tmp"}"
adb_dnsheader=""
adb_dnsdeny="awk '{print \"server=/\"\$0\"/\"}'"
- if [ ${adb_jail} -eq 1 ]
- then
- adb_dnsallow="awk '{print \"server=/\"\$0\"/#\"}'"
- adb_dnshalt="server=/#/"
- fi
+ adb_dnsallow="awk '{print \"server=/\"\$0\"/#\"}'"
+ adb_dnshalt="server=/#/"
;;
unbound)
adb_dnsinstance="${adb_dnsinstance:-"0"}"
adb_dnsdir="${adb_dnsdir:-"/var/lib/unbound"}"
adb_dnsheader=""
adb_dnsdeny="awk '{print \"local-zone: \042\"\$0\"\042 static\"}'"
- if [ ${adb_jail} -eq 1 ]
- then
- adb_dnsallow="awk '{print \"local-zone: \042\"\$0\"\042 transparent\"}'"
- adb_dnshalt="local-zone: \".\" static"
- fi
+ adb_dnsallow="awk '{print \"local-zone: \042\"\$0\"\042 transparent\"}'"
+ adb_dnshalt="local-zone: \".\" static"
;;
named)
adb_dnsinstance="${adb_dnsinstance:-"0"}"
adb_dnsdir="${adb_dnsdir:-"/var/lib/bind"}"
adb_dnsheader="\$TTL 2h"$'\n'"@ IN SOA localhost. root.localhost. (1 6h 1h 1w 2h)"$'\n'" IN NS localhost."
adb_dnsdeny="awk '{print \"\"\$0\" CNAME .\n*.\"\$0\" CNAME .\"}'"
- if [ ${adb_jail} -eq 1 ]
- then
- adb_dnsallow="awk '{print \"\"\$0\" CNAME rpz-passthru.\n*.\"\$0\" CNAME rpz-passthru.\"}'"
- adb_dnshalt="* CNAME ."
- fi
+ adb_dnsallow="awk '{print \"\"\$0\" CNAME rpz-passthru.\n*.\"\$0\" CNAME rpz-passthru.\"}'"
+ adb_dnshalt="* CNAME ."
;;
kresd)
adb_dnsinstance="${adb_dnsinstance:-"0"}"
adb_dnsdir="${adb_dnsdir:-"/etc/kresd"}"
adb_dnsheader="\$TTL 2h"$'\n'"@ IN SOA localhost. root.localhost. (1 6h 1h 1w 2h)"$'\n'" IN NS localhost."
adb_dnsdeny="awk '{print \"\"\$0\" CNAME .\n*.\"\$0\" CNAME .\"}'"
- if [ ${adb_jail} -eq 1 ]
- then
- adb_dnsallow="awk '{print \"\"\$0\" CNAME rpz-passthru.\n*.\"\$0\" CNAME rpz-passthru.\"}'"
- adb_dnshalt="* CNAME ."
- fi
+ adb_dnsallow="awk '{print \"\"\$0\" CNAME rpz-passthru.\n*.\"\$0\" CNAME rpz-passthru.\"}'"
+ adb_dnshalt="* CNAME ."
;;
dnscrypt-proxy)
adb_dnsinstance="${adb_dnsinstance:-"0"}"
adb_dnsdir="${adb_dnsdir:-"/tmp"}"
adb_dnsheader=""
adb_dnsdeny="awk '{print \$0}'"
+ adb_dnsallow=""
+ adb_dnshalt=""
;;
esac
cnt=$((cnt+1))
done
- if [ -z "${adb_dns}" ] || [ -z "${adb_dnsdeny}" ] || [ ! -x "$(command -v ${adb_dns})" ] || [ ! -d "${adb_dnsdir}" ]
+ if [ "${dns_up}" != "true" ] || [ -z "${adb_dns}" ] || [ ! -x "$(command -v ${adb_dns})" ]
then
- f_log "err" "'${adb_dns}' not running, DNS backend not found"
+ f_log "err" "'${adb_dns}' not running or not executable"
+ elif [ ! -d "${adb_dnsdir}" ]
+ then
+ f_log "err" "'${adb_dnsdir}' backend directory not found"
fi
}
adb_cnt=0
if [ -s "${adb_dnsdir}/${adb_dnsfile}" ] && ([ -z "${mode}" ] || [ "${mode}" = "final" ])
then
+ adb_cnt="$(( $(wc -l 2>/dev/null < "${adb_dnsdir}/${adb_dnsfile}") - $(wc -l 2>/dev/null < "${adb_tmpdir}/tmp.add_whitelist") ))"
if [ "${adb_dns}" = "named" ] || [ "${adb_dns}" = "kresd" ]
then
- adb_cnt="$(( ($(wc -l 2>/dev/null < "${adb_dnsdir}/${adb_dnsfile}") - $(printf '%s' "${adb_dnsheader}" | grep -c "^")) / 2 ))"
- else
- adb_cnt="$(wc -l 2>/dev/null < "${adb_dnsdir}/${adb_dnsfile}")"
+ adb_cnt="$(( (${adb_cnt} - $(printf '%s' "${adb_dnsheader}" | grep -c "^")) / 2 ))"
fi
- elif [ "${mode}" = "whitelist" ] && [ -s "${adb_tmpdir}/tmp.whitelist" ]
- then
- adb_cnt="$(wc -l 2>/dev/null < "${adb_tmpdir}/tmp.whitelist")"
elif [ -s "${adb_tmpfile}" ]
then
adb_cnt="$(wc -l 2>/dev/null < "${adb_tmpfile}")"
if [ ${adb_enabled} -eq 1 ] && [ ${adb_forcedns} -eq 1 ] && \
[ -z "$(uci -q get firewall.adblock_dns)" ] && [ $(/etc/init.d/firewall enabled; printf '%u' ${?}) -eq 0 ]
then
- uci -q batch <<-EOF
- set firewall.adblock_dns="redirect"
- set firewall.adblock_dns.name="Adblock DNS"
- set firewall.adblock_dns.src="lan"
- set firewall.adblock_dns.proto="tcp udp"
- set firewall.adblock_dns.src_dport="53"
- set firewall.adblock_dns.dest_port="53"
- set firewall.adblock_dns.target="DNAT"
- EOF
+ uci -q batch <<-EOF
+ set firewall.adblock_dns="redirect"
+ set firewall.adblock_dns.name="Adblock DNS"
+ set firewall.adblock_dns.src="lan"
+ set firewall.adblock_dns.proto="tcp udp"
+ set firewall.adblock_dns.src_dport="53"
+ set firewall.adblock_dns.dest_port="53"
+ set firewall.adblock_dns.target="DNAT"
+ EOF
elif [ -n "$(uci -q get firewall.adblock_dns)" ] && ([ ${adb_enabled} -eq 0 ] || [ ${adb_forcedns} -eq 0 ])
then
uci -q delete firewall.adblock_dns
adb_tmpfile="${adb_tmpdir}/${adb_dnsfile}"
;;
final)
- if [ -s "${adb_tmpdir}/tmp.whitelist" ]
+ > "${adb_dnsdir}/${adb_dnsfile}"
+
+ if [ -s "${adb_tmpdir}/tmp.add_whitelist" ]
+ then
+ cat "${adb_tmpdir}/tmp.add_whitelist" >> "${adb_dnsdir}/${adb_dnsfile}"
+ fi
+
+ if [ -s "${adb_tmpdir}/tmp.rem_whitelist" ]
then
- grep -vf "${adb_tmpdir}/tmp.whitelist" "${adb_tmpdir}/${adb_dnsfile}" | eval "${adb_dnsdeny}" > "${adb_dnsdir}/${adb_dnsfile}"
+ grep -vf "${adb_tmpdir}/tmp.rem_whitelist" "${adb_tmpdir}/${adb_dnsfile}" | eval "${adb_dnsdeny}" >> "${adb_dnsdir}/${adb_dnsfile}"
else
- eval "${adb_dnsdeny}" "${adb_tmpdir}/${adb_dnsfile}" > "${adb_dnsdir}/${adb_dnsfile}"
+ eval "${adb_dnsdeny}" "${adb_tmpdir}/${adb_dnsfile}" >> "${adb_dnsdir}/${adb_dnsfile}"
fi
+
if [ ${?} -eq 0 ] && [ -n "${adb_dnsheader}" ]
then
printf '%s\n' "${adb_dnsheader}" | cat - "${adb_dnsdir}/${adb_dnsfile}" > "${adb_tmpdir}/${adb_dnsfile}"
#
f_query()
{
- local search result field=1 domain="${1}" tld="${1#*.}"
+ local search result prefix suffix field domain="${1}" tld="${1#*.}"
if [ -z "${domain}" ] || [ "${domain}" = "${tld}" ]
then
else
case "${adb_dns}" in
dnsmasq)
+ prefix=".*[\/\.]"
+ suffix="(\/)"
field=2
;;
unbound)
+ prefix=".*[\"\.]"
+ suffix="(static)"
field=3
;;
+ named)
+ prefix="[^\*].*[\.]"
+ suffix="( \.)"
+ field=1
+ ;;
+ kresd)
+ prefix="[^\*].*[\.]"
+ suffix="( \.)"
+ field=1
+ ;;
+ dnscrypt-proxy)
+ prefix=".*[\.]"
+ suffix=""
+ field=1
+ ;;
esac
while [ "${domain}" != "${tld}" ]
do
search="${domain//./\.}"
- result="$(awk -F '/|\"| ' "/^($search|[^\*].*[\/\"\. ]+${search})/{i++;{printf(\" + %s\n\",\$${field})};if(i>9){printf(\" + %s\n\",\"[...]\");exit}}" "${adb_dnsdir}/${adb_dnsfile}")"
+ result="$(awk -F '/|\"| ' "/^($search|${prefix}+${search}.*${suffix}$)/{i++;{printf(\" + %s\n\",\$${field})};if(i>9){printf(\" + %s\n\",\"[...]\");exit}}" "${adb_dnsdir}/${adb_dnsfile}")"
printf '%s\n' "::: results for domain '${domain}'"
printf '%s\n' "${result:-" - no match"}"
domain="${tld}"
#
f_jsnup()
{
- local bg_pid rundate="$(/bin/date "+%d.%m.%Y %H:%M:%S")" status="${1:-"enabled"}" mode="normal mode" no_mail=0
+ local bg_pid rundate status="${1:-"enabled"}" mode="normal mode" no_mail=0
if [ ${adb_rc} -gt 0 ]
then
status="error"
+ rundate="$(/bin/date "+%d.%m.%Y %H:%M:%S")"
fi
if [ ${adb_enabled} -eq 0 ]
then
status="disabled"
fi
+ if [ "${status}" = "enabled" ]
+ then
+ rundate="$(/bin/date "+%d.%m.%Y %H:%M:%S")"
+ fi
if [ "${status}" = "suspend" ]
then
status="paused"
no_mail=1
status="enabled"
fi
- if [ "${status}" = "enabled" ]
- then
- f_count
- fi
-
if [ ${adb_backup_mode} -eq 1 ]
then
mode="backup mode"
fi
- if [ -z "${adb_fetchinfo}" ] && [ -s "${adb_rtfile}" ]
+ if [ -s "${adb_rtfile}" ]
then
json_load "$(cat "${adb_rtfile}" 2>/dev/null)"
json_select data
- json_get_var adb_fetchinfo "fetch_utility"
+
+ if [ -z "${adb_fetchinfo}" ] && [ -s "${adb_rtfile}" ]
+ then
+ json_get_var adb_fetchinfo "fetch_utility"
+ fi
+ if [ -z "${rundate}" ]
+ then
+ json_get_var rundate "last_rundate"
+ fi
+ if [ -z "${adb_cnt}" ]
+ then
+ json_get_var adb_cnt "overall_domains"
+ adb_cnt="${adb_cnt%% *}"
+ fi
fi
json_init
json_add_object "data"
json_add_string "adblock_status" "${status}"
json_add_string "adblock_version" "${adb_ver}"
- json_add_string "overall_domains" "${adb_cnt} (${mode})"
+ json_add_string "overall_domains" "${adb_cnt:-0} (${mode})"
json_add_string "fetch_utility" "${adb_fetchinfo:-"-"}"
json_add_string "dns_backend" "${adb_dns} (${adb_dnsdir})"
json_add_string "last_rundate" "${rundate:-"-"}"
then
f_rmdns
f_jsnup
- logger -p "${class}" -t "adblock-[${adb_ver}]" "Please also check 'https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md' (${adb_sysver})"
+ logger -p "${class}" -t "adblock-[${adb_ver}]" "Please also check 'https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md'"
exit 1
fi
fi
tmp_load="${adb_tmpload}"
tmp_file="${adb_tmpfile}"
> "${adb_dnsdir}/.${adb_dnsfile}"
- > "${adb_tmpdir}/tmp.whitelist"
+ > "${adb_tmpdir}/tmp.raw_whitelist"
+ > "${adb_tmpdir}/tmp.add_whitelist"
+ > "${adb_tmpdir}/tmp.rem_whitelist"
f_log "debug" "f_main ::: dns: ${adb_dns}, fetch_util: ${adb_fetchinfo}, backup: ${adb_backup}, backup_mode: ${adb_backup_mode}, dns_jail: ${adb_jail}, force_srt: ${adb_forcesrt}, force_dns: ${adb_forcedns}, mem_total: ${mem_total:-0}, mem_free: ${mem_free:-0}, max_queue: ${adb_maxqueue}"
# prepare whitelist entries
#
if [ -s "${adb_whitelist}" ]
then
+ adb_whitelist_rset="/^([^([:space:]|\#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$1)}"
+ awk "${adb_whitelist_rset}" "${adb_whitelist}" > "${adb_tmpdir}/tmp.raw_whitelist"
+ f_tld "${adb_tmpdir}/tmp.raw_whitelist"
+
adb_whitelist_rset="/^([^([:space:]|\#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{gsub(\"\\\.\",\"\\\.\",\$1);print tolower(\"^\"\$1\"\\\|\\\.\"\$1)}"
- awk "${adb_whitelist_rset}" "${adb_whitelist}" > "${adb_tmpdir}/tmp.whitelist"
- f_list whitelist
- if [ ${adb_jail} -eq 1 ] && [ "${adb_dns}" != "dnscrypt-proxy" ]
+ awk "${adb_whitelist_rset}" "${adb_tmpdir}/tmp.raw_whitelist" > "${adb_tmpdir}/tmp.rem_whitelist"
+
+ if [ -n "${adb_dnsallow}" ]
then
- adb_whitelist_rset="/^([^([:space:]|\#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$1)}"
- awk "${adb_whitelist_rset}" "${adb_whitelist}" > "${adb_tmpdir}/tmp.dnsjail"
+ eval "${adb_dnsallow}" "${adb_tmpdir}/tmp.raw_whitelist" > "${adb_tmpdir}/tmp.add_whitelist"
fi
fi
# build 'dnsjail' list
#
- if [ ${adb_jail} -eq 1 ] && [ "${adb_dns}" != "dnscrypt-proxy" ]
+ if [ ${adb_jail} -eq 1 ]
then
- f_tld "${adb_tmpdir}/tmp.dnsjail"
- eval "${adb_dnsallow}" "${adb_tmpdir}/tmp.dnsjail" > "/tmp/${adb_dnsjail}"
+ cat "${adb_tmpdir}/tmp.add_whitelist" > "/tmp/${adb_dnsjail}"
printf '%s\n' "${adb_dnshalt}" >> "/tmp/${adb_dnsjail}"
if [ -n "${adb_dnsheader}" ]
then
include $(TOPDIR)/rules.mk
PKG_NAME:=addrwatch
-PKG_VERSION:=0.8
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.1
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-master.tar.gz
-PKG_SOURCE_URL:=https://github.com/fln/addrwatch/releases/download/$(PKG_VERSION)/
-PKG_HASH:=0455bd8d2e18a793e1182712bf4df3e54a5b7575f82f5b79b60deef19ff93df8
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/fln/addrwatch/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=be70150a357558481de8488665da1d6efdfa5dc37666d9fa68e8e73a8b59ade6
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=COPYING
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-master
PKG_FIXUP:=autoreconf
PKG_BUILD_DEPENDS:=USE_UCLIBC:argp-standalone USE_MUSL:argp-standalone
endef
define Package/addrwatch/description
- This is a tool similar to arpwatch. It main purpose is to monitor network and
+ This is a tool similar to arpwatch. It main purpose is to monitor network and
log discovered ethernet/ip pairings. Addrwatch is extremely useful in networks
with IPv6 autoconfiguration (RFC4862) enabled. It allows to track IPv6
addresses of hosts using IPv6 privacy extensions (RFC4941).
+diff --git a/configure.ac b/configure.ac
+index e70edc2..5d8b716 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -56,9 +56,6 @@ AC_CHECK_HEADERS([arpa/inet.h netinet/in
+@@ -58,9 +58,6 @@ AC_CHECK_HEADERS([arpa/inet.h netinet/in.h stdint.h stdlib.h syslog.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_PID_T
AC_TYPE_UINT32_T
AC_TYPE_UINT16_T
AC_TYPE_UINT8_T
+diff --git a/src/addrwatch.c b/src/addrwatch.c
+index 7647e02..93e1f61 100644
--- a/src/addrwatch.c
+++ b/src/addrwatch.c
-@@ -339,7 +339,7 @@ void reload_cb(evutil_socket_t fd, short
+@@ -327,7 +327,7 @@ void reload_cb(evutil_socket_t fd, short events, void *arg)
void reload_cb(int fd, short events, void *arg)
#endif
{
log_msg(LOG_DEBUG, "Reopening output files");
output_flatfile_reload();
-@@ -353,7 +353,7 @@ void stop_cb(evutil_socket_t fd, short e
+@@ -341,7 +341,7 @@ void stop_cb(evutil_socket_t fd, short events, void *arg)
void stop_cb(int fd, short events, void *arg)
#endif
{
--- a/src/addrwatch.c
+++ b/src/addrwatch.c
-@@ -492,7 +492,7 @@ int main(int argc, char *argv[])
+@@ -485,7 +485,7 @@ int main(int argc, char *argv[])
argp_parse(&argp, argc, argv, 0, &optind, 0);
if (!cfg.hostname) {
--- /dev/null
+From 3852468f402bf9070eb1c9bab16cb1119db52f63 Mon Sep 17 00:00:00 2001
+From: Julius Kriukas <julius@kriukas.lt>
+Date: Sun, 4 Feb 2018 21:35:52 +0200
+Subject: [PATCH] Add experimental meson build support
+
+---
+ src/storage.c | 2 +-
+ 1 file changed, 1 insertions(+), 1 deletion(-)
+
+diff --git a/src/storage.c b/src/storage.c
+index c162496..8b7a77e 100644
+--- a/src/storage.c
++++ b/src/storage.c
+@@ -76,7 +76,7 @@ struct ip_node *blacklist_match(uint8_t *ip_addr, uint8_t addr_len)
+ return NULL;
+ }
+
+-inline uint16_t pkt_hash(uint8_t *l2_addr, uint8_t *ip_addr, uint8_t len, uint16_t vlan_tag)
++static inline uint16_t pkt_hash(uint8_t *l2_addr, uint8_t *ip_addr, uint8_t len, uint16_t vlan_tag)
+ {
+ int i;
+ uint16_t sum;
+--
+2.17.1
+
PKG_NAME:=aircrack-ng
PKG_VERSION:=1.2-rc1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE
--- /dev/null
+From 9a1846507ff043c397257206ff21adae90a122f4 Mon Sep 17 00:00:00 2001
+From: Thomas d'Otreppe <tdotreppe@aircrack-ng.org>
+Date: Wed, 21 Dec 2016 00:18:46 +0000
+Subject: [PATCH] Fixed compilation with OpenSSL 1.1.0 (Closes: #1711).
+
+git-svn-id: http://svn.aircrack-ng.org/trunk@2882 28c6078b-6c39-48e3-add9-af49d547ecab
+---
+ src/crypto.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/src/crypto.c b/src/crypto.c
+index c3318753..46fa9c52 100644
+--- a/src/crypto.c
++++ b/src/crypto.c
+@@ -288,7 +288,15 @@ void calc_pmk( char *key, char *essid_pre, unsigned char pmk[40] )
+ void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80], unsigned char mic[20]) {
+ int i;
+ unsigned char pke[100];
++ #if defined(USE_GCRYPT) || OPENSSL_VERSION_NUMBER < 0x10100000L
++ #define HMAC_USE_NO_PTR
++ #endif
++
++ #ifdef HMAC_USE_NO_PTR
+ HMAC_CTX ctx;
++ #else
++ HMAC_CTX * ctx;
++ #endif
+
+ memcpy( pke, "Pairwise key expansion", 23 );
+
+@@ -314,6 +322,7 @@ void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80],
+ memcpy( pke + 67, ap->wpa.snonce, 32 );
+ }
+
++ #ifdef HMAC_USE_NO_PTR
+ HMAC_CTX_init(&ctx);
+ HMAC_Init_ex(&ctx, pmk, 32, EVP_sha1(), NULL);
+ for(i = 0; i < 4; i++ )
+@@ -325,6 +334,20 @@ void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80],
+ HMAC_Final(&ctx, ptk + i*20, NULL);
+ }
+ HMAC_CTX_cleanup(&ctx);
++ #else
++ ctx = HMAC_CTX_new();
++ HMAC_Init_ex(ctx, pmk, 32, EVP_sha1(), NULL);
++ for(i = 0; i < 4; i++ )
++ {
++ pke[99] = i;
++ //HMAC(EVP_sha1(), values[0], 32, pke, 100, ptk + i * 20, NULL);
++ HMAC_Init_ex(ctx, 0, 0, 0, 0);
++ HMAC_Update(ctx, pke, 100);
++ HMAC_Final(ctx, ptk + i*20, NULL);
++ }
++ HMAC_CTX_free(ctx);
++ #endif
++ #undef HMAC_USE_NO_PTR
+
+ if( ap->wpa.keyver == 1 )
+ {
include $(INCLUDE_DIR)/package.mk
-define Package/ariang
+define Package/ariang/default
SECTION:=net
CATEGORY:=Network
SUBMENU:=Download Manager
- DEPENDS:=+uhttpd +aria2
- TITLE:=AriaNg is a web frontend making aria2 easier to use.
+ DEPENDS:=+aria2
+ TITLE:=AriaNg webui
URL:=https://github.com/mayswind/AriaNg
PKGARCH:=all
endef
AriaNg is a web frontend making aria2 easier to use. AriaNg is written in pure html & javascript, thus it does not need any compilers or runtime environment.
endef
+Package/ariang-nginx/description = $(Package/ariang/description)
+
+define Package/ariang
+ $(Package/ariang/default)
+ DEPENDS += +uhttpd
+ TITLE += for uhttpd webserver
+endef
+
+define Package/ariang-nginx
+ $(Package/ariang/default)
+ DEPENDS += +nginx
+ TITLE += for nginx webserver
+endef
+
define Build/Compile
endef
$(1)/www/ariang
endef
+Package/ariang-nginx/install = $(Package/ariang/install)
+
$(eval $(call BuildPackage,ariang))
+$(eval $(call BuildPackage,ariang-nginx))
include $(TOPDIR)/rules.mk
PKG_NAME:=autossh
-PKG_VERSION:=1.4e
-PKG_RELEASE:=2
+PKG_VERSION:=1.4f
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=http://www.harding.motd.ca/autossh/
-PKG_HASH:=9e8e10a59d7619176f4b986e256f776097a364d1be012781ea52e08d04679156
+PKG_HASH:=0172e5e1bea40c642e0ef025334be3aadd4ff3b4d62c0b177ed88a8384e2f8f2
PKG_LICENSE:=0BSD
include $(INCLUDE_DIR)/package.mk
format. Building with libjson support will require the
libxml2 package to be installed as well.
+config BIND_ENABLE_EDDSA
+ bool
+ default n
+ prompt "Include Edwards Curve DNSSEC signature support"
+ help
+ Enable BIND support for Edwards Curve DNSSEC signing algorithms
+ described in RFC 8080.
+
+ Note that this requires OpenSSL 1.1, which is not currently
+ the available in OpenWRT, so it is disabled by default.
endif
include $(TOPDIR)/rules.mk
PKG_NAME:=bind
-PKG_VERSION:=9.11.2-P1
-PKG_RELEASE:=1
+PKG_VERSION:=9.11.3
+PKG_RELEASE:=2
USERID:=bind=57:bind=57
PKG_MAINTAINER:=Noah Meyerhans <frodo@morgul.net>
-PKG_LICENSE := BSD-3-Clause
+PKG_LICENSE := MPL-2.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:= \
http://www.mirrorservice.org/sites/ftp.isc.org/isc/bind9/$(PKG_VERSION) \
http://ftp.isc.org/isc/bind9/$(PKG_VERSION)
-PKG_HASH:=cec31548832fca3f85d95178d4019b7d702039e8595d4c93914feba337df1212
+PKG_HASH:=0d9dde14b2ec7f9cdc3b69f19540c7a2e4eee7b6c727965dfae48810965876f5
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=aclocal.m4 libtool.m4
--with-gost=no \
--with-gssapi=no \
--with-ecdsa=$(if $(CONFIG_OPENSSL_WITH_EC),yes,no) \
+ --with-eddsa=$(if $(CONFIG_BIND_ENABLE_EDDSA),yes,no) \
--with-readline=no \
+ --enable-atomic=no \
--sysconfdir=/etc/bind
ifdef CONFIG_BIND_ENABLE_FILTER_AAAA
PKG_NAME:=bitlbee
PKG_VERSION:=3.5.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://get.bitlbee.org/src/ \
--- /dev/null
+--- a/lib/ssl_openssl.c
++++ b/lib/ssl_openssl.c
+@@ -64,11 +64,17 @@ void ssl_init(void)
+ {
+ const SSL_METHOD *meth;
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ SSL_library_init();
+
+ meth = SSLv23_client_method();
+ ssl_ctx = SSL_CTX_new(meth);
+ SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
++#else
++ meth = TLS_client_method();
++ ssl_ctx = SSL_CTX_new(meth);
++ SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION);
++#endif
+
+ initialized = TRUE;
+ }
+@@ -300,20 +306,20 @@ size_t ssl_des3_encrypt(const unsigned c
+ const unsigned char *iv, unsigned char **res)
+ {
+ int output_length = 0;
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+
+ *res = g_new0(unsigned char, 72);
+
+ /* Don't set key or IV because we will modify the parameters */
+- EVP_CIPHER_CTX_init(&ctx);
+- EVP_CipherInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, NULL, NULL, 1);
+- EVP_CIPHER_CTX_set_key_length(&ctx, key_len);
+- EVP_CIPHER_CTX_set_padding(&ctx, 0);
++ ctx = EVP_CIPHER_CTX_new();
++ EVP_CipherInit_ex(ctx, EVP_des_ede3_cbc(), NULL, NULL, NULL, 1);
++ EVP_CIPHER_CTX_set_key_length(ctx, key_len);
++ EVP_CIPHER_CTX_set_padding(ctx, 0);
+ /* We finished modifying parameters so now we can set key and IV */
+- EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, 1);
+- EVP_CipherUpdate(&ctx, *res, &output_length, input, input_len);
+- EVP_CipherFinal_ex(&ctx, *res, &output_length);
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CipherInit_ex(ctx, NULL, NULL, key, iv, 1);
++ EVP_CipherUpdate(ctx, *res, &output_length, input, input_len);
++ EVP_CipherFinal_ex(ctx, *res, &output_length);
++ EVP_CIPHER_CTX_free(ctx);
+ //EVP_cleanup();
+
+ return output_length;
PKG_REV:=2eb24810b5aa0b2d56f21562e52927020dc3090a
PKG_VERSION:=2014-01-24
-PKG_RELEASE=1
+PKG_RELEASE=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ryd/chaosvpn.git
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chaosvpn $(1)/usr/sbin/
$(INSTALL_BIN) ./files/chaosvpn.init $(1)/etc/init.d/chaosvpn
$(INSTALL_BIN) ./files/chaosvpn.hotplug $(1)/etc/hotplug.d/iface/40-chaosvpn
- sed -i -e 's/"\/sbin\/ip /"\/usr\/sbin\/ip /' $(PKG_BUILD_DIR)/chaosvpn.conf
$(INSTALL_CONF) $(PKG_BUILD_DIR)/chaosvpn.conf $(1)/etc/tinc/chaosvpn.conf
endef
--- /dev/null
+From c842faae63b562acc7d989a9cdc815def9ee2ed6 Mon Sep 17 00:00:00 2001
+From: Sven-Haegar Koch <haegar@sdinet.de>
+Date: Wed, 2 Nov 2016 23:08:24 +0100
+Subject: [PATCH] OpenSSL 1.1.0 compile fix.
+
+---
+ crypto.c | 53 +++++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 35 insertions(+), 18 deletions(-)
+
+diff --git a/crypto.c b/crypto.c
+index e476611..e8b72d3 100644
+--- a/crypto.c
++++ b/crypto.c
+@@ -46,6 +46,10 @@ openssl dgst \
+
+ */
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define EVP_PKEY_get0_RSA(a) ((a)->pkey.rsa)
++#endif
++
+ EVP_PKEY *
+ crypto_load_key(const char *key, const bool is_private)
+ {
+@@ -80,7 +84,7 @@ crypto_rsa_verify_signature(struct string *databuffer, struct string *signature,
+ {
+ int err;
+ bool retval;
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ EVP_PKEY *pkey;
+
+ /* load public key into openssl structure */
+@@ -89,15 +93,22 @@ crypto_rsa_verify_signature(struct string *databuffer, struct string *signature,
+ log_err("crypto_verify_signature: key loading failed\n");
+ return false;
+ }
+-
++
++ md_ctx = EVP_MD_CTX_create();
++ if (!md_ctx) {
++ log_err("crypto_verify_signature: md_ctx alloc failed\n");
++ return false;
++ }
++
+ /* Verify the signature */
+- if (EVP_VerifyInit(&md_ctx, EVP_sha512()) != 1) {
++ if (EVP_VerifyInit(md_ctx, EVP_sha512()) != 1) {
+ log_err("crypto_verify_signature: libcrypto verify init failed\n");
++ EVP_MD_CTX_destroy(md_ctx);
+ EVP_PKEY_free(pkey);
+ return false;
+ }
+- EVP_VerifyUpdate(&md_ctx, string_get(databuffer), string_length(databuffer));
+- err = EVP_VerifyFinal(&md_ctx, (unsigned char*)string_get(signature), string_length(signature), pkey);
++ EVP_VerifyUpdate(md_ctx, string_get(databuffer), string_length(databuffer));
++ err = EVP_VerifyFinal(md_ctx, (unsigned char*)string_get(signature), string_length(signature), pkey);
+ EVP_PKEY_free(pkey);
+
+ if (err != 1) {
+@@ -110,7 +121,7 @@ crypto_rsa_verify_signature(struct string *databuffer, struct string *signature,
+ retval = true;
+
+ bailout_ctx_cleanup:
+- EVP_MD_CTX_cleanup(&md_ctx);
++ EVP_MD_CTX_destroy(md_ctx);
+
+ //log_info("Signature Verified Ok.\n");
+ return retval;
+@@ -146,7 +157,7 @@ crypto_rsa_decrypt(struct string *ciphertext, const char *privkey, struct string
+ len = RSA_private_decrypt(string_length(ciphertext),
+ (unsigned char*)string_get(ciphertext),
+ (unsigned char*)string_get(decrypted),
+- pkey->pkey.rsa,
++ EVP_PKEY_get0_RSA(pkey),
+ RSA_PKCS1_OAEP_PADDING);
+ if (len >= 0) {
+ /* TODO: need cleaner way: */
+@@ -167,28 +178,33 @@ bool
+ crypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct string *aes_iv, struct string *decrypted)
+ {
+ bool retval = false;
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+ int decryptspace;
+ int decryptdone;
+
+- EVP_CIPHER_CTX_init(&ctx);
+- if (!EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL,
++ ctx = EVP_CIPHER_CTX_new();
++ if (!ctx) {
++ log_err("crypto_aes_decrypt: ctx alloc failed\n");
++ goto bail_out;
++ }
++
++ if (!EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL,
+ (unsigned char *)string_get(aes_key),
+ (unsigned char *)string_get(aes_iv))) {
+ log_err("crypto_aes_decrypt: init failed\n");
+ ERR_print_errors_fp(stderr);
+ goto bail_out;
+ }
+- EVP_CIPHER_CTX_set_padding(&ctx, 1);
++ EVP_CIPHER_CTX_set_padding(ctx, 1);
+
+- if (string_length(aes_key) != EVP_CIPHER_CTX_key_length(&ctx)) {
++ if (string_length(aes_key) != EVP_CIPHER_CTX_key_length(ctx)) {
+ log_err("crypto_aes_decrypt: invalid key size (%" PRIuPTR " vs expected %d)\n",
+- string_length(aes_key), EVP_CIPHER_CTX_key_length(&ctx));
++ string_length(aes_key), EVP_CIPHER_CTX_key_length(ctx));
+ goto bail_out;
+ }
+- if (string_length(aes_iv) != EVP_CIPHER_CTX_iv_length(&ctx)) {
++ if (string_length(aes_iv) != EVP_CIPHER_CTX_iv_length(ctx)) {
+ log_err("crypto_aes_decrypt: invalid iv size (%" PRIuPTR " vs expected %d)\n",
+- string_length(aes_iv), EVP_CIPHER_CTX_iv_length(&ctx));
++ string_length(aes_iv), EVP_CIPHER_CTX_iv_length(ctx));
+ goto bail_out;
+ }
+
+@@ -201,7 +217,7 @@ crypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct str
+ goto bail_out;
+ }
+
+- if (EVP_DecryptUpdate(&ctx, (unsigned char*)string_get(decrypted),
++ if (EVP_DecryptUpdate(ctx, (unsigned char*)string_get(decrypted),
+ &decryptdone, (unsigned char*)string_get(ciphertext),
+ string_length(ciphertext))) {
+ /* TODO: need cleaner way: */
+@@ -212,7 +228,7 @@ crypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct str
+ goto bail_out;
+ }
+
+- if (EVP_DecryptFinal_ex(&ctx,
++ if (EVP_DecryptFinal_ex(ctx,
+ (unsigned char*)string_get(decrypted)+string_length(decrypted),
+ &decryptdone)) {
+ /* TODO: need cleaner way: */
+@@ -226,7 +242,8 @@ crypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct str
+ retval = true;
+
+ bail_out:
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ if (ctx)
++ EVP_CIPHER_CTX_free(ctx);
+ return retval;
+ }
+
PKG_VERSION:=2.7.7
# Release == build
# increase on changes of services files or tld_names.dat
-PKG_RELEASE:=6
+PKG_RELEASE:=8
PKG_LICENSE:=GPL-2.0
PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
###### *************************************************************************
define Package/ddns-scripts_cloudflare.com-v4
$(call Package/ddns-scripts/Default)
- TITLE:=CloudFlare.com API v4 (require cURL)
+ TITLE:=CloudFlare.com API v4 (requires cURL)
DEPENDS:=ddns-scripts +curl
endef
define Package/ddns-scripts_cloudflare.com-v4/description
Dynamic DNS Client scripts extension for CloudFlare.com API-v4 (require/install cURL)
endef
+###### *************************************************************************
+define Package/ddns-scripts_freedns_42_pl
+ $(call Package/ddns-scripts/Default)
+ TITLE:=DDNS extension for FreeDNS.42.pl (requires cURL)
+ DEPENDS:=ddns-scripts +curl
+endef
+define Package/ddns-scripts_freedns_42_pl/description
+ Dynamic DNS Client scripts extension for freedns.42.pl
+endef
+
###### *************************************************************************
define Package/ddns-scripts_godaddy.com-v1
$(call Package/ddns-scripts/Default)
exit 0 # suppress errors
endef
+###### *************************************************************************
+define Package/ddns-scripts_freedns_42_pl/preinst
+ #!/bin/sh
+ # if NOT run buildroot then stop service
+ [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
+ exit 0 # suppress errors
+endef
+define Package/ddns-scripts_freedns_42_pl/install
+ $(INSTALL_DIR) $(1)/etc/uci-defaults
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_freedns_42_pl
+ $(INSTALL_DIR) $(1)/usr/lib/ddns
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_freedns_42_pl.sh $(1)/usr/lib/ddns
+endef
+define Package/ddns-scripts_freedns_42_pl/postinst
+ #!/bin/sh
+ # remove old services file entries
+ /bin/sed -i '/freedns\.42\.pl/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
+ # and create new
+ printf "%s\\t%s\\n" '"freedns.42.pl"' '"update_freedns_42_pl.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
+ # on real system restart service if enabled
+ [ -z "$${IPKG_INSTROOT}" ] && {
+ [ -x /etc/uci-defaults/ddns_freedns_42_pl ] && \
+ /etc/uci-defaults/ddns_freedns_42_pl && \
+ rm -f /etc/uci-defaults/ddns_freedns_42_pl >/dev/null 2>&1
+ /etc/init.d/ddns enabled && \
+ /etc/init.d/ddns start >/dev/null 2>&1
+ }
+ exit 0 # suppress errors
+endef
+define Package/ddns-scripts_freedns_42_pl/prerm
+ #!/bin/sh
+ # if NOT run buildroot then stop service
+ [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
+ # remove services file entries
+ /bin/sed -i '/freedns\.42\.pl/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
+ exit 0 # suppress errors
+endef
+
###### *************************************************************************
define Package/ddns-scripts_godaddy.com-v1/preinst
#!/bin/sh
$(eval $(call BuildPackage,ddns-scripts))
$(eval $(call BuildPackage,ddns-scripts_cloudflare))
$(eval $(call BuildPackage,ddns-scripts_cloudflare.com-v4))
+$(eval $(call BuildPackage,ddns-scripts_freedns_42_pl))
$(eval $(call BuildPackage,ddns-scripts_godaddy.com-v1))
$(eval $(call BuildPackage,ddns-scripts_no-ip_com))
$(eval $(call BuildPackage,ddns-scripts_nsupdate))
$uc_uci set $g_cfgfile.$uc_name.$uc_var="dyn.com";;
free\.editdns\.net)
$uc_uci set $g_cfgfile.$uc_name.$uc_var="editdns.net";;
+ FreeDNS\.42\.pl)
+ $uc_uci set $g_cfgfile.$uc_name.$uc_var="freedns.42.pl";;
domains\.google\.com)
$uc_uci set $g_cfgfile.$uc_name.$uc_var="google.com";;
loopia\.com)
DRILL=$(which drill)
HOSTIP=$(which hostip)
NSLOOKUP=$(which nslookup)
-NSLOOKUP_MUSL=$($(which nslookup) localhost 2>&1 | grep -F "(null)") # not empty busybox compiled with musl
# Transfer Programs
WGET=$(which wget)
WGET_SSL=$(which wget-ssl)
CURL=$(which curl)
-# CURL_SSL not empty then SSL support available
-CURL_SSL=$($(which curl) -V 2>/dev/null | grep "Protocols:" | grep -F "https")
+
# CURL_PROXY not empty then Proxy support available
CURL_PROXY=$(find /lib /usr/lib -name libcurl.so* -exec strings {} 2>/dev/null \; | grep -im1 "all_proxy")
UCLIENT_FETCH=$(which uclient-fetch)
-# UCLIENT_FETCH_SSL not empty then SSL support available
-UCLIENT_FETCH_SSL=$(find /lib /usr/lib -name libustream-ssl.so* 2>/dev/null)
# Global configuration settings
# allow NON-public IP's
# 2nd choice is cURL IPv4/IPv6/HTTPS
# libcurl might be compiled without Proxy or HTTPS Support
elif [ -n "$CURL" ]; then
+ # CURL_SSL not empty then SSL support available
+ CURL_SSL=$($(which curl) -V 2>/dev/null | grep "Protocols:" | grep -F "https")
__PROG="$CURL -RsS -o $DATFILE --stderr $ERRFILE"
# check HTTPS support
[ -z "$CURL_SSL" -a $use_https -eq 1 ] && \
# uclient-fetch possibly with ssl support if /lib/libustream-ssl.so installed
elif [ -n "$UCLIENT_FETCH" ]; then
+ # UCLIENT_FETCH_SSL not empty then SSL support available
+ UCLIENT_FETCH_SSL=$(find /lib /usr/lib -name libustream-ssl.so* 2>/dev/null)
__PROG="$UCLIENT_FETCH -q -O $DATFILE"
# force network/ip not supported
[ -n "$__BINDIP" ] && \
__RUNPROG="$__PROG $lookup_host >$DATFILE 2>$ERRFILE"
__PROG="hostip"
elif [ -n "$NSLOOKUP" ]; then # last use BusyBox nslookup
+ NSLOOKUP_MUSL=$($(which nslookup) localhost 2>&1 | grep -F "(null)") # not empty busybox compiled with musl
[ $force_dnstcp -ne 0 ] && \
write_log 14 "Busybox nslookup - no support for 'DNS over TCP'"
[ -n "$NSLOOKUP_MUSL" -a -n "$dns_server" ] && \
#
#.cloudflare.com-v1 !!! Please install additional package "ddns-scripts_cloudflare"
#.cloudflare.com-v4 !!! Please install additional package "ddns-scripts_cloudflare.com-v4"
+#.FreeDNS.42.pl !!! Please install additional package "ddns-scripts_freedns_42_pl"
#.godaddy.com-v1 !!! Please install additional package "ddns-scripts_godaddy.com-v1"
#.no-ip.com / noip.com !!! Please install additional package "ddns-scripts_no-ip_com"
#.route53-v1 !!! Please install additional package "ddns-scripts_route53-v1"
#
# check parameters
-[ -z "$CURL_SSL" ] && write_log 14 "Cloudflare communication require cURL with SSL support. Please install"
+[ -z "$CURL" ] && [ -z "$CURL_SSL" ] && write_log 14 "Cloudflare communication require cURL with SSL support. Please install"
[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"
[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing secret as 'password'"
[ $use_https -eq 0 ] && use_https=1 # force HTTPS
--- /dev/null
+#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
+#.2018 Michal Lipka <michal at sysadmin dot care>
+local __DUMMY
+local __URL="https://freedns.42.pl/xmlrpc.php"
+[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
+[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
+[ $ip_dynamic -eq 1 ] && __IP='\<dynamic\>'
+PROG="$(which curl) -sk"
+write_log 7 "sending update to freedns.42.pl with ip $__IP"
+XMLDATA="<?xml version='1.0'?><methodCall><methodName>xname.updateArecord</methodName><params><param><value><struct><member><name>name</name><value><string>[RECORDNAME]</string></value></member><member><name>zone</name><value><string>[ZONENAME]</string></value></member><member><name>oldaddress</name><value><string>*</string></value></member><member><name>updatereverse</name><value><string>0</string></value></member><member><name>user</name><value><string>[USERNAME]</string></value></member><member><name>ttl</name><value><string>600</string></value></member><member><name>newaddress</name><value><string>[IP]</string></value></member><member><name>password</name><value><string>[PASSWORD]</string></value></member></struct></value></param></params></methodCall>"
+XMLDATA=$(echo $XMLDATA | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
+-e "s#\[ZONENAME\]#$zone#g" -e "s#\[RECORDNAME\]#$record#g" -e "s#\[IP\]#$__IP#g")
+$PROG -d "$XMLDATA" -o $DATFILE $__URL || return 1
+write_log 7 "'freedns.42.pl' answered:\n$(cat $DATFILE)"
+grep "<fault>" $DATFILE > /dev/null 2>&1 && return 1
+grep '<name>serial</name>' $DATFILE >/dev/null 2>&1
+return $?
#
# check parameters
-[ -z "$CURL_SSL" ] && write_log 14 "GoDaddy communication require cURL with SSL support. Please install"
+[ -z "$CURL" ] && [ -z "$CURL_SSL" ] && write_log 14 "GoDaddy communication require cURL with SSL support. Please install"
[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"
[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing secret as 'password'"
[ $use_https -eq 0 ] && use_https=1 # force HTTPS
include $(TOPDIR)/rules.mk
PKG_NAME:=dhcpcd
-PKG_VERSION:=6.11.5
+PKG_VERSION:=7.0.5
PKG_RELEASE:=1
PKG_SOURCE_URL:=ftp://roy.marples.name/pub/dhcpcd \
http://roy.marples.name/downloads/dhcpcd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=6f9674dc7e27e936cc787175404a6171618675ecfb6903ab9887b1b66a87d69e
+PKG_HASH:=aa43fdb990be7c413fa92bdbcfb3775e4cdbff725cbcb68cd2a714ed4f58879d
PKG_LICENSE:=BSD-2c
PKG_LICENSE_FILES:=
include $(TOPDIR)/rules.mk
PKG_NAME:=dmapd
-PKG_VERSION:=0.0.73
+PKG_VERSION:=0.0.75
PKG_RELEASE:=1
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.flyn.org/projects/dmapd
-PKG_HASH:=5447e8d28cd93739efe479e8ca3e140043b11aca4427676e8990b300618011a1
+PKG_SOURCE_URL:=https://www.flyn.org/projects/dmapd
+PKG_HASH:=f296a5ba02eae36a41381d19d5d08f2b9b7657091db9674f82121cd26c2893a1
PKG_FIXUP:=autoreconf
PKG_INSTALL:=2
define Package/dmapd
SECTION:=net
CATEGORY:=Network
- DEPENDS:=+libdmapsharing +libdb47 +vips
+ DEPENDS:=+libdmapsharing +libdb47 +vips +libgst1pbutils
TITLE:= dmapd
URL:=http://www.flyn.org/projects/dmapd/
USERID:=dmapd=56:dmapd=56
# Copyright (C) 2009-2012 OpenWrt.org
START=60
+USE_PROCD=1
+PROG=/usr/sbin/dmapd
-start() {
+start_service() {
[ -d /var/run/dmapd ] || {
mkdir -m 0755 -p /var/run/dmapd
chown dmapd:dmapd /var/run/dmapd
mkdir -m 0755 -p /var/media/music
mkdir -m 0755 -p /var/media/pictures
- service_start /usr/sbin/dmapd -u dmapd -g dmapd -m /var/media/music -p /var/media/pictures --vips-disc-threshold 64k
-}
-
-stop() {
- service_stop /usr/sbin/dmapd
+ procd_open_instance
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_set_param pidfile /var/run/dmapd.pid
+ procd_set_param user dmapd
+ procd_set_param command $PROG -f
+ procd_close_instance
}
+++ /dev/null
---- a/distro/dmapd.conf
-+++ b/distro/dmapd.conf
-@@ -3,7 +3,7 @@
- Database-Dir=/var/db/dmapd
-
- # Name that will be used to identify share:
--Share-Name=dmapd
-+Share-Name=OpenWrt
-
- # User that dmapd will run as, current user if undefined:
- User=dmapd
--- /dev/null
+--- a/configure.ac
++++ b/configure.ac
+@@ -233,7 +233,13 @@ else
+ AM_CONDITIONAL(USE_LIBDB, false)
+ fi
+
+-PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no)
++dnl Test if --enable-unit-test given
++AC_ARG_ENABLE(unit-test, [AC_HELP_STRING([--enable-unit-test],[enable unit test])])
++if test "x$enable_unit_test" = "xyes" ; then
++ PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no)
++else
++ have_check=no
++fi
+ AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes")
+
+ AM_CONDITIONAL(FLYN, test "$FLYN")
+++ /dev/null
---- a/configure.ac
-+++ b/configure.ac
-@@ -233,7 +233,13 @@ else
- AM_CONDITIONAL(USE_LIBDB, false)
- fi
-
--PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no)
-+dnl Test if --enable-unit-test given
-+AC_ARG_ENABLE(unit-test, [AC_HELP_STRING([--enable-unit-test],[enable unit test])])
-+if test "x$enable_unit_test" = "xyes" ; then
-+ PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no)
-+else
-+ have_check=no
-+fi
- AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes")
-
- AM_CONDITIONAL(FLYN, test "$FLYN")
PKG_LICENSE:=GPL-2.0
PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
-PKG_SOURCE:=v$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/archive/
-PKG_HASH:=cae011aacf6b250fc021c861fe46e15310349c474bca4553c0f829620e53e3bf
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)
+PKG_SOURCE_VERSION:=35be4a5b40aedc6a800c06389c220a8dbf35f1cc
+PKG_MIRROR_HASH:=2dab9ba63ee8a2c09ac84f5b69dc5a1e9beb3cf3deede55d405b8bc5dc711e97
PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=esniper
-PKG_VERSION:=2.32.0
+PKG_VERSION:=2.33.0
PKG_RELEASE:=1
PKG_LICENSE:=BSD-2-Clause
PKG_LICENSE_FILES:=COPYING
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(VERSION_TRANSFORMED)
PKG_SOURCE:=$(PKG_NAME)-$(VERSION_TRANSFORMED).tgz
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=5ee3e5237c6a12059ae9d38380505d38448c2c12787f9fcc603cdb0a1a519312
+PKG_HASH:=c9b8b10aefe5c397d7dee4c569f87f227c6710de528b1dc402379e5b4f1793dd
PKG_BUILD_PARALLEL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=freeradius3
-PKG_VERSION:=release_3_0_11
-PKG_RELEASE:=3
+PKG_VERSION:=release_3_0_17
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/FreeRADIUS/freeradius-server/archive
-PKG_HASH:=f0b32edb90368c3b9523e2baa792a1794d8bad662407f0d210a6c460541379b7
+PKG_HASH:=5b2382f08c0d9d064298281c1fb8348fc13df76550ce7a5cfc47ea91361fad91
PKG_MAINTAINER:=Lucile Quirion <lucile.quirion@savoirfairelinux.com>
PKG_LICENSE:=GPL-2.0
CONFIGURE_ARGS+= --without-rlm_ldap
endif
+ifeq ($(CONFIG_USE_GLIBC),y)
+ TARGET_CFLAGS+= -DLIBBSD_OVERLAY -I$(STAGING_DIR)/usr/include/bsd \
+ -D_RPC_NETDB_H
+ #^^^^^^^^^^^^^ avoid inclusion of librpc's netdb.h
+ CONFIGURE_LIBS+= -Wl,--push-state,--as-needed -lbsd -Wl,--pop-state
+endif
+
CONFIGURE_VARS+= \
LDFLAGS="$$$$LDFLAGS" \
LIBS="$(CONFIGURE_LIBS)" \
--- a/src/main/tls.c
+++ b/src/main/tls.c
-@@ -369,7 +369,7 @@ tls_session_t *tls_new_session(TALLOC_CT
+@@ -594,7 +594,7 @@ tls_session_t *tls_new_session(TALLOC_CT
*
* FIXME: Also do it every N sessions?
*/
((conf->session_last_flushed + ((int)conf->session_timeout * 1800)) <= request->timestamp)){
RDEBUG2("Flushing SSL sessions (of #%ld)", SSL_CTX_sess_number(conf->ctx));
-@@ -463,7 +463,7 @@ tls_session_t *tls_new_session(TALLOC_CT
+@@ -689,7 +689,7 @@ tls_session_t *tls_new_session(TALLOC_CT
state->mtu = vp->vp_integer;
}
return state;
}
-@@ -2675,7 +2675,7 @@ post_ca:
+@@ -3151,7 +3151,7 @@ post_ca:
/*
* Callbacks, etc. for session resumption.
*/
/*
* Cache sessions on disk if requested.
*/
-@@ -2745,7 +2745,7 @@ post_ca:
+@@ -3221,7 +3221,7 @@ post_ca:
/*
* Setup session caching
*/
--- /dev/null
+--- a/src/include/threads.h
++++ b/src/include/threads.h
+@@ -89,7 +89,7 @@ static _t __fr_thread_local_init_##_n(pt
+ # define fr_thread_local_get(_n) _n
+ #elif defined(HAVE_PTHREAD_H)
+ # include <pthread.h>
+-# define fr_thread_local_setup(_t, _n) \
++# define fr_thread_local_setup(_t, _n) static __thread _t _n;\
+ static pthread_key_t __fr_thread_local_key_##_n;\
+ static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\
+ static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\
+@@ -100,17 +100,17 @@ static void __fr_thread_local_destroy_##
+ static void __fr_thread_local_key_init_##_n(void)\
+ {\
+ (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\
+- (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ }\
+ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
+ {\
+ __fr_thread_local_destructor_##_n = func;\
+ if (_n) return _n; \
+ (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\
++ (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ return _n;\
+ }
+-# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
+-# define fr_thread_local_set(_n, _v) __fr_thread_local_set_##_n(_v)
+-# define fr_thread_local_get(_n) __fr_thread_local_get_##_n()
++# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
++# define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1))
++# define fr_thread_local_get(_n) _n
+ #endif
+ #endif
include $(TOPDIR)/rules.mk
PKG_NAME:=git
-PKG_VERSION:=2.17.1
+PKG_VERSION:=2.18.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/scm/git/
-PKG_HASH:=79136e7aa83abae4d8a25c8111f113d3c5a63aeb5fd93cc72c26d49c6d5ba65e
+PKG_HASH:=8b40be383a603147ae29337136c00d1c634bdfdc169a30924a024596a7e30e92
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
--- a/configure.ac
+++ b/configure.ac
-@@ -925,7 +925,8 @@ AC_RUN_IFELSE(
+@@ -929,7 +929,8 @@ AC_RUN_IFELSE(
FILE *f = fopen(".", "r");
- return f)]])],
+ return f != NULL;]])],
[ac_cv_fread_reads_directories=no],
- [ac_cv_fread_reads_directories=yes])
+ [ac_cv_fread_reads_directories=yes],
])
if test $ac_cv_fread_reads_directories = yes; then
FREAD_READS_DIRECTORIES=UnfortunatelyYes
-@@ -959,7 +960,8 @@ AC_RUN_IFELSE(
+@@ -963,7 +964,8 @@ AC_RUN_IFELSE(
if (snprintf(buf, 3, "%s", "12345") != 5
|| strcmp(buf, "12")) return 1]])],
[ac_cv_snprintf_returns_bogus=no],
])
if test $ac_cv_snprintf_returns_bogus = yes; then
SNPRINTF_RETURNS_BOGUS=UnfortunatelyYes
-@@ -982,7 +984,8 @@ yippeeyeswehaveit
+@@ -986,7 +988,8 @@ yippeeyeswehaveit
#endif
]),
[ac_cv_sane_mode_bits=yes],
--- a/Makefile
+++ b/Makefile
-@@ -1238,7 +1238,7 @@ else
+@@ -1297,7 +1297,7 @@ else
endif
curl_check := $(shell (echo 072200; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
ifeq "$(curl_check)" "072200"
DEPENDS:=+perlbase-essential +perlbase-sys +perlbase-data +perlbase-digest +perlbase-env +perlbase-time +git +perlbase-findbin +perlbase-storable +perlbase-text +perlbase-getopt +perlbase-utf8 +openssh-keygen +openssh-server +openssh-moduli perl
TITLE:=Easy administration of git repositories
URL:=http://gitolite.com/gitlolite
- MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
+ MAINTAINER:=Daniel Dickinson <cshored@thecshore.com>
USERID:=git=382:git=382
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=gnunet
-PKG_SOURCE_VERSION:=b673e9c3ed4a211b974bc602b893a427533566d7
-PKG_MIRROR_HASH:=89bc8cb5813bd38e0006d91fcd091b0eef533d6ff8462c800bf37d2e19966beb
+PKG_SOURCE_VERSION:=2b99bddcb6961cfda34087138acdda4b8b9ccb9f
+PKG_MIRROR_HASH:=7b1567d4d4b316ed4b70372bbcfc2039a93d6a7bbf24c2b3036b2c7f3bccc9b4
-PKG_VERSION:=0.10.2-git-20180205-$(PKG_SOURCE_VERSION)
-PKG_RELEASE:=1
+PKG_VERSION:=0.10.2-git-20180607-$(PKG_SOURCE_VERSION)
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://gnunet.org/git/gnunet.git
PKG_SOURCE_PROTO:=git
-PKG_LICENSE:=GPL-3.0
+PKG_LICENSE:=AGPL-3.0
PKG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
well as their helpers.
endef
+define Package/gnunet/config
+config GNUNET_HAS_ICONV_SUPPORT
+ depends on PACKAGE_gnunet && (!USE_UCLIBC || (USE_UCLIBC && BUILD_NLS))
+ bool
+ default y
+endef
+
define BuildComponent
PKG_CONFIG_DEPENDS+=CONFIG_PACKAGE_$(PKG_NAME)-$(1)
PLUGIN_fs-heap:=datastore_heap
CONFLICTS_fs-heap:=gnunet-fs-mysql gnunet-fs-pgsql gnunet-fs-sqlite
-DEPENDS_mysql:=+libmysqlclient
+DEPENDS_mysql:=+libmysqlclient @GNUNET_HAS_ICONV_SUPPORT
LIB_mysql:=mysql my
DEPENDS_social-mysql:=+gnunet-mysql +gnunet-social
include $(TOPDIR)/rules.mk
PKG_NAME:=haproxy
-PKG_VERSION:=1.8.4
-PKG_RELEASE:=01
+PKG_VERSION:=1.8.12
+PKG_RELEASE:=00
PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.haproxy.org/download/1.8/src/
-PKG_HASH:=e305b0a4e7dec08072841eef6ac6dcd1b5586b1eff09c2d51e152a912e8884a6
+PKG_HASH:=f438a98e657935fa8fad48b98d9029a399e0ad9105cf0e7e8e54365f93d83e9b
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0
MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
+ifneq ($(PKG_RELEASE),00)
+ BUILD_VERSION:=-patch$(PKG_RELEASE)
+endif
+
include $(INCLUDE_DIR)/package.mk
define Package/haproxy/Default
ENABLE_LUA:=y
ENABLE_REGPARM:=n
-ifeq ($(CONFIG_mips),y)
- ENABLE_LUA:=n
-endif
-ifeq ($(CONFIG_mipsel),y)
- ENABLE_LUA:=n
-endif
-
ifeq ($(CONFIG_TARGET_x86),y)
ENABLE_REGPARM:=y
endif
SMALL_OPTS="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530 " \
USE_LINUX_TPROXY=1 USE_LINUX_SPLICE=1 USE_TFO=1 \
USE_ZLIB=yes USE_PCRE=1 USE_PCRE_JIT=1 USE_GETADDRINFO=1 \
- VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
+ VERSION="$(PKG_VERSION)$(BUILD_VERSION)" \
$(ADDON) \
+ CFLAGS="$(TARGET_CFLAGS)" \
LD="$(TARGET_CC)" \
LDFLAGS="$(TARGET_LDFLAGS) -latomic" \
IGNOREGIT=1
--- /dev/null
+#!/bin/bash
+
+CLONEURL=http://git.haproxy.org/git/haproxy-1.8.git
+BASE_TAG=v1.8.12
+TMP_REPODIR=tmprepo
+PATCHESDIR=patches
+
+if test -d "${TMP_REPODIR}"; then rm -rf "${TMP_REPODIR}"; fi
+
+git clone "${CLONEURL}" "${TMP_REPODIR}"
+
+printf "Cleaning patches\n"
+find ${PATCHESDIR} -type f -name "*.patch" -exec rm -f "{}" \;
+
+i=0
+for cid in $(git -C "${TMP_REPODIR}" rev-list ${BASE_TAG}..HEAD | tac); do
+ filename="$(printf "%04d" $i)-$(git -C "${TMP_REPODIR}" log --format=%s -n 1 $cid | sed -e"s/[()']//g" -e's/[^_a-zA-Z0-9+-]\+/-/g' -e's/-$//').patch"
+ printf "Creating ${filename}\n"
+ git -C "${TMP_REPODIR}" show $cid > "${PATCHESDIR}/$filename"
+ git add "${PATCHESDIR}/$filename"
+ let i++
+done
+
+rm -rf "${TMP_REPODIR}"
+
+printf "finished\n"
+
+++ /dev/null
-From 2fcd544272a5498ffa49544e9f06b51bc93e55d1 Mon Sep 17 00:00:00 2001
-From: Olivier Houchard <ohouchard@haproxy.com>
-Date: Tue, 13 Feb 2018 15:17:23 +0100
-Subject: [PATCH] BUG/MEDIUM: ssl: Don't always treat SSL_ERROR_SYSCALL as
- unrecovarable.
-
-Bart Geesink reported some random errors appearing under the form of
-termination flags SD in the logs for connections involving SSL traffic
-to reach the servers.
-
-Tomek Gacek and Mateusz Malek finally narrowed down the problem to commit
-c2aae74 ("MEDIUM: ssl: Handle early data with OpenSSL 1.1.1"). It happens
-that the special case of SSL_ERROR_SYSCALL isn't handled anymore since
-this commit.
-
-SSL_read() might return <= 0, and SSL_get_erro() return SSL_ERROR_SYSCALL,
-without meaning the connection is gone. Before flagging the connection
-as in error, check the errno value.
-
-This should be backported to 1.8.
-
-(cherry picked from commit 7e2e505006feb8f3b4a7f9e0ac5e89b5a8c4895e)
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/ssl_sock.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/src/ssl_sock.c b/src/ssl_sock.c
-index aecf3dd..f118724 100644
---- a/src/ssl_sock.c
-+++ b/src/ssl_sock.c
-@@ -5437,6 +5437,12 @@ static int ssl_sock_to_buf(struct connection *conn, struct buffer *buf, int coun
- break;
- } else if (ret == SSL_ERROR_ZERO_RETURN)
- goto read0;
-+ /* For SSL_ERROR_SYSCALL, make sure the error is
-+ * unrecoverable before flagging the connection as
-+ * in error.
-+ */
-+ if (ret == SSL_ERROR_SYSCALL && (!errno || errno == EAGAIN))
-+ goto clear_ssl_error;
- /* otherwise it's a real error */
- goto out_error;
- }
-@@ -5451,11 +5457,12 @@ static int ssl_sock_to_buf(struct connection *conn, struct buffer *buf, int coun
- conn_sock_read0(conn);
- goto leave;
- out_error:
-+ conn->flags |= CO_FL_ERROR;
-+clear_ssl_error:
- /* Clear openssl global errors stack */
- ssl_sock_dump_errors(conn);
- ERR_clear_error();
-
-- conn->flags |= CO_FL_ERROR;
- goto leave;
- }
-
---
-1.7.10.4
-
+++ /dev/null
-From f7fa1d461aa71bbc8a6c23fdcfc305f2e52ce5dd Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Mon, 19 Feb 2018 14:25:15 +0100
-Subject: [PATCH] BUG/MEDIUM: ssl: Shutdown the connection for reading on
- SSL_ERROR_SYSCALL
-
-When SSL_read returns SSL_ERROR_SYSCALL and errno is unset or set to EAGAIN, the
-connection must be shut down for reading. Else, the connection loops infinitly,
-consuming all the CPU.
-
-The bug was introduced in the commit 7e2e50500 ("BUG/MEDIUM: ssl: Don't always
-treat SSL_ERROR_SYSCALL as unrecovarable."). This patch must be backported in
-1.8 too.
-
-(cherry picked from commit 4ac77a98cda3d0f9b1d9de7bbbda2c91357f0767)
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/ssl_sock.c | 14 ++++++++------
- 1 file changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/src/ssl_sock.c b/src/ssl_sock.c
-index f118724..a065bbb 100644
---- a/src/ssl_sock.c
-+++ b/src/ssl_sock.c
-@@ -5437,10 +5437,9 @@ static int ssl_sock_to_buf(struct connection *conn, struct buffer *buf, int coun
- break;
- } else if (ret == SSL_ERROR_ZERO_RETURN)
- goto read0;
-- /* For SSL_ERROR_SYSCALL, make sure the error is
-- * unrecoverable before flagging the connection as
-- * in error.
-- */
-+ /* For SSL_ERROR_SYSCALL, make sure to clear the error
-+ * stack before shutting down the connection for
-+ * reading. */
- if (ret == SSL_ERROR_SYSCALL && (!errno || errno == EAGAIN))
- goto clear_ssl_error;
- /* otherwise it's a real error */
-@@ -5453,16 +5452,19 @@ static int ssl_sock_to_buf(struct connection *conn, struct buffer *buf, int coun
- conn_cond_update_sock_polling(conn);
- return done;
-
-+ clear_ssl_error:
-+ /* Clear openssl global errors stack */
-+ ssl_sock_dump_errors(conn);
-+ ERR_clear_error();
- read0:
- conn_sock_read0(conn);
- goto leave;
-+
- out_error:
- conn->flags |= CO_FL_ERROR;
--clear_ssl_error:
- /* Clear openssl global errors stack */
- ssl_sock_dump_errors(conn);
- ERR_clear_error();
--
- goto leave;
- }
-
---
-1.7.10.4
-
+++ /dev/null
-From 8a5949f2d74c3a3a6c6da25449992c312b183ef3 Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Fri, 2 Feb 2018 15:54:15 +0100
-Subject: [PATCH] BUG/MEDIUM: http: Switch the HTTP response in tunnel mode as
- earlier as possible
-
-When the body length is undefined (no Content-Length or Transfer-Encoding
-headers), The reponse remains in ending mode, waiting the request is done. So,
-most of time this is not a problem because the resquest is done before the
-response. But when a client sends data to a server that replies without waiting
-all the data, it is really not desirable to wait the end of the request to
-finish the response.
-
-This bug was introduced when the tunneling of the request and the reponse was
-refactored, in commit 4be980391 ("MINOR: http: Switch requests/responses in
-TUNNEL mode only by checking txn flag").
-
-This patch should be backported in 1.8 and 1.7.
-
-(cherry picked from commit fd04fcf5edb0a24cd29ce8f4d4dc2aa3a0e2e82c)
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/proto_http.c | 15 +++++----------
- 1 file changed, 5 insertions(+), 10 deletions(-)
-
-diff --git a/src/proto_http.c b/src/proto_http.c
-index 64bd410..29880ea 100644
---- a/src/proto_http.c
-+++ b/src/proto_http.c
-@@ -4634,16 +4634,8 @@ int http_sync_res_state(struct stream *s)
- * let's enforce it now that we're not expecting any new
- * data to come. The caller knows the stream is complete
- * once both states are CLOSED.
-- *
-- * However, there is an exception if the response length
-- * is undefined. In this case, we switch in TUNNEL mode.
- */
-- if (!(txn->rsp.flags & HTTP_MSGF_XFER_LEN)) {
-- channel_auto_read(chn);
-- txn->rsp.msg_state = HTTP_MSG_TUNNEL;
-- chn->flags |= CF_NEVER_WAIT;
-- }
-- else if (!(chn->flags & (CF_SHUTW|CF_SHUTW_NOW))) {
-+ if (!(chn->flags & (CF_SHUTW|CF_SHUTW_NOW))) {
- channel_shutr_now(chn);
- channel_shutw_now(chn);
- }
-@@ -6241,6 +6233,8 @@ http_msg_forward_body(struct stream *s, struct http_msg *msg)
- /* The server still sending data that should be filtered */
- if (!(chn->flags & CF_SHUTR) && HAS_DATA_FILTERS(s, chn))
- goto missing_data_or_waiting;
-+ msg->msg_state = HTTP_MSG_TUNNEL;
-+ goto ending;
- }
-
- msg->msg_state = HTTP_MSG_ENDING;
-@@ -6262,7 +6256,8 @@ http_msg_forward_body(struct stream *s, struct http_msg *msg)
- /* default_ret */ 1,
- /* on_error */ goto error,
- /* on_wait */ goto waiting);
-- msg->msg_state = HTTP_MSG_DONE;
-+ if (msg->msg_state == HTTP_MSG_ENDING)
-+ msg->msg_state = HTTP_MSG_DONE;
- return 1;
-
- missing_data_or_waiting:
---
-1.7.10.4
-
+++ /dev/null
-From 7ccf7c9791f2b2329f3940d1347618af3a77bebc Mon Sep 17 00:00:00 2001
-From: Emeric Brun <ebrun@haproxy.com>
-Date: Mon, 19 Feb 2018 15:59:48 +0100
-Subject: [PATCH] BUG/MEDIUM: ssl/sample: ssl_bc_* fetch keywords are broken.
-
-Since the split between connections and conn-stream objects, this
-keywords are broken.
-
-This patch must be backported in 1.8
-
-(cherry picked from commit eb8def9f34c37537d56a69fcd211d4c4c8006bea)
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/ssl_sock.c | 31 ++++++++++++++-----------------
- 1 file changed, 14 insertions(+), 17 deletions(-)
-
-diff --git a/src/ssl_sock.c b/src/ssl_sock.c
-index 4d0d5db..d832d76 100644
---- a/src/ssl_sock.c
-+++ b/src/ssl_sock.c
-@@ -6580,8 +6580,8 @@ smp_fetch_ssl_x_key_alg(const struct arg *args, struct sample *smp, const char *
- static int
- smp_fetch_ssl_fc(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
-- struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
-- smp->strm ? smp->strm->si[1].end : NULL);
-+ struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+ smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-
- smp->data.type = SMP_T_BOOL;
- smp->data.u.sint = (conn && conn->xprt == &ssl_sock);
-@@ -6625,8 +6625,8 @@ smp_fetch_ssl_fc_is_resumed(const struct arg *args, struct sample *smp, const ch
- static int
- smp_fetch_ssl_fc_cipher(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
-- struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
-- smp->strm ? smp->strm->si[1].end : NULL);
-+ struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+ smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-
- smp->flags = 0;
- if (!conn || !conn->xprt_ctx || conn->xprt != &ssl_sock)
-@@ -6651,9 +6651,8 @@ smp_fetch_ssl_fc_cipher(const struct arg *args, struct sample *smp, const char *
- static int
- smp_fetch_ssl_fc_alg_keysize(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
-- struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
-- smp->strm ? smp->strm->si[1].end : NULL);
--
-+ struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+ smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
- int sint;
-
- smp->flags = 0;
-@@ -6676,8 +6675,8 @@ smp_fetch_ssl_fc_alg_keysize(const struct arg *args, struct sample *smp, const c
- static int
- smp_fetch_ssl_fc_use_keysize(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
-- struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
-- smp->strm ? smp->strm->si[1].end : NULL);
-+ struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+ smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-
- smp->flags = 0;
- if (!conn || !conn->xprt_ctx || conn->xprt != &ssl_sock)
-@@ -6747,8 +6746,8 @@ smp_fetch_ssl_fc_alpn(const struct arg *args, struct sample *smp, const char *kw
- static int
- smp_fetch_ssl_fc_protocol(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
-- struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
-- smp->strm ? smp->strm->si[1].end : NULL);
-+ struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+ smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-
- smp->flags = 0;
- if (!conn || !conn->xprt_ctx || conn->xprt != &ssl_sock)
-@@ -6773,9 +6772,8 @@ static int
- smp_fetch_ssl_fc_session_id(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
- #if OPENSSL_VERSION_NUMBER > 0x0090800fL
-- struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
-- smp->strm ? smp->strm->si[1].end : NULL);
--
-+ struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+ smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
- SSL_SESSION *ssl_sess;
-
- smp->flags = SMP_F_CONST;
-@@ -6917,9 +6915,8 @@ static int
- smp_fetch_ssl_fc_unique_id(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
- #if OPENSSL_VERSION_NUMBER > 0x0090800fL
-- struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
-- smp->strm ? smp->strm->si[1].end : NULL);
--
-+ struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+ smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
- int finished_len;
- struct chunk *finished_trash;
-
---
-1.7.10.4
-
include $(TOPDIR)/rules.mk
PKG_NAME:=i2pd
-PKG_VERSION:=2.18.0
+PKG_VERSION:=2.19.0
PKG_RELEASE:=1
PKG_BUILD_PARALLEL:=1
-PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://codeload.github.com/PurpleI2P/i2pd/tar.gz/$(PKG_VERSION)?
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MIRROR_HASH:=1a04826b54e649ebb341d3feacdd05c0415335679d1aa787a74ea5995d419378
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=https://github.com/PurpleI2P/i2pd.git
-PKG_SOURCE_VERSION:=$(PKG_VERSION)
+PKG_HASH:=7202497ffc3db632d0f7fed93eafaf39aa75efea199705dae7d022249b069eb9
PKG_LICENSE:=BSD-3-clause
include $(INCLUDE_DIR)/package.mk
$(INSTALL_DIR) $(1)/usr/share/i2pd
$(CP) $(PKG_BUILD_DIR)/contrib/certificates $(1)/usr/share/i2pd
$(INSTALL_DIR) $(1)/etc/i2pd
- $(LN) /usr/share/i2pd/certificates $(1)/etc/i2pd/certificates
- $(LN) /var/lib/i2pd/peerProfiles $(1)/etc/i2pd/peerProfiles
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/i2pd.conf $(1)/etc/i2pd
$(SED) ' \
s/127.0.0.1/192.168.1.1/g; \
USER="i2pd"
GROUP="i2pd"
PIDFILE=/var/run/i2pd.pid
-DATADIR=/etc/i2pd
-PEERDIR=/var/lib/i2pd/peerProfiles
+DATADIR=/var/lib/i2pd
start_service() {
## RAM
- if [ ! -d $PEERDIR ]; then
- mkdir -p $PEERDIR
- chown $USER:$GROUP $PEERDIR
+ if [ ! -d $DATADIR ]; then
+ mkdir -p $DATADIR
+ ln -s /usr/share/i2pd/certificates $DATADIR/certificates
+ ln -s /etc/i2pd/tunnels.conf $DATADIR/tunnels.conf
+ # for peoples who not possible to use http reseeding
+ ln -s /etc/i2pd/addressbook $DATADIR/addressbook
fi
## We need permissions
- chown -R $USER:$GROUP $DATADIR
+ chown $USER:$GROUP $DATADIR
touch $PIDFILE
chown $USER:adm $PIDFILE
procd_open_instance
- procd_set_param command $PROG --service --conf=/etc/i2pd/i2pd.conf
+ procd_set_param command $PROG --service --conf=/etc/i2pd/i2pd.conf --pidfile $PIDFILE
## Don't know about i2pd user's HOME
procd_set_param env HOME=$DATADIR
procd_set_param limits nofile=4096
PKG_NAME:=ibrdtnd
PKG_VERSION:=1.0.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
PKG_MAINTAINER:=Johannes Morgenroth <jm@m-network.de>
PKG_LICENSE:=Apache-2.0
+PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
--without-vmime \
--disable-libdaemon
+TARGET_CXXFLAGS += -std=gnu++03
+
define Package/ibrdtnd/install
$(INSTALL_DIR) $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dtnd $(1)/usr/sbin/
--- /dev/null
+From c794bbd16d2f39c656478608eb1314055e877370 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Sat, 26 May 2018 23:44:54 -0300
+Subject: [PATCH] ibrdtnd: added openssl compatibility
+
+This patch adds compatibility with openssl 1.1.0 to ibrdtnd.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ ibrdtn/daemon/src/security/exchange/DHProtocol.cpp | 36 ++++++++++---
+ ibrdtn/daemon/src/security/exchange/Makefile.am | 2 +
+ .../src/security/exchange/openssl_compat.cpp | 62 ++++++++++++++++++++++
+ .../daemon/src/security/exchange/openssl_compat.h | 13 +++++
+ 4 files changed, 107 insertions(+), 6 deletions(-)
+ create mode 100644 ibrdtn/daemon/src/security/exchange/openssl_compat.cpp
+ create mode 100644 ibrdtn/daemon/src/security/exchange/openssl_compat.h
+
+diff --git a/src/security/exchange/DHProtocol.cpp b/src/security/exchange/DHProtocol.cpp
+index e94c5026..3e0ad717 100644
+--- a/src/security/exchange/DHProtocol.cpp
++++ b/src/security/exchange/DHProtocol.cpp
+@@ -30,6 +30,7 @@
+
+ #include <openssl/rand.h>
+ #include <openssl/pem.h>
++#include "openssl_compat.h"
+
+ #define DH_KEY_LENGTH 1024
+
+@@ -132,6 +133,7 @@ namespace dtn
+
+ void DHProtocol::begin(KeyExchangeSession &session, KeyExchangeData &data)
+ {
++ const BIGNUM *pub_key, *p, *g;
+ // get session state
+ DHState &state = session.getState<DHState>();
+
+@@ -159,9 +161,12 @@ namespace dtn
+ // prepare request
+ KeyExchangeData request(KeyExchangeData::REQUEST, session);
+
+- write(request, state.dh->pub_key);
+- write(request, state.dh->p);
+- write(request, state.dh->g);
++ DH_get0_pqg(state.dh, &p, NULL, &g);
++ DH_get0_key(state.dh, &pub_key, NULL);
++
++ write(request, pub_key);
++ write(request, p);
++ write(request, g);
+
+ manager.submit(session, request);
+ }
+@@ -177,6 +182,15 @@ namespace dtn
+ {
+ if (data.getAction() == KeyExchangeData::REQUEST)
+ {
++ BIGNUM *p = BN_new();
++ BIGNUM *g = BN_new();
++ if (p == NULL || g == NULL)
++ {
++ BN_free(p);
++ BN_free(g);
++ throw ibrcommon::Exception("Error while allocating space for DH parameters");
++ }
++
+ BIGNUM* pub_key = BN_new();
+ read(data, &pub_key);
+
+@@ -184,8 +198,16 @@ namespace dtn
+ state.dh = DH_new();
+
+ // read p and g paramter from message
+- read(data, &state.dh->p);
+- read(data, &state.dh->g);
++ read(data, &p);
++ read(data, &g);
++
++ if (DH_set0_pqg(state.dh, p, NULL, g))
++ {
++ BN_free(p);
++ BN_free(g);
++ BN_free(pub_key);
++ throw ibrcommon::Exception("Error while setting DH parameters");
++ }
+
+ int codes;
+ if (!DH_check(state.dh, &codes))
+@@ -213,7 +235,9 @@ namespace dtn
+ state.secret.assign((const char*)secret, length);
+
+ KeyExchangeData response(KeyExchangeData::RESPONSE, session);
+- write(response, state.dh->pub_key);
++ const BIGNUM *state_dh_pub_key;
++ DH_get0_key(state.dh, &state_dh_pub_key, NULL);
++ write(response, state_dh_pub_key);
+
+ manager.submit(session, response);
+
+diff --git a/src/security/exchange/Makefile.am b/src/security/exchange/Makefile.am
+index a6b2f832..71ed8365 100644
+--- a/src/security/exchange/Makefile.am
++++ b/src/security/exchange/Makefile.am
+@@ -22,6 +22,8 @@ exchange_SOURCES += \
+ NFCProtocol.cpp \
+ NoneProtocol.h \
+ NoneProtocol.cpp \
++ openssl_compat.h \
++ openssl_compat.cpp \
+ QRCodeProtocol.h \
+ QRCodeProtocol.cpp
+
+diff --git a/src/security/exchange/openssl_compat.cpp b/src/security/exchange/openssl_compat.cpp
+new file mode 100644
+index 00000000..e3baba0f
+--- /dev/null
++++ b/src/security/exchange/openssl_compat.cpp
+@@ -0,0 +1,62 @@
++/*
++ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
++ *
++ * Licensed under the OpenSSL license (the "License"). You may not use
++ * this file except in compliance with the License. You can obtain a copy
++ * in the file LICENSE in the source distribution or at
++ * https://www.openssl.org/source/license.html
++ */
++
++#include "openssl_compat.h"
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++void DH_get0_pqg(const DH *dh,
++ const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
++{
++ if (p != NULL)
++ *p = dh->p;
++ if (q != NULL)
++ *q = dh->q;
++ if (g != NULL)
++ *g = dh->g;
++}
++
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
++{
++ /* If the fields p and g in d are NULL, the corresponding input
++ * parameters MUST be non-NULL. q may remain NULL.
++ */
++ if ((dh->p == NULL && p == NULL)
++ || (dh->g == NULL && g == NULL))
++ return 0;
++
++ if (p != NULL) {
++ BN_free(dh->p);
++ dh->p = p;
++ }
++ if (q != NULL) {
++ BN_free(dh->q);
++ dh->q = q;
++ }
++ if (g != NULL) {
++ BN_free(dh->g);
++ dh->g = g;
++ }
++
++ if (q != NULL) {
++ dh->length = BN_num_bits(q);
++ }
++
++ return 1;
++}
++
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
++{
++ if (pub_key != NULL)
++ *pub_key = dh->pub_key;
++ if (priv_key != NULL)
++ *priv_key = dh->priv_key;
++}
++
++#endif /* OPENSSL_VERSION_NUMBER */
+diff --git a/src/security/exchange/openssl_compat.h b/src/security/exchange/openssl_compat.h
+new file mode 100644
+index 00000000..29e7d415
+--- /dev/null
++++ b/src/security/exchange/openssl_compat.h
+@@ -0,0 +1,13 @@
++#ifndef LIBCRYPTO_COMPAT_H\r
++#define LIBCRYPTO_COMPAT_H\r
++\r
++#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
++\r
++#include <openssl/dh.h>\r
++\r
++void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);\r
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);\r
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key);\r
++\r
++#endif /* OPENSSL_VERSION_NUMBER */\r
++#endif /* LIBCRYPTO_COMPAT_H */\r
+--
+2.16.1
+
PKG_NAME:=isc-dhcp
UPSTREAM_NAME:=dhcp
PKG_VERSION:=4.4.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
echo "max-lease-time $max_lease_time;"
[ -n "$domain" ] && echo "option domain-name \"$domain\";"
+
+ rm -f /tmp/resolv.conf
+ echo "# This file is generated by the DHCPD service" > /tmp/resolv.conf
+ [ -n "$domain" ] && echo "domain $domain" >> /tmp/resolv.conf
+ echo "nameserver 127.0.0.1" >> /tmp/resolv.conf
}
start_service() {
include $(TOPDIR)/rules.mk
PKG_NAME:=krb5
-PKG_VERSION:=1.16
-PKG_RELEASE:=2
+PKG_VERSION:=1.16.1
+PKG_RELEASE:=3
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://web.mit.edu/kerberos/dist/krb5/1.16/
-PKG_HASH:=faeb125f83b0fb4cdb2f99f088140631bb47d975982de0956d18c85842969e08
+PKG_HASH:=214ffe394e3ad0c730564074ec44f1da119159d94281bbec541dc29168d21117
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
CONFIGURE_VARS += \
cross_compiling=yes \
krb5_cv_attr_constructor_destructor=yes,yes \
+ krb5_cv_sys_rcdir=/tmp \
ac_cv_func_regcomp=yes \
ac_cv_printf_positional=yes \
ac_cv_file__etc_environment=no \
include $(TOPDIR)/rules.mk
PKG_NAME:=lighttpd
-PKG_VERSION:=1.4.48
-PKG_RELEASE:=2
+PKG_VERSION:=1.4.49
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://download.lighttpd.net/lighttpd/releases-1.4.x
-PKG_HASH:=0f8ad5aac7529d7b948b9d7e8cd0b4a9e177309d85d6bf6516e28e6e40d74f36
+PKG_HASH:=aedf49d7127d9e4c0ea56618e9e945a17674dc46a37ac7990120f87dd939ce09
PKG_LICENSE:=BSD-3c
PKG_LICENSE_FILES:=COPYING
PKG_NAME:=miniupnpd
PKG_VERSION:=2.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_URL:=http://miniupnp.free.fr/files
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
endef
TARGET_CFLAGS += -flto -ffunction-sections -fdata-sections
-TARGET_LDFLAGS += -flto -Wl,--gc-sections
+TARGET_LDFLAGS += $(FPIC) -flto -Wl,--gc-sections
MAKE_FLAGS += \
TARGET_OPENWRT=1 TEST=0 LIBS="" \
CC="$(TARGET_CC) -DIPTABLES_143 -lip4tc -luuid \
include $(TOPDIR)/rules.mk
PKG_NAME:=mwan3
-PKG_VERSION:=2.6.17
+PKG_VERSION:=2.6.18
PKG_RELEASE:=1
PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
PKG_LICENSE:=GPLv2
if ! $IPT -S mwan3_hook &> /dev/null; then
$IPT -N mwan3_hook
+ # do not mangle ipv6 ra service
+ if [ "$IPT" = "$IPT6" ]; then
+ $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 133 -j RETURN
+ $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 134 -j RETURN
+ $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 135 -j RETURN
+ $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 136 -j RETURN
+ $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 137 -j RETURN
+ fi
$IPT -A mwan3_hook -j CONNMARK --restore-mark --nfmask $MMX_MASK --ctmask $MMX_MASK
$IPT -A mwan3_hook -m mark --mark 0x0/$MMX_MASK -j mwan3_ifaces_in
$IPT -A mwan3_hook -m mark --mark 0x0/$MMX_MASK -j mwan3_connected
echo "exec $miboid $name $prog $args" >> $CONFIGFILE
}
+snmpd_extend_add() {
+ local cfg="$1"
+
+ config_get name "$cfg" name
+ [ -n "$name" ] || return 0
+ config_get prog "$cfg" prog
+ [ -n "$prog" ] || return 0
+ config_get args "$cfg" args
+ config_get miboid "$cfg" miboid
+ echo "extend $miboid $name $prog $args" >> $CONFIGFILE
+}
+
snmpd_disk_add() {
local cfg="$1"
local disk='disk'
config_foreach snmpd_access_HostIP_add access_HostIP
config_foreach snmpd_pass_add pass
config_foreach snmpd_exec_add exec
+ config_foreach snmpd_extend_add extend
config_foreach snmpd_disk_add disk
config_foreach snmpd_engineid_add engineid
append_parm trapcommunity community trapcommunity
PKG_LICENSE:=BSD-3-Clause
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
-PKG_VERSION:=0.4.13
+PKG_VERSION:=0.5.26
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=ae560bef2e70d274f6d028b59e3cb398ea2a621d
-PKG_MIRROR_HASH:=43b7f9c436afc76de539a7426b1462249326318b9b836f1d49282106a730a6b8
+PKG_SOURCE_VERSION:=3b99e99c9d507ddc89d21d7f1cbded494e6aa72e
+PKG_MIRROR_HASH:=d29b501d56bf9a2480759cc55368c842f69b07722afb3a0a70f05d6088f72574
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/CESNET/Netopeer2.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/iana-crypt-hash.yang $(1)/etc/sysrepo/yang/iana-crypt-hash@2014-08-06.yang
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-x509-cert-to-name.yang $(1)/etc/sysrepo/yang/ietf-x509-cert-to-name@2014-12-10.yang
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/ietf-netconf-server@2016-11-02.yang
+ $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-monitoring.yang $(1)/etc/sysrepo/yang/ietf-netconf-monitoring@2010-10-04.yang
+ $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-with-defaults.yang $(1)/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-system.yang $(1)/etc/sysrepo/yang/ietf-system@2014-08-06.yang
$(INSTALL_DIR) $(1)/etc/uci-defaults
fi
fi
+ match=$(sysrepoctl -l | grep "ietf-netconf-monitoring ")
+ if [ ! "$match" ]; then
+ sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-monitoring@2010-10-04.yang -o root:root -p 600
+ fi
+
+ match=$(sysrepoctl -l | grep "ietf-netconf-with-defaults ")
+ if [ ! "$match" ]; then
+ sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang -o root:root -p 600
+ fi
+
match=$(sysrepoctl -l | grep "ietf-system ")
if [ ! "$match" ]; then
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-system@2014-08-06.yang -o root:root -p 600
--- /dev/null
+Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/CMakeLists.txt
+===================================================================
+--- /dev/null
++++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/CMakeLists.txt
+@@ -0,0 +1,5 @@
++cmake_minimum_required(VERSION 2.6)
++
++add_subdirectory(server)
++add_subdirectory(cli)
++add_subdirectory(keystored)
+Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/cli/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/cli/CMakeLists.txt
++++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/cli/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ cmake_minimum_required(VERSION 2.6)
+
+ # include custom Modules
+-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
+
+ project(netopeer2-cli C)
+ include(GNUInstallDirs)
+@@ -83,7 +83,7 @@ endif()
+ install(FILES ${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+
+ # clean cmake cache
+-add_custom_target(cleancache
++add_custom_target(cleancache_cli
+ COMMAND make clean
+ COMMAND find . -iname '*cmake*' -not -name CMakeLists.txt -exec rm -rf {} +
+ COMMAND rm -rf Makefile Doxyfile
+Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/keystored/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/keystored/CMakeLists.txt
++++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/keystored/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ cmake_minimum_required(VERSION 2.6)
+
+ # include custom Modules
+-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
+
+ project(keystored C)
+ include(GNUInstallDirs)
+@@ -140,7 +140,7 @@ if (SSH_KEY_INSTALL)
+ execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/ssh-key-import.sh)")
+ endif()
+
+-add_custom_target(install-scripts-ide
++add_custom_target(install-scripts-ide-keystored
+ scripts/model-install.sh
+ scripts/ssh-key-import.sh
+ )
+Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/server/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/server/CMakeLists.txt
++++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/server/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ cmake_minimum_required(VERSION 2.8.9)
+
+ # include custom Modules
+-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
+
+ project(netopeer2-server C)
+ include(GNUInstallDirs)
+@@ -176,7 +176,7 @@ if (ENABLE_CONFIGURATION)
+ execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/model-install.sh)")
+ endif()
+
+-add_custom_target(install-scripts-ide
++add_custom_target(install-scripts-ide-server
+ scripts/model-install.sh
+++ /dev/null
-Index: netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/keystored/CMakeLists.txt
-===================================================================
---- netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee.orig/keystored/CMakeLists.txt
-+++ netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/keystored/CMakeLists.txt
-@@ -105,6 +105,7 @@ endif()
- install(DIRECTORY DESTINATION ${KEYSTORED_KEYS_DIR}
- DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE)
-
-+if(FALSE)
- # install all the required modules and enable features
- install(CODE "
- execute_process(COMMAND ${SYSREPOCTL_EXECUTABLE} -l RESULT_VARIABLE RET OUTPUT_VARIABLE INSTALLED_MODULES ERROR_VARIABLE OUT)
-@@ -154,6 +155,7 @@ install(CODE "
- message(FATAL_ERROR \" Command sysrepocfg import failed:\\n \${OUT}\")
- endif()
- endif()")
-+endif()
-
- # plugins should be installed into sysrepo plugins dir
- install(TARGETS keystored DESTINATION ${SR_PLUGINS_DIR})
-Index: netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/server/CMakeLists.txt
-===================================================================
---- netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee.orig/server/CMakeLists.txt
-+++ netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/server/CMakeLists.txt
-@@ -147,6 +147,7 @@ include_directories(${SYSREPO_INCLUDE_DI
- # install binary
- install(TARGETS netopeer2-server DESTINATION ${CMAKE_INSTALL_BINDIR})
-
-+if(FALSE)
- # only for configuration
- if (ENABLE_CONFIGURATION)
- # find sysrepoctl
-@@ -239,6 +240,7 @@ if (ENABLE_CONFIGURATION)
-
- endif()")
- endif()
-+endif()
-
- # clean cmake cache
- add_custom_target(cleancache
+++ /dev/null
-Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/CMakeLists.txt
-===================================================================
---- /dev/null
-+++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/CMakeLists.txt
-@@ -0,0 +1,5 @@
-+cmake_minimum_required(VERSION 2.6)
-+
-+add_subdirectory(server)
-+add_subdirectory(cli)
-+add_subdirectory(keystored)
-Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/cli/CMakeLists.txt
-===================================================================
---- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/cli/CMakeLists.txt
-+++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/cli/CMakeLists.txt
-@@ -1,7 +1,7 @@
- cmake_minimum_required(VERSION 2.6)
-
- # include custom Modules
--set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
-+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
-
- project(netopeer2-cli C)
- include(GNUInstallDirs)
-@@ -83,7 +83,7 @@ endif()
- install(FILES ${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
-
- # clean cmake cache
--add_custom_target(cleancache
-+add_custom_target(cleancache_cli
- COMMAND make clean
- COMMAND find . -iname '*cmake*' -not -name CMakeLists.txt -exec rm -rf {} +
- COMMAND rm -rf Makefile Doxyfile
-Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/keystored/CMakeLists.txt
-===================================================================
---- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/keystored/CMakeLists.txt
-+++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/keystored/CMakeLists.txt
-@@ -1,7 +1,7 @@
- cmake_minimum_required(VERSION 2.6)
-
- # include custom Modules
--set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
-+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
-
- project(keystored C)
- include(GNUInstallDirs)
-Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/server/CMakeLists.txt
-===================================================================
---- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/server/CMakeLists.txt
-+++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/server/CMakeLists.txt
-@@ -1,7 +1,7 @@
- cmake_minimum_required(VERSION 2.8.9)
-
- # include custom Modules
--set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
-+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
-
- project(netopeer2-server C)
- include(GNUInstallDirs)
bool
prompt "Enable HTTP secure link module"
default n
+
+config NGINX_HEADERS_MORE
+ bool
+ prompt "Enable Headers_more module"
+ help
+ Set and clear input and output headers...more than "add"!
+ default y
+
+config NGINX_HTTP_BROTLI
+ bool
+ prompt "Enable Brotli compression module"
+ help
+ Add support for brotli compression module.
+ default n
+
+config NGINX_RTMP_MODULE
+ bool
+ prompt "Enable RTMP module"
+ depends on NGINX_SSL
+ help
+ Add support for NGINX-based Media Streaming Server module.
+ default n
+
+config NGINX_TS_MODULE
+ bool
+ prompt "Enable TS module"
+ help
+ Add support for MPEG-TS Live Module module.
+ default n
endmenu
--- /dev/null
+#
+# Copyright (C) 2010-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+menu "Configuration"
+ depends on PACKAGE_nginx-ssl
+
+config NGINX_DAV
+ bool
+ prompt "Enable WebDAV module"
+ help
+ Enable the HTTP and WebDAV methods PUT, DELETE, MKCOL, COPY and MOVE.
+ default n
+
+config NGINX_FLV
+ bool
+ prompt "Enable FLV module"
+ help
+ Provides the ability to seek within FLV (Flash) files using time-based offsets.
+ default n
+
+config NGINX_STUB_STATUS
+ bool
+ prompt "Enable stub status module"
+ help
+ Enable the stub status module which gives some status from the server.
+ default n
+
+config NGINX_HTTP_CHARSET
+ bool
+ prompt "Enable HTTP charset module"
+ default y
+
+config NGINX_HTTP_GZIP
+ bool
+ prompt "Enable HTTP gzip module"
+ default y
+
+config NGINX_HTTP_SSI
+ bool
+ prompt "Enable HTTP ssi module"
+ default y
+
+config NGINX_HTTP_USERID
+ bool
+ prompt "Enable HTTP userid module"
+ default y
+
+config NGINX_HTTP_ACCESS
+ bool
+ prompt "Enable HTTP access module"
+ default y
+
+config NGINX_HTTP_AUTH_BASIC
+ bool
+ prompt "Enable HTTP auth basic"
+ default y
+
+config NGINX_HTTP_AUTH_REQUEST
+ bool
+ prompt "Enable HTTP auth request module"
+ default n
+
+config NGINX_HTTP_AUTOINDEX
+ bool
+ prompt "Enable HTTP autoindex module"
+ default y
+
+config NGINX_HTTP_GEO
+ bool
+ prompt "Enable HTTP geo module"
+ default y
+
+config NGINX_HTTP_MAP
+ bool
+ prompt "Enable HTTP map module"
+ default y
+
+config NGINX_HTTP_SPLIT_CLIENTS
+ bool
+ prompt "Enable HTTP split clients"
+ default y
+
+config NGINX_HTTP_REFERER
+ bool
+ prompt "Enable HTTP referer module"
+ default y
+
+config NGINX_HTTP_REWRITE
+ bool
+ prompt "Enable HTTP rewrite module"
+ select NGINX_PCRE
+ default y
+
+config NGINX_HTTP_PROXY
+ bool
+ prompt "Enable HTTP proxy module"
+ default y
+
+config NGINX_HTTP_FASTCGI
+ bool
+ prompt "Enable HTTP fastcgi module"
+ default y
+
+config NGINX_HTTP_UWSGI
+ bool
+ prompt "Enable HTTP uwsgi module"
+ default y
+
+config NGINX_HTTP_SCGI
+ bool
+ prompt "Enable HTTP scgi module"
+ default y
+
+config NGINX_HTTP_MEMCACHED
+ bool
+ prompt "Enable HTTP memcached module"
+ default y
+
+config NGINX_HTTP_LIMIT_CONN
+ bool
+ prompt "Enable HTTP limit conn"
+ default y
+
+config NGINX_HTTP_LIMIT_REQ
+ bool
+ prompt "Enable HTTP limit req"
+ default y
+
+config NGINX_HTTP_EMPTY_GIF
+ bool
+ prompt "Enable HTTP empty gif"
+ default y
+
+config NGINX_HTTP_BROWSER
+ bool
+ prompt "Enable HTTP browser module"
+ default y
+
+config NGINX_HTTP_UPSTREAM_HASH
+ bool
+ prompt "Enable HTTP hash module"
+ default y
+
+config NGINX_HTTP_UPSTREAM_IP_HASH
+ bool
+ prompt "Enable HTTP IP hash module"
+ default y
+
+config NGINX_HTTP_UPSTREAM_LEAST_CONN
+ bool
+ prompt "Enable HTTP least conn module"
+ default y
+
+config NGINX_HTTP_UPSTREAM_KEEPALIVE
+ bool
+ prompt "Enable HTTP keepalive module"
+ default y
+
+config NGINX_HTTP_CACHE
+ bool
+ prompt "Enable HTTP cache"
+ default y
+
+config NGINX_HTTP_V2
+ bool
+ prompt "Enable HTTP_V2 module"
+ default n
+
+config NGINX_PCRE
+ bool
+ prompt "Enable PCRE library usage"
+ default y
+
+config NGINX_NAXSI
+ bool
+ prompt "Enable NAXSI module"
+ default y
+
+config NGINX_LUA
+ bool
+ prompt "Enable Lua module"
+ default n
+
+config NGINX_HTTP_REAL_IP
+ bool
+ prompt "Enable HTTP real ip module"
+ default n
+
+config NGINX_HTTP_SECURE_LINK
+ bool
+ prompt "Enable HTTP secure link module"
+ default n
+
+config NGINX_HEADERS_MORE
+ bool
+ prompt "Enable Headers_more module"
+ help
+ Set and clear input and output headers...more than "add"!
+ default y
+
+config NGINX_HTTP_BROTLI
+ bool
+ prompt "Enable Brotli compression module"
+ help
+ Add support for brotli compression module.
+ default n
+
+config NGINX_RTMP_MODULE
+ bool
+ prompt "Enable RTMP module"
+ help
+ Add support for NGINX-based Media Streaming Server module.
+ default n
+
+config NGINX_TS_MODULE
+ bool
+ prompt "Enable TS module"
+ help
+ Add support for MPEG-TS Live Module module.
+ default n
+
+endmenu
include $(TOPDIR)/rules.mk
PKG_NAME:=nginx
-PKG_VERSION:=1.12.2
+PKG_VERSION:=1.15.1
PKG_RELEASE:=1
PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://nginx.org/download/
-PKG_HASH:=305f379da1d5fb5aefa79e45c829852ca6983c7cd2a79328f8e084a324cf0416
-PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
+PKG_HASH:=c7206858d7f832b8ef73a45c9b8f8e436bcb1ee88db2bc85b8e438ecec9d5460
+
+PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de> \
+ Ansuel Smith <ansuelsmth@gmail.com>
PKG_LICENSE:=2-clause BSD-like license
-PKG_BUILD_DIR:=$(BUILD_DIR)/nginx-$(PKG_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
CONFIG_NGINX_NAXSI \
CONFIG_NGINX_LUA \
CONFIG_NGINX_HTTP_REAL_IP \
- CONFIG_NGINX_HTTP_SECURE_LINK
+ CONFIG_NGINX_HTTP_SECURE_LINK \
+ CONFIG_NGINX_HTTP_BROTLI \
+ CONFIG_NGINX_HEADERS_MORE \
+ CONFIG_NGINX_RTMP_MODULE \
+ CONFIG_NGINX_TS_MODULE \
include $(INCLUDE_DIR)/package.mk
-define Package/nginx
+define Package/nginx/default
SECTION:=net
CATEGORY:=Network
SUBMENU:=Web Servers/Proxies
TITLE:=Nginx web server
URL:=http://nginx.org/
- DEPENDS:=+NGINX_PCRE:libpcre +(NGINX_SSL||NGINX_HTTP_CACHE||NGINX_HTTP_AUTH_BASIC):libopenssl +NGINX_HTTP_GZIP:zlib +NGINX_LUA:liblua +libpthread
- MENU:=1
+ DEPENDS:=+NGINX_PCRE:libpcre +(NGINX_SSL||NGINX_HTTP_CACHE||NGINX_HTTP_AUTH_BASIC):libopenssl \
+ +NGINX_HTTP_GZIP:zlib +NGINX_LUA:liblua +libpthread
endef
define Package/nginx/description
- nginx is an HTTP and reverse proxy server, as well as a mail proxy server,
- written by Igor Sysoev.
+ nginx is an HTTP and reverse proxy server, as well as a mail proxy server, \
+ written by Igor Sysoev. (Some module require SSL module enable to show up in \
+ config menu)
+endef
+
+define Package/nginx
+ $(Package/nginx/default)
+ VARIANT:=no-ssl
+endef
+
+define Package/nginx-ssl
+ $(Package/nginx/default)
+ TITLE += with SSL support
+ DEPENDS +=+libopenssl
+ VARIANT:=ssl
endef
+Package/nginx-ssl/description = $(Package/nginx/description) \
+ This varian is compiled with SSL support enabled. To enable additional module \
+ select them in the nginx default configuration menu.
+
+define Package/nginx-all-module
+ $(Package/nginx/default)
+ TITLE += with ALL module selected
+ DEPENDS:=+libpcre +libopenssl +zlib +liblua +libpthread
+ VARIANT:=all-module
+endef
+
+Package/nginx-all-module/description = $(Package/nginx/description) \
+ This varian is compiled with ALL module selected.
+
define Package/nginx/config
source "$(SOURCE)/Config.in"
endef
+define Package/nginx-ssl/config
+ source "$(SOURCE)/Config_ssl.in"
+endef
+
config_files=nginx.conf mime.types
define Package/nginx/conffiles
/etc/nginx/
endef
+Package/nginx-ssl/conffiles = $(Package/nginx/conffiles)
+Package/nginx-all-module/conffiles = $(Package/nginx/conffiles)
+
+
ADDITIONAL_MODULES:=
-ifeq ($(CONFIG_NGINX_NAXSI),y)
- ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src
-endif
-ifeq ($(CONFIG_NGINX_LUA),y)
- ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/lua-nginx
-endif
-ifeq ($(CONFIG_IPV6),y)
- ADDITIONAL_MODULES += --with-ipv6
-endif
-ifeq ($(CONFIG_NGINX_STUB_STATUS),y)
- ADDITIONAL_MODULES += --with-http_stub_status_module
-endif
-ifeq ($(CONFIG_NGINX_FLV),y)
- ADDITIONAL_MODULES += --with-http_flv_module
-endif
-ifeq ($(CONFIG_NGINX_SSL),y)
- ADDITIONAL_MODULES += --with-http_ssl_module
-endif
-ifeq ($(CONFIG_NGINX_DAV),y)
- ADDITIONAL_MODULES += --with-http_dav_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_CACHE),y)
- ADDITIONAL_MODULES += --without-http-cache
-endif
-ifneq ($(CONFIG_NGINX_PCRE),y)
- ADDITIONAL_MODULES += --without-pcre
-endif
-ifneq ($(CONFIG_NGINX_HTTP_CHARSET),y)
- ADDITIONAL_MODULES += --without-http_charset_module
-else
- config_files += koi-utf koi-win win-utf
-endif
-ifneq ($(CONFIG_NGINX_HTTP_GZIP),y)
- ADDITIONAL_MODULES += --without-http_gzip_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_SSI),y)
- ADDITIONAL_MODULES += --without-http_ssi_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_USERID),y)
- ADDITIONAL_MODULES += --without-http_userid_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_ACCESS),y)
- ADDITIONAL_MODULES += --without-http_access_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_AUTH_BASIC),y)
- ADDITIONAL_MODULES += --without-http_auth_basic_module
-endif
-ifeq ($(CONFIG_NGINX_HTTP_AUTH_REQUEST),y)
- ADDITIONAL_MODULES += --with-http_auth_request_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_AUTOINDEX),y)
- ADDITIONAL_MODULES += --without-http_autoindex_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_GEO),y)
- ADDITIONAL_MODULES += --without-http_geo_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_MAP),y)
- ADDITIONAL_MODULES += --without-http_map_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_SPLIT_CLIENTS),y)
- ADDITIONAL_MODULES += --without-http_split_clients_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_REFERER),y)
- ADDITIONAL_MODULES += --without-http_referer_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_REWRITE),y)
- ADDITIONAL_MODULES += --without-http_rewrite_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_PROXY),y)
- ADDITIONAL_MODULES += --without-http_proxy_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_FASTCGI),y)
- ADDITIONAL_MODULES += --without-http_fastcgi_module
+
+ifneq ($(BUILD_VARIANT),all-module)
+ ifneq ($(CONFIG_NGINX_HTTP_CACHE),y)
+ ADDITIONAL_MODULES += --without-http-cache
+ endif
+ ifneq ($(CONFIG_NGINX_PCRE),y)
+ ADDITIONAL_MODULES += --without-pcre
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_CHARSET),y)
+ ADDITIONAL_MODULES += --without-http_charset_module
+ else
+ config_files += koi-utf koi-win win-utf
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_GZIP),y)
+ ADDITIONAL_MODULES += --without-http_gzip_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_SSI),y)
+ ADDITIONAL_MODULES += --without-http_ssi_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_USERID),y)
+ ADDITIONAL_MODULES += --without-http_userid_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_ACCESS),y)
+ ADDITIONAL_MODULES += --without-http_access_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_AUTH_BASIC),y)
+ ADDITIONAL_MODULES += --without-http_auth_basic_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_AUTOINDEX),y)
+ ADDITIONAL_MODULES += --without-http_autoindex_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_GEO),y)
+ ADDITIONAL_MODULES += --without-http_geo_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_MAP),y)
+ ADDITIONAL_MODULES += --without-http_map_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_SPLIT_CLIENTS),y)
+ ADDITIONAL_MODULES += --without-http_split_clients_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_REFERER),y)
+ ADDITIONAL_MODULES += --without-http_referer_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_REWRITE),y)
+ ADDITIONAL_MODULES += --without-http_rewrite_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_PROXY),y)
+ ADDITIONAL_MODULES += --without-http_proxy_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_FASTCGI),y)
+ ADDITIONAL_MODULES += --without-http_fastcgi_module
+ else
+ config_files += fastcgi_params
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_UWSGI),y)
+ ADDITIONAL_MODULES += --without-http_uwsgi_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_SCGI),y)
+ ADDITIONAL_MODULES += --without-http_scgi_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_MEMCACHED),y)
+ ADDITIONAL_MODULES += --without-http_memcached_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_LIMIT_CONN),y)
+ ADDITIONAL_MODULES += --without-http_limit_conn_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_LIMIT_REQ),y)
+ ADDITIONAL_MODULES += --without-http_limit_req_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_EMPTY_GIF),y)
+ ADDITIONAL_MODULES += --without-http_empty_gif_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_BROWSER),y)
+ ADDITIONAL_MODULES += --without-http_browser_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_HASH),y)
+ ADDITIONAL_MODULES += --without-http_upstream_hash_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH),y)
+ ADDITIONAL_MODULES += --without-http_upstream_ip_hash_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN),y)
+ ADDITIONAL_MODULES += --without-http_upstream_least_conn_module
+ endif
+ ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE),y)
+ ADDITIONAL_MODULES += --without-http_upstream_keepalive_module
+ endif
+
+ ifeq ($(BUILD_VARIANT),ssl)
+ ifneq ($(CONFIG_NGINX_SSL),y)
+ ADDITIONAL_MODULES += --with-http_ssl_module
+ endif
+ endif
+
+ ifeq ($(CONFIG_NGINX_SSL),y)
+ ADDITIONAL_MODULES += --with-http_ssl_module
+ endif
+ ifeq ($(CONFIG_NGINX_NAXSI),y)
+ ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src
+ endif
+ ifeq ($(CONFIG_NGINX_LUA),y)
+ ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/lua-nginx
+ endif
+ ifeq ($(CONFIG_IPV6),y)
+ ADDITIONAL_MODULES += --with-ipv6
+ endif
+ ifeq ($(CONFIG_NGINX_STUB_STATUS),y)
+ ADDITIONAL_MODULES += --with-http_stub_status_module
+ endif
+ ifeq ($(CONFIG_NGINX_FLV),y)
+ ADDITIONAL_MODULES += --with-http_flv_module
+ endif
+ ifeq ($(CONFIG_NGINX_DAV),y)
+ ADDITIONAL_MODULES += --with-http_dav_module
+ endif
+ ifeq ($(CONFIG_NGINX_HTTP_AUTH_REQUEST),y)
+ ADDITIONAL_MODULES += --with-http_auth_request_module
+ endif
+ ifeq ($(CONFIG_NGINX_HTTP_V2),y)
+ ADDITIONAL_MODULES += --with-http_v2_module
+ endif
+ ifeq ($(CONFIG_NGINX_HTTP_REAL_IP),y)
+ ADDITIONAL_MODULES += --with-http_realip_module
+ endif
+ ifeq ($(CONFIG_NGINX_HTTP_SECURE_LINK),y)
+ ADDITIONAL_MODULES += --with-http_secure_link_module
+ endif
+ ifeq ($(CONFIG_NGINX_HEADERS_MORE),y)
+ ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-headers-more
+ endif
+ ifeq ($(CONFIG_NGINX_HTTP_BROTLI),y)
+ ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-brotli
+ endif
+ ifeq ($(CONFIG_NGINX_RTMP_MODULE),y)
+ ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-rtmp
+ endif
+ ifeq ($(CONFIG_NGINX_TS_MODULE),y)
+ ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-ts
+ endif
else
- config_files += fastcgi_params
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UWSGI),y)
- ADDITIONAL_MODULES += --without-http_uwsgi_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_SCGI),y)
- ADDITIONAL_MODULES += --without-http_scgi_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_MEMCACHED),y)
- ADDITIONAL_MODULES += --without-http_memcached_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_LIMIT_CONN),y)
- ADDITIONAL_MODULES += --without-http_limit_conn_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_LIMIT_REQ),y)
- ADDITIONAL_MODULES += --without-http_limit_req_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_EMPTY_GIF),y)
- ADDITIONAL_MODULES += --without-http_empty_gif_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_BROWSER),y)
- ADDITIONAL_MODULES += --without-http_browser_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_HASH),y)
- ADDITIONAL_MODULES += --without-http_upstream_hash_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH),y)
- ADDITIONAL_MODULES += --without-http_upstream_ip_hash_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN),y)
- ADDITIONAL_MODULES += --without-http_upstream_least_conn_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE),y)
- ADDITIONAL_MODULES += --without-http_upstream_keepalive_module
-endif
-ifeq ($(CONFIG_NGINX_HTTP_V2),y)
- ADDITIONAL_MODULES += --with-http_v2_module
-endif
-ifeq ($(CONFIG_NGINX_HTTP_REAL_IP),y)
- ADDITIONAL_MODULES += --with-http_realip_module
-endif
-ifeq ($(CONFIG_NGINX_HTTP_SECURE_LINK),y)
- ADDITIONAL_MODULES += --with-http_secure_link_module
+ CONFIG_NGINX_HEADERS_MORE:=y
+ CONFIG_NGINX_HTTP_BROTLI:=y
+ CONFIG_NGINX_RTMP_MODULE:=y
+ CONFIG_NGINX_TS_MODULE:=y
+ CONFIG_NGINX_NAXSI:=y
+ CONFIG_NGINX_LUA:=y
+ ADDITIONAL_MODULES += --with-http_ssl_module --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src \
+ --add-module=$(PKG_BUILD_DIR)/lua-nginx --with-ipv6 --with-http_stub_status_module --with-http_flv_module \
+ --with-http_dav_module --with-http_auth_request_module --with-http_v2_module --with-http_realip_module \
+ --with-http_secure_link_module --add-module=$(PKG_BUILD_DIR)/nginx-headers-more \
+ --add-module=$(PKG_BUILD_DIR)/nginx-brotli --add-module=$(PKG_BUILD_DIR)/nginx-rtmp \
+ --add-module=$(PKG_BUILD_DIR)/nginx-ts
+ config_files += koi-utf koi-win win-utf fastcgi_params
endif
+define Package/nginx-mod-luci/default
+ TITLE:=Nginx on LuCI
+ SECTION:=net
+ CATEGORY:=Network
+ SUBMENU:=Web Servers/Proxies
+ TITLE:=Support file for Nginx
+ URL:=http://nginx.org/
+ DEPENDS:=+uwsgi-cgi +uwsgi-cgi-luci-support
+endef
+
+define Package/nginx-mod-luci
+ $(Package/nginx-mod-luci/default)
+ DEPENDS += +nginx
+endef
+
+define Package/nginx-mod-luci/description
+ Support file for LuCI in nginx. Include custom nginx configuration, autostart script for uwsgi.
+endef
+
+define Package/nginx-mod-luci-ssl
+ $(Package/nginx-mod-luci/default)
+ TITLE += with HTTPS support
+ DEPENDS += +nginx-ssl
+endef
+
+Package/nginx-mod-luci-ssl/description = $(define Package/nginx-mod-luci/description) \
+ This also include redirect from http to https and cert autogeneration.
+
TARGET_CFLAGS += -fvisibility=hidden -ffunction-sections -fdata-sections -DNGX_LUA_NO_BY_LUA_BLOCK
TARGET_LDFLAGS += -Wl,--gc-sections
-define Build/Configure
- ( cd $(PKG_BUILD_DIR) ; \
- $(if $(CONFIG_NGINX_LUA),LUA_INC=$(STAGING_DIR)/usr/include LUA_LIB=$(STAGING_DIR)/usr/lib) \
- ./configure \
+ifeq ($(CONFIG_NGINX_LUA),y)
+ CONFIGURE_VARS += LUA_INC=$(STAGING_DIR)/usr/include \
+ LUA_LIB=$(STAGING_DIR)/usr/lib
+endif
+
+CONFIGURE_ARGS += \
--crossbuild=Linux::$(ARCH) \
--prefix=/usr \
--conf-path=/etc/nginx/nginx.conf \
--with-cc="$(TARGET_CC)" \
--with-cc-opt="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
--with-ld-opt="$(TARGET_LDFLAGS)" \
- --without-http_upstream_zone_module \
- )
+ --without-http_upstream_zone_module
+
+define Package/nginx-mod-luci/install
+ $(INSTALL_DIR) $(1)/etc/nginx
+ $(INSTALL_BIN) ./files-luci-support/luci_uwsgi.conf $(1)/etc/nginx/luci_uwsgi.conf
+ $(INSTALL_BIN) ./files-luci-support/luci_nginx.conf $(1)/etc/nginx/luci_nginx.conf
+ $(INSTALL_DIR) $(1)/etc/uci-defaults
+ $(INSTALL_BIN) ./files-luci-support/60_nginx-luci-support $(1)/etc/uci-defaults/60_nginx-luci-support
+endef
+
+define Package/nginx-mod-luci-ssl/install
+ $(Package/nginx-mod-luci/install)
+ $(INSTALL_DIR) $(1)/etc/nginx
+ $(INSTALL_BIN) ./files-luci-support/luci_nginx_ssl.conf $(1)/etc/nginx/luci_nginx_ssl.conf
+ $(INSTALL_DIR) $(1)/etc/uci-defaults
+ $(INSTALL_BIN) ./files-luci-support/70_nginx-luci-support-ssl $(1)/etc/uci-defaults/70_nginx-luci-support-ssl
endef
define Package/nginx/install
$(if $(CONFIG_NGINX_NAXSI),$(chmod 0640 $(1)/etc/nginx/naxsi_core.rules))
endef
+Package/nginx-ssl/install = $(Package/nginx/install)
+Package/nginx-all-module/install = $(Package/nginx/install)
+
define Build/Prepare
- $(call Build/Prepare/Default)
- $(if $(CONFIG_NGINX_NAXSI),$(call Prepare/nginx-naxsi))
- $(if $(CONFIG_NGINX_LUA),$(call Prepare/lua-nginx))
+ $(Build/Prepare/Default)
+ $(Prepare/nginx-naxsi)
+ $(Prepare/lua-nginx)
+ $(Prepare/nginx-brotli)
+ $(Prepare/nginx-headers-more)
+ $(Prepare/nginx-rtmp)
+ $(Prepare/nginx-ts)
endef
-define Download/nginx-naxsi
- VERSION:=cf73f9c8664127252c2a4958d2e169516d3845a1
- SUBDIR:=nginx-naxsi
- FILE:=nginx-naxsi-module-$(PKG_VERSION)-$$(VERSION).tar.gz
- URL:=https://github.com/nbs-system/naxsi.git
- PROTO:=git
-endef
-define Prepare/nginx-naxsi
- $(eval $(call Download,nginx-naxsi))
+ifeq ($(CONFIG_NGINX_HEADERS_MORE),y)
+ define Download/nginx-headers-more
+ VERSION:=a9f7c7e86cc7441d04e2f11f01c2e3a9c4b0301d
+ SUBDIR:=nginx-headers-more
+ FILE:=headers-more-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+ URL:=https://github.com/openresty/headers-more-nginx-module.git
+ MIRROR_HASH:=432609015719aaa7241e5166c7cda427acbe004f725887f78ef629d51bd9cb3f
+ PROTO:=git
+ endef
+ $(eval $(call Download,nginx-headers-more))
+
+ define Prepare/nginx-headers-more
+ $(eval $(Download/nginx-headers-more))
gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
-endef
+ endef
+endif
+
+
+ifeq ($(CONFIG_NGINX_HTTP_BROTLI),y)
+ define Download/nginx-brotli
+ VERSION:=e26248ee361c04e25f581b92b85d95681bdffb39
+ SUBDIR:=nginx-brotli
+ FILE:=ngx-brotli-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+ URL:=https://github.com/eustas/ngx_brotli.git
+ MIRROR_HASH:=76b891ba49f82f0cfbc9cba875646e26ee986b522373e0aa2698a9923a4adcdb
+ PROTO:=git
+ endef
+ $(eval $(call Download,nginx-brotli))
+
+ define Prepare/nginx-brotli
+ $(eval $(Download/nginx-brotli))
+ gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+ endef
+endif
-define Download/lua-nginx
- VERSION:=cdd2ae921f67bf396c743406493127be496e57ce
- SUBDIR:=lua-nginx
- FILE:=lua-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz
- URL:=https://github.com/openresty/lua-nginx-module.git
- PROTO:=git
-endef
-define Prepare/lua-nginx
- $(eval $(call Download,lua-nginx))
+ifeq ($(CONFIG_NGINX_RTMP_MODULE),y)
+ define Download/nginx-rtmp
+ VERSION:=791b6136f02bc9613daf178723ac09f4df5a3bbf
+ SUBDIR:=nginx-rtmp
+ FILE:=ngx-rtmp-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+ URL:=https://github.com/arut/nginx-rtmp-module.git
+ MIRROR_HASH:=8db3f7b545ce98f47415e0436e12dfb55ae787afd3cd9515b5642c7b9dc0ef00
+ PROTO:=git
+ endef
+ $(eval $(call Download,nginx-rtmp))
+
+ define Prepare/nginx-rtmp
+ $(eval $(call Download,nginx-rtmp))
+ gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+ endef
+endif
+
+
+ifeq ($(CONFIG_NGINX_TS_MODULE),y)
+ define Download/nginx-ts
+ VERSION:=ef2f874d95cc75747eb625a292524a702aefb0fd
+ SUBDIR:=nginx-ts
+ FILE:=ngx-ts-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+ URL:=https://github.com/arut/nginx-ts-module.git
+ MIRROR_HASH:=31ecc9968b928886b54884138eafe2fa747648bca5094d4c3132e8ae9509d1d3
+ PROTO:=git
+ endef
+ $(eval $(call Download,nginx-ts))
+
+ define Prepare/nginx-ts
+ $(eval $(call Download,nginx-ts))
+ gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+ endef
+endif
+
+
+ifeq ($(CONFIG_NGINX_NAXSI),y)
+ define Download/nginx-naxsi
+ VERSION:=951123ad456bdf5ac94e8d8819342fe3d49bc002
+ SUBDIR:=nginx-naxsi
+ FILE:=nginx-naxsi-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+ URL:=https://github.com/nbs-system/naxsi.git
+ MIRROR_HASH:=7ab791f2ff38096f48013141bbfe20ba213d5e04dcac08ca82e0cac07d5c30f0
+ PROTO:=git
+ endef
+ $(eval $(call Download,nginx-naxsi))
+
+ define Prepare/nginx-naxsi
+ $(eval $(Download/nginx-naxsi))
+ gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+ endef
+endif
+
+
+ifeq ($(CONFIG_NGINX_LUA),y)
+ define Download/lua-nginx
+ VERSION:=576a10d246daf81c0ce1b959c50ee807769c01a8
+ SUBDIR:=lua-nginx
+ FILE:=lua-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+ URL:=https://github.com/openresty/lua-nginx-module.git
+ MIRROR_HASH:=85ab2fc752d4e09f266209fdec507b30c57bb966c34bbff148cf3459ae5cac80
+ PROTO:=git
+ endef
+ $(eval $(call Download,lua-nginx))
+
+ define Prepare/lua-nginx
+ $(eval $(Download/lua-nginx))
gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
$(call PatchDir,$(PKG_BUILD_DIR),./patches-lua-nginx)
-endef
+ endef
+endif
$(eval $(call BuildPackage,nginx))
+$(eval $(call BuildPackage,nginx-ssl))
+$(eval $(call BuildPackage,nginx-all-module))
+$(eval $(call BuildPackage,nginx-mod-luci))
+$(eval $(call BuildPackage,nginx-mod-luci-ssl))
--- /dev/null
+#!/bin/sh
+
+if [ -f "/etc/nginx/luci_nginx.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then
+ if [ ! "$(cat '/etc/nginx/nginx.conf' | grep -q 'luci_uwsgi.conf')" ]; then
+ mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_old
+ mv /etc/nginx/luci_nginx.conf /etc/nginx/nginx.conf
+ core_number=$(grep -c ^processor /proc/cpuinfo)
+ sed -i "3s/.*/worker_processes "$core_number";/" /etc/nginx/nginx.conf
+ if [ -n "$(pgrep uhttpd)" ]; then
+ /etc/init.d/uhttpd stop
+ /etc/init.d/uhttpd disable
+ fi
+ if [ -n "$(pgrep nginx)" ]; then
+ /etc/init.d/nginx restart
+ else
+ /etc/init.d/nginx start
+ fi
+ if [ -n "$(pgrep uwsgi)" ]; then
+ /etc/init.d/uwsgi restart
+ else
+ /etc/init.d/uwsgi start
+ fi
+ fi
+fi
+
+exit 0
--- /dev/null
+#!/bin/sh
+
+
+if [ -f "/etc/nginx/luci_nginx_ssl.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then
+ if [ ! "$(cat '/etc/nginx/nginx.conf' | grep -q 'return 301 https://$host$request_uri;')" ]; then
+ if [ -f "/etc/nginx/nginx.conf_old" ]; then
+ rm /etc/nginx/nginx.conf
+ else
+ mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_old
+ fi
+ mv /etc/nginx/luci_nginx_ssl.conf /etc/nginx/nginx.conf
+ core_number=$(grep -c ^processor /proc/cpuinfo)
+ sed -i "3s/.*/worker_processes "$core_number";/" /etc/nginx/nginx.conf
+ if [ -n "$(pgrep nginx)" ]; then
+ /etc/init.d/nginx restart
+ else
+ /etc/init.d/nginx start
+ fi
+ fi
+fi
+
+
+if [ ! -f "/etc/nginx/nginx.key" ]; then
+
+ NGINX_KEY=/etc/nginx/nginx.key
+ NGINX_CER=/etc/nginx/nginx.cer
+ OPENSSL_BIN=/usr/bin/openssl
+ PX5G_BIN=/usr/sbin/px5g
+
+ # Prefer px5g for certificate generation (existence evaluated last)
+ GENKEY_CMD=""
+ UNIQUEID=$(dd if=/dev/urandom bs=1 count=4 | hexdump -e '1/1 "%02x"')
+ [ -x "$OPENSSL_BIN" ] && GENKEY_CMD="$OPENSSL_BIN req -x509 -nodes"
+ [ -x "$PX5G_BIN" ] && GENKEY_CMD="$PX5G_BIN selfsigned"
+ [ -n "$GENKEY_CMD" ] && {
+ $GENKEY_CMD \
+ -days 730 -newkey rsa:2048 -keyout "${NGINX_KEY}.new" -out "${NGINX_CER}.new" \
+ -subj /C="ZZ"/ST="Somewhere"/L="Unknown"/O="OpenWrt""$UNIQUEID"/CN="OpenWrt"
+ sync
+ mv "${NGINX_KEY}.new" "${NGINX_KEY}"
+ mv "${NGINX_CER}.new" "${NGINX_CER}"
+ }
+fi
+
+
+exit 0
--- /dev/null
+
+user root;
+worker_processes 1;
+
+#error_log logs/error.log;
+#error_log logs/error.log notice;
+#error_log logs/error.log info;
+
+pid /var/run/nginx.pid;
+
+
+events {
+ worker_connections 1024;
+}
+
+
+http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ sendfile on;
+ keepalive_timeout 0;
+
+ client_body_buffer_size 10K;
+ client_header_buffer_size 1k;
+ client_max_body_size 1G;
+ large_client_header_buffers 2 1k;
+
+ gzip on;
+ gzip_http_version 1.1;
+ gzip_vary on;
+ gzip_comp_level 1;
+ gzip_proxied any;
+
+ root /www;
+
+ server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+ server_name localhost;
+
+ location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
+ expires 365d;
+ }
+
+ location / {
+ index index.html;
+ include luci_uwsgi.conf;
+ }
+
+ location /luci-static {
+
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+
+user root;
+worker_processes 1;
+
+#error_log logs/error.log;
+#error_log logs/error.log notice;
+#error_log logs/error.log info;
+
+pid /var/run/nginx.pid;
+
+
+events {
+ worker_connections 1024;
+}
+
+
+http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ sendfile on;
+ keepalive_timeout 0;
+
+ client_body_buffer_size 10K;
+ client_header_buffer_size 1k;
+ client_max_body_size 1G;
+ large_client_header_buffers 2 1k;
+
+ gzip on;
+ gzip_http_version 1.1;
+ gzip_vary on;
+ gzip_comp_level 1;
+ gzip_proxied any;
+
+ root /www;
+
+ server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+ server_name _;
+ return 301 https://$host$request_uri;
+ }
+
+ server {
+ listen 443 ssl default_server;
+ listen [::]:443 ssl default_server;
+ server_name localhost;
+
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+ ssl_prefer_server_ciphers on;
+ ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:DHE+AESGCM:DHE:!RSA!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!CAMELLIA:!SEED";
+ ssl_session_tickets off;
+
+ ssl_certificate /etc/nginx/nginx.cer;
+ ssl_certificate_key /etc/nginx/nginx.key;
+
+ location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
+ expires 365d;
+ }
+
+ location / {
+ index index.html;
+ include luci_uwsgi.conf;
+ }
+
+ location /luci-static {
+
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+uwsgi_param QUERY_STRING $query_string;
+uwsgi_param REQUEST_METHOD $request_method;
+uwsgi_param CONTENT_TYPE $content_type;
+uwsgi_param CONTENT_LENGTH $content_length if_not_empty;
+uwsgi_param REQUEST_URI $request_uri;
+uwsgi_param PATH_INFO $document_uri;
+uwsgi_param SERVER_PROTOCOL $server_protocol;
+uwsgi_param REMOTE_ADDR $remote_addr;
+uwsgi_param REMOTE_PORT $remote_port;
+uwsgi_param SERVER_ADDR $server_addr;
+uwsgi_param SERVER_PORT $server_port;
+uwsgi_param SERVER_NAME $server_name;
+uwsgi_modifier1 9;
+uwsgi_pass unix:////var/run/uwsgi.sock;
\ No newline at end of file
--- a/lua-nginx/src/ngx_http_lua_module.c
+++ b/lua-nginx/src/ngx_http_lua_module.c
-@@ -157,14 +157,14 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -165,14 +165,14 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
offsetof(ngx_http_lua_loc_conf_t, log_socket_errors),
NULL },
{ ngx_string("init_by_lua"),
NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
ngx_http_lua_init_by_lua,
-@@ -178,14 +178,14 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -186,14 +186,14 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_MAIN_CONF_OFFSET,
0,
(void *) ngx_http_lua_init_by_file },
{ ngx_string("init_worker_by_lua"),
NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
ngx_http_lua_init_worker_by_lua,
-@@ -201,6 +201,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -209,6 +209,7 @@ static ngx_command_t ngx_http_lua_cmds[]
(void *) ngx_http_lua_init_worker_by_file },
#if defined(NDK) && NDK
/* set_by_lua $res { inline Lua code } [$arg1 [$arg2 [...]]] */
{ ngx_string("set_by_lua_block"),
NGX_HTTP_SRV_CONF|NGX_HTTP_SIF_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -209,7 +210,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -217,7 +218,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_filter_set_by_lua_inline },
/* set_by_lua $res <inline script> [$arg1 [$arg2 [...]]] */
{ ngx_string("set_by_lua"),
NGX_HTTP_SRV_CONF|NGX_HTTP_SIF_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -237,7 +238,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -245,7 +246,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_rewrite_handler_inline },
/* rewrite_by_lua_block { <inline script> } */
{ ngx_string("rewrite_by_lua_block"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -246,7 +247,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -254,7 +255,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_rewrite_handler_inline },
/* access_by_lua "<inline script>" */
{ ngx_string("access_by_lua"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -255,7 +256,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -263,7 +264,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_access_handler_inline },
/* access_by_lua_block { <inline script> } */
{ ngx_string("access_by_lua_block"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -264,7 +265,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -272,7 +273,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_access_handler_inline },
/* content_by_lua "<inline script>" */
{ ngx_string("content_by_lua"),
NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF|NGX_CONF_TAKE1,
-@@ -272,7 +273,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -280,7 +281,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_content_handler_inline },
/* content_by_lua_block { <inline script> } */
{ ngx_string("content_by_lua_block"),
NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS,
-@@ -280,7 +281,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -288,7 +289,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_content_handler_inline },
/* log_by_lua <inline script> */
{ ngx_string("log_by_lua"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -289,7 +290,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -297,7 +298,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_log_handler_inline },
/* log_by_lua_block { <inline script> } */
{ ngx_string("log_by_lua_block"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -298,7 +299,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -306,7 +307,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_log_handler_inline },
{ ngx_string("rewrite_by_lua_file"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
|NGX_CONF_TAKE1,
-@@ -353,7 +354,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -361,7 +362,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_header_filter_inline },
/* header_filter_by_lua_block { <inline script> } */
{ ngx_string("header_filter_by_lua_block"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -362,7 +363,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -370,7 +371,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_header_filter_inline },
{ ngx_string("header_filter_by_lua_file"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
|NGX_CONF_TAKE1,
-@@ -378,7 +379,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -386,7 +387,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_body_filter_inline },
/* body_filter_by_lua_block { <inline script> } */
{ ngx_string("body_filter_by_lua_block"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -387,7 +388,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -395,7 +396,7 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_body_filter_inline },
{ ngx_string("body_filter_by_lua_file"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
|NGX_CONF_TAKE1,
-@@ -395,14 +396,14 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -403,14 +404,14 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
0,
(void *) ngx_http_lua_body_filter_file },
{ ngx_string("balancer_by_lua_file"),
NGX_HTTP_UPS_CONF|NGX_CONF_TAKE1,
ngx_http_lua_balancer_by_lua,
-@@ -509,14 +510,14 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -517,14 +518,14 @@ static ngx_command_t ngx_http_lua_cmds[]
NGX_HTTP_LOC_CONF_OFFSET,
offsetof(ngx_http_lua_loc_conf_t, ssl_ciphers),
NULL },
ngx_feature_libs=
--- a/auto/cc/conf
+++ b/auto/cc/conf
-@@ -200,7 +200,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+@@ -204,7 +204,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
else
ngx_feature="C99 variadic macros"
ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
ngx_feature_incs="#include <stdio.h>
#define var(dummy, ...) sprintf(__VA_ARGS__)"
ngx_feature_path=
-@@ -214,7 +214,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+@@ -218,7 +218,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
ngx_feature="gcc variadic macros"
ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
ngx_feature_incs="#include <sys/epoll.h>"
ngx_feature_path=
ngx_feature_libs=
-@@ -93,7 +93,7 @@ ngx_feature_test="int fd; struct stat sb
+@@ -110,7 +110,7 @@ ngx_feature_test="int fd; struct stat sb
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
ngx_feature="sendfile()"
ngx_feature_name="NGX_HAVE_SENDFILE"
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
-@@ -114,7 +114,7 @@ fi
+@@ -131,7 +131,7 @@ fi
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
ngx_feature="sendfile64()"
ngx_feature_name="NGX_HAVE_SENDFILE64"
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
-@@ -132,7 +132,7 @@ ngx_include="sys/prctl.h"; . auto/includ
+@@ -149,7 +149,7 @@ ngx_include="sys/prctl.h"; . auto/includ
ngx_feature="prctl(PR_SET_DUMPABLE)"
ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
ngx_feature_libs=
--- a/auto/unix
+++ b/auto/unix
-@@ -735,7 +735,7 @@ ngx_feature_test="void *p; p = memalign(
+@@ -840,7 +840,7 @@ ngx_feature_test="void *p; p = memalign(
ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
ngx_feature_name="NGX_HAVE_MAP_ANON"
ngx_feature_incs="#include <sys/mman.h>"
ngx_feature_path=
ngx_feature_libs=
-@@ -748,7 +748,7 @@ ngx_feature_test="void *p;
+@@ -853,7 +853,7 @@ ngx_feature_test="void *p;
ngx_feature='mmap("/dev/zero", MAP_SHARED)'
ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
ngx_feature_incs="#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>"
-@@ -763,7 +763,7 @@ ngx_feature_test='void *p; int fd;
+@@ -868,7 +868,7 @@ ngx_feature_test='void *p; int fd;
ngx_feature="System V shared memory"
ngx_feature_name="NGX_HAVE_SYSVSHM"
ngx_feature_incs="#include <sys/ipc.h>
#include <sys/shm.h>"
ngx_feature_path=
-@@ -777,7 +777,7 @@ ngx_feature_test="int id;
+@@ -882,7 +882,7 @@ ngx_feature_test="int id;
ngx_feature="POSIX semaphores"
ngx_feature_name="NGX_HAVE_POSIX_SEM"
return 0;
}
-@@ -40,7 +45,7 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&
+@@ -40,7 +46,7 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&
if [ -x $NGX_AUTOTEST ]; then
--- /dev/null
+--- a/auto/options
++++ b/auto/options
+@@ -391,8 +391,7 @@
+ --test-build-solaris-sendfilev) NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;
+
+ *)
+- echo "$0: error: invalid option \"$option\""
+- exit 1
++ echo "$0: error: ignoring invalid option \"$option\""
+ ;;
+ esac
+ done
# Name and release number of this package
PKG_NAME:=noddos
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=GPLv3
PKG_MAINTAINER:=Steven Hessing <steven.hessing@gmail.com>
--- /dev/null
+--- a/src/opensslfingerprint.cxx
++++ b/src/opensslfingerprint.cxx
+@@ -110,7 +110,9 @@ std::string getCertFingerprint(const std
+ snprintf(&fpbuf[57], 3, "%02x", md[19]);
+
+ if (Debug) {
+- syslog (LOG_DEBUG, "Cert: %s, fingerprint: %s", x->name, fpbuf);
++ char *namebuf = X509_NAME_oneline(X509_get_subject_name(x),NULL,0);
++ syslog (LOG_DEBUG, "Cert: %s, fingerprint: %s", namebuf, fpbuf);
++ free(namebuf);
+ }
+
+ std::string fp = fpbuf;
PKG_NAME:=nut
PKG_VERSION:=2.7.4
-PKG_RELEASE:=4
+PKG_RELEASE:=6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.networkupstools.org/source/2.7/
PKG_HASH:=980e82918c52d364605c0703a5dcf01f74ad2ef06e3d365949e43b7d406d25a7
-PKG_MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
+PKG_MAINTAINER:=Daniel Dickinson <cshored@thecshore.com>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE-GPL2
+PKG_FIXUP:=autoreconf
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL:=1
--- /dev/null
+From fcbf18c92918ce5e81d0aab62a7aed5c2245ea4d Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Fri, 1 Jun 2018 11:17:28 -0300
+Subject: [PATCH 1/2] Add compatibility with openssl 1.1.0
+
+Minor adjustments were needed:
+* Openssl 1.1 libs do not need to be initialized.
+* TLSv*_method became TLS_*_method.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ clients/upsclient.c | 5 ++++-
+ m4/nut_check_libopenssl.m4 | 2 +-
+ server/netssl.c | 7 +++++--
+ 3 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/clients/upsclient.c b/clients/upsclient.c
+index b90587b0..053d60fb 100644
+--- a/clients/upsclient.c
++++ b/clients/upsclient.c
+@@ -316,10 +316,13 @@ int upscli_init(int certverify, const char *certpath,
+
+ #ifdef WITH_OPENSSL
+
++# if OPENSSL_VERSION_NUMBER < 0x10100000L
+ SSL_library_init();
+ SSL_load_error_strings();
++# define TLS_client_method TLSv1_client_method
++# endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+
+- ssl_method = TLSv1_client_method();
++ ssl_method = TLS_client_method();
+
+ if (!ssl_method) {
+ return 0;
+diff --git a/m4/nut_check_libopenssl.m4 b/m4/nut_check_libopenssl.m4
+index 1b875077..7eb401cd 100644
+--- a/m4/nut_check_libopenssl.m4
++++ b/m4/nut_check_libopenssl.m4
+@@ -58,7 +58,7 @@ if test -z "${nut_have_libopenssl_seen}"; then
+
+ dnl check if openssl is usable
+ AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
+- AC_CHECK_FUNCS(SSL_library_init, [], [nut_have_openssl=no])
++ AC_CHECK_FUNCS(SSL_CTX_new, [], [nut_have_openssl=no])
+
+ if test "${nut_have_openssl}" = "yes"; then
+ nut_with_ssl="yes"
+diff --git a/server/netssl.c b/server/netssl.c
+index c2f40989..0289e296 100644
+--- a/server/netssl.c
++++ b/server/netssl.c
+@@ -387,12 +387,15 @@ void ssl_init(void)
+
+ #ifdef WITH_OPENSSL
+
++# if OPENSSL_VERSION_NUMBER < 0x10100000L
+ SSL_load_error_strings();
+ SSL_library_init();
++# define TLS_server_method TLSv1_server_method
++# endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+
+- if ((ssl_method = TLSv1_server_method()) == NULL) {
++ if ((ssl_method = TLS_server_method()) == NULL) {
+ ssl_debug();
+- fatalx(EXIT_FAILURE, "TLSv1_server_method failed");
++ fatalx(EXIT_FAILURE, "TLS_server_method failed");
+ }
+
+ if ((ssl_ctx = SSL_CTX_new(ssl_method)) == NULL) {
+--
+2.16.1
+
--- /dev/null
+From 2ef929da38232af63ba53074ca97e95ae4faf912 Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+lede@de-korte.org>
+Date: Tue, 28 Nov 2017 22:01:41 +0100
+Subject: [PATCH 2/2] Fix check for empty string
+
+---
+ clients/upssched.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/clients/upssched.c b/clients/upssched.c
+index 97b3ed42..3fdf118e 100644
+--- a/clients/upssched.c
++++ b/clients/upssched.c
+@@ -794,7 +794,7 @@ static void parse_at(const char *ntype, const char *un, const char *cmd,
+ }
+
+ if (!strcmp(cmd, "EXECUTE")) {
+- if (ca1 == '\0') {
++ if (ca1[0] == '\0') {
+ upslogx(LOG_ERR, "Empty EXECUTE command argument");
+ return;
+ }
+--
+2.16.1
+
include $(TOPDIR)/rules.mk
PKG_NAME:=ola
-PKG_VERSION:=0.10.5
-PKG_RELEASE:=2
+PKG_VERSION:=0.10.6
+PKG_RELEASE:=3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/OpenLightingProject/ola.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=32db3c49d435398d017c6b5c0b25e02a7a831f5c
+PKG_SOURCE_VERSION:=6e57342c414a72cdd721e8df5bc7967e17459647
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=11ed6540bd667c1662d91de93a260a9a63a98725851f768647e2b9b2efe1ae34
+PKG_MIRROR_HASH:=c1f36eaedcd9711e42fd362ff84d8e66eb40bc6af97de77129a5074d05fb9936
PKG_LICENSE:=LGPL-2.1+
PKG_FIXUP:=libtool
TITLE:=Open Lighting Architecture Daemon
URL:=https://www.openlighting.org/
MAINTAINER:=Christian Beier <dontmind@freeshell.org>
- DEPENDS:=+protobuf +libusb-1.0 +libuuid +libstdcpp +libpthread +librt +zlib +libncurses +liblo
+ DEPENDS:=+protobuf +libusb-1.0 +libuuid +libstdcpp +libpthread +librt +zlib +libncurses +liblo +libmicrohttpd
endef
define Package/ola/description
--disable-static \
--disable-fatal-warnings \
--disable-unittests \
- --disable-http \
--without-dns-sd \
- --with-ola-protoc-plugin=$(HOST_BUILD_DIR)/protoc/ola_protoc_plugin
+ --with-ola-protoc-plugin=$(STAGING_DIR_HOSTPKG)/bin/ola_protoc_plugin
HOST_CONFIGURE_ARGS += \
--disable-all-plugins \
$(MAKE) protoc/ola_protoc_plugin
endef
-# nothing to install for host part
define Host/Install
+ $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin
+ $(CP) $(HOST_BUILD_DIR)/protoc/ola_protoc_plugin $(STAGING_DIR_HOSTPKG)/bin
endef
$(INSTALL_DIR) $(1)/usr/share/ola/pids
$(CP) $(PKG_INSTALL_DIR)/usr/share/ola/pids/* $(1)/usr/share/ola/pids
+
+ $(INSTALL_DIR) $(1)/usr/share/olad/www
+ $(CP) $(PKG_INSTALL_DIR)/usr/share/olad/www/* $(1)/usr/share/olad/www
endef
define Package/ola/postinst
--- /dev/null
+Index: ola-0.10.6/configure.ac
+===================================================================
+--- ola-0.10.6.orig/configure.ac
++++ ola-0.10.6/configure.ac
+@@ -72,8 +72,6 @@ AM_CONDITIONAL([SUPPORTS_GNU_PLUS_PLUS_1
+ require_gnu_plus_plus_11="no"
+ AS_IF([test "x$ac_cv_gnu_plus_plus_11" = xyes],
+ [AS_IF([test "x$ac_cv_gnu_plus_plus_98" = xyes],
+- [AS_IF([test "x$enable_unittests" = xno],
+- [CXXFLAGS="$CXXFLAGS -std=gnu++98"],
+ [PKG_CHECK_MODULES([CPPUNIT1], [cppunit < 1.14.0],
+ [CXXFLAGS="$CXXFLAGS -std=gnu++98"],
+ [PKG_CHECK_MODULES([CPPUNIT2], [cppunit >= 1.14.0],
+@@ -81,7 +79,6 @@ AS_IF([test "x$ac_cv_gnu_plus_plus_11" =
+ [AC_MSG_WARN([OLA requires std::auto_ptr support.])])
+ ])
+ ])
+- ])
+ ])
+ AS_IF([test "x$require_gnu_plus_plus_11" = xyes],
+ [CXXFLAGS="$CXXFLAGS -std=gnu++11"])
PKG_NAME:=openssh
PKG_VERSION:=7.7p1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
define Package/openssh-client
$(call Package/openssh/Default)
TITLE+= client
+ ALTERNATIVES:=\
+ 200:/usr/bin/ssh:/usr/bin/openssh-ssh \
+ 200:/usr/bin/scp:/usr/bin/openssh-scp \
+
endef
define Package/openssh-client/description
all install
endef
-define Package/openssh-client/preinst
-#!/bin/sh
-if [ -L $${IPKG_INSTROOT}/usr/bin/ssh ] && [ -L $${IPKG_INSTROOT}/usr/bin/scp ]; then
- rm -f $${IPKG_INSTROOT}/usr/bin/ssh $${IPKG_INSTROOT}/usr/bin/scp;
-fi
-exit 0
-endef
-
-define Package/openssh-client/postrm
-#!/bin/sh
-rm -f $${IPKG_INSTROOT}/usr/bin/ssh $${IPKG_INSTROOT}/usr/bin/scp;
-if [ -x $${IPKG_INSTROOT}/usr/sbin/dropbear ] ; then
- ln -s /usr/sbin/dropbear $${IPKG_INSTROOT}/usr/bin/ssh;
- ln -s /usr/sbin/dropbear $${IPKG_INSTROOT}/usr/bin/scp;
-fi
-exit 0
-endef
-
define Package/openssh-moduli/install
$(INSTALL_DIR) $(1)/etc/ssh
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/ssh/moduli $(1)/etc/ssh/
chmod 0700 $(1)/etc/ssh
$(CP) $(PKG_INSTALL_DIR)/etc/ssh/ssh_config $(1)/etc/ssh/
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ssh $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/scp $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ssh $(1)/usr/bin/openssh-ssh
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/scp $(1)/usr/bin/openssh-scp
endef
define Package/openssh-client-utils/install
#
# Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
# Copyright (C) 2014-2017 OpenWrt.org
+# Copyright (C) 2018 Yousong Zhou <yszhou4tech@gmail.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
-# $Id: Makefile $
-
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=openvswitch
-
-PKG_VERSION:=2.8.2
-PKG_RELEASE:=1
-PKG_LICENSE:=Apache-2.0
-PKG_LICENSE_FILES:=COPYING
-PKG_USE_MIPS16:=0
-
+PKG_VERSION:=2.9.2
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.openvswitch.org/releases/
-PKG_HASH:=87b4a7e7134a44ce1f808d3415a2244b4518c2b0b2a42fa2f8231e592f13103d
+PKG_HASH:=90f084dc282fdb588a2cfff351fea359492f69600f1e4a1286e24e44901de113
-PKG_BUILD_DEPENDS:=python/host python-six/host
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+PKG_BUILD_DEPENDS:=python/host python-six/host
+PKG_USE_MIPS16:=0
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include ../../lang/python/python-host.mk
include ../../lang/python/python-package.mk
-define Package/openvswitch/Default
- SECTION:=net
- SUBMENU:=Open vSwitch
- CATEGORY:=Network
- URL:=http://openvswitch.org/
-endef
-
-define Package/openvswitch/Default/description
- Open vSwitch is a production quality, multilayer, software-based, Ethernet
- virtual switch. It is designed to enable massive network automation through
- programmatic extension, while still supporting standard management interfaces
- and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In
- addition, it is designed to support distribution across multiple physical
- servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus
- 1000V.
-endef
-
-define Package/openvswitch-base
- $(call Package/openvswitch/Default)
- TITLE:=Open vSwitch Userspace Package (base)
- DEPENDS:=+libpcap +libopenssl +librt +kmod-openvswitch
-endef
-
-define Package/openvswitch-base/description
- Provides the main userspace components required for Open vSwitch to function.
- The main OVS tools (ovs-vsctl, ovs-ofctl, etc) are packaged separately
- to conserve some room and allow more configurability.
-endef
-
-define Package/openvswitch-ovn-base
- $(call Package/openvswitch/Default)
- TITLE:=Open Virtual Networking (base)
- DEPENDS:=+openvswitch-base
-endef
-define Package/openvswitch-ovn-base/description
- Provides the main userspace components required for Open Virtual Networking
- over Open vSwitch.
-endef
+CONFIGURE_ARGS+= \
+ --enable-ndebug \
+ --enable-shared \
+ --disable-libcapng \
-OVN_BIN_TOOLS:=ovn-controller ovn-controller-vtep ovn-detrace \
- ovn-nbctl ovn-sbctl ovn-trace
-define Package/openvswitch-ovn
- $(call Package/openvswitch/Default)
- TITLE:=Open Virtual Networking (base)
- DEPENDS:=+openvswitch-ovn-base $(foreach t,$(OVN_BIN_TOOLS),+openvswitch-$(t))
-endef
-
-define Package/openvswitch-ovn/description
- Provides all the components required for Open Virtual Networking
- (including the tools)
-endef
-
-define Package/openvswitch-vtep
- $(call Package/openvswitch/Default)
- TITLE:=Open vSwitch VXLAN Tunnel End Point
- DEPENDS:=+openvswitch-base
-endef
-
-define Package/openvswitch-vtep/description
- This schema specifies relations that a VTEP can use to integrate physi‐
- cal ports into logical switches maintained by a network virtualization
- controller such as NSX.
-endef
-
-define Package/openvswitch-python
- $(call Package/openvswitch/Default)
- TITLE:=Open vSwitch Python Support
- DEPENDS:=+PACKAGE_openvswitch-python:python +PACKAGE_openvswitch-python:python-six
-endef
-
-define Package/openvswitch-python/description
- Provides bindings and libraries for using Python to manipulate/work with Open vSwitch.
-endef
+CONFIGURE_VARS += \
+ ovs_cv_flake8=no \
+ ovs_cv_python3=no \
+ ovs_cv_sphinx=no \
+ ovs_cv_python=$(PYTHON) \
+ ovs_cv_python_host=$(HOST_PYTHON_BIN) \
-OVS_BIN_TOOLS:= \
- ovsdb-client ovs-l3ping ovs-dpctl-top \
- ovs-tcpdump ovs-tcpundump ovs-pcap
-define Package/openvswitch
- $(call Package/openvswitch/Default)
- TITLE:=Open vSwitch Userspace Package
- DEPENDS:=+openvswitch-base $(foreach t,$(OVS_BIN_TOOLS),+openvswitch-$(t))
-endef
+TARGET_CFLAGS += -flto -std=gnu99
+MAKE_VARS += PYTHONPATH="$(HOST_PYTHONPATH)"
-define Package/openvswitch/description
- Provides the main userspace components required for Open vSwitch to function.
- Includes also most of OVS utilities.
-endef
define KernelPackage/openvswitch
SECTION:=kernel
AUTOLOAD:=$(call AutoProbe,vport-geneve)
endef
-CONFIGURE_ARGS += --enable-ndebug
-CONFIGURE_ARGS += --enable-shared
-
-TARGET_CFLAGS += -flto -std=gnu99
-
-CONFIGURE_VARS += \
- ovs_cv_flake8=no \
- ovs_cv_python3=no \
- ovs_cv_sphinx=no \
- ovs_cv_python=$(PYTHON) \
- ovs_cv_python_host=$(HOST_PYTHON_BIN) \
- KARCH=$(LINUX_KARCH)
-
-MAKE_VARS += PYTHONPATH="$(HOST_PYTHONPATH)"
-MAKE_FLAGS += ARCH="$(LINUX_KARCH)"
-define OvsBinUtility
- define Package/openvswitch-$(2)
- $(call Package/openvswitch/Default)
- TITLE:=$(3)
- DEPENDS:=+$(1) $(4)
+ovs_packages:=
+ovs_package_name=$(if $(filter openvswitch,$(1)),openvswitch,openvswitch-$(1))
+define OvsPackageTemplate
+ define Package/$(call ovs_package_name,$(1))
+ SECTION:=net
+ SUBMENU:=Open vSwitch
+ CATEGORY:=Network
+ URL:=https://www.openvswitch.org
+ TITLE:=$(ovs_$(1)_title)
+ HIDDEN:=$(ovs_$(1)_hidden)
+ DEPENDS:=$(ovs_$(1)_depends)
endef
- define Package/openvswitch-$(2)/description
- $(3)
+ define Package/$(call ovs_package_name,$(1))/install
+ $(foreach f,$(ovs_$(1)_files),
+ $(INSTALL_DIR) $$(1)/$(dir $(f))
+ $(CP) $(PKG_INSTALL_DIR)/$(f) $$(1)/$(dir $(f))
+ )
+ $(ovs_$(1)_install)
endef
- define Package/openvswitch-$(2)/install
- $(INSTALL_DIR) $$(1)/usr/bin/ ;\
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $$(1)/usr/bin/
- endef
+ ovs_packages+=$(call ovs_package_name,$(1))
endef
-define Package/openvswitch-base/install
- $(INSTALL_DIR) $(1)/etc/openvswitch
-
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/etc/init.d/openvswitch.init $(1)/etc/init.d/openvswitch
-
- $(INSTALL_DIR) $(1)/usr/lib/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libofproto*.so* $(1)/usr/lib/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopenvswitch*.so* $(1)/usr/lib/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libovsdb*.so* $(1)/usr/lib/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsflow*.so* $(1)/usr/lib/
-
- $(INSTALL_DIR) $(1)/usr/bin/
- $(foreach bin,ovsdb-tool ovs-appctl ovs-ofctl ovs-dpctl ovs-vsctl ovs-pki, \
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(bin) $(1)/usr/bin/ ; )
-
- $(INSTALL_DIR) $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ovs-vswitchd $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ovsdb-server $(1)/usr/sbin/
-
- $(INSTALL_DIR) $(1)/usr/share/openvswitch/scripts
- $(INSTALL_CONF) \
- $(PKG_INSTALL_DIR)/usr/share/openvswitch/vswitch.ovsschema \
- $(1)/usr/share/openvswitch/
- $(INSTALL_DATA) \
- $(PKG_INSTALL_DIR)/usr/share/openvswitch/scripts/ovs-lib \
- $(1)/usr/share/openvswitch/scripts
- $(INSTALL_BIN) \
- $(PKG_INSTALL_DIR)/usr/share/openvswitch/scripts/ovs-ctl \
- $(1)/usr/share/openvswitch/scripts
-endef
+# Dependency review
+#
+# for f in sbin/*; do echo $f; readelf -d $f | grep -i shared; done
+# for f in bin/*; do echo $f; readelf -d $f | grep -i shared; done
+# for f in lib/*.so; do echo $f; readelf -d $f | grep -i shared; done
+#
+ovs_libopenvswitch_title:=Open vSwitch (libopenvswitch.so)
+ovs_libopenvswitch_hidden:=1
+ovs_libopenvswitch_depends:=+libopenssl +librt
+ovs_libopenvswitch_files:=usr/lib/libopenvswitch*.so*
+$(eval $(call OvsPackageTemplate,libopenvswitch))
-define Package/openvswitch-ovn-base/install
- $(INSTALL_DIR) $(1)/usr/lib/ $(1)/usr/bin/ $(1)/usr/share/openvswitch/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libovn*.so* $(1)/usr/lib/
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ovn-northd $(1)/usr/bin/
+ovs_libofproto_title:=Open vSwitch (libofproto.so libsflow.so)
+ovs_libofproto_hidden:=1
+ovs_libofproto_depends:=+librt
+ovs_libofproto_files:=usr/lib/libofproto*.so* usr/lib/libsflow*.so*
+$(eval $(call OvsPackageTemplate,libofproto))
- $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/share/openvswitch/ovn-nb.ovsschema $(1)/usr/share/openvswitch/
- $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/share/openvswitch/ovn-sb.ovsschema $(1)/usr/share/openvswitch/
-endef
-define Package/openvswitch-vtep/install
- $(INSTALL_DIR) $(1)/usr/lib/ $(1)/usr/bin/ $(1)/usr/share/openvswitch/
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vtep-ctl $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libvtep*.so* $(1)/usr/lib/
- $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/share/openvswitch/vtep.ovsschema $(1)/usr/share/openvswitch/
-endef
+ovs_libovsdb_title:=Open vSwitch (libovsdb.so)
+ovs_libovsdb_hidden:=1
+ovs_libovsdb_depends:=+librt
+ovs_libovsdb_files:=usr/lib/libovsdb*.so*
+$(eval $(call OvsPackageTemplate,libovsdb))
-define Package/openvswitch-python/install
- $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/ovs
- $(CP) $(PKG_INSTALL_DIR)/usr/share/openvswitch/python/ovs/* $(1)/usr/lib/python$(PYTHON_VERSION)/ovs
-endef
-define Package/openvswitch-ovn/install
- :
-endef
+ovs_libovn_title:=Open vSwitch (libovn.so)
+ovs_libovn_hidden:=1
+ovs_libovn_depends:=+librt
+ovs_libovn_files:=usr/lib/libovn*.so*
+$(eval $(call OvsPackageTemplate,libovn))
-define Package/openvswitch/install
- :
+
+ovs_vswitchd_title:=Open vSwitch (ovs-vswitchd)
+ovs_vswitchd_hidden:=1
+ovs_vswitchd_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto
+ovs_vswitchd_files:=usr/sbin/ovs-vswitchd
+$(eval $(call OvsPackageTemplate,vswitchd))
+
+
+ovs_ovsdb_title:=Open vSwitch (ovsdb-server)
+ovs_ovsdb_hidden:=1
+ovs_ovsdb_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libovsdb
+ovs_ovsdb_files:=usr/sbin/ovsdb-server
+$(eval $(call OvsPackageTemplate,ovsdb))
+
+
+ovs_common_title:=Open vSwitch (common files)
+ovs_common_hidden:=1
+ovs_common_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto +openvswitch-libovsdb
+ovs_common_files:= \
+ usr/share/openvswitch/scripts/ovs-lib \
+ usr/share/openvswitch/scripts/ovs-ctl \
+ usr/share/openvswitch/scripts/ovs-save \
+ $(foreach b,ovs-appctl ovs-dpctl ovs-ofctl ovs-vsctl ovsdb-client ovsdb-tool,usr/bin/$(b))
+define ovs_common_install
+ $$(INSTALL_DIR) $$(1)/etc/openvswitch
+ $$(INSTALL_DIR) $$(1)/etc/init.d
+ $$(INSTALL_BIN) ./files/openvswitch.init $$(1)/etc/init.d/openvswitch
+ $$(INSTALL_DIR) $$(1)/etc/config
+ $$(INSTALL_DATA) ./files/openvswitch.config $$(1)/etc/config/openvswitch
+ $$(INSTALL_DIR) $$(1)/usr/share/openvswitch/scripts
+ $$(INSTALL_BIN) ./files/ovs-ctl-wrapper $$(1)/usr/share/openvswitch/scripts/
+ $$(LN) /usr/share/openvswitch/scripts/ovs-ctl-wrapper $$(1)/usr/bin/ovs-ctl
+endef
+define Package/openvswitch-common/conffiles
+/etc/openvswitch
endef
+$(eval $(call OvsPackageTemplate,common))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-appctl,Open vSwitch app control utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-ofctl,Open vSwitch OpenFlow control utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-dpctl,Open vSwitch datapath management utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-vsctl,Open vSwitch ovs-vswitchd management utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovsdb-client,Open vSwitch database JSON-RPC client))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-l3ping,Check network deployment for L3 tunneling problems))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-dpctl-top,Top like behavior for ovs-dpctl dump-flows))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-pki,OpenFlow public key infrastructure management utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-tcpdump,Dump traffic from an Open vSwitch port using tcpdump))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-tcpundump,Convert ``tcpdump -xx`` output to hex strings))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-pcap,Print packets from a pcap file as hex))
-
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-controller,Open Virtual Network local controller))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-controller-vtep,Open Virtual Network local controller for vtep enabled physical switches,+openvswitch-vtep))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-detrace,Convert ``ovs-appctl ofproto/trace`` output to combine OVN logical flow information))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-nbctl,Open Virtual Network northbound db management utility))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-sbctl,Utility for querying and configuring OVN_Southbound data‐base))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-trace,Open Virtual Network logical network tracing utility))
-
-$(foreach t,$(OVS_BIN_TOOLS),$(eval $(call BuildPackage,openvswitch-$(t))))
-$(foreach t,$(OVN_BIN_TOOLS),$(eval $(call BuildPackage,openvswitch-$(t))))
-
-$(eval $(call BuildPackage,openvswitch-base))
-$(eval $(call BuildPackage,openvswitch-ovn-base))
-$(eval $(call BuildPackage,openvswitch-ovn))
-$(eval $(call BuildPackage,openvswitch-vtep))
-$(eval $(call BuildPackage,openvswitch-python))
-$(eval $(call BuildPackage,openvswitch))
+
+# coreutils-sleep is required by ovs-lib for sleeping a fraction of second
+#
+# uuidgen is required for generating system-id
+ovs_openvswitch_title:=Open vSwitch
+ovs_openvswitch_hidden:=
+ovs_openvswitch_depends:=+librt +coreutils +coreutils-sleep +uuidgen \
+ +openvswitch-common +openvswitch-vswitchd +openvswitch-ovsdb +kmod-openvswitch
+ovs_openvswitch_files:= usr/share/openvswitch/vswitch.ovsschema
+$(eval $(call OvsPackageTemplate,openvswitch))
+
+
+ovs_ovn-common_title:=Open Virtual Network (common files)
+ovs_ovn-common_hidden:=1
+ovs_ovn-common_depends:=+librt +openvswitch-common +openvswitch-libopenvswitch +openvswitch-libovn +openvswitch-libovsdb
+ovs_ovn-common_files:= \
+ usr/share/openvswitch/scripts/ovn-ctl \
+ $(foreach b,ovn-nbctl ovn-sbctl ovn-trace ovn-detrace,usr/bin/$(b))
+define ovs_ovn-common_install
+ $$(INSTALL_DIR) $$(1)/usr/share/openvswitch/scripts
+ $$(LN) /usr/share/openvswitch/scripts/ovs-ctl-wrapper $$(1)/usr/bin/ovn-ctl
+endef
+$(eval $(call OvsPackageTemplate,ovn-common))
+
+
+ovs_ovn-north_title:=Open Virtual Network (north package)
+ovs_ovn-north_hidden:=
+ovs_ovn-north_depends:=+openvswitch-ovsdb +openvswitch-ovn-common
+ovs_ovn-north_files:=\
+ usr/share/openvswitch/ovn-nb.ovsschema \
+ usr/share/openvswitch/ovn-sb.ovsschema \
+ usr/bin/ovn-northd
+$(eval $(call OvsPackageTemplate,ovn-north))
+
+
+ovs_ovn-host_title:=Open Virtual Network (chassis package)
+ovs_ovn-host_hidden:=
+ovs_ovn-host_depends:=+openvswitch +openvswitch-ovn-common
+ovs_ovn-host_files:=usr/bin/ovn-controller
+$(eval $(call OvsPackageTemplate,ovn-host))
+
+
+ovs_python_title:=Open vSwitch (Python library)
+ovs_python_hidden:=
+ovs_python_depends:=+PACKAGE_openvswitch-python:python +PACKAGE_openvswitch-python:python-six
+define ovs_python_install
+ $$(INSTALL_DIR) $$(1)$$(PYTHON_PKG_DIR)
+ $$(CP) $$(PKG_INSTALL_DIR)/usr/share/openvswitch/python/ovs $$(1)$$(PYTHON_PKG_DIR)
+endef
+$(eval $(call OvsPackageTemplate,python))
+
+
+$(foreach p,$(ovs_packages),\
+ $(eval $(call BuildPackage,$(p)))\
+)
$(eval $(call KernelPackage,openvswitch))
$(eval $(call KernelPackage,openvswitch-gre))
--- /dev/null
+# Which packages to install
+
+Install `openvswitch` if you need OpenFlow virtual switch function. It
+contains ovs-vswitchd, ovsdb-server and helper utilities such as ovs-vsctl,
+ovs-ofctl, ovs-ctl etc.
+
+Linux kernel datapath module openvswitch.ko will also be installed along with
+package `openvswitch`. Tunnel encap support for gre, geneve, vxlan can be
+included by installing `kmod-openvswitch-{gre,geneve,vxlan}` respectively
+
+For OVN deployment
+
+- Install `openvswitch-ovn-north` for ovs-northd, ovsdb-server, ovn helper utitlies
+- Install `openvswitch-ovn-host` for ovn-controller and `openvswitch`
+
+# How to use them
+
+Open vSwitch provides a few very useful helper script in
+`/usr/share/openvswitch/scripts/`. A simple initscript is provided. It's
+mainly a wrapper around `ovs-ctl` and `ovn-ctl` with simple knobs from
+`/etc/config/openvswitch`. Procd is not used here.
+
+ /etc/init.d/openvswitch start
+ /etc/init.d/openvswitch stop
+ /etc/init.d/openvswitch stop north
+ /etc/init.d/openvswitch restart ovs
+ /etc/init.d/openvswitch status
+
+Use `ovs-ctl` and `ovn-ctl` directly for more functionalities
+++ /dev/null
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
-# Copyright (C) 2014-2017 OpenWrt.org
-
-START=15
-
-start() {
- /usr/share/openvswitch/scripts/ovs-ctl start
-}
-
-stop() {
- /usr/share/openvswitch/scripts/ovs-ctl stop
-}
-
-restart() {
- /usr/share/openvswitch/scripts/ovs-ctl restart
-}
-
-status() {
- /usr/share/openvswitch/scripts/ovs-ctl status
-}
-
--- /dev/null
+config ovs ovs
+ option disabled 1
+
+config ovn_northd north
+ option disabled 1
+
+config ovn_controller controller
+ option disabled 1
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
+# Copyright (C) 2014-2017 OpenWrt.org
+# Copyright (C) 2018 Yousong Zhou <yszhou4tech@gmail.com>
+
+START=15
+
+ovs_script_dir=/usr/share/openvswitch/scripts
+ovs_ctl="$ovs_script_dir/ovs-ctl"
+ovn_ctl="$ovs_script_dir/ovn-ctl"
+
+EXTRA_COMMANDS=status
+
+start() {
+ ovs_action start "$@"
+}
+
+stop() {
+ ovs_action stop "$@"
+}
+
+restart() {
+ ovs_action restart "$@"
+}
+
+status() {
+ ovs_action status "$@"
+}
+
+ovs_action_cfgs=
+ovs_action() {
+ local action="$1"; shift
+ local cfgtype
+
+ ovs_action_cfgs="$*"
+ config_load openvswitch
+ for cfgtype in ovs ovn_northd ovn_controller; do
+ config_foreach "ovs_xx" "$cfgtype" "$action" "$cfgtype"
+ done
+}
+
+ovs_xx() {
+ local cfg="$1"
+ local action="$2"
+ local cfgtype="$3"
+ local disabled
+
+ if [ -n "$ovs_action_cfgs" ] && ! list_contains "ovs_action_cfgs" "$cfg"; then
+ return
+ fi
+ case "$action" in
+ status|stop) ;;
+ *)
+ config_get_bool disabled "$cfg" disabled 0
+ [ "$disabled" -le 0 ] || return
+ ;;
+ esac
+
+ case "$cfgtype" in
+ ovs)
+ "$ovs_ctl" "$action" \
+ --system-id=random
+ ;;
+ ovn_*)
+ "$ovn_ctl" "${action}_${cfgtype#ovn_}"
+ ;;
+ esac
+}
--- /dev/null
+#!/bin/sh
+
+s=/usr/share/openvswitch/scripts
+case "$0" in
+ *ovs-ctl) "$s/ovs-ctl" "$@" ;;
+ *ovn-ctl) "$s/ovn-ctl" "$@" ;;
+ *) exit 1;;
+esac
-diff --git a/configure.ac b/configure.ac
-index e6a23a6..8a7c6d6 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -118,7 +118,6 @@ OVS_CHECK_XENSERVER_VERSION
+@@ -122,7 +122,6 @@ OVS_CHECK_SOCKET_LIBS
+ OVS_CHECK_XENSERVER_VERSION
OVS_CHECK_GROFF
- OVS_CHECK_GNU_MAKE
OVS_CHECK_TLS
-OVS_CHECK_ATOMIC_LIBS
OVS_CHECK_GCC4_ATOMICS
OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(1)
OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(2)
-diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index 712cb5a..e840f10 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
-@@ -40,7 +40,9 @@
+@@ -39,7 +39,9 @@
#include <netpacket/packet.h>
#include <net/if.h>
#include <net/if_arp.h>
#include <net/if_packet.h>
+#endif
#include <net/route.h>
- #include <netinet/in.h>
#include <poll.h>
-diff --git a/lib/ovs-atomic.h b/lib/ovs-atomic.h
-index 9ead907..0a131d7 100644
+ #include <stdlib.h>
--- a/lib/ovs-atomic.h
+++ b/lib/ovs-atomic.h
-@@ -318,7 +318,7 @@
+@@ -320,7 +320,7 @@
#include "util.h"
#define IN_OVS_ATOMIC_H
lib/netdev-linux.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index c0471be15..0750e5f2c 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
-@@ -2788,7 +2788,7 @@ update_flags(struct netdev_linux *netdev, enum netdev_flags off,
+@@ -2810,7 +2810,7 @@ update_flags(struct netdev_linux *netdev
enum netdev_flags on, enum netdev_flags *old_flagsp)
OVS_REQUIRES(netdev->mutex)
{
int error = 0;
old_flags = netdev->ifi_flags;
---
-2.16.2
-
lib/netdev-linux.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
-diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index 0750e5f2c..59e7b9c96 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
-@@ -2791,7 +2791,13 @@ update_flags(struct netdev_linux *netdev, enum netdev_flags off,
+@@ -2813,7 +2813,13 @@ update_flags(struct netdev_linux *netdev
unsigned int old_flags, new_flags;
int error = 0;
*old_flagsp = iff_to_nd_flags(old_flags);
new_flags = (old_flags & ~nd_to_iff_flags(off)) | nd_to_iff_flags(on);
if (new_flags != old_flags) {
---
-2.16.2
-
m4/openvswitch.m4 | 12 ++++--------
2 files changed, 5 insertions(+), 9 deletions(-)
-diff --git a/Makefile.am b/Makefile.am
-index 31d633179..4b9e8d491 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -59,7 +59,7 @@ endif
+@@ -60,7 +60,7 @@ endif
# foo/__init__.pyc will cause Python to ignore foo.py.
run_python = \
PYTHONPATH=$(top_srcdir)/python$(psep)$$PYTHONPATH \
ALL_LOCAL =
BUILT_SOURCES =
-diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4
-index 00ffad35f..52f207bda 100644
--- a/m4/openvswitch.m4
+++ b/m4/openvswitch.m4
-@@ -347,20 +347,16 @@ else:
+@@ -351,20 +351,16 @@ else:
if test $ovs_cv_python = no; then
AC_MSG_ERROR([cannot find python 2.7 or higher.])
fi
dnl Checks for Python 3.x, x >= 4.
AC_DEFUN([OVS_CHECK_PYTHON3],
---
-2.16.2
-
utilities/ovs-ctl.in | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
-diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
-index 4ddc450fb..52018e6d3 100755
--- a/utilities/ovs-ctl.in
+++ b/utilities/ovs-ctl.in
-@@ -68,9 +68,7 @@ ovs_vsctl () {
+@@ -64,9 +64,7 @@ insert_mod_if_required () {
}
set_hostname () {
}
set_system_ids () {
---
-2.16.2
-
-From d8dd661e1c100a2d2ba0361cf6c91dcdedfeeb70 Mon Sep 17 00:00:00 2001
+From 43b855e201bd25a015ba6444cabce12b8cc181ec Mon Sep 17 00:00:00 2001
From: Yousong Zhou <yszhou4tech@gmail.com>
Date: Wed, 14 Mar 2018 16:44:13 +0800
Subject: [PATCH 104/104] ovs-lib: fix install_dir()
utilities/ovs-lib.in | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
-diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in
-index 1bccea0c5..457297f3f 100644
--- a/utilities/ovs-lib.in
+++ b/utilities/ovs-lib.in
@@ -157,7 +157,10 @@ install_dir () {
if test ! -d "$DIR"; then
- install -d -m "$INSTALL_MODE" -o "$INSTALL_USER" -g "$INSTALL_GROUP" "$DIR"
+ mkdir -p "$DIR"
-+ chmod "$INSTALL_MODE"
++ chmod "$INSTALL_MODE" "$DIR"
+ chown "$INSTALL_USER" "$DIR"
+ chgrp "$INSTALL_GROUP" "$DIR"
restorecon "$DIR" >/dev/null 2>&1
fi
}
---
-2.16.2
-
--- /dev/null
+From bca4ff53aef16d38aeb1569edaaca6ac4feac6e8 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Tue, 5 Jun 2018 10:36:51 -0300
+Subject: [PATCH] Removed calls to AP deprecated in openssl 1.1
+
+In openssl 1.1, there is no need to initialize the library. It is
+automatically done when first used. This allows to compile openvswitch
+with openssl 1.1.0 with deprecated API disabled.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Signed-off-by: Ben Pfaff <blp@ovn.org>
+---
+ lib/stream-ssl.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/stream-ssl.c b/lib/stream-ssl.c
+index ebb6f3a6c8..c7443470f5 100644
+--- a/lib/stream-ssl.c
++++ b/lib/stream-ssl.c
+@@ -947,12 +947,14 @@ do_ssl_init(void)
+ {
+ SSL_METHOD *method;
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
+ #ifdef _WIN32
+ /* The following call is needed if we "#include <openssl/applink.c>". */
+ CRYPTO_malloc_init();
+ #endif
+ SSL_library_init();
+ SSL_load_error_strings();
++#endif
+
+ if (!RAND_status()) {
+ /* We occasionally see OpenSSL fail to seed its random number generator
--- /dev/null
+From a513cb5fed8c4f63d60b6da12ae9f63a258a9e44 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Wed, 6 Jun 2018 08:20:35 -0300
+Subject: [PATCH] dhparams: Add pregenerated .c file to the repository.
+
+The version of dhparams.c generated by any given version of OpenSSL or
+LibreSSL might work only with that version of the library. This can be
+inconvenient for cross-compiling if the "openssl" program on the build
+machine has a different version from the library on the host where OVS will
+run, since it could generate code that won't compile.
+
+This commit fixes the problem by generating dhparams.c that works on the
+currently important versions of OpenSSL and LibreSSL.
+
+Submitted-at: https://github.com/openvswitch/ovs/pull/235
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Signed-off-by: Ben Pfaff <blp@ovn.org>
+---
+ build-aux/automake.mk | 1 +
+ build-aux/generate-dhparams-c | 31 +++++++
+ lib/automake.mk | 17 ++--
+ lib/dhparams.c | 192 ++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 233 insertions(+), 9 deletions(-)
+ create mode 100755 build-aux/generate-dhparams-c
+ create mode 100644 lib/dhparams.c
+
+diff --git a/build-aux/automake.mk b/build-aux/automake.mk
+index a1f2f856f..3a3b31ce1 100644
+--- a/build-aux/automake.mk
++++ b/build-aux/automake.mk
+@@ -4,6 +4,7 @@ EXTRA_DIST += \
+ build-aux/cksum-schema-check \
+ build-aux/dist-docs \
+ build-aux/dpdkstrip.py \
++ build-aux/generate-dhparams-c \
+ build-aux/sodepends.py \
+ build-aux/soexpand.py \
+ build-aux/text2c \
+diff --git a/build-aux/generate-dhparams-c b/build-aux/generate-dhparams-c
+new file mode 100755
+index 000000000..a75e1d5a7
+--- /dev/null
++++ b/build-aux/generate-dhparams-c
+@@ -0,0 +1,31 @@
++#! /bin/sh -e
++
++cat <<'EOF'
++/* Generated automatically; do not modify! -*- buffer-read-only: t -*-
++ *
++ * If you do need to regenerate this file, run "make generate-dhparams-c". */
++
++#include <config.h>
++#include "lib/dhparams.h"
++#include "openvswitch/util.h"
++
++static int
++my_DH_set0_pqg(DH *dh, BIGNUM *p, const BIGNUM **q OVS_UNUSED, BIGNUM *g)
++{
++ ovs_assert(q == NULL);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++ dh->p = p;
++ dh->g = g;
++ return 1;
++#else
++ return DH_set0_pqg(dh, p, NULL, g);
++#endif
++}
++EOF
++(openssl dhparam -C -in lib/dh1024.pem -noout &&
++openssl dhparam -C -in lib/dh2048.pem -noout &&
++openssl dhparam -C -in lib/dh4096.pem -noout) | sed '
++ s/\(get_dh[0-9]*\)()/\1(void)/
++ s/\(DH_set0_pqg\)/my_\1/
++ s/[ ]*$//
++'
+diff --git a/lib/automake.mk b/lib/automake.mk
+index fb781e847..3bec3fd56 100644
+--- a/lib/automake.mk
++++ b/lib/automake.mk
+@@ -450,15 +450,16 @@ lib_libopenvswitch_la_SOURCES += \
+ lib/route-table-bsd.c
+ endif
+
++.PHONY: generate-dhparams-c
+ if HAVE_OPENSSL
+-lib_libopenvswitch_la_SOURCES += lib/stream-ssl.c
+-nodist_lib_libopenvswitch_la_SOURCES += lib/dhparams.c
+-lib/dhparams.c: lib/dh1024.pem lib/dh2048.pem lib/dh4096.pem
+- $(AM_V_GEN)(echo '#include "lib/dhparams.h"' && \
+- openssl dhparam -C -in $(srcdir)/lib/dh1024.pem -noout && \
+- openssl dhparam -C -in $(srcdir)/lib/dh2048.pem -noout && \
+- openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) \
+- | sed 's/\(get_dh[0-9]*\)()/\1(void)/' > lib/dhparams.c.tmp && \
++lib_libopenvswitch_la_SOURCES += lib/stream-ssl.c lib/dhparams.c
++
++# Manually regenerates lib/dhparams.c. Not normally necessary since
++# lib/dhparams.c is part of the repository and doesn't normally need
++# updates.
++generate-dhparams-c:
++ $(AM_V_GEN)cd $(srcdir) && \
++ build-aux/generate-dhparams-c > lib/dhparams.c.tmp && \
+ mv lib/dhparams.c.tmp lib/dhparams.c
+ else
+ lib_libopenvswitch_la_SOURCES += lib/stream-nossl.c
+diff --git a/lib/dhparams.c b/lib/dhparams.c
+new file mode 100644
+index 000000000..c9c338bf1
+--- /dev/null
++++ b/lib/dhparams.c
+@@ -0,0 +1,192 @@
++/* Generated automatically; do not modify! -*- buffer-read-only: t -*-
++ *
++ * If you do need to regenerate this file, run "make generate-dhparams-c". */
++
++#include <config.h>
++#include "lib/dhparams.h"
++#include "openvswitch/util.h"
++
++static int
++my_DH_set0_pqg(DH *dh, BIGNUM *p, const BIGNUM **q OVS_UNUSED, BIGNUM *g)
++{
++ ovs_assert(q == NULL);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++ dh->p = p;
++ dh->g = g;
++ return 1;
++#else
++ return DH_set0_pqg(dh, p, NULL, g);
++#endif
++}
++#ifndef HEADER_DH_H
++# include <openssl/dh.h>
++#endif
++
++DH *get_dh1024(void)
++{
++ static unsigned char dhp_1024[] = {
++ 0xF4, 0x88, 0xFD, 0x58, 0x4E, 0x49, 0xDB, 0xCD, 0x20, 0xB4,
++ 0x9D, 0xE4, 0x91, 0x07, 0x36, 0x6B, 0x33, 0x6C, 0x38, 0x0D,
++ 0x45, 0x1D, 0x0F, 0x7C, 0x88, 0xB3, 0x1C, 0x7C, 0x5B, 0x2D,
++ 0x8E, 0xF6, 0xF3, 0xC9, 0x23, 0xC0, 0x43, 0xF0, 0xA5, 0x5B,
++ 0x18, 0x8D, 0x8E, 0xBB, 0x55, 0x8C, 0xB8, 0x5D, 0x38, 0xD3,
++ 0x34, 0xFD, 0x7C, 0x17, 0x57, 0x43, 0xA3, 0x1D, 0x18, 0x6C,
++ 0xDE, 0x33, 0x21, 0x2C, 0xB5, 0x2A, 0xFF, 0x3C, 0xE1, 0xB1,
++ 0x29, 0x40, 0x18, 0x11, 0x8D, 0x7C, 0x84, 0xA7, 0x0A, 0x72,
++ 0xD6, 0x86, 0xC4, 0x03, 0x19, 0xC8, 0x07, 0x29, 0x7A, 0xCA,
++ 0x95, 0x0C, 0xD9, 0x96, 0x9F, 0xAB, 0xD0, 0x0A, 0x50, 0x9B,
++ 0x02, 0x46, 0xD3, 0x08, 0x3D, 0x66, 0xA4, 0x5D, 0x41, 0x9F,
++ 0x9C, 0x7C, 0xBD, 0x89, 0x4B, 0x22, 0x19, 0x26, 0xBA, 0xAB,
++ 0xA2, 0x5E, 0xC3, 0x55, 0xE9, 0x2F, 0x78, 0xC7
++ };
++ static unsigned char dhg_1024[] = {
++ 0x02
++ };
++ DH *dh = DH_new();
++ BIGNUM *dhp_bn, *dhg_bn;
++
++ if (dh == NULL)
++ return NULL;
++ dhp_bn = BN_bin2bn(dhp_1024, sizeof (dhp_1024), NULL);
++ dhg_bn = BN_bin2bn(dhg_1024, sizeof (dhg_1024), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL
++ || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return NULL;
++ }
++ return dh;
++}
++#ifndef HEADER_DH_H
++# include <openssl/dh.h>
++#endif
++
++DH *get_dh2048(void)
++{
++ static unsigned char dhp_2048[] = {
++ 0xF6, 0x42, 0x57, 0xB7, 0x08, 0x7F, 0x08, 0x17, 0x72, 0xA2,
++ 0xBA, 0xD6, 0xA9, 0x42, 0xF3, 0x05, 0xE8, 0xF9, 0x53, 0x11,
++ 0x39, 0x4F, 0xB6, 0xF1, 0x6E, 0xB9, 0x4B, 0x38, 0x20, 0xDA,
++ 0x01, 0xA7, 0x56, 0xA3, 0x14, 0xE9, 0x8F, 0x40, 0x55, 0xF3,
++ 0xD0, 0x07, 0xC6, 0xCB, 0x43, 0xA9, 0x94, 0xAD, 0xF7, 0x4C,
++ 0x64, 0x86, 0x49, 0xF8, 0x0C, 0x83, 0xBD, 0x65, 0xE9, 0x17,
++ 0xD4, 0xA1, 0xD3, 0x50, 0xF8, 0xF5, 0x59, 0x5F, 0xDC, 0x76,
++ 0x52, 0x4F, 0x3D, 0x3D, 0x8D, 0xDB, 0xCE, 0x99, 0xE1, 0x57,
++ 0x92, 0x59, 0xCD, 0xFD, 0xB8, 0xAE, 0x74, 0x4F, 0xC5, 0xFC,
++ 0x76, 0xBC, 0x83, 0xC5, 0x47, 0x30, 0x61, 0xCE, 0x7C, 0xC9,
++ 0x66, 0xFF, 0x15, 0xF9, 0xBB, 0xFD, 0x91, 0x5E, 0xC7, 0x01,
++ 0xAA, 0xD3, 0x5B, 0x9E, 0x8D, 0xA0, 0xA5, 0x72, 0x3A, 0xD4,
++ 0x1A, 0xF0, 0xBF, 0x46, 0x00, 0x58, 0x2B, 0xE5, 0xF4, 0x88,
++ 0xFD, 0x58, 0x4E, 0x49, 0xDB, 0xCD, 0x20, 0xB4, 0x9D, 0xE4,
++ 0x91, 0x07, 0x36, 0x6B, 0x33, 0x6C, 0x38, 0x0D, 0x45, 0x1D,
++ 0x0F, 0x7C, 0x88, 0xB3, 0x1C, 0x7C, 0x5B, 0x2D, 0x8E, 0xF6,
++ 0xF3, 0xC9, 0x23, 0xC0, 0x43, 0xF0, 0xA5, 0x5B, 0x18, 0x8D,
++ 0x8E, 0xBB, 0x55, 0x8C, 0xB8, 0x5D, 0x38, 0xD3, 0x34, 0xFD,
++ 0x7C, 0x17, 0x57, 0x43, 0xA3, 0x1D, 0x18, 0x6C, 0xDE, 0x33,
++ 0x21, 0x2C, 0xB5, 0x2A, 0xFF, 0x3C, 0xE1, 0xB1, 0x29, 0x40,
++ 0x18, 0x11, 0x8D, 0x7C, 0x84, 0xA7, 0x0A, 0x72, 0xD6, 0x86,
++ 0xC4, 0x03, 0x19, 0xC8, 0x07, 0x29, 0x7A, 0xCA, 0x95, 0x0C,
++ 0xD9, 0x96, 0x9F, 0xAB, 0xD0, 0x0A, 0x50, 0x9B, 0x02, 0x46,
++ 0xD3, 0x08, 0x3D, 0x66, 0xA4, 0x5D, 0x41, 0x9F, 0x9C, 0x7C,
++ 0xBD, 0x89, 0x4B, 0x22, 0x19, 0x26, 0xBA, 0xAB, 0xA2, 0x5E,
++ 0xC3, 0x55, 0xE9, 0x32, 0x0B, 0x3B
++ };
++ static unsigned char dhg_2048[] = {
++ 0x02
++ };
++ DH *dh = DH_new();
++ BIGNUM *dhp_bn, *dhg_bn;
++
++ if (dh == NULL)
++ return NULL;
++ dhp_bn = BN_bin2bn(dhp_2048, sizeof (dhp_2048), NULL);
++ dhg_bn = BN_bin2bn(dhg_2048, sizeof (dhg_2048), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL
++ || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return NULL;
++ }
++ return dh;
++}
++#ifndef HEADER_DH_H
++# include <openssl/dh.h>
++#endif
++
++DH *get_dh4096(void)
++{
++ static unsigned char dhp_4096[] = {
++ 0xFA, 0x14, 0x72, 0x52, 0xC1, 0x4D, 0xE1, 0x5A, 0x49, 0xD4,
++ 0xEF, 0x09, 0x2D, 0xC0, 0xA8, 0xFD, 0x55, 0xAB, 0xD7, 0xD9,
++ 0x37, 0x04, 0x28, 0x09, 0xE2, 0xE9, 0x3E, 0x77, 0xE2, 0xA1,
++ 0x7A, 0x18, 0xDD, 0x46, 0xA3, 0x43, 0x37, 0x23, 0x90, 0x97,
++ 0xF3, 0x0E, 0xC9, 0x03, 0x50, 0x7D, 0x65, 0xCF, 0x78, 0x62,
++ 0xA6, 0x3A, 0x62, 0x22, 0x83, 0xA1, 0x2F, 0xFE, 0x79, 0xBA,
++ 0x35, 0xFF, 0x59, 0xD8, 0x1D, 0x61, 0xDD, 0x1E, 0x21, 0x13,
++ 0x17, 0xFE, 0xCD, 0x38, 0x87, 0x9E, 0xF5, 0x4F, 0x79, 0x10,
++ 0x61, 0x8D, 0xD4, 0x22, 0xF3, 0x5A, 0xED, 0x5D, 0xEA, 0x21,
++ 0xE9, 0x33, 0x6B, 0x48, 0x12, 0x0A, 0x20, 0x77, 0xD4, 0x25,
++ 0x60, 0x61, 0xDE, 0xF6, 0xB4, 0x4F, 0x1C, 0x63, 0x40, 0x8B,
++ 0x3A, 0x21, 0x93, 0x8B, 0x79, 0x53, 0x51, 0x2C, 0xCA, 0xB3,
++ 0x7B, 0x29, 0x56, 0xA8, 0xC7, 0xF8, 0xF4, 0x7B, 0x08, 0x5E,
++ 0xA6, 0xDC, 0xA2, 0x45, 0x12, 0x56, 0xDD, 0x41, 0x92, 0xF2,
++ 0xDD, 0x5B, 0x8F, 0x23, 0xF0, 0xF3, 0xEF, 0xE4, 0x3B, 0x0A,
++ 0x44, 0xDD, 0xED, 0x96, 0x84, 0xF1, 0xA8, 0x32, 0x46, 0xA3,
++ 0xDB, 0x4A, 0xBE, 0x3D, 0x45, 0xBA, 0x4E, 0xF8, 0x03, 0xE5,
++ 0xDD, 0x6B, 0x59, 0x0D, 0x84, 0x1E, 0xCA, 0x16, 0x5A, 0x8C,
++ 0xC8, 0xDF, 0x7C, 0x54, 0x44, 0xC4, 0x27, 0xA7, 0x3B, 0x2A,
++ 0x97, 0xCE, 0xA3, 0x7D, 0x26, 0x9C, 0xAD, 0xF4, 0xC2, 0xAC,
++ 0x37, 0x4B, 0xC3, 0xAD, 0x68, 0x84, 0x7F, 0x99, 0xA6, 0x17,
++ 0xEF, 0x6B, 0x46, 0x3A, 0x7A, 0x36, 0x7A, 0x11, 0x43, 0x92,
++ 0xAD, 0xE9, 0x9C, 0xFB, 0x44, 0x6C, 0x3D, 0x82, 0x49, 0xCC,
++ 0x5C, 0x6A, 0x52, 0x42, 0xF8, 0x42, 0xFB, 0x44, 0xF9, 0x39,
++ 0x73, 0xFB, 0x60, 0x79, 0x3B, 0xC2, 0x9E, 0x0B, 0xDC, 0xD4,
++ 0xA6, 0x67, 0xF7, 0x66, 0x3F, 0xFC, 0x42, 0x3B, 0x1B, 0xDB,
++ 0x4F, 0x66, 0xDC, 0xA5, 0x8F, 0x66, 0xF9, 0xEA, 0xC1, 0xED,
++ 0x31, 0xFB, 0x48, 0xA1, 0x82, 0x7D, 0xF8, 0xE0, 0xCC, 0xB1,
++ 0xC7, 0x03, 0xE4, 0xF8, 0xB3, 0xFE, 0xB7, 0xA3, 0x13, 0x73,
++ 0xA6, 0x7B, 0xC1, 0x0E, 0x39, 0xC7, 0x94, 0x48, 0x26, 0x00,
++ 0x85, 0x79, 0xFC, 0x6F, 0x7A, 0xAF, 0xC5, 0x52, 0x35, 0x75,
++ 0xD7, 0x75, 0xA4, 0x40, 0xFA, 0x14, 0x74, 0x61, 0x16, 0xF2,
++ 0xEB, 0x67, 0x11, 0x6F, 0x04, 0x43, 0x3D, 0x11, 0x14, 0x4C,
++ 0xA7, 0x94, 0x2A, 0x39, 0xA1, 0xC9, 0x90, 0xCF, 0x83, 0xC6,
++ 0xFF, 0x02, 0x8F, 0xA3, 0x2A, 0xAC, 0x26, 0xDF, 0x0B, 0x8B,
++ 0xBE, 0x64, 0x4A, 0xF1, 0xA1, 0xDC, 0xEE, 0xBA, 0xC8, 0x03,
++ 0x82, 0xF6, 0x62, 0x2C, 0x5D, 0xB6, 0xBB, 0x13, 0x19, 0x6E,
++ 0x86, 0xC5, 0x5B, 0x2B, 0x5E, 0x3A, 0xF3, 0xB3, 0x28, 0x6B,
++ 0x70, 0x71, 0x3A, 0x8E, 0xFF, 0x5C, 0x15, 0xE6, 0x02, 0xA4,
++ 0xCE, 0xED, 0x59, 0x56, 0xCC, 0x15, 0x51, 0x07, 0x79, 0x1A,
++ 0x0F, 0x25, 0x26, 0x27, 0x30, 0xA9, 0x15, 0xB2, 0xC8, 0xD4,
++ 0x5C, 0xCC, 0x30, 0xE8, 0x1B, 0xD8, 0xD5, 0x0F, 0x19, 0xA8,
++ 0x80, 0xA4, 0xC7, 0x01, 0xAA, 0x8B, 0xBA, 0x53, 0xBB, 0x47,
++ 0xC2, 0x1F, 0x6B, 0x54, 0xB0, 0x17, 0x60, 0xED, 0x79, 0x21,
++ 0x95, 0xB6, 0x05, 0x84, 0x37, 0xC8, 0x03, 0xA4, 0xDD, 0xD1,
++ 0x06, 0x69, 0x8F, 0x4C, 0x39, 0xE0, 0xC8, 0x5D, 0x83, 0x1D,
++ 0xBE, 0x6A, 0x9A, 0x99, 0xF3, 0x9F, 0x0B, 0x45, 0x29, 0xD4,
++ 0xCB, 0x29, 0x66, 0xEE, 0x1E, 0x7E, 0x3D, 0xD7, 0x13, 0x4E,
++ 0xDB, 0x90, 0x90, 0x58, 0xCB, 0x5E, 0x9B, 0xCD, 0x2E, 0x2B,
++ 0x0F, 0xA9, 0x4E, 0x78, 0xAC, 0x05, 0x11, 0x7F, 0xE3, 0x9E,
++ 0x27, 0xD4, 0x99, 0xE1, 0xB9, 0xBD, 0x78, 0xE1, 0x84, 0x41,
++ 0xA0, 0xDF
++ };
++ static unsigned char dhg_4096[] = {
++ 0x02
++ };
++ DH *dh = DH_new();
++ BIGNUM *dhp_bn, *dhg_bn;
++
++ if (dh == NULL)
++ return NULL;
++ dhp_bn = BN_bin2bn(dhp_4096, sizeof (dhp_4096), NULL);
++ dhg_bn = BN_bin2bn(dhg_4096, sizeof (dhg_4096), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL
++ || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return NULL;
++ }
++ return dh;
++}
+--
+2.16.4
+
PKG_LICENSE:=Apache-2.0
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MIRROR_HASH:=9e04b979cff827974ec9e9708daf116867bf1268cdad7dff4ad585172123f6b5
PKG_SOURCE_URL:=https://github.com/pagekite/libpagekite.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=v$(PKG_REV)
include $(TOPDIR)/rules.mk
PKG_NAME:=pen
-PKG_VERSION:=0.34.0
+PKG_VERSION:=0.34.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://siag.nu/pub/pen/
-PKG_HASH:=a3306bfb02619b103ff431002bb91079048bf2dd24f739bf38e373860558cd27
+PKG_HASH:=2b640795029df9d1672e17202c109cc5d42538f6754a6070dc27da640881e864
PKG_LICENSE:=GPL-2.0+
PKG_LICENSE_FILES:=COPYING
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=511a6bedd65169ffd1aadb38dd470d53d445cffcc3a322ec2dd0dee6009162a6
+PKG_MIRROR_HASH:=8c8d1743b8972ade6c75027346fc652f7a1c0f17e2f9bd2e65aad20013d9870e
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/br101/pingcheck
PKG_SOURCE_PROTO:=git
include $(TOPDIR)/rules.mk
PKG_NAME:=radsecproxy
-PKG_VERSION:=1.6.8
+PKG_VERSION:=1.7.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://software.uninett.no/radsecproxy/
-PKG_HASH:=9923203c3aaf17e31d5bc7a61b99e5a6aa0ef19a8397616f6ef9c0c41948f7d2
+PKG_SOURCE_URL:=https://github.com/radsecproxy/radsecproxy/releases/download/$(PKG_VERSION)/
+PKG_HASH:=49fd644684c6ea502d896d31e29f1acf2ae9b61b02b231a8ffd0cec11857dd07
PKG_LICENSE:=GPL-2.0+
PKG_LICENSE_FILES:=LICENSE
+PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/radsecproxy
SECTION:=net
CATEGORY:=Network
- DEPENDS:=+libopenssl +libpthread
+ DEPENDS:=+libopenssl +libpthread +libnettle
TITLE:=radsecproxy
- URL:=http://software.uninett.no/radsecproxy
+ URL:=https://radsecproxy.github.io/
MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
endef
--- /dev/null
+--- a/debug.c
++++ b/debug.c
+@@ -153,7 +153,7 @@ void debug_logit(uint8_t level, const ch
+
+ if (debug_tid) {
+ tidbuf = malloc((3*sizeof(pthread_t)+5)+strlen(format));
+- sprintf(tidbuf, "(%ld) %s", pthread_self(), format);
++ sprintf(tidbuf, "(%ld) %s", (long int)pthread_self(), format);
+ format = tidbuf;
+ } else
+ tidbuf = NULL;
+++ /dev/null
---- a/dtls.c
-+++ b/dtls.c
-@@ -523,6 +523,7 @@ void *udpdtlsserverrd(void *arg) {
- free(params);
- cacheexpire(sessioncache, &lastexpiry);
- }
-+ return NULL;
- }
-
- int dtlsconnect(struct server *server, struct timeval *when, int timeout, char *text) {
-@@ -642,6 +643,7 @@ void *udpdtlsclientrd(void *arg) {
- if (udp2bio(s, conf->servers->rbios, cnt))
- debug(DBG_DBG, "radudpget: got DTLS in UDP from %s", addr2string((struct sockaddr *)&from));
- }
-+ return NULL;
- }
-
- void *dtlsclientrd(void *arg) {
---- a/radsecproxy.c
-+++ b/radsecproxy.c
-@@ -3203,6 +3203,8 @@ void *sighandler(void *arg) {
- debug(DBG_WARN, "sighandler: ignoring signal %d", sig);
- }
- }
-+
-+ return NULL;
- }
-
- int createpidfile(const char *pidfile) {
-@@ -3289,6 +3291,8 @@ int radsecproxy_main(int argc, char **ar
- /* just hang around doing nothing, anything to do here? */
- for (;;)
- sleep(1000);
-+
-+ return 0;
- }
-
- /* Local Variables: */
---- a/udp.c
-+++ b/udp.c
-@@ -266,6 +266,8 @@ void *udpclientrd(void *arg) {
- buf = radudpget(*s, NULL, &server, NULL);
- replyh(server, buf);
- }
-+
-+ return NULL;
- }
-
- void *udpserverrd(void *arg) {
-@@ -310,6 +312,8 @@ void *udpserverwr(void *arg) {
- debug(DBG_DBG, "udpserverwr: refcount %d", reply->refcount);
- freerq(reply);
- }
-+
-+ return NULL;
- }
-
- void addclientudp(struct client *client) {
-diff --git a/radsecproxy.c b/radsecproxy.c
-index 563c4a8..9fa076d 100644
--- a/radsecproxy.c
+++ b/radsecproxy.c
-@@ -3382,18 +3382,16 @@ int radsecproxy_main(int argc, char **argv) {
+@@ -3385,15 +3385,13 @@ int radsecproxy_main(int argc, char **ar
options.loglevel = loglevel;
else if (options.loglevel)
debug_set_level(options.loglevel);
- debug_set_destination(options.logdestination
- ? options.logdestination
- : "x-syslog:///", LOG_TYPE_DEBUG);
-+ debug_set_destination(options.logdestination
-+ ? options.logdestination
-+ : "x-syslog:///", LOG_TYPE_DEBUG);
- #if defined(WANT_FTICKS)
- if (options.ftickssyslogfacility) {
- debug_set_destination(options.ftickssyslogfacility,
- LOG_TYPE_FTICKS);
- free(options.ftickssyslogfacility);
- }
--#endif
++ debug_set_destination(options.logdestination
++ ? options.logdestination
++ : "x-syslog:///", LOG_TYPE_DEBUG);
+ if (options.ftickssyslogfacility) {
-+ debug_set_destination(options.ftickssyslogfacility,
-+ LOG_TYPE_FTICKS);
-+ free(options.ftickssyslogfacility);
++ debug_set_destination(options.ftickssyslogfacility,
++ LOG_TYPE_FTICKS);
++ free(options.ftickssyslogfacility);
}
-+#endif
free(options.logdestination);
-
- if (!list_first(clconfs))
+ if (options.logtid)
include $(TOPDIR)/rules.mk
PKG_NAME:=reaver
-PKG_VERSION:=1.6.4
+PKG_VERSION:=1.6.5
PKG_RELEASE:=1
PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/t6x/reaver-wps-fork-t6x/releases/download/v$(PKG_VERSION)
-PKG_HASH:=bf63b3d5a5596b0bd292a995f778dc99b0b89af88237cc2cfd7c4abbce942bb2
+PKG_HASH:=342e9d265cf459bd2387205b73a63d1fc7582e268f0e9aec20613f3ec11b6a6b
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=docs/LICENSE
PKG_NAME:=rp-pppoe
PKG_VERSION:=3.12
-PKG_RELEASE:=4
-PKG_MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
+PKG_RELEASE:=6
PKG_LICENSE:=LGPL-2.0+
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
--- /dev/null
+--- a/src/pppoe.h
++++ b/src/pppoe.h
+@@ -132,6 +132,9 @@ typedef unsigned long UINT32_t;
+ #endif
+
+ #include <netinet/in.h>
++/* avoid redefinitions if <linux/in.h> and <linux/in6.h> get included. */
++#define _LINUX_IN_H
++#define _LINUX_IN6_H
+
+ #ifdef HAVE_NETINET_IF_ETHER_H
+ #include <sys/types.h>
PKG_NAME:=rsync
PKG_VERSION:=3.1.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://download.samba.org/pub/rsync/src
CONFIGURE_ARGS+= --with-included-zlib=yes
endif
+ifeq ($(CONFIG_IPV6),y)
+ TARGET_CFLAGS+= -DINET6
+else
+ CONFIGURE_ARGS+= --disable-ipv6
+endif
+
define Package/rsyncd
SECTION:=net
CATEGORY:=Network
include $(TOPDIR)/rules.mk
PKG_NAME:=seafile-ccnet
-PKG_VERSION:=6.2.2
+PKG_VERSION:=6.3.0
PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
PKG_LICENSE:=GPL-3.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/haiwen/ccnet-server.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=6b9d7e2920aa9b807f9efe9038439b57ce949ecc
+PKG_SOURCE_VERSION:=614926b161623b267b4fb77fa1861718da406103
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=8aed6d2283ac7b3148f9b5c82b1d992ed36dc5193000cf727bdcfae7446ce1fe
+PKG_MIRROR_HASH:=843660e05809e6a6e076cf4d5ea3a6aad65b9b03aa1eaa3b4d980a314e7aed61
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
DEPENDS:=+libsearpc +libevent2 +libopenssl \
+glib2 +python +libzdb +libuuid \
+libpthread +libsqlite3 +jansson $(ICONV_DEPENDS)
- EXTRA_DEPENDS:=libsearpc (=6.2.2-8998e7b2c5587f0b94c48db24e2952d08def5add-1)
+ EXTRA_DEPENDS:=libsearpc (=3.0.8-12a01268825e9c7e17794c58c367e3b4db912ad9-1)
endef
define Package/seafile-ccnet/description
--- /dev/null
+From afeb62f01ad6e610cd19dcde0ceffc018b3247ec Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Wed, 6 Jun 2018 18:05:33 -0300
+Subject: [PATCH] Remove API deprecated in openssl 1.1
+
+With openssl 1.1, we do not call OpenSSL_add_all_algorithms(), as
+library initialization is done automatically.
+Functions RAND_pseudo_bytes and RSA_generate_key were deprecated as
+well.
+Also, we need to #include <openssl/bn.h> for BN_num_bytes().
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ lib/rsa.c | 19 ++++++++++++++-----
+ net/common/processors/keepalive-proc.c | 4 ++--
+ net/common/processors/keepalive2-proc.c | 2 +-
+ net/common/processors/sendsessionkey-proc.c | 2 +-
+ net/common/processors/sendsessionkey-v2-proc.c | 2 +-
+ net/server/user-mgr.c | 4 ++++
+ tools/ccnet-init.c | 2 ++
+ 7 files changed, 25 insertions(+), 10 deletions(-)
+
+diff --git a/lib/rsa.c b/lib/rsa.c
+index 7cca150..23abb82 100644
+--- a/lib/rsa.c
++++ b/lib/rsa.c
+@@ -4,6 +4,7 @@
+ #include <openssl/rand.h>
+ #include <openssl/rsa.h>
+ #include <openssl/err.h>
++#include <openssl/bn.h>
+
+ #include <string.h>
+ #include <glib.h>
+@@ -207,9 +208,17 @@ RSA *
+ generate_private_key(u_int bits)
+ {
+ RSA *private = NULL;
+-
+- private = RSA_generate_key(bits, 35, NULL, NULL);
+- if (private == NULL)
+- g_error ("rsa_generate_private_key: key generation failed.");
+- return private;
++ BIGNUM *e = NULL;
++
++ private = RSA_new();
++ e = BN_new();
++ if (private == NULL || e == NULL || !BN_set_word(e, 35) ||
++ !RSA_generate_key_ex(private, bits, e, NULL)) {
++ RSA_free(private);
++ BN_free(e);
++ g_error ("rsa_generate_private_key: key generation failed.");
++ return NULL;
++ }
++ BN_free(e);
++ return private;
+ }
+diff --git a/net/common/processors/keepalive-proc.c b/net/common/processors/keepalive-proc.c
+index 609d102..42a0c23 100644
+--- a/net/common/processors/keepalive-proc.c
++++ b/net/common/processors/keepalive-proc.c
+@@ -401,7 +401,7 @@ static void send_challenge(CcnetProcessor *processor)
+ unsigned char *buf;
+ int len;
+
+- RAND_pseudo_bytes (priv->random_buf, 40);
++ RAND_bytes (priv->random_buf, 40);
+ buf = public_key_encrypt (peer->pubkey, priv->random_buf, 40, &len);
+ ccnet_processor_send_update (processor, "311", NULL, (char *)buf, len);
+
+@@ -434,7 +434,7 @@ static void send_challenge_user(CcnetProcessor *processor, CcnetUser *user)
+
+ ccnet_debug ("[Keepalive] Send user challenge to %.8s\n",
+ processor->peer->id);
+- RAND_pseudo_bytes (priv->random_buf, 40);
++ RAND_bytes (priv->random_buf, 40);
+ buf = public_key_encrypt (user->pubkey, priv->random_buf, 40, &len);
+ ccnet_processor_send_update (processor, "321", NULL, (char *)buf, len);
+
+diff --git a/net/common/processors/keepalive2-proc.c b/net/common/processors/keepalive2-proc.c
+index d3e799e..d81c266 100644
+--- a/net/common/processors/keepalive2-proc.c
++++ b/net/common/processors/keepalive2-proc.c
+@@ -306,7 +306,7 @@ static void send_challenge(CcnetProcessor *processor)
+ unsigned char *buf;
+ int len;
+
+- RAND_pseudo_bytes (priv->random_buf, 40);
++ RAND_bytes (priv->random_buf, 40);
+ buf = public_key_encrypt (peer->pubkey, priv->random_buf, 40, &len);
+ if (len < 0) {
+ ccnet_debug ("[Keepalive] Failed to encrypt challenge "
+diff --git a/net/common/processors/sendsessionkey-proc.c b/net/common/processors/sendsessionkey-proc.c
+index 3ec2757..10c3340 100644
+--- a/net/common/processors/sendsessionkey-proc.c
++++ b/net/common/processors/sendsessionkey-proc.c
+@@ -124,7 +124,7 @@ generate_session_key (CcnetProcessor *processor, int *len_p)
+ unsigned char random_buf[40];
+ SHA_CTX s;
+
+- RAND_pseudo_bytes (random_buf, sizeof(random_buf));
++ RAND_bytes (random_buf, sizeof(random_buf));
+
+ SHA1_Init (&s);
+ SHA1_Update (&s, random_buf, sizeof(random_buf));
+diff --git a/net/common/processors/sendsessionkey-v2-proc.c b/net/common/processors/sendsessionkey-v2-proc.c
+index c1c6924..4805ba6 100644
+--- a/net/common/processors/sendsessionkey-v2-proc.c
++++ b/net/common/processors/sendsessionkey-v2-proc.c
+@@ -125,7 +125,7 @@ generate_session_key (CcnetProcessor *processor, int *len_p)
+ unsigned char random_buf[40];
+ SHA_CTX s;
+
+- RAND_pseudo_bytes (random_buf, sizeof(random_buf));
++ RAND_bytes (random_buf, sizeof(random_buf));
+
+ SHA1_Init (&s);
+ SHA1_Update (&s, random_buf, sizeof(random_buf));
+diff --git a/net/server/user-mgr.c b/net/server/user-mgr.c
+index 0973959..3f0c3b3 100644
+--- a/net/server/user-mgr.c
++++ b/net/server/user-mgr.c
+@@ -811,9 +811,13 @@ hash_password_pbkdf2_sha256 (const char *passwd,
+ char salt_str[SHA256_DIGEST_LENGTH*2+1];
+
+ if (!RAND_bytes (salt, sizeof(salt))) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || OPENSSL_API_COMPAT < 0x10100000L
+ ccnet_warning ("Failed to generate salt "
+ "with RAND_bytes(), use RAND_pseudo_bytes().\n");
+ RAND_pseudo_bytes (salt, sizeof(salt));
++#else
++ ccnet_warning ("Failed to generate salt with RAND_bytes().\n");
++#endif
+ }
+
+ PKCS5_PBKDF2_HMAC (passwd, strlen(passwd),
+diff --git a/tools/ccnet-init.c b/tools/ccnet-init.c
+index 4748962..28c9995 100644
+--- a/tools/ccnet-init.c
++++ b/tools/ccnet-init.c
+@@ -162,7 +162,9 @@ main(int argc, char **argv)
+
+ config_dir = ccnet_expand_path (config_dir);
+ /* printf("[conf_dir=%s\n]", config_dir); */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ OpenSSL_add_all_algorithms();
++#endif
+
+ if (RAND_status() != 1) { /* it should be seeded automatically */
+ fprintf(stderr, "PRNG is not seeded\n");
+--
+2.16.4
+
include $(TOPDIR)/rules.mk
PKG_NAME:=seafile-seahub
-PKG_VERSION:=6.2.2
+PKG_VERSION:=6.3.0
PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
PKG_LICENSE:=Apache-2.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/haiwen/seahub.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=120e7a299e77968f1af48ea2dcf4bd9b909c426f
+PKG_SOURCE_VERSION:=d1ab146a936a6ea1e1581bf3f194e86742f0d3cd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=511500c40dd7b1009f77109c6df810df1cf2c17a84a8f6841d592a9e05d22064
+PKG_MIRROR_HASH:=21c2ed3886d0c87853f9720704b14c0a0dce8215e7346af775e306f80b29fa0d
include $(INCLUDE_DIR)/package.mk
include ../../lang/python/python-package.mk
MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
URL:=http://seafile.com/
DEPENDS:=+simplejson +python +pillow +chardet +django +django-appconf \
- +django-compressor +django-constance +django-jsonfield +django-picklefield \
- +django-postoffice +django-restframework +django-statici18n +et_xmlfile \
- +flup +gunicorn +jdcal +openpyxl +python-dateutil +python-mysql +pytz +rcssmin
+ +django-compressor +django-constance +django-formtools +django-jsonfield \
+ +django-picklefield +django-postoffice +django-restframework \
+ +django-simple-captcha +django-statici18n +django-webpack-loader +et_xmlfile \
+ +flup +gunicorn +jdcal +openpyxl +python-dateutil +python-mysql \
+ +python-qrcode +python-requests +python-requests-oauthlib +pytz +rcssmin
endef
define Build/Configure
-diff -rupN seahub-3.1.7-server.orig/seahub/settings.py seahub-3.1.7-server/seahub/settings.py
---- seahub-3.1.7-server.orig/seahub/settings.py 2014-10-20 09:32:35.000000000 +0200
-+++ seahub-3.1.7-server/seahub/settings.py 2014-12-10 15:47:21.625104606 +0100
-@@ -46,7 +46,7 @@ SITE_ID = 1
+--- a/seahub/settings.py
++++ b/seahub/settings.py
+@@ -47,7 +47,7 @@ SITE_ID = 1
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
-@@ -209,7 +209,7 @@ SHOW_REPO_DOWNLOAD_BUTTON = False
- REPO_PASSWORD_MIN_LENGTH = 8
+@@ -310,7 +310,7 @@ SHARE_LINK_EMAIL_LANGUAGE = ''
+ ENABLE_UPLOAD_LINK_VIRUS_CHECK = False
# mininum length for user's password
-USER_PASSWORD_MIN_LENGTH = 6
# LEVEL based on four types of input:
# num, upper letter, lower letter, other symbols
-@@ -218,7 +218,7 @@ USER_PASSWORD_STRENGTH_LEVEL = 3
+@@ -319,7 +319,7 @@ USER_PASSWORD_STRENGTH_LEVEL = 3
# default False, only check USER_PASSWORD_MIN_LENGTH
# when True, check password strength level, STRONG(or above) is allowed
-USER_STRONG_PASSWORD_REQUIRED = False
+USER_STRONG_PASSWORD_REQUIRED = True
- # Using server side crypto by default, otherwise, let user choose crypto method.
- FORCE_SERVER_CRYPTO = True
+ # Force user to change password when admin add/reset a user.
+ FORCE_PASSWORD_CHANGE = True
-diff -rupN seafile-seahub-6.2.2.orig/Makefile seafile-seahub-6.2.2/Makefile
---- seafile-seahub-6.2.2.orig/Makefile 2017-10-22 22:28:22.000000000 +0200
-+++ seafile-seahub-6.2.2/Makefile 2017-10-22 22:46:18.007470936 +0200
+--- a/Makefile
++++ b/Makefile
@@ -1,3 +1,6 @@
+include $(TOPDIR)/rules.mk
+include $(TOPDIR)/feeds/packages/lang/python/python-package.mk
PROJECT=seahub
develop: setup-git
-@@ -9,7 +12,9 @@ dist: locale uglify statici18n collectst
+@@ -9,7 +12,7 @@ dist: locale uglify statici18n collectst
locale:
@echo "--> Compile locales"
-- django-admin.py compilemessages && cd seahub/two_factor && django-admin.py compilemessages
-+ $(call HostPython,,$(STAGING_DIR)/usr/bin/django-admin.py compilemessages)
-+ cd seahub/two_factor
+- django-admin.py compilemessages
+ $(call HostPython,,$(STAGING_DIR)/usr/bin/django-admin.py compilemessages)
@echo ""
uglify:
-@@ -19,17 +24,17 @@ uglify:
+@@ -19,17 +22,17 @@ uglify:
statici18n:
@echo "--> Generate JS locale files in static/scripts/i18n"
include $(TOPDIR)/rules.mk
PKG_NAME:=seafile-server
-PKG_VERSION:=6.2.2
+PKG_VERSION:=6.3.0
PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
PKG_LICENSE:=GPL-3.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/haiwen/seafile-server.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=6978d2cb2e05cc774370b4d06c9f0a864df71936
+PKG_SOURCE_VERSION:=a8c66e1bc6f6245e48917f39a24167d22a95dbd6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=99aa9c41641d7c0ffe18bbab75418b1347dd9e156124472bbee5a6dda09a8057
+PKG_MIRROR_HASH:=d63667f8cddcac645fb0d350c71e2a32d0c44f47df46a3a013d2dbecb3574d9a
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
DEPENDS:=+libarchive +libopenssl +glib2 +libsearpc +seafile-ccnet +seafile-seahub +sqlite3-cli +python-mysql +python-urllib3 \
+jansson +libevent2 +libevent2-openssl +zlib +libzdb +libsqlite3 +libmysqlclient \
+libpthread +libuuid +bash +procps-ng +procps-ng-pkill +SEAFILE_FUSE_SUPPORT:libfuse $(ICONV_DEPENDS)
- EXTRA_DEPENDS:=seafile-ccnet (=6.2.2-6b9d7e2920aa9b807f9efe9038439b57ce949ecc-1), seafile-seahub (=6.2.2-120e7a299e77968f1af48ea2dcf4bd9b909c426f-1)
+ EXTRA_DEPENDS:=seafile-ccnet (=6.3.0-614926b161623b267b4fb77fa1861718da406103-1), seafile-seahub (=6.3.0-d1ab146a936a6ea1e1581bf3f194e86742f0d3cd-1)
MENU:=1
endef
-diff -rupN seafile-server-5.1.1.orig/scripts/seaf-fsck.sh seafile-server-5.1.1/scripts/seaf-fsck.sh
---- seafile-server-5.1.1.orig/scripts/seaf-fsck.sh 2016-04-21 11:05:26.000000000 +0200
-+++ seafile-server-5.1.1/scripts/seaf-fsck.sh 2016-04-22 09:10:13.075581325 +0200
+--- a/scripts/seaf-fsck.sh
++++ b/scripts/seaf-fsck.sh
@@ -7,7 +7,7 @@ INSTALLPATH=$(dirname "${SCRIPT}")
TOPDIR=$(dirname "${INSTALLPATH}")
default_ccnet_conf_dir=${TOPDIR}/ccnet
export PATH=${INSTALLPATH}/seafile/bin:$PATH
export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
-diff -rupN seafile-server-5.1.1.orig/scripts/seaf-gc.sh seafile-server-5.1.1/scripts/seaf-gc.sh
---- seafile-server-5.1.1.orig/scripts/seaf-gc.sh 2016-04-21 11:05:26.000000000 +0200
-+++ seafile-server-5.1.1/scripts/seaf-gc.sh 2016-04-22 09:10:27.211581999 +0200
+--- a/scripts/seaf-gc.sh
++++ b/scripts/seaf-gc.sh
@@ -7,7 +7,7 @@ INSTALLPATH=$(dirname "${SCRIPT}")
TOPDIR=$(dirname "${INSTALLPATH}")
default_ccnet_conf_dir=${TOPDIR}/ccnet
seaf_gc_opts=""
export PATH=${INSTALLPATH}/seafile/bin:$PATH
-diff -rupN seafile-server-5.1.1.orig/scripts/setup-seafile-mysql.sh seafile-server-5.1.1/scripts/setup-seafile-mysql.sh
---- seafile-server-5.1.1.orig/scripts/setup-seafile-mysql.sh 2016-04-21 11:05:26.000000000 +0200
-+++ seafile-server-5.1.1/scripts/setup-seafile-mysql.sh 2016-04-22 09:11:50.083585953 +0200
+--- a/scripts/setup-seafile-mysql.sh
++++ b/scripts/setup-seafile-mysql.sh
@@ -40,15 +40,10 @@ function check_python_executable() {
function check_python_module () {
module=$1
export PYTHON=$PYTHON
+export PYTHONPATH="/usr/share/seafile/seafile-server/seahub/thirdpart:$PYTHONPATH"
- exec $PYTHON "$python_script"
-diff -rupN seafile-server-5.1.1.orig/scripts/sqlite2mysql.sh seafile-server-5.1.1/scripts/sqlite2mysql.sh
---- seafile-server-5.1.1.orig/scripts/sqlite2mysql.sh 2016-04-21 11:05:26.000000000 +0200
-+++ seafile-server-5.1.1/scripts/sqlite2mysql.sh 2016-04-22 09:02:22.047558854 +0200
+ exec $PYTHON "$python_script" "$@"
+--- a/scripts/sqlite2mysql.sh
++++ b/scripts/sqlite2mysql.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
-diff -rupN seafile-server-5.1.1.orig/lib/repo.vala seafile-server-5.1.1/lib/repo.vala
---- seafile-server-5.1.1.orig/lib/repo.vala 2016-04-19 15:44:32.000000000 +0200
-+++ seafile-server-5.1.1/lib/repo.vala 2016-04-25 21:29:33.327962235 +0200
-@@ -30,7 +30,7 @@ public class Repo : Object {
+--- a/lib/repo.vala
++++ b/lib/repo.vala
+@@ -34,7 +34,7 @@ public class Repo : Object {
// data format version
public int version { get; set; }
+ public int64 last_modify { get; set; }
public int64 size { get; set; }
public int64 file_count { get; set; }
- public string head_cmmt_id { get; set; }
-@@ -40,7 +40,7 @@ public class Repo : Object {
+ public string last_modifier { get; set; }
+@@ -45,7 +45,7 @@ public class Repo : Object {
public string repo_id { get; set; }
public string repo_name { get; set; }
public string repo_desc { get; set; }
// Section 2: Encryption related
// Members in this section should be set for every Repo object
-@@ -63,7 +63,7 @@ public class Repo : Object {
+@@ -68,7 +68,7 @@ public class Repo : Object {
get { return _relay_id; }
set { _relay_id = value; }
}
public bool auto_sync { get; set; }
public bool worktree_invalid { get; set; }
-@@ -155,7 +155,7 @@ public class DeletedEntry : Object {
+@@ -162,7 +162,7 @@ public class DeletedEntry : Object {
public string obj_name { get; set; }
public string basedir { get; set; }
public int mode { get; set; }
--- /dev/null
+From 13f95a28ce12216ba51cf0ca8d61c3d89689d02b Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Wed, 6 Jun 2018 18:11:47 -0300
+Subject: [PATCH] Remove API deprecated in openssl 1.1
+
+Openssl 1.1 has deprecated RAND_pseudo_bytes. It won't compile with
+openssl built witout deprecated API.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ common/seafile-crypt.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/common/seafile-crypt.c b/common/seafile-crypt.c
+index c7d1702..c3cebf5 100644
+--- a/common/seafile-crypt.c
++++ b/common/seafile-crypt.c
+@@ -81,9 +81,14 @@ seafile_generate_random_key (const char *passwd, char *random_key)
+
+ int rc = RAND_bytes (secret_key, sizeof(secret_key));
+ if (rc != 1) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || OPENSSL_API_COMPAT < 0x10100000L
+ seaf_warning ("Failed to generate secret key for repo encryption "
+ "with RAND_bytes(), use RAND_pseudo_bytes().\n");
+ RAND_pseudo_bytes (secret_key, sizeof(secret_key));
++#else
++ seaf_warning ("Failed to generate secret key for repo encryption "
++ "with RAND_bytes().\n");
++#endif
+ }
+
+ seafile_derive_key (passwd, strlen(passwd), 2, key, iv);
+--
+2.16.4
+
--- /dev/null
+From 25dcf165f77c94f758383d35632293d69666d0ad Mon Sep 17 00:00:00 2001
+From: cuihaikuo <haikuo.cui@seafile.com>
+Date: Thu, 7 Jun 2018 11:56:44 +0800
+Subject: [PATCH] Fix that table SystemInfo can't be created in sqlite db.
+
+---
+ server/seafile-session.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/server/seafile-session.c b/server/seafile-session.c
+index 76d9c12..2a1fc0c 100644
+--- a/server/seafile-session.c
++++ b/server/seafile-session.c
+@@ -424,9 +424,17 @@ create_system_default_repo (void *data)
+ void
+ schedule_create_system_default_repo (SeafileSession *session)
+ {
+- char *sql = "CREATE TABLE IF NOT EXISTS SystemInfo "
++ int db_type = seaf_db_type (session->db);
++ char *sql;
++
++ if (db_type == SEAF_DB_TYPE_MYSQL)
++ sql = "CREATE TABLE IF NOT EXISTS SystemInfo "
+ "(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, "
+ "info_key VARCHAR(256), info_value VARCHAR(1024))";
++ else
++ sql = "CREATE TABLE IF NOT EXISTS SystemInfo( "
++ "info_key VARCHAR(256), info_value VARCHAR(1024))";
++
+ if (seaf_db_query (session->db, sql) < 0)
+ return;
+
--- /dev/null
+--- a/tools/seafile-admin
++++ b/tools/seafile-admin
+@@ -831,7 +831,22 @@ def setup_seafile(args):
+ conf[CONF_SEAFILE_CENTRAL_CONF_DIR] = os.path.join(cwd, 'conf')
+ config_ccnet_seafile()
+ init_ccnet_seafile()
+- init_seahub()
++
++ # make sure ccnet-server is running to avoid an error creating django superuser
++ if not is_running('ccnet-server'):
++ argv = [
++ 'ccnet-server',
++ '-F',
++ conf[CONF_SEAFILE_CENTRAL_CONF_DIR],
++ '-c',
++ conf[CONF_CCNET_DIR],
++ '-d'
++ ]
++ run_argv(argv)
++ init_seahub()
++ pkill('ccnet-server')
++ else:
++ init_seahub()
+
+ print
+ print '-----------------------------------------------------------------'
# - check if default mode has changed from being tcp_only
#
PKG_NAME:=shadowsocks-libev
-PKG_VERSION:=3.1.3
-PKG_RELEASE:=2
+PKG_VERSION:=3.2.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)
-PKG_HASH:=58fb438d2cfe33cfa6ac8c50e587e2138c50e59a4b943f88d22883bf2e192a96
+PKG_HASH:=5521cf623a07fd1e393528516a83acd2b66c5d4bb4535a52662806a6a060c606
PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
include $(TOPDIR)/rules.mk
PKG_NAME:=sqm-scripts
-PKG_SOURCE_VERSION:=79c3aa11fed485fca1481b077082e561e5dbceec
-PKG_VERSION:=1.2.2
+PKG_SOURCE_VERSION:=a94318a2ecd709403fb8c0d622063d9ce1859615
+PKG_VERSION:=1.2.3
PKG_RELEASE:=1
PKG_LICENSE:=GPLv2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.xz
-PKG_MIRROR_HASH:=0bca492ff5da37923b0d6878f4b53af85e59db03b255ff22bd03c2c0a74e4644
+PKG_MIRROR_HASH:=0cabeaf9c9d7ff260d8ed7b4ed518c67ff4640d82a8583e2fb4d695befb79c54
PKG_SOURCE_URL:=https://github.com/tohojo/sqm-scripts.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)
--- /dev/null
+if PACKAGE_squid
+
+ comment "Optional features"
+
+ config SQUID_enable-ipv6
+ bool "Enable support for IP version 6"
+ default y
+
+ config SQUID_enable-snmp
+ bool "Enable SNMP monitoring support"
+ default n
+
+ config SQUID_enable-icmp
+ bool "Enable ICMP pinging and Network Measurement"
+ default n
+
+ config SQUID_enable-icap-client
+ bool "Enable ICAP client support"
+ default n
+
+ config SQUID_enable-dlmalloc
+ bool "Compile & use the malloc package by Doug Lea"
+ default y
+
+ config SQUID_enable-ssl-crtd
+ bool "Enable dynamic SSL certificate generation "
+ depends on !SQUID_use-gnutls
+ default n
+
+ config SQUID_auth-basic
+ bool "Enable the Basic authentication scheme"
+ default n
+
+ config SQUID_auth-digest
+ bool "Enable the Digest authentication scheme"
+ default n
+
+ config SQUID_auth-negotiate
+ bool "Enable the Negotiate authentication scheme"
+ default n
+
+ config SQUID_auth-ntlm
+ bool "Enable the NTLM authentication scheme"
+ default n
+
+ comment "Optional packages"
+
+ config SQUID_use-gnutls
+ bool "Use GnuTLS instead of OpenSSL"
+ default n
+
+ config SQUID_with-libcap
+ bool "Use libcap - Linux capabilities library"
+ default n
+
+ config SQUID_with-nettle
+ bool "Use nettle - GNU crypto library"
+ default n
+
+ config SQUID_with-expat
+ bool "Use expat - XML parsing library"
+ default n
+
+ config SQUID_with-libxml2
+ bool "Use libxml2 - Gnome XML library"
+ default n
+
+ comment "Additional tools"
+
+endif
+
include $(TOPDIR)/rules.mk
PKG_NAME:=squid
-PKG_VERSION:=3.5.27
+PKG_VERSION:=4.0.24
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://www3.us.squid-cache.org/Versions/v3/3.5/ \
- http://www2.pl.squid-cache.org/Versions/v3/3.5/ \
- http://www.squid-cache.org/Versions/v3/3.5/
-PKG_HASH:=5ddb4367f2dc635921f9ca7a59d8b87edb0412fa203d1543393ac3c7f9fef0ec
+PKG_SOURCE_URL:=http://www3.us.squid-cache.org/Versions/v4/ \
+ http://www2.pl.squid-cache.org/Versions/v4/ \
+ http://www.squid-cache.org/Versions/v4/
+PKG_HASH:=091da0d763307dcc0f5c784ab07ea0c5a093f6dfac60f17ff26e2a6d50f76a07
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
CATEGORY:=Network
SUBMENU:=Web Servers/Proxies
URL:=http://www.squid-cache.org/
- MENU:=1
endef
define Package/squid
$(call Package/squid/Default)
- DEPENDS:=+libopenssl +libpthread +librt +libltdl +libstdcpp
+ MENU:=1
+ DEPENDS:=+libpthread +librt +libltdl +libstdcpp +libatomic +USE_GLIBC:libbsd
+ DEPENDS+= +SQUID_use-gnutls:libgnutls +!SQUID_use-gnutls:libopenssl
+ DEPENDS+= +SQUID_with-libcap:libcap
+ DEPENDS+= +SQUID_with-nettle:libnettle
+ DEPENDS+= +SQUID_with-expat:libexpat
+ DEPENDS+= +SQUID_with-libxml2:libxml2
+ USERID:=squid=137:squid=137
TITLE:=full-featured Web proxy cache
endef
frequently-requested web pages.
endef
+define Package/squid/config
+ source "$(SOURCE)/Config.in"
+endef
+
+define Package/squid/conffiles
+ /etc/squid/squid.conf
+endef
+
define Package/squid-mod-cachemgr
$(call Package/squid/Default)
DEPENDS:=squid
--sysconfdir=/etc/squid \
--enable-shared \
--disable-static \
- --enable-icmp \
--enable-delay-pools \
- --enable-icap-client \
--enable-kill-parent-hack \
- --disable-snmp \
--enable-ssl \
- --enable-ssl-crtd \
--enable-cache-digests \
--enable-linux-netfilter \
--disable-unlinkd \
--disable-auto-locale \
--with-dl \
--with-pthreads \
- --without-expat \
- --without-libxml2 \
- --without-gnutls \
- --without-nettle \
- --with-openssl=$(STAGING_DIR)/usr \
--enable-epoll \
- --with-maxfd=4096 \
+ --with-maxfd=2048 \
+ --disable-ecap \
--disable-external-acl-helpers \
- --disable-auth-negotiate \
- --disable-auth-ntlm \
- --disable-auth-digest \
- --disable-auth-basic \
--disable-arch-native \
--with-krb5-config=no \
--without-mit-krb5 \
- --without-libcap \
- --without-netfilter-conntrack
+ --without-netfilter-conntrack \
+ --disable-ident-lookups \
+ $(if $(CONFIG_SQUID_auth-basic),--enable,--disable)-auth-basic \
+ $(if $(CONFIG_SQUID_auth-digest),--enable,--disable)-auth-digest \
+ $(if $(CONFIG_SQUID_auth-ntlm),--enable,--disable)-auth-ntlm \
+ $(if $(CONFIG_SQUID_auth-negotiate),--enable,--disable)-auth-negotiate \
+ $(if $(CONFIG_SQUID_enable-ipv6),--enable,--disable)-dlmalloc \
+ $(if $(CONFIG_SQUID_enable-ipv6),--enable,--disable)-ipv6 \
+ $(if $(CONFIG_SQUID_enable-ssl-crtd),--enable-ssl-crtd) \
+ $(if $(CONFIG_SQUID_use-gnutls),--with,--without)-gnutls \
+ $(if $(CONFIG_SQUID_use-gnutls),--without-openssl) \
+ $(if $(CONFIG_SQUID_use-gnutls),,--with-openssl="$(STAGING_DIR)/usr") \
+ $(if $(CONFIG_SQUID_enable-icmp),--enable,--disable)-icmp \
+ $(if $(CONFIG_SQUID_enable-icap-client),--enable,--disable)-icap-client \
+ $(if $(CONFIG_SQUID_enable-snmp),--enable,--disable)-snmp \
+ $(if $(CONFIG_SQUID_with-libcap),--with,--without)-libcap \
+ $(if $(CONFIG_SQUID_with-nettle),--with,--without)-nettle \
+ $(if $(CONFIG_SQUID_with-expat),--with,--without)-expat \
+ $(if $(CONFIG_SQUID_with-libxml2),--with,--without)-libxml2
CONFIGURE_VARS += \
ac_cv_header_linux_netfilter_ipv4_h=yes \
- ac_cv_epoll_works=yes \
- squid_cv_gnu_atomics=no
+ ac_cv_epoll_works=yes
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/lib all
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/squid $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib/squid
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/squid/ssl_crtd $(1)/usr/lib/squid
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/squid/* $(1)/usr/lib/squid/
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/squid.config $(1)/etc/config/squid
$(INSTALL_DIR) $(1)/etc/squid
- $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/squid/mime.conf $(1)/etc/squid/
+ $(CP) $(PKG_INSTALL_DIR)/etc/squid/* $(1)/etc/squid/
$(INSTALL_CONF) ./files/squid.conf $(1)/etc/squid/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_DIR) $(1)/usr/share/squid/icons/
$(CP) $(PKG_INSTALL_DIR)/usr/share/squid/icons/* $(1)/usr/share/squid/icons/
+ $(CP) $(PKG_INSTALL_DIR)/usr/share/squid/mib.txt $(1)/usr/share/squid/
$(INSTALL_DIR) $(1)/usr/share/squid/errors/templates/
$(CP) $(PKG_INSTALL_DIR)/usr/share/squid/errors/templates/* $(1)/usr/share/squid/errors/templates/
-acl localnet src 10.0.0.0/8
-acl localnet src 172.16.0.0/12
-acl localnet src 192.168.0.0/16
-acl localnet src fc00::/7
-acl localnet src fe80::/10
-
-acl ssl_ports port 443
-
-acl safe_ports port 80
-acl safe_ports port 21
-acl safe_ports port 443
-acl safe_ports port 70
-acl safe_ports port 210
-acl safe_ports port 1025-65535
-acl safe_ports port 280
-acl safe_ports port 488
-acl safe_ports port 591
-acl safe_ports port 777
-acl connect method connect
-
-http_access deny !safe_ports
-http_access deny connect !ssl_ports
+#
+# Recommended minimum configuration:
+#
+# Example rule allowing access from your local networks.
+# Adapt to list your (internal) IP networks from where browsing
+# should be allowed
+acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
+acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
+acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
+acl localhet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
+acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN)
+acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
+acl localnet src fc00::/7 # RFC 4193 local private network range
+acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
+
+acl SSL_ports port 443
+acl Safe_ports port 80 # http
+acl Safe_ports port 21 # ftp
+acl Safe_ports port 443 # https
+acl Safe_ports port 70 # gopher
+acl Safe_ports port 210 # wais
+acl Safe_ports port 1025-65535 # unregistered ports
+acl Safe_ports port 280 # http-mgmt
+acl Safe_ports port 488 # gss-http
+acl Safe_ports port 591 # filemaker
+acl Safe_ports port 777 # multiling http
+acl CONNECT method CONNECT
+
+#
+# Recommended minimum Access Permission configuration:
+#
+# Deny requests to certain unsafe ports
+http_access deny !Safe_ports
+
+# Deny CONNECT to other than secure SSL ports
+http_access deny CONNECT !SSL_ports
+
+# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager
-http_access deny to_localhost
+# We strongly recommend the following be uncommented to protect innocent
+# web applications running on the proxy server who think the only
+# one who can access services on "localhost" is a local user
+#http_access deny to_localhost
+#
+# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
+#
+
+# Example rule allowing access from your local networks.
+# Adapt localnet in the ACL section to list your (internal) IP networks
+# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
+# And finally deny all other access to this proxy
http_access deny all
-refresh_pattern ^ftp: 1440 20% 10080
-refresh_pattern ^gopher: 1440 0% 1440
-refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
-refresh_pattern . 0 20% 4320
+# Uncomment and adjust the following to add a disk cache directory.
+#cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256
+
+#
+# Add any of your own refresh_pattern entries above these.
+#
+refresh_pattern ^ftp: 1440 20% 10080
+refresh_pattern ^gopher: 1440 0% 1440
+refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
+refresh_pattern . 0 20% 4320
+
+# Squid user
+cache_effective_user squid
-access_log none
-cache_log /dev/null
-cache_store_log stdio:/dev/null
-logfile_rotate 0
+#
+# Logs, best to use only for debugging as they can become very large
+#
-logfile_daemon /dev/null
+access_log none # daemon:/tmp/squid_access.log
+cache_log /dev/null # /tmp/squid_cache.log
'mime_table:string:/etc/squid/mime.conf'
}
+create_squid_user() {
+ user_exists squid || user_add squid $USERID
+ group_exists squid || group_add squid $USERID && group_add_user squid squid
+}
+
start_service() {
local config_file http_port http_port_options ssldb ssldb_options coredump_dir visible_hostname pinger_enable
config_dir=$(dirname $CONFIGFILE)
[ -d $config_dir ] || mkdir -p $config_dir && chown nobody:nogroup $config_dir
[ -d $coredump_dir ] || mkdir -p $coredump_dir && chown nobody:nogroup $coredump_dir
- [ "$ssldb" ] && ( [ -f "$ssldb"/size ] || /usr/lib/squid/ssl_crtd -c -s $ssldb && chown -R nobody:nogroup $ssldb )
+ [ "$ssldb" ] && ( [ -f "$ssldb"/size ] || /usr/lib/squid/security_file_certgen -c -s $ssldb $ssldb_options && chown -R nobody:nogroup $ssldb )
cat $config_file > $CONFIGFILE
echo http_port $http_port $http_port_options >> $CONFIGFILE
echo pinger_enable $pinger_enable >> $CONFIGFILE
cat $mime_table > $MIMETABLE
echo mime_table $MIMETABLE >> $CONFIGFILE
- [ "$ssldb" ] && echo sslcrtd_program /usr/lib/squid/ssl_crtd -s $ssldb $ssldb_options >> $CONFIGFILE
+ [ "$ssldb" ] && echo sslcrtd_program /usr/lib/squid/security_file_certgen -s $ssldb $ssldb_options >> $CONFIGFILE
$PROG -s -f $CONFIGFILE -N -z 2>/dev/null
procd_open_instance
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -7984,7 +7984,7 @@ cache_cf.o: cf_parser.cci
+From fac6f63a52a2f4cbb3748cd5687eca5409093904 Mon Sep 17 00:00:00 2001
+From: Marko Ratkaj <marko.ratkaj@sartura.hr>
+Date: Thu, 20 Apr 2017 15:15:50 +0200
+Subject: [PATCH] foo
+
+Signed-off-by: Marko Ratkaj <marko.ratkaj@sartura.hr>
+---
+ src/Makefile.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: squid-4.0.21/src/Makefile.in
+===================================================================
+--- squid-4.0.21.orig/src/Makefile.in
++++ squid-4.0.21/src/Makefile.in
+@@ -7642,7 +7642,8 @@ cache_cf.o: cf_parser.cci
# cf_gen builds the configuration files.
cf_gen$(EXEEXT): $(cf_gen_SOURCES) $(cf_gen_DEPENDENCIES) cf_gen_defines.cci
- $(BUILDCXX) $(BUILDCXXFLAGS) -o $@ $(srcdir)/cf_gen.cc -I$(srcdir) -I$(top_builddir)/include/ -I$(top_builddir)/src
+ g++ -o $@ $(srcdir)/cf_gen.cc -I$(srcdir) -I$(top_builddir)/include/ -I$(top_builddir)/src
++
# squid.conf.default is built by cf_gen when making cf_parser.cci
squid.conf.default squid.conf.documented: cf_parser.cci
---- a/configure
-+++ b/configure
-@@ -20842,7 +20842,7 @@ else
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
-+_as_fn_error $? "cannot run test program while cross compiling
- See \`config.log' for more details" "$LINENO" 5; }
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -29142,7 +29142,7 @@ else
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
-+_as_fn_error $? "cannot run test program while cross compiling
- See \`config.log' for more details" "$LINENO" 5; }
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -29167,7 +29167,7 @@ else
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
-+_as_fn_error $? "cannot run test program while cross compiling
- See \`config.log' for more details" "$LINENO" 5; }
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--- /dev/null
+--- squid-4.0.21.orig/src/tools.cc
++++ squid-4.0.21/src/tools.cc
+@@ -581,7 +581,8 @@
+ }
+ #else
+
+- setuid(0);
++ if (setuid(0) < 0)
++ debugs(50, 1, "no_suid: setuid (0)");
+ #endif
+ #if HAVE_PRCTL && defined(PR_SET_DUMPABLE)
+ /* Set Linux DUMPABLE flag */
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_NAME:=sysrepo
-PKG_VERSION:=0.7.3
+PKG_VERSION:=0.7.4
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=91e65c6f7d8826197b2806ab6d5466d16882b07f
-PKG_MIRROR_HASH:=1662c158d5eac3e6c9f400517bd02b1967632f3d8b3516523da669bbd1c28c4
+PKG_SOURCE_VERSION:=724a62fa830df7fcb2736b1ec41b320abe5064d2
+PKG_MIRROR_HASH:=19b864c52a35fd71398b2c965f87c37901a7056a2afd6b740105a5235bd459b1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/sysrepo/sysrepo.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
$(INSTALL_DIR) $(1)/etc/sysrepo/yang
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf-acm@2012-02-22.yang $(1)/etc/sysrepo/yang/ietf-netconf-acm@2012-02-22.yang
- $(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf-notifications.yang $(1)/etc/sysrepo/yang/ietf-netconf-notifications@2012-02-06..yang
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf-notifications.yang $(1)/etc/sysrepo/yang/ietf-netconf-notifications@2012-02-06.yang
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/nc-notifications.yang $(1)/etc/sysrepo/yang/nc-notifications@2008-07-14.yang
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/notifications.yang $(1)/etc/sysrepo/yang/notifications@2008-07-14.yang
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf@2011-06-01.yang $(1)/etc/sysrepo/yang/ietf-netconf@2011-06-01.yang
# Warning, problems can occur if the device restarts in the middle of this uci-default script
if [ -x /bin/sysrepoctl ]; then
- match=$(sysrepoctl -l | grep "ietf-netconf-acm ")
+ match=$(sysrepoctl -l | grep "notifications ")
if [ ! "$match" ]; then
- sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-acm@2012-02-22.yang -p 644
+ sysrepoctl --install --yang=/etc/sysrepo/yang/notifications@2008-07-14.yang -p 666
fi
- match=$(sysrepoctl -l | grep "ietf-netconf-notifications ")
+ match=$(sysrepoctl -l | grep "nc-notifications ")
if [ ! "$match" ]; then
- sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-notifications@2012-02-06..yang -p 600
+ sysrepoctl --install --yang=/etc/sysrepo/yang/nc-notifications@2008-07-14.yang -p 666
fi
- match=$(sysrepoctl -l | grep "nc-notifications ")
+ match=$(sysrepoctl -l | grep "ietf-netconf-acm ")
if [ ! "$match" ]; then
- sysrepoctl --install --yang=/etc/sysrepo/yang/nc-notifications@2008-07-14.yang -p 666
+ sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-acm@2012-02-22.yang -p 644
fi
- match=$(sysrepoctl -l | grep "notifications ")
+ match=$(sysrepoctl -l | grep "ietf-netconf-notifications ")
if [ ! "$match" ]; then
- sysrepoctl --install --yang=/etc/sysrepo/yang/notifications@2008-07-14.yang -p 666
+ sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-notifications@2012-02-06.yang -p 600
fi
match=$(sysrepoctl -l | grep "ietf-netconf ")
if [ ! "$match" ]; then
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf@2011-06-01.yang -p 600
fi
+ sysrepoctl -m ietf-netconf -e writable-running
+ sysrepoctl -m ietf-netconf -e candidate
+ sysrepoctl -m ietf-netconf -e rollback-on-error
+ sysrepoctl -m ietf-netconf -e validate
+ sysrepoctl -m ietf-netconf -e startup
+ sysrepoctl -m ietf-netconf -e xpath
fi
exit 0
include $(TOPDIR)/rules.mk
PKG_NAME:=tcpreplay
-PKG_VERSION:=4.2.5
+PKG_VERSION:=4.2.6
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/appneta/tcpreplay/releases/download/v$(PKG_VERSION)
-PKG_HASH:=941026be34e1db5101d3d22ebddd6fff76179a1ee81e273338f533ba4eca89d7
+PKG_HASH:=043756c532dab93e2be33a517ef46b1341f7239278a1045ae670041dd8a4531d
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=docs/LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=tinc
-PKG_VERSION:=1.0.33
+PKG_VERSION:=1.0.34
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.tinc-vpn.org/packages
-PKG_HASH:=7f6f5dc6444bc651ac635c81f4745bcce581bbd1d45ed60cbdc4ee11bebb10f4
+PKG_HASH:=c03a9b61dedd452116dd9a8db231545ba08a7c96bce011e0cbd3cfd2c56dcfda
PKG_INSTALL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=tor
-PKG_VERSION:=0.3.2.10
+PKG_VERSION:=0.3.3.7
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://dist.torproject.org/ \
https://archive.torproject.org/tor-package-archive
-PKG_HASH:=60df77c31dcf94fdd686c8ca8c34f3b70243b33a7344ecc0b719d5ca2617cbee
-PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
+PKG_HASH:=ea6bb512c4adfbc4e05b22e4c2d06bddff5b358a53de982273fec846b75bde0c
+PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de> \
+ Peter Wagner <tripolar@gmx.at>
PKG_LICENSE_FILES:=LICENSE
PKG_INSTALL:=1
## The port on which Tor will listen for local connections from Tor
## controller applications, as documented in control-spec.txt.
-@@ -227,3 +227,4 @@
+@@ -233,3 +233,4 @@
#%include /etc/torrc.d/
#%include /etc/torrc.custom
include $(TOPDIR)/rules.mk
PKG_NAME:=u2pnpd
-PKG_VERSION:=0.3
+PKG_VERSION:=0.4
PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/mhei/u2pnpd/releases/download/v$(PKG_VERSION)
-PKG_HASH:=73010be7ec523e3c3a9849a9783026627ecb3bc18d8195a9bed450e98a055ac2
+PKG_HASH:=4f1c98655fd75ca5d760155490f5331656f39f96bc7ea5a7bf75311848df7e2a
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=uanytun
-PKG_VERSION:=0.3.5
-PKG_RELEASE:=2
+PKG_VERSION:=0.3.7
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.anytun.org/download/
-PKG_HASH:=8edeed2ce185cc1add8a53de9f9192dfa65a48b559cccae6393faf2a1cd6f093
+PKG_HASH:=076318c771c908386c4408dda0769171542da701785302903641ce23fd33a295
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_MAINTAINER:=Christian Pointner <equinox@spreadspace.org>
PKG_LICENSE:=GPL-3.0+
echo '#ifndef UANYTUN_version_h_INCLUDED' > version.h; \
echo '#define UANYTUN_version_h_INCLUDED' >> version.h; \
echo '' >> version.h; \
- echo '#define VERSION_STRING_0 "uanytun version '`cat $(PKG_BUILD_DIR)/version`'"' >> version.h; \
- echo '#define VERSION_STRING_1 "built on '`hostname`', '`date +"%d.%m.%Y %H:%M:%S %Z"`'"' >> version.h; \
+ echo '#define VERSION_STRING "uanytun version '`cat $(PKG_BUILD_DIR)/version`'"' >> version.h; \
echo '' >> version.h; \
echo '#endif' >> version.h \
)
VARIANT_MAKE_OPTS:=
ifeq ($(BUILD_VARIANT),gcrypt)
-VARIANT_CFLAGS+=-DUSE_GCRYPT
+VARIANT_CFLAGS+=-DUSE_GCRYPT -DCRYPTO_LIB_NAME=\\\"libgcrypt\\\"
VARIANT_LDFLAGS+=-lgpg-error -lgcrypt
endif
ifeq ($(BUILD_VARIANT),nettle)
-VARIANT_CFLAGS+=-DUSE_NETTLE
+VARIANT_CFLAGS+=-DUSE_NETTLE -DCRYPTO_LIB_NAME=\\\"Nettle\\\"
VARIANT_LDFLAGS+=-lnettle
endif
ifeq ($(BUILD_VARIANT),sslcrypt)
-VARIANT_CFLAGS+=-DUSE_SSL_CRYPTO
+VARIANT_CFLAGS+=-DUSE_SSL_CRYPTO -DCRYPTO_LIB_NAME=\\\"OpenSSL\\\"
VARIANT_LDFLAGS+=-lcrypto
endif
ifeq ($(BUILD_VARIANT),nocrypt)
-VARIANT_CFLAGS+=-DNO_CRYPT
+VARIANT_CFLAGS+=-DNO_CRYPT -DCRYPTO_LIB_NAME=\\\"none\\\"
VARIANT_MAKE_OPTS+=NO_CRYPT_OBJ=1
endif
+++ /dev/null
-Index: uanytun-0.3.5/src/options.c
-===================================================================
---- uanytun-0.3.5.orig/src/options.c
-+++ uanytun-0.3.5/src/options.c
-@@ -481,7 +481,6 @@ void options_print_usage()
- void options_print_version()
- {
- printf("%s\n", VERSION_STRING_0);
-- printf("%s\n", VERSION_STRING_1);
- }
-
- void options_print(options_t* opt)
include $(TOPDIR)/rules.mk
PKG_NAME:=ulogd
-PKG_VERSION:=2.0.5
-PKG_RELEASE:=2
+PKG_VERSION:=2.0.7
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=ftp://ftp.netfilter.org/pub/ulogd/ \
- ftp://ftp.be.netfilter.org/pub/netfilter/ulogd/ \
- ftp://ftp.de.netfilter.org/pub/netfilter/ulogd/ \
- ftp://ftp.no.netfilter.org/pub/netfilter/ulogd/
-PKG_HASH:=a221cb9f77347c0ca00d0937e27c1b90e3291a553cc62a4139b788e2e420e8c0
+PKG_SOURCE_URL:=https://netfilter.org/projects/ulogd/files/ \
+ ftp://ftp.netfilter.org/pub/ulogd/
+PKG_HASH:=990a05494d9c16029ba0a83f3b7294fc05c756546b8d60d1c1572dc25249a92b
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
endif
ifneq ($(DEVELOPER)$(SDK)$(CONFIG_PACKAGE_ulogd-mod-mysql),)
- CONFIGURE_ARGS += --with-mysql="$(STAGING_DIR)/usr"
+ CONFIGURE_ARGS += \
+ --with-mysql-inc=$(STAGING_DIR)/usr/include/mysql \
+ --with-mysql-lib=$(STAGING_DIR)/usr/lib/mysql
else
CONFIGURE_ARGS += --without-mysql
endif
+++ /dev/null
---- a/src/ulogd.c
-+++ b/src/ulogd.c
-@@ -83,7 +83,7 @@ static char *ulogd_logfile = NULL;
- static const char *ulogd_configfile = ULOGD_CONFIGFILE;
- static const char *ulogd_pidfile = NULL;
- static int ulogd_pidfile_fd = -1;
--static FILE syslog_dummy;
-+static int ulogd_use_syslog = 0;
-
- static int info_mode = 0;
-
-@@ -427,7 +427,7 @@ void __ulogd_log(int level, char *file,
- if (level < loglevel_ce.u.value)
- return;
-
-- if (logfile == &syslog_dummy) {
-+ if (ulogd_use_syslog) {
- /* FIXME: this omits the 'file' string */
- va_start(ap, format);
- vsyslog(ulogd2syslog_level(level), format, ap);
-@@ -950,7 +950,7 @@ static int logfile_open(const char *name
- logfile = stdout;
- } else if (!strcmp(name, "syslog")) {
- openlog("ulogd", LOG_PID, LOG_DAEMON);
-- logfile = &syslog_dummy;
-+ ulogd_use_syslog = 1;
- } else {
- logfile = fopen(ulogd_logfile, "a");
- if (!logfile) {
-@@ -1240,7 +1240,7 @@ static void sigterm_handler(int signal)
- unload_plugins();
- #endif
-
-- if (logfile != NULL && logfile != stdout && logfile != &syslog_dummy) {
-+ if (logfile != NULL && logfile != stdout) {
- fclose(logfile);
- logfile = NULL;
- }
-@@ -1262,7 +1262,7 @@ static void signal_handler(int signal)
- switch (signal) {
- case SIGHUP:
- /* reopen logfile */
-- if (logfile != stdout && logfile != &syslog_dummy) {
-+ if (logfile != NULL && logfile != stdout) {
- fclose(logfile);
- logfile = fopen(ulogd_logfile, "a");
- if (!logfile) {
---- a/filter/raw2packet/ulogd_raw2packet_BASE.c
-+++ b/filter/raw2packet/ulogd_raw2packet_BASE.c
-@@ -42,6 +42,7 @@
- #include <ulogd/ulogd.h>
- #include <ulogd/ipfix_protocol.h>
- #include <netinet/if_ether.h>
-+#include <linux/types.h>
- #include <string.h>
-
- enum input_keys {
+++ /dev/null
-From e0c75c9d20b76ff3d496a776ce43341c752914c3 Mon Sep 17 00:00:00 2001
-From: Eric Leblond <eric@regit.org>
-Date: Tue, 21 Mar 2017 21:49:46 +0100
-Subject: [PATCH] ulogd: use strncpy instead of memcpy
-
-On some architecture, ulogd is not starting due to a
-crash in memcpy. This patch switches to strncpy to
-avoid the problem.
-
-Reported-by: Alexandru Ardelean <ardeleanalex@gmail.com>
-Signed-off-by: Eric Leblond <eric@regit.org>
----
- src/ulogd.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/ulogd.c b/src/ulogd.c
-index 5b9a586..919a317 100644
---- a/src/ulogd.c
-+++ b/src/ulogd.c
-@@ -668,7 +668,7 @@ pluginstance_alloc_init(struct ulogd_plugin *pl, char *pi_id,
- INIT_LLIST_HEAD(&pi->plist);
- pi->plugin = pl;
- pi->stack = stack;
-- memcpy(pi->id, pi_id, sizeof(pi->id));
-+ strncpy(pi->id, pi_id, ULOGD_MAX_KEYLEN);
-
- ptr = (void *)pi + sizeof(*pi);
-
---
-2.7.4
-
include $(TOPDIR)/rules.mk
PKG_NAME:=umurmur
-PKG_VERSION:=0.2.16-20161126
+PKG_VERSION:=0.2.17
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MIRROR_HASH:=d41db898c826077735d48ec1d1ff9ed200d6520f46ae3dbb0a89dfaad49310cd
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/umurmur/umurmur.git
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=fac630135664fda26338d403041b6b6e558a2d6b
-PKG_MIRROR_HASH:=6773aebea9aea355a41425e946291bb47bc399f85483bd6532cf26dfc7c801e5
+PKG_SOURCE_VERSION:=c4f6b1f6d27f7d7a556d30aedee73a675b5a6c48
PKG_INSTALL:=1
PKG_FIXUP:=autoreconf
--- /dev/null
+From 45a0a33aea1878c467c380562d6e38b3e4c713a9 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Fri, 8 Jun 2018 11:59:04 -0300
+Subject: [PATCH] Update openssl 1.1 deprecated API
+
+Allows building with openssl 1.1 compiled without deprecated API support.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ src/ssli_openssl.c | 27 ++++++++++++++++++++++++---
+ 1 file changed, 24 insertions(+), 3 deletions(-)
+
+diff --git a/src/ssli_openssl.c b/src/ssli_openssl.c
+index 8ff1bcf..4f7979c 100644
+--- a/src/ssli_openssl.c
++++ b/src/ssli_openssl.c
+@@ -42,6 +42,8 @@
+
+ #include <openssl/x509v3.h>
+ #include <openssl/ssl.h>
++#include <openssl/rsa.h>
++#include <openssl/bn.h>
+ #include <openssl/err.h>
+ #include <openssl/safestack.h>
+ static X509 *x509;
+@@ -159,6 +161,7 @@ static void SSL_initializeCert() {
+
+ char *crt = (char *)getStrConf(CERTIFICATE);
+ char *key = (char *)getStrConf(KEY);
++ BIGNUM *e = NULL;
+
+ if (context) {
+ bool_t did_load_cert = SSL_CTX_use_certificate_chain_file(context, crt);
+@@ -172,13 +175,24 @@ static void SSL_initializeCert() {
+
+ x509 = X509_new();
+ pkey = EVP_PKEY_new();
+- rsa = RSA_generate_key(4096,RSA_F4,NULL,NULL);
++ rsa = RSA_new();
++ e = BN_new();
++ if (x509 == NULL || pkey == NULL || rsa == NULL || e == NULL || !BN_set_word(e, RSA_F4) ||
++ !RSA_generate_key_ex (rsa, 4096, e, NULL)) {
++ Log_fatal("Failed to Generate RSA key.");
++ }
++ BN_free(e);
+ EVP_PKEY_assign_RSA(pkey, rsa);
+
+ X509_set_version(x509, 2);
+ ASN1_INTEGER_set(X509_get_serialNumber(x509),1);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ X509_gmtime_adj(X509_get_notBefore(x509),0);
+ X509_gmtime_adj(X509_get_notAfter(x509),60*60*24*365);
++#else
++ X509_gmtime_adj(X509_getm_notBefore(x509),0);
++ X509_gmtime_adj(X509_getm_notAfter(x509),60*60*24*365);
++#endif
+ X509_set_pubkey(x509, pkey);
+
+ X509_NAME *name=X509_get_subject_name(x509);
+@@ -214,9 +228,10 @@ void SSLi_init(void)
+ SSL *ssl;
+ int i, offset = 0, cipherstringlen = 0;
+ STACK_OF(SSL_CIPHER) *cipherlist = NULL, *cipherlist_new = NULL;
+- SSL_CIPHER *cipher;
++ const SSL_CIPHER *cipher;
+ char *cipherstring;
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ SSL_library_init();
+ OpenSSL_add_all_algorithms();
+ SSL_load_error_strings();
+@@ -225,13 +240,17 @@ void SSLi_init(void)
+ context = SSL_CTX_new(SSLv23_server_method());
+ SSL_CTX_set_options(context, SSL_OP_NO_SSLv2);
+ SSL_CTX_set_options(context, SSL_OP_NO_SSLv3);
+- SSL_CTX_set_options(context, SSL_OP_CIPHER_SERVER_PREFERENCE);
++#else
++ context = SSL_CTX_new(TLS_server_method());
++ SSL_CTX_set_min_proto_version(context, TLS1_VERSION);
++#endif
+ if (context == NULL)
+ {
+ ERR_print_errors_fp(stderr);
+ abort();
+ }
+
++ SSL_CTX_set_options(context, SSL_OP_CIPHER_SERVER_PREFERENCE);
+ SSL_CTX_set_cipher_list(context, ciphers);
+
+ EC_KEY *ecdhkey = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
+@@ -290,7 +309,9 @@ void SSLi_init(void)
+ void SSLi_deinit(void)
+ {
+ SSL_CTX_free(context);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ EVP_cleanup();
++#endif
+ }
+
+ int SSLi_nonblockaccept(SSL_handle_t *ssl, bool_t *SSLready)
+--
+2.16.4
+
+++ /dev/null
---- a/src/ssl.h
-+++ b/src/ssl.h
-@@ -90,7 +90,7 @@ typedef ssl_context SSL_handle_t;
-
- #elif defined(USE_MBEDTLS)
- #include <mbedtls/ssl.h>
--#include <mbedtls/net.h>
-+#include <mbedtls/net_sockets.h>
- #include <mbedtls/version.h>
-
- #if defined(MBEDTLS_VERSION_MAJOR)
include $(TOPDIR)/rules.mk
PKG_NAME:=unbound
-PKG_VERSION:=1.7.1
-PKG_RELEASE:=3
+PKG_VERSION:=1.7.3
+PKG_RELEASE:=2
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Eric Luehrsen <ericluehrsen@hotmail.com>
+PKG_MAINTAINER:=Eric Luehrsen <ericluehrsen@gmail.com>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.unbound.net/downloads
-PKG_HASH:=56e085ef582c5372a20207de179d0edb4e541e59f87be7d4ee1d00d12008628d
+PKG_HASH:=c11de115d928a6b48b2165e0214402a7a7da313cd479203a7ce7a8b62cba602d
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf
--disable-dsa \
--disable-gost \
--enable-allsymbols \
+ --enable-tfo-client \
+ --enable-tfo-server \
--with-libexpat="$(STAGING_DIR)/usr" \
--with-ssl="$(STAGING_DIR)/usr" \
--with-pidfile=/var/run/unbound.pid \
[Unbound](https://www.unbound.net/) is a validating, recursive, and caching DNS resolver. The C implementation of Unbound is developed and maintained by [NLnet Labs](https://www.nlnetlabs.nl/). It is based on ideas and algorithms taken from a java prototype developed by Verisign labs, Nominet, Kirei and ep.net. Unbound is designed as a set of modular components, so that also DNSSEC (secure DNS) validation and stub-resolvers (that do not run as a server, but are linked into an application) are easily possible.
## Package Overview
-Unbound may be useful on consumer grade embedded hardware. It is _intended_ to be a recursive resolver only. [NLnet Labs NSD](https://www.nlnetlabs.nl/projects/nsd/) is _intended_ for the authoritative task. This is different than [ISC Bind](https://www.isc.org/downloads/bind/) and its inclusive functions. Unbound configuration effort and memory consumption may be easier to control. A consumer could have their own recursive resolver with 8/64 MB router, and remove potential issues from forwarding resolvers outside of their control.
+OpenWrt default build uses [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html) for DNS forwarding and DHCP. With a forward only resolver, dependence on the upstream recursors may be cause for concern. They are often provided by the ISP, and some users have switched to public DNS providers. Either way may result in problems due to performance, "snoop-vertising", hijacking (MiM), and other causes. Running a recursive resolver or resolver capable of TLS may be a solution.
+
+Unbound may be useful on consumer grade embedded hardware. It is fully DNSSEC and TLS capable. It is _intended_ to be a recursive resolver only. [NLnet Labs NSD](https://www.nlnetlabs.nl/projects/nsd/) is _intended_ for the authoritative task. This is different than [ISC Bind](https://www.isc.org/downloads/bind/) and its inclusive functions. Unbound configuration effort and memory consumption may be easier to control. A consumer could have their own recursive resolver with 8/64 MB router, and remove potential issues from forwarding resolvers outside of their control.
This package builds on Unbounds capabilities with OpenWrt UCI. Not every Unbound option is in UCI, but rather, UCI simplifies the combination of related options. Unbounds native options are bundled and balanced within a smaller set of choices. Options include resources, DNSSEC, access control, and some TTL tweaking. The UCI also provides an escape option and works at the raw "unbound.conf" level.
-## HOW TO Ad Blocking
-The UCI scripts will work with [net/adblock 2.3+](https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md), if it is installed and enabled. Its all detected and integrated automatically. In brief, the adblock scripts create distinct local-zone files that are simply included in the unbound conf file during UCI generation. If you don't want this, then disable adblock or reconfigure adblock to not send these files to Unbound.
+## HOW TO: Ad Blocking
+The UCI scripts will work with [net/adblock](https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md), if it is installed and enabled. Its all detected and integrated automatically. In brief, the adblock scripts create distinct local-zone files that are simply included in the unbound conf file during UCI generation. If you don't want this, then disable adblock or reconfigure adblock to not send these files to Unbound.
+
+A few tweaks may be needed to enhance the realiability and effectiveness. Ad Block option for delay time may need to be set for upto one minute (adb_triggerdelay), because of boot up race conditions with interfaces calling Unbound restarts. Also many smart devices (TV, microwave, or refigerator) will also use public DNS servers either as a bypass or for certain connections in general. If you wish to force exclusive DNS to your router, then you will need a firewall rule for example:
+
+**/etc/config/firewall**:
+```
+config rule
+ option name 'Block-Public-DNS'
+ option enabled '1'
+ option src 'lan'
+ option dest 'wan'
+ option dest_port '53 853 5353'
+ option proto 'tcpudp'
+ option family 'any'
+ option target 'REJECT'
+```
-## HOW TO Integrate with DHCP
+## HOW TO: Integrate with DHCP
Some UCI options and scripts help Unbound to work with DHCP servers to load the local DNS. The examples provided here are serial dnsmasq-unbound, parallel dnsmasq-unbound, and unbound scripted with odhcpd.
### Serial dnsmasq
-In this case, dnsmasq is not changed *much* with respect to the default OpenWrt/LEDE configuration. Here dnsmasq is forced to use the local Unbound instance as the lone upstream DNS server, instead of your ISP. This may be the easiest implementation, but performance degradation can occur in high volume networks. dnsmasq and Unbound effectively have the same information in memory, and all transfers are double handled.
+In this case, dnsmasq is not changed *much* with respect to the default [OpenWrt configuration](https://openwrt.org/docs/guide-user/base-system/dns_configuration). Here dnsmasq is forced to use the local Unbound instance as the lone upstream DNS server, instead of your ISP. This may be the easiest implementation, but performance degradation can occur in high volume networks. dnsmasq and Unbound effectively have the same information in memory, and all transfers are double handled.
**/etc/config/unbound**:
-
```
config unbound
option add_local_fqdn '0'
```
**/etc/config/dhcp**:
-
```
config dnsmasq
option domain 'yourdomain'
In this case, Unbound serves your local network directly for all purposes. It will look over to dnsmasq for DHCP-DNS resolution. Unbound is generally accessible on port 53, and dnsmasq is only accessed at 127.0.0.1:1053 by Unbound. Although you can dig/drill/nslookup remotely with the proper directives.
**/etc/config/unbound**:
-
```
config unbound
option dhcp_link 'dnsmasq'
```
**/etc/config/dhcp**:
-
```
config dnsmasq
option domain 'yourdomain'
```
### Unbound and odhcpd
-You may ask, "can Unbound replace dnsmasq?" You can have DHCP-DNS records with Unbound and odhcpd only. The UCI scripts will allow Unbound to act like dnsmasq. When odhcpd configures each DHCP lease, it will call a script. The script provided with Unbound will read the lease file for DHCP-DNS records. The unbound-control application is required, because simply rewriting conf-files and restarting unbound is too much overhead.
+You may ask, "can Unbound replace dnsmasq?" You can have DHCP-DNS records with Unbound and [odhcpd](https://github.com/openwrt/odhcpd/blob/master/README) only. The UCI scripts will allow Unbound to act like dnsmasq. When odhcpd configures each DHCP lease, it will call a script. The script provided with Unbound will read the lease file for DHCP-DNS records. The unbound-control application is required, because simply rewriting conf-files and restarting unbound is too much overhead.
- Default OpenWrt has dnsmasq+odhcpd with `odhcpd-ipv6only` limited to DHCPv6.
- If you use dnsmasq+odhcpd together, then use dnsmasq serial or parallel methods above.
- You must install package `odhcpd` (full) to use odhcpd alone.
- Remember to uninstall (or disable) dnsmasq when you won't use it.
**/etc/config/unbound**:
-
```
config unbound
# name your router in DNS
```
**/etc/config/dhcp**:
-
```
config dhcp 'lan'
option dhcpv4 'server'
option leasetrigger '/usr/lib/unbound/odhcpd.sh'
```
-## HOW TO Manual Override
+## HOW TO: Manual Override
Yes, there is a UCI to disable the rest of Unbound UCI. However, OpenWrt or LEDE are targeted at embedded machines with flash ROM. The initialization scripts do a few things to protect flash ROM.
### Completely Manual (almost)
Keep the DNSKEY updated with your choice of flash activity. `root.key` maintenance for DNSKEY RFC5011 would be hard on flash. Unbound natively updates frequently. It also creates and destroys working files in the process. In `/var/lib/unbound` this is no problem, but it would be gone at the next reboot. If you have DNSSEC (validator) active, then you should consider the age UCI option. Choose how many days to copy from `/var/lib/unbound/root.key` (tmpfs) to `/etc/unbound/root.key` (flash).
**/etc/config/unbound**:
-
```
config unbound
option manual_conf '1'
### Hybrid Manual/UCI
You like the UCI. Yet, you need to add some difficult to standardize options, or just are not ready to make a UCI request yet. The files `/etc/unbound/unbound_srv.conf` and `/etc/unbound/unbound_ext.conf` will be copied to Unbounds chroot directory and included during auto generation.
-The former will be added to the end of the `server:` clause. The later will be added to the end of the file for extended `forward:` and `view:` clauses. You can also disable unbound-control in the UCI which only allows "localhost" connections unencrypted, and then add an encrypted remote `control:` clause.
+The file `unbound_srv.conf` will be added into the `server:` clause. The file `unbound_ext.conf` will be added to the end of all configuration. It is for extended `forward-zone:`, `stub-zone:`, `auth-zone:`, and `view:` clauses. You can also disable unbound-control in the UCI which only allows "localhost" connections unencrypted, and then add an encrypted remote `control:` clause.
+
+#### DNS over TLS
+Some public servers are now offering DNS over TLS. Unbound supports acting as DNS over TLS forwarding client. You can use the override files to enable this funciton. Unbound will connect TLS without verifying keys unless you include the PEM path and install `ca-bundle` package. No connection or connection without verification will occur unless you use complete syntax with "@" and "#". See `forward-addr: 1.1.1.1@853#cloudflare-dns.com` for example. Unbound makes a new TLS connection for each query. You limit this effect using large resource and aggressive recursion setting (big cache and prefetching). You can also set memory and recursion to default and edit `unbound_srv.conf` to suit your needs. UCI improvements are in progress but not ready in OpenWrt 18.06.
+
+**/etc/unbound/unbound_srv.conf**:
+```
+ tls-service-pem: /etc/ssl/certs/ca-certificates.crt
+```
+
+**/etc/unbound/unbound_ext.conf**:
+```
+forward-zone:
+ name: .
+ forward-addr: 1.1.1.1@853#cloudflare-dns.com
+ forward-addr: 1.0.0.1@853#cloudflare-dns.com
+ forward-addr: 2606:4700:4700::1111@853#cloudflare-dns.com
+ forward-addr: 2606:4700:4700::1001@853#cloudflare-dns.com
+ forward-tls-upstream: yes
+```
## Complete List of UCI Options
**/etc/config/unbound**:
-
```
config unbound
Currently only one instance is supported.
option domain_type 'static'
Unbound local-zone: <domain> <type>. This allows you to lock
- down or allow forwarding of your domain, your router host name
- without suffix, and leakage of RFC6762 "local."
+ down or allow forwarding of the local zone. Notable types:
+ static - typical single router setup much like OpenWrt dnsmasq default
+ refuse - to answer overtly with DNS code REFUSED
+ deny - to drop queries for the local zone
+ transparent - to use your manually added forward-zone: or stub-zone: clause
option edns_size '1280'
Bytes. Extended DNS is necessary for DNSSEC. However, it can run
configuration. Make changes to /etc/unbound/unbound.conf.
option prefetch_root '0'
- Boolean. Enable Unbound authority zone clauses for "." (root), "arpa,"
- "in-addr.arpa," and "ip6.arpa" and obtain complete zone files from public
- servers using http or AXFR (gTLD are unfortunately not as public).
+ Boolean. Cache the entire root. Enable Unbound `auth-zone:` clauses for
+ "." (root), "arpa," "in-addr.arpa," and "ip6.arpa." Obtain complete zone
+ files from public servers using http or AXFR. (see RFC7706)
option protocol 'mixed'
Unbound can limit its protocol used for recursive queries.
triggers to LAN and WAN (IP4 only) to prevent restart @2-3 minutes.
```
-
##############################################################################
+domain_ptr_any() {
+ local subnet=$1
+ local arpa validip4 validip6
+
+ validip4=$( valid_subnet4 $subnet )
+ validip6=$( valid_subnet6 $subnet )
+
+
+ if [ "$validip4" = "ok" ] ; then
+ arpa=$( domain_ptr_ip4 "$subnet" )
+ elif [ "$validip6" = "ok" ] ; then
+ arpa=$( domain_ptr_ip6 "$subnet" )
+ fi
+
+
+ if [ -n "$arpa" ] ; then
+ echo $arpa
+ fi
+}
+
+##############################################################################
+
local dhcp_origin=$( uci_get dhcp.@odhcpd[0].leasefile )
- if [ "$dhcp_link" = "odhcpd" -a -f "$dhcp_origin" ] ; then
+ if [ "$dhcp_link" = "odhcpd" \
+ -a -f "$dhcp_origin" \
+ -a -n "$dhcp_domain" ] ; then
# Capture the lease file which could be changing often
sort $dhcp_origin > $dhcp_ls_new
##############################################################################
-. /usr/lib/unbound/unbound.sh
-
-##############################################################################
-
boot() {
UNBOUND_BOOT=1
start "$@"
fi
# complex UCI work
+ . /usr/lib/unbound/unbound.sh
unbound_start
# standard procd clause
- procd_open_instance
+ procd_open_instance "unbound"
procd_set_param command $PROG -d -c $UNBOUND_CONFFILE
procd_set_param respawn
procd_close_instance
##############################################################################
stop_service() {
+ # clean up
+ . /usr/lib/unbound/unbound.sh
unbound_stop
# Wait! on restart Unbound may take time writing closure stats to syslog
UNBOUND_LIST_FORWARD=""
UNBOUND_LIST_INSECURE=""
-UNBOUND_LIST_PRV_SUBNET=""
##############################################################################
-# keep track of local-domain: assignments during inserted resource records
+# keep track of assignments during inserted resource records
UNBOUND_LIST_DOMAINS=""
+UNBOUND_LIST_IFACE=""
+UNBOUND_LIST_PRV_IP6GLA=""
+UNBOUND_LIST_LAN_NET=""
+
+# Similar default SOA / NS RR as Unbound uses for private ARPA zones
+UNBOUND_XSOA="3600 IN SOA localhost. nobody.invalid. 1 3600 1200 7200 600"
+UNBOUND_XNS="3600 IN NS localhost."
##############################################################################
##############################################################################
-copy_dash_update() {
- # TODO: remove this function and use builtins when this issues is resovled.
- # Due to OpenWrt/LEDE divergence "cp -u" isn't yet universally available.
- local filetime keeptime
-
-
- if [ -f $UNBOUND_KEYFILE.keep ] ; then
- # root.key.keep is reused if newest
- filetime=$( date -r $UNBOUND_KEYFILE +%s )
- keeptime=$( date -r $UNBOUND_KEYFILE.keep +%s )
-
-
- if [ $keeptime -gt $filetime ] ; then
- cp $UNBOUND_KEYFILE.keep $UNBOUND_KEYFILE
- fi
-
-
- rm -f $UNBOUND_KEYFILE.keep
- fi
-}
-
-##############################################################################
-
create_interface_dns() {
local cfg="$1"
local ipcommand logint ignore ifname ifdashname
local name names address addresses
- local ulaprefix if_fqdn host_fqdn mode mode_ptr
+ local ulaprefix if_fqdn host_fqdn
+ local mode_ptr="$UNBOUND_TXT_HOSTNAME"
+ local names="$UNBOUND_TXT_HOSTNAME"
# Create local-data: references for this hosts interfaces (router).
config_get logint "$cfg" interface
if_fqdn="$ifdashname.$host_fqdn"
- if [ -z "${ulaprefix%%:/*}" ] ; then
- # Nonsense so this option isn't globbed below
- ulaprefix="fdno:such:addr::/48"
- fi
+ if [ -z "$ifdashname" ] ; then
+ # race conditions at init can rarely cause a blank device return
+ # the record format is invalid and Unbound won't load the conf file
+ mode=0
+
+ elif [ -n "$UNBOUND_LIST_IFACE" ] ; then
+ case "$UNBOUND_LIST_IFACE" in
+ *$ifdashname*)
+ # repeat such as dual WAN (eth0-1) and WAN6 (eth0-1)
+ mode=0
+ ;;
+ *)
+ mode=1
+ ;;
+ esac
- if [ "$ignore" -gt 0 ] ; then
- mode="$UNBOUND_D_WAN_FQDN"
else
- mode="$UNBOUND_D_LAN_FQDN"
+ mode=1
fi
- case "$mode" in
- 3)
- mode_ptr="$host_fqdn"
- names="$host_fqdn $UNBOUND_TXT_HOSTNAME"
- ;;
+ if [ $mode -gt 0 ] ; then
+ UNBOUND_LIST_IFACE="$UNBOUND_LIST_IFACE $ifdashname"
+
+
+ if [ -z "${ulaprefix%%:/*}" ] ; then
+ # Nonsense so this option isn't globbed below
+ ulaprefix="fdno:such:addr::/48"
+ fi
+
+
+ if [ "$ignore" -gt 0 ] ; then
+ mode="$UNBOUND_D_WAN_FQDN"
+ else
+ mode="$UNBOUND_D_LAN_FQDN"
+ fi
+ fi
+
- 4)
- if [ -z "$ifdashname" ] ; then
- # race conditions at init can rarely cause a blank device return
- # the record format is invalid and Unbound won't load the conf file
+ if [ "$mode" -gt 1 ] ; then
+ case "$mode" in
+ 3)
mode_ptr="$host_fqdn"
names="$host_fqdn $UNBOUND_TXT_HOSTNAME"
- else
+ ;;
+
+ 4)
mode_ptr="$if_fqdn"
names="$if_fqdn $host_fqdn $UNBOUND_TXT_HOSTNAME"
- fi
- ;;
-
- *)
- mode_ptr="$UNBOUND_TXT_HOSTNAME"
- names="$UNBOUND_TXT_HOSTNAME"
- ;;
- esac
+ ;;
+ esac
- if [ "$mode" -gt 1 ] ; then
{
for address in $addresses ; do
case $address in
# New Zone! Bundle local-zones: by first two name tiers "abcd.tld."
partial=$( echo "$target" | awk -F. '{ j=NF ; i=j-1; print $i"."$j }' )
UNBOUND_LIST_DOMAINS="$UNBOUND_LIST_DOMAINS $partial"
- echo " local-zone: $partial. transparent" >> $UNBOUND_CONFFILE
+ echo " local-zone: $partial transparent" >> $UNBOUND_CONFFILE
fi
}
##############################################################################
bundle_private_interface() {
- local ipcommand ifsubnet ifsubnets ifname
+ local ipcommand ifsubnet ifsubnets ifname validip4
network_get_device ifname $1
+
if [ -n "$ifname" ] ; then
- ipcommand="ip -6 -o address show $ifname"
- ifsubnets=$( $ipcommand | awk '/inet6/{ print $4 }' )
+ ipcommand="ip -o address show $ifname"
+ ifsubnets=$( $ipcommand | awk '/inet/{ print $4 }' )
if [ -n "$ifsubnets" ] ; then
for ifsubnet in $ifsubnets ; do
case $ifsubnet in
- [1-9]*:*[0-9a-f])
+ [1-9][0-9a-f][0-9a-f][0-9a-f]:*[0-9a-f])
# Special GLA protection for local block; ULA protected as a catagory
- UNBOUND_LIST_PRV_SUBNET="$UNBOUND_LIST_PRV_SUBNET $ifsubnet" ;;
+ UNBOUND_LIST_PRV_IP6GLA="$UNBOUND_LIST_PRV_IP6GLA $ifsubnet"
+ ;;
+
+ f[dc][0-9a-f][0-9a-f]:*[0-9a-f])
+ # Used to configure specific local-zone: data
+ UNBOUND_LIST_LAN_NET="$UNBOUND_LIST_LAN_NET $ifsubnet"
+ ;;
+
+ *)
+ validip4=$( valid_subnet4 $ifsubnet )
+
+
+ if [ "$validip4" = "ok" ] ; then
+ UNBOUND_LIST_LAN_NET="$UNBOUND_LIST_LAN_NET $ifsubnet"
+ fi
+ ;;
esac
done
fi
unbound_mkdir() {
local filestuff
+
if [ "$UNBOUND_D_DHCP_LINK" = "odhcpd" ] ; then
local dhcp_origin=$( uci_get dhcp.@odhcpd[0].leasefile )
local dhcp_dir=$( dirname $dhcp_origin )
fi
fi
+
if [ -f $UNBOUND_KEYFILE ] ; then
filestuff=$( cat $UNBOUND_KEYFILE )
fi
- copy_dash_update
+ if [ -f $UNBOUND_KEYFILE.keep ] ; then
+ # root.key.keep is reused if newest
+ cp -u $UNBOUND_KEYFILE.keep $UNBOUND_KEYFILE
+ rm -f $UNBOUND_KEYFILE.keep
+ fi
# Ensure access and prepare to jail
echo " control-use-cert: yes"
echo " control-interface: 127.0.0.1"
echo " control-interface: ::1"
- echo " server-key-file: \"$UNBOUND_SRVKEY_FILE\""
- echo " server-cert-file: \"$UNBOUND_SRVPEM_FILE\""
- echo " control-key-file: \"$UNBOUND_CTLKEY_FILE\""
- echo " control-cert-file: \"$UNBOUND_CTLPEM_FILE\""
+ echo " server-key-file: $UNBOUND_SRVKEY_FILE"
+ echo " server-cert-file: $UNBOUND_SRVPEM_FILE"
+ echo " control-key-file: $UNBOUND_CTLKEY_FILE"
+ echo " control-cert-file: $UNBOUND_CTLPEM_FILE"
echo
} >> $UNBOUND_CONFFILE
;;
echo " control-use-cert: yes"
echo " control-interface: 0.0.0.0"
echo " control-interface: ::0"
- echo " server-key-file: \"$UNBOUND_SRVKEY_FILE\""
- echo " server-cert-file: \"$UNBOUND_SRVPEM_FILE\""
- echo " control-key-file: \"$UNBOUND_CTLKEY_FILE\""
- echo " control-cert-file: \"$UNBOUND_CTLPEM_FILE\""
+ echo " server-key-file: $UNBOUND_SRVKEY_FILE"
+ echo " server-cert-file: $UNBOUND_SRVPEM_FILE"
+ echo " control-key-file: $UNBOUND_CTLKEY_FILE"
+ echo " control-cert-file: $UNBOUND_CTLPEM_FILE"
echo
} >> $UNBOUND_CONFFILE
;;
for fdomain in $UNBOUND_LIST_FORWARD ; do
{
echo "forward-zone:"
- echo " name: \"$fdomain.\""
+ echo " name: $fdomain"
for fresolver in $resolvers ; do
echo " forward-addr: $fresolver"
done
{
echo "auth-zone:"
- echo " name: \"$realzone\""
+ echo " name: $realzone"
for server in $axfrservers ; do
- echo " master: \"$server\""
+ echo " master: $server"
done
- echo " url: \"$httpserver$zone.zone\""
+ echo " url: $httpserver$zone.zone"
echo " fallback-enabled: yes"
echo " for-downstream: no"
echo " for-upstream: yes"
- echo " zonefile: \"$zone.zone\""
+ echo " zonefile: $zone.zone"
echo
} >> $UNBOUND_CONFFILE
done
echo
echo "server:"
echo " username: unbound"
- echo " chroot: \"$UNBOUND_VARDIR\""
- echo " directory: \"$UNBOUND_VARDIR\""
- echo " pidfile: \"$UNBOUND_PIDFILE\""
+ echo " chroot: $UNBOUND_VARDIR"
+ echo " directory: $UNBOUND_VARDIR"
+ echo " pidfile: $UNBOUND_PIDFILE"
echo
# No threading
echo " num-threads: 1"
if [ -f "$UNBOUND_HINTFILE" ] ; then
# Optional hints if found
- echo " root-hints: \"$UNBOUND_HINTFILE\"" >> $UNBOUND_CONFFILE
+ echo " root-hints: $UNBOUND_HINTFILE" >> $UNBOUND_CONFFILE
fi
if [ "$UNBOUND_B_DNSSEC" -gt 0 -a -f "$UNBOUND_KEYFILE" ] ; then
{
- echo " auto-trust-anchor-file: \"$UNBOUND_KEYFILE\""
+ echo " auto-trust-anchor-file: $UNBOUND_KEYFILE"
echo
} >> $UNBOUND_CONFFILE
logger -t unbound -s "default memory configuration"
fi
+
# Assembly of module-config: options is tricky; order matters
modulestring="iterator"
fi
- if [ -n "$UNBOUND_LIST_PRV_SUBNET" -a "$UNBOUND_D_PRIV_BLCK" -gt 1 ] ; then
- for ifsubnet in $UNBOUND_LIST_PRV_SUBNET ; do
+ if [ -n "$UNBOUND_LIST_PRV_IP6GLA" -a "$UNBOUND_D_PRIV_BLCK" -gt 1 ] ; then
+ for ifsubnet in $UNBOUND_LIST_PRV_IP6GLA ; do
# Remove global DNS responses with your local network IP6 GLA
echo " private-address: $ifsubnet" >> $UNBOUND_CONFFILE
done
if [ -n "$UNBOUND_LIST_INSECURE" ] ; then
for domain in $UNBOUND_LIST_INSECURE ; do
# Except and accept domains without (DNSSEC); work around broken domains
- echo " domain-insecure: \"$domain\"" >> $UNBOUND_CONFFILE
+ echo " domain-insecure: $domain" >> $UNBOUND_CONFFILE
done
# TODO: Unbound 1.6.0 added "tags" and "views"; lets work with adblock team
local adb_enabled adb_file
+
if [ ! -x /usr/bin/adblock.sh -o ! -x /etc/init.d/adblock ] ; then
adb_enabled=0
else
##############################################################################
unbound_hostname() {
+ local ifsubnet ifarpa
+
+
if [ -n "$UNBOUND_TXT_DOMAIN" ] ; then
{
- # TODO: Unbound 1.6.0 added "tags" and "views" and we could make
- # domains by interface to prevent DNS from "guest" to "home"
- echo " local-zone: $UNBOUND_TXT_DOMAIN. $UNBOUND_D_DOMAIN_TYPE"
- echo " domain-insecure: $UNBOUND_TXT_DOMAIN"
- echo " private-domain: $UNBOUND_TXT_DOMAIN"
- echo
- echo " local-zone: $UNBOUND_TXT_HOSTNAME. $UNBOUND_D_DOMAIN_TYPE"
+ # Hostname as TLD works, but not transparent through recursion
echo " domain-insecure: $UNBOUND_TXT_HOSTNAME"
echo " private-domain: $UNBOUND_TXT_HOSTNAME"
+ echo " local-zone: $UNBOUND_TXT_HOSTNAME static"
+ echo " local-data: \"$UNBOUND_TXT_HOSTNAME. $UNBOUND_XSOA\""
+ echo " local-data: \"$UNBOUND_TXT_HOSTNAME. $UNBOUND_XNS\""
echo
} >> $UNBOUND_CONFFILE
case "$UNBOUND_D_DOMAIN_TYPE" in
deny|inform_deny|refuse|static)
+ if [ -n "$UNBOUND_LIST_PRV_IP6GLA" \
+ -a "$UNBOUND_D_PRIV_BLCK" -gt 1 ] ; then
+ for ifsubnet in $UNBOUND_LIST_PRV_IP6GLA ; do
+ ifarpa=$( domain_ptr_any "$ifsubnet" )
+
+
+ if [ -n "$ifarpa" ] ; then
+ {
+ # Do NOT forward queries with your GLA ip6.arpa
+ echo " domain-insecure: $ifarpa"
+ echo " local-zone: $ifarpa $UNBOUND_D_DOMAIN_TYPE"
+ echo " local-data: \"$ifarpa. $UNBOUND_XSOA\""
+ echo " local-data: \"$ifarpa. $UNBOUND_XNS\""
+ echo
+ } >> $UNBOUND_CONFFILE
+ fi
+ done
+ fi
+
+
+ if [ -n "$UNBOUND_LIST_LAN_NET" \
+ -a "$UNBOUND_D_PRIV_BLCK" -gt 0 ] ; then
+ for ifsubnet in $UNBOUND_LIST_LAN_NET ; do
+ ifarpa=$( domain_ptr_any "$ifsubnet" )
+
+
+ if [ -n "$ifarpa" ] ; then
+ {
+ # Do NOT forward queries with your ULA ip6.arpa or in-addr.arpa
+ echo " domain-insecure: $ifarpa"
+ echo " local-zone: $ifarpa $UNBOUND_D_DOMAIN_TYPE"
+ echo " local-data: \"$ifarpa. $UNBOUND_XSOA\""
+ echo " local-data: \"$ifarpa. $UNBOUND_XNS\""
+ echo
+ } >> $UNBOUND_CONFFILE
+ fi
+ done
+ fi
+
+
{
- # avoid upstream involvement in RFC6762 like responses (link only)
- echo " local-zone: local. $UNBOUND_D_DOMAIN_TYPE"
+ # avoid upstream involvement in RFC6762
echo " domain-insecure: local"
echo " private-domain: local"
+ echo " local-zone: local $UNBOUND_D_DOMAIN_TYPE"
+ echo " local-data: \"local. $UNBOUND_XSOA\""
+ echo " local-data: \"local. $UNBOUND_XNS\""
+ echo " local-data: \"local. 3600 IN TXT RFC6762\""
+ echo
+ # type static means only this router has your domain
+ # type transparent will permit forward-zone: or stub-zone: clauses
+ echo " domain-insecure: $UNBOUND_TXT_DOMAIN"
+ echo " private-domain: $UNBOUND_TXT_DOMAIN"
+ echo " local-zone: $UNBOUND_TXT_DOMAIN $UNBOUND_D_DOMAIN_TYPE"
+ echo " local-data: \"$UNBOUND_TXT_DOMAIN. $UNBOUND_XSOA\""
+ echo " local-data: \"$UNBOUND_TXT_DOMAIN. $UNBOUND_XNS\""
echo
} >> $UNBOUND_CONFFILE
;;
+
+ *)
+ # likely transparent domain with fordward-zone: clause to next router
+ echo " domain-insecure: $UNBOUND_TXT_DOMAIN"
+ echo " private-domain: $UNBOUND_TXT_DOMAIN"
+ echo " local-zone: $UNBOUND_TXT_DOMAIN $UNBOUND_D_DOMAIN_TYPE"
+ echo
+ ;;
esac
return
fi
+
if [ -x /etc/init.d/dnsmasq ] && /etc/init.d/dnsmasq enabled \
&& nslookup localhost 127.0.0.1#53 >/dev/null 2>&1 ; then
# unbound is configured for port 53, but dnsmasq is enabled and a resolver
return
fi
+
# unbound is designated to listen on 127.0.0.1#53,
# set resolver file to local.
rm -f /tmp/resolv.conf
diff --git a/doc/example.conf.in b/doc/example.conf.in
-index 5396029..cbb51ec 100644
+index be83bda..7317b23 100644
--- a/doc/example.conf.in
+++ b/doc/example.conf.in
-@@ -1,9 +1,10 @@
--#
--# Example configuration file.
--#
--# See unbound.conf(5) man page, version 1.7.1.
--#
--# this is a comment.
-+##############################################################################
-+# MEMORY CONTROL EXAMPLE
-+# In the example config settings below memory usage is reduced. Some ser-
-+# vice levels are lower, notable very large data and a high TCP load are
-+# no longer supported ... are exceptional for the DNS.
-+# (http://unbound.net/documentation/unbound.conf.html)
-+##############################################################################
-
- #Use this to include other text into the file.
- #include: "otherfile.conf"
-@@ -12,9 +13,71 @@
- server:
- # whitespace is not necessary, but looks cleaner.
-
-- # verbosity number, 0 is least verbose. 1 is default.
-+ # verbosity 1 is default
+@@ -15,6 +15,76 @@ server:
+ # verbosity number, 0 is least verbose. 1 is default.
verbosity: 1
++ ############################################################################
++ # MEMORY CONTROL EXAMPLE
++ # In the example config settings below memory usage is reduced. Some ser-
++ # vice levels are lower, notable very large data and a high TCP load are
++ # no longer supported ... are exceptional for the DNS.
++ # (http://unbound.net/documentation/unbound.conf.html)
++ ############################################################################
++
+ # Self jail Unbound with user "unbound" to /var/lib/unbound
+ # The script /etc/init.d/unbound will setup the location
+ username: "unbound"
+ # have power off clock (reboot), then you may need this work around.
+ #domain-insecure: "pool.ntp.org"
+
-+##############################################################################
-+# Resume Stock example.conf.in
-+##############################################################################
++ ############################################################################
++ # Resume Stock example.conf.in
++ ############################################################################
+
# print statistics to the log (for every thread) every N seconds.
# Set to "" or 0 to disable. Default is disabled.
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=usbip
-PKG_RELEASE:=9
+PKG_RELEASE:=10
PKG_LICENSE:=GPL-2.0
# Since kernel 2.6.39.1 userspace tools are inside the kernel tree
define Package/usbip
$(call Package/usbip/Default)
TITLE+= (common)
- DEPENDS+= +libwrap +kmod-usbip +libudev-fbsd
+ DEPENDS+= +libwrap +kmod-usbip +libudev-fbsd +USE_GLIBC:libbsd
endef
define Package/usbip-client
CONFIGURE_PATH:=.
MAKE_PATH:=.
LIBTOOL_PATHS:=.
-MAKE_FLAGS+=CFLAGS="-Wno-implicit-function-declaration"
+MAKE_FLAGS+=CFLAGS='-Dudev_device_get_devpath\(x\)=udev_device_get_syspath\(x\)+strlen\(\"/sys\"\) \
+ -DSIGCLD=SIGCHLD'
+CONFIGURE_ARGS+= --disable-silent-rules
define Build/Configure
(cd $(PKG_BUILD_DIR); ./autogen.sh );
$(call Build/Configure/Default)
endef
+CONFIGURE_VARS+= $(if $(CONFIG_USE_GLIBC),LIBS='-lbsd -lpthread')
CFLAGS+="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include"
USB_IDS_REV:=0a6be488b4c1485d30c9efee1cc895af5d4a1383
+++ /dev/null
---- a/src/usbipd.c
-+++ b/src/usbipd.c
-@@ -453,7 +453,7 @@ static void set_signal(void)
- sigaction(SIGTERM, &act, NULL);
- sigaction(SIGINT, &act, NULL);
- act.sa_handler = SIG_IGN;
-- sigaction(SIGCLD, &act, NULL);
-+ sigaction(SIGCHLD, &act, NULL);
- }
-
- static const char *pid_file;
+++ /dev/null
-Index: trunk/src/cmd/Makefile.am
-===================================================================
---- trunk/src/cmd/Makefile.am (revision 98)
-+++ trunk/src/cmd/Makefile.am (revision 99)
-@@ -17,5 +17,5 @@
- INCLUDES = -I$(top_srcdir)/lib
- LDADD = ../lib/libusbip.la @PACKAGE_LIBS@
- EXTRA_CFLAGS = @EXTRA_CFLAGS@
--AM_CFLAGS = -Wall -W -Wstrict-prototypes -std=gnu99 $(EXTRA_CFLAGS) @PACKAGE_CFLAGS@
-+AM_CFLAGS = -Wall -W -Wstrict-prototypes -std=gnu99 $(EXTRA_CFLAGS) @PACKAGE_CFLAGS@ -DUSBIDS_FILE='"@USBIDS_DIR@/usb.ids"'
-
+++ /dev/null
---- a/drivers/head/stub_dev.c
-+++ b/drivers/head/stub_dev.c
-@@ -398,7 +398,11 @@ static int stub_probe(struct usb_interfa
- {
- struct usb_device *udev = interface_to_usbdev(interface);
- struct stub_device *sdev = NULL;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- char *udev_busid = interface->dev.parent->bus_id;
-+#else
-+ char *udev_busid = dev_name(interface->dev.parent);
-+#endif
- int err = 0;
-
- udbg("Enter\n");
---- a/drivers/head/stub_main.c
-+++ b/drivers/head/stub_main.c
-@@ -252,18 +252,17 @@ static int __init usb_stub_init(void)
- return -ENOMEM;
- }
-
-+ info(DRIVER_DESC "" DRIVER_VERSION);
-+
-+ memset(busid_table, 0, sizeof(busid_table));
-+ spin_lock_init(&busid_table_lock);
-+
- ret = usb_register(&stub_driver);
- if (ret) {
- uerr("usb_register failed %d\n", ret);
- return ret;
- }
-
--
-- info(DRIVER_DESC "" DRIVER_VERSION);
--
-- memset(busid_table, 0, sizeof(busid_table));
-- spin_lock_init(&busid_table_lock);
--
- ret = driver_create_file(&stub_driver.drvwrap.driver, &driver_attr_match_busid);
-
- if (ret) {
---- a/drivers/head/stub_rx.c
-+++ b/drivers/head/stub_rx.c
-@@ -159,7 +159,11 @@ static int tweak_set_configuration_cmd(s
- * A user may need to set a special configuration value before
- * exporting the device.
- */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- uinfo("set_configuration (%d) to %s\n", config, urb->dev->dev.bus_id);
-+#else
-+ uinfo("set_configuration (%d) to %s\n", config, dev_name(&urb->dev->dev));
-+#endif
- uinfo("but, skip!\n");
-
- return 0;
-@@ -177,7 +181,11 @@ static int tweak_reset_device_cmd(struct
- value = le16_to_cpu(req->wValue);
- index = le16_to_cpu(req->wIndex);
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- uinfo("reset_device (port %d) to %s\n", index, urb->dev->dev.bus_id);
-+#else
-+ uinfo("reset_device (port %d) to %s\n", index, dev_name(&urb->dev->dev));
-+#endif
-
- /* all interfaces should be owned by usbip driver, so just reset it. */
- ret = usb_lock_device_for_reset(urb->dev, NULL);
-@@ -187,7 +195,11 @@ static int tweak_reset_device_cmd(struct
- }
-
- /* try to reset the device */
-- ret = usb_reset_composite_device(urb->dev, NULL);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
-+ ret = usb_reset_composite_device(urb->dev, NULL);
-+#else
-+ ret = usb_reset_device(urb->dev);
-+#endif
- if (ret < 0)
- uerr("device reset\n");
-
---- a/drivers/head/usbip_common.c
-+++ b/drivers/head/usbip_common.c
-@@ -55,10 +55,7 @@ static ssize_t show_flag(struct device *
- static ssize_t store_flag(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count)
- {
-- unsigned long flag;
--
-- sscanf(buf, "%lx", &flag);
-- usbip_debug_flag = flag;
-+ sscanf(buf, "%lx", &usbip_debug_flag);
-
- return count;
- }
-@@ -390,7 +387,7 @@ int usbip_thread(void *param)
- unlock_kernel();
-
- /* srv.rb must wait for rx_thread starting */
-- complete(&ut->thread_done);
-+ complete(&ut->thread_started);
-
- /* start of while loop */
- ut->loop_ops(ut);
-@@ -403,15 +400,21 @@ int usbip_thread(void *param)
-
- void usbip_start_threads(struct usbip_device *ud)
- {
-+
- /*
- * threads are invoked per one device (per one connection).
- */
-+ INIT_COMPLETION(ud->tcp_rx.thread_started);
-+ INIT_COMPLETION(ud->tcp_tx.thread_started);
-+ INIT_COMPLETION(ud->tcp_rx.thread_done);
-+ INIT_COMPLETION(ud->tcp_tx.thread_done);
-+
- kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_rx, 0);
- kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_tx, 0);
-
- /* confirm threads are starting */
-- wait_for_completion(&ud->tcp_rx.thread_done);
-- wait_for_completion(&ud->tcp_tx.thread_done);
-+ wait_for_completion(&ud->tcp_rx.thread_started);
-+ wait_for_completion(&ud->tcp_tx.thread_started);
- }
- EXPORT_SYMBOL(usbip_start_threads);
-
-@@ -436,6 +439,7 @@ void usbip_task_init(struct usbip_task *
- void (*loop_ops)(struct usbip_task *))
- {
- ut->thread = NULL;
-+ init_completion(&ut->thread_started);
- init_completion(&ut->thread_done);
- ut->name = name;
- ut->loop_ops = loop_ops;
---- a/drivers/head/usbip_event.c
-+++ b/drivers/head/usbip_event.c
-@@ -38,7 +38,7 @@ void usbip_start_eh(struct usbip_device
-
- kernel_thread((int(*)(void *)) usbip_thread, (void *) eh, 0);
-
-- wait_for_completion(&eh->thread_done);
-+ wait_for_completion(&eh->thread_started);
- }
- EXPORT_SYMBOL(usbip_start_eh);
-
---- a/drivers/head/vhci_hcd.c
-+++ b/drivers/head/vhci_hcd.c
-@@ -58,7 +58,7 @@ static void vhci_stop(struct usb_hcd *hc
- static int vhci_get_frame_number(struct usb_hcd *hcd);
-
- static const char driver_name[] = "vhci_hcd";
--static const char driver_desc[] = "USB/IP Virtual Host Contoroller";
-+static const char driver_desc[] = "USB/IP Virtual Host Controller";
-
-
-
-@@ -416,14 +416,6 @@ static int vhci_hub_control(struct usb_h
- case USB_PORT_FEAT_SUSPEND:
- dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_SUSPEND\n");
- uerr(" not yet\n");
--#if 0
-- dum->port_status[rhport] |= (1 << USB_PORT_FEAT_SUSPEND);
-- if (dum->driver->suspend) {
-- spin_unlock (&dum->lock);
-- dum->driver->suspend (&dum->gadget);
-- spin_lock (&dum->lock);
-- }
--#endif
- break;
- case USB_PORT_FEAT_RESET:
- dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_RESET\n");
-@@ -432,12 +424,6 @@ static int vhci_hub_control(struct usb_h
- dum->port_status[rhport] &= ~(USB_PORT_STAT_ENABLE
- | USB_PORT_STAT_LOW_SPEED
- | USB_PORT_STAT_HIGH_SPEED);
--#if 0
-- if (dum->driver) {
-- dev_dbg (hardware, "disconnect\n");
-- stop_activity (dum, dum->driver);
-- }
--#endif
-
- /* FIXME test that code path! */
- }
-@@ -1060,7 +1046,7 @@ static int vhci_hcd_probe(struct platfor
- struct usb_hcd *hcd;
- int ret;
-
-- uinfo("proving...\n");
-+ uinfo("probing...\n");
-
- dbg_vhci_hc("name %s id %d\n", pdev->name, pdev->id);
-
-@@ -1076,7 +1062,11 @@ static int vhci_hcd_probe(struct platfor
- * Allocate and initialize hcd.
- * Our private data is also allocated automatically.
- */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, pdev->dev.bus_id);
-+#else
-+ hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, dev_name(&pdev->dev));
-+#endif
- if (!hcd) {
- uerr("create hcd failed\n");
- return -ENOMEM;
---- a/drivers/head/vhci_sysfs.c
-+++ b/drivers/head/vhci_sysfs.c
-@@ -123,7 +123,11 @@ static ssize_t show_status(struct device
- out += sprintf(out, "%03u %08x ",
- vdev->speed, vdev->devid);
- out += sprintf(out, "%16p ", vdev->ud.tcp_socket);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- out += sprintf(out, "%s", vdev->udev->dev.bus_id);
-+#else
-+ out += sprintf(out, "%s", dev_name(&vdev->udev->dev));
-+#endif
-
- } else
- out += sprintf(out, "000 000 000 0000000000000000 0-0");
---- a/drivers/head/usbip_common.h
-+++ b/drivers/head/usbip_common.h
-@@ -300,6 +300,7 @@ struct usbip_device;
-
- struct usbip_task {
- struct task_struct *thread;
-+ struct completion thread_started;
- struct completion thread_done;
- char *name;
- void (*loop_ops)(struct usbip_task *);
--- /dev/null
+----------------------------------------------------------------------
+
+LINKING EXCEPTION
+
+ In addition to the permissions in the GNU General Public License,
+ the authors give you unlimited permission to link the compiled
+ version of this library into combinations with other programs,
+ and to distribute those combinations without any restriction
+ coming from the use of this file. (The General Public License
+ restrictions do apply in other respects; for example, they cover
+ modification of the file, and distribution when not linked into
+ a combined executable.)
+
+----------------------------------------------------------------------
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=uwsgi-cgi
+PKG_VERSION:=2.0.17.1
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/unbit/uwsgi
+PKG_SOURCE_DATE:=2018-07-08
+PKG_SOURCE_VERSION:=4b3e9621c0a3eb2aacf937b8e84e67b23b20490b
+PKG_MIRROR_HASH:=a843909ad5e8c36b86392d99c8bd411a84c14ad51993ba63638180212c7819e2
+
+PKG_LICENSE:=GPL2 + linking exception
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(TOPDIR)/feeds/packages/lang/python/python-package.mk
+
+define Package/uwsgi-cgi
+ SECTION:=net
+ CATEGORY:=Network
+ SUBMENU:=Web Servers/Proxies
+ TITLE:=The uWSGI server
+ URL:=http://unbit.com/
+ DEPENDS:=+libcap +libopenssl +libpcre +jansson +libuuid +libxml2
+endef
+
+define Package/uwsgi-cgi-luci-support
+ SECTION:=net
+ CATEGORY:=Network
+ SUBMENU:=Web Servers/Proxies
+ TITLE:=Support files for LuCI on Nginx
+ URL:=http://unbit.com/
+ DEPENDS:=+uwsgi-cgi
+endef
+
+define Package/uwsgi-cgi/description
+ The uWSGI project build with cgi profile
+endef
+
+MAKE_VARS+=\
+ CPP=$(TARGET_CROSS)cpp
+
+define Build/Compile
+ $(call Build/Compile/Default,PROFILE=cgi)
+endef
+
+define Package/uwsgi-cgi/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/uwsgi $(1)/usr/sbin/
+endef
+
+define Package/uwsgi-cgi-luci-support/install
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files-luci-support/uwsgi.init $(1)/etc/init.d/uwsgi
+ $(INSTALL_DIR) $(1)/etc/uwsgi
+ $(INSTALL_BIN) ./files-luci-support/uwsgi.conf $(1)/etc/uwsgi/uwsgi.conf
+ $(INSTALL_DIR) $(1)/etc/nginx
+endef
+
+$(eval $(call BuildPackage,uwsgi-cgi))
+$(eval $(call BuildPackage,uwsgi-cgi-luci-support))
--- /dev/null
+[uwsgi]
+stric = True
+uwsgi_modifier1 = 9
+socket = /var/run/uwsgi.sock
+cgi-mode = true
+cgi = /www/cgi-bin/luci
+chdir = /usr/lib/lua/luci/
+master = True
+buffer-size = 10000
+reload-mercy=8
+max-requests=2000
+limit-as=200
+reload-on-as=256
+reload-on-rss=192
+no-orphans=True
+vacuum=True
+enable-threads=True
+post-buffering=8192
+socket-timeout=120
+thunder-lock = True
+logger = syslog:uwsgi
+daemonize = True
+disable-logging = True
+log-format = %(addr) %(method) %(uri) => generated %(rsize) bytes in %(msecs) msecs
+pidfile=/var/run/uwsgi.pid
+die-on-term=True
+fork-socket=True
+pcre-jit=True
\ No newline at end of file
--- /dev/null
+#!/bin/sh /etc/rc.common
+
+START=79
+
+start() {
+ core_number=$(grep -c ^processor /proc/cpuinfo)
+ /usr/sbin/uwsgi --ini /etc/uwsgi/uwsgi.conf --threads $core_number --processes $(($core_number * 2))
+ logger -ts "Uwsgi" "Starting Uwsgi process"
+}
+
+stop() {
+ pidfile="/var/run/uwsgi.pid"
+ if [ -n "$(pgrep uwsgi)" ]; then
+ if [ -f $pidfile ]; then
+ logger -t "Uwsgi" "Stopping Uwsgi process"
+ kill $( cat $pidfile )
+ else
+ for pid in $(pgrep uwsgi); do
+ if [ -n "$(pgrep uwsgi)" ]; then
+ #Keep trying to kill until the master process is found
+ kill -KILL $pid
+ fi
+ done
+ fi
+ else
+ logger -t "Uwsgi" "Uwsgi not running!"
+ fi
+}
+
+reload() {
+ /usr/sbin/uwsgi --reload /var/run/uwsgi.pid
+}
+
+
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=4199e2ad11a036f4289f5ad42a8b0fe518f2b5ff77447f4c366dbcf3f23e91d5
+PKG_MIRROR_HASH:=412ced9e59677532cde388cf329ccbe8c3dbdd505855f1ef298af9894fd6561c
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/uoaerg/wavemon.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ziahamza/webui-aria2
+PKG_MIRROR_HASH:=b6f78aebcb530778b28c681e5573319c0293b349f16978b685d4e8d34076e9bf
PKG_SOURCE_VERSION:=d1ce5b992680f4d03eeee899ed8280cbcab8961a
PKG_LICENSE:=MIT
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/binux/yaaw.git
+PKG_MIRROR_HASH:=698b176cbee67c37cb095d0d07158b917de4191a2ab3fc766c6e8378a6d52110
PKG_SOURCE_VERSION:=d3a8346c5b9c2c1875dc79e1db2533b584fc8def
PKG_LICENSE:=LGPL-3.0
PKG_NAME:=fdk-aac
PKG_VERSION:=0.1.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=Fraunhofer-FDK-AAC-for-Android
PKG_LICENSE_FILES:=NOTICE
-
PKG_SOURCE_URL=https://codeload.github.com/mstorsjo/fdk-aac/tar.gz/v$(PKG_VERSION)?
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=adbcd793e406e1b88b3c1c41382d49f8c27371485b823c0fdab69c9124fd2ce3
PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
PKG_CONFIG_DEPENDS:= CONFIG_FDK-AAC_OPTIMIZE_SPEED
define Package/fdk-aac/install
$(INSTALL_DIR) $(1)/usr/lib/
- $(CP) $(PKG_BUILD_DIR)/.libs/*.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdk-aac.so* $(1)/usr/lib/
endef
define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include/fdk-aac
- $(CP) $(PKG_BUILD_DIR)/libAACdec/include/aacdecoder_lib.h $(1)/usr/include/fdk-aac
- $(CP) $(PKG_BUILD_DIR)/libAACenc/include/aacenc_lib.h $(1)/usr/include/fdk-aac
- $(CP) $(PKG_BUILD_DIR)/libSYS/include/FDK_audio.h $(1)/usr/include/fdk-aac
- $(CP) $(PKG_BUILD_DIR)/libSYS/include/genericStds.h $(1)/usr/include/fdk-aac
- $(CP) $(PKG_BUILD_DIR)/libSYS/include/machine_type.h $(1)/usr/include/fdk-aac
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/fdk-aac $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib/
- $(CP) $(PKG_BUILD_DIR)/.libs/*.{la,so*} $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdk-aac.{la,so*} $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fdk-aac.pc $(1)/usr/lib/pkgconfig/
endef
$(eval $(call BuildPackage,fdk-aac))
--- /dev/null
+From a50eecf65b5ce5d4f03768c5c2cb4b492d2badad Mon Sep 17 00:00:00 2001
+From: Martin Storsjo <martin@martin.st>
+Date: Fri, 4 May 2018 12:46:44 +0300
+Subject: [PATCH] Fix overflows in accumulation, fixing crashes
+
+This fixes github issue #83.
+---
+ libSBRenc/src/tran_det.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libSBRenc/src/tran_det.cpp b/libSBRenc/src/tran_det.cpp
+index 0e35ec3..51d6efe 100644
+--- a/libSBRenc/src/tran_det.cpp
++++ b/libSBRenc/src/tran_det.cpp
+@@ -256,12 +256,12 @@ static FIXP_DBL addLowbandEnergies(FIXP_DBL **Energies,
+ /* freqBandTable[LORES] has MAX_FREQ_COEFFS/2 +1 coeefs max. */
+ for (ts=tran_offdiv2; ts<YBufferWriteOffset; ts++) {
+ for (k = 0; k < freqBandTable[0]; k++) {
+- accu1 += Energies[ts][k] >> 6;
++ accu1 = fAddSaturate(accu1, Energies[ts][k] >> 6);
+ }
+ }
+ for (; ts<tran_offdiv2+(slots>>nrgSzShift); ts++) {
+ for (k = 0; k < freqBandTable[0]; k++) {
+- accu2 += Energies[ts][k] >> 9;
++ accu2 = fAddSaturate(accu2, Energies[ts][k] >> 9);
+ }
+ }
+
include $(TOPDIR)/rules.mk
PKG_NAME:=forked-daapd
-PKG_VERSION:=25.0
+PKG_VERSION:=26.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/ejurgensen/$(PKG_NAME)/releases/download/$(PKG_VERSION)/
-PKG_HASH:=5741a64d8f54e11e89dfa2fbfae693b2837e1e19a0c4980a20f8ff56bce4456e
+PKG_HASH:=dec7a6b5879c43726ceeb40cb16b77f7bb3148ab4e0afec0947629b11f302720
-PKG_BUILD_DEPENDS:=gperf/host
PKG_FIXUP:=autoreconf
PKG_USE_MIPS16:=0
PKG_INSTALL:=1
DEPENDS:=+libgpg-error +libgcrypt +libgdbm +zlib +libexpat +libunistring \
+libevent2 +libdaemon +libantlr3c +confuse +alsa-lib +libffmpeg-full \
+mxml +libavahi-client +sqlite3-cli +libplist +libcurl +libjson-c \
- +libprotobuf-c +libgnutls +libsodium $(ICONV_DEPENDS)
+ +libprotobuf-c +libgnutls +libsodium +libwebsockets $(ICONV_DEPENDS)
endef
define Package/forked-daapd/description
--enable-chromecast \
--enable-verification \
--disable-spotify \
+ --with-libplist \
+ --with-libwebsockets \
+ --with-alsa \
--without-pulseaudio \
--without-libevent_pthreads
+++ /dev/null
-From 1b8adc11edec48a9b8fcb75b9efdaf618a6744bd Mon Sep 17 00:00:00 2001
-From: ejurgensen <espenjurgensen@gmail.com>
-Date: Fri, 25 Aug 2017 19:27:41 +0200
-Subject: [PATCH] [dmap] Use a wrapper for dmap_find_field() Avoids the need to
- have definition of dmap_find_field in dmap_common.h that must be kept in sync
- with the definition that gperf generates.
-
-Also should fix compilation problems when gperf is not present, ref pr #390
----
- configure.ac | 21 ---------------------
- src/dmap_common.c | 6 ++++++
- src/dmap_common.h | 4 +---
- src/httpd_daap.c | 2 +-
- 4 files changed, 8 insertions(+), 25 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9b149be..9819c82 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -32,27 +32,6 @@ to install it.]])],
- [AC_MSG_ERROR([[GNU gperf required, please install it.]])])
- ])
-
--GPERF_TEST="$(echo foo,bar | ${GPERF} -L ANSI-C)"
--
--AC_COMPILE_IFELSE(
-- [AC_LANG_PROGRAM([
-- #include <string.h>
-- const char * in_word_set(const char *, size_t);
-- $GPERF_TEST]
-- )],
-- [GPERF_LEN_TYPE=size_t],
-- [AC_COMPILE_IFELSE(
-- [AC_LANG_PROGRAM([
-- #include <string.h>
-- const char * in_word_set(const char *, unsigned);
-- $GPERF_TEST]
-- )],
-- [GPERF_LEN_TYPE=unsigned],
-- [AC_MSG_ERROR([** unable to determine gperf len type])]
-- )]
--)
--
--AC_DEFINE_UNQUOTED([GPERF_LEN_TYPE], [$GPERF_LEN_TYPE], [gperf len type])
- AC_PATH_PROG([ANTLR], [[antlr3]])
- AS_IF([[test -z "$ANTLR"]],
- [AS_IF([[test -f "$srcdir/src/SMARTPLLexer.h"]],
-diff --git a/src/dmap_common.c b/src/dmap_common.c
-index 250a2d1..b2bc362 100644
---- a/src/dmap_common.c
-+++ b/src/dmap_common.c
-@@ -42,6 +42,12 @@ dmap_get_fields_table(int *nfields)
- return dmap_fields;
- }
-
-+// This wrapper is so callers don't need to include dmap_fields_hash.h
-+const struct dmap_field *
-+dmap_find_field_wrapper(const char *str, int len)
-+{
-+ return dmap_find_field(str, len);
-+}
-
- void
- dmap_add_container(struct evbuffer *evbuf, const char *tag, int len)
-diff --git a/src/dmap_common.h b/src/dmap_common.h
-index 93a2bdc..73f72d0 100644
---- a/src/dmap_common.h
-+++ b/src/dmap_common.h
-@@ -2,7 +2,6 @@
- #ifndef __DMAP_HELPERS_H__
- #define __DMAP_HELPERS_H__
-
--#include "config.h"
- #include <event2/buffer.h>
- #include <event2/http.h>
-
-@@ -45,9 +44,8 @@ extern const struct dmap_field_map dfm_dmap_aeSP;
- const struct dmap_field *
- dmap_get_fields_table(int *nfields);
-
--/* From dmap_fields.gperf - keep in sync, don't alter */
- const struct dmap_field *
--dmap_find_field (register const char *str, register GPERF_LEN_TYPE len);
-+dmap_find_field_wrapper(const char *str, int len);
-
-
- void
-diff --git a/src/httpd_daap.c b/src/httpd_daap.c
-index aef2fe0..0564275 100644
---- a/src/httpd_daap.c
-+++ b/src/httpd_daap.c
-@@ -738,7 +738,7 @@ parse_meta(struct evhttp_request *req, char *tag, const char *param, const struc
-
- if (n == i)
- {
-- meta[i] = dmap_find_field(field, strlen(field));
-+ meta[i] = dmap_find_field_wrapper(field, strlen(field));
-
- if (!meta[i])
- {
---
-2.7.4
-
include $(TOPDIR)/rules.mk
PKG_NAME:=pulseaudio
-PKG_VERSION:=11.1
-PKG_RELEASE:=2
+PKG_VERSION:=12.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://freedesktop.org/software/pulseaudio/releases/
-PKG_HASH:=f2521c525a77166189e3cb9169f75c2ee2b82fa3fcf9476024fbc2c3a6c9cd9e
+PKG_HASH:=6e422dbdc9fd11c0cb6af869e5eda73dc24a8be3c14725440edd51ce6b464444
PKG_LICENSE:=LGPL-2.1+
PKG_LICENSE_FILES:=GPL LICENSE
+PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=intltool/host
PKG_FIXUP:=autoreconf
include $(TOPDIR)/rules.mk
PKG_NAME:=acpid
-PKG_VERSION:=2.0.28
+PKG_VERSION:=2.0.29
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@SF/acpid2
-PKG_HASH:=980c3a54b0d3f2fd49fd845a0584c5c2abeaab9e9ac09fcbb68686bbb57a7110
+PKG_SOURCE_URL:=@SF/acpid2
+PKG_HASH:=58503b27975c466e627eb741c5453dd662f97edef1a3d0aac822fd03a84203ff
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
CATEGORY:=Utilities
TITLE:=The ACPI Daemon (acpid) With Netlink Support
URL:=http://tedfelix.com/linux/acpid-netlink.html
- DEPENDS:=@(TARGET_x86||TARGET_x86_64) +kmod-input-evdev
+ DEPENDS:=+kmod-input-evdev
endef
define Package/acpid/description
include $(TOPDIR)/rules.mk
PKG_NAME:=bandwidthd
-PKG_VERSION:=2.0.1-34
+PKG_VERSION:=2.0.1-35
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/NethServer/bandwidthd/archive/$(PKG_VERSION)
-PKG_HASH:=41803a202956ae99b095f98ce92e5637dad62d25509ccd5cff9a8913626a4226
+PKG_SOURCE_URL:=https://codeload.github.com/NethServer/bandwidthd/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=75f526d9e81c5a543accbb9e197b6b582c293aa20d6cdfc8be5cef43046981c5
PKG_MAINTAINER:=Jean-Michel Lacroix <lacroix@lepine-lacroix.info>
PKG_NAME:=bluez
PKG_VERSION:=5.49
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/bluetooth/
--- /dev/null
+diff --git a/src/bluetooth.conf b/src/bluetooth.conf
+index 0c0b221..013cf97 100644
+--- a/src/bluetooth.conf
++++ b/src/bluetooth.conf
+@@ -26,10 +26,10 @@
+ </policy>
+
+ <!-- allow users of lp group (printing subsystem) to
+- communicate with bluetoothd -->
++ communicate with bluetoothd
+ <policy group="lp">
+ <allow send_destination="org.bluez"/>
+- </policy>
++ </policy> -->
+
+ <policy context="default">
+ <deny send_destination="org.bluez"/>
PKG_NAME:=collectd
PKG_VERSION:=5.8.0
-PKG_RELEASE:=5
+PKG_RELEASE:=6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://collectd.org/files/ \
STOP=10
USE_PROCD=1
+NICEPRIO=5
start_service() {
mkdir -m 0755 -p /var/lib/collectd
procd_open_instance
procd_set_param command /usr/sbin/collectd -f
+ procd_set_param nice "$NICEPRIO"
procd_close_instance
}
include $(TOPDIR)/rules.mk
+PKG_SOURCE_VERSION:=8bd996400d087028ba56b724abc1f5b378eaa77f
+
PKG_NAME:=crconf
-PKG_VERSION:=pre2
+PKG_VERSION:=pre2-$(PKG_SOURCE_VERSION)
PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/crconf
-PKG_HASH:=15d39b599acda93a50f473190e702d593ba13613b6ed31711f3584b5726b81b8
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://git.code.sf.net/p/crconf/code
+PKG_MIRROR_HASH:=f772306c0b005c18f481b73e3be193dba5ebb9f6f3bf20cb3f67c4a80dac0613
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
include $(TOPDIR)/rules.mk
PKG_NAME:=cryptsetup
-PKG_VERSION:=1.7.5
+PKG_VERSION:=2.0.3
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0+ LGPL-2.1+
PKG_LICENSE_FILES:=COPYING COPYING.LGPL
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v1.7
-PKG_HASH:=2b30cd1d0dd606a53ac77b406e1d37798d4b0762fa89de6ea546201906a251bd
+PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v2.0
+PKG_HASH:=4d6cca04c1f5ff4a68d045d190efb2623087eda0274ded92f92a4b6911e501d4
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
CATEGORY:=Utilities
SUBMENU:=Encryption
TITLE:=Cryptsetup
- DEPENDS:=+libblkid +libuuid +libpopt +lvm2 +libdevmapper +@KERNEL_DIRECT_IO
+ DEPENDS:=+libblkid +libuuid +libpopt +lvm2 +libdevmapper +libjson-c +@KERNEL_DIRECT_IO
URL:=http://code.google.com/p/cryptsetup/
endef
define Package/cryptsetup/install
$(INSTALL_DIR) $(1)/usr/sbin
- $(CP) $(PKG_BUILD_DIR)/src/.libs/cryptsetup $(1)/usr/sbin
+ $(CP) $(PKG_BUILD_DIR)/.libs/cryptsetup $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_BUILD_DIR)/lib/.libs/libcryptsetup.so* $(1)/usr/lib
+ $(CP) $(PKG_BUILD_DIR)/.libs/libcryptsetup.so* $(1)/usr/lib
endef
Package/cryptsetup-openssl/install = $(Package/cryptsetup/install)
include $(TOPDIR)/rules.mk
-# Make sure to also update the dbus-x package
PKG_NAME:=dbus
-PKG_VERSION:=1.10.4
+PKG_VERSION:=1.12.8
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://dbus.freedesktop.org/releases/dbus/
-PKG_HASH:=ad7dcad73ad9b0ff55819985d354eacfffe07e2eb8c763e155efc21d6001084b
+PKG_SOURCE_URL:=https://dbus.freedesktop.org/releases/dbus/
+PKG_HASH:=e2dc99e7338303393b6663a98320aba6a63421bcdaaf571c8022f815e5896eb3
PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
PKG_LICENSE:=AFL-2.1
PKG_BUILD_PARALLEL:=1
-PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
-TARGET_LDFLAGS+= \
- -Wl,-rpath-link=$(STAGING_DIR)/usr/lib \
-
define Package/dbus/Default
SECTION:=utils
CATEGORY:=Utilities
define Package/dbus-utils
$(call Package/dbus/Default)
TITLE+= (utilities)
- DEPENDS:= dbus
+ DEPENDS:= +dbus
endef
define Package/dbus-utils/Description
This package contains D-Bus utilities.
endef
-
-define Build/Prepare
- $(Build/Prepare/Default)
- $(SED) 's/-Wl,--gc-sections/--gc-sections/' $(PKG_BUILD_DIR)/configure
-endef
-
CONFIGURE_ARGS += \
+ --disable-maintainer-mode \
+ --disable-developer \
+ --enable-debug=no \
--enable-shared \
- --enable-static \
- --disable-abstract-sockets \
- --disable-ansi \
+ --disable-static \
+ --disable-verbose-mode \
--disable-asserts \
- --disable-console-owner-file \
+ --disable-xml-docs \
--disable-doxygen-docs \
- --disable-compiler_coverage \
+ --disable-ducktype-docs \
--disable-selinux \
+ --disable-apparmor \
+ --disable-libaudit \
+ --enable-inotify \
+ --disable-kqueue \
+ --disable-console-owner-file \
+ --disable-systemd \
--disable-tests \
- --disable-verbose-mode \
- --disable-xml-docs \
- --with-xml="expat" \
+ --disable-code-coverage \
+ --disable-x11-autolaunch \
+ --with-session-socket-dir=/tmp \
+ --with-system-socket=/var/run/dbus/system_bus_socket \
+ --with-system-pid-file=/var/run/dbus.pid \
--with-dbus-user=root \
- --with-dbus-daemondir="/usr/sbin" \
- --with-system-socket="/var/run/dbus/system_bus_socket" \
- --with-system-pid-file="/var/run/dbus.pid" \
- --without-x \
- --libexecdir=/usr/lib/dbus-1
-
-CONFIGURE_VARS+= \
- ac_cv_have_abstract_sockets="yes" \
- ac_cv_lib_expat_XML_ParserCreate_MM="yes" \
+ --without-x
HOST_CONFIGURE_ARGS+= \
+ --disable-maintainer-mode \
+ --disable-developer \
+ --enable-debug=no \
--enable-shared \
- --enable-static \
- --disable-abstract-sockets \
- --disable-ansi \
+ --disable-static \
+ --disable-verbose-mode \
--disable-asserts \
- --disable-console-owner-file \
- --disable-docygen-docs \
- --disable-compiler_coverage \
+ --disable-xml-docs \
+ --disable-doxygen-docs \
+ --disable-ducktype-docs \
--disable-selinux \
+ --disable-apparmor \
+ --disable-libaudit \
+ --enable-inotify \
+ --disable-kqueue \
+ --disable-console-owner-file \
+ --disable-systemd \
--disable-tests \
- --disable-verbose-mode \
- --disable-xml-docs \
- --with-dbus-user=root \
- --with-dbus-daemondir="$(STAGING_DIR_HOSTPKG)/bin" \
+ --disable-code-coverage \
+ --disable-x11-autolaunch \
--with-system-socket="$(STAGING_DIR_HOSTPKG)/var/run/dbus/system_bus_socket" \
--with-system-pid-file="$(STAGING_DIR_HOSTPKG)/var/run/dbus.pid" \
- --without-x \
- --libexecdir="$(STAGING_DIR_HOSTPKG)/lib/dbus-1"
-
-HOST_CONFIGURE_VARS+= \
- ac_cv_have_abstract_sockets="yes" \
- ac_cv_lib_expat_XML_ParserCreate_MM="yes" \
+ --with-dbus-daemondir="$(STAGING_DIR_HOSTPKG)/bin" \
+ --without-x
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/include/dbus-1.0 \
- $(1)/usr/include/
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/dbus-1.0 $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib/dbus-1.0/include/dbus/
$(INSTALL_DATA) \
$(PKG_INSTALL_DIR)/usr/lib/dbus-1.0/include/dbus/*.h \
$(1)/usr/lib/dbus-1.0/include/dbus/
-
$(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_DATA) \
- $(PKG_INSTALL_DIR)/usr/lib/libdbus-1.{so*,la,a} \
- $(1)/usr/lib/
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/lib/dbus-1.0 \
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libdbus-1.{so*,la} \
$(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/dbus-1.0 $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(INSTALL_DATA) \
- $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/dbus-1.pc \
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/dbus-1.pc \
$(1)/usr/lib/pkgconfig/
endef
-define Package/dbus/conffiles
-/etc/dbus-1/session.conf
-/etc/dbus-1/system.conf
-endef
-
define Package/libdbus/install
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/lib/libdbus-1.so.* \
- $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdbus-1.so.* $(1)/usr/lib/
endef
define Package/dbus/install
- $(INSTALL_DIR) $(1)/usr/share
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/share/dbus-1 \
- $(1)/usr/share/
-
- $(INSTALL_DIR) $(1)/usr/lib/dbus-1
- $(INSTALL_BIN) \
- $(PKG_INSTALL_DIR)/usr/lib/dbus-1/dbus-daemon-launch-helper \
- $(1)/usr/lib/dbus-1/
-
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) \
- $(PKG_INSTALL_DIR)/usr/sbin/dbus-daemon \
- $(1)/usr/sbin/
-
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) \
- $(PKG_INSTALL_DIR)/usr/bin/dbus-uuidgen \
- $(1)/usr/bin/
-
- $(INSTALL_BIN) \
- $(PKG_INSTALL_DIR)/usr/bin/dbus-launch \
- $(1)/usr/bin/dbus-launch.real
- $(INSTALL_BIN) \
- ./files/dbus-launch \
- $(1)/usr/bin/
-
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-cleanup-sockets $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-daemon $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-launch $(1)/usr/bin/dbus-launch.real
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-uuidgen $(1)/usr/bin/
+ $(INSTALL_BIN) ./files/dbus-launch $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/dbus-daemon-launch-helper $(1)/usr/lib/
$(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) \
- ./files/dbus.init \
- $(1)/etc/init.d/dbus
+ $(INSTALL_BIN) ./files/dbus.init $(1)/etc/init.d/dbus
+ $(INSTALL_DIR) $(1)/usr/share/dbus-1
+ $(CP) $(PKG_INSTALL_DIR)/usr/share/dbus-1 $(1)/usr/share/
endef
define Package/dbus-utils/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) \
- $(PKG_INSTALL_DIR)/usr/bin/dbus-{send,monitor,cleanup-sockets} \
- $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-{monitor,send,update-activation-environment} $(1)/usr/bin/
endef
$(eval $(call HostBuild))
mkdir -m 0755 -p /var/lib/dbus
mkdir -m 0755 -p /var/run/dbus
[ -x /usr/bin/dbus-uuidgen ] && /usr/bin/dbus-uuidgen --ensure
- service_start /usr/sbin/dbus-daemon --system
+ service_start /usr/bin/dbus-daemon --system
}
stop() {
- service_stop /usr/sbin/dbus-daemon && rm $SERVICE_PID_FILE
+ service_stop /usr/bin/dbus-daemon
}
+++ /dev/null
-Index: dbus-1.9.4/tools/tool-common.c
-===================================================================
---- dbus-1.9.4.orig/tools/tool-common.c
-+++ dbus-1.9.4/tools/tool-common.c
-@@ -29,6 +29,8 @@
- #include <string.h>
- #include <time.h>
-
-+#include <sys/select.h>
-+
- #ifdef DBUS_WIN
- #include <windows.h>
- #endif
include $(TOPDIR)/rules.mk
PKG_NAME:=domoticz
-PKG_VERSION_MAJOR:=3
-PKG_VERSION_PATCH:=8153
+PKG_VERSION_MAJOR:=4
+PKG_VERSION_PATCH:=9700
+PKG_COMMIT:=
PKG_VERSION:=$(PKG_VERSION_MAJOR).$(PKG_VERSION_PATCH)
-PKG_RELEASE:=3
+PKG_RELEASE:=1
+ifeq ($(PKG_COMMIT),)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_VERSION)/$(PKG_SOURCE)
-PKG_HASH:=5ea8f37f2ef900e9bd17b1b5375e75bfdec4f09001e3e2e0b647a260989d014c
+else
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_COMMIT).tar.gz
+PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_COMMIT)/$(PKG_SOURCE)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_COMMIT)
+endif
+PKG_HASH:=c31f185a1ffac01b86a77bf33e059a4403d814e826c9d6639c63c2e9afa55a46
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=License.txt
+PKG_BUILD_DEPENDS:=python3
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
-DUSE_STATIC_BOOST=no \
-DUSE_STATIC_LIBSTDCXX=no \
-DUSE_STATIC_OPENZWAVE=no \
- -DUSE_PYTHON=no
+ -DUSE_OPENSSL_STATIC=no \
+ -DUSE_PYTHON=yes \
+ -DWITH_LIBUSB=no
-TARGET_CXXFLAGS+=-DWITH_GPIO
+TARGET_CFLAGS+=-flto
+TARGET_CXXFLAGS+=-DWITH_GPIO -flto
define Build/Prepare
$(call Build/Prepare/Default)
- # Fix APPVERSION to suppress update popup
+ # Fix APPVERSION/APPDATE since we don't build from a git tree
sed -i 's/#define APPVERSION.*/#define APPVERSION $(PKG_VERSION_PATCH)/' \
$(PKG_BUILD_DIR)/appversion.default
+ COMMITDATE=`tar tvfz $(DL_DIR)/$(PKG_SOURCE) --full-time | sed 's/.* \(20..-..-.. ..:..:..\) domoticz-.*/\1/;q'`; \
+ COMMITTS=`date --date="$$$${COMMITDATE}" +%s`; \
+ sed -i "s/#define APPDATE.*/#define APPDATE $$$${COMMITTS}/" $(PKG_BUILD_DIR)/appversion.default
+ifneq ($(PKG_COMMIT),)
+ sed -i "s/#define APPHASH.*/#define APPHASH \"$(shell echo $(PKG_COMMIT) | cut -c1-8)\"/" $(PKG_BUILD_DIR)/appversion.default
+endif
# Remove unwanted scripts
cd $(PKG_BUILD_DIR)/scripts && rm -rf \
buienradar_rain_example.pl \
_domoticz_main* \
download_update.sh \
- dzVents/{.gitignore,documentation,examples,generated_scripts} \
+ dzVents/{.gitignore,documentation,examples,generated_scripts,data} \
dzVents/runtime/{integration-tests,misc/smoothing.xlsx,tests} \
logrotate/ \
lua_parsers/example* \
readme.txt \
restart_domoticz \
templates/All.Python \
- update_domoticz
+ update_domoticz \
+ domoticz.conf
# Remove *.md
cd $(PKG_BUILD_DIR) && $(FIND) -name '*.md' -delete
endef
define Package/domoticz/install
- $(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/tty $(1)/etc/init.d
+ $(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/tty $(1)/etc/init.d $(1)/etc/domoticz/plugins
$(INSTALL_BIN) ./files/domoticz.hotplug $(1)/etc/hotplug.d/tty/domoticz
$(INSTALL_BIN) ./files/domoticz.init $(1)/etc/init.d/domoticz
$(INSTALL_CONF) ./files/domoticz.config $(1)/etc/config/domoticz
$(INSTALL_DIR) $(1)/usr/share/domoticz $(1)/usr/bin
- $(CP) $(PKG_INSTALL_DIR)/usr/Config $(1)/usr/share/domoticz/openzwave
- $(CP) $(PKG_INSTALL_DIR)/usr/scripts $(1)/usr/share/domoticz/
+ $(CP) $(PKG_INSTALL_DIR)/usr/dzVents $(1)/usr/share/domoticz/dzVents
+ $(CP) $(PKG_INSTALL_DIR)/usr/Config $(1)/usr/share/domoticz/Config
+ $(CP) $(PKG_INSTALL_DIR)/usr/scripts $(1)/etc/domoticz/scripts
+ ln -sf /var/lib/domoticz/dzVents/generated_scripts $(1)/etc/domoticz/scripts/dzVents
+ ln -sf /var/lib/domoticz/dzVents/data $(1)/etc/domoticz/scripts/dzVents
$(CP) $(PKG_INSTALL_DIR)/usr/www $(1)/usr/share/domoticz/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/domoticz $(1)/usr/bin/domoticz
+ # compress static web content
+ find $(1)/usr/share/domoticz/www -name "*.css" -exec gzip -9 {} \;
+ find $(1)/usr/share/domoticz/www -name "*.js" -exec gzip -9 {} \;
+ gzip -9 $(1)/usr/share/domoticz/www/*.html
+ gzip -9 $(1)/usr/share/domoticz/www/secpanel/*.html
+ find $(1)/usr/share/domoticz/www/views -name "*.html" -exec sh -c 'grep -q "<\!--#embed" {} || gzip -9 {}' \;
endef
define Package/domoticz/conffiles
/etc/config/domoticz
/var/lib/domoticz/
+/etc/domoticz/
endef
$(eval $(call BuildPackage,domoticz))
# option sslcert '/path/to/ssl.crt'
# option sslkey '/path/to/ssl.key'
# option sslpass 'passphrase'
+ # option ssldhparam '/path/to/dhparam.pem'
option sslwww '0'
# CAUTION - by default, /var is not persistent accross reboots
# Don't forget the trailing / - domoticz requires it
chgrp domoticz "/dev/$DEVICENAME"
chmod g+rw "/dev/$DEVICENAME"
- [ -n "$symlink" ] && ln -s "/dev/$DEVICENAME" "/dev/$symlink"
+ [ -n "$symlink" ] && ln -sf "/dev/$DEVICENAME" "/dev/$symlink"
}
remove() {
config_get sslcert "$section" "sslcert"
config_get sslkey "$section" "sslkey"
config_get sslpass "$section" "sslpass"
+ config_get ssldhparam "$section" "ssldhparam"
config_get sslwww "$section" "sslwww"
config_get syslog "$section" "syslog"
- config_get userdata "$section" "userdata"
+ config_get userdata "$section" "userdata" userdata /var/lib/domoticz
[ -n "$loglevel" ] && procd_append_param command -loglevel "$loglevel"
[ -n "$syslog" ] && procd_append_param command -syslog "$syslog"
- [ -n "$userdata" ] && {
- mkdir -p "${userdata}/generated_scripts"
- chmod -R 0770 "$userdata"
- chown -R domoticz:domoticz "$userdata"
- procd_append_param command -userdata "$userdata"
+
+ [ -d "${userdata}" ] || {
+ mkdir -p "${userdata}"
+ chmod 0770 "$userdata"
+ chown domoticz:domoticz "$userdata"
}
+
+ # By default, ${userdata}/scripts is a symlink to /etc/domoticz/scripts
+ # and the two dzVents directories under there which Domoticz will actually
+ # write to at runtime are symlinked back to /var/lib again.
+ [ -d "${userdata}/plugins" ] || ln -sf /etc/domoticz/plugins "${userdata}/plugins"
+ [ -d "${userdata}/scripts" ] || ln -sf /etc/domoticz/scripts "${userdata}/scripts"
+ for DIR in data generated_scripts; do
+ [ -d /var/lib/domoticz/dzVents/$DIR ] || {
+ mkdir -p /var/lib/domoticz/dzVents/$DIR
+ chown domoticz.domoticz /var/lib/domoticz/dzVents/$DIR
+ }
+ done
+ procd_append_param command -userdata "$userdata"
+
[ -n "$sslcert" -a "${sslwww:-0}" -gt 0 ] && {
procd_append_param command -sslcert "$sslcert"
procd_append_param command -sslwww "$sslwww"
[ -n "$sslkey" ] && procd_append_param command -sslkey "$sslkey"
[ -n "$sslpass" ] && procd_append_param command -sslpass "$sslpass"
+ [ -n "$ssldhparam" ] && procd_append_param command -ssldhparam "$ssldhparam"
} || procd_append_param command -sslwww 0
}
procd_open_instance
procd_set_param command "$PROG"
- procd_append_param command -scripts /usr/share/domoticz/scripts/
- procd_append_param command -wwwroot /usr/share/domoticz/www/
+ procd_append_param command -noupdates
+ procd_append_param command -approot /usr/share/domoticz/
config_load "domoticz"
config_get_bool disabled "$section" "disabled" 0
+++ /dev/null
-From 11a29e071019645967ee748d410954ec5f73866f Mon Sep 17 00:00:00 2001
-From: Rob Peters <ROb@DVBControl.com>
-Date: Wed, 24 Jan 2018 12:03:24 +0100
-Subject: [PATCH] Make compatible with boost 1.66
-
----
- msbuild/domoticz.vcxproj | 2 +-
- webserver/proxyclient.cpp | 2 +-
- webserver/server.cpp | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/msbuild/domoticz.vcxproj b/msbuild/domoticz.vcxproj
-index e4aa595..1aa9e7a 100755
---- a/msbuild/domoticz.vcxproj
-+++ b/msbuild/domoticz.vcxproj
-@@ -58,7 +58,7 @@
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
-- <PreprocessorDefinitions>WIN32;ENABLE_PYTHON;_DEBUG;PTW32_STATIC_LIB;WITH_OPENZWAVE;OPENZWAVE_USEDLL;WWW_ENABLE_SSL;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+ <PreprocessorDefinitions>WIN32;ENABLE_PYTHON;_DEBUG;PTW32_STATIC_LIB;WITH_OPENZWAVE;OPENZWAVE_USEDLL;WWW_ENABLE_SSL;_CONSOLE;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>./Windows Libraries/Boost/boost_1_63_0;./libusb;../MQTT;..\hardware\openzwave;./Windows Libraries/openssl;./Windows Libraries/Curl;./Windows Libraries/pthread;../hardware/plugins/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <EnablePREfast>false</EnablePREfast>
-diff --git a/webserver/proxyclient.cpp b/webserver/proxyclient.cpp
-index 203ee61..efc9815 100644
---- a/webserver/proxyclient.cpp
-+++ b/webserver/proxyclient.cpp
-@@ -639,7 +639,7 @@ namespace http {
- void CProxyManager::StartThread()
- {
- try {
-- boost::asio::ssl::context ctx(io_service, boost::asio::ssl::context::sslv23);
-+ boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
- ctx.set_verify_mode(boost::asio::ssl::verify_none);
-
- proxyclient.reset(new CProxyClient(io_service, ctx, m_pWebEm));
-diff --git a/webserver/server.cpp b/webserver/server.cpp
-index 5255aa3..0c1af08 100644
---- a/webserver/server.cpp
-+++ b/webserver/server.cpp
-@@ -148,7 +148,7 @@ void server::handle_accept(const boost::system::error_code& e) {
- ssl_server::ssl_server(const ssl_server_settings & ssl_settings, request_handler & user_request_handler) :
- server_base(ssl_settings, user_request_handler),
- settings_(ssl_settings),
-- context_(io_service_, ssl_settings.get_ssl_method())
-+ context_(ssl_settings.get_ssl_method())
- {
- #ifdef DEBUG_WWW
- _log.Log(LOG_STATUS, "[web:%s] create ssl_server using ssl_server_settings : %s", ssl_settings.listening_port.c_str(), ssl_settings.to_string().c_str());
-@@ -161,7 +161,7 @@ ssl_server::ssl_server(const ssl_server_settings & ssl_settings, request_handler
- ssl_server::ssl_server(const server_settings & settings, request_handler & user_request_handler) :
- server_base(settings, user_request_handler),
- settings_(dynamic_cast<ssl_server_settings const &>(settings)),
-- context_(io_service_, dynamic_cast<ssl_server_settings const &>(settings).get_ssl_method()) {
-+ context_(dynamic_cast<ssl_server_settings const &>(settings).get_ssl_method()) {
- #ifdef DEBUG_WWW
- _log.Log(LOG_STATUS, "[web:%s] create ssl_server using server_settings : %s", settings.listening_port.c_str(), settings.to_string().c_str());
- #endif
---
-2.7.4
-
+++ /dev/null
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -645,8 +645,6 @@ else()
- target_link_libraries(domoticz -lrt ${Boost_LIBRARIES} ${ZLIB_LIBRARIES} ${CURL_LIBRARIES} pthread ${LUA_LIBRARIES} ${MQTT_LIBRARIES} ${SQLite_LIBRARIES} ${CMAKE_DL_LIBS} ${TELLDUS_LIBRARIES} ${EXECINFO_LIBRARIES})
- ENDIF()
-
--ADD_PRECOMPILED_HEADER(domoticz "main/stdafx.h")
--
- IF(CMAKE_COMPILER_IS_GNUCXX)
- option(USE_STATIC_LIBSTDCXX "Build with static libgcc/libstdc++ libraries" YES)
- IF(USE_STATIC_LIBSTDCXX)
+++ /dev/null
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -579,39 +579,6 @@ IF(OpenZWave)
- target_link_libraries(domoticz ${OpenZWave})
- include_directories(${CMAKE_SOURCE_DIR}/hardware/openzwave)
- add_definitions(-DWITH_OPENZWAVE)
-- # open-zwave needs libudev
-- IF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
-- set(IOKIT_LIBRARY "-framework IOKit -framework CoreFoundation" CACHE FILEPATH "IOKit framework" FORCE)
-- target_link_libraries(domoticz ${IOKIT_LIBRARY})
-- else()
-- IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
-- MESSAGE(STATUS "Building on FreeBSD, libudev not needed!")
-- FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
-- FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
-- IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
-- SET(ICONV_FOUND TRUE)
-- #target_link_libraries(domoticz ${ICONV_INCLUDE_DIR})
-- target_link_libraries(domoticz ${ICONV_LIBRARIES} -lrt)
-- message(STATUS ${ICONV_LIBRARIES})
-- else()
-- MESSAGE(FATAL_ERROR "libiconv not found on your system")
-- ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
-- else()
-- find_library(UDEV NAMES libudev.a)
-- IF(UDEV)
-- message(STATUS ${UDEV})
-- target_link_libraries(domoticz ${UDEV} -lrt -lresolv)
-- else()
-- find_library(UDEV NAMES libudev.so)
-- IF(UDEV)
-- message(STATUS ${UDEV})
-- target_link_libraries(domoticz ${UDEV} -lrt -lresolv)
-- else()
-- MESSAGE(FATAL_ERROR "LIB UDEV not found on your system, see install.txt how to get them installed.\nsudo apt-get install libudev-dev")
-- ENDIF(UDEV)
-- ENDIF(UDEV)
-- ENDIF()
-- ENDIF()
- else()
- MESSAGE(STATUS "==== OpenZWave not found, support disabled!")
- ENDIF(OpenZWave)
+++ /dev/null
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -521,20 +521,23 @@ else()
- MESSAGE(FATAL_ERROR "cURL not found on your system, see install.txt how to get them installed. (for example 'sudo apt-get install curl libcurl4-openssl-dev')")
- ENDIF(CURL_FOUND)
-
--find_path(LIBUSB_INCLUDE_DIR usb.h
-- HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
--find_library(LIBUSB_LIBRARY NAMES usb
-- HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
--set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
-+option(WITH_LIBUSB "Enable libusb support" NO)
-+ if(WITH_LIBUSB)
-+ find_path(LIBUSB_INCLUDE_DIR usb.h
-+ HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
-+ find_library(LIBUSB_LIBRARY NAMES usb
-+ HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
-+ set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
-
--find_package_handle_standard_args(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
--IF(LIBUSB_FOUND)
-- MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
-- add_definitions(-DWITH_LIBUSB)
-- target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
--else()
-- MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
--ENDIF(LIBUSB_FOUND)
-+ find_package_handle_standard_args(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
-+ IF(LIBUSB_FOUND)
-+ MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
-+ add_definitions(-DWITH_LIBUSB)
-+ target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
-+ else()
-+ MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
-+ ENDIF(LIBUSB_FOUND)
-+endif(WITH_LIBUSB)
-
- #
- # Find MD5/RMD160/SHA library
+++ /dev/null
-diff --git a/hardware/EvohomeScript.cpp b/hardware/EvohomeScript.cpp
-index 5258fc55..0a44e97c 100644
---- a/hardware/EvohomeScript.cpp
-+++ b/hardware/EvohomeScript.cpp
-@@ -30,7 +30,7 @@
-
- #include <string>
-
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
-
-
- CEvohomeScript::CEvohomeScript(const int ID)
-@@ -143,7 +143,7 @@ void CEvohomeScript::RunScript(const char *pdata, const unsigned char length)
- std::string scriptname = OnAction.substr(9);
- #if !defined WIN32
- if (scriptname.find("/") != 0)
-- scriptname = szUserDataFolder + "scripts/" + scriptname;
-+ scriptname = szScriptsFolder + "scripts/" + scriptname;
- #endif
- std::string scriptparams="";
- //Add parameters
-diff --git a/hardware/OpenZWave.cpp b/hardware/OpenZWave.cpp
-index 1f5c341c..24db61c9 100644
---- a/hardware/OpenZWave.cpp
-+++ b/hardware/OpenZWave.cpp
-@@ -948,7 +948,7 @@ bool COpenZWave::OpenSerialConnector()
-
- m_nodes.clear();
- m_bNeedSave = false;
-- std::string ConfigPath = szStartupFolder + "Config/";
-+ std::string ConfigPath = "/usr/share/domoticz/openzwave/";
- std::string UserPath = ConfigPath;
- if (szStartupFolder != szUserDataFolder)
- {
-diff --git a/main/EventSystem.cpp b/main/EventSystem.cpp
-index 4eff02fd..f2b17b97 100644
---- a/main/EventSystem.cpp
-+++ b/main/EventSystem.cpp
-@@ -33,9 +33,11 @@ extern "C" {
- #endif
- }
-
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- extern http::server::CWebServerHelper m_webservers;
-
-+static std::string dzv_Dir;
- static std::string m_printprefix;
-
- #ifdef ENABLE_PYTHON
-@@ -115,7 +117,6 @@ static const _tJsonMap JsonMap[] =
- { NULL, NULL, tString }
- };
-
--
- CEventSystem::CEventSystem(void)
- {
- m_stoprequested = false;
-@@ -149,7 +150,7 @@ void CEventSystem::StartEventSystem()
- GetCurrentScenesGroups();
- GetCurrentUserVariables();
- #ifdef ENABLE_PYTHON
-- Plugins::PythonEventsInitialize(szUserDataFolder);
-+ Plugins::PythonEventsInitialize(szScriptsFolder);
- #endif
-
- m_thread = boost::shared_ptr<boost::thread>(new boost::thread(boost::bind(&CEventSystem::Do_Work, this)));
-@@ -179,11 +180,11 @@ void CEventSystem::SetEnabled(const bool bEnabled)
-
- void CEventSystem::LoadEvents()
- {
-- std::string dzv_Dir,s;
-+ std::string s;
- #ifdef WIN32
-- dzv_Dir = szUserDataFolder + "scripts\\dzVents\\generated_scripts\\";
-+ dzv_Dir = szUserDataFolder + "generated_scripts\\";
- #else
-- dzv_Dir = szUserDataFolder + "scripts/dzVents/generated_scripts/";
-+ dzv_Dir = szUserDataFolder + "generated_scripts/";
- #endif
- boost::unique_lock<boost::shared_mutex> eventsMutexLock(m_eventsMutex);
- _log.Log(LOG_STATUS, "EventSystem: reset all events...");
-@@ -274,18 +275,18 @@ void CEventSystem::LoadEvents()
- void CEventSystem::Do_Work()
- {
- #ifdef WIN32
-- m_lua_Dir = szUserDataFolder + "scripts\\lua\\";
-- m_dzv_Dir = szUserDataFolder + "scripts\\dzVents\\runtime\\";
-+ m_lua_Dir = szScriptsFolder + "lua\\";
-+ m_dzv_Dir = szScriptsFolder + "dzVents\\runtime\\";
- #else
-- m_lua_Dir = szUserDataFolder + "scripts/lua/";
-- m_dzv_Dir = szUserDataFolder + "scripts/dzVents/runtime/";
-+ m_lua_Dir = szScriptsFolder + "lua/";
-+ m_dzv_Dir = szScriptsFolder + "dzVents/runtime/";
- #endif
-
- #ifdef ENABLE_PYTHON
- #ifdef WIN32
-- m_python_Dir = szUserDataFolder + "scripts\\python\\";
-+ m_python_Dir = szScriptsFolder + "python\\";
- #else
-- m_python_Dir = szUserDataFolder + "scripts/python/";
-+ m_python_Dir = szScriptsFolder + "python/";
- #endif
- #endif
- m_stoprequested = false;
-@@ -1426,9 +1427,9 @@ void CEventSystem::EvaluateEvent(const std::string &reason, const uint64_t Devic
- {
- std::string dzv_scripts;
- #ifdef WIN32
-- dzv_scripts = szUserDataFolder + "scripts\\dzVents\\scripts\\";
-+ dzv_scripts = szScriptsFolder + "dzVents\\scripts\\";
- #else
-- dzv_scripts = szUserDataFolder + "scripts/dzVents/scripts/";
-+ dzv_scripts = szScriptsFolder + "dzVents/scripts/";
- #endif
- DirectoryListing(FileEntries, dzv_scripts, false, true);
- for (itt = FileEntries.begin(); itt != FileEntries.end(); ++itt)
-@@ -2404,7 +2405,7 @@ bool CEventSystem::parseBlocklyActions(const std::string &Actions, const std::st
- }
- #if !defined WIN32
- if (sPath.find("/") != 0)
-- sPath = szUserDataFolder + "scripts/" + sPath;
-+ sPath = szScriptsFolder + sPath;
- #endif
-
- m_sql.AddTaskItem(_tTaskItem::ExecuteScript(0.2f, sPath, sParam));
-@@ -3508,13 +3509,16 @@ void CEventSystem::EvaluateLua(const std::string &reason, const std::string &fil
- {
- std::stringstream lua_DirT;
-
-- lua_DirT << szUserDataFolder <<
-+ lua_DirT << szScriptsFolder <<
- #ifdef WIN32
-- "scripts\\dzVents\\";
-+ "dzVents\\";
- #else
-- "scripts/dzVents/";
-+ "dzVents/";
- #endif
-
-+ lua_pushstring(lua_state, "generated_script_path");
-+ lua_pushstring(lua_state, dzv_Dir.c_str());
-+ lua_rawset(lua_state, -3);
- lua_pushstring(lua_state, "script_path");
- lua_pushstring(lua_state, lua_DirT.str().c_str());
- lua_rawset(lua_state, -3);
-@@ -4695,9 +4699,9 @@ namespace http {
-
- std::stringstream template_file;
- #ifdef WIN32
-- template_file << szUserDataFolder << "scripts\\templates\\" << eventType << "." << interpreter;
-+ template_file << szScriptsFolder << "templates\\" << eventType << "." << interpreter;
- #else
-- template_file << szUserDataFolder << "scripts/templates/" << eventType << "." << interpreter;
-+ template_file << szScriptsFolder << "templates/" << eventType << "." << interpreter;
- #endif
- std::ifstream file;
- std::stringstream template_content;
-diff --git a/main/EventsPythonModule.cpp b/main/EventsPythonModule.cpp
-index f69e7219..2d97562e 100644
---- a/main/EventsPythonModule.cpp
-+++ b/main/EventsPythonModule.cpp
-@@ -108,7 +108,7 @@
-
- int PythonEventsInitalized = 0;
-
-- bool PythonEventsInitialize(std::string szUserDataFolder) {
-+ bool PythonEventsInitialize(std::string szScriptsFolder) {
-
- if (!Plugins::Py_LoadLibrary())
- {
-@@ -131,9 +131,9 @@
-
- std::string ssPath;
- #ifdef WIN32
-- ssPath = szUserDataFolder + "scripts\\python\\;";
-+ ssPath = szScriptsFolder + "python\\;";
- #else
-- ssPath = szUserDataFolder + "scripts/python/:";
-+ ssPath = szScriptsFolder + "python/:";
- #endif
-
- std::wstring sPath = std::wstring(ssPath.begin(), ssPath.end());
-diff --git a/main/LuaHandler.cpp b/main/LuaHandler.cpp
-index 8fdcb278..c2ad98ff 100644
---- a/main/LuaHandler.cpp
-+++ b/main/LuaHandler.cpp
-@@ -22,7 +22,7 @@ extern "C" {
- #include "mainworker.h"
- #include "../hardware/hardwaretypes.h"
-
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
-
- int CLuaHandler::l_domoticz_updateDevice(lua_State* lua_state)
- {
-@@ -155,9 +155,9 @@ bool CLuaHandler::executeLuaScript(const std::string &script, const std::string
- {
- std::stringstream lua_DirT;
- #ifdef WIN32
-- lua_DirT << szUserDataFolder << "scripts\\lua_parsers\\";
-+ lua_DirT << szScriptsFolder << "lua_parsers\\";
- #else
-- lua_DirT << szUserDataFolder << "scripts/lua_parsers/";
-+ lua_DirT << szScriptsFolder << "lua_parsers/";
- #endif
- std::string lua_Dir = lua_DirT.str();
-
-diff --git a/main/SQLHelper.cpp b/main/SQLHelper.cpp
-index 491aa5a2..d529243a 100644
---- a/main/SQLHelper.cpp
-+++ b/main/SQLHelper.cpp
-@@ -633,6 +633,7 @@ const char *sqlCreateMobileDevices =
- "[LastUpdate] DATETIME DEFAULT(datetime('now', 'localtime'))"
- ");";
-
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
-
- CSQLHelper::CSQLHelper(void)
-@@ -3683,9 +3684,9 @@ uint64_t CSQLHelper::UpdateValueInt(const int HardwareID, const char* ID, const
- //Execute possible script
- std::string scriptname;
- #ifdef WIN32
-- scriptname = szUserDataFolder + "scripts\\domoticz_main.bat";
-+ scriptname = szScriptsFolder + "domoticz_main.bat";
- #else
-- scriptname = szUserDataFolder + "scripts/domoticz_main";
-+ scriptname = szScriptsFolder + "domoticz_main";
- #endif
- if (file_exist(scriptname.c_str()))
- {
-@@ -6641,7 +6642,7 @@ bool CSQLHelper::HandleOnOffAction(const bool bIsOn, const std::string &OnAction
- std::string scriptname = OnAction.substr(9);
- #if !defined WIN32
- if (scriptname.find("/") != 0)
-- scriptname = szUserDataFolder + "scripts/" + scriptname;
-+ scriptname = szScriptsFolder + scriptname;
- #endif
- std::string scriptparams="";
- //Add parameters
-@@ -6675,7 +6676,7 @@ bool CSQLHelper::HandleOnOffAction(const bool bIsOn, const std::string &OnAction
- std::string scriptname = OffAction.substr(9);
- #if !defined WIN32
- if (scriptname.find("/") != 0)
-- scriptname = szUserDataFolder + "scripts/" + scriptname;
-+ scriptname = szScriptsFolder + scriptname;
- #endif
- std::string scriptparams = "";
- int pindex = scriptname.find(' ');
-diff --git a/main/WebServer.cpp b/main/WebServer.cpp
-index f8471791..d2cf10b2 100644
---- a/main/WebServer.cpp
-+++ b/main/WebServer.cpp
-@@ -59,6 +59,7 @@
-
- #define round(a) ( int ) ( a + .5 )
-
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- extern std::string szWWWFolder;
-
-@@ -2987,9 +2988,9 @@ namespace http {
- if (scriptname.find("..") != std::string::npos)
- return;
- #ifdef WIN32
-- scriptname = szUserDataFolder + "scripts\\" + scriptname;
-+ scriptname = szScriptsFolder + scriptname;
- #else
-- scriptname = szUserDataFolder + "scripts/" + scriptname;
-+ scriptname = szScriptsFolder + scriptname;
- #endif
- if (!file_exist(scriptname.c_str()))
- return;
-diff --git a/main/domoticz.cpp b/main/domoticz.cpp
-index 5ef96f68..52599b14 100644
---- a/main/domoticz.cpp
-+++ b/main/domoticz.cpp
-@@ -136,6 +136,7 @@ static const _facilities facilities[] =
- };
- std::string logfacname = "user";
- #endif
-+std::string szScriptsFolder;
- std::string szStartupFolder;
- std::string szUserDataFolder;
- std::string szWWWFolder;
-@@ -696,6 +697,19 @@ int main(int argc, char**argv)
- szUserDataFolder = szroot;
- }
-
-+ szScriptsFolder=szStartupFolder;
-+ if (cmdLine.HasSwitch("-scripts"))
-+ {
-+ if (cmdLine.GetArgumentCount("-scripts") != 1)
-+ {
-+ _log.Log(LOG_ERROR, "Please specify a path for scripts directory");
-+ return 1;
-+ }
-+ std::string szroot = cmdLine.GetSafeArgument("-scripts", 0, "");
-+ if (szroot.size() != 0)
-+ szScriptsFolder = szroot;
-+ }
-+
- if (cmdLine.HasSwitch("-startupdelay"))
- {
- if (cmdLine.GetArgumentCount("-startupdelay") != 1)
-diff --git a/main/mainworker.cpp b/main/mainworker.cpp
-index 803690e1..e89a783b 100644
---- a/main/mainworker.cpp
-+++ b/main/mainworker.cpp
-@@ -159,6 +159,7 @@
-
- #define round(a) ( int ) ( a + .5 )
-
-+extern std::string szScriptsFolder;
- extern std::string szStartupFolder;
- extern std::string szUserDataFolder;
- extern std::string szWWWFolder;
-@@ -1473,8 +1474,8 @@ void MainWorker::Do_Work()
- m_sql.GetPreferencesVar("ReleaseChannel", nValue);
- bool bIsBetaChannel = (nValue != 0);
-
-- std::string scriptname = szUserDataFolder + "scripts/download_update.sh";
-- std::string strparm = szUserDataFolder;
-+ std::string scriptname = szScriptsFolder + "download_update.sh";
-+ std::string strparm = szScriptsFolder;
- if (bIsBetaChannel)
- strparm += " /beta";
-
-diff --git a/notifications/NotificationHTTP.cpp b/notifications/NotificationHTTP.cpp
-index decff3b4..632e4e66 100644
---- a/notifications/NotificationHTTP.cpp
-+++ b/notifications/NotificationHTTP.cpp
-@@ -6,7 +6,7 @@
- #include "../main/SQLHelper.h"
- #include "../main/Logger.h"
-
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
-
- CNotificationHTTP::CNotificationHTTP() : CNotificationBase(std::string("http"), OPTIONS_NONE)
- {
-@@ -105,7 +105,7 @@ bool CNotificationHTTP::SendMessageImplementation(
- std::string scriptparams = "";
- #if !defined WIN32
- if (scriptname.find("/") != 0)
-- scriptname = szUserDataFolder + "scripts/" + scriptname;
-+ scriptname = szScriptsFolder + scriptname;
- #endif
- //Add parameters
- uPos = scriptname.find(" ");
-diff --git a/push/GooglePubSubPush.cpp b/push/GooglePubSubPush.cpp
-index 359a7d7c..46e489f6 100644
---- a/push/GooglePubSubPush.cpp
-+++ b/push/GooglePubSubPush.cpp
-@@ -22,7 +22,7 @@ extern "C" {
- using namespace boost::python;
- #endif
-
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
-
- // this should be filled in by the preprocessor
- extern const char * Python_exe;
-@@ -231,11 +231,11 @@ void CGooglePubSubPush::DoGooglePubSubPush()
-
- #ifdef ENABLE_PYTHON_DECAP
- #ifdef WIN32
-- python_DirT << szUserDataFolder << "scripts\\python\\";
-- std::string filename = szUserDataFolder + "scripts\\python\\" + "googlepubsub.py";
-+ python_DirT << szScriptsFolder << "python\\";
-+ std::string filename = szScriptsFolder + "python\\" + "googlepubsub.py";
- #else
-- python_DirT << szUserDataFolder << "scripts/python/";
-- std::string filename = szUserDataFolder + "scripts/python/" + "googlepubsub.py";
-+ python_DirT << szScriptsFolder << "python/";
-+ std::string filename = szScriptsFolder + "python/" + "googlepubsub.py";
- #endif
-
- wchar_t * argv[1];
-diff --git a/scripts/dzVents/runtime/dzVents.lua b/scripts/dzVents/runtime/dzVents.lua
-index d0dfa869..8370d6a9 100644
---- a/scripts/dzVents/runtime/dzVents.lua
-+++ b/scripts/dzVents/runtime/dzVents.lua
-@@ -1,8 +1,9 @@
- local currentPath = globalvariables['script_path']
-+local generatedScriptPath = globalvariables['generated_script_path']
- local triggerReason = globalvariables['script_reason']
-
- _G.scriptsFolderPath = currentPath .. 'scripts' -- global
--_G.generatedScriptsFolderPath = currentPath .. 'generated_scripts' -- global
-+_G.generatedScriptsFolderPath = generatedScriptPath -- global
- _G.dataFolderPath = currentPath .. 'data' -- global
-
- package.path = package.path .. ';' .. currentPath .. '?.lua'
-@@ -10,7 +11,7 @@ package.path = package.path .. ';' .. currentPath .. 'runtime/?.lua'
- package.path = package.path .. ';' .. currentPath .. 'runtime/device-adapters/?.lua'
- package.path = package.path .. ';' .. currentPath .. 'dzVents/?.lua'
- package.path = package.path .. ';' .. currentPath .. 'scripts/?.lua'
--package.path = package.path .. ';' .. currentPath .. 'generated_scripts/?.lua'
-+package.path = package.path .. ';' .. generatedScriptPath .. '?.lua'
- package.path = package.path .. ';' .. currentPath .. 'data/?.lua'
-
- local EventHelpers = require('EventHelpers')
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=b155fdb458c3241ab375d1f2b12fbb6a9f8a8a3a
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
-PKG_MIRROR_HASH:=ff1bc142107d367c6c58ccc5dbcec822c251a683e43e3b771ab4a33a9012f602
+PKG_MIRROR_HASH:=bea40197bce22c837273848bc75d273c2688b131c11895685a35ee6c6242843a
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
PKG_LICENSE:=GPL-2.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
PKG_HASH:=ded4c9f73731cd48fec3b6bdaccce896473b6d8e337e9612e16cf1431bb1169d
-PKG_MAINTAINER:=Daniel Dickinson <lede@daniel.thecshore.com>
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
--- /dev/null
+#
+# Copyright (C) 2018 Daniel Engberg <daniel.engberg.lists@pyret.net>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fio
+PKG_VERSION:=3.6
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dragan Stancevic <ds@codeminutia.com>
+PKG_LICENSE:=GPL-2.0+
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE_URL:=http://brick.kernel.dk/snaps
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_HASH:=026a2cbb4a1bc9810f13f23d07eb146dbd4325bb467221dc49b88915ee8a52b4
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/fio
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Disc
+ DEPENDS:=+libaio +zlib
+ TITLE:=I/O testing and benchmarking tool
+ URL:=https://github.com/axboe/fio
+endef
+
+define Package/fio/description
+ Fio is an I/O testing tool that will spawn a number of threads or
+ processes doing a particular type of I/O action as specified by
+ the user. Fio can be driven by a 'job file' describing the I/O
+ load one wants to simulate.
+endef
+
+TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
+
+CONFIGURE_ARGS = \
+ --disable-numa \
+ --disable-rdma \
+ --disable-rados \
+ --disable-rbd \
+ --disable-gfapi \
+ --disable-lex \
+ --disable-pmem \
+ --disable-native \
+ --cc="$(TARGET_CC)" \
+ --extra-cflags="$(TARGET_CFLAGS)"
+
+define Package/fio/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/fio $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,fio))
URL:=http://dl.cihar.com/gammu/releases/
DEPENDS:=+libpthread +libcurl +glib2 $(ICONV_DEPENDS) $(INTL_DEPENDS)
DEPENDS+=+PACKAGE_python:python +PACKAGE_bluez-libs:bluez-libs
- DEPENDS+=+PACKAGE_libmariadbclient:libmariadbclient +PACKAGE_unixodbc:unixodbc +PACKAGE_libpq:libpq
+ DEPENDS+=+PACKAGE_libmariadb:libmariadb +PACKAGE_unixodbc:unixodbc +PACKAGE_libpq:libpq
DEPENDS+=+PACKAGE_libusb-1.0:libusb-1.0
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=gawk
-PKG_VERSION:=4.2.0
-PKG_RELEASE:=2
+PKG_VERSION:=4.2.1
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/gawk
-PKG_HASH:=d4f3cd31c001fd0ed52832d4fbfbdfeaa38ad541c182f80ff8fdf87324a6a9f2
+PKG_HASH:=d1119785e746d46a8209d28b2de404a57f983aa48670f4e225531d3bdc175551
PKG_LICENSE:=GPL
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=gnupg
-PKG_VERSION:=1.4.21
+PKG_VERSION:=1.4.23
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/gnupg \
- ftp://ftp.gnupg.org/gcrypt/gnupg
-PKG_HASH:=6b47a3100c857dcab3c60e6152e56a997f2c7862c1b8b2b25adf3884a1ae2276
+PKG_SOURCE_URL:=https://gnupg.org/ftp/gcrypt/gnupg
+PKG_HASH:=c9462f17e651b6507848c08c430c791287cd75491f8b5a8b50c6ed46b12678ba
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=COPYING
-PKG_MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
PKG_INSTALL:=1
--- /dev/null
+#
+# Copyright (C) 2018 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:=gptfdisk
+PKG_VERSION:=1.0.3
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Alif M. Ahmad <alive4ever@live.com>
+PKG_LICENSE:=GPL-2.0
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_HASH:=89fd5aec35c409d610a36cb49c65b442058565ed84042f767bba614b8fc91b5c
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/gptfdisk/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Disc
+ URL:=http://www.rodsbooks.com/gdisk
+ DEPENDS:= +libstdcpp
+endef
+
+define Package/gdisk
+$(call Package/gptfdisk/Default)
+ TITLE:=GPT aware disk manipulation utility for interactive use
+ DEPENDS+= +libuuid
+endef
+
+define Package/gdisk/description
+ gdisk is GPT aware disk partitioning tool, with interactive UI.
+endef
+
+define Package/cgdisk
+$(call Package/gptfdisk/Default)
+ TITLE:=GPT aware disk manipulation utility for interactive use
+ DEPENDS+= +libuuid +libncursesw
+endef
+
+define Package/cgdisk/description
+ cgdisk is GPT aware disk partitioning tool, with interactive ncurses based UI.
+endef
+
+define Package/sgdisk
+$(call Package/gptfdisk/Default)
+ TITLE:=GPT aware disk manipulation utility for scripting use
+ DEPENDS+= +libuuid +libpopt
+endef
+
+define Package/sgdisk/description
+ sgdisk is GPT-aware disk partitioning tool for scripting use.
+endef
+
+define Package/fixparts
+$(call Package/gptfdisk/Default)
+ TITLE:=A utility to fix corrupted MBR partitions
+ DEPENDS+=
+endef
+
+define Package/fixparts/description
+ a text-mode menu-driven program for repairing certain types of problems with
+ Master Boot Record (MBR) partition tables
+endef
+
+define Package/gdisk/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/gdisk $(1)/usr/bin/
+endef
+
+define Package/cgdisk/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/cgdisk $(1)/usr/bin/
+endef
+
+define Package/sgdisk/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/sgdisk $(1)/usr/bin/
+endef
+
+define Package/fixparts/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/fixparts $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,gdisk))
+$(eval $(call BuildPackage,cgdisk))
+$(eval $(call BuildPackage,sgdisk))
+$(eval $(call BuildPackage,fixparts))
include $(TOPDIR)/rules.mk
PKG_NAME:=hdparm
-PKG_VERSION:=9.52
+PKG_VERSION:=9.56
PKG_RELEASE:=1
PKG_USE_MIPS16:=0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=c3429cd423e271fa565bf584598fd751dd2e773bb7199a592b06b5a61cec4fb6
+PKG_HASH:=6ff9ed695f1017396eec4101f990f114b7b0e0a04c5aa6369c0394053d16e4da
PKG_MAINTAINER:=Richard Kunze <richard.kunze@web.de>
PKG_LICENSE:=BSD-Style Open Source License
PKG_VERSION:=3.1.2
PKG_RELEASE:=1
-PKG_SOURCE_URL:=http://dl.lm-sensors.org/i2c-tools/releases/ \
- http://fossies.org/linux/misc/
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=db5e69f2e2a6e3aa2ecdfe6a5f490b149c504468770f58921c8c5b8a7860a441
+PKG_SOURCE_URL:=@KERNEL/software/utils/i2c-tools
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_HASH:=6d6079153cd49a62d4addacef4c092db1a46ba60b2807070a3fbe050262aef87
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=PACKAGE_python-smbus:python
#
# Copyright (C) 2009-2010 Stefan Monnier
-# Copyright (C) 2011-2014 OpenWrt.org
+# Copyright (C) 2011-2018 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v3+.
# See /LICENSE for more information.
PKG_NAME:=LVM2
PKG_VERSION:=2.02.177
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=GPL-2.0 LGPL-2.1
PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
LVM toolset.
endef
-CONFIGURE_ARGS += --disable-o_direct
+CONFIGURE_ARGS += \
+ --disable-o_direct \
+ --with-default-pid-dir=/var/run \
+ --with-default-dm-run-dir=/var/run \
+ --with-default-run-dir=/var/run/lvm \
+ --with-default-locking-dir=/var/lock/lvm
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
include $(TOPDIR)/rules.mk
PKG_NAME:=mariadb
-PKG_VERSION:=10.1.33
-PKG_RELEASE:=1
+PKG_VERSION:=10.2.16
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL := \
https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
https://downloads.mariadb.org/interstitial/$(PKG_NAME)-$(PKG_VERSION)/source
-PKG_HASH:=94312c519f2c0c25e1964c64e22aff0036fb22dfb2685638f43a6b2211395d2d
+PKG_HASH:=c182ee93bacee9c1395a4cece56acfc433bc5153ec627c4898927b93eee54dc4
PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
-PKG_LICENSE:=GPL-2.0
-PKG_LICENSE_FILES:=COPYING
+PKG_LICENSE:=GPL-2.0 LGPL-2.1
+PKG_LICENSE_FILES:=COPYING libmariadb/COPYING.LIB
HOST_BUILD_PARALLEL:=1
PKG_BUILD_PARALLEL:=1
PLUGIN_DIR:=/usr/lib/mysql/plugin
MARIADB_COMMON_DEPENDS := \
+ +USE_UCLIBC:libiconv-full \
+libatomic \
+libopenssl \
+libstdcpp \
ha_example \
ha_federated \
ha_federatedx \
- ha_innodb \
+ ha_sequence \
+ ha_sphinx \
ha_spider \
ha_test_sql_discovery \
handlersocket \
plugin-ha_example := PLUGIN_EXAMPLE
plugin-ha_federated := PLUGIN_FEDERATED
plugin-ha_federatedx := PLUGIN_FEDERATEDX
-plugin-ha_innodb := PLUGIN_INNOBASE
+plugin-ha_sequence := PLUGIN_SEQUENCE
+plugin-ha_sphinx := PLUGIN_SPHINX
plugin-ha_spider := PLUGIN_SPIDER
plugin-ha_test_sql_discovery := PLUGIN_TEST_SQL_DISCOVERY
plugin-handlersocket := PLUGIN_HANDLERSOCKET
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk
+# Pass CPPFLAGS in the CFLAGS as otherwise the build system will
+# ignore them.
+TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
+
define Package/mariadb/install/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $(1)/usr/bin
endef
speed, robustness and ease of use.
endef
-define Package/libmariadbclient
+define Package/libmariadb
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=$(MARIADB_COMMON_DEPENDS)
TITLE:=MariaDB database client library
URL:=https://mariadb.org/
- PROVIDES:=libmysqlclient libmysqlclient-r
+ PROVIDES:=libmariadbclient libmysqlclient libmysqlclient-r
endef
-define Package/libmariadbclient/description
+define Package/libmariadb/description
$(call Package/mariadb/description/Default)
This package includes the client library.
define Package/mariadb-extra-charsets/description
$(call Package/mariadb/description/Default)
-The MariaDB server packaged by OpenWrt only provides support for UTF-8.
This package contains single Byte character sets and collations that can
be added at run time.
TITLE:=MariaDB database core server binaries
MENU:=1
PROVIDES:=mysql-server
+ USERID:=mariadb=376:mariadb=376
endef
define Package/mariadb-server/description
-DINSTALL_SCRIPTDIR=bin \
-DINSTALL_SQLBENCHDIR="" \
-DINSTALL_SUPPORTFILESDIR=share/mysql \
- -DMYSQLD_USER=root \
+ -DINSTALL_UNIX_ADDRDIR=/var/run/mysqld/mysqld.sock \
+ -DMYSQLD_USER=mariadb \
-DMYSQL_DATADIR=/var/lib/mysql \
- -DMYSQL_UNIX_ADDR=/var/run/mysqld.sock \
+ -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
-DSKIP_TESTS=ON \
-DWITH_ASAN=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
- -DWITH_EXTRA_CHARSETS=none \
+ -DWITH_EXTRA_CHARSETS=complex \
-DWITH_INNODB_BZIP2=OFF \
-DWITH_INNODB_LZ4=OFF \
-DWITH_INNODB_LZMA=ON \
-DPLUGIN_MROONGA=NO \
-DPLUGIN_OQGRAPH=NO \
-DPLUGIN_ROCKSDB=NO \
- -DPLUGIN_SPHINX=NO \
-DPLUGIN_TOKUDB=NO \
-DPLUGIN_AUTH_PAM=NO \
-DPLUGIN_AUTH_GSSAPI=NO \
-DPLUGIN_AUTH_GSSAPI_CLIENT=NO \
-DPLUGIN_CRACKLIB_PASSWORD_CHECK=NO
+# musl and glibc include their own iconv, but uclibc does not
+ifneq ($(CONFIG_USE_UCLIBC),)
+CMAKE_OPTIONS += \
+ -DICONV_INCLUDE_DIR=$(STAGING_DIR)/usr/lib/libiconv-full/include \
+ -DICONV_LIBRARIES=$(STAGING_DIR)/usr/lib/libiconv-full/lib/libiconv.so
+endif
+
CMAKE_OPTIONS += \
$(foreach p,$(MARIADB_SERVER_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-$(subst _,-,$(p))),DYNAMIC,NO))
$(INSTALL_DATA) $(HOST_BUILD_DIR)/import_executables.cmake $(1)/share/mariadb
endef
+# LIBICONV_PLUG is used in GNU's libiconv for redefinition of exports [e.g.
+# from libiconv_open() to iconv_open()]. But in OpenWrt this variable is not set
+# when building libiconv-full. So when mariadb sets LIBICONV_PLUG it expects
+# iconv_open() to be available for example, which is not the case - only
+# libiconv_open() is. To address this do not set the variable when building
+# against libiconv-full.
+
+define Build/Prepare
+ $(call Build/Prepare/Default)
+ifneq ($(CONFIG_USE_UCLIBC),)
+ $(SED) '/ADD_DEFINITIONS(-DLIBICONV_PLUG)/d' $(PKG_BUILD_DIR)/libmariadb/libmariadb/CMakeLists.txt
+endif
+endef
+
define Build/InstallDev
$(INSTALL_DIR) $(2)/bin $(1)/usr/bin $(1)/usr/include $(1)/usr/lib/mysql $(1)/usr/lib/pkgconfig $(1)/usr/share/aclocal
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mysql_config $(1)/usr/bin
$(LN) $(STAGING_DIR)/usr/bin/mysql_config $(2)/bin
$(CP) $(PKG_INSTALL_DIR)/usr/include/mysql $(1)/usr/include
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmysqlclient*.so* $(1)/usr/lib
- cd $(1)/usr/lib/mysql; $(LN) ../libmysqlclient*.so* .
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{mariadb,mysqlclient}*.so* $(1)/usr/lib
+ cd $(1)/usr/lib/mysql; $(LN) ../lib{mariadb,mysqlclient}*.so* .
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/pkgconfig/mariadb.pc $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/mysql.m4 $(1)/usr/share/aclocal
endef
-define Package/libmariadbclient/install
+define Package/libmariadb/install
$(INSTALL_DIR) $(1)$(PLUGIN_DIR)
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmysqlclient*.so* $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{mariadb,mysqlclient}*.so* $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/dialog.so $(1)$(PLUGIN_DIR)
$(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/mysql_clear_password.so $(1)$(PLUGIN_DIR)
endef
define Package/mariadb-client/install
$(INSTALL_DIR) $(1)/usr/bin
$(foreach b,$(MARIADB_CLIENT),$(call Package/mariadb/install/bin,$(1),$(b));)
+ # Install convenience links for mysqlcheck multi-call binary
+ cd $(1)/usr/bin; $(LN) mysqlcheck mysqlanalyze
+ cd $(1)/usr/bin; $(LN) mysqlcheck mysqlrepair
+ cd $(1)/usr/bin; $(LN) mysqlcheck mysqloptimize
endef
define Package/mariadb-client-extra/install
define Package/mariadb-server/install
$(INSTALL_DIR) $(1)/usr/bin
$(foreach b,$(MARIADB_SERVER),$(call Package/mariadb/install/bin,$(1),$(b));)
+ $(INSTALL_DIR) $(1)/etc/default
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/mysql/conf.d
$(INSTALL_BIN) files/mysqld.init $(1)/etc/init.d/mysqld
$(INSTALL_CONF) conf/my.cnf $(1)/etc/mysql
+ $(INSTALL_CONF) conf/mysqld.default $(1)/etc/default/mysqld
$(INSTALL_DIR) $(1)$(PLUGIN_DIR)
$(INSTALL_CONF) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/daemon_example.ini $(1)$(PLUGIN_DIR)
$(INSTALL_DIR) $(1)/usr/share/mysql/english
endef
define Package/mariadb-server/conffiles
+/etc/default/mysqld
/etc/mysql/my.cnf
-/usr/lib/mysql/plugin/daemon_example.ini
+$(PLUGIN_DIR)/daemon_example.ini
endef
define BuildPlugin
endef
$(eval $(call HostBuild))
-$(eval $(call BuildPackage,libmariadbclient))
+$(eval $(call BuildPackage,libmariadb))
$(eval $(call BuildPackage,mariadb-client))
$(eval $(call BuildPackage,mariadb-client-extra))
$(eval $(call BuildPackage,mariadb-extra-charsets))
$(eval $(call BuildPlugin,ha_archive,))
$(eval $(call BuildPlugin,ha_blackhole,))
$(eval $(call BuildPlugin,ha_connect,+libxml2))
+$(eval $(call BuildPlugin,ha_example,))
$(eval $(call BuildPlugin,ha_federated,))
$(eval $(call BuildPlugin,ha_federatedx,))
-$(eval $(call BuildPlugin,ha_innodb,))
+$(eval $(call BuildPlugin,ha_sequence,))
+$(eval $(call BuildPlugin,ha_sphinx,))
$(eval $(call BuildPlugin,ha_spider,))
$(eval $(call BuildPlugin,ha_test_sql_discovery,))
$(eval $(call BuildPlugin,handlersocket,))
[client]
port = 3306
-socket = /var/run/mysqld.sock
+socket = /var/run/mysqld/mysqld.sock
[mysqld]
-user = root
-socket = /var/run/mysqld.sock
+user = mariadb
+socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
bind-address = 127.0.0.1
# Fine Tuning
-key_buffer = 16M
+key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
-thread_cache_size = 8
+thread_cache_size = 8
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
-#long_query_time = 2
+#long_query_time = 2
#log-queries-not-using-indexes
# The following can be used as easy to replay backup logs or for replication.
#server-id = 1
-#log_bin = /var/log/mysql/mysql-bin.log
+#log_bin = /var/log/mysql/mysql-bin.log
#expire_logs_days = 10
-#max_binlog_size = 100M
+#max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
--- /dev/null
+# The user and group that will run the MySQL server. The user mariadb is
+# automatically created by the mariadb-server package, hence that is the
+# default choice.
+
+#MY_USER=mariadb
+#MY_GROUP=mariadb
+
+# Additional arguments you want to pass to the MySQL server.
+
+#MY_ARGS=""
#!/bin/sh /etc/rc.common
-# Copyright (C) 2010-2011 OpenWrt.org
+# Copyright (C) 2010-2018 OpenWrt.org
START=95
STOP=10
-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
-SERVICE_STOP_TIME=9
-PROG='/usr/bin/mysqld'
+USE_PROCD=1
-start() {
+#PROCD_DEBUG=1
+
+MYSQLD=mysqld
+
+DEFAULT=/etc/default/$MYSQLD
+LOGGER="/usr/bin/logger -p user.err -s -t $MYSQLD"
+PROG=/usr/bin/$MYSQLD
+
+unset MY_ARGS MY_GROUP MY_USER
+
+[ -f $DEFAULT ] && . $DEFAULT
+
+my_user="${MY_USER:-mariadb}"
+my_group="${MY_GROUP:-mariadb}"
+
+start_service() {
local conf='/etc/mysql/my.cnf'
local datadir="$( sed -nE "s/^\s*datadir\s*=\s*('([^']*)'|\x22([^\x22]*)\x22|(.*\S))\s*$/\2\3\4/p" "$conf" )"
[ -d "$datadir" ] || {
- logger -s "[ERROR] datadir '$datadir' in '$conf' does not exist"
+ $LOGGER "datadir '$datadir' in '$conf' does not exist"
return 1
}
[ -f "$datadir/mysql/tables_priv.MYD" ] || {
- logger -s "[ERROR] can not detect privileges table, you might need to"
- logger -s "run 'mysql_install_db --force' to initialize the system tables"
+ $LOGGER "cannot detect privileges table, you might need to"
+ $LOGGER "run 'mysql_install_db --force' to initialize the system tables"
return 1
}
- service_start "$PROG"
-}
+ mkdir -p /var/lib/mysql
+ chown "$my_user":"$my_group" /var/lib/mysql
+
+ mkdir -p /var/run/mysqld
+ chown "$my_user":"$my_group" /var/run/mysqld
+
+ procd_open_instance
+
+ procd_set_param command $PROG $MY_ARGS
+ procd_set_param pidfile /var/run/mysqld.pid
+ # forward stderr to logd
+ procd_set_param stderr 1
-stop() {
- service_stop "$PROG"
+ procd_close_instance
}
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
-@@ -379,7 +379,7 @@ fi
+@@ -383,7 +383,7 @@ fi
# Try to determine the hostname
--- a/configure.cmake
+++ b/configure.cmake
-@@ -1107,9 +1107,12 @@ SET(CMAKE_EXTRA_INCLUDE_FILES)
- CHECK_STRUCT_HAS_MEMBER("struct dirent" d_ino "dirent.h" STRUCT_DIRENT_HAS_D_INO)
- CHECK_STRUCT_HAS_MEMBER("struct dirent" d_namlen "dirent.h" STRUCT_DIRENT_HAS_D_NAMLEN)
- SET(SPRINTF_RETURNS_INT 1)
+@@ -1018,9 +1018,12 @@ CHECK_STRUCT_HAS_MEMBER("struct sockaddr
+
+ SET(CMAKE_EXTRA_INCLUDE_FILES)
+
-CHECK_INCLUDE_FILE(ucontext.h HAVE_UCONTEXT_H)
-IF(NOT HAVE_UCONTEXT_H)
- CHECK_INCLUDE_FILE(sys/ucontext.h HAVE_UCONTEXT_H)
${LIBM} ${LIBNSL} ${LIBBIND} ${LIBCRYPT} ${LIBSOCKET} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT} ${LIBRT} ${LIBEXECINFO})
# Need explicit pthread for gcc -fsanitize=address
IF(CMAKE_USE_PTHREADS_INIT AND CMAKE_C_FLAGS MATCHES "-fsanitize=")
-@@ -1038,7 +1038,26 @@ ELSEIF(NOT WITH_ATOMIC_OPS)
+@@ -952,7 +952,26 @@ ELSEIF(NOT WITH_ATOMIC_OPS)
long long int *ptr= &var;
return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
}"
#ifdef MY_ATOMIC_MODE_DUMMY
#define make_atomic_load_body(S) ret= *a
#define make_atomic_store_body(S) *a= v
---- a/include/atomic/nolock.h
-+++ b/include/atomic/nolock.h
-@@ -17,7 +17,7 @@
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
- #if defined(__i386__) || defined(_MSC_VER) || defined(__x86_64__) \
-- || defined(HAVE_GCC_ATOMIC_BUILTINS) \
-+ || defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS) \
- || defined(HAVE_SOLARIS_ATOMIC)
-
- # ifdef MY_ATOMIC_MODE_DUMMY
-@@ -41,7 +41,7 @@
- # elif __GNUC__
- # if defined(HAVE_SOLARIS_ATOMIC)
- # include "solaris.h"
--# elif defined(HAVE_GCC_ATOMIC_BUILTINS)
-+# elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS)
- # include "gcc_builtins.h"
- # elif defined(__i386__) || defined(__x86_64__)
- # include "x86-gcc.h"
--- a/mysys/CMakeLists.txt
+++ b/mysys/CMakeLists.txt
-@@ -78,6 +78,10 @@ IF(HAVE_BFD_H)
+@@ -80,6 +80,10 @@ IF(HAVE_BFD_H)
TARGET_LINK_LIBRARIES(mysys bfd)
ENDIF(HAVE_BFD_H)
ENDIF(WIN32)
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
-@@ -165,6 +165,10 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATI
+@@ -170,6 +170,10 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATI
${SSL_LIBRARIES}
${LIBSYSTEMD})
IF(WIN32)
SET(MYSQLD_SOURCE main.cc nt_servc.cc message.rc)
TARGET_LINK_LIBRARIES(sql psapi)
+--- a/include/my_atomic.h
++++ b/include/my_atomic.h
+@@ -126,7 +126,7 @@
+ #include "atomic/generic-msvc.h"
+ #elif defined(HAVE_SOLARIS_ATOMIC)
+ #include "atomic/solaris.h"
+-#elif defined(HAVE_GCC_ATOMIC_BUILTINS)
++#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS)
+ #include "atomic/gcc_builtins.h"
+ #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+ #include "atomic/x86-gcc.h"
+++ /dev/null
-Author: James Cowgill <jcowgill@debian.org>
-Description: fix FTBFS on 32-bit mips*
-Bug-Debian: #864298
-
---- a/storage/innobase/include/os0sync.h
-+++ b/storage/innobase/include/os0sync.h
-@@ -37,6 +37,7 @@ Created 9/6/1995 Heikki Tuuri
-
- #include "univ.i"
- #include "ut0lst.h"
-+#include "sync0types.h"
-
- /** CPU cache line size */
- #ifdef __powerpc__
--- a/storage/xtradb/include/ut0ut.h
+++ b/storage/xtradb/include/ut0ut.h
-@@ -86,8 +86,7 @@ private:
+@@ -85,9 +85,8 @@ private:
+ the YieldProcessor macro defined in WinNT.h. It is a CPU architecture-
independent way by using YieldProcessor. */
# define UT_RELAX_CPU() YieldProcessor()
- # elif defined(__powerpc__)
+-# elif defined(__powerpc__) && defined __GLIBC__
-#include <sys/platform/ppc.h>
-# define UT_RELAX_CPU() __ppc_get_timebase()
++# elif defined(__powerpc__)
+# define UT_RELAX_CPU() __builtin_ppc_get_timebase()
# else
# define UT_RELAX_CPU() ((void)0) /* avoid warning for an empty statement */
# define UT_RESUME_PRIORITY_CPU() ((void)0)
--- a/storage/innobase/include/ut0ut.h
+++ b/storage/innobase/include/ut0ut.h
-@@ -89,8 +89,7 @@ private:
+@@ -70,9 +70,8 @@ typedef time_t ib_time_t;
+ the YieldProcessor macro defined in WinNT.h. It is a CPU architecture-
independent way by using YieldProcessor. */
- # define UT_RELAX_CPU() YieldProcessor()
- # elif defined(__powerpc__)
--#include <sys/platform/ppc.h>
--# define UT_RELAX_CPU() __ppc_get_timebase()
-+# define UT_RELAX_CPU() __builtin_ppc_get_timebase()
- # else
- # define UT_RELAX_CPU() ((void)0) /* avoid warning for an empty statement */
- # endif
-@@ -104,9 +103,8 @@ private:
+ # define UT_RELAX_CPU() YieldProcessor()
+-#elif defined(__powerpc__) && defined __GLIBC__
+-# include <sys/platform/ppc.h>
+-# define UT_RELAX_CPU() __ppc_get_timebase()
++#elif defined(__powerpc__)
++# define UT_RELAX_CPU() __builtin_ppc_get_timebase()
+ #else
+ # define UT_RELAX_CPU() do { \
+ volatile int32 volatile_var; \
+@@ -90,9 +89,8 @@ typedef time_t ib_time_t;
#endif
- # if defined(HAVE_HMT_PRIORITY_INSTRUCTION)
--#include <sys/platform/ppc.h>
--# define UT_LOW_PRIORITY_CPU() __ppc_set_ppr_low()
--# define UT_RESUME_PRIORITY_CPU() __ppc_set_ppr_med()
-+# define UT_LOW_PRIORITY_CPU() __asm__ __volatile__ ("or 1,1,1")
-+# define UT_RESUME_PRIORITY_CPU() __asm__ __volatile__ ("or 2,2,2")
- # else
- # define UT_LOW_PRIORITY_CPU() ((void)0)
- # define UT_RESUME_PRIORITY_CPU() ((void)0)
+ #if defined(HAVE_HMT_PRIORITY_INSTRUCTION)
+-# include <sys/platform/ppc.h>
+-# define UT_LOW_PRIORITY_CPU() __ppc_set_ppr_low()
+-# define UT_RESUME_PRIORITY_CPU() __ppc_set_ppr_med()
++# define UT_LOW_PRIORITY_CPU() __asm__ __volatile__ ("or 1,1,1")
++# define UT_RESUME_PRIORITY_CPU() __asm__ __volatile__ ("or 2,2,2")
+ #else
+ # define UT_LOW_PRIORITY_CPU() ((void)0)
+ # define UT_RESUME_PRIORITY_CPU() ((void)0)
include $(TOPDIR)/rules.mk
PKG_NAME:=mc
-PKG_VERSION:=4.8.20
-PKG_RELEASE:=2
+PKG_VERSION:=4.8.21
+PKG_RELEASE:=1
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
PKG_LICENSE:=GPL-3.0+
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://ftp.midnight-commander.org/
-PKG_HASH:=017ee7f4f8ae420a04f4d6fcebaabe5b494661075c75442c76e9c8b1923d501c
+PKG_HASH:=8f37e546ac7c31c9c203a03b1c1d6cb2d2f623a300b86badfd367e5559fe148c
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf gettext-version
include $(TOPDIR)/rules.mk
PKG_NAME:=nano
-PKG_VERSION:=2.9.7
+PKG_VERSION:=2.9.8
PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/nano
-PKG_HASH:=b64ab017305b1777e97b5b9b07b31db8aeebfc3e8719f61e8da1cf3866d344bd
+PKG_HASH:=c2deac31ba4d3fd27a42fafcc47ccf499296cc69a422bbecab63f2933ea85488
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=opensc
-PKG_VERSION:=0.17.0
+PKG_VERSION:=0.18.0
PKG_RELEASE:=1
-PKG_HASH:=be73c6816867ab4721e6a9ae7dba8e890c5f169f0a2cbb4bf354e0f30a948300
+PKG_HASH:=9bc0ff030dd1c10f646d54415eae1bb2b1c72dda710378343f027e17cd8c3757
PKG_LICENSE:=LGPL-2.1+
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=prometheus-node-exporter-lua
-PKG_VERSION:=2017.12.08
-PKG_RELEASE:=4
+PKG_VERSION:=2018.06.26
+PKG_RELEASE:=1
PKG_MAINTAINER:=Christian Simon <simon@swine.de>
PKG_LICENSE:=Apache-2.0
local stat = get_contents("/proc/stat")
-- system boot time, seconds since epoch
- metric("node_boot_time", "gauge", nil, string.match(stat, "btime ([0-9]+)"))
+ metric("node_boot_time_seconds", "gauge", nil,
+ string.match(stat, "btime ([0-9]+)"))
-- context switches since boot (all CPUs)
- metric("node_context_switches", "counter", nil, string.match(stat, "ctxt ([0-9]+)"))
+ metric("node_context_switches_total", "counter", nil,
+ string.match(stat, "ctxt ([0-9]+)"))
-- cpu times, per CPU, per mode
local cpu_mode = {"user", "nice", "system", "idle", "iowait", "irq",
"softirq", "steal", "guest", "guest_nice"}
local i = 0
- local cpu_metric = metric("node_cpu", "counter")
+ local cpu_metric = metric("node_cpu_seconds_total", "counter")
while true do
- local cpu = {string.match(stat, "cpu"..i.." (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+)")}
+ local cpu = {string.match(stat,
+ "cpu"..i.." (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+)")}
if #cpu ~= 10 then
break
end
end
-- interrupts served
- metric("node_intr", "counter", nil, string.match(stat, "intr ([0-9]+)"))
+ metric("node_intr_total", "counter", nil,
+ string.match(stat, "intr ([0-9]+)"))
-- processes forked
- metric("node_forks", "counter", nil, string.match(stat, "processes ([0-9]+)"))
+ metric("node_forks_total", "counter", nil,
+ string.match(stat, "processes ([0-9]+)"))
-- processes running
- metric("node_procs_running", "gauge", nil, string.match(stat, "procs_running ([0-9]+)"))
+ metric("node_procs_running_total", "gauge", nil,
+ string.match(stat, "procs_running ([0-9]+)"))
-- processes blocked for I/O
- metric("node_procs_blocked", "gauge", nil, string.match(stat, "procs_blocked ([0-9]+)"))
+ metric("node_procs_blocked_total", "gauge", nil,
+ string.match(stat, "procs_blocked ([0-9]+)"))
end
return { scrape = scrape }
if unit == 'kB' then
size = size * 1024
end
- metric("node_memory_" .. name:gsub("[):]", ""):gsub("[(]", "_"), "gauge", nil, size)
+ metric("node_memory_"..name:gsub("[):]", ""):gsub("[(]", "_").."_bytes",
+ "gauge", nil, size)
end
end
-local netdevsubstat = {"receive_bytes", "receive_packets", "receive_errs",
- "receive_drop", "receive_fifo", "receive_frame", "receive_compressed",
- "receive_multicast", "transmit_bytes", "transmit_packets",
- "transmit_errs", "transmit_drop", "transmit_fifo", "transmit_colls",
- "transmit_carrier", "transmit_compressed"}
+local netdevsubstat = {
+ "receive_bytes_total",
+ "receive_packets_total",
+ "receive_errs_total",
+ "receive_drop_total",
+ "receive_fifo_total",
+ "receive_frame_total",
+ "receive_compressed_total",
+ "receive_multicast_total",
+ "transmit_bytes_total",
+ "transmit_packets_total",
+ "transmit_errs_total",
+ "transmit_drop_total",
+ "transmit_fifo_total",
+ "transmit_colls_total",
+ "transmit_carrier_total",
+ "transmit_compressed_total"
+}
+
local pattern = "([^%s:]+):%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)"
local function scrape()
+local netsubstat = {
+ "IcmpMsg",
+ "Icmp",
+ "IpExt",
+ "Ip",
+ "TcpExt",
+ "Tcp",
+ "UdpLite",
+ "Udp"
+}
+
local function scrape()
-- NOTE: Both of these are missing in OpenWRT kernels.
-- See: https://dev.openwrt.org/ticket/15781
local netstat = get_contents("/proc/net/netstat") .. get_contents("/proc/net/snmp")
-- all devices
- local netsubstat = {"IcmpMsg", "Icmp", "IpExt", "Ip", "TcpExt", "Tcp", "UdpLite", "Udp"}
for i, nss in ipairs(netsubstat) do
local substat_s = string.match(netstat, nss .. ": ([A-Z][A-Za-z0-9 ]+)")
if substat_s then
board_name = string.sub(get_contents("/tmp/sysinfo/board_name"), 1, -2)
}
-for k, v in string.gmatch(get_contents("/etc/openwrt_release"), "(DISTRIB_%w+)='(%w+)'\n") do
+for k, v in string.gmatch(get_contents("/etc/openwrt_release"), "(DISTRIB_%w+)='(.-)'\n") do
if k == "DISTRIB_ID" then
labels["id"] = v
elseif k == "DISTRIB_RELEASE" then
local function scrape()
-- current time
- metric("node_time", "counter", nil, os.time())
+ metric("node_time_seconds", "counter", nil, os.time())
end
return { scrape = scrape }
local function scrape()
local metric_wifi_network_quality = metric("wifi_network_quality","gauge")
local metric_wifi_network_bitrate = metric("wifi_network_bitrate","gauge")
- local metric_wifi_network_noise = metric("wifi_network_noise","gauge")
- local metric_wifi_network_signal = metric("wifi_network_signal","gauge")
+ local metric_wifi_network_noise = metric("wifi_network_noise_dbm","gauge")
+ local metric_wifi_network_signal = metric("wifi_network_signal_dbm","gauge")
local u = ubus.connect()
local status = u:call("network.wireless", "status", {})
local iwinfo = require "iwinfo"
local function scrape()
- local metric_wifi_station_signal = metric("wifi_station_signal","gauge")
- local metric_wifi_station_tx_packets = metric("wifi_station_tx_packets","gauge")
- local metric_wifi_station_rx_packets = metric("wifi_station_rx_packets","gauge")
+ local metric_wifi_station_signal = metric("wifi_station_signal_dbm","gauge")
+ local metric_wifi_station_tx_packets = metric("wifi_station_tx_packets_total","gauge")
+ local metric_wifi_station_rx_packets = metric("wifi_station_rx_packets_total","gauge")
local u = ubus.connect()
local status = u:call("network.wireless", "status", {})
$(INSTALL_DATA) ./files/bridge.conf $(1)/etc/qemu
endef
+define Package/qemu-img
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Virtualization
+ TITLE:=QEMU Image utility
+ URL:=http://www.qemu.org
+ DEPENDS:=+glib2 $(CXX_DEPENDS) $(QEMU_DEPS_IN_HOST)
+endef
+
+define Package/qemu-img/install
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/qemu-img $(1)/usr/bin/qemu-img
+endef
+
+define Package/qemu-nbd
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Virtualization
+ TITLE:=QEMU Network Block Device Utility
+ URL:=http://www.qemu.org
+ DEPENDS:=+glib2 $(CXX_DEPENDS) $(QEMU_DEPS_IN_HOST) +kmod-nbd
+endef
+
+define Package/qemu-nbd/install
+ $(INSTALL_DIR) $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/qemu-nbd $(1)/usr/sbin/qemu-nbd
+endef
+
PKG_CONFIG_DEPENDS += CONFIG_PACKAGE_qemu-ga
# Naming rules used in qemu Makefile.target
QEMU_MAKE_TARGETS := \
$(if $(CONFIG_PACKAGE_qemu-ga),qemu-ga) \
$(if $(CONFIG_PACKAGE_qemu-bridge-helper),qemu-bridge-helper) \
+ $(if $(CONFIG_PACKAGE_qemu-img),qemu-img) \
+ $(if $(CONFIG_PACKAGE_qemu-nbd),qemu-nbd) \
$(foreach target,$(QEMU_TARGET_LIST),$(if $(CONFIG_PACKAGE_qemu-$(target)),subdir-$(target))) \
define Build/Compile
$(eval $(call BuildPackage,virtio-console-helper))
$(eval $(call BuildPackage,qemu-ga))
$(eval $(call BuildPackage,qemu-bridge-helper))
+$(eval $(call BuildPackage,qemu-img))
+$(eval $(call BuildPackage,qemu-nbd))
$(eval $(call BuildPackage,qemu-blobs))
$(foreach target,$(QEMU_TARGET_LIST), \
$(eval $(call BuildPackage,qemu-$(target))) \
PKG_NAME:=rtl-sdr
PKG_VERSION:=0.5.3-20150608-$(PKG_SOURCE_VERSION)
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git://git.osmocom.org/rtl-sdr.git
--- /dev/null
+From 6c01778cf7ff81d9a571291fee615b65961ca1d5 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <dwmw2@infradead.org>
+Date: Thu, 28 Jun 2018 16:21:11 +0100
+Subject: [PATCH] Fix inline functions to use 'static inline'
+
+With just 'inline', if the compiler decides not to inline them, it isn't
+required to emit them at all. For some targets with -Os that is causing
+build failures.
+
+Perhaps we might consider using '__attribute__((always_inline))' for
+GCC builds, but 'static inline' is a good start.
+---
+ src/rtl_adsb.c | 8 ++++----
+ src/rtl_power.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/rtl_adsb.c b/src/rtl_adsb.c
+index 9087de4..7aea8dd 100644
+--- a/src/rtl_adsb.c
++++ b/src/rtl_adsb.c
+@@ -183,7 +183,7 @@ int magnitute(uint8_t *buf, int len)
+ return len/2;
+ }
+
+-inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d)
++static inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d)
+ /* takes 4 consecutive real samples, return 0 or 1, BADSAMPLE on error */
+ {
+ int bit, bit_p;
+@@ -224,17 +224,17 @@ inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d
+ return BADSAMPLE;
+ }
+
+-inline uint16_t min16(uint16_t a, uint16_t b)
++static inline uint16_t min16(uint16_t a, uint16_t b)
+ {
+ return a<b ? a : b;
+ }
+
+-inline uint16_t max16(uint16_t a, uint16_t b)
++static inline uint16_t max16(uint16_t a, uint16_t b)
+ {
+ return a>b ? a : b;
+ }
+
+-inline int preamble(uint16_t *buf, int i)
++static inline int preamble(uint16_t *buf, int i)
+ /* returns 0/1 for preamble at index i */
+ {
+ int i2;
+diff --git a/src/rtl_power.c b/src/rtl_power.c
+index 00f4d9f..625d818 100644
+--- a/src/rtl_power.c
++++ b/src/rtl_power.c
+@@ -250,7 +250,7 @@ void sine_table(int size)
+ }
+ }
+
+-inline int16_t FIX_MPY(int16_t a, int16_t b)
++static inline int16_t FIX_MPY(int16_t a, int16_t b)
+ /* fixed point multiply and scale */
+ {
+ int c = ((int)a * (int)b) >> 14;
+--
+2.7.4
+
include $(TOPDIR)/rules.mk
PKG_NAME:=rtty
-PKG_VERSION:=4.1.2
-PKG_RELEASE:=1
+PKG_VERSION:=5.1.0
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_SOURCE_URL=https://github.com/zhaojh329/rtty.git
-PKG_MIRROR_HASH:=f0791728f21815cd2164889a494c14be2f7683c4200193a6270e9ff9b70a5ad6
+PKG_MIRROR_HASH:=0d81595305abae252b2914e53d0aa8e64de433357c147fd6391363a223c694d8
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
CATEGORY:=Utilities
SUBMENU:=Terminal
TITLE:=A reverse proxy WebTTY
- DEPENDS:=+libblobmsg-json
+ DEPENDS:=+libprotobuf-c
endef
define Package/rtty/default/description
#
# Copyright (C) 2006-2016 OpenWrt.org
-# Copyright (C) 2017 Luiz Angelo Daros de Luca <luizluca@gmail.com>
+# Copyright (C) 2017-2018 Luiz Angelo Daros de Luca <luizluca@gmail.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
PKG_NAME:=sane-backends
PKG_VERSION:=1.0.27
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://fossies.org/linux/misc \
https://alioth.debian.org/frs/download.php/file/4146/
$(call Package/sane-backends/Default)
SECTION:=libs
CATEGORY:=Libraries
- DEPENDS:=+libusb-compat
+ DEPENDS:=+libusb-1.0
TITLE+= (libraries)
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=sispmctl
-PKG_VERSION:=3.1+20120206
+PKG_VERSION:=4.0
PKG_RELEASE:=1
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=5ff4a05a5bcb6a64a9d6f77fed47014512f66b11
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=d09782160dbcc1ba3bd6a38941f38e130049d8383843f6f292409909678aed82
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=git://git.code.sf.net/p/sispmctl/git
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_HASH:=442d9bb9774da7214c222144035ac68ad5d25171040ce2731cfdf49b3365cfd5
PKG_MAINTAINER:=Richard Kunze <richard.kunze@web.de>
PKG_LICENSE:=GPL-2.0+
+PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
-PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
+define Package/libsispmctl
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=Silver Shield PM Control for Linux library
+ URL:=http://sispmctl.sourceforge.net
+ DEPENDS:=+libusb-compat
+endef
+
define Package/sispmctl
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Silver Shield PM Control for Linux
- URL:=http://sispmctl.sourceforge.net/
- DEPENDS:=+libusb-compat
+ URL:=http://sispmctl.sourceforge.net
+ DEPENDS:=+libsispmctl
endef
define Package/sispmctl/description
--enable-webless \
--disable-dependency-tracking
+define Package/libsispmctl/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libsispmctl* $(1)/usr/lib/
+endef
+
define Package/sispmctl/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sispmctl $(1)/usr/bin/
endef
+$(eval $(call BuildPackage,libsispmctl))
$(eval $(call BuildPackage,sispmctl))
+++ /dev/null
---- a/src/sispm_ctl.c
-+++ b/src/sispm_ctl.c
-@@ -33,6 +33,7 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <time.h>
-+#include <sys/types.h>
- #include <usb.h>
- #include <assert.h>
- #include "sispm_ctl.h"
---- a/src/main.c
-+++ b/src/main.c
-@@ -34,11 +34,11 @@
- #define __USE_XOPEN
- #include <time.h>
- #include <signal.h>
--#include <usb.h>
- #include <assert.h>
- #include <getopt.h>
- #include <sys/types.h>
- #include <sys/socket.h>
-+#include <usb.h>
-
- #include <fcntl.h>
-
include $(TOPDIR)/rules.mk
PKG_NAME:=stm32flash
-PKG_VERSION:=0.4
+PKG_VERSION:=0.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://sourceforge.net/projects/stm32flash/files
-PKG_HASH:=023f28b01f644edc235c8815a4352e359d3ebdbe6368aaf6bbc28bab3e6ffa5b
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_HASH:=97aa9422ef02e82f7da9039329e21a437decf972cb3919ad817f70ac9a49e306
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
PKG_MAINTAINER:=Christian Pointner <equinox@spreadspace.org>
PKG_LICENSE:=GPL-2.0+
include $(TOPDIR)/rules.mk
PKG_NAME:=sysstat
-PKG_VERSION:=11.6.0
-PKG_RELEASE:=2
+PKG_VERSION:=11.6.4
+PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://pagesperso-orange.fr/sebastien.godard/
-PKG_HASH:=14bb696545cba0d99e3492092c9ed15fe9b6da79df349695251b41d345e969a7
+PKG_HASH:=6aa6398b200f09a2874fffc9c31eb943aea64d707a4afe5f5f1751d876157b09
PKG_INSTALL:=1
+#include <limits.h>
#include <sys/types.h>
#include <sys/stat.h>
-
+ #include <ctype.h>
--- a/common.c
+++ b/common.c
-@@ -30,6 +30,7 @@
+@@ -32,6 +32,7 @@
#include <dirent.h>
#include <ctype.h>
#include <libgen.h>
+++ /dev/null
-From: Robert Luberda <robert@debian.org>
-Date: Wed, 9 Sep 2015 21:37:37 +0200
-Subject: Remove scscid()
-
-Remove sccsid() function togethwe with SCCSID string that
-contained __DATE__ and __TIME__ macros. This should cause
-binary to be more reproducible, see
-https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros
----
- cifsiostat.c | 3 ---
- iostat.c | 3 ---
- mpstat.c | 3 ---
- pidstat.c | 3 ---
- sadc.c | 3 ---
- sadf.c | 3 ---
- sar.c | 3 ---
- tapestat.c | 3 ---
- 8 files changed, 24 deletions(-)
-
-diff --git a/cifsiostat.c b/cifsiostat.c
-index a3c81d0..4668a7c 100644
---- a/cifsiostat.c
-+++ b/cifsiostat.c
-@@ -41,9 +41,6 @@
- #define _(string) (string)
- #endif
-
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- unsigned long long uptime0[2] = {0, 0};
- struct cifs_stats *st_cifs[2];
- struct io_hdr_stats *st_hdr_cifs;
-diff --git a/iostat.c b/iostat.c
-index 7b346e2..a0199d2 100644
---- a/iostat.c
-+++ b/iostat.c
-@@ -48,9 +48,6 @@
- #define _(string) (string)
- #endif
-
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- struct stats_cpu *st_cpu[2];
- unsigned long long uptime[2] = {0, 0};
- unsigned long long uptime0[2] = {0, 0};
-diff --git a/mpstat.c b/mpstat.c
-index 1c83ea2..e4a040b 100644
---- a/mpstat.c
-+++ b/mpstat.c
-@@ -43,9 +43,6 @@
- #define _(string) (string)
- #endif
-
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- unsigned long long uptime[3] = {0, 0, 0};
- unsigned long long uptime0[3] = {0, 0, 0};
-
-diff --git a/pidstat.c b/pidstat.c
-index 876635c..5372176 100644
---- a/pidstat.c
-+++ b/pidstat.c
-@@ -47,9 +47,6 @@
- #define _(string) (string)
- #endif
-
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- unsigned long long uptime[3] = {0, 0, 0};
- unsigned long long uptime0[3] = {0, 0, 0};
- struct pid_stats *st_pid_list[3] = {NULL, NULL, NULL};
-diff --git a/sadc.c b/sadc.c
-index 7cdbc38..bfb4dac 100644
---- a/sadc.c
-+++ b/sadc.c
-@@ -52,9 +52,6 @@
- #include "sensors/error.h"
- #endif
-
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- long interval = 0;
- unsigned int flags = 0;
-
-diff --git a/sadf.c b/sadf.c
-index 160b485..0c0017c 100644
---- a/sadf.c
-+++ b/sadf.c
-@@ -41,9 +41,6 @@
- # define _(string) (string)
- #endif
-
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- long interval = -1, count = 0;
-
- unsigned int flags = 0;
-diff --git a/sar.c b/sar.c
-index ccf426e..07a9b4a 100644
---- a/sar.c
-+++ b/sar.c
-@@ -42,9 +42,6 @@
- #define _(string) (string)
- #endif
-
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- /* Interval and count parameters */
- long interval = -1, count = 0;
-
-diff --git a/tapestat.c b/tapestat.c
-index 268e4a5..df0a01b 100644
---- a/tapestat.c
-+++ b/tapestat.c
-@@ -58,9 +58,6 @@
- #define _(string) (string)
- #endif
-
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- int cpu_nr = 0; /* Nb of processors on the machine */
- int flags = 0; /* Flag for common options and system state */
-
PKG_NAME:=tmux
PKG_VERSION:=2.7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/tmux/tmux/releases/download/$(PKG_VERSION)
tmux is a modern, BSD-licensed alternative to GNU screen.
endef
+define Package/tmux/conffiles
+/etc/tmux.conf
+endef
+
define Package/tmux/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/tmux $(1)/usr/bin/
include $(TOPDIR)/rules.mk
PKG_NAME:=unrar
-PKG_VERSION:=5.6.1
+PKG_VERSION:=5.6.5
PKG_RELEASE:=1
PKG_SOURCE:=unrarsrc-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.rarlab.com/rar
-PKG_HASH:=67c339dffa95f6c1bedcca40045e99de5852919dbfaa06e4a9c8f18cd5064e70
+PKG_HASH:=eba36a421bf41491818dee9507d934064622bc0bd9db6bbb8422a4706f200898
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>, \
Ted Hess <thess@kitschensync.net>
--disable-gpm \
--disable-acl \
--with-tlib=ncurses \
- --with-compiledby="non-existent-hostname-compiled"
+ --with-compiledby="non-existent-hostname-compiled" \
+ --disable-darwin
CONFIGURE_VARS += \
vim_cv_getcwd_broken=no \
default n
help
Create rules based on behavioral info generated by a Cuckoo sandbox
+
+ config YARA_module_dotnet
+ bool "Dotnet module"
+ default n
+ help
+ The dotnet module allows you to create more fine-grained rules
+ for .NET files by using attributes and features of the .NET file format
endif
include $(TOPDIR)/rules.mk
PKG_NAME:=yara
-PKG_VERSION:=3.7.0
+PKG_VERSION:=3.7.1
PKG_RELEASE:=1
PKG_LICENSE:=BSD-3-Clause
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/VirusTotal/yara/archive/v$(PKG_VERSION)/
-PKG_HASH:=01f0841e7387918c2b6d0b7fb48014bda41d1487be1cabf718a0576018969641
+PKG_HASH:=df077a29b0fffbf4e7c575f838a440f42d09b215fcb3971e6fb6360318a64892
PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1
URL:=http://virustotal.github.io/yara/
MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
DEPENDS:= +libopenssl
- DEPENDS+= +YARA_module_magic:libmagic
+ DEPENDS+= +YARA_module_magic:file
DEPENDS+= +YARA_module_cuckoo:jansson
MENU:=1
endef
endef
CONFIGURE_ARGS += \
- --disable-dotnet \
- $(if $(YARA_module_magic),--enable,--disable)-magic \
- $(if $(YARA_module_cuckoo),--enable,--disable)-cuckoo
+ $(if $(CONFIG_YARA_module_dotnet),--enable,--disable)-dotnet \
+ $(if $(CONFIG_YARA_module_magic),--enable,--disable)-magic \
+ $(if $(CONFIG_YARA_module_cuckoo),--enable,--disable)-cuckoo
define Package/yara/config
source "$(SOURCE)/Config.in"
include $(TOPDIR)/rules.mk
PKG_NAME:=yunbridge
-PKG_VERSION:=160
+PKG_VERSION:=1.6.0
+PKG_RELEASE:=1
-PKG_RELEASE=$(PKG_SOURCE_VERSION)
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/arduino/YunBridge.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=f2042052115e71ad2c91f77e78d21db8275fcdd6
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=367db3667c6d2d8e20a0a214895e1bf2546918b008d084c3e7ca1adba9527dda
+PKG_SOURCE_URL:=https://codeload.github.com/arduino/YunBridge/tar.gz/$(PKG_VERSION)?
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=9e5ffc7a0d0cc2c92e972e425adcc49b77cf39da075d31728e7755d316d910d8
+PKG_BUILD_DIR:=YunBridge-$(PKG_VERSION)
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
PKG_LICENSE:=GPL-2.0
include $(TOPDIR)/rules.mk
PKG_NAME:=zsh
-PKG_VERSION:=5.4.2
+PKG_VERSION:=5.5.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/zsh
-PKG_HASH:=957bcdb2c57f64c02f673693ea5a7518ef24b6557aeb3a4ce222cefa6d74acc9
+PKG_HASH:=774caa89e7aea5f33c3033cbffd93e28707f72ba5149c79709e48e6c2d2ee080
PKG_MAINTAINER:=Vadim A. Misbakh-Soloviov <openwrt-zsh@mva.name>
PKG_LICENSE:=ZSH