Merge pull request #7662 from neheb/lanes
authorHannu Nyman <hannu.nyman@iki.fi>
Thu, 27 Dec 2018 17:38:43 +0000 (19:38 +0200)
committerGitHub <noreply@github.com>
Thu, 27 Dec 2018 17:38:43 +0000 (19:38 +0200)
lualanes: Update to 3.13.0

149 files changed:
.circleci/Dockerfile
.circleci/config.yml
admin/zabbix/Makefile
lang/golang/golang-github-dchest-siphash/Makefile
lang/golang/golang-version.mk
lang/golang/golang/Makefile
lang/luv/Makefile
lang/node-mozilla-iot-gateway/Makefile
lang/node/Makefile
lang/node/patches/004-openssl-deprecated.patch [new file with mode: 0644]
lang/python/django/Makefile
lang/python/pyjwt/Makefile
lang/python/python-dpkt/Makefile
lang/python/python-mysql/Makefile
lang/python/python-requests/Makefile
lang/python/python-service-identity/Makefile
lang/python/python-six/Makefile
lang/tcl/Makefile
libs/alsa-lib/Makefile
libs/boost/Makefile
libs/fcgi/Makefile
libs/fcgi/patches/100-fcgio-int-type-fix.patch
libs/fcgi/patches/110-no_examples.patch
libs/fcgi/patches/120-stdio.patch
libs/fcgi/patches/200-Convert-AM_INIT_AUTOMAKE-AC_INIT-and-trigger-non-GNU.patch [new file with mode: 0644]
libs/glib2/Makefile
libs/ibrcommon/Makefile
libs/jansson/Makefile
libs/libaudiofile/Makefile
libs/libdouble-conversion/Makefile
libs/libedit/Makefile
libs/libgpg-error/Makefile
libs/libgpg-error/patches/001-cross-compile-fix.patch
libs/libndpi/Makefile
libs/libndpi/patches/0001-Move-the-configure-include-file-inclusion-and-code-d.patch [deleted file]
libs/libndpi/patches/0002-Fixes-600.patch [deleted file]
libs/libndpi/patches/0003-Fixed-duplicate-protocol-name.-607.patch [deleted file]
libs/libndpi/patches/0004-Added-missing-ndpi_protocol2id-prototype.patch [deleted file]
libs/libndpi/patches/0005-Do-not-use-the-available-clang-as-the-default-compil.patch [deleted file]
libs/libndpi/patches/0006-Backported-ndpi_protocol2id.patch [deleted file]
libs/libndpi/patches/0007-Symlink-the-shared-library-to-pwd.patch [deleted file]
libs/libndpi/patches/0008-Use-a-more-standard-path-for-pkg-config-files.patch [deleted file]
libs/libndpi/patches/0009-Correct-the-include-file-path-in-I-CFLAGS-argument.patch [deleted file]
libs/libsigc++/Makefile
libs/libsigc++/patches/001-no_doc_tests_examples.patch [deleted file]
libs/libsndfile/Makefile
libs/liburcu/Makefile
libs/libuwsc/Makefile
libs/libv4l/Makefile
libs/libv4l/patches/010-remove-libudev-check.patch [new file with mode: 0644]
libs/openldap/Makefile
libs/openldap/patches/001-automake-compat.patch
libs/openldap/patches/110-reproducible-builds.patch
libs/openldap/patches/800-openssl-deprecated.patch [deleted file]
libs/openldap/patches/901-reduce-slapd-default-mem-usage.patch [new file with mode: 0644]
libs/pcre/Makefile
libs/psqlodbc/Makefile
libs/sqlite3/Makefile
mail/msmtp/Makefile
mail/msmtp/patches/010-openssl-deprecated.patch [deleted file]
mail/nail/Makefile
mail/nail/patches/300-openssl-deprecated.patch [new file with mode: 0644]
mail/opendkim/Makefile
mail/opendkim/patches/010-openssl_1.1.0_compat.patch [deleted file]
mail/opendkim/patches/010-openssl_1.1_compat.patch [new file with mode: 0644]
mail/postfix/Makefile
mail/sendmail/Makefile
mail/sendmail/files/OpenWrt
mail/sendmail/files/sharedlibrary.m4
mail/sendmail/patches/200-openssl-1.1.1.patch [new file with mode: 0644]
mail/sendmail/patches/201-openssl-1.1.1-ecdhe.patch [new file with mode: 0644]
mail/sendmail/patches/202-openssl-deprecated.patch [new file with mode: 0644]
multimedia/crtmpserver/Makefile
multimedia/crtmpserver/patches/060-add-missing-includes.patch
multimedia/crtmpserver/patches/090-openssl-1.1-compat.diff [deleted file]
multimedia/crtmpserver/patches/090-openssl-1.1-compat.patch [new file with mode: 0644]
multimedia/crtmpserver/patches/100-openssl-deprecated.patch [new file with mode: 0644]
multimedia/gstreamer1/Makefile
net/adblock/Makefile
net/adblock/files/README.md
net/adblock/files/adblock.conf
net/adblock/files/adblock.init
net/adblock/files/adblock.sh
net/aria2/Makefile
net/aria2/files/aria2.init
net/aria2/patches/010-Platform-Fix-compilation-without-deprecated-OpenSSL-.patch [new file with mode: 0644]
net/banip/Makefile
net/banip/files/banip.sh
net/chaosvpn/Makefile
net/chaosvpn/patches/010-openssl-deprecated.patch [new file with mode: 0644]
net/clamav/Makefile
net/geth/Makefile
net/git/Makefile
net/gitolite/Makefile
net/haproxy/Makefile
net/haproxy/get-latest-patches.sh
net/haproxy/patches/001-deprecated-openssl.patch
net/mdnsresponder/Makefile
net/mdnsresponder/patches/100-linux_fixes.patch
net/mdnsresponder/patches/120-reproducible-builds.patch
net/mosquitto/Makefile
net/mwan3/Makefile
net/mwan3/files/usr/sbin/mwan3
net/mwan3/files/usr/sbin/mwan3track
net/nginx/Config.in
net/nginx/Config_ssl.in
net/nginx/Makefile
net/nut/Makefile
net/nut/files/nut-server.init
net/nut/files/nut_server
net/samba4/Makefile
net/shorewall-core/Makefile
net/shorewall-lite/Makefile
net/shorewall/Makefile
net/shorewall6-lite/Makefile
net/shorewall6/Makefile
net/snort/Makefile
net/snort/patches/002-fix_include.patch [new file with mode: 0644]
net/softethervpn/Makefile
net/subversion/Makefile
net/tinc/Makefile
net/tinc/patches/010-Fix-compilation-when-OpenSSL-has-no-ENGINE-support.patch [new file with mode: 0644]
net/tinc/patches/020-Fix-compilation-without-deprecated-OpenSSL-APIs.patch [new file with mode: 0644]
net/unbound/Makefile
net/unbound/patches/101-dns64-crash.patch [new file with mode: 0644]
net/xtables-addons/Makefile
net/xtables-addons/patches/100-add-rtsp-conntrack.patch
sound/shairport-sync/Makefile
utils/acpica-unix/Makefile
utils/dbus/Makefile
utils/fish/Makefile
utils/gammu/Makefile
utils/logrotate/Makefile
utils/mariadb/Makefile
utils/mariadb/conf/50-client.cnf [new file with mode: 0644]
utils/mariadb/conf/50-mysql-clients.cnf [new file with mode: 0644]
utils/mariadb/conf/50-server.cnf [new file with mode: 0644]
utils/mariadb/conf/my.cnf
utils/mariadb/conf/mysqld.default [deleted file]
utils/mariadb/files/mysqld.config [new file with mode: 0644]
utils/mariadb/files/mysqld.init
utils/mariadb/patches/180-libedit.patch [new file with mode: 0644]
utils/prometheus-node-exporter-lua/Makefile
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/ltq-dsl.lua [new file with mode: 0644]
utils/prometheus/Makefile
utils/pv/Makefile
utils/qemu/Makefile
utils/rtty/Makefile
utils/tio/Makefile

index b619ffd74c5a4bfa8c95e01077672cd5186f2b72..b3575b2066f2bed74272f55f56c293562ef555a5 100644 (file)
@@ -1,5 +1,11 @@
 FROM debian:9
 
+
+# Configuration version history
+# v1.0   - Initial version by Etienne Champetier
+# v1.0.1 - Run as non-root, add unzip, xz-utils
+# v1.0.2 - Add bzr
+
 RUN apt update && apt install -y \
 build-essential \
 curl \
@@ -11,6 +17,7 @@ libncurses5-dev \
 libssl-dev \
 python \
 subversion \
+bzr \
 time \
 wget \
 zlib1g-dev \
index 854dd619a616686931865e3f04bd21ec85434f11..8fc53ba68262a6a4f6233f059322315ce0971708 100644 (file)
@@ -2,10 +2,11 @@ version: 2.0
 jobs:
   build:
     docker:
-      - image: docker.io/openwrtorg/packages-cci:v1.0.1
+      - image: docker.io/openwrtorg/packages-cci:v1.0.2
     environment:
-      - SDK_BASE_URL: "https://downloads.openwrt.org/snapshots/targets/ar71xx/generic"
-      - SDK_FILE: "openwrt-sdk-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64.tar.xz"
+      - SDK_HOST: "downloads.openwrt.org"
+      - SDK_PATH: "snapshots/targets/ar71xx/generic"
+      - SDK_FILE: "openwrt-sdk-ar71xx-generic_*.Linux-x86_64.tar.xz"
       - BRANCH: "master"
     steps:
       - checkout:
@@ -39,7 +40,7 @@ jobs:
                fi
 
                subject="$(git show -s --format=%s $commit)"
-               if echo "$subject" | grep -q -e '^[0-9A-Za-z,/_-]\+: ' -e '^Revert '; then
+               if echo "$subject" | grep -q -e '^[0-9A-Za-z,+/_-]\+: ' -e '^Revert '; then
                  echo_green "Commit subject line seems ok ($subject)"
                else
                  echo_red "Commit subject line MUST start with '<package name>: ' ($subject)"
@@ -62,10 +63,10 @@ jobs:
           name: Download the SDK
           working_directory: ~/sdk
           command: |
-             curl "$SDK_BASE_URL/sha256sums" -sS -o sha256sums
-             curl "$SDK_BASE_URL/sha256sums.asc" -sS -o sha256sums.asc
+             curl "https://$SDK_HOST/$SDK_PATH/sha256sums" -sS -o sha256sums
+             curl "https://$SDK_HOST/$SDK_PATH/sha256sums.asc" -sS -o sha256sums.asc
              gpg --with-fingerprint --verify sha256sums.asc sha256sums
-             curl "$SDK_BASE_URL/$SDK_FILE" -sS -o "$SDK_FILE"
+             rsync -av "$SDK_HOST::downloads/$SDK_PATH/$SDK_FILE" .
              sha256sum -c --ignore-missing sha256sums
 
       - run:
index 24b26971576dca86d16a64010d25829ca9647d7c..916e12f58cdd8e9c8939b3027c1b94d9031cf5fe 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zabbix
-PKG_VERSION:=3.4.14
-PKG_RELEASE:=6
+PKG_VERSION:=4.0.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=7443873cc970672d3c884230d3aeb082f2d8afcc2b757506c2d684ffdd12d77e
+PKG_HASH:=1cef52e89dc8d20343d8b9c3881490bf86e98102de2229a3b852009f1659780c
 PKG_SOURCE_URL:=@SF/zabbix
 
 PKG_LICENSE:=GPL-2.0
@@ -75,7 +75,7 @@ define Package/zabbix/Default
   SUBMENU:=zabbix
   MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
   USERID:=zabbix=53:zabbix=53
-  DEPENDS += $(ICONV_DEPENDS) +libpcre +ZABBIX_GNUTLS:libgnutls +ZABBIX_OPENSSL:libopenssl
+  DEPENDS += $(ICONV_DEPENDS) +libpcre +zlib +ZABBIX_GNUTLS:libgnutls +ZABBIX_OPENSSL:libopenssl
 endef
 
 define Package/zabbix-agentd
index 45cd8b71e7c7eac24b5700e47587d222ea8ba609..1c8404ddfb01120f251b4e83aab6b0be88dea481 100644 (file)
@@ -8,17 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=golang-github-dchest-siphash
+PKG_VERSION:=1.2.1
 PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/dchest/siphash.git
-PKG_SOURCE_VERSION:=4ebf1de738443ea7f45f02dc394c4df1942a126d
-PKG_SOURCE_DATE:=20160831
-PKG_MIRROR_HASH:=57da99437a6dba8c0b34bb09da48c0b8b1e70391ae0e3563453206794defe051
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/dchest/siphash/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=90c5e8ba62b64b2f76ed58c87dd50456171610049bef51fd71bc593c1744fad2
+PKG_BUILD_DIR:=$(BUILD_DIR)/siphash-$(PKG_VERSION)
 
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=CC0-1.0
 PKG_LICENSE_FILES:=README.md
-PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 
 PKG_BUILD_DEPENDS:=golang/host
 PKG_BUILD_PARALLEL:=1
index 9e69d3bc8f5e62f70a410359df599f23c119b500..0e0c75778d9502e7323eb809df761eaa89202a22 100644 (file)
@@ -11,4 +11,4 @@ endif
 
 
 GO_VERSION_MAJOR_MINOR:=1.11
-GO_VERSION_PATCH:=2
+GO_VERSION_PATCH:=4
index 7b72a7a885e82b6663116b3d07f3397cd6b6921a..ff4bcb053ddb3129c2437306ddfd5f610efe535c 100644 (file)
@@ -18,7 +18,7 @@ GO_SOURCE_URLS:=https://dl.google.com/go/ \
 
 PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
 PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
-PKG_HASH:=042fba357210816160341f1002440550e952eb12678f7c9e7e9d389437942550
+PKG_HASH:=4cfd42720a6b1e79a8024895fa6607b69972e8e32446df76d6ce79801bbadb15
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
index 1c54f29bb3ad5c0b6c18d0ba949d308549136951..823885528559ab4bed3685c7ad70f2f10ca226d2 100644 (file)
@@ -1,19 +1,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=luv
+PKG_VERSION:=1.22.0-1
 PKG_RELEASE:=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
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/luvit/luv/releases/download/$(PKG_VERSION)
+PKG_HASH:=27886acb3d3f531a3d6ca70360d2593ddf1a8d4daf94ca3beea14d9381227ff7
 
+PKG_MAINTAINER:=Morteza Milani <milani@pichak.co>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
-PKG_USE_MIPS16:=0
-
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
@@ -23,7 +21,6 @@ define Package/luv
   CATEGORY:=Languages
   TITLE:=Luv
   URL:=https://github.com/luvit/luv
-  MAINTAINER:=Morteza Milani <milani@pichak.co>
   DEPENDS:=+libuv +!LUV_USE_LUAJIT_ENGINE:lua
 endef
 
index d2252259a1938b8ca863f5627c92eeafaadaa7ed..c555edbd54c2fc9547252fce463f980901518568 100644 (file)
@@ -9,16 +9,16 @@ include $(TOPDIR)/rules.mk
 
 PKG_NPM_NAME:=mozilla-iot-gateway
 PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_VERSION:=0.6.0
-PKG_RELEASE:=2
-PKG_REV:=df2d06def2051238bde7b8e5ee306262235d4c9f
+PKG_VERSION:=0.6.1
+PKG_RELEASE:=1
+PKG_REV:=2bcdf4866872b1e8992ee70ff6fc65566d6288d8
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/mozilla-iot/gateway.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=$(PKG_REV)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MIRROR_HASH:=d686df778a7de693db11273eb87c16ec4d9e3ff9bbb550ed3ef94e29e96750e2
+PKG_MIRROR_HASH:=c424b6f5f011c0cceb455458c855854395d47e902fd4ec2d63564c5e736d4fcd
 
 PKG_BUILD_DEPENDS:=node/host openzwave
 
@@ -74,9 +74,9 @@ define Package/node-mozilla-iot-gateway/install
        $(RM) -r $(1)/opt/mozilla-iot/gateway/node_modules/ursa-optional/build/Release/ursaNative.node
        $(RM) -r $(1)/opt/mozilla-iot/gateway/node_modules/ursa-optional/build/Release/obj.target/ursaNative.node
 
-       $(INSTALL_DIR) $(1)/opt/mozilla-iot/gateway/node_modules/sqlite3/lib/binding/node-v57-linux-arm/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/things-gateway/node_modules/sqlite3/lib/binding/node-v57-linux-arm/node_sqlite3.node \
-               $(1)/opt/mozilla-iot/gateway/node_modules/sqlite3/lib/binding/node-v57-linux-arm/
+       $(INSTALL_DIR) $(1)/opt/mozilla-iot/gateway/node_modules/sqlite3/lib/binding/node-v57-linux-$(CPU)/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/things-gateway/node_modules/sqlite3/lib/binding/node-v57-linux-$(CPU)/node_sqlite3.node \
+               $(1)/opt/mozilla-iot/gateway/node_modules/sqlite3/lib/binding/node-v57-linux-$(CPU)/
 
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/mozilla-iot-gateway.init $(1)/etc/init.d/mozilla-iot-gateway
index bf0f51f4e4b78eab61e132ad34e9299e27422cce..cd3e149ec04b1f4b34eca653c80ddfed1322b6a8 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=node
-PKG_VERSION:=v8.12.0
+PKG_VERSION:=v8.14.1
 PKG_RELEASE:=1
 PKG_SOURCE:=node-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://nodejs.org/dist/${PKG_VERSION}
-PKG_HASH:=5a9dff58016c18fb4bf902d963b124ff058a550ebcd9840c677757387bce419a
+PKG_HASH:=b1df87803ddffb76fc6739f025f69f6b8288514fcd2f278f0d675ac3d52a6b9b
 
 HOST_BUILD_DEPENDS:=python/host
 PKG_BUILD_DEPENDS:=python/host
@@ -37,7 +37,7 @@ define Package/node
   SUBMENU:=Node.js
   TITLE:=Node.js is a platform built on Chrome's JavaScript runtime
   URL:=https://nodejs.org/
-  DEPENDS:=@(HAS_FPU||KERNEL_MIPS_FPU_EMULATOR) +libstdcpp +libopenssl +zlib +USE_UCLIBC:libpthread +USE_UCLIBC:librt +NODEJS_ICU:icu
+  DEPENDS:=@(HAS_FPU||KERNEL_MIPS_FPU_EMULATOR) +libstdcpp +libopenssl +zlib +libnghttp2 +libuv +libhttp-parser +USE_UCLIBC:libpthread +USE_UCLIBC:librt +NODEJS_ICU:icu
 endef
 
 define Package/node/description
@@ -86,6 +86,9 @@ CONFIGURE_ARGS:= \
        --without-snapshot \
        --shared-zlib \
        --shared-openssl \
+       --shared-nghttp2 \
+       --shared-libuv \
+       --shared-http-parser \
        --with-intl=$(if $(CONFIG_NODEJS_ICU),system-icu,none) \
        $(if $(findstring mips,$(NODEJS_CPU)), \
                $(if $(CONFIG_SOFT_FLOAT),--with-mips-float-abi=soft)) \
diff --git a/lang/node/patches/004-openssl-deprecated.patch b/lang/node/patches/004-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..8b27ab5
--- /dev/null
@@ -0,0 +1,96 @@
+diff --git a/src/node_crypto.cc b/src/node_crypto.cc
+index c3779c0..611fb43 100644
+--- a/src/node_crypto.cc
++++ b/src/node_crypto.cc
+@@ -43,6 +43,11 @@
+ #include <string.h>
+ #include <vector>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define X509_get0_notBefore X509_get_notBefore
++#define X509_get0_notAfter X509_get_notAfter
++#endif
++
+ #define THROW_AND_RETURN_IF_NOT_STRING_OR_BUFFER(val, prefix)                  \
+   do {                                                                         \
+     if (!Buffer::HasInstance(val) && !val->IsString()) {                       \
+@@ -536,6 +541,7 @@ void SecureContext::Init(const FunctionCallbackInfo<Value>& args) {
+       method = SSLv23_server_method();
+     } else if (strcmp(*sslmethod, "SSLv23_client_method") == 0) {
+       method = SSLv23_client_method();
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+     } else if (strcmp(*sslmethod, "TLSv1_method") == 0) {
+       method = TLSv1_method();
+     } else if (strcmp(*sslmethod, "TLSv1_server_method") == 0) {
+@@ -554,6 +560,14 @@ void SecureContext::Init(const FunctionCallbackInfo<Value>& args) {
+       method = TLSv1_2_server_method();
+     } else if (strcmp(*sslmethod, "TLSv1_2_client_method") == 0) {
+       method = TLSv1_2_client_method();
++#else
++    } else if (strcmp(*sslmethod, "TLS_method") == 0) {
++      method = TLS_method();
++    } else if (strcmp(*sslmethod, "TLS_server_method") == 0) {
++      method = TLS_server_method();
++    } else if (strcmp(*sslmethod, "TLS_client_method") == 0) {
++      method = TLS_client_method();
++#endif
+     } else {
+       return env->ThrowError("Unknown method");
+     }
+@@ -1799,7 +1813,7 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
+     rsa = nullptr;
+   }
+-  ASN1_TIME_print(bio, X509_get_notBefore(cert));
++  ASN1_TIME_print(bio, X509_get0_notBefore(cert));
+   BIO_get_mem_ptr(bio, &mem);
+   info->Set(context, env->valid_from_string(),
+             String::NewFromUtf8(env->isolate(), mem->data,
+@@ -1807,7 +1821,7 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
+                                 mem->length)).FromJust();
+   (void) BIO_reset(bio);
+-  ASN1_TIME_print(bio, X509_get_notAfter(cert));
++  ASN1_TIME_print(bio, X509_get0_notAfter(cert));
+   BIO_get_mem_ptr(bio, &mem);
+   info->Set(context, env->valid_to_string(),
+             String::NewFromUtf8(env->isolate(), mem->data,
+@@ -6194,8 +6208,12 @@ void TimingSafeEqual(const FunctionCallbackInfo<Value>& args) {
+ }
+ void InitCryptoOnce() {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+   SSL_load_error_strings();
+   OPENSSL_no_config();
++#else
++  OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL);
++#endif
+   // --openssl-config=...
+   if (!openssl_config.empty()) {
+@@ -6217,10 +6235,10 @@ void InitCryptoOnce() {
+     }
+   }
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+   SSL_library_init();
+   OpenSSL_add_all_algorithms();
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+   crypto_lock_init();
+   CRYPTO_set_locking_callback(crypto_lock_cb);
+   CRYPTO_THREADID_set_callback(crypto_threadid_cb);
+diff --git a/src/node_crypto.h b/src/node_crypto.h
+index 58f5b72..875a787 100644
+--- a/src/node_crypto.h
++++ b/src/node_crypto.h
+@@ -37,6 +37,9 @@
+ #include "v8.h"
+ #include <openssl/ssl.h>
++#include <openssl/bn.h>
++#include <openssl/rsa.h>
++#include <openssl/dh.h>
+ #include <openssl/ec.h>
+ #include <openssl/ecdh.h>
+ #ifndef OPENSSL_NO_ENGINE
index 4cb91fca3cebd92f813564fcc98eeb4effddc963..180d5e1373a2f19adf38064841f385a9c115d2f4 100644 (file)
@@ -8,15 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=django
-PKG_VERSION:=1.11.16
+PKG_VERSION:=1.11.17
 PKG_RELEASE=1
-PKG_LICENSE:=BSD-3-Clause
 
 PKG_SOURCE:=Django-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/D/Django
-PKG_HASH:=29268cc47816a44f27308e60f71da635f549c47d8a1d003b28de55141df75791
+PKG_HASH:=a787ee66f4b4cf8ed753661cabcec603989677fa3a107fcb7f15511a44bdb483
 PKG_BUILD_DIR=$(BUILD_DIR)/Django-$(PKG_VERSION)
 
+PKG_MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE LICENSE.python
+PKG_CPE_ID:=cpe:/a:djangoproject:django
+
 include $(INCLUDE_DIR)/package.mk
 include ../python-package.mk
 
@@ -25,7 +29,6 @@ define Package/django
     SECTION:=lang
     CATEGORY:=Languages
     TITLE:=The web framework for perfectionists with deadlines.
-    MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
     URL:=https://www.djangoproject.com/
     DEPENDS:=+python
 endef
index e265979e02b3ccdcb85cb833e898010f724b2839..a4153dcc6ffda2b16c04cd4e974ceb75f8c61b2d 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pyjwt
-PKG_VERSION:=1.7.0
+PKG_VERSION:=1.7.1
 PKG_RELEASE:=1
 PKG_LICENSE:=MIT
 
 PKG_SOURCE:=PyJWT-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/P/PyJWT
-PKG_HASH:=ddec8409c57e9d371c6006e388f91daf3b0b43bdf9fcbf99451fb7cf5ce0a86d
+PKG_HASH:=8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-PyJWT-$(PKG_VERSION)
 PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
 
index e6b0417987fa89b5dde4f979d6f1d06e36f9f97e..f9f2018474df922bab55fd808ed6a285039edf62 100644 (file)
@@ -8,17 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-dpkt
-PKG_VERSION:=1.91
+PKG_VERSION:=1.9.2
 PKG_RELEASE:=1
+
+PKG_SOURCE:=dpkt-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/d/dpkt
+PKG_HASH:=52a92ecd5ca04d5bd852bb11cb2eac4bbe38b42a7c472e0d950eeb9f82a81e54
+PKG_BUILD_DIR:=$(BUILD_DIR)/dpkt-$(PKG_VERSION)
+
 PKG_MAINTAINER:=Andrew McConachie <andrew@depht.com>
 PKG_LICENSE:=BSD-3-Clause
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/kbandla/dpkt.git
-PKG_SOURCE_VERSION:=6cd0909d613a66033ecdefaca6cc07cfa7d46d6b
-PKG_MIRROR_HASH:=fe8657552b1dbaf8b9eba50168730e200567dc88a06932aa1cf60dc93211d16b
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
 include ../python-package.mk
index 01a06a5b4d8e54c0671cf7ee071b00576bf74e8f..a56bfc3086e5f60d65e49c714e4bc99840476251 100644 (file)
@@ -8,14 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-mysql
-PKG_VERSION:=1.3.13
+PKG_VERSION:=1.3.14
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0
 
 PKG_SOURCE:=mysqlclient-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/m/mysqlclient
-PKG_HASH:=ff8ee1be84215e6c30a746b728c41eb0701a46ca76e343af445b35ce6250644f
-
+PKG_HASH:=3981ae9ce545901a36a8b7aed76ed02960a429f75dc53b7ad77fb2f9ab7cd56b
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-mysql-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
index 9723f60f01c74727062f5b83ccd9c957e023b047..cc2648761e8181b83fc551934f15c13c2693d075 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-requests
-PKG_VERSION:=2.20.1
+PKG_VERSION:=2.21.0
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 
 PKG_SOURCE:=requests-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/r/requests
-PKG_HASH:=ea881206e59f41dbd0bd445437d792e43906703fff75ca8ff43ccdb11f33f263
+PKG_HASH:=502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e
 PKG_BUILD_DIR:=$(BUILD_DIR)/requests-$(PKG_VERSION)
 
 PKG_CPE_ID:=cpe:/a:python-requests:requests
index 552ba3d310a042feca8acf2383010f78c5efab2d..f81ff1ab6c10a06778245997c853a171d552ca23 100644 (file)
@@ -8,13 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-service-identity
-PKG_VERSION:=17.0.0
-PKG_RELEASE:=2
+PKG_VERSION:=18.1.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=service_identity-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/de/2a/cab6e30be82c8fcd2339ef618036720eda954cf05daef514e386661c9221
-PKG_HASH:=4001fbb3da19e0df22c47a06d29681a398473af4aa9d745eca525b3b2c2302ab
-
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/s/service_identity
+PKG_HASH:=0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-service-identity-$(PKG_VERSION)
 
 PKG_LICENSE:=MIT
@@ -40,9 +39,10 @@ $(call Package/python-service-identity/Default)
   DEPENDS:= \
       +PACKAGE_python-service-identity:python-light \
       +PACKAGE_python-service-identity:python-attrs \
+      +PACKAGE_python-service-identity:python-cryptography \
+      +PACKAGE_python-service-identity:python-ipaddress \
       +PACKAGE_python-service-identity:python-pyasn1 \
-      +PACKAGE_python-service-identity:python-pyasn1-modules \
-      +PACKAGE_python-service-identity:python-pyopenssl
+      +PACKAGE_python-service-identity:python-pyasn1-modules
   VARIANT:=python
 endef
 
@@ -52,9 +52,9 @@ $(call Package/python-service-identity/Default)
   DEPENDS:= \
       +PACKAGE_python3-service-identity:python3-light \
       +PACKAGE_python3-service-identity:python3-attrs \
+      +PACKAGE_python3-service-identity:python3-cryptography \
       +PACKAGE_python3-service-identity:python3-pyasn1 \
-      +PACKAGE_python3-service-identity:python3-pyasn1-modules \
-      +PACKAGE_python3-service-identity:python3-pyopenssl
+      +PACKAGE_python3-service-identity:python3-pyasn1-modules
   VARIANT:=python3
 endef
 
index 2e7e4fa5b57fe94e005f1222d51fb538ded42cfa..033329137fe9bb6b4dc530725bea937710f5138d 100644 (file)
@@ -8,20 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-six
-PKG_VERSION:=1.11.0
-PKG_RELEASE:=2
+PKG_VERSION:=1.12.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=six-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe
-PKG_HASH:=70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9
-
-HOST_BUILD_DEPENDS:=python/host
-
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/s/six
+PKG_HASH:=d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-six-$(PKG_VERSION)
 
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>, Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>, Alexandru Ardelean <ardeleanalex@gmail.com>
+
+HOST_BUILD_DEPENDS:=python/host
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
@@ -35,7 +34,7 @@ define Package/python-six/Default
   SECTION:=lang
   CATEGORY:=Languages
   SUBMENU:=Python
-  URL:=https://pypi.python.org/pypi/six
+  URL:=https://github.com/benjaminp/six
 endef
 
 define Package/python-six
index ecb34f7d9428b31b5fd0fefafaac0f056df4572e..2f75f493dea9bc538c374aace5bf6be1b6785398 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tcl
 TCL_MAJOR_VERSION:=8.6
-PKG_VERSION:=${TCL_MAJOR_VERSION}.8
+PKG_VERSION:=${TCL_MAJOR_VERSION}.9
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)$(PKG_VERSION)-src.tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=c43cb0c1518ce42b00e7c8f6eaddd5195c53a98f94adc717234a65cbcfd3f96a
+PKG_HASH:=ad0cd2de2c87b9ba8086b43957a0de3eb2eb565c7159d5f53ccbba3feb915f4e
 PKG_LICENSE:=TCL
 PKG_LICENSE_FILES:=license.terms
 PKG_MAINTAINER:=Joe Mistachkin <joe@mistachkin.com>
@@ -34,7 +34,7 @@ define Package/tcl
   CATEGORY:=Languages
   DEPENDS:=+libpthread +zlib
   TITLE:=The Tcl language
-  URL:=http://www.tcl.tk/
+  URL:=https://www.tcl.tk/
 endef
 
 define Package/tcl/description
index 40d50a543b272d1ee0de3ce0a7003a48f603e8f5..749a0a73e4184c75610b4115b663dae6959d6b92 100644 (file)
@@ -42,6 +42,10 @@ define Package/alsa-lib/description
  You must have enabled the ALSA support in the kernel.
 endef
 
+define Package/alsa-lib/conffiles
+/etc/asound.conf
+endef
+
 TARGET_CFLAGS += $(FPIC)
 
 CONFIGURE_ARGS+= \
index 7434579b86c9956b007b08af0507463ab2ba708d..35599b90b1dfca1a245a1933e621081a346b7afe 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=boost
-PKG_VERSION:=1.68.0
-PKG_SOURCE_VERSION:=1_68_0
-PKG_RELEASE:=4
+PKG_VERSION:=1.69.0
+PKG_SOURCE_VERSION:=1_69_0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)/$(PKG_NAME)/$(PKG_VERSION) https://dl.bintray.com/boostorg/release/$(PKG_VERSION)/source/
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)_$(PKG_SOURCE_VERSION)
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)_$(PKG_SOURCE_VERSION)
-PKG_HASH:=7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7
+PKG_HASH:=8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406
 PKG_LICENSE:=Boost Software License <http://www.boost.org/users/license.html>
 PKG_MAINTAINER:=Carlos M. Ferreira <carlosmf.pt@gmail.com>
 
@@ -38,7 +38,7 @@ define Package/boost/Default
 endef
 
 define Package/boost/description
-This package provides the Boost v1.68.0 libraries.
+This package provides the Boost v1.69.0 libraries.
 Boost is a set of free, peer-reviewed, portable C++ source libraries.
 
 -----------------------------------------------------------------------------
@@ -76,7 +76,6 @@ This package provides the following run-time libraries:
  - random
  - regex
  - serialization and wserialization
- - signals
  - stackstrace
  - system
  - thread
@@ -85,7 +84,7 @@ This package provides the following run-time libraries:
  - wave
 
 There are many more header-only libraries supported by Boost.
-See more at http://www.boost.org/doc/libs/1_67_0/
+See more at http://www.boost.org/doc/libs/1_69_0/
 endef
 
 PKG_BUILD_DEPENDS:=boost/host PACKAGE_python:python PACKAGE_python3:python3
@@ -129,6 +128,35 @@ define Package/boost/config
                depends on PACKAGE_boost
                comment "Boost compilation options."
 
+               choice
+                       prompt "Compile Visibility."
+                               default boost-compile-visibility-hidden
+                               help
+                                       Choose Boost symbols compilation visibility.
+                                       -> Global:
+                                               - a.k.a. "default" in gcc documentation. Global symbols are considered public,
+                                                they are exported from shared libraries and can be redefined by another
+                                                shared library or executable.
+                                       -> Protected:
+                                               - a.k.a. "symbolic". Protected symbols are exported from shared libraries but
+                                                cannot be redefined by another shared library or executable. This mode is
+                                                not supported on some platforms, for example OS X.
+                                       -> Hidden:
+                                               - Hidden symbols are not exported from shared libraries and cannot be 
+                                                redefined by a different shared library or executable loaded in a process.
+                                                In this mode, public symbols have to be explicitly marked in the source code
+                                                to be exported from shared libraries. This is the recommended mode.
+
+                       config boost-compile-visibility-global
+                               bool "Global"
+                       
+                       config boost-compile-visibility-protected
+                               bool "Protected"
+                       
+                       config boost-compile-visibility-hidden
+                               bool "Hidden"
+               endchoice
+
                choice
                        prompt "Compile Boost libraries."
                                default boost-static-and-shared-libs
@@ -326,7 +354,6 @@ $(eval $(call DefineBoostLibrary,random,system,))
 $(eval $(call DefineBoostLibrary,regex,,))
 $(eval $(call DefineBoostLibrary,serialization,,))
 $(eval $(call DefineBoostLibrary,wserialization,serialization,))
-$(eval $(call DefineBoostLibrary,signals,,))
 $(eval $(call DefineBoostLibrary,stacktrace,,))
 $(eval $(call DefineBoostLibrary,system,,))
 $(eval $(call DefineBoostLibrary,thread,system chrono atomic,))
@@ -374,6 +401,9 @@ define Build/Compile
                        --ignore-site-config \
                        --toolset=gcc-$(ARCH) abi=$(BOOST_ABI) \
                        --disable-long-double \
+                       $(if $(CONFIG_boost-compile-visibility-global), visibility=global,) \
+                       $(if $(CONFIG_boost-compile-visibility-protected), visibility=protected,) \
+                       $(if $(CONFIG_boost-compile-visibility-hidden), visibility=hidden,) \
                        $(if $(CONFIG_boost-variant-release), variant=release,) \
                        $(if $(CONFIG_boost-variant-debug), variant=debug,) \
                        $(if $(CONFIG_boost-variant-profile), variant=profile,) \
index afa66dfc01c4dc2945ebc2bdae3b23ee3f1da311..293ffebe6c1eb7457cd5c28581b4d06278e7e517 100644 (file)
@@ -1,6 +1,4 @@
 #
-# Copyright (C) 2007-2011 OpenWrt.org
-#
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
@@ -8,17 +6,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fcgi
-PKG_VERSION:=2.4.0
+PKG_VERSION:=2.4.1
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.fastcgi.com/dist/
-PKG_HASH:=66fc45c6b36a21bf2fbbb68e90f780cc21a9da1fffbae75e76d2b4402d3f05b9
-
-PKG_FIXUP:=libtool-ucxx
+PKG_SOURCE:=$(PKG_NAME)2-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/FastCGI-Archives/fcgi2/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=53cc36624bb92a88e3d5a3d696282e1af24b280c3f275604123d9c6d407173e2
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)2-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Jacob Siverskog <jacob@teenageengineering.com>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE.TERMS
 
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/uclibc++.mk
@@ -27,13 +28,13 @@ include $(INCLUDE_DIR)/package.mk
 define Package/fcgi/Default
   SECTION:=libs
   CATEGORY:=Libraries
-  URL:=http://www.fastcgi.com/
+  URL:=https://fastcgi-archives.github.io/
 endef
 
 define Package/fcgi
   $(call Package/fcgi/Default)
   MENU:=1
-  DEPENDS:= +libpthread
+  DEPENDS:=+libpthread
   TITLE:=Shared library of FastCGI
 endef
 
@@ -49,15 +50,6 @@ define Package/fcgi/description
  server specific APIs.
 endef
 
-TARGET_CFLAGS += $(FPIC)
-
-CONFIGURE_ARGS += \
-       --enable-shared \
-       --enable-static \
-
-CONFIGURE_VARS += \
-       LIBS="-lm" \
-
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/fastcgi.h $(1)/usr/include/
index 0fbfbfd227a1ae43e27c0c8c842aa2520ce7ca91..c517551d93646261d1dab3b8198eb3f992702cd6 100644 (file)
@@ -1,8 +1,8 @@
-Index: fcgi-2.4.0/include/fcgio.h
-===================================================================
---- fcgi-2.4.0.orig/include/fcgio.h    2007-07-17 13:30:28.000000000 +0200
-+++ fcgi-2.4.0/include/fcgio.h 2007-07-17 13:30:28.000000000 +0200
-@@ -77,10 +77,10 @@
+diff --git a/include/fcgio.h b/include/fcgio.h
+index 20d222a..92eda3c 100644
+--- a/include/fcgio.h
++++ b/include/fcgio.h
+@@ -77,10 +77,10 @@ protected:
      virtual int sync();
  
      // Remove and return the current character.
@@ -15,22 +15,23 @@ Index: fcgi-2.4.0/include/fcgio.h
  
      // Use a buffer.  The only reasons that a buffer would be useful is
      // to support the use of the unget()/putback() or seek() methods.  Using
-diff -urN fcgi-2.4.0/libfcgi/fcgio.cpp fcgi-2.4.0.new/libfcgi/fcgio.cpp
---- fcgi-2.4.0/libfcgi/fcgio.cpp       2002-02-24 21:12:22.000000000 +0100
-+++ fcgi-2.4.0.new/libfcgi/fcgio.cpp   2007-08-28 11:22:22.000000000 +0200
-@@ -89,7 +89,7 @@
+diff --git a/libfcgi/fcgio.cpp b/libfcgi/fcgio.cpp
+index 5a54c11..e57b622 100644
+--- a/libfcgi/fcgio.cpp
++++ b/libfcgi/fcgio.cpp
+@@ -89,7 +89,7 @@ int fcgi_streambuf::sync()
  }
  
  // uflow() removes the char, underflow() doesn't
 -int fcgi_streambuf::uflow() 
 +std::basic_streambuf<char>::int_type fcgi_streambuf::uflow()
  {
-     int rv = underflow();
-     if (this->bufsize) gbump(1);
-@@ -97,7 +97,7 @@
+     if (this->bufsize)
+     {
+@@ -103,7 +103,7 @@ int fcgi_streambuf::uflow()
+     }
  }
                                
- // Note that the expected behaviour when there is no buffer varies
 -int fcgi_streambuf::underflow()
 +std::basic_streambuf<char>::int_type fcgi_streambuf::underflow()
  {
index 8c14e8ad354ceb330c9a583773632a190e91d74c..dc015b61c10544c026ac5a0062aac4e695cd7982 100644 (file)
@@ -1,8 +1,9 @@
-diff -urN fcgi-2.4.0/Makefile.am fcgi-2.4.0.new/Makefile.am
---- fcgi-2.4.0/Makefile.am     2001-12-22 14:05:39.000000000 +0100
-+++ fcgi-2.4.0.new/Makefile.am 2007-08-28 11:05:10.000000000 +0200
+diff --git a/Makefile.am b/Makefile.am
+index b35f7f3..c34a274 100755
+--- a/Makefile.am
++++ b/Makefile.am
 @@ -4,7 +4,7 @@
- #  $Id: Makefile.am,v 1.7 2001/12/22 13:05:39 robs Exp $
+ #  $Id: Makefile.am,v 1.8 2003/11/02 21:42:47 robs Exp $
  #
  
 -SUBDIRS = libfcgi cgi-fcgi examples include
@@ -10,15 +11,3 @@ diff -urN fcgi-2.4.0/Makefile.am fcgi-2.4.0.new/Makefile.am
  
  include_HEADERS = fcgi_config.h
  
-diff -urN fcgi-2.4.0/Makefile.in fcgi-2.4.0.new/Makefile.in
---- fcgi-2.4.0/Makefile.in     2003-01-19 18:21:15.000000000 +0100
-+++ fcgi-2.4.0.new/Makefile.in 2007-08-28 11:04:55.000000000 +0200
-@@ -93,7 +93,7 @@
- am__quote = @am__quote@
- install_sh = @install_sh@
--SUBDIRS = libfcgi cgi-fcgi examples include
-+SUBDIRS = libfcgi cgi-fcgi include
- include_HEADERS = fcgi_config.h
index 94c789434bd9b0cfb8bc4bc63c12ae7c8ec040e1..404d1d43dd03f010eac85f33b0114ebb0b27885e 100644 (file)
@@ -1,7 +1,7 @@
-Index: fcgi-2.4.0/libfcgi/fcgio.cpp
-===================================================================
---- fcgi-2.4.0.orig/libfcgi/fcgio.cpp  2014-05-15 10:43:15.153971782 +0200
-+++ fcgi-2.4.0/libfcgi/fcgio.cpp       2014-05-15 10:44:44.037974020 +0200
+diff --git a/libfcgi/fcgio.cpp b/libfcgi/fcgio.cpp
+index 5a54c11..9ecca45 100644
+--- a/libfcgi/fcgio.cpp
++++ b/libfcgi/fcgio.cpp
 @@ -23,6 +23,7 @@
  #endif
  
diff --git a/libs/fcgi/patches/200-Convert-AM_INIT_AUTOMAKE-AC_INIT-and-trigger-non-GNU.patch b/libs/fcgi/patches/200-Convert-AM_INIT_AUTOMAKE-AC_INIT-and-trigger-non-GNU.patch
new file mode 100644 (file)
index 0000000..7481f21
--- /dev/null
@@ -0,0 +1,33 @@
+From 78fac26891fe7494355021dbac109b807b8c6d53 Mon Sep 17 00:00:00 2001
+From: Joachim Nilsson <troglobit@gmail.com>
+Date: Mon, 14 May 2018 15:40:43 +0200
+Subject: [PATCH] Convert AM_INIT_AUTOMAKE() --> AC_INIT() and trigger non-GNU
+ project
+
+Converts from old-style configure syntax with AM_INIT_AUTOMAKE to
+AC_INIT and enable "foreign" mode, i.e. non-GNU conformant tree
+to avoid copying in COPYING and other files when autogen.sh runs.
+
+Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
+---
+ configure.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 2f72645..c5fbc4b 100755
+--- a/configure.in
++++ b/configure.in
+@@ -4,8 +4,8 @@ dnl     This file is an input file used by the GNU "autoconf" program to
+ dnl     generate the file "configure", which is run during the build
+ dnl     to configure the system for the local environment.
+-AC_INIT
+-AM_INIT_AUTOMAKE(fcgi, 2.4.1-SNAP-0910052249)
++AC_INIT(fcgi, 2.4.1-SNAP-0910052249)
++AM_INIT_AUTOMAKE([1.11 foreign])
+ AM_CONFIG_HEADER(fcgi_config.h)
+-- 
+2.20.0
+
index e69cc782c9566f9f10d767b0dacaaeaebe2bb542..426aa1e3ad23120025cd30f3398aefd18b676bf3 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=glib2
-PKG_VERSION:=2.58.1
-PKG_RELEASE:=2
+PKG_VERSION:=2.58.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=glib-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(BUILD_DIR)/glib-$(PKG_VERSION)
 PKG_SOURCE_URL:=@GNOME/glib/2.58
-PKG_HASH:=97d6a9d926b6aa3dfaadad3077cfb43eec74432ab455dff14250c769d526d7d6
+PKG_HASH:=c7b24ed6536f1a10fc9bce7994e55c427b727602e78342821f1f07fb48753d4b
 
 PKG_BUILD_PARALLEL:=1
 HOST_BUILD_PARALLEL:=1
index 4d677dc74bd9b8c305fafa53faee10307a967d87..e4806441ff1a2e4dcd0e00c760ea8db24eb57ce9 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ibrcommon
 PKG_VERSION:=1.0.1
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
@@ -20,12 +20,13 @@ PKG_LICENSE:=Apache-2.0
 PKG_INSTALL:=1
 PKG_FIXUP:=libtool
 
+include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/ibrcommon
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=+libstdcpp +libpthread +librt +libnl +libopenssl
+  DEPENDS:=$(CXX_DEPENDS) +libpthread +librt +libnl +libopenssl
   TITLE:=IBR Common C++ Library
 endef
 
index 99ab4789c7f407b59f5d48ffc813553d98cb9ff6..cea5132980bc4df7619e34c5139d636cea449365 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=jansson
-PKG_VERSION:=2.11
+PKG_VERSION:=2.12
 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:=783132e2fc970feefc2fa54199ef65ee020bd8e0e991a78ea44b8586353a0947
+PKG_HASH:=645d72cc5dbebd4df608d33988e55aa42a7661039e19a379fcbe5c79d1aee1d2
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
index 41754463484a5337d2d71e28be00b4e24c19b5a3..6dd0af355f0fdd75bdd464a5cf6907983c69e284 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=audiofile
 PKG_VERSION:=0.3.6
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNOME/$(PKG_NAME)/0.3
@@ -18,6 +18,7 @@ PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_FIXUP:=autoreconf
 PKG_INSTALL=1
 
+include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libaudiofile
@@ -25,7 +26,7 @@ define Package/libaudiofile
   CATEGORY:=Libraries
   TITLE:=Audio File library
   URL:=http://audiofile.68k.org/
-  DEPENDS:=+libflac +libstdcpp
+  DEPENDS:=$(CXX_DEPENDS) +libflac
 endef
 
 define Package/libaudiofile/description
index 5a061f91f33bdec6df4de58520bb37cd513eaecf..2f345ffcffebae1dcca87393f2bfc688a8764d87 100644 (file)
@@ -8,15 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libdouble-conversion
-PKG_VERSION:=2.0
+PKG_VERSION:=3.1.1
 PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=0d25506a2e7fb52928963313343e0237e890059e
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=7466f634421f3136174cbc2b00635788509a3312894de28367f31d891fd401ad
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=https://github.com/google/double-conversion.git
+PKG_SOURCE:=double-conversion-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/google/double-conversion/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=c49a6b3fa9c917f827b156c8e0799ece88ae50440487a99fc2f284cfd357a5b9
+PKG_BUILD_DIR:=$(BUILD_DIR)/double-conversion-$(PKG_VERSION)
+
+PKG_MAINTAINER:=
+PKG_LICENSE:=BSD-3c
 PKG_LICENSE_FILES:=COPYING LICENSE
 
 include $(INCLUDE_DIR)/package.mk
@@ -32,7 +33,7 @@ endef
 
 define Package/libdouble-conversion/description
   double-conversion provides binary-decimal and decimal-binary routines for IEEE doubles.
-  
+
   The library consists of efficient conversion routines that have been extracted
   from the V8 JavaScript engine. The code has been refactored and improved so that
   it can be used more easily in other projects.
index b27435a253f5d51c7ae04bfc7c7f1cbdfd609c24..93b31a54dace66bf27564bdf87f4f085a370ecaa 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libedit
-PKG_VERSION:=20170329-3.1
+PKG_VERSION:=20181209-3.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
@@ -16,7 +16,7 @@ PKG_LICENSE:=BSD-3-Clause
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://thrysoee.dk/editline/
-PKG_HASH:=91f2d90fbd2a048ff6dad7131d9a39e690fd8a8fd982a353f1333dd4017dd4be
+PKG_HASH:=2811d70c0b000f2ca91b7cb1a37203134441743c4fcc9c37b0b687f328611064
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_INSTALL:=1
index cb580f159ec779c42d2b08cb41fdeb2758958b8a..3180f3bc8ff50ae62e150f191856bb11e47d9892 100644 (file)
@@ -8,12 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libgpg-error
-PKG_VERSION:=1.32
+PKG_VERSION:=1.33
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/libgpg-error/
-PKG_HASH:=c345c5e73cc2332f8d50db84a2280abfb1d8f6d4f1858b9daa30404db44540ca
+PKG_HASH:=5d38826656e746c936e7742d9cde072b50baa3c4c49daa168a56813612bf03ff
+
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING
 
@@ -29,7 +31,6 @@ define Package/libgpg-error
   CATEGORY:=Libraries
   TITLE:=GnuPG error handling helper library
   URL:=http://www.gnupg.org/related_software/libgpg-error/
-  MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 endef
 
 define Package/libgpg-error/description
index 076ab3998a087bb2bb4f4229cd64021e39839622..d19c7f936d9a7d3e4021e2afcdd515aec32f7569 100644 (file)
@@ -1,7 +1,6 @@
-diff -u --recursive libgpg-error-1.32-vanilla/configure.ac libgpg-error-1.32/configure.ac
---- libgpg-error-1.32-vanilla/configure.ac     2018-07-15 01:23:30.028462129 -0400
-+++ libgpg-error-1.32/configure.ac     2018-07-15 01:25:32.214267179 -0400
-@@ -74,6 +74,18 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -74,6 +74,18 @@ AM_SILENT_RULES
  AC_CANONICAL_HOST
  AB_INIT
  
index 85a626ead74f255aa058afb86d14895ca06d4c8d..6d260aa753df0c43176ef286ac3a6deb8574fadc 100644 (file)
@@ -8,22 +8,24 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libndpi
-PKG_VERSION:=2.4
-PKG_RELEASE:=4
+PKG_VERSION:=2.6
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/ntop/nDPI/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=5243e16b1c4a2728e9487466b2b496d8ffef18a44ff7ee6dfdc21e72008c6d29
+PKG_HASH:=efdfb68940385b18079920330528978765dc2a90c8163d10f63301bddadbf91e
 PKG_BUILD_DIR:=$(BUILD_DIR)/nDPI-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Banglang Huang <banglang.huang@foxmail.com>
 PKG_LICENSE:=LGPLv3
+PKG_LICENSE_FILES:=COPYING
 
 PKG_FIXUP:=autoreconf
 PKG_BUILD_DEPENDS:=libpcap
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
+include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libndpi
@@ -31,7 +33,7 @@ define Package/libndpi
   CATEGORY:=Libraries
   TITLE:=Library for deep-packet inspection
   URL:=https://github.com/ntop/nDPI
-  DEPENDS:=+libpcap +libjson-c
+  DEPENDS:=$(CXX_DEPENDS) +libpcap +libjson-c
 endef
 
 define Package/libndpi/description
@@ -57,7 +59,7 @@ define Build/InstallDev
 
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libndpi.pc \
+               $(PKG_INSTALL_DIR)/usr/libdata/pkgconfig/libndpi.pc \
                $(1)/usr/lib/pkgconfig/
 endef
 
@@ -68,7 +70,7 @@ define Package/libndpi/install
                $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/bin/
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/bin/ndpiReader \
+               $(PKG_INSTALL_DIR)/usr/local/bin/ndpiReader \
                $(1)/usr/bin/
 endef
 
diff --git a/libs/libndpi/patches/0001-Move-the-configure-include-file-inclusion-and-code-d.patch b/libs/libndpi/patches/0001-Move-the-configure-include-file-inclusion-and-code-d.patch
deleted file mode 100644 (file)
index 0bb84fd..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-From 91ac4e4beed953fc9d2185ca2e6813dde47e8d5a Mon Sep 17 00:00:00 2001
-From: Guido Falsi <mad@madpilot.net>
-Date: Mon, 27 Aug 2018 17:52:56 +0200
-Subject: [PATCH 1/9] Move the configure include file inclusion and code
- depending on it in code protected by the NDPI_LIB_COMPILATION define, this
- should avoid it polluting the environment when including this file from
- ntopng, version against stable branch.
-
----
- src/include/ndpi_typedefs.h | 15 ++++++++++-----
- src/lib/ndpi_main.c         |  7 -------
- 2 files changed, 10 insertions(+), 12 deletions(-)
-
-diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h
-index 6a61b44..386b217 100644
---- a/src/include/ndpi_typedefs.h
-+++ b/src/include/ndpi_typedefs.h
-@@ -26,9 +26,6 @@
- #include "ndpi_define.h"
--/* Needed to have access to HAVE_* defines */
--#include "ndpi_config.h"
--
- /* NDPI_LOG_LEVEL */
- typedef enum {
-   NDPI_LOG_ERROR,
-@@ -854,7 +851,17 @@ typedef struct ndpi_proto {
- #define NUM_CUSTOM_CATEGORIES      5
- #define CUSTOM_CATEGORY_LABEL_LEN 32
-+#ifdef NDPI_LIB_COMPILATION
-+
-+/* Needed to have access to HAVE_* defines */
-+#include "ndpi_define.h"
-+
- #ifdef HAVE_HYPERSCAN
-+struct hs {
-+  hs_database_t *database;
-+  hs_scratch_t  *scratch;
-+};
-+
- struct hs_list {
-   char *expression;
-   unsigned int id;
-@@ -862,8 +869,6 @@ struct hs_list {
- };
- #endif
--#ifdef NDPI_LIB_COMPILATION
--
- struct ndpi_detection_module_struct {
-   NDPI_PROTOCOL_BITMASK detection_bitmask;
-   NDPI_PROTOCOL_BITMASK generic_http_packet_bitmask;
-diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
-index b002126..8061aa1 100644
---- a/src/lib/ndpi_main.c
-+++ b/src/lib/ndpi_main.c
-@@ -51,13 +51,6 @@
- #include <hs/hs.h>
- #endif
--#ifdef HAVE_HYPERSCAN
--struct hs {
--  hs_database_t *database;
--  hs_scratch_t  *scratch;
--};
--#endif
--
- #define NDPI_CONST_GENERIC_PROTOCOL_NAME  "GenericProtocol"
- static int _ndpi_debug_callbacks = 0;
--- 
-2.19.1
-
diff --git a/libs/libndpi/patches/0002-Fixes-600.patch b/libs/libndpi/patches/0002-Fixes-600.patch
deleted file mode 100644 (file)
index 84bd7dc..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-From 6be5188ff93780a7f2acd48f41c4ac1846597091 Mon Sep 17 00:00:00 2001
-From: Luca <deri@ntop.org>
-Date: Tue, 11 Sep 2018 10:02:34 +0300
-Subject: [PATCH 2/9] Fixes #600 Backport of recent fixes (e.g. #601)
-
----
- Makefile.am                        |  5 ++-
- autogen.sh                         |  2 +-
- configure.seed                     | 13 +++++--
- src/lib/Makefile                   | 26 --------------
- src/lib/Makefile.in                | 54 ++++++++++++++++++++++++++++++
- src/lib/ndpi_main.c                |  2 --
- src/lib/protocols/ssl.c            | 36 ++++++++++++++------
- src/lib/third_party/include/hash.h |  1 +
- 8 files changed, 94 insertions(+), 45 deletions(-)
- delete mode 100644 src/lib/Makefile
- create mode 100644 src/lib/Makefile.in
-
-diff --git a/Makefile.am b/Makefile.am
-index 17c6748..37f0849 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,8 +1,7 @@
- ACLOCAL_AMFLAGS = -I m4
--
- SUBDIRS = src/lib example tests
--pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfigdir = $(prefix)/libdata/pkgconfig
- pkgconfig_DATA = libndpi.pc
--EXTRA_DIST = libndpi.sym autogen.sh
-+EXTRA_DIST = autogen.sh
-diff --git a/autogen.sh b/autogen.sh
-index 6596b2f..efeffc4 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -5,7 +5,7 @@ NDPI_MINOR="4"
- NDPI_PATCH="0"
- NDPI_VERSION_SHORT="$NDPI_MAJOR.$NDPI_MINOR.$NDPI_PATCH"
--rm -f configure config.h config.h.in src/lib/Makefile.in
-+rm -f configure config.h config.h.in
- AUTOCONF=$(command -v autoconf)
- AUTOMAKE=$(command -v automake)
-diff --git a/configure.seed b/configure.seed
-index 6b85c66..8f8817f 100644
---- a/configure.seed
-+++ b/configure.seed
-@@ -10,6 +10,7 @@ AC_PROG_CC
- AM_PROG_CC_C_O
- AX_PTHREAD
-+NDPI_VERSION_SHORT="@NDPI_VERSION_SHORT@"
- NDPI_MAJOR="@NDPI_MAJOR@"
- NDPI_MINOR="@NDPI_MINOR@"
- NDPI_PATCH="@NDPI_PATCH@"
-@@ -51,11 +52,16 @@ else
-      AC_CHECK_LIB([numa], [numa_available], [LIBNUMA="-lnuma"])
- fi
--
-+if test -z `which clang`; then
-+CC=gcc
-+else
-+CC=clang
-+fi
-+ 
- HS_LIB=
- HS_INC=
--AC_ARG_WITH(hyperscan,          [  --with-hyperscan          Enable nDPI build with Intel Hyperscan])
-+AC_ARG_WITH(hyperscan,          [  --with-hyperscan        Enable nDPI build with Intel Hyperscan])
- if test "${with_hyperscan+set}" = set; then
-      BKP=$LIBS
-@@ -127,12 +133,13 @@ AC_ARG_ENABLE([debug-messages],
- AC_CHECK_LIB(pthread, pthread_setaffinity_np, AC_DEFINE_UNQUOTED(HAVE_PTHREAD_SETAFFINITY_NP, 1, [libc has pthread_setaffinity_np]))
--AC_CONFIG_FILES([Makefile example/Makefile tests/Makefile libndpi.pc src/include/ndpi_define.h])
-+AC_CONFIG_FILES([Makefile example/Makefile tests/Makefile libndpi.pc src/include/ndpi_define.h src/lib/Makefile])
- AC_CONFIG_HEADERS(src/include/ndpi_config.h)
- AC_SUBST(GIT_RELEASE)
- AC_SUBST(NDPI_MAJOR)
- AC_SUBST(NDPI_MINOR)
- AC_SUBST(NDPI_PATCH)
-+AC_SUBST(NDPI_VERSION_SHORT)
- AC_SUBST(SVN_DATE)
- AC_SUBST(JSON_C_LIB)
- AC_SUBST(PCAP_INC)
-diff --git a/src/lib/Makefile b/src/lib/Makefile
-deleted file mode 100644
-index 19c6f1c..0000000
---- a/src/lib/Makefile
-+++ /dev/null
-@@ -1,26 +0,0 @@
--#
--# Simple non-autotools dependent makefile
--#
--# ./autogen.sh
--# cd src/lib
--# make -f Makefile.simple
--#
--CFLAGS += -fPIC -DPIC -I../include -Ithird_party/include -DNDPI_LIB_COMPILATION -g
--RANLIB  = ranlib
--
--OBJECTS = $(patsubst protocols/%.c, protocols/%.o, $(wildcard protocols/*.c)) $(patsubst third_party/src/%.c, third_party/src/%.o, $(wildcard third_party/src/*.c)) ndpi_main.o
--HEADERS = $(wildcard ../include/*.h)
--
--all: libndpi.a
--
--ndpi_main.c: ndpi_content_match.c.inc
--
--libndpi.a: $(OBJECTS)
--         ar rc $@ $(OBJECTS)
--         $(RANLIB) $@        
--
--%.o: %.c $(HEADERS) Makefile
--      $(CC) $(CFLAGS) -c $< -o $@
--
--clean:
--      /bin/rm -f libndpi.a $(OBJECTS)
-diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in
-new file mode 100644
-index 0000000..ca29001
---- /dev/null
-+++ b/src/lib/Makefile.in
-@@ -0,0 +1,54 @@
-+#
-+# Simple non-autotools dependent makefile
-+#
-+# ./autogen.sh
-+# cd src/lib
-+# make Makefile
-+#
-+
-+
-+#
-+# Installation directories
-+#
-+prefix     = /usr/local
-+libdir     = ${prefix}/lib
-+includedir = ${prefix}/include/ndpi
-+CC         = @CC@
-+CFLAGS     += -fPIC -DPIC -I../include -Ithird_party/include -DNDPI_LIB_COMPILATION -O2 # -g
-+RANLIB     = ranlib
-+
-+OBJECTS   = $(patsubst protocols/%.c, protocols/%.o, $(wildcard protocols/*.c)) $(patsubst third_party/src/%.c, third_party/src/%.o, $(wildcard third_party/src/*.c)) ndpi_main.o
-+HEADERS   = $(wildcard ../include/*.h)
-+NDPI_LIB_STATIC      = libndpi.a
-+NDPI_LIB_SHARED_BASE = libndpi.so
-+NDPI_LIB_SHARED      = $(NDPI_LIB_SHARED_BASE).@NDPI_VERSION_SHORT@
-+NDPI_LIBS            = $(NDPI_LIB_STATIC) $(NDPI_LIB_SHARED)
-+
-+ifeq ($(OS),Darwin)
-+CC=clang
-+endif
-+
-+all: $(NDPI_LIBS)
-+
-+ndpi_main.c: ndpi_content_match.c.inc
-+
-+$(NDPI_LIB_STATIC): $(OBJECTS)
-+         ar rc $@ $(OBJECTS)
-+         $(RANLIB) $@        
-+
-+$(NDPI_LIB_SHARED): $(OBJECTS)
-+      $(CC) -shared -fPIC -o $@ $(OBJECTS)
-+      ln -Fs $(NDPI_LIB_SHARED) $(NDPI_LIB_SHARED_BASE)
-+
-+%.o: %.c $(HEADERS) Makefile
-+      $(CC) $(CFLAGS) -c $< -o $@
-+
-+clean:
-+      /bin/rm -f $(NDPI_LIB_STATIC) $(OBJECTS) *.o *.so *.lo
-+
-+install: $(NDPI_LIBS)
-+      mkdir -p $(DESTDIR)$(libdir)
-+      cp $(NDPI_LIBS) $(DESTDIR)$(libdir)/
-+      ln -Fs $(DESTDIR)$(libdir)/$(NDPI_LIB_SHARED) $(DESTDIR)$(libdir)/$(NDPI_LIB_SHARED_BASE)
-+      mkdir -p $(DESTDIR)$(includedir)
-+      cp ../include/*.h $(DESTDIR)$(includedir)
-diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
-index 8061aa1..540e158 100644
---- a/src/lib/ndpi_main.c
-+++ b/src/lib/ndpi_main.c
-@@ -43,9 +43,7 @@
- #include "ndpi_content_match.c.inc"
- #include "third_party/include/ndpi_patricia.h"
--#include "third_party/src/ndpi_patricia.c"
- #include "third_party/include/hash.h"
--#include "third_party/src/hash.c"
- #ifdef HAVE_HYPERSCAN
- #include <hs/hs.h>
-diff --git a/src/lib/protocols/ssl.c b/src/lib/protocols/ssl.c
-index b8c3697..59aedcb 100644
---- a/src/lib/protocols/ssl.c
-+++ b/src/lib/protocols/ssl.c
-@@ -27,7 +27,7 @@
- #include "ndpi_api.h"
--/* #define CERTIFICATE_DEBUG 1 */
-+// #define CERTIFICATE_DEBUG 1
- #define NDPI_MAX_SSL_REQUEST_SIZE 10000
- /* Skype.c */
-@@ -246,28 +246,43 @@ int getSSLcertificate(struct ndpi_detection_module_struct *ndpi_struct,
-               u_int16_t compression_len;
-               u_int16_t extensions_len;
--              compression_len = packet->payload[offset+1];
--              offset += compression_len + 3;
-+              offset++;
-+              compression_len = packet->payload[offset];
-+              offset++;
-+              
-+#ifdef CERTIFICATE_DEBUG
-+              printf("SSL [compression_len: %u]\n", compression_len);
-+#endif
-+
-+              // offset += compression_len + 3;
-+              offset += compression_len;
-               if(offset < total_len) {
--                extensions_len = packet->payload[offset];
-+                extensions_len = ntohs(*((u_int16_t*)&packet->payload[offset]));
-+                offset += 2;
-+                
-+#ifdef CERTIFICATE_DEBUG
-+                printf("SSL [extensions_len: %u]\n", extensions_len);
-+#endif
--                if((extensions_len+offset) < total_len) {
-+                if((extensions_len+offset) <= total_len) {
-                   /* Move to the first extension
-                      Type is u_int to avoid possible overflow on extension_len addition */
--                  u_int extension_offset = 1;
-+                  u_int extension_offset = 0;
-                   while(extension_offset < extensions_len) {
-                     u_int16_t extension_id, extension_len;
--                    memcpy(&extension_id, &packet->payload[offset+extension_offset], 2);
-+                    extension_id = ntohs(*((u_int16_t*)&packet->payload[offset+extension_offset]));
-                     extension_offset += 2;
--                    memcpy(&extension_len, &packet->payload[offset+extension_offset], 2);
-+                    extension_len = ntohs(*((u_int16_t*)&packet->payload[offset+extension_offset]));
-                     extension_offset += 2;
--                    extension_id = ntohs(extension_id), extension_len = ntohs(extension_len);
--
-+#ifdef CERTIFICATE_DEBUG
-+                    printf("SSL [extension_id: %u][extension_len: %u]\n", extension_id, extension_len);
-+#endif
-+                    
-                     if(extension_id == 0) {
-                       u_int begin = 0,len;
-                       char *server_name = (char*)&packet->payload[offset+extension_offset];
-@@ -316,6 +331,7 @@ int sslTryAndRetrieveServerCertificate(struct ndpi_detection_module_struct *ndpi
-   if((packet->payload_packet_len > 9) && (packet->payload[0] == 0x16)) {
-     char certificate[64];
-     int rc;
-+    
-     certificate[0] = '\0';
-     rc = getSSLcertificate(ndpi_struct, flow, certificate, sizeof(certificate));
-     packet->ssl_certificate_num_checks++;
-diff --git a/src/lib/third_party/include/hash.h b/src/lib/third_party/include/hash.h
-index 4f53e5a..2251706 100644
---- a/src/lib/third_party/include/hash.h
-+++ b/src/lib/third_party/include/hash.h
-@@ -25,5 +25,6 @@ extern int ht_hash( hashtable_t *hashtable, char *key );
- extern entry_t *ht_newpair( char *key, u_int16_t value );
- extern void ht_set( hashtable_t *hashtable, char *key, u_int16_t value );
- extern u_int16_t ht_get( hashtable_t *hashtable, char *key );
-+extern void ht_free( hashtable_t *hashtable );
- #endif /* _HASH_H_ */
--- 
-2.19.1
-
diff --git a/libs/libndpi/patches/0003-Fixed-duplicate-protocol-name.-607.patch b/libs/libndpi/patches/0003-Fixed-duplicate-protocol-name.-607.patch
deleted file mode 100644 (file)
index 72777b0..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From efd8348c3a5ace204410608f1805c9d5899096ab Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD=20=D0=A1=D0=BF=D0=B8=D0=BD=D0=B5?=
- =?UTF-8?q?=D0=BD=D0=BA=D0=BE?= <ispinenko@ideco.ru>
-Date: Thu, 13 Sep 2018 18:23:47 +0500
-Subject: [PATCH 3/9] Fixed duplicate protocol name. #607
-
----
- src/lib/ndpi_main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
-index 540e158..33ccbb1 100644
---- a/src/lib/ndpi_main.c
-+++ b/src/lib/ndpi_main.c
-@@ -1225,7 +1225,7 @@ static void ndpi_init_protocol_defaults(struct ndpi_detection_module_struct *ndp
-                           ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */);
-     ndpi_set_proto_defaults(ndpi_mod, NDPI_PROTOCOL_FUN, NDPI_PROTOCOL_VIDTO,
-                           no_master,
--                          no_master, "PPStream", NDPI_PROTOCOL_CATEGORY_MEDIA,
-+                          no_master, "Vidto", NDPI_PROTOCOL_CATEGORY_MEDIA,
-                           ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */,
-                           ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */);
--- 
-2.19.1
-
diff --git a/libs/libndpi/patches/0004-Added-missing-ndpi_protocol2id-prototype.patch b/libs/libndpi/patches/0004-Added-missing-ndpi_protocol2id-prototype.patch
deleted file mode 100644 (file)
index 2dc6297..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-From ba72865f23cd0d52f373573308e0e05c5bd37ba8 Mon Sep 17 00:00:00 2001
-From: Luca Deri <deri@ntop.org>
-Date: Wed, 19 Sep 2018 11:11:15 +0200
-Subject: [PATCH 4/9] Added missing ndpi_protocol2id() prototype Fixed error
- when crearing symlink in Makefile
-
----
- src/include/ndpi_api.h | 15 ++++++++++++++-
- src/lib/Makefile.in    |  2 +-
- 2 files changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h
-index 3fefc8e..56c5436 100644
---- a/src/include/ndpi_api.h
-+++ b/src/include/ndpi_api.h
-@@ -420,7 +420,7 @@ extern "C" {
-                       char *bigram_to_match);
-   /**
--   * Write the protocol name in the buffer -buf- as master_protocol.protocol
-+   * Write the protocol name in the buffer -buf- as master_protocol.protocol (string)
-    *
-    * @par     ndpi_mod      = the detection module
-    * @par     proto         = the struct ndpi_protocol contain the protocols name
-@@ -432,6 +432,19 @@ extern "C" {
-   char* ndpi_protocol2name(struct ndpi_detection_module_struct *ndpi_mod,
-                          ndpi_protocol proto, char *buf, u_int buf_len);
-+  /**
-+   * Write the protocol name in the buffer -buf- as master_protocol.protocol (number)
-+   *
-+   * @par     ndpi_mod      = the detection module
-+   * @par     proto         = the struct ndpi_protocol contain the protocols name
-+   * @par     buf           = the buffer to write the name of the protocols
-+   * @par     buf_len       = the length of the buffer
-+   * @return  the buffer contains the master_protocol and protocol name
-+   *
-+   */
-+  char* ndpi_protocol2id(struct ndpi_detection_module_struct *ndpi_mod,
-+                       ndpi_protocol proto, char *buf, u_int buf_len);
-+
-   /**
-    * Find out if a given category is custom/user-defined
-    *
-diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in
-index ca29001..cbbc54b 100644
---- a/src/lib/Makefile.in
-+++ b/src/lib/Makefile.in
-@@ -38,7 +38,7 @@ $(NDPI_LIB_STATIC): $(OBJECTS)
- $(NDPI_LIB_SHARED): $(OBJECTS)
-       $(CC) -shared -fPIC -o $@ $(OBJECTS)
--      ln -Fs $(NDPI_LIB_SHARED) $(NDPI_LIB_SHARED_BASE)
-+      ln -fs $(NDPI_LIB_SHARED) $(NDPI_LIB_SHARED_BASE)
- %.o: %.c $(HEADERS) Makefile
-       $(CC) $(CFLAGS) -c $< -o $@
--- 
-2.19.1
-
diff --git a/libs/libndpi/patches/0005-Do-not-use-the-available-clang-as-the-default-compil.patch b/libs/libndpi/patches/0005-Do-not-use-the-available-clang-as-the-default-compil.patch
deleted file mode 100644 (file)
index 68edcf4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From 54fd7face86f3d5287bc8d0f2633bd13c66498cf Mon Sep 17 00:00:00 2001
-From: Vitaly Lavrov <vel21ripn@gmail.com>
-Date: Sun, 30 Sep 2018 22:49:18 +0300
-Subject: [PATCH 5/9] Do not use the available clang as the default compiler.
- Use the CC environment variable when running autogen.sh and configure.
-
----
- configure.seed | 6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/configure.seed b/configure.seed
-index 8f8817f..b150fdb 100644
---- a/configure.seed
-+++ b/configure.seed
-@@ -51,12 +51,6 @@ if test $SHORT_MACHINE = "arm"; then
- else
-      AC_CHECK_LIB([numa], [numa_available], [LIBNUMA="-lnuma"])
- fi
--
--if test -z `which clang`; then
--CC=gcc
--else
--CC=clang
--fi
-  
- HS_LIB=
- HS_INC=
--- 
-2.19.1
-
diff --git a/libs/libndpi/patches/0006-Backported-ndpi_protocol2id.patch b/libs/libndpi/patches/0006-Backported-ndpi_protocol2id.patch
deleted file mode 100644 (file)
index 73b2fe1..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From 6dcf1f3fbab782804339db5a3fe8cd0c88c07795 Mon Sep 17 00:00:00 2001
-From: lucaderi <deri@ntop.org>
-Date: Thu, 4 Oct 2018 21:36:46 +0200
-Subject: [PATCH 6/9] Backported ndpi_protocol2id
-
----
- src/include/ndpi_api.h | 17 +++++++++++++++--
- src/lib/ndpi_main.c    | 17 +++++++++++++++++
- 2 files changed, 32 insertions(+), 2 deletions(-)
-
-diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h
-index 56c5436..ccbad73 100644
---- a/src/include/ndpi_api.h
-+++ b/src/include/ndpi_api.h
-@@ -274,7 +274,7 @@ extern "C" {
-    */
-   u_int16_t ndpi_get_flow_masterprotocol(struct ndpi_detection_module_struct *ndpi_struct,
-                                        struct ndpi_flow_struct *flow);
--  
-+
-   /**
-    * API call that is called internally by ndpi_detection_process_packet or by apps
-    * that want to avoid calling ndpi_detection_process_packet as they have already
-@@ -432,6 +432,19 @@ extern "C" {
-   char* ndpi_protocol2name(struct ndpi_detection_module_struct *ndpi_mod,
-                          ndpi_protocol proto, char *buf, u_int buf_len);
-+  /**
-+   * Same as ndpi_protocol2name() with the difference that the numeric protocol
-+   * name is returned
-+   *
-+   * @par     ndpi_mod      = the detection module
-+   * @par     proto         = the struct ndpi_protocol contain the protocols name
-+   * @par     buf           = the buffer to write the name of the protocols
-+   * @par     buf_len       = the length of the buffer
-+   * @return  the buffer contains the master_protocol and protocol name
-+   *
-+   */
-+  char* ndpi_protocol2id(struct ndpi_detection_module_struct *ndpi_mod,
-+                         ndpi_protocol proto, char *buf, u_int buf_len);
-   /**
-    * Write the protocol name in the buffer -buf- as master_protocol.protocol (number)
-    *
-@@ -746,7 +759,7 @@ extern "C" {
-   u_int ndpi_get_ndpi_num_custom_protocols(struct ndpi_detection_module_struct *ndpi_mod);
-   u_int ndpi_get_ndpi_detection_module_size();
-   void ndpi_set_log_level(struct ndpi_detection_module_struct *ndpi_mod, u_int l);
--  
-+
-   /**
-    * Add a string to match to an automata
-    *
-diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
-index 33ccbb1..e1cf577 100644
---- a/src/lib/ndpi_main.c
-+++ b/src/lib/ndpi_main.c
-@@ -5319,6 +5319,23 @@ ndpi_protocol ndpi_guess_undetected_protocol(struct ndpi_detection_module_struct
- /* ****************************************************** */
-+char* ndpi_protocol2id(struct ndpi_detection_module_struct *ndpi_mod,
-+                     ndpi_protocol proto, char *buf, u_int buf_len) {
-+  if((proto.master_protocol != NDPI_PROTOCOL_UNKNOWN)
-+     && (proto.master_protocol != proto.app_protocol)) {
-+    if(proto.app_protocol != NDPI_PROTOCOL_UNKNOWN)
-+      snprintf(buf, buf_len, "%u.%u",
-+               proto.master_protocol, proto.app_protocol);
-+    else
-+      snprintf(buf, buf_len, "%u", proto.master_protocol);
-+  } else
-+    snprintf(buf, buf_len, "%u", proto.app_protocol);
-+
-+  return(buf);
-+}
-+
-+/* ****************************************************** */
-+
- char* ndpi_protocol2name(struct ndpi_detection_module_struct *ndpi_mod,
-                        ndpi_protocol proto, char *buf, u_int buf_len) {
-   if((proto.master_protocol != NDPI_PROTOCOL_UNKNOWN)
--- 
-2.19.1
-
diff --git a/libs/libndpi/patches/0007-Symlink-the-shared-library-to-pwd.patch b/libs/libndpi/patches/0007-Symlink-the-shared-library-to-pwd.patch
deleted file mode 100644 (file)
index 6cde303..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From a1f6cbb6c9a212b5b3b6605254ae35bead5c43df Mon Sep 17 00:00:00 2001
-From: Hank Leininger <hlein@korelogic.com>
-Date: Mon, 8 Oct 2018 18:17:30 -0600
-Subject: [PATCH 7/9] Symlink the shared library to pwd.
-
-DESTDIR is used, for instance, by distros to facilitate installing
-to a temp path for testing / package-building.
-
-In general nDPI supports DESTDIR (yay!), but using an absolute path
-for the target of the library link has two problems:
-
-1) If DESTDIR is set to /some/tmp/path, we end up with a link that
-points to /some/tmp/path/usr/lib/libndpi-x.y.z, which is definitely
-not what is intended - once the package is installed, the link is
-broken.
-
-2) Absolute links are problematic for distributions; pointing to
-/usr/lib/libndpi-x.y.z during package build-and-test would point to
-either a nonexistent file, or an old and possibly wrong one.
-
-Both of these are avoided if we just link to the target with no path
-at all.
----
- src/lib/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in
-index cbbc54b..dc1e34b 100644
---- a/src/lib/Makefile.in
-+++ b/src/lib/Makefile.in
-@@ -49,6 +49,6 @@ clean:
- install: $(NDPI_LIBS)
-       mkdir -p $(DESTDIR)$(libdir)
-       cp $(NDPI_LIBS) $(DESTDIR)$(libdir)/
--      ln -Fs $(DESTDIR)$(libdir)/$(NDPI_LIB_SHARED) $(DESTDIR)$(libdir)/$(NDPI_LIB_SHARED_BASE)
-+      ln -Fs $(NDPI_LIB_SHARED) $(DESTDIR)$(libdir)/$(NDPI_LIB_SHARED_BASE)
-       mkdir -p $(DESTDIR)$(includedir)
-       cp ../include/*.h $(DESTDIR)$(includedir)
--- 
-2.19.1
-
diff --git a/libs/libndpi/patches/0008-Use-a-more-standard-path-for-pkg-config-files.patch b/libs/libndpi/patches/0008-Use-a-more-standard-path-for-pkg-config-files.patch
deleted file mode 100644 (file)
index e566637..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From cfd97bbbca6afddb1bcedb407cb21127d7cb5d53 Mon Sep 17 00:00:00 2001
-From: Hank Leininger <hlein@korelogic.com>
-Date: Mon, 8 Oct 2018 19:08:51 -0600
-Subject: [PATCH 8/9] Use a more standard path for pkg-config files.
-
-The Linuxes I've checked all seem to use /usr/{,local/}lib*/pkgconfig,
-not /usr/libdata/.  I think FreeBSD does use /usr/libdata/ but also
-supports /usr/lib*/pkgconfig, although I have not tested this change
-on a FreeBSD system.
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 37f0849..4090817 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,7 +1,7 @@
- ACLOCAL_AMFLAGS = -I m4
- SUBDIRS = src/lib example tests
--pkgconfigdir = $(prefix)/libdata/pkgconfig
-+pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = libndpi.pc
- EXTRA_DIST = autogen.sh
--- 
-2.19.1
-
diff --git a/libs/libndpi/patches/0009-Correct-the-include-file-path-in-I-CFLAGS-argument.patch b/libs/libndpi/patches/0009-Correct-the-include-file-path-in-I-CFLAGS-argument.patch
deleted file mode 100644 (file)
index b21027c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From b4b7a810697145b718a9a3b6d8a39e700613a640 Mon Sep 17 00:00:00 2001
-From: Hank Leininger <hlein@korelogic.com>
-Date: Mon, 8 Oct 2018 21:22:41 -0600
-Subject: [PATCH 9/9] Correct the include file path in -I CFLAGS argument.
-
-src/lib/Makefile.in install headers into ${prefix}/include/ndpi,
-but the shipped libndpi.pc.in specifies a different path.  Therefore
-anything trying to build using $(pkg-config --cflags libndpi) will
-fail to find the nDPI headers.
-
-This patch simply makes libndpi.pc.in agree with src/lib/Makefile.in.
----
- libndpi.pc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libndpi.pc.in b/libndpi.pc.in
-index 291429c..5e1cde7 100644
---- a/libndpi.pc.in
-+++ b/libndpi.pc.in
-@@ -7,4 +7,4 @@ Name: libndpi
- Description: deep packet inspection library
- Version: @VERSION@
- Libs: -L${libdir} -lndpi
--Cflags: -I${includedir}/libndpi-@VERSION@
-+Cflags: -I${includedir}/ndpi
--- 
-2.19.1
-
index f7ad98816bd9a159ca637d7ef8aaa9800d5158c6..e86753eb9bd40f6ce66b01884e0f3d5da0929789 100644 (file)
@@ -8,16 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsigc++
-PKG_VERSION:=2.5.4
+PKG_VERSION:=2.10.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@GNOME/libsigc++/2.5
-PKG_HASH:=ecf55f53d6058ba6e41985b862f2e95fb5c2b31c008caa16984e790547337ea7
-PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
-PKG_LICENSE:=LGPL-2.1
+PKG_SOURCE_URL:=@GNOME/libsigc++/2.10
+PKG_HASH:=c9a25f26178c6cbb147f9904d8c533b5a5c5111a41ac2eb781eb734eea446003
+
+PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
+PKG_LICENSE:=LGPL-3.0+
+PKG_LICENSE_FILES:=COPYING
 
 PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
@@ -36,14 +39,13 @@ define Package/libsigcxx/description
  whether it is static or virtual.
 endef
 
-TARGET_CFLAGS += $(FPIC)
-
-TARGET_CPPFLAGS +=  \
-       -fno-strict-aliasing -fno-inline \
-
 CONFIGURE_ARGS += \
        --enable-shared \
        --enable-static \
+       --disable-benchmark \
+       --disable-documentation \
+       --disable-deprecated-api \
+       --disable-warnings
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
diff --git a/libs/libsigc++/patches/001-no_doc_tests_examples.patch b/libs/libsigc++/patches/001-no_doc_tests_examples.patch
deleted file mode 100644 (file)
index f2c22c3..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -22,7 +22,7 @@ doc_subdirs = docs
- else
- doc_subdirs =
- endif
--SUBDIRS = sigc++ tests examples $(doc_subdirs)
-+SUBDIRS = sigc++
- sigc_configdir = $(libdir)/$(SIGCXX_MODULE_NAME)/include
- nodist_sigc_config_HEADERS = sigc++config.h
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -204,7 +204,7 @@ am__define_uniq_tagged_files = \
- ETAGS = etags
- CTAGS = ctags
- CSCOPE = cscope
--DIST_SUBDIRS = sigc++ tests examples docs
-+DIST_SUBDIRS = sigc++
- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
- distdir = $(PACKAGE)-$(VERSION)
- top_distdir = $(distdir)
index da46abfe8cf7ef6ceaa7b8b02cdd9e1aa53d7fd5..c136402aa0b3fdebe3906e61615b227845b757ae 100644 (file)
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/erikd/libsndfile.git
-PKG_SOURCE_DATE:=2018-11-27
-PKG_SOURCE_VERSION:=b4bd397ca74f4c72b9cabaae66fef0c3d5a8c527
-PKG_MIRROR_HASH:=bbef527d5cdc97ad14ca5337b692b7adf8f725e813ca48b445111669f79f5c5e
+PKG_SOURCE_DATE:=2018-12-24
+PKG_SOURCE_VERSION:=8ddc442d539ca775d80cdbc7af17a718634a743f
+PKG_MIRROR_HASH:=d7be85919067f51c83b74b67ea9e7043710fe009d704aa414ef57c6f48974ae1
 
 PKG_LICENSE:=LGPLv2.1
 PKG_LICENSE_FILES:=COPYING
index 65282ff9f190002222e4a90b26e2528a0d6a2e1c..9a2f51ec7507d5692a68e24e891247d89271c2b9 100644 (file)
@@ -9,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=liburcu
-PKG_VERSION:=0.9.4
+PKG_VERSION:=0.9.5
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
@@ -17,7 +17,7 @@ PKG_LICENSE:=LGPL-2.1 GPL-2.0 GPL-3.0 MIT
 
 PKG_SOURCE:=userspace-rcu-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://lttng.org/files/urcu/
-PKG_HASH:=ec6c909249040dfa59bb34686482b62072ce5477f5e2e2153dac47de50b36b68
+PKG_HASH:=d948250f1b365f052b29a4c017b7d67066c905f6ab529892cc6bc35c503a38a6
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/userspace-rcu-$(PKG_VERSION)
 PKG_BUILD_PARALLEL:=1
index c793b5e8c338fffb31da65a6c56967817d2acf10..e13ed2e2606c28fa5066d947f11869a3a7059b00 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libuwsc
-PKG_VERSION:=3.1.1
+PKG_VERSION:=3.1.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL=https://codeload.github.com/zhaojh329/libuwsc/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=1a89d1d7464ab2881a1153cddc36dfe19ee2acb706b8a7d9d42fb13d5572ab50
+PKG_HASH:=58fd6a5eb29a22a7dd406a56e87f068f4b2fce2a4b6993bbc468a4258e4f94d2
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Jianhui Zhao <jianhuizhao329@gmail.com>
index fb4ded82c895c9b7221da2d9f7f865da2eddce29..e16d36587a7c6b63610a3fb83302df5da08d1c29 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=v4l-utils
 PKG_VERSION:=1.14.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.linuxtv.org/downloads/v4l-utils
diff --git a/libs/libv4l/patches/010-remove-libudev-check.patch b/libs/libv4l/patches/010-remove-libudev-check.patch
new file mode 100644 (file)
index 0000000..e646edf
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -258,16 +258,9 @@ else
+    AC_MSG_WARN(ALSA library not available)
+ fi
+-PKG_CHECK_MODULES(libudev, libudev, have_libudev=yes, have_libudev=no)
+-if test "x$have_libudev" = "xyes"; then
+-      AC_DEFINE([HAVE_LIBUDEV], [], [Use libudev])
+-      LIBUDEV_CFLAGS="$libudev_CFLAGS"
+-      LIBUDEV_LIBS="$libudev_LIBS"
+-      AC_SUBST(LIBUDEV_CFLAGS)
+-      AC_SUBST(LIBUDEV_LIBS)
+-else
+-   AC_MSG_WARN(udev library not available)
+-fi
++
++# Force building without udev
++have_libudev=no
+ AC_SUBST([JPEG_LIBS])
index f167e56a1ebbd0258d9fb44f74bed64ea9a5f5f8..8b459642901ee6be8f9557c3219775d4759950a3 100644 (file)
@@ -8,44 +8,72 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openldap
-PKG_VERSION:=2.4.46
-PKG_RELEASE:=2
+PKG_VERSION:=2.4.47
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
 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_HASH:=f54c5877865233d9ada77c60c0f69b3e0bfd8b1b55889504c650047cc305520b
 PKG_LICENSE:=OLDAP-2.8
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_FIXUP:=autoreconf
 
+PKG_CONFIG_DEPENDS := \
+        CONFIG_OPENLDAP_DEBUG \
+        CONFIG_OPENLDAP_MONITOR \
+        CONFIG_OPENLDAP_DB47 \
+        CONFIG_OPENLDAP_ICU
+
 include $(INCLUDE_DIR)/package.mk
 
-define Package/openldap/Default
-  TITLE:=LDAP implementation
+define Package/libopenldap/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=OpenLDAP
+  TITLE:=LDAP directory suite
   URL:=http://www.openldap.org/
   MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 endef
 
-define Package/openldap/Default/description
-       OpenLDAP Software is an open source implementation of the
-       Lightweight Directory Access Protocol (LDAP).
-endef
-
 define Package/libopenldap
-  $(call Package/openldap/Default)
-  SECTION:=libs
-  CATEGORY:=Libraries
-  DEPENDS:=+libopenssl +libsasl2 +libpthread
+  $(call Package/libopenldap/Default)
+  MENU:=1
+  DEPENDS:=+libopenssl +libsasl2 +libpthread +OPENLDAP_DB47:libdb47 +OPENLDAP_ICU:icu
   TITLE+= (libraries)
 endef
 
+define Package/libopenldap/config
+  config OPENLDAP_DEBUG
+       bool "Enable debugging information"
+       default y
+       help
+               Enable debugging information. This option must be enabled
+               for the loglevel directive to work.
+  config OPENLDAP_MONITOR
+       bool "Enable monitor backend"
+       default n
+       help
+               Enable monitor backend to obtain information about the running
+               status of the daemon. See OpenLDAP documentation for more
+               information.
+  config OPENLDAP_DB47
+       bool "Berkeley DB support"
+       default n
+       help
+               Enable Berkeley DB support (BDB).
+  config OPENLDAP_ICU
+       bool "ICU support"
+       default n
+       help
+               Enable ICU (International Components for Unicode) support.
+endef
+
 define Package/libopenldap/description
-       $(call Package/openldap/Default/description)
-       This package contains the shared LDAP client libraries, needed by other programs.
+OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol (LDAP). This package contains the shared LDAP client libraries, needed by other programs.
 endef
 
 define Package/libopenldap/conffiles
@@ -53,33 +81,28 @@ define Package/libopenldap/conffiles
 endef
 
 define Package/openldap-utils
-  $(call Package/openldap/Default)
-  SECTION:=utils
-  CATEGORY:=Utilities
+  $(call Package/libopenldap/Default)
   DEPENDS:=+libopenldap
   TITLE+= (utilities)
 endef
 
 define Package/openldap-utils/description
-       $(call Package/openldap/Default/description)
-       This package contains client programs required to access LDAP servers.
+This package contains client programs required to access LDAP servers.
 endef
 
 define Package/openldap-server
-  $(call Package/openldap/Default)
-  SECTION:=net
-  CATEGORY:=Network
+  $(call Package/libopenldap/Default)
   DEPENDS:=+libopenldap +libuuid
   TITLE+= (server)
 endef
 
 define Package/openldap-server/description
-       $(call Package/openldap/Default/description)
-       This package contains server programs required to provide LDAP services.
+This package contains server programs required to provide LDAP services.
 endef
 
 define Package/openldap-server/conffiles
 /etc/openldap/slapd.conf
+/etc/init.d/ldap
 endef
 
 TARGET_CFLAGS += $(FPIC) -lpthread \
@@ -88,44 +111,60 @@ TARGET_CFLAGS += $(FPIC) -lpthread \
 CONFIGURE_ARGS += \
        --enable-shared \
        --enable-static \
-       --disable-debug \
        --enable-dynamic \
        --enable-syslog \
-       --disable-local \
-       --disable-slurpd \
        --with-cyrus-sasl \
-       --without-fetch \
        --with-threads \
        --with-tls \
        --with-yielding_select="yes" \
-       --without-threads \
        --enable-null \
-       --disable-bdb \
-       --disable-hdb \
-       --disable-monitor \
        --disable-relay
 
-CONFIGURE_VARS += \
-       ol_cv_lib_icu="no"
+
+ifdef CONFIG_OPENLDAP_MONITOR
+       CONFIGURE_ARGS+= --enable-monitor
+else
+       CONFIGURE_ARGS+= --disable-monitor
+endif
+
+ifdef CONFIG_OPENLDAP_DEBUG
+       CONFIGURE_ARGS+= --enable-debug
+else
+       CONFIGURE_ARGS+= --disable-debug
+endif
+
+ifdef CONFIG_OPENLDAP_DB47
+       CONFIGURE_ARGS+= \
+               --enable-bdb \
+               --enable-hdb
+else
+       CONFIGURE_ARGS+= \
+               --disable-bdb \
+               --disable-hdb
+endif
+
+ifndef CONFIG_OPENLDAP_ICU
+       CONFIGURE_VARS += \
+               ol_cv_lib_icu="no"
+endif
 
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
                DESTDIR="$(PKG_INSTALL_DIR)" \
                HOSTCC="$(HOSTCC)" \
                depend all install
+       cd $(PKG_BUILD_DIR)/libraries/liblmdb && $(MAKE) $(CONFIGURE_VARS)
 endef
 
 define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/{lber,ldap}*.h $(1)/usr/include/
-       $(INSTALL_DIR) $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/{lber,ldap}*.h $(1)/usr/include/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{lber,ldap}*.{a,so*} $(1)/usr/lib/
 endef
 
 define Package/libopenldap/install
-       $(INSTALL_DIR) $(1)/etc/openldap
-       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/openldap/ldap.conf $(1)/etc/openldap/
-       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_DIR) $(1)/etc/openldap $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/etc/openldap/ldap.conf $(1)/etc/openldap/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{lber,ldap}*.so.* $(1)/usr/lib/
 endef
 
@@ -138,15 +177,15 @@ define Package/openldap-server/install
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/ldap.init $(1)/etc/init.d/ldap
        $(INSTALL_DIR) $(1)/etc/openldap/schema
-       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/openldap/schema/* $(1)/etc/openldap/schema/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/openldap/schema/* $(1)/etc/openldap/schema/
        $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/openldap/slapd.conf $(1)/etc/openldap/
        $(INSTALL_DIR) $(1)/usr/sbin
-       # XXX: OpenLDAP installs slapd into libexecdir, not sbindir:
+       # NB: OpenLDAP installs slapd into libexecdir, not sbindir
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/slapd $(1)/usr/sbin/
-       # XXX: switch default backend to ldif, since bdb is disabled
-       $(SED) 's|^\(database\)\([ \t]\+\)bdb|\1\2ldif|g' \
-           -e 's|^\(index\)|#\1|g' \
-           $(1)/etc/openldap/slapd.conf
+       $(eval SLAPTOOLS := slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema)
+       for i in $(SLAPTOOLS); do \
+               $(LN) ./slapd $(1)/usr/sbin/$$$$i; \
+       done
 endef
 
 $(eval $(call BuildPackage,libopenldap))
index 71cdebee70a44dc749d00571867e06cc87ab44da..c6a9ed89eebae88ce87ed0e31e1497e92f51f0f2 100644 (file)
 +SHELL = @SHELL@
 +
  SRCS  = init.c config.c opensock.c search.c bind.c unbind.c add.c \
-               delete.c modify.c modrdn.c compare.c result.c
+               delete.c modify.c modrdn.c compare.c result.c extended.c
  OBJS  = init.lo config.lo opensock.lo search.lo bind.lo unbind.lo add.lo \
 --- a/servers/slapd/back-sql/Makefile.in
 +++ b/servers/slapd/back-sql/Makefile.in
index 2cdce8e5cc3e3fcdfdd047dafdda8f548fbb2724..b3f724f7cc3c5c9b7dfbbee4c73fea75a9cbe698 100644 (file)
@@ -1,16 +1,19 @@
-Index: openldap-2.4.45/build/mkversion
-===================================================================
---- openldap-2.4.45.orig/build/mkversion
-+++ openldap-2.4.45/build/mkversion
-@@ -50,7 +50,6 @@ if test $# != 1 ; then
+--- a/build/mkversion
++++ b/build/mkversion
+@@ -50,12 +50,6 @@ if test $# != 1 ; then
  fi
  
  APPLICATION=$1
--WHOWHERE="$USER@`uname -n`:`pwd`"
+-# Reproducible builds set SOURCE_DATE_EPOCH, want constant strings
+-if [ -n "${SOURCE_DATE_EPOCH}" ]; then
+-   WHOWHERE="openldap"
+-else
+-   WHOWHERE="$USER@$(uname -n):$(pwd)"
+-fi
  
  cat << __EOF__
  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
-@@ -72,7 +71,6 @@ static const char copyright[] =
+@@ -77,7 +71,6 @@ static const char copyright[] =
  "COPYING RESTRICTIONS APPLY\n";
  
  $static $const char $SYMBOL[] =
diff --git a/libs/openldap/patches/800-openssl-deprecated.patch b/libs/openldap/patches/800-openssl-deprecated.patch
deleted file mode 100644 (file)
index e6b2d86..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From d7a778004b0e0c7453075f1c7d429537162df436 Mon Sep 17 00:00:00 2001
-From: Howard Chu <hyc@openldap.org>
-Date: Fri, 21 Sep 2018 18:41:20 +0100
-Subject: [PATCH] ITS#8809 add missing includes
-
----
- libraries/libldap/tls_o.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/libraries/libldap/tls_o.c b/libraries/libldap/tls_o.c
-index 010f311d7..99626ec15 100644
---- a/libraries/libldap/tls_o.c
-+++ b/libraries/libldap/tls_o.c
-@@ -43,6 +43,9 @@
- #include <openssl/err.h>
- #include <openssl/rand.h>
- #include <openssl/safestack.h>
-+#include <openssl/bn.h>
-+#include <openssl/rsa.h>
-+#include <openssl/dh.h>
- #elif defined( HAVE_SSL_H )
- #include <ssl.h>
- #endif
--- 
-2.19.1
-
diff --git a/libs/openldap/patches/901-reduce-slapd-default-mem-usage.patch b/libs/openldap/patches/901-reduce-slapd-default-mem-usage.patch
new file mode 100644 (file)
index 0000000..0c4dd34
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/servers/slapd/slapd.conf
++++ b/servers/slapd/slapd.conf
+@@ -50,7 +50,7 @@ argsfile     %LOCALSTATEDIR%/run/slapd.args
+ #######################################################################
+ database      mdb
+-maxsize               1073741824
++maxsize               8388608
+ suffix                "dc=my-domain,dc=com"
+ rootdn                "cn=Manager,dc=my-domain,dc=com"
+ # Cleartext passwords, especially for the rootdn, should
index caa669d509f526af3674bc59cd4862d301a99b92..3208aa7aca58598e63ae258d80018193f4fc2b43 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcre
 PKG_VERSION:=8.42
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
@@ -23,12 +23,13 @@ PKG_FIXUP:=autoreconf
 
 PKG_INSTALL:=1
 
+include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libpcre/default
   SECTION:=libs
   CATEGORY:=Libraries
-  URL:=http://www.pcre.org/
+  URL:=https://www.pcre.org/
 endef
 
 define Package/libpcre
@@ -44,7 +45,7 @@ endef
 define Package/libpcrecpp
   $(call Package/libpcre/default)
   TITLE:=C++ wrapper for Perl Compatible Regular Expression library
-  DEPENDS:=+libpcre +libstdcpp
+  DEPENDS:=+libpcre $(CXX_DEPENDS)
 endef
 
 TARGET_CFLAGS += $(FPIC)
index 229de3bb9379b9a74003423ff418af5dd65a0c62..2dd743b5b1dd4ea10562662006321246a63f7547 100644 (file)
@@ -5,18 +5,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=psqlodbc
+PKG_VERSION:=11.00.0000
 PKG_RELEASE:=1
-PKG_VERSION:=10.03.0000
-PKG_HASH:=0d2ff2d10d9347ef6ce83c7ca24f4cb20b4044eeef9638c8ae3bc8107e9e92f8
 
-PKG_SOURCE_URL:=https://ftp.postgresql.org/pub/odbc/versions/src/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://ftp.postgresql.org/pub/odbc/versions/src
+PKG_HASH:=703e6b87022f95ffa00d9f86c8f0a877f8a55b9b3be0942081f382e794112a86
 
+PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.0+
 PKG_LICENSE_FILES:=license.txt
 
-PKG_INSTALL:=1
 PKG_BUILD_DEPENDS:=unixodbc/host
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
index be065491af0576af7894f0b15529840274d546fb..b56af536023b1bf38ed34b57f2fd3012cb41ee53 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqlite
-PKG_VERSION:=3250300
-PKG_RELEASE:=1
+PKG_VERSION:=3260000
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-autoconf-$(PKG_VERSION).tar.gz
-PKG_HASH:=00ebf97be13928941940cc71de3d67e9f852698233cd98ce2d178fd08092f3dd
-PKG_SOURCE_URL:=http://www.sqlite.org/2018/
+PKG_HASH:=5daa6a3fb7d1e8c767cd59c4ded8da6e4b00c61d3b466d0685e35c4dd6d7bf5d
+PKG_SOURCE_URL:=https://www.sqlite.org/2018/
 
 PKG_LICENSE:=PUBLICDOMAIN
 PKG_LICENSE_FILES:=
@@ -34,7 +34,7 @@ define Package/sqlite3/Default
   SUBMENU:=database
   TITLE:=SQLite (v3.x) database engine
   URL:=http://www.sqlite.org/
-  MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
+  MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
 endef
 
 define Package/sqlite3/Default/description
@@ -75,10 +75,10 @@ $(call Package/sqlite3/Default/description)
  formats.
 endef
 
-TARGET_CFLAGS += $(FPIC) \
-       -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \
+TARGET_CFLAGS += \
        -DHAVE_ISNAN=1 \
-       -DHAVE_MALLOC_USABLE_SIZE=1
+       -DHAVE_MALLOC_USABLE_SIZE=1 \
+       -DSQLITE_ENABLE_UNLOCK_NOTIFY=1
 
 ifneq ($(CONFIG_SQLITE_FTS3),y)
 TARGET_CFLAGS += -USQLITE_ENABLE_FTS3
@@ -94,14 +94,6 @@ CONFIGURE_ARGS += \
        --disable-editline \
        --disable-static-shell
 
-CONFIGURE_VARS += \
-       config_BUILD_CC="$(HOSTCC)" \
-       config_BUILD_CFLAGS="-O2" \
-       config_TARGET_CC="$(TARGET_CC)" \
-       config_TARGET_CFLAGS="$(TARGET_CFLAGS)" \
-       config_TARGET_READLINE_INC="$(TARGET_CPPFLAGS)" \
-       config_TARGET_READLINE_LIBS="$(TARGET_LDFLAGS) -lreadline -lncurses" \
-
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/sqlite3{,ext}.h $(1)/usr/include/
index 2c9ec32490150a4534496579d9ee67e25f0220bd..12a36dbdaf7144cda1ba858a6903aa489ac1a332 100644 (file)
@@ -9,22 +9,21 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=msmtp
-PKG_VERSION:=1.6.8
-PKG_RELEASE:=2
+PKG_VERSION:=1.8.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://marlam.de/msmtp/releases
-PKG_HASH:=55ff95a304d888b56d07d9c62327ab9bfe26532c9c2a2ed6aefc43bea1b659fb
+PKG_HASH:=f0a2a7ed23a3ba5ca88640a9bc433507a79fdfc916b14a989d36679b7fdca4da
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
+PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
-PKG_MAINTAINER:=
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
-
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
 
@@ -46,7 +45,7 @@ endef
 
 define Package/msmtp
 $(call Package/msmtp/Default)
-  DEPENDS+= +libopenssl +ca-bundle
+  DEPENDS+= +libgnutls +ca-bundle
   TITLE+= (with SSL support)
   VARIANT:=ssl
 endef
@@ -101,6 +100,7 @@ CONFIGURE_ARGS += \
        --without-libidn \
        --without-libsecret \
        --without-macosx-keyring \
+       --without-msmtpd
 
 ifneq ($(CONFIG_USE_UCLIBC),)
   CONFIGURE_ARGS += --disable-gai-idn
@@ -110,7 +110,7 @@ MAKE_FLAGS :=
 
 ifeq ($(BUILD_VARIANT),ssl)
        CONFIGURE_ARGS += \
-               --with-tls=openssl
+               --with-tls=gnutls
 endif
 
 ifeq ($(BUILD_VARIANT),nossl)
diff --git a/mail/msmtp/patches/010-openssl-deprecated.patch b/mail/msmtp/patches/010-openssl-deprecated.patch
deleted file mode 100644 (file)
index 2a229aa..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
---- a/src/tls.c
-+++ b/src/tls.c
-@@ -45,6 +45,10 @@
- # include <openssl/err.h>
- # include <openssl/rand.h>
- # include <openssl/evp.h>
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#define X509_getm_notBefore X509_get_notBefore
-+#define X509_getm_notAfter X509_get_notAfter
-+#endif
- #endif /* HAVE_LIBSSL */
- #ifdef HAVE_LIBIDN
-@@ -167,8 +171,10 @@ int tls_lib_init(char **errstr)
- #ifdef HAVE_LIBSSL
-     int e;
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-     SSL_load_error_strings();
-     SSL_library_init();
-+#endif
-     if ((e = seed_prng(errstr)) != TLS_EOK)
-     {
-         return e;
-@@ -518,7 +524,7 @@ int tls_cert_info_get(tls_t *tls, tls_cert_info_t *tci, char **errstr)
-         *errstr = xasprintf(_("%s: error getting SHA1 fingerprint"), errmsg);
-         return TLS_ECERT;
-     }
--    asn1time = X509_get_notBefore(x509cert);
-+    asn1time = X509_getm_notBefore(x509cert);
-     if (asn1time_to_time_t((char *)asn1time->data,
-                 (asn1time->type != V_ASN1_GENERALIZEDTIME),
-                 &(tci->activation_time)) != 0)
-@@ -528,7 +534,7 @@ int tls_cert_info_get(tls_t *tls, tls_cert_info_t *tci, char **errstr)
-         tls_cert_info_free(tci);
-         return TLS_ECERT;
-     }
--    asn1time = X509_get_notAfter(x509cert);
-+    asn1time = X509_getm_notAfter(x509cert);
-     if (asn1time_to_time_t((char *)asn1time->data,
-                 (asn1time->type != V_ASN1_GENERALIZEDTIME),
-                 &(tci->expiration_time)) != 0)
index 2990084d2b3b2180753a19c930b8685022b1be91..9fefd3f9dae89524501278c0212313257e096325 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nail
 PKG_VERSION:=12.5
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 PKG_LICENSE:=BSD-2-Clause
 
 PKG_SOURCE:=heirloom-mailx_$(PKG_VERSION).orig.tar.gz
diff --git a/mail/nail/patches/300-openssl-deprecated.patch b/mail/nail/patches/300-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..8ba69ad
--- /dev/null
@@ -0,0 +1,47 @@
+--- a/openssl.c
++++ b/openssl.c
+@@ -174,7 +174,9 @@ ssl_init(void)
+ {
+       verbose = value("verbose") != NULL;
+       if (initialized == 0) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+               SSL_library_init();
++#endif
+               initialized = 1;
+       }
+       if (rand_init == 0)
+@@ -215,12 +217,13 @@ ssl_verify_cb(int success, X509_STORE_CTX *store)
+ static const SSL_METHOD *
+ ssl_select_method(const char *uhp)
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       const SSL_METHOD *method;
+       char    *cp;
+       cp = ssl_method_string(uhp);
+       if (cp != NULL) {
+-#if !defined(OPENSSL_NO_SSL2) && !OPENSSL_VERSION_NUMBER >= 0x10100000L
++#ifndef OPENSSL_NO_SSL2
+               if (equal(cp, "ssl2"))
+                       method = SSLv2_client_method();
+               else
+@@ -240,6 +243,9 @@ ssl_select_method(const char *uhp)
+       } else
+               method = SSLv23_client_method();
+       return method;
++#else
++      return TLS_client_method();
++#endif
+ }
+ static void 
+@@ -427,7 +433,9 @@ ssl_gen_err(const char *fmt, ...)
+       va_start(ap, fmt);
+       vfprintf(stderr, fmt, ap);
+       va_end(ap);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       SSL_load_error_strings();
++#endif
+       fprintf(stderr, ": %s\n",
+                       (ERR_error_string(ERR_get_error(), NULL)));
+ }
index 6a64e2c634e1137fcea5608f5772abe66965dbce..eaf0f81e6e4c97c52f5239b888494438a467b6db 100644 (file)
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=opendkim
 PKG_VERSION:=2.10.3
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
diff --git a/mail/opendkim/patches/010-openssl_1.1.0_compat.patch b/mail/opendkim/patches/010-openssl_1.1.0_compat.patch
deleted file mode 100644 (file)
index 3839908..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-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)
-               {
diff --git a/mail/opendkim/patches/010-openssl_1.1_compat.patch b/mail/opendkim/patches/010-openssl_1.1_compat.patch
new file mode 100644 (file)
index 0000000..ed92fff
--- /dev/null
@@ -0,0 +1,202 @@
+This patch has been tested with OpenSSL 1.0.2q, 1.1.0j and 1.1.1a
+with and without support for deprecated OpenSSL APIs.
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -860,26 +860,10 @@ 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])
+-              ]
+-      )
++      od_have_ossl="no"
++      AC_CHECK_LIB(ssl, OPENSSL_init_ssl, [od_have_ossl="yes"])
++      AC_CHECK_LIB(ssl, SSL_library_init, [od_have_ossl="yes"])
++      AS_IF([test "x$od_have_ossl" = xno], [AC_MSG_ERROR([libssl not found])])
+       AC_CHECK_DECL([SHA256_DIGEST_LENGTH],
+                       AC_DEFINE([HAVE_SHA256], 1,
+--- a/opendkim/opendkim-crypto.c
++++ b/opendkim/opendkim-crypto.c
+@@ -139,6 +139,7 @@ static unsigned int nmutexes = 0;
+ static unsigned long threadid = 0L;
+ static pthread_mutex_t *mutexes = NULL;
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ /*
+ **  DKIMF_CRYPTO_LOCK_CALLBACK -- locking callback for libcrypto
+ **
+@@ -166,6 +167,7 @@ dkimf_crypto_lock_callback(int mode, int
+       assert(status == 0);
+ }
++#endif
+ /*
+ **  DKIMF_CRYPTO_GET_ID -- generate/retrieve thread ID
+@@ -208,21 +210,15 @@ dkimf_crypto_get_id(void)
+ static void
+ dkimf_crypto_free_id(void *ptr)
+ {
+-      /*
+-      **  Trick dkimf_crypto_get_id(); the thread-specific pointer has
+-      **  already been cleared at this point, but dkimf_crypto_get_id()
+-      **  may be called by ERR_remove_state() which will then allocate a
+-      **  new thread pointer if the thread-specific pointer is NULL.  This
+-      **  means a memory leak of thread IDs and, on Solaris, an infinite loop
+-      **  because the destructor (indirectly) re-sets the thread-specific
+-      **  pointer to something not NULL.  See pthread_key_create(3).
+-      */
+-
+       if (ptr != NULL)
+       {
+               assert(pthread_setspecific(id_key, ptr) == 0);
+-              ERR_remove_state(0);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000
++              OPENSSL_thread_stop();
++#else
++              ERR_remove_thread_state(NULL);
++#endif
+               free(ptr);
+@@ -300,6 +296,7 @@ dkimf_crypto_dyn_destroy(struct CRYPTO_d
+ **    None.
+ */
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ static void
+ dkimf_crypto_dyn_lock(int mode, struct CRYPTO_dynlock_value *lock,
+                       /* UNUSED */ const char *file,
+@@ -316,6 +313,7 @@ dkimf_crypto_dyn_lock(int mode, struct C
+       assert(status == 0);
+ }
++#endif
+ /*
+ **  DKIMF_CRYPTO_INIT -- set up openssl dependencies
+@@ -335,7 +333,12 @@ dkimf_crypto_init(void)
+       int n;
+       int status;
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+       n = CRYPTO_num_locks();
++#else
++      // see openssl/crypto.h for more details
++      n = 1;
++#endif
+       mutexes = (pthread_mutex_t *) malloc(n * sizeof(pthread_mutex_t));
+       if (mutexes == NULL)
+               return errno;
+@@ -357,15 +360,22 @@ dkimf_crypto_init(void)
+       if (status != 0)
+               return status;
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+       SSL_load_error_strings();
+       SSL_library_init();
+       ERR_load_crypto_strings();
++#else
++      OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
++      OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
++#endif
++#if OPENSSL_VERSION_NUMBER < 0x10000000
+       CRYPTO_set_id_callback(&dkimf_crypto_get_id);
+       CRYPTO_set_locking_callback(&dkimf_crypto_lock_callback);
+       CRYPTO_set_dynlock_create_callback(&dkimf_crypto_dyn_create);
+       CRYPTO_set_dynlock_lock_callback(&dkimf_crypto_dyn_lock);
+       CRYPTO_set_dynlock_destroy_callback(&dkimf_crypto_dyn_destroy);
++#endif
+ #ifdef USE_OPENSSL_ENGINE
+       if (!SSL_set_engine(NULL))
+@@ -392,11 +402,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);
++              ERR_remove_thread_state(NULL);
++#endif
+               if (nmutexes > 0)
+               {
+--- a/libopendkim/dkim.c
++++ b/libopendkim/dkim.c
+@@ -4195,8 +4195,10 @@ dkim_init_openssl(void)
+ {
+       pthread_mutex_lock(&openssl_lock);
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+       if (openssl_refcount == 0)
+               OpenSSL_add_all_algorithms();
++#endif
+       openssl_refcount++;
+       pthread_mutex_unlock(&openssl_lock);
+@@ -4220,8 +4222,10 @@ dkim_close_openssl(void)
+       pthread_mutex_lock(&openssl_lock);
+       openssl_refcount--;
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+       if (openssl_refcount == 0)
+               EVP_cleanup();
++#endif
+       pthread_mutex_unlock(&openssl_lock);
+ }
+--- a/opendkim/opendkim-testkey.c
++++ b/opendkim/opendkim-testkey.c
+@@ -452,7 +452,11 @@ main(int argc, char **argv)
+       memset(err, '\0', sizeof err);
+ #ifndef USE_GNUTLS
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+       ERR_load_crypto_strings();
++#else
++      OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
++#endif
+ #endif /* ! USE_GNUTLS */
+       /* process a KeyTable if specified and not overridden */
+--- a/opendkim/opendkim.c
++++ b/opendkim/opendkim.c
+@@ -15540,7 +15540,11 @@ main(int argc, char **argv)
+                       printf("\tCompiled with GnuTLS %s\n", GNUTLS_VERSION);
+ #else /* USE_GNUTLS */
+                       printf("\tCompiled with %s\n",
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+                              SSLeay_version(SSLEAY_VERSION));
++#else
++                             OpenSSL_version(OPENSSL_VERSION));
++#endif
+ #endif /* USE_GNUTLS */
+                       printf("\tSMFI_VERSION 0x%x\n", SMFI_VERSION);
+ #ifdef HAVE_SMFI_VERSION
index e8a7c2620cd5f9a44a24cc4dad0325879c311fcd..ec3b32865e24ce29f0d8b812ead8abf5511b25e0 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=postfix
 PKG_RELEASE:=2
-PKG_VERSION:=3.3.1
+PKG_VERSION:=3.3.2
 PKG_SOURCE_URL:= \
        https://cdn.postfix.johnriley.me/mirrors/postfix-release/official/ \
        ftp://ftp.porcupine.org/mirrors/postfix-release/official/
 
-PKG_HASH:=54f514dae42b5275cb4bc9c69283f16c06200b71813d0bb696568c4ba7ae7e3b
+PKG_HASH:=3c93f31eee49a58e592c31e62a058701cadde11e8e066ea441da19fddad7b35b
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_MAINTAINER:=Denis Shulyaka <Shulyaka@gmail.com>
 PKG_LICENSE:=IPL-1.0
index 824ea976026e37a535f2f9cfa81e878393fa41ca..c93b728b59eeef726b3a2164d9e205fa48719be2 100644 (file)
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sendmail
 PKG_VERSION:=8.15.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://artfiles.org/sendmail.org/pub/sendmail/ \
index 00865f01881b44eef36b9e2a68bd44127cd4ec40..c0a01a95bc4c2c4c2b28e0ad97045239d6e755e8 100644 (file)
@@ -13,7 +13,7 @@ APPENDDEF(`confLIBSEARCH', `crypt')
 define(`confMTCCOPTS', `-D_REENTRANT')
 define(`confMTLDOPTS', `-lpthread')
 define(`confLDOPTS_SO', `-shared')
-define(`confSONAME',`-soname')
+define(`confSONAME',`-Wl,-soname')
 
 define(`currentuser', esyscmd(`id -nu'))
 define(`currentgroup', esyscmd(`id -ng'))
index 2c131be8085560af58a081b3ac35f9336c621c71..6096f9016bf0a71f03b9966c9f88428fb0156e38 100644 (file)
@@ -9,7 +9,7 @@ include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
 divert(bldTARGETS_SECTION)
 
 bldCURRENT_PRODUCT.so.confSOVER: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
-       ${LD} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so.confSOVER confSONAME bldCURRENT_PRODUCT.so.confSOVER ${bldCURRENT_PRODUCT`OBJS'}
+       ${CC} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so.confSOVER confSONAME,bldCURRENT_PRODUCT.so.confSOVER ${bldCURRENT_PRODUCT`OBJS'}
 ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
 
 install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so.confSOVER
diff --git a/mail/sendmail/patches/200-openssl-1.1.1.patch b/mail/sendmail/patches/200-openssl-1.1.1.patch
new file mode 100644 (file)
index 0000000..7eea24a
--- /dev/null
@@ -0,0 +1,255 @@
+Not needed for 8.16
+
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Sat, 10 Sep 2016 19:27:17 +0000
+Subject: [PATCH] sendmail: compile against openssl 1.1.0
+
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+---
+
+--- a/sendmail/tls.c
++++ b/sendmail/tls.c
+@@ -60,18 +60,58 @@ static unsigned char dh512_g[] =
+       0x02
+ };
++#if OPENSSL_VERSION_NUMBER < 0x10100000
++
++static inline 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;
++}
++#endif
++
+ static DH *
+ get_dh512()
+ {
+       DH *dh = NULL;
++      BIGNUM *p;
++      BIGNUM *g;
+-      if ((dh = DH_new()) == NULL)
+-              return NULL;
+-      dh->p = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
+-      dh->g = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
+-      if ((dh->p == NULL) || (dh->g == NULL))
+-              return NULL;
++      dh = DH_new();
++      p = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
++      g = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
++      if (!dh || !p || !g)
++              goto err;
++      if (!DH_set0_pqg(dh, p, NULL, g))
++              goto err;
+       return dh;
++err:
++      DH_free(dh);
++      BN_free(p);
++      BN_free(g);
++      return NULL;
+ }
+ #  if 0
+@@ -117,17 +157,22 @@ get_dh2048()
+               };
+       static unsigned char dh2048_g[]={ 0x02, };
+       DH *dh;
++      BIGNUM *p;
++      BIGNUM *g;
+-      if ((dh=DH_new()) == NULL)
+-              return(NULL);
+-      dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);
+-      dh->g=BN_bin2bn(dh2048_g,sizeof(dh2048_g),NULL);
+-      if ((dh->p == NULL) || (dh->g == NULL))
+-      {
+-              DH_free(dh);
+-              return(NULL);
+-      }
++      dh = DH_new();
++      p = BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);
++      g = BN_bin2bn(dh2048_g,sizeof(dh2048_g),NULL);
++      if (!dh || !p || !g)
++              goto err;
++      if (!DH_set0_pqg(dh, p, NULL, g))
++              goto err;
+       return(dh);
++err:
++      DH_free(dh);
++      BN_free(p);
++      BN_free(g);
++      return NULL;
+ }
+ # endif /* !NO_DH */
+@@ -926,7 +971,7 @@ inittls(ctx, req, options, srv, certfile
+       {
+               /* get a pointer to the current certificate validation store */
+               store = SSL_CTX_get_cert_store(*ctx);   /* does not fail */
+-              crl_file = BIO_new(BIO_s_file_internal());
++              crl_file = BIO_new(BIO_s_file());
+               if (crl_file != NULL)
+               {
+                       if (BIO_read_filename(crl_file, CRLFile) >= 0)
+@@ -1000,26 +1045,43 @@ inittls(ctx, req, options, srv, certfile
+       **  maybe we should do it only on demand...
+       */
+-      if (bitset(TLS_I_RSA_TMP, req)
+ #  if SM_CONF_SHM
+-          && ShmId != SM_SHM_NO_ID &&
+-          (rsa_tmp = RSA_generate_key(RSA_KEYLENGTH, RSA_F4, NULL,
+-                                      NULL)) == NULL
+-#  else /* SM_CONF_SHM */
+-          && 0        /* no shared memory: no need to generate key now */
+-#  endif /* SM_CONF_SHM */
+-         )
++      if (bitset(TLS_I_RSA_TMP, req)
++          && ShmId != SM_SHM_NO_ID)
+       {
+-              if (LogLevel > 7)
++              BIGNUM *bn;
++
++              bn = BN_new();
++              rsa_tmp = RSA_new();
++              if (!bn || !rsa_tmp || !BN_set_word(bn, RSA_F4)) {
++                      RSA_free(rsa_tmp);
++                      rsa_tmp = NULL;
++              }
++              if (rsa_tmp)
+               {
+-                      sm_syslog(LOG_WARNING, NOQID,
+-                                "STARTTLS=%s, error: RSA_generate_key failed",
+-                                who);
+-                      if (LogLevel > 9)
+-                              tlslogerr(LOG_WARNING, who);
++                      if (!RSA_generate_key_ex(rsa_tmp, RSA_KEYLENGTH, bn, NULL))
++                      {
++                              RSA_free(rsa_tmp);
++                              rsa_tmp = NULL;
++                      }
++              }
++              BN_free(bn);
++              if (!rsa_tmp)
++              {
++                      if (LogLevel > 7)
++                      {
++                              sm_syslog(LOG_WARNING, NOQID,
++                                        "STARTTLS=%s, error: RSA_generate_key failed",
++                                        who);
++                              if (LogLevel > 9)
++                                      tlslogerr(LOG_WARNING, who);
++                      }
++                      return false;
+               }
+-              return false;
+       }
++#  else /* SM_CONF_SHM */
++      /* no shared memory: no need to generate key now */
++#  endif /* SM_CONF_SHM */
+ # endif /* !TLS_NO_RSA */
+       /*
+@@ -1210,9 +1272,15 @@ inittls(ctx, req, options, srv, certfile
+                               sm_dprintf("inittls: Generating %d bit DH parameters\n", bits);
+                       /* this takes a while! */
+-                      dsa = DSA_generate_parameters(bits, NULL, 0, NULL,
+-                                                    NULL, 0, NULL);
+-                      dh = DSA_dup_DH(dsa);
++                      dsa = DSA_new();
++                      if (dsa) {
++                              int r;
++
++                              r = DSA_generate_parameters_ex(dsa, bits, NULL, 0,
++                                                          NULL, NULL, NULL);
++                              if (r != 0)
++                                      dh = DSA_dup_DH(dsa);
++                      }
+                       DSA_free(dsa);
+               }
+               else if (dh == NULL && bitset(TLS_I_DHFIXED, req))
+@@ -1733,6 +1801,9 @@ tmp_rsa_key(s, export, keylength)
+       int export;
+       int keylength;
+ {
++      BIGNUM *bn;
++      int ret;
++
+ #   if SM_CONF_SHM
+       extern int ShmId;
+       extern int *PRSATmpCnt;
+@@ -1742,10 +1813,22 @@ tmp_rsa_key(s, export, keylength)
+               return rsa_tmp;
+ #   endif /* SM_CONF_SHM */
+-      if (rsa_tmp != NULL)
+-              RSA_free(rsa_tmp);
+-      rsa_tmp = RSA_generate_key(RSA_KEYLENGTH, RSA_F4, NULL, NULL);
+-      if (rsa_tmp == NULL)
++      if (rsa_tmp == NULL) {
++              rsa_tmp = RSA_new();
++              if (!rsa_tmp)
++                      return NULL;
++      }
++
++      bn = BN_new();
++      if (!bn)
++              return NULL;
++      if (!BN_set_word(bn, RSA_F4)) {
++              BN_free(bn);
++              return NULL;
++      }
++      ret = RSA_generate_key_ex(rsa_tmp, RSA_KEYLENGTH, bn, NULL);
++      BN_free(bn);
++      if (!ret)
+       {
+               if (LogLevel > 0)
+                       sm_syslog(LOG_ERR, NOQID,
+@@ -1971,9 +2054,9 @@ x509_verify_cb(ok, ctx)
+       {
+               if (LogLevel > 13)
+                       tls_verify_log(ok, ctx, "x509");
+-              if (ctx->error == X509_V_ERR_UNABLE_TO_GET_CRL)
++              if (X509_STORE_CTX_get_error(ctx) == X509_V_ERR_UNABLE_TO_GET_CRL)
+               {
+-                      ctx->error = 0;
++                      X509_STORE_CTX_set_error(ctx, 0);
+                       return 1;       /* override it */
+               }
+       }
+--- a/doc/op/op.me
++++ b/doc/op/op.me
+@@ -10898,7 +10898,7 @@ C=FileName_of_CA_Certificate
+ ln -s $C `openssl x509 -noout -hash < $C`.0
+ .)b
+ A better way to do this is to use the
+-.b c_rehash
++.b "openssl rehash"
+ command that is part of the OpenSSL distribution
+ because it handles subject hash collisions
+ by incrementing the number in the suffix of the filename of the symbolic link,
diff --git a/mail/sendmail/patches/201-openssl-1.1.1-ecdhe.patch b/mail/sendmail/patches/201-openssl-1.1.1-ecdhe.patch
new file mode 100644 (file)
index 0000000..b2e2e29
--- /dev/null
@@ -0,0 +1,20 @@
+Not needed for 8.16
+
+--- a/sendmail/tls.c
++++ b/sendmail/tls.c
+@@ -1325,13 +1325,8 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
+               }
+ #if _FFR_TLS_EC
+-              ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
+-              if (ecdh != NULL)
+-              {
+-                      SSL_CTX_set_options(*ctx, SSL_OP_SINGLE_ECDH_USE);
+-                      SSL_CTX_set_tmp_ecdh(*ctx, ecdh);
+-                      EC_KEY_free(ecdh);
+-              }
++              SSL_CTX_set_options(*ctx, SSL_OP_SINGLE_ECDH_USE);
++              SSL_CTX_set_ecdh_auto(*ctx, 1);
+ #endif /* _FFR_TLS_EC */
+       }
diff --git a/mail/sendmail/patches/202-openssl-deprecated.patch b/mail/sendmail/patches/202-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..31245bd
--- /dev/null
@@ -0,0 +1,76 @@
+Must be rebased for 8.16
+
+--- a/sendmail/main.c
++++ b/sendmail/main.c
+@@ -17,6 +17,9 @@
+ #include <sm/xtrap.h>
+ #include <sm/signal.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define OpenSSL_version_num SSLeay
++#endif
+ #ifndef lint
+ SM_UNUSED(static char copyright[]) =
+ "@(#) Copyright (c) 1998-2013 Proofpoint, Inc. and its suppliers.\n\
+@@ -650,7 +653,7 @@ main(argc, argv, envp)
+               sm_dprintf("       OpenSSL: compiled 0x%08x\n",
+                          (uint) OPENSSL_VERSION_NUMBER);
+               sm_dprintf("       OpenSSL: linked   0x%08x\n",
+-                         (uint) SSLeay());
++                         (uint) OpenSSL_version_num());
+       }
+ #endif /* STARTTLS */
+--- a/sendmail/tls.c
++++ b/sendmail/tls.c
+@@ -16,9 +16,25 @@ SM_RCSID("@(#)$Id: tls.c,v 8.127 2013-11-27 02:51:11 gshapiro Exp $")
+ # include <openssl/err.h>
+ # include <openssl/bio.h>
+ # include <openssl/pem.h>
++# include <openssl/bn.h>
++# include <openssl/dh.h>
++# include <openssl/dsa.h>
++# include <openssl/rsa.h>
+ # ifndef HASURANDOMDEV
+ #  include <openssl/rand.h>
+ # endif /* ! HASURANDOMDEV */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define OpenSSL_version_num SSLeay
++#endif
++
++#ifndef CRYPTO_thread_id
++#define CRYPTO_thread_id() (0UL)
++#endif
++
++#ifndef SSL_CTX_set_tmp_rsa_callback
++#define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0)
++#endif
++
+ # if !TLS_NO_RSA
+ static RSA *rsa_tmp = NULL;   /* temporary RSA key */
+ static RSA *tmp_rsa_key __P((SSL *, int, int));
+@@ -380,6 +396,7 @@ init_tls_library(fipsmode)
+ {
+       bool bv;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       /* basic TLS initialization, ignore result for now */
+       SSL_library_init();
+       SSL_load_error_strings();
+@@ -388,6 +405,7 @@ init_tls_library(fipsmode)
+       /* this is currently a macro for SSL_library_init */
+       SSLeay_add_ssl_algorithms();
+ # endif /* 0 */
++#endif /* OPENSSL_VERSION_NUMBER */
+       bv = tls_rand_init(RandFile, 7);
+ # if _FFR_FIPSMODE
+@@ -1207,7 +1225,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
+       **  just the compile time version.
+       */
+-      rt_version = SSLeay();
++      rt_version = OpenSSL_version_num();
+       if (rt_version >= 0x00908000L && rt_version <= 0x0090802fL)
+       {
+               comp_methods = SSL_COMP_get_compression_methods();
index 571555d61f52e547dd21ed2dcf5659c2a017b2ee..25a22410f555a35232057ecc47bb9e7300a3e3d0 100644 (file)
@@ -10,27 +10,26 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=crtmpserver
 PKG_REV:=b6fdcdb953d1e99c48a0c37a8c80f2cad2db443b
 PKG_VERSION:=2012-07-18+git-$(PKG_REV)
-PKG_RELEASE:=3
-PKG_BUILD_PARALLEL:=2
+PKG_RELEASE:=4
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/j0sh/crtmpserver/tar.gz/$(PKG_REV)?
+PKG_HASH:=e210eeb99d39334e7beb0a1be27dcf23d1f851383f87cf63d7fb98209ef96cee
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REV)
+
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=GPL-3.0
 
+PKG_BUILD_PARALLEL:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_MIRROR_HASH:=8d887996b6b8cb465ec59f3f713fca46161cbb804cacd2b5405f836083fb58ba
-PKG_SOURCE_URL:=https://github.com/j0sh/crtmpserver.git
-PKG_SOURCE_SUBDIR:=crtmpserver-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_PROTO:=git
-
+include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/crtmpserver
   SECTION:=multimedia
   CATEGORY:=Multimedia
-  DEPENDS:=+libopenssl +libstdcpp +liblua
+  DEPENDS:=$(CXX_DEPENDS) +libopenssl +liblua
   TITLE:=C++ RTMP Server
-  URL:=http://www.rtmpd.com/
 endef
 
 define Package/crtmpserver/description
index 7b9da39a2b36a3a99e2745e224b38e70d2f14a9f..c5241c27cf06b57d5cd37785dfaa1650ea5e75b6 100644 (file)
@@ -1,26 +1,10 @@
---- a/sources/common/include/common.h
-+++ b/sources/common/include/common.h
-@@ -20,6 +20,10 @@
- #ifndef _COMMON_H
- #define _COMMON_H
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <sys/types.h>
-+
- #include "defines.h"
- #include "platform/platform.h"
- #include "utils/utils.h"
 --- a/sources/common/src/utils/logging/fileloglocation.cpp
 +++ b/sources/common/src/utils/logging/fileloglocation.cpp
-@@ -18,6 +18,10 @@
+@@ -17,6 +17,7 @@
+  *  along with crtmpserver.  If not, see <http://www.gnu.org/licenses/>.
   */
  
++#include <ctime>
  
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <sys/types.h>
-+
  #include "utils/logging/fileloglocation.h"
  #include "utils/lua/luautils.h"
- #include "utils/misc/file.h"
diff --git a/multimedia/crtmpserver/patches/090-openssl-1.1-compat.diff b/multimedia/crtmpserver/patches/090-openssl-1.1-compat.diff
deleted file mode 100644 (file)
index dfc9246..0000000
+++ /dev/null
@@ -1,455 +0,0 @@
---- a/sources/applications/applestreamingclient/include/protocols/aes/inboundaesprotocol.h
-+++ b/sources/applications/applestreamingclient/include/protocols/aes/inboundaesprotocol.h
-@@ -30,7 +30,7 @@ namespace app_applestreamingclient {
-       private:
-               IOBuffer _tempBuffer;
-               IOBuffer _inputBuffer;
--              EVP_CIPHER_CTX _decContex;
-+              EVP_CIPHER_CTX *_decContex;
-               bool _lastChunk;
-               uint8_t *_pIV;
-               uint8_t *_pKey;
---- a/sources/applications/applestreamingclient/src/protocols/aes/inboundaesprotocol.cpp
-+++ b/sources/applications/applestreamingclient/src/protocols/aes/inboundaesprotocol.cpp
-@@ -31,13 +31,12 @@ InboundAESProtocol::InboundAESProtocol()
-       memset(_pIV, 0, 16);
-       _pKey = new uint8_t[16];
-       memset(_pKey, 0, 16);
--      memset(&_decContex, 0, sizeof (EVP_CIPHER_CTX));
-+      _decContex = EVP_CIPHER_CTX_new();
-       _totalDecrypted = 0;
- }
- InboundAESProtocol::~InboundAESProtocol() {
--      EVP_CIPHER_CTX_cleanup(&_decContex);
--      memset(&_decContex, 0, sizeof (EVP_CIPHER_CTX));
-+      EVP_CIPHER_CTX_free(_decContex);
-       delete[] _pIV;
-       delete[] _pKey;
- }
-@@ -60,11 +59,9 @@ bool InboundAESProtocol::Initialize(Vari
-       _inputBuffer.IgnoreAll();
-       _tempBuffer.IgnoreAll();
--      EVP_CIPHER_CTX_cleanup(&_decContex);
--      memset(&_decContex, 0, sizeof (EVP_CIPHER_CTX));
--      EVP_CIPHER_CTX_init(&_decContex);
--      EVP_DecryptInit_ex(&_decContex, EVP_aes_128_cbc(), NULL, _pKey, _pIV);
--      EVP_CIPHER_CTX_set_padding(&_decContex, 0);
-+      EVP_CIPHER_CTX_reset(_decContex);
-+      EVP_DecryptInit_ex(_decContex, EVP_aes_128_cbc(), NULL, _pKey, _pIV);
-+      EVP_CIPHER_CTX_set_padding(_decContex, 0);
-       return true;
- }
-@@ -105,14 +102,14 @@ bool InboundAESProtocol::SignalInputData
-       int decryptedFinalSize = 0;
-       uint32_t padding = 0;
--      EVP_DecryptUpdate(&_decContex, pTempData, &decryptedSize, GETIBPOINTER(buffer), safeSize);
-+      EVP_DecryptUpdate(_decContex, pTempData, &decryptedSize, GETIBPOINTER(buffer), safeSize);
-       _totalDecrypted += decryptedSize;
-       //6. Decrypt leftovers
-       bool transferCompleted = false;
-       if (((HTTPBufferProtocol *) GetFarProtocol())->TransferCompleted()) {
-               transferCompleted = true;
--              EVP_DecryptFinal_ex(&_decContex,
-+              EVP_DecryptFinal_ex(_decContex,
-                               pTempData + decryptedSize,
-                               &decryptedFinalSize);
-               _totalDecrypted += decryptedFinalSize;
---- a/sources/common/include/utils/misc/crypto.h
-+++ b/sources/common/include/utils/misc/crypto.h
-@@ -33,6 +33,7 @@
- #include <openssl/aes.h>
- #include <openssl/engine.h>
- #include <openssl/conf.h>
-+#include "utils/misc/libcrypto-compat.h"
- /*!
-       @class DHWrapper
-@@ -83,7 +84,7 @@ public:
-       bool CopySharedKey(uint8_t *pDst, int32_t dstLength);
- private:
-       void Cleanup();
--      bool CopyKey(BIGNUM *pNum, uint8_t *pDst, int32_t dstLength);
-+      bool CopyKey(const BIGNUM *pNum, uint8_t *pDst, int32_t dstLength);
- };
- DLLEXP void InitRC4Encryption(uint8_t *secretKey, uint8_t *pubKeyIn, uint8_t *pubKeyOut,
---- a/sources/common/src/utils/misc/crypto.cpp
-+++ b/sources/common/src/utils/misc/crypto.cpp
-@@ -35,6 +35,7 @@ DHWrapper::~DHWrapper() {
- }
- bool DHWrapper::Initialize() {
-+      BIGNUM *p = NULL, *g = NULL;
-       Cleanup();
-       //1. Create the DH
-@@ -46,42 +47,53 @@ bool DHWrapper::Initialize() {
-       }
-       //2. Create his internal p and g
--      _pDH->p = BN_new();
--      if (_pDH->p == NULL) {
-+      p = BN_new();
-+      if (p == NULL) {
-               FATAL("Unable to create p");
--              Cleanup();
--              return false;
-+              goto return_error;
-       }
--      _pDH->g = BN_new();
--      if (_pDH->g == NULL) {
-+      g = BN_new();
-+      if (g == NULL) {
-               FATAL("Unable to create g");
--              Cleanup();
--              return false;
-+              goto return_error;
-       }
-       //3. initialize p, g and key length
--      if (BN_hex2bn(&_pDH->p, P1024) == 0) {
-+      if (BN_hex2bn(&p, P1024) == 0) {
-               FATAL("Unable to parse P1024");
--              Cleanup();
--              return false;
-+              goto return_error;
-       }
--      if (BN_set_word(_pDH->g, 2) != 1) {
-+      if (BN_set_word(g, 2) != 1) {
-               FATAL("Unable to set g");
--              Cleanup();
--              return false;
-+              goto return_error;
-       }
--      //4. Set the key length
--      _pDH->length = _bitsCount;
-+      //4. Set internal p and g
-+      if (DH_set0_pqg(_pDH, p, NULL, g) != 1) {
-+              FATAL("Unable to set internal p and g");
-+              goto return_error;
-+      }
-+      p = g = NULL;
--      //5. Generate private and public key
-+      //5. Set the key length
-+      if (DH_set_length(_pDH, _bitsCount) != 1) {
-+              FATAL("Unable to set length");
-+              goto return_error;
-+      }
-+
-+      //6. Generate private and public key
-       if (DH_generate_key(_pDH) != 1) {
-               FATAL("Unable to generate DH public/private keys");
--              Cleanup();
--              return false;
-+              goto return_error;
-       }
-       return true;
-+
-+return_error:
-+      if (p != NULL) BN_free(p);
-+      if (g != NULL) BN_free(g);
-+      Cleanup();
-+      return false;
- }
- bool DHWrapper::CopyPublicKey(uint8_t *pDst, int32_t dstLength) {
-@@ -90,7 +102,9 @@ bool DHWrapper::CopyPublicKey(uint8_t *p
-               return false;
-       }
--      return CopyKey(_pDH->pub_key, pDst, dstLength);
-+      const BIGNUM *pub_key;
-+      DH_get0_key(_pDH, &pub_key, NULL);
-+      return CopyKey(pub_key, pDst, dstLength);
- }
- bool DHWrapper::CopyPrivateKey(uint8_t *pDst, int32_t dstLength) {
-@@ -99,7 +113,9 @@ bool DHWrapper::CopyPrivateKey(uint8_t *
-               return false;
-       }
--      return CopyKey(_pDH->priv_key, pDst, dstLength);
-+      const BIGNUM *priv_key;
-+      DH_get0_key(_pDH, NULL, &priv_key);
-+      return CopyKey(priv_key, pDst, dstLength);
- }
- bool DHWrapper::CreateSharedKey(uint8_t *pPeerPublicKey, int32_t length) {
-@@ -153,14 +169,6 @@ bool DHWrapper::CopySharedKey(uint8_t *p
- void DHWrapper::Cleanup() {
-       if (_pDH != NULL) {
--              if (_pDH->p != NULL) {
--                      BN_free(_pDH->p);
--                      _pDH->p = NULL;
--              }
--              if (_pDH->g != NULL) {
--                      BN_free(_pDH->g);
--                      _pDH->g = NULL;
--              }
-               DH_free(_pDH);
-               _pDH = NULL;
-       }
-@@ -177,7 +185,7 @@ void DHWrapper::Cleanup() {
-       }
- }
--bool DHWrapper::CopyKey(BIGNUM *pNum, uint8_t *pDst, int32_t dstLength) {
-+bool DHWrapper::CopyKey(const BIGNUM *pNum, uint8_t *pDst, int32_t dstLength) {
-       int32_t keySize = BN_num_bytes(pNum);
-       if ((keySize <= 0) || (dstLength <= 0) || (keySize > dstLength)) {
-               FATAL("CopyPublicKey failed due to either invalid DH state or invalid call");
-@@ -197,20 +205,21 @@ void InitRC4Encryption(uint8_t *secretKe
-       uint8_t digest[SHA256_DIGEST_LENGTH];
-       unsigned int digestLen = 0;
--      HMAC_CTX ctx;
--      HMAC_CTX_init(&ctx);
--      HMAC_Init_ex(&ctx, secretKey, 128, EVP_sha256(), 0);
--      HMAC_Update(&ctx, pubKeyIn, 128);
--      HMAC_Final(&ctx, digest, &digestLen);
--      HMAC_CTX_cleanup(&ctx);
-+      HMAC_CTX *ctx;
-+      ctx = HMAC_CTX_new();
-+      if (ctx == NULL)
-+              return;
-+      HMAC_Init_ex(ctx, secretKey, 128, EVP_sha256(), 0);
-+      HMAC_Update(ctx, pubKeyIn, 128);
-+      HMAC_Final(ctx, digest, &digestLen);
-+      HMAC_CTX_reset(ctx);
-       RC4_set_key(rc4keyOut, 16, digest);
--      HMAC_CTX_init(&ctx);
--      HMAC_Init_ex(&ctx, secretKey, 128, EVP_sha256(), 0);
--      HMAC_Update(&ctx, pubKeyOut, 128);
--      HMAC_Final(&ctx, digest, &digestLen);
--      HMAC_CTX_cleanup(&ctx);
-+      HMAC_Init_ex(ctx, secretKey, 128, EVP_sha256(), 0);
-+      HMAC_Update(ctx, pubKeyOut, 128);
-+      HMAC_Final(ctx, digest, &digestLen);
-+      HMAC_CTX_free(ctx);
-       RC4_set_key(rc4keyIn, 16, digest);
- }
-@@ -220,14 +229,17 @@ string md5(string source, bool textResul
- }
- string md5(uint8_t *pBuffer, uint32_t length, bool textResult) {
--      EVP_MD_CTX mdctx;
-+      EVP_MD_CTX *mdctx;
-       unsigned char md_value[EVP_MAX_MD_SIZE];
-       unsigned int md_len;
--      EVP_DigestInit(&mdctx, EVP_md5());
--      EVP_DigestUpdate(&mdctx, pBuffer, length);
--      EVP_DigestFinal_ex(&mdctx, md_value, &md_len);
--      EVP_MD_CTX_cleanup(&mdctx);
-+      mdctx = EVP_MD_CTX_new();
-+      if (mdctx == NULL)
-+              return "";
-+      EVP_DigestInit(mdctx, EVP_md5());
-+      EVP_DigestUpdate(mdctx, pBuffer, length);
-+      EVP_DigestFinal_ex(mdctx, md_value, &md_len);
-+      EVP_MD_CTX_free(mdctx);
-       if (textResult) {
-               string result = "";
-@@ -244,12 +256,12 @@ void HMACsha256(const void *pData, uint3
-               const void *pKey, uint32_t keyLength, void *pResult) {
-       unsigned int digestLen;
--      HMAC_CTX ctx;
--      HMAC_CTX_init(&ctx);
--      HMAC_Init_ex(&ctx, (unsigned char*) pKey, keyLength, EVP_sha256(), NULL);
--      HMAC_Update(&ctx, (unsigned char *) pData, dataLength);
--      HMAC_Final(&ctx, (unsigned char *) pResult, &digestLen);
--      HMAC_CTX_cleanup(&ctx);
-+      HMAC_CTX *ctx;
-+      ctx = HMAC_CTX_new();
-+      HMAC_Init_ex(ctx, (unsigned char*) pKey, keyLength, EVP_sha256(), NULL);
-+      HMAC_Update(ctx, (unsigned char *) pData, dataLength);
-+      HMAC_Final(ctx, (unsigned char *) pResult, &digestLen);
-+      HMAC_CTX_free(ctx);
-       o_assert(digestLen == 32);
- }
---- a/sources/thelib/src/protocols/ssl/basesslprotocol.cpp
-+++ b/sources/thelib/src/protocols/ssl/basesslprotocol.cpp
-@@ -211,6 +211,7 @@ string BaseSSLProtocol::GetSSLErrors() {
- string BaseSSLProtocol::DumpBIO(BIO *pBIO) {
-       string formatString;
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       formatString = "method: %p\n";
-       formatString += "callback: %p\n";
-       formatString += "cb_arg: %p\n";
-@@ -240,6 +241,39 @@ string BaseSSLProtocol::DumpBIO(BIO *pBI
-                       pBIO->references,
-                       (int64_t) pBIO->num_read,
-                       (int64_t) pBIO->num_write);
-+#else
-+// Some of these are problematic in openssl >= 1.1, since
-+// the BIO struct is opaque.
-+      formatString = "method: %s\n";
-+      formatString += "callback: %p\n";
-+      formatString += "cb_arg: %p\n";
-+      formatString += "init: %d\n";
-+      formatString += "shutdown: %d\n";
-+      formatString += "flags: %d\n";
-+      formatString += "retry_reason: %d\n";
-+      formatString += "num: %d\n";
-+      formatString += "ptr: %p\n";
-+      formatString += "next_bio: %p\n";
-+      formatString += "prev_bio: %s\n";
-+      formatString += "references: %s\n";
-+      formatString += "num_read: %"PRId64"\n";
-+      formatString += "num_write: %"PRId64;
-+      return format(formatString,
-+                      BIO_method_name(pBIO),
-+                      BIO_get_callback(pBIO),
-+                      BIO_get_callback_arg(pBIO),
-+                      BIO_get_init(pBIO),
-+                      BIO_get_shutdown(pBIO),
-+                      BIO_get_flags(pBIO),
-+                      BIO_get_retry_reason(pBIO),
-+                      BIO_get_fd(pBIO, NULL),
-+                      BIO_get_data(pBIO),
-+                      BIO_next(pBIO),
-+                      "unknown", //prev_bio
-+                      "unknown", //references
-+                      BIO_number_read(pBIO),
-+                      BIO_number_written(pBIO));
-+#endif
- }
- void BaseSSLProtocol::InitRandGenerator() {
---- /dev/null
-+++ b/sources/common/include/utils/misc/libcrypto-compat.h
-@@ -0,0 +1,25 @@
-+#ifndef LIBCRYPTO_COMPAT_H
-+#define LIBCRYPTO_COMPAT_H
-+
-+#include <openssl/opensslv.h>
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+
-+#include <openssl/dh.h>
-+#include <openssl/evp.h>
-+#include <openssl/hmac.h>
-+
-+int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
-+void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key);
-+int DH_set_length(DH *dh, long length);
-+
-+EVP_MD_CTX *EVP_MD_CTX_new(void);
-+void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
-+#define EVP_MD_CTX_reset EVP_MD_CTX_cleanup
-+
-+HMAC_CTX *HMAC_CTX_new(void);
-+void HMAC_CTX_free(HMAC_CTX *ctx);
-+#define HMAC_CTX_reset HMAC_CTX_cleanup
-+
-+#endif /* OPENSSL_VERSION_NUMBER */
-+
-+#endif /* LIBCRYPTO_COMPAT_H */
---- /dev/null
-+++ b/sources/common/src/utils/misc/libcrypto-compat.cpp
-@@ -0,0 +1,90 @@
-+/*
-+ * 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 "utils/misc/libcrypto-compat.h"
-+
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+
-+#include <string.h>
-+
-+static void *OPENSSL_zalloc(size_t num)
-+{
-+    void *ret = OPENSSL_malloc(num);
-+
-+    if (ret != NULL)
-+        memset(ret, 0, num);
-+    return ret;
-+}
-+
-+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;
-+}
-+
-+int DH_set_length(DH *dh, long length)
-+{
-+    dh->length = length;
-+    return 1;
-+}
-+
-+EVP_MD_CTX *EVP_MD_CTX_new(void)
-+{
-+    return (EVP_MD_CTX *)OPENSSL_zalloc(sizeof(EVP_MD_CTX));
-+}
-+
-+void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
-+{
-+    EVP_MD_CTX_cleanup(ctx);
-+    OPENSSL_free(ctx);
-+}
-+
-+HMAC_CTX *HMAC_CTX_new(void)
-+{
-+    return (HMAC_CTX *)OPENSSL_zalloc(sizeof(HMAC_CTX));
-+}
-+
-+void HMAC_CTX_free(HMAC_CTX *ctx)
-+{
-+    HMAC_CTX_cleanup(ctx);
-+    OPENSSL_free(ctx);
-+}
-+
-+#endif /* OPENSSL_VERSION_NUMBER */
diff --git a/multimedia/crtmpserver/patches/090-openssl-1.1-compat.patch b/multimedia/crtmpserver/patches/090-openssl-1.1-compat.patch
new file mode 100644 (file)
index 0000000..dfc9246
--- /dev/null
@@ -0,0 +1,455 @@
+--- a/sources/applications/applestreamingclient/include/protocols/aes/inboundaesprotocol.h
++++ b/sources/applications/applestreamingclient/include/protocols/aes/inboundaesprotocol.h
+@@ -30,7 +30,7 @@ namespace app_applestreamingclient {
+       private:
+               IOBuffer _tempBuffer;
+               IOBuffer _inputBuffer;
+-              EVP_CIPHER_CTX _decContex;
++              EVP_CIPHER_CTX *_decContex;
+               bool _lastChunk;
+               uint8_t *_pIV;
+               uint8_t *_pKey;
+--- a/sources/applications/applestreamingclient/src/protocols/aes/inboundaesprotocol.cpp
++++ b/sources/applications/applestreamingclient/src/protocols/aes/inboundaesprotocol.cpp
+@@ -31,13 +31,12 @@ InboundAESProtocol::InboundAESProtocol()
+       memset(_pIV, 0, 16);
+       _pKey = new uint8_t[16];
+       memset(_pKey, 0, 16);
+-      memset(&_decContex, 0, sizeof (EVP_CIPHER_CTX));
++      _decContex = EVP_CIPHER_CTX_new();
+       _totalDecrypted = 0;
+ }
+ InboundAESProtocol::~InboundAESProtocol() {
+-      EVP_CIPHER_CTX_cleanup(&_decContex);
+-      memset(&_decContex, 0, sizeof (EVP_CIPHER_CTX));
++      EVP_CIPHER_CTX_free(_decContex);
+       delete[] _pIV;
+       delete[] _pKey;
+ }
+@@ -60,11 +59,9 @@ bool InboundAESProtocol::Initialize(Vari
+       _inputBuffer.IgnoreAll();
+       _tempBuffer.IgnoreAll();
+-      EVP_CIPHER_CTX_cleanup(&_decContex);
+-      memset(&_decContex, 0, sizeof (EVP_CIPHER_CTX));
+-      EVP_CIPHER_CTX_init(&_decContex);
+-      EVP_DecryptInit_ex(&_decContex, EVP_aes_128_cbc(), NULL, _pKey, _pIV);
+-      EVP_CIPHER_CTX_set_padding(&_decContex, 0);
++      EVP_CIPHER_CTX_reset(_decContex);
++      EVP_DecryptInit_ex(_decContex, EVP_aes_128_cbc(), NULL, _pKey, _pIV);
++      EVP_CIPHER_CTX_set_padding(_decContex, 0);
+       return true;
+ }
+@@ -105,14 +102,14 @@ bool InboundAESProtocol::SignalInputData
+       int decryptedFinalSize = 0;
+       uint32_t padding = 0;
+-      EVP_DecryptUpdate(&_decContex, pTempData, &decryptedSize, GETIBPOINTER(buffer), safeSize);
++      EVP_DecryptUpdate(_decContex, pTempData, &decryptedSize, GETIBPOINTER(buffer), safeSize);
+       _totalDecrypted += decryptedSize;
+       //6. Decrypt leftovers
+       bool transferCompleted = false;
+       if (((HTTPBufferProtocol *) GetFarProtocol())->TransferCompleted()) {
+               transferCompleted = true;
+-              EVP_DecryptFinal_ex(&_decContex,
++              EVP_DecryptFinal_ex(_decContex,
+                               pTempData + decryptedSize,
+                               &decryptedFinalSize);
+               _totalDecrypted += decryptedFinalSize;
+--- a/sources/common/include/utils/misc/crypto.h
++++ b/sources/common/include/utils/misc/crypto.h
+@@ -33,6 +33,7 @@
+ #include <openssl/aes.h>
+ #include <openssl/engine.h>
+ #include <openssl/conf.h>
++#include "utils/misc/libcrypto-compat.h"
+ /*!
+       @class DHWrapper
+@@ -83,7 +84,7 @@ public:
+       bool CopySharedKey(uint8_t *pDst, int32_t dstLength);
+ private:
+       void Cleanup();
+-      bool CopyKey(BIGNUM *pNum, uint8_t *pDst, int32_t dstLength);
++      bool CopyKey(const BIGNUM *pNum, uint8_t *pDst, int32_t dstLength);
+ };
+ DLLEXP void InitRC4Encryption(uint8_t *secretKey, uint8_t *pubKeyIn, uint8_t *pubKeyOut,
+--- a/sources/common/src/utils/misc/crypto.cpp
++++ b/sources/common/src/utils/misc/crypto.cpp
+@@ -35,6 +35,7 @@ DHWrapper::~DHWrapper() {
+ }
+ bool DHWrapper::Initialize() {
++      BIGNUM *p = NULL, *g = NULL;
+       Cleanup();
+       //1. Create the DH
+@@ -46,42 +47,53 @@ bool DHWrapper::Initialize() {
+       }
+       //2. Create his internal p and g
+-      _pDH->p = BN_new();
+-      if (_pDH->p == NULL) {
++      p = BN_new();
++      if (p == NULL) {
+               FATAL("Unable to create p");
+-              Cleanup();
+-              return false;
++              goto return_error;
+       }
+-      _pDH->g = BN_new();
+-      if (_pDH->g == NULL) {
++      g = BN_new();
++      if (g == NULL) {
+               FATAL("Unable to create g");
+-              Cleanup();
+-              return false;
++              goto return_error;
+       }
+       //3. initialize p, g and key length
+-      if (BN_hex2bn(&_pDH->p, P1024) == 0) {
++      if (BN_hex2bn(&p, P1024) == 0) {
+               FATAL("Unable to parse P1024");
+-              Cleanup();
+-              return false;
++              goto return_error;
+       }
+-      if (BN_set_word(_pDH->g, 2) != 1) {
++      if (BN_set_word(g, 2) != 1) {
+               FATAL("Unable to set g");
+-              Cleanup();
+-              return false;
++              goto return_error;
+       }
+-      //4. Set the key length
+-      _pDH->length = _bitsCount;
++      //4. Set internal p and g
++      if (DH_set0_pqg(_pDH, p, NULL, g) != 1) {
++              FATAL("Unable to set internal p and g");
++              goto return_error;
++      }
++      p = g = NULL;
+-      //5. Generate private and public key
++      //5. Set the key length
++      if (DH_set_length(_pDH, _bitsCount) != 1) {
++              FATAL("Unable to set length");
++              goto return_error;
++      }
++
++      //6. Generate private and public key
+       if (DH_generate_key(_pDH) != 1) {
+               FATAL("Unable to generate DH public/private keys");
+-              Cleanup();
+-              return false;
++              goto return_error;
+       }
+       return true;
++
++return_error:
++      if (p != NULL) BN_free(p);
++      if (g != NULL) BN_free(g);
++      Cleanup();
++      return false;
+ }
+ bool DHWrapper::CopyPublicKey(uint8_t *pDst, int32_t dstLength) {
+@@ -90,7 +102,9 @@ bool DHWrapper::CopyPublicKey(uint8_t *p
+               return false;
+       }
+-      return CopyKey(_pDH->pub_key, pDst, dstLength);
++      const BIGNUM *pub_key;
++      DH_get0_key(_pDH, &pub_key, NULL);
++      return CopyKey(pub_key, pDst, dstLength);
+ }
+ bool DHWrapper::CopyPrivateKey(uint8_t *pDst, int32_t dstLength) {
+@@ -99,7 +113,9 @@ bool DHWrapper::CopyPrivateKey(uint8_t *
+               return false;
+       }
+-      return CopyKey(_pDH->priv_key, pDst, dstLength);
++      const BIGNUM *priv_key;
++      DH_get0_key(_pDH, NULL, &priv_key);
++      return CopyKey(priv_key, pDst, dstLength);
+ }
+ bool DHWrapper::CreateSharedKey(uint8_t *pPeerPublicKey, int32_t length) {
+@@ -153,14 +169,6 @@ bool DHWrapper::CopySharedKey(uint8_t *p
+ void DHWrapper::Cleanup() {
+       if (_pDH != NULL) {
+-              if (_pDH->p != NULL) {
+-                      BN_free(_pDH->p);
+-                      _pDH->p = NULL;
+-              }
+-              if (_pDH->g != NULL) {
+-                      BN_free(_pDH->g);
+-                      _pDH->g = NULL;
+-              }
+               DH_free(_pDH);
+               _pDH = NULL;
+       }
+@@ -177,7 +185,7 @@ void DHWrapper::Cleanup() {
+       }
+ }
+-bool DHWrapper::CopyKey(BIGNUM *pNum, uint8_t *pDst, int32_t dstLength) {
++bool DHWrapper::CopyKey(const BIGNUM *pNum, uint8_t *pDst, int32_t dstLength) {
+       int32_t keySize = BN_num_bytes(pNum);
+       if ((keySize <= 0) || (dstLength <= 0) || (keySize > dstLength)) {
+               FATAL("CopyPublicKey failed due to either invalid DH state or invalid call");
+@@ -197,20 +205,21 @@ void InitRC4Encryption(uint8_t *secretKe
+       uint8_t digest[SHA256_DIGEST_LENGTH];
+       unsigned int digestLen = 0;
+-      HMAC_CTX ctx;
+-      HMAC_CTX_init(&ctx);
+-      HMAC_Init_ex(&ctx, secretKey, 128, EVP_sha256(), 0);
+-      HMAC_Update(&ctx, pubKeyIn, 128);
+-      HMAC_Final(&ctx, digest, &digestLen);
+-      HMAC_CTX_cleanup(&ctx);
++      HMAC_CTX *ctx;
++      ctx = HMAC_CTX_new();
++      if (ctx == NULL)
++              return;
++      HMAC_Init_ex(ctx, secretKey, 128, EVP_sha256(), 0);
++      HMAC_Update(ctx, pubKeyIn, 128);
++      HMAC_Final(ctx, digest, &digestLen);
++      HMAC_CTX_reset(ctx);
+       RC4_set_key(rc4keyOut, 16, digest);
+-      HMAC_CTX_init(&ctx);
+-      HMAC_Init_ex(&ctx, secretKey, 128, EVP_sha256(), 0);
+-      HMAC_Update(&ctx, pubKeyOut, 128);
+-      HMAC_Final(&ctx, digest, &digestLen);
+-      HMAC_CTX_cleanup(&ctx);
++      HMAC_Init_ex(ctx, secretKey, 128, EVP_sha256(), 0);
++      HMAC_Update(ctx, pubKeyOut, 128);
++      HMAC_Final(ctx, digest, &digestLen);
++      HMAC_CTX_free(ctx);
+       RC4_set_key(rc4keyIn, 16, digest);
+ }
+@@ -220,14 +229,17 @@ string md5(string source, bool textResul
+ }
+ string md5(uint8_t *pBuffer, uint32_t length, bool textResult) {
+-      EVP_MD_CTX mdctx;
++      EVP_MD_CTX *mdctx;
+       unsigned char md_value[EVP_MAX_MD_SIZE];
+       unsigned int md_len;
+-      EVP_DigestInit(&mdctx, EVP_md5());
+-      EVP_DigestUpdate(&mdctx, pBuffer, length);
+-      EVP_DigestFinal_ex(&mdctx, md_value, &md_len);
+-      EVP_MD_CTX_cleanup(&mdctx);
++      mdctx = EVP_MD_CTX_new();
++      if (mdctx == NULL)
++              return "";
++      EVP_DigestInit(mdctx, EVP_md5());
++      EVP_DigestUpdate(mdctx, pBuffer, length);
++      EVP_DigestFinal_ex(mdctx, md_value, &md_len);
++      EVP_MD_CTX_free(mdctx);
+       if (textResult) {
+               string result = "";
+@@ -244,12 +256,12 @@ void HMACsha256(const void *pData, uint3
+               const void *pKey, uint32_t keyLength, void *pResult) {
+       unsigned int digestLen;
+-      HMAC_CTX ctx;
+-      HMAC_CTX_init(&ctx);
+-      HMAC_Init_ex(&ctx, (unsigned char*) pKey, keyLength, EVP_sha256(), NULL);
+-      HMAC_Update(&ctx, (unsigned char *) pData, dataLength);
+-      HMAC_Final(&ctx, (unsigned char *) pResult, &digestLen);
+-      HMAC_CTX_cleanup(&ctx);
++      HMAC_CTX *ctx;
++      ctx = HMAC_CTX_new();
++      HMAC_Init_ex(ctx, (unsigned char*) pKey, keyLength, EVP_sha256(), NULL);
++      HMAC_Update(ctx, (unsigned char *) pData, dataLength);
++      HMAC_Final(ctx, (unsigned char *) pResult, &digestLen);
++      HMAC_CTX_free(ctx);
+       o_assert(digestLen == 32);
+ }
+--- a/sources/thelib/src/protocols/ssl/basesslprotocol.cpp
++++ b/sources/thelib/src/protocols/ssl/basesslprotocol.cpp
+@@ -211,6 +211,7 @@ string BaseSSLProtocol::GetSSLErrors() {
+ string BaseSSLProtocol::DumpBIO(BIO *pBIO) {
+       string formatString;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       formatString = "method: %p\n";
+       formatString += "callback: %p\n";
+       formatString += "cb_arg: %p\n";
+@@ -240,6 +241,39 @@ string BaseSSLProtocol::DumpBIO(BIO *pBI
+                       pBIO->references,
+                       (int64_t) pBIO->num_read,
+                       (int64_t) pBIO->num_write);
++#else
++// Some of these are problematic in openssl >= 1.1, since
++// the BIO struct is opaque.
++      formatString = "method: %s\n";
++      formatString += "callback: %p\n";
++      formatString += "cb_arg: %p\n";
++      formatString += "init: %d\n";
++      formatString += "shutdown: %d\n";
++      formatString += "flags: %d\n";
++      formatString += "retry_reason: %d\n";
++      formatString += "num: %d\n";
++      formatString += "ptr: %p\n";
++      formatString += "next_bio: %p\n";
++      formatString += "prev_bio: %s\n";
++      formatString += "references: %s\n";
++      formatString += "num_read: %"PRId64"\n";
++      formatString += "num_write: %"PRId64;
++      return format(formatString,
++                      BIO_method_name(pBIO),
++                      BIO_get_callback(pBIO),
++                      BIO_get_callback_arg(pBIO),
++                      BIO_get_init(pBIO),
++                      BIO_get_shutdown(pBIO),
++                      BIO_get_flags(pBIO),
++                      BIO_get_retry_reason(pBIO),
++                      BIO_get_fd(pBIO, NULL),
++                      BIO_get_data(pBIO),
++                      BIO_next(pBIO),
++                      "unknown", //prev_bio
++                      "unknown", //references
++                      BIO_number_read(pBIO),
++                      BIO_number_written(pBIO));
++#endif
+ }
+ void BaseSSLProtocol::InitRandGenerator() {
+--- /dev/null
++++ b/sources/common/include/utils/misc/libcrypto-compat.h
+@@ -0,0 +1,25 @@
++#ifndef LIBCRYPTO_COMPAT_H
++#define LIBCRYPTO_COMPAT_H
++
++#include <openssl/opensslv.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <openssl/dh.h>
++#include <openssl/evp.h>
++#include <openssl/hmac.h>
++
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key);
++int DH_set_length(DH *dh, long length);
++
++EVP_MD_CTX *EVP_MD_CTX_new(void);
++void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
++#define EVP_MD_CTX_reset EVP_MD_CTX_cleanup
++
++HMAC_CTX *HMAC_CTX_new(void);
++void HMAC_CTX_free(HMAC_CTX *ctx);
++#define HMAC_CTX_reset HMAC_CTX_cleanup
++
++#endif /* OPENSSL_VERSION_NUMBER */
++
++#endif /* LIBCRYPTO_COMPAT_H */
+--- /dev/null
++++ b/sources/common/src/utils/misc/libcrypto-compat.cpp
+@@ -0,0 +1,90 @@
++/*
++ * 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 "utils/misc/libcrypto-compat.h"
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <string.h>
++
++static void *OPENSSL_zalloc(size_t num)
++{
++    void *ret = OPENSSL_malloc(num);
++
++    if (ret != NULL)
++        memset(ret, 0, num);
++    return ret;
++}
++
++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;
++}
++
++int DH_set_length(DH *dh, long length)
++{
++    dh->length = length;
++    return 1;
++}
++
++EVP_MD_CTX *EVP_MD_CTX_new(void)
++{
++    return (EVP_MD_CTX *)OPENSSL_zalloc(sizeof(EVP_MD_CTX));
++}
++
++void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
++{
++    EVP_MD_CTX_cleanup(ctx);
++    OPENSSL_free(ctx);
++}
++
++HMAC_CTX *HMAC_CTX_new(void)
++{
++    return (HMAC_CTX *)OPENSSL_zalloc(sizeof(HMAC_CTX));
++}
++
++void HMAC_CTX_free(HMAC_CTX *ctx)
++{
++    HMAC_CTX_cleanup(ctx);
++    OPENSSL_free(ctx);
++}
++
++#endif /* OPENSSL_VERSION_NUMBER */
diff --git a/multimedia/crtmpserver/patches/100-openssl-deprecated.patch b/multimedia/crtmpserver/patches/100-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..60b362b
--- /dev/null
@@ -0,0 +1,46 @@
+--- a/sources/common/src/utils/misc/crypto.cpp
++++ b/sources/common/src/utils/misc/crypto.cpp
+@@ -350,6 +350,7 @@ string unhex(string source) {
+       return result;
+ }
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ void CleanupSSL() {
+       ERR_remove_state(0);
+       ENGINE_cleanup();
+@@ -358,3 +359,4 @@ void CleanupSSL() {
+       EVP_cleanup();
+       CRYPTO_cleanup_all_ex_data();
+ }
++#endif
+--- a/sources/crtmpserver/src/crtmpserver.cpp
++++ b/sources/crtmpserver/src/crtmpserver.cpp
+@@ -298,8 +298,10 @@ void Cleanup() {
+       delete gRs.pConfigFile;
+       gRs.pConfigFile = NULL;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       WARN("Doing final OpenSSL cleanup");
+       CleanupSSL();
++#endif
+       WARN("Shutting down the logger leaving you in the dark. Bye bye... :(");
+       Logger::Free(true);
+--- a/sources/thelib/src/protocols/ssl/basesslprotocol.cpp
++++ b/sources/thelib/src/protocols/ssl/basesslprotocol.cpp
+@@ -43,6 +43,7 @@ BaseSSLProtocol::~BaseSSLProtocol() {
+ bool BaseSSLProtocol::Initialize(Variant &parameters) {
+       //1. Initialize the SSL library
+       if (!_libraryInitialized) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+               //3. This is the first time we use the library. So we have to
+               //initialize it first
+               SSL_library_init();
+@@ -55,6 +56,7 @@ bool BaseSSLProtocol::Initialize(Variant &parameters) {
+               OpenSSL_add_all_algorithms();
+               OpenSSL_add_all_ciphers();
+               OpenSSL_add_all_digests();
++#endif
+               //initialize the random numbers generator
+               InitRandGenerator();
index 01b621db287a8101cd09e4d72a58fbf63e427c66..75bdb9866aa74e8d7cd41a65ca30eeb33d30b211 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gstreamer1
 PKG_VERSION:=1.14.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
                Ted Hess <thess@kitschensync.net>
@@ -127,6 +127,7 @@ CONFIGURE_ARGS += \
        --disable-gtk-doc-html \
        --disable-tests \
        --disable-valgrind \
+       --without-dw \
        --without-libiconv-prefix \
        --without-libintl-prefix \
        --without-unwind
index f4f18c4b315af682d0ce3ebbe5a93e76e5e50aa3..07a2bd88468c6bfe85ec2e4f26283ba28e504e2c 100644 (file)
@@ -6,8 +6,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock
-PKG_VERSION:=3.5.5
-PKG_RELEASE:=4
+PKG_VERSION:=3.6.1
+PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
 
index fb7856624d78f13f31db272fb6af892ed18b5184..b1f00dfa7da81075c35f2a060bf29fafcabfe20d 100644 (file)
@@ -1,7 +1,7 @@
 # dns based ad/abuse domain blocking
 
 ## Description
-A lot of people already use adblocker plugins within their desktop browsers, but what if you are using your (smart) phone, tablet, watch or any other wlan gadget...getting rid of annoying ads, trackers and other abuse sites (like facebook ;-) is simple: block them with your router. When the dns server on your router receives dns requests, you will sort out queries that ask for the resource records of ad servers and return a simple 'NXDOMAIN'. This is nothing but **N**on-e**X**istent Internet or Intranet domain name, if domain name is unable to resolved using the dns server, a condition called the 'NXDOMAIN' occurred.  
+A lot of people already use adblocker plugins within their desktop browsers, but what if you are using your (smart) phone, tablet, watch or any other (wlan) gadget!? Getting rid of annoying ads, trackers and other abuse sites (like facebook) is simple: block them with your router. When the dns server on your router receives dns requests, you will sort out queries that ask for the resource records of ad servers and return a simple 'NXDOMAIN'. This is nothing but **N**on-e**X**istent Internet or Intranet domain name, if domain name is unable to resolved using the dns server, a condition called the 'NXDOMAIN' occurred.  
 
 ## Main Features
 * support of the following domain blocklist sources (free for private usage, for commercial use please check their individual licenses):
@@ -86,16 +86,17 @@ A lot of people already use adblocker plugins within their desktop browsers, but
 * keep the dns cache intact after adblock processing (currently supported by unbound, named and kresd)
 * conditional dns backend restarts by old/new blocklist comparison with sha256sum (default) or md5sum
 * suspend & resume adblock actions temporarily without blocklist reloading
-* output comprehensive runtime information via LuCI or via 'status' init command
+* provide comprehensive runtime information via LuCI or via 'status' init command
+* provide a detailed DNS Query Report with dns related information about client requests, top (blocked) domains and more
 * query function to quickly identify blocked (sub-)domains, e.g. for whitelisting
+* force dns requests to local resolver
+* force overall sort / duplicate removal for low memory devices (handle with care!)
+* automatic blocklist backup & restore, they will be used in case of download errors or during startup in backup mode
+* 'backup mode' to re-use blocklist backups during startup, get fresh lists only via reload or restart action
+* 'Jail' blocklist generation which builds an additional list (/tmp/adb_list.jail) to block access to all domains except those listed in the whitelist file. You can use this restrictive blocklist manually e.g. for guest wifi or kidsafe configurations
+* send notification emails in case of a processing error or if the overall domain count is &le; 0
+* add new adblock sources on your own, see example below
 * strong LuCI support
-* optional: force dns requests to local resolver
-* optional: force overall sort / duplicate removal for low memory devices (handle with care!)
-* optional: automatic blocklist backup & restore, they will be used in case of download errors or during startup in backup mode
-* optional: 'backup mode' to re-use blocklist backups during startup, get fresh lists only via reload or restart action
-* optional: 'Jail' blocklist generation which builds an additional list (/tmp/adb_list.jail) to block access to all domains except those listed in the whitelist file. You can use this restrictive blocklist manually e.g. for guest wifi or kidsafe configurations
-* optional: send notification emails in case of a processing error or if the overall domain count is &le; 0
-* optional: add new adblock sources on your own, see example below
 
 ## Prerequisites
 * [OpenWrt](https://openwrt.org), tested with the stable release series (18.06) and with the latest snapshot
@@ -104,6 +105,8 @@ A lot of people already use adblocker plugins within their desktop browsers, but
     * to support all blocklist sources a full version (with ssl support) of 'wget', 'uclient-fetch' with one of the 'libustream-*' ssl libraries, 'aria2c' or 'curl' is required
     * for limited devices with real memory constraints, adblock provides also a 'http only' option and supports wget-nossl and uclient-fetch (without libustream-ssl) as well
     * for more configuration options see examples below
+* email notification (optional): for email notification support you need to install and configure the additional 'msmtp' package
+* DNS Query Report (optional): for this detailed report you need to install the additional package 'tcpdump-mini'
 
 ## Installation & Usage
 * install 'adblock' (_opkg install adblock_)
@@ -111,7 +114,7 @@ A lot of people already use adblocker plugins within their desktop browsers, but
 * control the adblock service manually with _/etc/init.d/adblock_ start/stop/restart/reload/suspend/resume/status or use the LuCI frontend
 
 ## LuCI adblock companion package
-* for easy management of the various blocklist sources and adblock runtime options you should use the provided LuCI frontend
+* it's strongly recommended to use the LuCI frontend to easily configure all powerful aspects of adblock
 * install 'luci-app-adblock' (_opkg install luci-app-adblock_)
 * the application is located in LuCI under 'Services' menu
 
@@ -141,11 +144,20 @@ A lot of people already use adblocker plugins within their desktop browsers, but
     * adb\_trigger => set the startup trigger to a certain interface, to 'timed' or to 'none' (default: 'wan')
 
 * the following options apply to the 'extra' config section:
+    * adb\_nice => set the nice level of the adblock process and all sub-processes (int/default: '0', standard priority)
     * adb\_triggerdelay => additional trigger delay in seconds before adblock processing begins (int/default: '2')
     * adb\_forcedns => force dns requests to local resolver (bool/default: '0', disabled)
     * adb\_forcesrt => force overall sort on low memory devices with less than 64 MB RAM (bool/default: '0', disabled)
+    * adb\_backup => create compressed blocklist backups, they will be used in case of download errors or during startup in backup mode (bool/default: '0', disabled)
+    * adb\_backupdir => target directory for adblock backups (default: not set)
     * adb\_backup_mode => do not automatically update blocklists during startup, use backups instead (bool/default: '0', disabled)
-    * adb\_maxqueue => size of the download queue to handle downloads & list processing in parallel (int/default: '4')
+    * adb\_report => enable the background tcpdump gathering process to provide a detailed DNS Query Report (bool/default: '0', disabled)
+    * adb\_repdir => target directory for dns related report files generated by tcpdump (default: '/tmp')
+    * adb\_repiface => reporting interface used by tcpdump, set to 'any' for multiple interfaces (default: 'br-lan')
+    * adb\_replisten => space separated list of reporting port(s) used by tcpdump (default: '53')
+    * adb\_repchunksize => report chunk size used by tcpdump in MB (int/default: '1')
+    * adb\_repchunkcnt => report chunk count used by tcpdump (default: '5')
+    * adb\_maxqueue => size of the download queue to handle downloads & list processing in parallel (int/default: '8')
     * adb\_jail => builds an additional 'Jail' list (/tmp/adb_list.jail) to block access to all domains except those listed in the whitelist file (bool/default: '0', disabled)
     * adb\_dnsflush => flush DNS cache after adblock processing, i.e. enable the old restart behavior (bool/default: '0', disabled)
     * adb\_notify => send notification emails in case of a processing error or if the overall domain count is &le; 0 (bool/default: '0', disabled)
@@ -218,12 +230,48 @@ Finally make this file executable via 'chmod' and test it directly. If no more e
 /etc/init.d/adblock status
 ::: adblock runtime information
   + adblock_status  : enabled
-  + adblock_version : 3.5.5
-  + overall_domains : 97199 (backup mode)
+  + adblock_version : 3.6.0
+  + overall_domains : 30267 (backup mode)
   + fetch_utility   : /bin/uclient-fetch (libustream-ssl)
-  + dns_backend     : unbound (/var/lib/unbound)
-  + last_rundate    : 01.09.2018 07:09:16
-  + system_release  : PC Engines APU, OpenWrt SNAPSHOT r7986-dc9388ac55
+  + dns_backend     : dnsmasq (/tmp)
+  + last_rundate    : 19.12.2018 16:29:25
+  + system_release  : GL-AR750S, OpenWrt SNAPSHOT r8814-6835c13e5a
+</code></pre>
+  
+**receive adblock DNS Query Report information:**
+<pre><code>
+/etc/init.d/adblock report
+:::
+::: Adblock DNS-Query Report
+:::
+  + Start   ::: 2018-12-19, 16:29:40
+  + End     ::: 2018-12-19, 16:45:08
+  + Total   ::: 42
+  + Blocked ::: 17 (40.48 %)
+:::
+::: Top 10 Clients
+  + 32       ::: 101.167.1.103
+  + 10       ::: abc1:abc1:abc0:0:abc1:abcb:abc5:abc3
+:::
+::: Top 10 Domains
+  + 7        ::: dns.msftncsi.com
+  + 4        ::: forum.openwrt.org
+  + 2        ::: outlook.office365.com
+  + 1        ::: www.google.com
+  + 1        ::: www.deepl.com
+  + 1        ::: safebrowsing.googleapis.com
+  + 1        ::: play.googleapis.com
+  + 1        ::: odc.officeapps.live.com
+  + 1        ::: login.microsoftonline.com
+  + 1        ::: test-my.sharepoint.com
+:::
+::: Top 10 Blocked Domains
+  + 4        ::: nexus.officeapps.live.com
+  + 4        ::: mobile.pipe.aria.microsoft.com
+  + 3        ::: watson.telemetry.microsoft.com
+  + 2        ::: v10.events.data.microsoft.com
+  + 2        ::: settings-win.data.microsoft.com
+  + 2        ::: nexusrules.officeapps.live.com
 </code></pre>
   
 **cronjob for a regular block list update (/etc/crontabs/root):**
@@ -302,7 +350,7 @@ config source 'reg_ro'
 To add a really new source with different domain/host format you have to write a suitable awk one-liner on your own, so basic awk skills are needed. As a starting point check the already existing awk rulesets 'adb_src_rset' in the config file, probably you need only small changes for your individual list. Download the desired list and test your new awk string locally. The output result should be a sequential list with one domain/host per line - nothing more. If your awk one-liner works quite well, add a new source section to the adblock config file and test the new source.  
 
 ## Support
-Please join the adblock discussion in this [forum thread](https://forum.lede-project.org/t/adblock-2-x-support-thread/507) or contact me by mail <dev@brenken.org>  
+Please join the adblock discussion in this [forum thread](https://forum.openwrt.org/t/adblock-support-thread/507) or contact me by mail <dev@brenken.org>  
 
 ## Removal
 * stop all adblock related services with _/etc/init.d/adblock stop_
index 49ca1bce754f627b7442421062d5d915a6e32100..1c1a19d97189e113dc70e4fbad94f7360a38b1f4 100644 (file)
@@ -9,10 +9,10 @@ config adblock 'global'
 
 config adblock 'extra'
        option adb_debug '0'
-       option adb_forcesrt '0'
        option adb_forcedns '0'
        option adb_backup '0'
-       option adb_maxqueue '4'
+       option adb_report '0'
+       option adb_maxqueue '8'
 
 config source 'adaway'
        option adb_src 'https://adaway.org/hosts.txt'
index 2ae2b086bb0af8b2f726882f78be0936534a4582..2378a55b33110cc5077429802d5c0f9465623e51 100755 (executable)
@@ -4,10 +4,11 @@
 START=30
 USE_PROCD=1
 
-EXTRA_COMMANDS="suspend resume query status"
+EXTRA_COMMANDS="suspend resume query report status"
 EXTRA_HELP="   suspend Suspend adblock processing
        resume  Resume adblock processing
        query   <DOMAIN> Query active blocklists for specific domains
+       report  Print dns query statistics
        status  Print runtime information"
 
 adb_init="/etc/init.d/adblock"
@@ -77,6 +78,12 @@ query()
        rc_procd "${adb_script}" query "${1}"
 }
 
+report()
+{
+       [ -s "${adb_pidfile}" ] && return 1
+       rc_procd "${adb_script}" report "${1}"
+}
+
 status()
 {
        local key keylist value rtfile="$(uci_get adblock extra adb_rtfile)"
index e0c9b89e37e3e3b8339fe2b30da296bf2eae4bff..ffc520b6f3f8cab788fdfca226b34938ee00d179 100755 (executable)
@@ -10,7 +10,7 @@
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="3.5.5-4"
+adb_ver="3.6.1"
 adb_sysver="unknown"
 adb_enabled=0
 adb_debug=0
@@ -18,7 +18,7 @@ adb_backup_mode=0
 adb_forcesrt=0
 adb_forcedns=0
 adb_jail=0
-adb_maxqueue=4
+adb_maxqueue=8
 adb_notify=0
 adb_notifycnt=0
 adb_triggerdelay=0
@@ -35,6 +35,13 @@ adb_rtfile="/tmp/adb_runtime.json"
 adb_hashutil="$(command -v sha256sum)"
 adb_hashold=""
 adb_hashnew=""
+adb_report=0
+adb_repiface="br-lan"
+adb_replisten="53"
+adb_repdir="/tmp"
+adb_reputil="$(command -v tcpdump)"
+adb_repchunkcnt="5"
+adb_repchunksize="1"
 adb_cnt=""
 adb_rc=0
 adb_action="${1:-"start"}"
@@ -300,7 +307,7 @@ f_rmdns()
                fi
                f_rmtemp
        fi
-       f_log "debug" "f_rmdns::: dns: ${adb_dns}, dns_dir: ${adb_dnsdir}, dns_prefix: ${adb_dnsprefix}, dns_file: ${adb_dnsfile}, rt_file: ${adb_rtfile}, backup_dir: ${adb_backupdir}"
+       f_log "debug" "f_rmdns  ::: dns: ${adb_dns}, dns_dir: ${adb_dnsdir}, dns_prefix: ${adb_dnsprefix}, dns_file: ${adb_dnsfile}, rt_file: ${adb_rtfile}, backup_dir: ${adb_backupdir}"
 }
 
 # commit uci changes
@@ -325,7 +332,7 @@ f_uci()
                        esac
                fi
        fi
-       f_log "debug" "f_uci  ::: config: ${config}, change: ${change}"
+       f_log "debug" "f_uci    ::: config: ${config}, change: ${change}"
 }
 
 # list/overall count
@@ -337,7 +344,7 @@ f_count()
        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}") ))"
+               adb_cnt="$(wc -l 2>/dev/null < "${adb_dnsdir}/${adb_dnsfile}")"
                if [ -s "${adb_tmpdir}/tmp.add_whitelist" ]
                then
                        adb_cnt="$(( ${adb_cnt} - $(wc -l 2>/dev/null < "${adb_tmpdir}/tmp.add_whitelist") ))"
@@ -488,7 +495,7 @@ f_dnsup()
                cnt=$((cnt+1))
                sleep 1
        done
-       f_log "debug" "f_dnsup::: cache_util: ${cache_util:-"-"}, cache_rc: ${cache_rc:-"-"}, cache_flush: ${adb_dnsflush}, cache_cnt: ${cnt}, rc: ${adb_rc}"
+       f_log "debug" "f_dnsup  ::: cache_util: ${cache_util:-"-"}, cache_rc: ${cache_rc:-"-"}, cache_flush: ${adb_dnsflush}, cache_cnt: ${cnt}, rc: ${adb_rc}"
        return ${adb_rc}
 }
 
@@ -557,7 +564,7 @@ f_list()
                ;;
        esac
        f_count "${mode}"
-       f_log "debug" "f_list ::: name: ${src_name:-"-"}, mode: ${mode}, cnt: ${adb_cnt}, in_rc: ${in_rc}, out_rc: ${adb_rc}"
+       f_log "debug" "f_list   ::: name: ${src_name:-"-"}, mode: ${mode}, cnt: ${adb_cnt}, in_rc: ${in_rc}, out_rc: ${adb_rc}"
 }
 
 # top level domain compression
@@ -581,6 +588,7 @@ f_tld()
                                if [ ${?} -eq 0 ]
                                then
                                        cnt_tld="$(wc -l 2>/dev/null < "${source}")"
+                                       rm -f "${temp}"
                                else
                                        mv -f "${temp}" > "${source}"
                                fi
@@ -589,7 +597,7 @@ f_tld()
                        mv -f "${temp}" "${source}"
                fi
        fi
-       f_log "debug" "f_tld  ::: source: ${source}, cnt: ${cnt:-"-"}, cnt_srt: ${cnt_srt:-"-"}, cnt_tld: ${cnt_tld:-"-"}"
+       f_log "debug" "f_tld    ::: source: ${source}, cnt: ${cnt:-"-"}, cnt_srt: ${cnt_srt:-"-"}, cnt_tld: ${cnt_tld:-"-"}"
 }
 
 # blocklist hash compare
@@ -618,7 +626,7 @@ f_hash()
                        adb_hashnew=""
                fi
        fi
-       f_log "debug" "f_hash ::: hash_util: ${adb_hashutil}, hash: ${hash}, out_rc: ${hash_rc}"
+       f_log "debug" "f_hash   ::: hash_util: ${adb_hashutil}, hash: ${hash}, out_rc: ${hash_rc}"
        return ${hash_rc}
 }
 
@@ -628,6 +636,8 @@ f_switch()
 {
        local status cnt mode="${1}"
 
+       json_load_file "${adb_rtfile}" >/dev/null 2>&1
+       json_select "data"
        json_get_var status "adblock_status"
        json_get_var cnt "overall_domains"
 
@@ -739,19 +749,29 @@ f_jsnup()
                mode="backup mode"
        fi
 
-       if [ -z "${adb_fetchinfo}" ]
-       then
-               json_get_var adb_fetchinfo "fetch_utility"
-       fi
-       if [ -z "${adb_cnt}" ]
-       then
-               json_get_var adb_cnt "overall_domains"
-               adb_cnt="${adb_cnt%% *}"
-       fi
-       if [ -z "${run_time}" ]
+       json_load_file "${adb_rtfile}" >/dev/null 2>&1
+       json_select "data" >/dev/null 2>&1
+       if [ ${?} -eq 0 ]
        then
-               json_get_var run_time "last_rundate"
+               if [ -z "${adb_fetchinfo}" ]
+               then
+                       json_get_var adb_fetchinfo "fetch_utility"
+               fi
+               if [ -z "${adb_cnt}" ]
+               then
+                       json_get_var adb_cnt "overall_domains"
+                       adb_cnt="${adb_cnt%% *}"
+               fi
+               if [ -z "${run_time}" ]
+               then
+                       json_get_var run_time "last_rundate"
+               fi
        fi
+
+       > "${adb_rtfile}"
+       json_load_file "${adb_rtfile}" >/dev/null 2>&1
+       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:-0} (${mode})"
@@ -759,15 +779,16 @@ f_jsnup()
        json_add_string "dns_backend" "${adb_dns} (${adb_dnsdir})"
        json_add_string "last_rundate" "${run_time:-"-"}"
        json_add_string "system_release" "${adb_sysver}"
+       json_close_object
        json_dump > "${adb_rtfile}"
 
        if [ ${adb_notify} -eq 1 ] && [ ${no_mail} -eq 0 ] && [ -x /etc/adblock/adblock.notify ] && \
                ([ "${status}" = "error" ] || ([ "${status}" = "enabled" ] && [ ${adb_cnt} -le ${adb_notifycnt} ]))
        then
-               (/etc/adblock/adblock.notify >/dev/null 2>&1) &
+               (/etc/adblock/adblock.notify >/dev/null 2>&1)&
                bg_pid=${!}
        fi
-       f_log "debug" "f_jsnup::: status: ${status}, mode: ${mode}, cnt: ${adb_cnt}, notify: ${adb_notify}, notify_cnt: ${adb_notifycnt}, notify_pid: ${bg_pid:-"-"}"
+       f_log "debug" "f_jsnup  ::: status: ${status}, mode: ${mode}, cnt: ${adb_cnt}, notify: ${adb_notify}, notify_cnt: ${adb_notifycnt}, notify_pid: ${bg_pid:-"-"}"
 }
 
 # write to syslog
@@ -803,7 +824,7 @@ f_main()
        > "${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}"
+       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
        #
@@ -848,7 +869,7 @@ f_main()
 
                # basic pre-checks
                #
-               f_log "debug" "f_main ::: name: ${src_name}, enabled: ${enabled}"
+               f_log "debug" "f_main   ::: name: ${src_name}, enabled: ${enabled}"
                if [ "${enabled}" != "1" ] || [ -z "${src_url}" ] || [ -z "${src_rset}" ]
                then
                        f_list remove
@@ -894,7 +915,7 @@ f_main()
                                                fi
                                        else
                                                src_log="$(printf '%s' "${src_log}" | awk '{ORS=" ";print $0}')"
-                                               f_log "debug" "f_main ::: name: ${src_name}, url: ${src_url}, rc: ${adb_rc}, log: ${src_log:-"-"}"
+                                               f_log "debug" "f_main   ::: name: ${src_name}, url: ${src_url}, rc: ${adb_rc}, log: ${src_log:-"-"}"
                                        fi
                                ) &
                        else
@@ -925,7 +946,7 @@ f_main()
                                        done
                                else
                                        src_log="$(printf '%s' "${src_log}" | awk '{ORS=" ";print $0}')"
-                                       f_log "debug" "f_main ::: name: ${src_name}, url: ${src_url}, rc: ${adb_rc}, log: ${src_log:-"-"}"
+                                       f_log "debug" "f_main   ::: name: ${src_name}, url: ${src_url}, rc: ${adb_rc}, log: ${src_log:-"-"}"
                                fi
                                if [ ${adb_rc} -eq 0 ] && [ -s "${adb_tmpload}" ]
                                then
@@ -979,7 +1000,7 @@ f_main()
                                        fi
                                else
                                        src_log="$(printf '%s' "${src_log}" | awk '{ORS=" ";print $0}')"
-                                       f_log "debug" "f_main ::: name: ${src_name}, url: ${src_url}, rc: ${adb_rc}, log: ${src_log:-"-"}"
+                                       f_log "debug" "f_main   ::: name: ${src_name}, url: ${src_url}, rc: ${adb_rc}, log: ${src_log:-"-"}"
                                        if [ ${adb_backup} -eq 1 ]
                                        then
                                                f_list restore
@@ -1032,6 +1053,184 @@ f_main()
        exit ${adb_rc}
 }
 
+# trace dns queries via tcpdump and prepare a report
+#
+f_report()
+{
+       local bg_pid total blocked percent rep_clients rep_domains rep_blocked index hold ports cnt=0 print="${1:-"true"}"
+
+       if [ ! -x "${adb_reputil}" ]
+       then
+               f_log "info" "Please install the package 'tcpdump-mini' manually to use the adblock reporting feature!"
+               return 0
+       fi
+
+       bg_pid="$(pgrep -f "^${adb_reputil}.*adb_report\.pcap$" | awk '{ORS=" "; print $1}')"
+       if [ ${adb_report} -eq 0 ] || ([ -n "${bg_pid}" ] && ([ "${adb_action}" = "stop" ] || [ "${adb_action}" = "restart" ]))
+       then
+               if [ -n "${bg_pid}" ]
+               then
+                       kill -HUP ${bg_pid}
+                       while $(kill -0 ${bg_pid} 2>/dev/null)
+                       do
+                               sleep 1
+                       done
+                       unset bg_pid
+               fi
+       fi
+       if [ -z "${bg_pid}" ] && [ "${adb_action}" != "report" ] && [ "${adb_action}" != "stop" ]
+       then
+               for port in ${adb_replisten}
+               do
+                       if [ -z "${ports}" ]
+                       then
+                               ports="port ${port}"
+                       else
+                               ports="${ports} or port ${port}"
+                       fi
+               done
+               ("${adb_reputil}" -nn -s0 -l -i ${adb_repiface} ${ports} -C${adb_repchunksize} -W${adb_repchunkcnt} -w "${adb_repdir}/adb_report.pcap" >/dev/null 2>&1 &)
+       fi
+       if [ "${adb_action}" = "report" ]
+       then
+               > "${adb_repdir}/adb_report.raw"
+               for file in "${adb_repdir}"/adb_report.pcap*
+               do
+                       (
+                               "${adb_reputil}" -nn -tttt -r $file 2>/dev/null | \
+                                       awk -v cnt=${cnt} '!/\.lan\. /&&/ A[\? ]+|NXDomain/{a=$1;b=substr($2,0,8);c=$4;sub(/\.[0-9]+$/,"",c); \
+                                       d=cnt $7;e=$(NF-1);sub(/[0-9]\/[0-9]\/[0-9]/,"NX",e);sub(/\.$/,"",e);sub(/([0-9]{1,3}\.){3}[0-9]{1,3}/,"OK",e);printf("%s\t%s\t%s\t%s\t%s\n", a,b,c,d,e)}' >> "${adb_repdir}/adb_report.raw"
+                       )&
+                       hold=$(( cnt % adb_maxqueue ))
+                       if [ ${hold} -eq 0 ]
+                       then
+                               wait
+                       fi
+                       cnt=$(( cnt + 1 ))
+               done
+               wait
+
+               if [ -s "${adb_repdir}/adb_report.raw" ]
+               then
+                       awk '{printf("%s\t%s\t%s\t%s\t%s\t%s\n", $4,$5,$1,$2,$3,$4)}' "${adb_repdir}/adb_report.raw" | \
+                               sort -ur | uniq -uf2 | awk '{currA=($6+0);currB=$6;currC=substr($6,length($6),1); \
+                               if(reqA==currB){reqA=0;printf("%s\t%s\n",d,$2)}else if(currC=="+"){reqA=currA;d=$3"\t"$4"\t"$5"\t"$2}}' | sort -ur > "${adb_repdir}/adb_report"
+               fi
+
+               if [ -s "${adb_repdir}/adb_report" ]
+               then
+                       total="$(wc -l < ${adb_repdir}/adb_report)"
+                       blocked="$(awk '{if($5=="NX")print $4}' ${adb_repdir}/adb_report | wc -l)"
+                       percent="$(awk -v t=${total} -v b=${blocked} 'BEGIN{printf("%.2f %s\n",b/t*100, "%")}')"
+                       rep_clients="$(awk '{print $3}' ${adb_repdir}/adb_report | sort | uniq -c | sort -r | awk '{ORS=" ";if(NR<=10) printf("%s_%s ",$1,$2)}')"
+                       rep_domains="$(awk '{if($5!="NX")print $4}' ${adb_repdir}/adb_report | sort | uniq -c | sort -r | awk '{ORS=" ";if(NR<=10)printf("%s_%s ",$1,$2)}')"
+                       rep_blocked="$(awk '{if($5=="NX")print $4}' ${adb_repdir}/adb_report | sort | uniq -c | sort -r | awk '{ORS=" ";if(NR<=10)printf("%s_%s ",$1,$2)}')"
+
+                       > "${adb_repdir}/adb_report.json"
+                       json_load_file "${adb_repdir}/adb_report.json" >/dev/null 2>&1
+                       json_init
+                       json_add_object "data"
+                       json_add_string "start_date" "$(awk 'END{printf("%s",$1)}' ${adb_repdir}/adb_report)"
+                       json_add_string "start_time" "$(awk 'END{printf("%s",$2)}' ${adb_repdir}/adb_report)"
+                       json_add_string "end_date" "$(awk 'NR==1{printf("%s",$1)}' ${adb_repdir}/adb_report)"
+                       json_add_string "end_time" "$(awk 'NR==1{printf("%s",$2)}' ${adb_repdir}/adb_report)"
+                       json_add_string "total" "${total}"
+                       json_add_string "blocked" "${blocked}"
+                       json_add_string "percent" "${percent}"
+                       json_close_array
+                       json_add_array "top_clients"
+                       for client in ${rep_clients}
+                       do
+                               json_add_object
+                               json_add_string "count" "${client%_*}"
+                               json_add_string "address" "${client#*_}"
+                               json_close_object
+                       done
+                       json_close_array
+                       json_add_array "top_domains"
+                       for domain in ${rep_domains}
+                       do
+                               json_add_object
+                               json_add_string "count" "${domain%_*}"
+                               json_add_string "address" "${domain#*_}"
+                               json_close_object
+                       done
+                       json_close_array
+                       json_add_array "top_blocked"
+                       for block in ${rep_blocked}
+                       do
+                               json_add_object
+                               json_add_string "count" "${block%_*}"
+                               json_add_string "address" "${block#*_}"
+                               json_close_object
+                       done
+                       json_close_object
+                       json_dump > "${adb_repdir}/adb_report.json"
+               fi
+               rm -f "${adb_repdir}/adb_report.raw"
+
+               if [ "${print}" = "true" ]
+               then
+                       if [ -s "${adb_repdir}/adb_report.json" ]
+                       then
+                               printf "%s\n%s\n%s\n" ":::" "::: Adblock DNS-Query Report" ":::"
+                               json_load_file "${adb_repdir}/adb_report.json"
+                               json_select "data"
+                               json_get_keys keylist
+                               for key in ${keylist}
+                               do
+                                       json_get_var value "${key}"
+                                       eval "${key}=\"${value}\""
+                               done
+                               printf "  + %s\n  + %s\n" "Start   ::: ${start_date}, ${start_time}" "End     ::: ${end_date}, ${end_time}"
+                               printf "  + %s\n  + %s %s\n" "Total   ::: ${total}" "Blocked ::: ${blocked}" "(${percent})"
+                               json_select ".."
+                               if json_get_type Status "top_clients" && [ "${Status}" = "array" ]
+                               then
+                                       printf "%s\n%s\n" ":::" "::: Top 10 Clients"
+                                       json_select "top_clients"
+                                       index=1
+                                       while json_get_type Status ${index} && [ "${Status}" = "object" ]
+                                       do
+                                               json_get_values client ${index}
+                                               printf "  + %-9s::: %s\n" ${client}
+                                               index=$((index + 1))
+                                       done
+                               fi
+                               json_select ".."
+                               if json_get_type Status "top_domains" && [ "${Status}" = "array" ]
+                               then
+                                       printf "%s\n%s\n" ":::" "::: Top 10 Domains"
+                                       json_select "top_domains"
+                                       index=1
+                                       while json_get_type Status ${index} && [ "${Status}" = "object" ]
+                                       do
+                                               json_get_values domain ${index}
+                                               printf "  + %-9s::: %s\n" ${domain}
+                                               index=$((index + 1))
+                                       done
+                               fi
+                               json_select ".."
+                               if json_get_type Status "top_blocked" && [ "${Status}" = "array" ]
+                               then
+                                       printf "%s\n%s\n" ":::" "::: Top 10 Blocked Domains"
+                                       json_select "top_blocked"
+                                       index=1
+                                       while json_get_type Status ${index} && [ "${Status}" = "object" ]
+                                       do
+                                               json_get_values blocked ${index}
+                                               printf "  + %-9s::: %s\n" ${blocked}
+                                               index=$((index + 1))
+                                       done
+                               fi
+                       else
+                               printf "%s\n" "::: no reporting data available yet"
+                       fi
+               fi
+       fi
+       f_log "debug" "f_report ::: action: ${adb_action}, report: ${adb_report}, print: ${print}, reputil: ${adb_reputil}, repdir: ${adb_repdir}, repiface: ${adb_repiface}, replisten: ${adb_replisten}, repchunksize: ${adb_repchunksize}, repchunkcnt: ${adb_repchunkcnt}, bg_pid: ${bg_pid}"
+}
+
 # source required system libraries
 #
 if [ -r "/lib/functions.sh" ] && [ -r "/usr/share/libubox/jshn.sh" ]
@@ -1042,25 +1241,16 @@ else
        f_log "err" "system libraries not found"
 fi
 
-# initialize json runtime file
-#
-json_load_file "${adb_rtfile}" >/dev/null 2>&1
-json_select data >/dev/null 2>&1
-if [ ${?} -ne 0 ]
-then
-       > "${adb_rtfile}"
-       json_init
-       json_add_object "data"
-fi
-
 # handle different adblock actions
 #
 f_envload
 case "${adb_action}" in
        stop)
+               f_report false
                f_rmdns
        ;;
        restart)
+               f_report false
                f_rmdns
                f_envcheck
                f_main
@@ -1071,10 +1261,14 @@ case "${adb_action}" in
        resume)
                f_switch resume
        ;;
+       report)
+               f_report "${2}"
+       ;;
        query)
                f_query "${2}"
        ;;
        start|reload)
+               f_report false
                f_envcheck
                f_main
        ;;
index 68dfc30103a0934659aedfa9c6e784441791812a..f29804315a6a08fcb9436c8c2c6d2c556e6450cb 100644 (file)
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=aria2
 PKG_VERSION:=1.34.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/aria2/aria2/releases/download/release-$(PKG_VERSION)/
index 99212548d6936a93a2bc85e4e24975f8c2ef99bd..99e2476fc40cde17d91ecc3ac3b05e16759e6e65 100755 (executable)
@@ -312,9 +312,9 @@ aria2_start() {
 
        if [ -n "$user" ]; then
                if ( user_exists "$user" && _change_owner "$user" "$config_dir" "$log" ); then
-                               _info "Aria2 will run with uer '${user}'."
+                               _info "Aria2 will run with user '${user}'."
                                if [ "$user" != "root" ]; then
-                                       _info "Please make sure user '${user}' has write access to downlod dir: ${dir}"
+                                       _info "Please make sure user '${user}' has write access to download dir: ${dir}"
                                fi
                else
                        _info "Set run user to '${user}' failed, default user will be used."
diff --git a/net/aria2/patches/010-Platform-Fix-compilation-without-deprecated-OpenSSL-.patch b/net/aria2/patches/010-Platform-Fix-compilation-without-deprecated-OpenSSL-.patch
new file mode 100644 (file)
index 0000000..fc31b7d
--- /dev/null
@@ -0,0 +1,30 @@
+From 0cfd523a6d0ea16d8b7c94160216838d53c30da6 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Sat, 8 Dec 2018 18:39:50 -0800
+Subject: [PATCH] Platform: Fix compilation without deprecated OpenSSL APIs
+
+---
+ src/Platform.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/Platform.cc b/src/Platform.cc
+index ea73b6c6..0af62d18 100644
+--- a/src/Platform.cc
++++ b/src/Platform.cc
+@@ -111,11 +111,13 @@ bool Platform::setUp()
+ #endif // ENABLE_NLS
+ #ifdef HAVE_OPENSSL
++#if !OPENSSL_101_API
+   // for SSL initialization
+   SSL_load_error_strings();
+   SSL_library_init();
+   // Need this to "decrypt" p12 files.
+   OpenSSL_add_all_algorithms();
++#endif // !OPENSSL_101_API
+ #endif // HAVE_OPENSSL
+ #ifdef HAVE_LIBGCRYPT
+   if (!gcry_check_version("1.2.4")) {
+-- 
+2.20.0
+
index 2e50b0244d7341ce84cf176be974c0efb0a61e64..519f91091f7ba6ed43a296c5147f79f6d80567b3 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=banip
-PKG_VERSION:=0.0.6
+PKG_VERSION:=0.0.7
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
index 20e15c938a1850239d61388a198d661e732d5268..963439441e093dcf49b555332fc9235bcde7967e 100755 (executable)
@@ -10,7 +10,7 @@
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-ban_ver="0.0.6"
+ban_ver="0.0.7"
 ban_sysver="unknown"
 ban_enabled=0
 ban_automatic="1"
@@ -169,10 +169,16 @@ f_envcheck()
 
        for iface in ${ban_iface}
        do
-               network_get_physdev tmp "${iface}"
+               network_get_device tmp "${iface}"
                if [ -n "${tmp}" ]
                then
                        ban_dev="${ban_dev} ${tmp}"
+               else
+                       network_get_physdev tmp "${iface}"
+                       if [ -n "${tmp}" ]
+                       then
+                               ban_dev="${ban_dev} ${tmp}"
+                       fi
                fi
                network_get_subnets tmp "${iface}"
                if [ -n "${tmp}" ]
index 9b5467def4f5451511e3310be462f4eaeaea0ba6..04b87672a70294b2177c53151ae6e5ba6582b007 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=chaosvpn
 
 PKG_VERSION:=2.19
-PKG_RELEASE=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/ryd/chaosvpn/tar.gz/v$(PKG_VERSION)?
diff --git a/net/chaosvpn/patches/010-openssl-deprecated.patch b/net/chaosvpn/patches/010-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..4690f92
--- /dev/null
@@ -0,0 +1,47 @@
+--- a/crypto.c
++++ b/crypto.c
+@@ -14,6 +14,12 @@
+ #include <openssl/pem.h>
+ #include <openssl/ssl.h>
++#ifndef OPENSSL_VERSION
++#define OPENSSL_VERSION               SSLEAY_VERSION
++#define OpenSSL_version(x)    SSLeay_version(x)
++#define OpenSSL_version_num   SSLeay
++#endif
++
+ /*
+ This checks data in a struct string against a signature in a second
+@@ -250,14 +256,18 @@ bail_out:
+ void
+ crypto_init(void)
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+     /* Just load the crypto library error strings, not SSL */
+     ERR_load_crypto_strings();
++#endif
+ }
+ void
+ crypto_finish(void)
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+     ERR_free_strings();
++#endif
+ }
+ void
+@@ -268,10 +278,10 @@ crypto_warn_openssl_version_changed(void)
+      * OpenSSL library used.
+      * Output a warning if not.
+      */
+-    if (SSLeay() != OPENSSL_VERSION_NUMBER) {
++    if (OpenSSL_version_num() != OPENSSL_VERSION_NUMBER) {
+         log_info("Note: compiled using OpenSSL version '%s' headers, but linked to "
+           "OpenSSL version '%s' library",
+           OPENSSL_VERSION_TEXT,
+-          SSLeay_version(SSLEAY_VERSION));
++          OpenSSL_version(OPENSSL_VERSION));
+     }
+ }
index d68d3b0bc6c1b1342e93294c32b6944f94f0b4c0..595aa00e374803c2be4959e49f3befa0fa2553f5 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=clamav
 PKG_VERSION:=0.101.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr> \
@@ -28,7 +28,7 @@ include $(INCLUDE_DIR)/package.mk
 
 define Package/clamav/Default
   SECTION:=net
-  DEPENDS:=+libpthread +uclibcxx +zlib +libcurl +libjson-c +libmilter-sendmail +libopenssl +libltdl +libpcre2 +USE_MUSL:musl-fts
+  DEPENDS:=$(CXX_DEPENDS) +libpthread +zlib +libcurl +libjson-c +libmilter-sendmail +libopenssl +libltdl +libpcre2 +USE_MUSL:musl-fts
   CATEGORY:=Network
   SUBMENU:=Web Servers/Proxies
   TITLE:=ClamAV
index 27317f2f99e4c0266e4d398f2f62d1e1e391955b..9f7104779103402931ed160116d0c96327e8b262 100644 (file)
@@ -11,12 +11,12 @@ PKG_LICENSE:=ASL-2.0
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
 PKG_NAME:=go-ethereum
-PKG_VERSION:=1.8.18
+PKG_VERSION:=1.8.20
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/ethereum/go-ethereum/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=cbab18a733298830c9ed1e19c1ece37edf417fd55ec8f198803048ecc3ffa0b9
+PKG_HASH:=7299f72a1d35a2653075a2070babf78f98f6eb3f41da43293304737ac0156658
 
 PKG_BUILD_DEPENDS:=golang/host
 PKG_BUILD_PARALLEL:=1
index ccdd3d71c0780d9095ef18b7d8ad659d718c700e..fbcd6eec8ba63b7f56786cbecac857baea9e456a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=git
-PKG_VERSION:=2.20.0
+PKG_VERSION:=2.20.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/scm/git/
-PKG_HASH:=bc94735073e14b138a1290cc99af3c379d544f514c43f8ebde988fc50d0ad81f
+PKG_HASH:=9d2e91e2faa2ea61ba0a70201d023b36f54d846314591a002c610ea2ab81c3e9
 
 PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
index 42ada2e6c4dcf9936a42a1636ad6ce6ebb80ca20..2ae62524b1aff7c58f08f9ded76e76c05b29a7c6 100644 (file)
@@ -8,15 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gitolite
-PKG_VERSION:=3.6.8
+PKG_VERSION:=3.6.10
 PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=652d3b3f8ed93b8ef56153337465cc7260974e5cd2653e949da1bb97a8421ea0
-
-PKG_SOURCE_URL:=https://github.com/sitaramc/gitolite.git
-PKG_SOURCE_VERSION:=e126e97a4d5575821f89ae80dac402b017db94aa
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=0ae3bea637b25cff13826e5ecd181c7b74a6eff377cf4c2243d85c2b0a290d3f
+PKG_SOURCE_URL:=https://codeload.github.com/sitaramc/gitolite/tar.gz/v$(PKG_VERSION)?
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
 
@@ -28,7 +25,7 @@ define Package/gitolite
   SUBMENU:=Version Control Systems
   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
+  URL:=http://gitolite.com/gitolite
   MAINTAINER:=Daniel Dickinson <cshored@thecshore.com>
   USERID:=git=382:git=382
 endef
index 1328136a11dd9dbf457ac63f9253c5efed024168..8a03244c43321a9291916dd90b25a106b38cc166 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haproxy
-PKG_VERSION:=1.8.15
+PKG_VERSION:=1.8.16
 PKG_RELEASE:=1
 
 PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.haproxy.org/download/1.8/src/
-PKG_HASH:=7113862f1146d7de8b8e64f45826ab3533c7f7f7b7767e24c08f7c762202a032
+PKG_HASH:=5401e4ad243d9e403621e389ec3605d8d43241affe0b72f0b15c0db8a7a3653f
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_LICENSE:=GPL-2.0
index 39e46a4f3f27df42d51a3c84332ab22262987843..b55bf64f813da6028bf1d2c5da8c4f831181146f 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 CLONEURL=http://git.haproxy.org/git/haproxy-1.8.git
-BASE_TAG=v1.8.15
+BASE_TAG=v1.8.16
 TMP_REPODIR=tmprepo
 PATCHESDIR=patches
 
index cd1950c6666cddf2bf2e915ac12eccba997a80d2..2a7b1bbc0c84e5f3bfe75191613107e69ecd7380 100644 (file)
@@ -1,5 +1,3 @@
-diff --git a/src/ssl_sock.c b/src/ssl_sock.c
-index cfbc38b..025a144 100644
 --- a/src/ssl_sock.c
 +++ b/src/ssl_sock.c
 @@ -39,6 +39,7 @@
@@ -10,106 +8,93 @@ index cfbc38b..025a144 100644
  #include <openssl/crypto.h>
  #include <openssl/ssl.h>
  #include <openssl/x509.h>
-@@ -229,6 +230,7 @@ unsigned long ssl_id_function(void)
+@@ -60,6 +61,17 @@
+ #include <openssl/async.h>
+ #endif
  
- void ssl_locking_function(int mode, int n, const char * file, int line)
- {
++#ifndef OPENSSL_VERSION
++#define OPENSSL_VERSION               SSLEAY_VERSION
++#define OpenSSL_version(x)    SSLeay_version(x)
++#define OpenSSL_version_num   SSLeay
++#endif
++
 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       if (mode & CRYPTO_LOCK) {
-               if (mode & CRYPTO_READ)
-                       HA_RWLOCK_RDLOCK(SSL_LOCK, &ssl_rwlocks[n]);
-@@ -241,10 +243,12 @@ void ssl_locking_function(int mode, int n, const char * file, int line)
-               else
-                       HA_RWLOCK_WRUNLOCK(SSL_LOCK, &ssl_rwlocks[n]);
-       }
++#define X509_getm_notBefore X509_get_notBefore
++#define X509_getm_notAfter X509_get_notAfter
 +#endif
- }
++
+ #include <import/lru.h>
+ #include <import/xxhash.h>
  
- static int ssl_locking_init(void)
- {
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       int i;
+@@ -217,7 +229,7 @@ static struct {
+       .capture_cipherlist = 0,
+ };
  
-       ssl_rwlocks = malloc(sizeof(HA_RWLOCK_T)*CRYPTO_num_locks());
-@@ -256,7 +260,7 @@ static int ssl_locking_init(void)
+-#ifdef USE_THREAD
++#if defined(USE_THREAD) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
  
-       CRYPTO_set_id_callback(ssl_id_function);
-       CRYPTO_set_locking_callback(ssl_locking_function);
--
-+#endif
-       return 0;
- }
+ static HA_RWLOCK_T *ssl_rwlocks;
  
-@@ -1711,8 +1715,13 @@ ssl_sock_do_create_cert(const char *servername, struct bind_conf *bind_conf, SSL
+@@ -1711,8 +1723,8 @@ ssl_sock_do_create_cert(const char *servername, struct bind_conf *bind_conf, SSL
        ASN1_INTEGER_set(X509_get_serialNumber(newcrt), HA_ATOMIC_ADD(&ssl_ctx_serial, 1));
  
        /* Set duration for the certificate */
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       if (!X509_gmtime_adj(X509_get_notBefore(newcrt), (long)-60*60*24) ||
-           !X509_gmtime_adj(X509_get_notAfter(newcrt),(long)60*60*24*365))
-+#else
+-      if (!X509_gmtime_adj(X509_get_notBefore(newcrt), (long)-60*60*24) ||
+-          !X509_gmtime_adj(X509_get_notAfter(newcrt),(long)60*60*24*365))
 +      if (!X509_gmtime_adj(X509_getm_notBefore(newcrt), (long)-60*60*24) ||
 +          !X509_gmtime_adj(X509_getm_notAfter(newcrt),(long)60*60*24*365))
-+#endif
                goto mkcert_error;
  
        /* set public key in the certificate */
-@@ -6285,7 +6294,11 @@ smp_fetch_ssl_x_notafter(const struct arg *args, struct sample *smp, const char
+@@ -6285,7 +6297,7 @@ smp_fetch_ssl_x_notafter(const struct arg *args, struct sample *smp, const char
                goto out;
  
        smp_trash = get_trash_chunk();
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       if (ssl_sock_get_time(X509_get_notAfter(crt), smp_trash) <= 0)
-+#else
+-      if (ssl_sock_get_time(X509_get_notAfter(crt), smp_trash) <= 0)
 +      if (ssl_sock_get_time(X509_getm_notAfter(crt), smp_trash) <= 0)
-+#endif
                goto out;
  
        smp->data.u.str = *smp_trash;
-@@ -6385,7 +6398,11 @@ smp_fetch_ssl_x_notbefore(const struct arg *args, struct sample *smp, const char
+@@ -6385,7 +6397,7 @@ smp_fetch_ssl_x_notbefore(const struct arg *args, struct sample *smp, const char
                goto out;
  
        smp_trash = get_trash_chunk();
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       if (ssl_sock_get_time(X509_get_notBefore(crt), smp_trash) <= 0)
-+#else
+-      if (ssl_sock_get_time(X509_get_notBefore(crt), smp_trash) <= 0)
 +      if (ssl_sock_get_time(X509_getm_notBefore(crt), smp_trash) <= 0)
-+#endif
                goto out;
  
        smp->data.u.str = *smp_trash;
-@@ -8935,7 +8952,11 @@ static void __ssl_sock_init(void)
+@@ -8935,10 +8947,12 @@ static void __ssl_sock_init(void)
  #endif
  
        xprt_register(XPRT_SSL, &ssl_sock);
 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
        SSL_library_init();
-+#else
-+      OPENSSL_init_ssl(0, NULL);
 +#endif
        cm = SSL_COMP_get_compression_methods();
        sk_SSL_COMP_zero(cm);
- #ifdef USE_THREAD
-@@ -8967,8 +8988,13 @@ static void __ssl_sock_init(void)
+-#ifdef USE_THREAD
++#if defined(USE_THREAD) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
+       ssl_locking_init();
+ #endif
+ #if (OPENSSL_VERSION_NUMBER >= 0x1000200fL && !defined OPENSSL_NO_TLSEXT && !defined OPENSSL_IS_BORINGSSL && !defined LIBRESSL_VERSION_NUMBER)
+@@ -8967,8 +8981,8 @@ static void __ssl_sock_init(void)
  #else /* OPENSSL_IS_BORINGSSL */
                OPENSSL_VERSION_TEXT
                "\nRunning on OpenSSL version : %s%s",
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-              SSLeay_version(SSLEAY_VERSION),
-              ((OPENSSL_VERSION_NUMBER ^ SSLeay()) >> 8) ? " (VERSIONS DIFFER!)" : "");
-+#else
+-             SSLeay_version(SSLEAY_VERSION),
+-             ((OPENSSL_VERSION_NUMBER ^ SSLeay()) >> 8) ? " (VERSIONS DIFFER!)" : "");
 +             OpenSSL_version(OPENSSL_VERSION),
 +             ((OPENSSL_VERSION_NUMBER ^ OpenSSL_version_num()) >> 8) ? " (VERSIONS DIFFER!)" : "");
-+#endif
  #endif
        memprintf(&ptr, "%s\nOpenSSL library supports TLS extensions : "
  #if OPENSSL_VERSION_NUMBER < 0x00907000L
-@@ -9060,11 +9086,14 @@ static void __ssl_sock_deinit(void)
+@@ -9059,12 +9073,14 @@ static void __ssl_sock_deinit(void)
+       }
  #endif
  
-         ERR_remove_state(0);
-+
 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
+         ERR_remove_state(0);
          ERR_free_strings();
  
          EVP_cleanup();
index 37845146ce692d4c45252e5c1188ff3221f3f018..5072a45b6e370ffe41faa7ed4ff2953d120b8924 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mDNSResponder
-PKG_VERSION:=878.70.2
+PKG_VERSION:=878.200.35
 PKG_RELEASE:=1
 
 PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
-PKG_HASH:=cdd03171ca05f16ea987bba1f8b0c4847d3035283ea0f5fa0ade75f64ec83ed5
+PKG_SOURCE_URL:=https://opensource.apple.com/tarballs/mDNSResponder/
+PKG_HASH:=e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0
 PKG_MAINTAINER:=
 PKG_LICENSE:=Apache-2.0
 
index 998c241c56c2d8f3e197a28907fcf8defcdab65e..cb623824b2c457d0ce01a618927f2502ba4a2490 100644 (file)
@@ -220,39 +220,15 @@ index b392fc7..f551ad5 100755
  
  /* Converts a prefix length to IPv6 network mask */
  void plen_to_mask(int plen, char *addr) {
-@@ -86,7 +87,7 @@ struct ifi_info *get_ifi_info_linuxv6(int family, int doaliases)
-     FILE *fp = NULL;
-     char addr[8][5];
-     int flags, myflags, index, plen, scope;
--    char ifname[9], lastname[IFNAMSIZ];
-+    char ifname[IFNAMSIZ], lastname[IFNAMSIZ];
-     char addr6[32+7+1]; /* don't forget the seven ':' */
-     struct addrinfo hints, *res0;
-     int err;
-@@ -92,7 +93,8 @@ struct ifi_info *get_ifi_info_linuxv6(int family, int doaliases)
-     int err;
-     int sockfd = -1;
-     struct ifreq ifr;
--
-+    char mask[64] = "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %";
-+    sprintf(mask+strlen(mask), "%ds\n", IFNAMSIZ);
-     res0=NULL;
-     ifihead = NULL;
-     ifipnext = &ifihead;
-@@ -104,11 +106,12 @@ struct ifi_info *get_ifi_info_linuxv6(int family, int doaliases)
-             goto gotError;
-         }
-         while (fscanf(fp,
--                      "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %8s\n",
-+                      mask,
-                       addr[0],addr[1],addr[2],addr[3],
-                       addr[4],addr[5],addr[6],addr[7],
-                       &index, &plen, &scope, &flags, ifname) != EOF) {
+@@ -127,6 +128,8 @@
+             nitems = fscanf(fp, ifnameFmt, ifname);
+             if (nitems != 1) break;
  
 +            if (flags & IFA_F_DEPRECATED) continue;
-             myflags = 0;
-             if (strncmp(lastname, ifname, IFNAMSIZ) == 0) {
++
+             if (strcmp(lastname, ifname) == 0) {
                  if (doaliases == 0)
+                     continue;   /* already processed this interface */
 diff --git a/mDNSShared/dnsextd_parser.y b/mDNSShared/dnsextd_parser.y
 index 18c5990..d4b63ce 100644
 --- a/mDNSShared/dnsextd_parser.y
index 611187676989ab74d85e41286d6fb48e095ba6ad..16b2cc99adfc7bf5255398ba422d1f43dec9ec40 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Clients/dns-sd.c
 +++ b/Clients/dns-sd.c
-@@ -2288,7 +2288,7 @@ Fail:
+@@ -2281,7 +2281,7 @@ Fail:
  
  // NOT static -- otherwise the compiler may optimize it out
  // The "@(#) " pattern is a special prefix the "what" command looks for
@@ -48,5 +48,5 @@
  
  // NOT static -- otherwise the compiler may optimize it out
  // The "@(#) " pattern is a special prefix the "what" command looks for
--const char VersionString_SCCS_libdnssd[] = "@(#) libdns_sd " STRINGIFY(mDNSResponderVersion) " (" __DATE__ " " __TIME__ ")";
-+const char VersionString_SCCS_libdnssd[] = "@(#) libdns_sd " STRINGIFY(mDNSResponderVersion);
+-const char VersionString_SCCS_libdnssd[] DNSSD_USED = "@(#) libdns_sd " STRINGIFY(mDNSResponderVersion) " (" __DATE__ " " __TIME__ ")";
++const char VersionString_SCCS_libdnssd[] DNSSD_USED = "@(#) libdns_sd " STRINGIFY(mDNSResponderVersion);
index 515be4737e2827456f73651c8eec2af4b29c83a6..f4ac111f79a56830236943350ad643ccdba4569c 100644 (file)
@@ -9,15 +9,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mosquitto
-PKG_VERSION:=1.5.4
-PKG_RELEASE:=3
+PKG_VERSION:=1.5.5
+PKG_RELEASE:=1
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
 PKG_CPE_ID:=cpe:/a:eclipse:mosquitto
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://mosquitto.org/files/source/
-PKG_HASH:=5fd7f3454fd6d286645d032bc07f44a1c8583cec02ef2422c9eb32e0a89a9b2f
+PKG_HASH:=fcdb47e340864c545146681af7253399cc292e41775afd76400fda5b0d23d668
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
index b3ea84d905eedee116fdc58bdc30954d7e3241ed..410089032186cae500004c9905950dc6936e7598 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mwan3
-PKG_VERSION:=2.7.6
+PKG_VERSION:=2.7.8
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
 PKG_LICENSE:=GPLv2
index 4ad3bc3910655e423ab706e11f59befc6d160776..6aee3db0c0bc68cbb037b829332641dfb3f65621 100755 (executable)
@@ -61,12 +61,6 @@ ifup()
                echo "Too many arguments. Usage: mwan3 ifup <interface>" && exit 0
        fi
 
-       config_get_bool enabled globals 'enabled' 0
-       [ ${enabled} -gt 0 ] || {
-               echo "Warning: mwan3 is global disabled. Usage: /etc/init.d/mwan3 start"
-               exit 0
-       }
-
        status=$(ubus -S call network.interface.$1 status)
        [ -n "$status" ] && {
                json_load $status
@@ -75,7 +69,6 @@ ifup()
 
        config_get enabled "$1" enabled 0
 
-
        if [ "$up" = "1" ] \
                && [ -n "$l3_device" ] \
                && [ "$enabled" = "1" ]; then
@@ -132,34 +125,16 @@ status()
 
 start()
 {
-       local enabled src_ip local_source
+       local enabled
 
        uci_toggle_state mwan3 globals enabled "1"
 
-       config_get local_source globals local_source 'none'
-       [ "${local_source}" = "none" ] || {
-               src_ip=$(uci_get_state mwan3 globals src_ip)
-               [ "${src_ip}" != "" ] && {
-                       ip route del default via "${src_ip}" dev lo 1>/dev/null 2>&1
-                       ip addr del "${src_ip}/32" dev lo 1>/dev/null 2>&1
-               }
-
-               network_get_ipaddr src_ip "${local_source}"
-               if [ "${src_ip}" = "" ]; then
-                       $LOG warn "Unable to set source ip for own initiated traffic (${local_source})"
-               else
-                       ip addr add "${src_ip}/32" dev lo
-                       ip route add default via "${src_ip}" dev lo
-                       uci_toggle_state mwan3 globals src_ip "${src_ip}"
-               fi
-       }
-
        config_foreach ifup interface
 }
 
 stop()
 {
-       local ipset route rule table IP IPT pid src_ip
+       local ipset route rule table IP IPT pid
 
        for pid in $(pgrep -f "mwan3rtmon"); do
                kill -TERM "$pid" > /dev/null 2>&1
@@ -212,12 +187,6 @@ stop()
        mwan3_lock_clean
        rm -rf $MWAN3_STATUS_DIR $MWAN3TRACK_STATUS_DIR
 
-       src_ip=$(uci_get_state mwan3 globals src_ip)
-       [ "${src_ip}" = "" ] || {
-               ip route del default via "${src_ip}" dev lo 1>/dev/null 2>&1
-               ip addr del "${src_ip}/32" dev lo 1>/dev/null 2>&1
-       }
-
        uci_toggle_state mwan3 globals enabled "0"
 }
 
index 4208784725fac630f00fc9ac36af1fd7781d1484..f268f90b25bdc07bbeaf7c1147b3ff2d9de56bc5 100755 (executable)
@@ -43,6 +43,12 @@ validate_track_method() {
                                return 1
                        }
                        ;;
+               nping-*)
+                       which nping 1>/dev/null 2>&1 || {
+                               $LOG warn "Missing nping. Please install nping package."
+                               return 1
+                       }
+                       ;;
                *)
                        $LOG warn "Unsupported tracking method: $track_method"
                        return 2
@@ -146,6 +152,18 @@ main() {
                                                httping -y $SRC_IP -c $count -t $timeout -q $track_ip &> /dev/null
                                                result=$?
                                        ;;
+                                       nping-tcp)
+                                               result=$(nping -e $DEVICE -c $count $track_ip --tcp | grep Lost | awk '{print $12}')
+                                       ;;
+                                       nping-udp)
+                                               result=$(nping -e $DEVICE -c $count $track_ip --udp | grep Lost | awk '{print $12}')
+                                       ;;
+                                       nping-icmp)
+                                               result=$(nping -e $DEVICE -c $count $track_ip --icmp | grep Lost | awk '{print $12}')
+                                       ;;
+                                       nping-arp)
+                                               result=$(nping -e $DEVICE -c $count $track_ip --arp | grep Lost | awk '{print $12}')
+                                       ;;
                                esac
                                if [ $check_quality -eq 0 ]; then
                                        if [ $result -eq 0 ]; then
index 3bb1b03a17833ae60a00721f5a71b607c8518610..55c24ea7a8d9fe512e21eddac766b66b3f5da317 100644 (file)
@@ -228,6 +228,22 @@ config NGINX_STREAM_CORE_MODULE
                Add support for NGINX request streaming.
        default n
 
+config NGINX_STREAM_SSL_MODULE
+       bool
+       prompt "Enable stream support with SSL/TLS termination"
+       depends on NGINX_STREAM_CORE_MODULE
+       help
+               Add support for NGINX request streaming with SSL/TLS termination.
+       default n
+
+config NGINX_STREAM_SSL_PREREAD_MODULE
+       bool
+       prompt "Enable stream support with SSL/TLS pre-read"
+       depends on NGINX_STREAM_CORE_MODULE
+       help
+               Add support for NGINX request streaming using information from the ClientHello message without terminating SSL/TLS.
+       default n
+
 config NGINX_RTMP_MODULE
        bool
        prompt "Enable RTMP module"
index 9325fba51affa9d3938c29aa12e550275a336ec7..f889cc3ec465ecfc03cd8978975d808e7a6f1618 100644 (file)
@@ -221,6 +221,22 @@ config NGINX_STREAM_CORE_MODULE
                Add support for NGINX request streaming.
        default n
 
+config NGINX_STREAM_SSL_MODULE
+       bool
+       prompt "Enable stream support with SSL/TLS termination"
+       depends on NGINX_STREAM_CORE_MODULE
+       help
+               Add support for NGINX request streaming with SSL/TLS termination.
+       default n
+
+config NGINX_STREAM_SSL_PREREAD_MODULE
+       bool
+       prompt "Enable stream support with SSL/TLS pre-read"
+       depends on NGINX_STREAM_CORE_MODULE
+       help
+               Add support for NGINX request streaming using information from the ClientHello message without terminating SSL/TLS.
+       default n
+
 config NGINX_RTMP_MODULE
        bool
        prompt "Enable RTMP module"
index 31448b1beb91dffb91ccca1122eb3c9ad7937af4..23307eea55b631840fefe43449ea49baf11bc774 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nginx
 PKG_VERSION:=1.15.7
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://nginx.org/download/
@@ -67,6 +67,8 @@ PKG_CONFIG_DEPENDS := \
        CONFIG_NGINX_HTTP_BROTLI \
        CONFIG_NGINX_HEADERS_MORE \
        CONFIG_NGINX_STREAM_CORE_MODULE \
+       CONFIG_NGINX_STREAM_SSL_MODULE \
+       CONFIG_NGINX_STREAM_SSL_PREREAD_MODULE \
        CONFIG_NGINX_RTMP_MODULE \
        CONFIG_NGINX_TS_MODULE \
 
@@ -268,6 +270,12 @@ ifneq ($(BUILD_VARIANT),all-module)
   ifeq ($(CONFIG_NGINX_STREAM_CORE_MODULE),y)
     ADDITIONAL_MODULES += --with-stream
   endif
+  ifeq ($(CONFIG_NGINX_STREAM_SSL_MODULE),y)
+    ADDITIONAL_MODULES += --with-stream_ssl_module
+  endif
+  ifeq ($(CONFIG_NGINX_STREAM_SSL_PREREAD_MODULE),y)
+    ADDITIONAL_MODULES += --with-stream_ssl_preread_module
+  endif
   ifeq ($(CONFIG_NGINX_HEADERS_MORE),y)
     ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-headers-more
   endif
@@ -293,7 +301,7 @@ else
        --with-http_dav_module --add-module=$(PKG_BUILD_DIR)/nginx-dav-ext-module \
        --with-http_auth_request_module --with-http_v2_module --with-http_realip_module \
        --with-http_secure_link_module --with-http_sub_module --add-module=$(PKG_BUILD_DIR)/nginx-headers-more \
-       --with-stream \
+       --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module \
        --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 
index 7405ad20be2dfb1982b2f0b06ac42fd923076412..985feae5da512458a1c6faa53e4973f9d5a357c6 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nut
 PKG_VERSION:=2.7.4
-PKG_RELEASE:=12
+PKG_RELEASE:=13
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.networkupstools.org/source/2.7/
index 045b29d48d06e1428b7b120c0ac94be68955f979..a1df01645428b0c67ee99b5cefbf8d5f52edfc29 100755 (executable)
@@ -145,37 +145,35 @@ build_driver_config() {
 
        echo "[$cfg]" >>"$UPS_C"
 
-       get_write_driver_config "$cfg" driver "usbhid-ups"
-       get_write_driver_config "$cfg" port "auto"
-       get_write_driver_config "$cfg" sdorder
+       get_write_driver_config "$cfg" bus
+       get_write_driver_config "$cfg" community
        get_write_driver_config "$cfg" desc
-       get_write_driver_config "$cfg" nolock 0 1
+       get_write_driver_config "$cfg" driver "usbhid-ups"
        get_write_driver_config "$cfg" ignorelb 0 1
+       get_write_driver_config "$cfg" interruptonly 0 1
+       get_write_driver_config "$cfg" interruptsize
+       get_write_driver_config "$cfg" maxreport
+       get_write_driver_config "$cfg" maxstartdelay
        get_write_driver_config "$cfg" mfr
        get_write_driver_config "$cfg" model
-       get_write_driver_config "$cfg" serial
-       get_write_driver_config "$cfg" sdtime
+       get_write_driver_config "$cfg" nolock 0 1
+       get_write_driver_config "$cfg" notransferoids 0 1
        get_write_driver_config "$cfg" offdelay
        get_write_driver_config "$cfg" ondelay
        get_write_driver_config "$cfg" pollfreq
-       get_write_driver_config "$cfg" vendor
+       get_write_driver_config "$cfg" port "auto"
        get_write_driver_config "$cfg" product
-       get_write_driver_config "$cfg" bus
-       get_write_driver_config "$cfg" interruptonly 0 1
-       get_write_driver_config "$cfg" interruptsize
-       get_write_driver_config "$cfg" maxreport
-       get_write_driver_config "$cfg" vendorid
        get_write_driver_config "$cfg" productid
-       get_write_driver_config "$cfg" community
+       get_write_driver_config "$cfg" retrydelay
+       get_write_driver_config "$cfg" sdorder
+       get_write_driver_config "$cfg" sdtime
+       get_write_driver_config "$cfg" serial
        get_write_driver_config "$cfg" snmp_version
        get_write_driver_config "$cfg" snmp_retries
        get_write_driver_config "$cfg" snmp_timeout
-       get_write_driver_config "$cfg" notransferoids 0 1
-       get_write_driver_config "$cfg" maxstartdelay
-       get_write_driver_config "$cfg" retrydelay
        get_write_driver_config "$cfg" synchronous
-       get_write_driver_config "$cfg" other
-       get_write_driver_config "$cfg" otherflag
+       get_write_driver_config "$cfg" vendor
+       get_write_driver_config "$cfg" vendorid
 
        defoverride() {
                local overvar="$1"
@@ -194,18 +192,16 @@ build_driver_config() {
                local othervarflag="$2"
 
                if [ "$othervarflag" = "otherflag" ]; then
-                       config_get_bool otherval "${othervarflag}_${overtype}" value
-                       [ "$otherval" = "1" ] && echo "${othervarflag}_${othervar}" >>"$UPS_C"
+                       config_get_bool otherval "${othervarflag}_${othervar}" value
+                       [ "$otherval" = "1" ] && echo "${othervar}" >>"$UPS_C"
                else
-                       config_get otherval "${othervarflag}_${overtype}" value
-                       [ -n "$otherval" ] && echo "${othervarflag}_${othervar} = $otherval" >>"$UPS_C"
+                       config_get otherval "${othervarflag}_${othervar}" value
+                       [ -n "$otherval" ] && echo "${othervar} = $otherval" >>"$UPS_C"
                fi
        }
 
-       config_list_foreach "$cfg" override defoverride override
-       config_list_foreach "$cfg" default defoverride default
-       config_list_foreach "$cfg" default other other
-       config_list_foreach "$cfg" default other otherflag
+       config_list_foreach "$cfg" other other
+       config_list_foreach "$cfg" other otherflag
        echo "" >>$UPS_C
        havedriver=1
 }
@@ -229,7 +225,6 @@ build_global_driver_config() {
 }
 
 build_config() {
-       local RUNAS=nut
        local STATEPATH=/var/run/nut
 
         mkdir -m 0755 -p "$(dirname "$UPS_C")"
@@ -285,7 +280,7 @@ start_driver_instance() {
 }
 
 start_server_instance() {
-       local RUNAS
+       local RUNAS=nut
        build_config
 
        [ "$haveserver" != 1 ] && return
index 464d56303be09e87fd9484b79c7012a203f684db..6449203a479ae6a57659be7bae13db169a037a59 100644 (file)
@@ -1,8 +1,9 @@
+#config driver_global 'driver_global'
+#      option user nut
+
 #config driver 'upsname'
 #      option driver usbhid-ups
 #      option port auto
-#      option other other-value
-#      option runas root
 
 #config user
 #      option username upsuser
index fb1eeb234d383222236267d17416afefa3acd783..8e57624b02fdeb7cb0b30954665ec88b8a17c637 100644 (file)
@@ -2,7 +2,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba
-PKG_VERSION:=4.9.2
+PKG_VERSION:=4.9.4
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
@@ -11,7 +11,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE_URL:=https://download.samba.org/pub/samba/stable/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=349c17b7bf1bf667167843470533da89ff1b2ca4a768b529aaacf5197af1efa2
+PKG_HASH:=6d98a8d8bcccbe788e4bbb406362e6676311aca711a3f3cc9b3a404bb9ff0b4f
 
 # Buildroot bug? Can't add target deps via '+SAMBA4_SERVER_AD_DC:python-crypto' (as work-around we select via config.in)
 PKG_BUILD_DEPENDS:=SAMBA4_SERVER_AD_DC:python-crypto nfs-kernel-server/host
index 77f2079fa4aa73b3058be2575b3b1c01dd950d39..50cb2eb49fa869b870ca74429921fea8f5dd998e 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall-core
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=1
-PKG_BUGFIX_MINOR_VERSION:=.2
+PKG_BUGFIX_MINOR_VERSION:=.4
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=f84852b86c82487f270172f2d00d13b83255dc05eee9be1e8b76fe7b600021b5
+PKG_HASH:=48195c9e4f9ecd75014a36219e4c7b8c15bff36d149284bc6ac29696b475971d
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index 384f885a3cd9f038054df2d8fcc0348677f31b64..f87df0adbd3a11b2b07428719db84f9a818ed846 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall-lite
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=1
-PKG_BUGFIX_MINOR_VERSION:=.2
+PKG_BUGFIX_MINOR_VERSION:=.4
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=8c3ac19563847b30a064fc64f0fd8e64f61db03dc6b9ff28609876dce13af806
+PKG_HASH:=d322121f03a2d6c0845f46a3f1a7d98f9fb0660e6d65b30622154799682ec55f
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index c0fa621b0a5eca4be1a54ab5d9bbec81463bb5f7..0ab410b1afaea0ac82bd3fa53a761c54fe4a281a 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=1
-PKG_BUGFIX_MINOR_VERSION:=.2
+PKG_BUGFIX_MINOR_VERSION:=.4
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=07a914270d169261deff6cc835a031ec187de2575c5476e3bd55224a4855fc64
+PKG_HASH:=420ba5a66b348990388131cdc3821f79d87f00fd1266c904a701b8a5823756e0
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index b415ae86e91040ec17c7c646e08312d28f5bd81f..24ca7371bd6472c02e370f2c135f3481a75a53eb 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall6-lite
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=1
-PKG_BUGFIX_MINOR_VERSION:=.2
+PKG_BUGFIX_MINOR_VERSION:=.4
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=859995c6cf86d5f865b842b130ce7bd0c3acfa9efdeedc8484287cab5c94cb03
+PKG_HASH:=6dad347b2202334b9da44b316a25273cdb28401623a6fd0c6bba9c7731e0a280
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index ee1cdb356a69ad65ebd95a8a5be4ee38e01c43cf..3def88c2da55d4760a3e0ab1c07edbf7eb83d717 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall6
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=1
-PKG_BUGFIX_MINOR_VERSION:=.2
+PKG_BUGFIX_MINOR_VERSION:=.4
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=4f6fc8e9a3494ee6b67ee47e327fccfb8e56b392ea9f7f65344d1b8adaa38018
+PKG_HASH:=eaf6b55c8e9801c89114371dbda37f635ad95cba35519b94b7536c1c7ecb53fa
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index 7d26cf616259fce1c4775a809d6cf7fefc8baac0..30c3d7f6a4be57cfc3fac500a5eb2d437b025a79 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=snort
 PKG_VERSION:=2.9.11.1
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
diff --git a/net/snort/patches/002-fix_include.patch b/net/snort/patches/002-fix_include.patch
new file mode 100644 (file)
index 0000000..c3177c5
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/configure.in
++++ b/configure.in
+@@ -67,6 +67,11 @@ case "$host" in
+     AC_DEFINE([SUNOS],[1],[Define if SunOS])
+     sunos4="yes"
+     ;;
++  *-openwrt*)
++    linux="yes"
++    AC_DEFINE([LINUX],[1],[Define if Linux])
++    AC_SUBST(extra_incl)
++    ;;
+   *-linux*)
+     linux="yes"
+     AC_DEFINE([LINUX],[1],[Define if Linux])
index c896e09293bd29e6339523e2bb7734d9bd701866..1d7bcd4e7a6b2e8b9a0139495734c5acd91a43a1 100644 (file)
@@ -25,6 +25,7 @@ PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
 PKG_BUILD_DEPENDS:=softethervpn/host
+HOST_BUILD_DEPENDS:=readline/host
 
 HAMCORE_SE2:=$(STAGING_DIR_HOST)/share/softethervpn/hamcore.se2
 
@@ -32,13 +33,6 @@ include $(INCLUDE_DIR)/nls.mk
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 
-
-# Override CC to add fake libreadline to linker search path
-HOSTCC += -L./src/readline
-
-# Add defines to turn add_history() and readline() calls into no-ops
-HOSTCC += -D'add_history(x)' -D'readline(x)=\"\"'
-
 # Execute in host build directory
 HOST_MAKE_FLAGS += -C $(HOST_BUILD_DIR)
 
@@ -50,15 +44,10 @@ define Host/Configure
 endef
 
 define Host/Compile
-       # Prepare fake readline headers and library
-       mkdir -p $(HOST_BUILD_DIR)/src/readline
-       touch $(HOST_BUILD_DIR)/src/readline/readline.h
-       touch $(HOST_BUILD_DIR)/src/readline/history.h
-       ar rcs $(HOST_BUILD_DIR)/src/readline/libreadline.a
-
        # Build hamcorebuilder using host compiler and let it generate
        # the hamcore.se2 archive file
-       CC="$(HOSTCC)" $(MAKE) $(HOST_MAKE_FLAGS) \
+       # CFLAGS, CPPFLAGS & LDFLAGS need to be passed with CC because they are being ingored
+       CC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(HOST_LDFLAGS)" $(MAKE) $(HOST_MAKE_FLAGS) \
                src/bin/BuiltHamcoreFiles/unix/hamcore.se2
 endef
 
index 6cbf19bf3967ee5d7ce1ac8ec11ad8ae4996ecad..6e7ab46fdd5fed3930ce8f76b820203680929ca5 100644 (file)
@@ -9,10 +9,10 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=subversion
 PKG_RELEASE:=1
-PKG_VERSION:=1.10.2
+PKG_VERSION:=1.11.0
 PKG_SOURCE_URL:=@APACHE/subversion
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=5b35e3a858d948de9e8892bf494893c9f7886782f6abbe166c0487c19cf6ed88
+PKG_HASH:=87c44344b074ac2e9ed7ca9675fb1e5b197051c3deecfe5934e5f6aefbf83e56
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 PKG_MAINTAINER:=Val Kulkov <val.kulkov@gmail.com>
index 156ff95547fde2e8c02d0d51ec82a22bd695fedd..f1cffbffe207c69d9cc2d2f3922637e13197a53c 100644 (file)
@@ -9,12 +9,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tinc
 PKG_VERSION:=1.0.35
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.tinc-vpn.org/packages
+PKG_SOURCE_URL:=https://www.tinc-vpn.org/packages
 PKG_HASH:=18c83b147cc3e2133a7ac2543eeb014d52070de01c7474287d3ccecc9b16895e
 
+PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
diff --git a/net/tinc/patches/010-Fix-compilation-when-OpenSSL-has-no-ENGINE-support.patch b/net/tinc/patches/010-Fix-compilation-when-OpenSSL-has-no-ENGINE-support.patch
new file mode 100644 (file)
index 0000000..5b03fc3
--- /dev/null
@@ -0,0 +1,48 @@
+From 43e323f5fd61ddf2c2adc2a5c12455b6578c059a Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 12 Dec 2018 13:40:37 -0800
+Subject: [PATCH 1/2] Fix compilation when OpenSSL has no ENGINE support
+
+This will be the case in OpenWrt soon.
+---
+ src/tincd.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/tincd.c b/src/tincd.c
+index 7b882c7a..bdac0c9d 100644
+--- a/src/tincd.c
++++ b/src/tincd.c
+@@ -37,7 +37,9 @@
+ #include <openssl/rsa.h>
+ #include <openssl/pem.h>
+ #include <openssl/evp.h>
++#ifndef OPENSSL_NO_ENGINE
+ #include <openssl/engine.h>
++#endif
+ #ifdef HAVE_LZO
+ #include LZO1X_H
+@@ -685,8 +687,10 @@ int main(int argc, char **argv) {
+       init_configuration(&config_tree);
++#ifndef OPENSSL_NO_ENGINE
+       ENGINE_load_builtin_engines();
+       ENGINE_register_all_complete();
++#endif
+       OpenSSL_add_all_algorithms();
+@@ -809,7 +813,9 @@ end:
+       EVP_cleanup();
+       ERR_free_strings();
++#ifndef OPENSSL_NO_ENGINE
+       ENGINE_cleanup();
++#endif
+       exit_configuration(&config_tree);
+       list_delete_list(cmdline_conf);
+-- 
+2.20.0
+
diff --git a/net/tinc/patches/020-Fix-compilation-without-deprecated-OpenSSL-APIs.patch b/net/tinc/patches/020-Fix-compilation-without-deprecated-OpenSSL-APIs.patch
new file mode 100644 (file)
index 0000000..52fecc9
--- /dev/null
@@ -0,0 +1,98 @@
+From 5e0e401dc69b9c25e5f85de7484a70ea97862e16 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 12 Dec 2018 13:45:59 -0800
+Subject: [PATCH 2/2] Fix compilation without deprecated OpenSSL APIs
+
+This is an optional part of OpenWrt designed to save space.
+---
+ src/connection.c | 4 ++--
+ src/connection.h | 4 ++++
+ src/net_setup.c  | 1 +
+ src/tincd.c      | 5 +++++
+ 4 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/src/connection.c b/src/connection.c
+index 38b3ccfe..d137af12 100644
+--- a/src/connection.c
++++ b/src/connection.c
+@@ -96,13 +96,13 @@ void free_connection_partially(connection_t *c) {
+       c->outbudget = 0;
+       if(c->inctx) {
+-              EVP_CIPHER_CTX_cleanup(c->inctx);
++              EVP_CIPHER_CTX_reset(c->inctx);
+               free(c->inctx);
+               c->inctx = NULL;
+       }
+       if(c->outctx) {
+-              EVP_CIPHER_CTX_cleanup(c->outctx);
++              EVP_CIPHER_CTX_reset(c->outctx);
+               free(c->outctx);
+               c->outctx = NULL;
+       }
+diff --git a/src/connection.h b/src/connection.h
+index 629e16b9..4f554672 100644
+--- a/src/connection.h
++++ b/src/connection.h
+@@ -24,6 +24,10 @@
+ #include <openssl/rsa.h>
+ #include <openssl/evp.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define EVP_CIPHER_CTX_reset(c)       EVP_CIPHER_CTX_cleanup(c)
++#endif
++
+ #include "avl_tree.h"
+ #define OPTION_INDIRECT         0x0001
+diff --git a/src/net_setup.c b/src/net_setup.c
+index cac7455d..f26007bd 100644
+--- a/src/net_setup.c
++++ b/src/net_setup.c
+@@ -27,6 +27,7 @@
+ #include <openssl/rand.h>
+ #include <openssl/err.h>
+ #include <openssl/evp.h>
++#include <openssl/bn.h>
+ #include "avl_tree.h"
+ #include "conf.h"
+diff --git a/src/tincd.c b/src/tincd.c
+index bdac0c9d..e8a60449 100644
+--- a/src/tincd.c
++++ b/src/tincd.c
+@@ -40,6 +40,7 @@
+ #ifndef OPENSSL_NO_ENGINE
+ #include <openssl/engine.h>
+ #endif
++#include <openssl/bn.h>
+ #ifdef HAVE_LZO
+ #include LZO1X_H
+@@ -692,7 +693,9 @@ int main(int argc, char **argv) {
+       ENGINE_register_all_complete();
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       OpenSSL_add_all_algorithms();
++#endif
+       if(generate_keys) {
+               read_server_config();
+@@ -811,10 +814,12 @@ end:
+       free(priority);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       EVP_cleanup();
+       ERR_free_strings();
+ #ifndef OPENSSL_NO_ENGINE
+       ENGINE_cleanup();
++#endif
+ #endif
+       exit_configuration(&config_tree);
+-- 
+2.20.0
+
index 3de8a8eecdb17ed554ffd3215e4315fe0e1452b3..ad629cf1a8235ba9a2f05ea6f55463f588dd81a6 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unbound
 PKG_VERSION:=1.8.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
diff --git a/net/unbound/patches/101-dns64-crash.patch b/net/unbound/patches/101-dns64-crash.patch
new file mode 100644 (file)
index 0000000..e27f072
--- /dev/null
@@ -0,0 +1,23 @@
+From 023411f97505c8c7e375112ad853b6a40ef848a6 Mon Sep 17 00:00:00 2001
+From: Wouter Wijngaards <wouter@nlnetlabs.nl>
+Date: Wed, 12 Dec 2018 16:03:05 +0000
+Subject: [PATCH] - Fix for crash in dns64 module if response is null.
+
+git-svn-id: file:///svn/unbound/trunk@5025 be551aaa-1e26-0410-a405-d3ace91eadb9
+---
+ dns64/dns64.c | 1 +
+ doc/Changelog | 3 +++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/dns64/dns64.c b/dns64/dns64.c
+index 77e68900..f2834da2 100644
+--- a/dns64/dns64.c
++++ b/dns64/dns64.c
+@@ -628,6 +628,7 @@ handle_event_moddone(struct module_qstate* qstate, int id)
+       /* Store the response in cache. */
+       if ( (!iq || !iq->started_no_cache_store) &&
++              qstate->return_msg && qstate->return_msg->rep &&
+               !dns_cache_store(qstate->env, &qstate->qinfo, qstate->return_msg->rep,
+               0, 0, 0, NULL, qstate->query_flags))
+               log_err("out of memory");
index 17da4103f3438f49f4a43ed8b7fa58be9f9dccd3..ee1ad44a39f8b9dcb6730ebcb4aa64d28674198b 100644 (file)
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=xtables-addons
 PKG_VERSION:=2.14
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 PKG_HASH:=d215a9a8b8e66aae04b982fa2e1228e8a71e7dfe42320df99e34e5000cbdf152
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
index 08ed4e84512aa807adf06b92479afea657d88711..4666ea79b8687141cb45629ed4bc75d0c7d1bc0b 100644 (file)
 +#endif /* _IP_CONNTRACK_RTSP_H */
 --- /dev/null
 +++ b/extensions/rtsp/nf_nat_rtsp.c
-@@ -0,0 +1,634 @@
+@@ -0,0 +1,636 @@
 +/*
 + * RTSP extension for TCP NAT alteration
 + * (C) 2003 by Tom Marshall <tmarshall at real.com>
 +
 +static void nf_nat_rtsp_expected(struct nf_conn* ct, struct nf_conntrack_expect *exp)
 +{
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0)
++      struct nf_nat_range2 range;
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
 +      struct nf_nat_range range;
 +#else
 +      struct nf_nat_ipv4_range range;
index b686659f9b56d613e6685904cd6880ba18f74228..f0759645df951f339863899ba7e2aa2c256ed7d3 100644 (file)
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shairport-sync
 PKG_VERSION:=3.2.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/mikebrady/shairport-sync/tar.gz/$(PKG_VERSION)?
@@ -23,13 +23,14 @@ PKG_LICENSE_FILES:=COPYING LICENSES shairport.c
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
 
+include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/shairport-sync/default
   SECTION:=sound
   CATEGORY:=Sound
   TITLE:=AirPlay compatible audio player
-  DEPENDS:=@AUDIO_SUPPORT +libpthread +libstdcpp +alsa-lib +libconfig +libdaemon +libpopt
+  DEPENDS:=@AUDIO_SUPPORT $(CXX_DEPENDS) +libpthread +alsa-lib +libconfig +libdaemon +libpopt
   PROVIDES:=shairport-sync
   URL:=https://github.com/mikebrady/shairport-sync
 endef
index 5b6e956ad9086e83d41e02941b37c36946b4e7af..9e748c8ac48a8072de6ddf56f215460a69deb43b 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acpica-unix
-PKG_VERSION:=20180927
+PKG_VERSION:=20181213
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://acpica.org/sites/$(patsubst %-unix,%,$(PKG_NAME))/files/$(PKG_SOURCE_URL)
-PKG_HASH:=dc408d11889bcbedcfe9cc5b7ed23f65e857ca8fd5125f8c7a9e075e0b282db1
+PKG_HASH:=fc90006775c635ba86c5bbf08590ac98ab10e1f9eff6d8951385f57dd3a6f8ed
 PKG_MAINTAINER:=Philip Prindeville <philipp@redfish-solutions.com>
 
 PKG_LICENSE:=GPL-2.0
index 196d1aa8ab66ccb849553c83b9b8ed2528c4792c..107dda6c0a7017a4a9ff9844b5b4a1368f100806 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dbus
-PKG_VERSION:=1.12.10
+PKG_VERSION:=1.12.12
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dbus.freedesktop.org/releases/dbus/
-PKG_HASH:=4b693d24976258c3f2fa9cc33ad9288c5fbfa7a16481dbd9a8a429f7aa8cdcf7
+PKG_HASH:=9546f226011a1e5d9d77245fe5549ef25af4694053189d624d0d6ac127ecf5f8
 PKG_MAINTAINER:=
 PKG_LICENSE:=AFL-2.1
 
index 672d71231ba5c744f53e3059ce3667bb69a4ef63..ec20094f72d42c2fd117a768841164c6cc98ddc9 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fish
 PKG_VERSION:=2.7.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/fish-shell/fish-shell/tar.gz/$(PKG_VERSION)?
@@ -58,10 +58,13 @@ grep fish $${IPKG_INSTROOT}/etc/shells || \
     if [[ -e /bin/fish ]] && ([[ ! -L /bin/fish ]] || [[ "$(readlink -fn $${IPKG_INSTROOT}/bin/fish)" != "../$(CONFIGURE_PREFIX)/bin/fish" ]]); then
         ln -fs "../$(CONFIGURE_PREFIX)/bin/fish" "$${IPKG_INSTROOT}/bin/fish"
     fi
+       echo '#!/bin/sh' > /usr/bin/apropos
+       chmod +x /usr/bin/apropos
 endef
 
 define Package/fish/postrm
        rm -rf "$${IPKG_INSTROOT}/$(CONFIGURE_PREFIX)/share/fish/$(PKG_VERSION)"
+       rm -f /usr/bin/apropos
 endef
 
 $(eval $(call BuildPackage,fish))
index c328c338677ee47c64a36c7b69b8a1e10696639b..6295d353219ea1be0012de9a4372965993887ef0 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gammu
 PKG_VERSION:=1.39.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=https://dl.cihar.com/gammu/releases
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
@@ -60,7 +60,7 @@ define Package/gammu/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gammu $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gammu-{smsd,smsd-inject,smsd-monitor} $(1)/usr/bin
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib$(LIB_SUFFIX)/lib{Gammu*,gsmsd*} $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/lib{Gammu*,gsmsd*} $(1)/usr/lib
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/gammu $(1)/etc/config/gammu
index 7b2f6c0879691af59fefdf9cbf7f966870575397..24774258b91c37c3a3fe76199649ba690794d7ad 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=logrotate
-PKG_VERSION:=3.14.0
+PKG_VERSION:=3.15.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:= https://github.com/logrotate/logrotate/releases/download/$(PKG_VERSION)
-PKG_HASH:=4703bdc0e2df3b322f9dff0aafc99aa9172c9e4acae28b7c924cc7d4e5b29d55
+PKG_HASH:=313612c4776a305393454c874ef590d8acf84c9ffa648717731dfe902284ff8f
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
index b501e7e0f954317bb1ed2660114d1ff4b1e4eaa5..b499769fc783006c076129b15f24a6d6b7fd9a42 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mariadb
 PKG_VERSION:=10.2.19
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL := \
@@ -33,39 +33,50 @@ PKG_BUILD_DEPENDS:=libevent2 mariadb/host
 
 CMAKE_INSTALL:=1
 
-PLUGIN_DIR:=/usr/lib/mysql/plugin
+CONF_DIR:=/etc/mysql
+PLUGIN_DIR:=/usr/lib/mariadb/plugin
+SHARE_DIR:=/usr/share/mariadb
+
+MARIADB_DISABLE_ENGINES := \
+       cassandra \
+       example \
+       mroonga \
+       oqgraph \
+       rocksdb \
+       test_sql_discovery \
+       tokudb
+
+MARIADB_DISABLE_PLUGINS := \
+       audit_null \
+       auth_examples \
+       aws_key_management \
+       cracklib_password_check \
+       daemon_example \
+       debug_key_management \
+       example_key_management \
+       fulltext
+
+MARIADB_LIB_PLUGINS := \
+       auth_gssapi_client
 
 MARIADB_SERVER_PLUGINS := \
-       adt_null \
-       auth_0x0100 \
        auth_ed25519 \
-       auth_socket \
-       auth_test_plugin \
+       auth_gssapi \
+       auth_pam \
        client_ed25519 \
-       debug_key_management \
-       dialog_examples \
        disks \
-       example_key_management \
        feedback \
        file_key_management \
        ha_archive \
        ha_blackhole \
        ha_connect \
-       ha_example \
        ha_federated \
        ha_federatedx \
-       ha_sequence \
        ha_sphinx \
        ha_spider \
-       ha_test_sql_discovery \
        handlersocket \
-       libdaemon_example \
        locales \
        metadata_lock_info \
-       mypluglib \
-       qa_auth_client \
-       qa_auth_interface \
-       qa_auth_server \
        query_cache_info \
        query_response_time \
        semisync_master \
@@ -76,39 +87,29 @@ MARIADB_SERVER_PLUGINS := \
        wsrep_info
 
 PKG_CONFIG_DEPENDS := \
+       $(patsubst %,CONFIG_PACKAGE_lib$(PKG_NAME)-plugin-%,$(subst _,-,$(MARIADB_LIB_PLUGINS))) \
        $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-%,$(subst _,-,$(MARIADB_SERVER_PLUGINS))) \
        CONFIG_PACKAGE_mariadb-server
 
-plugin-adt_null                 := PLUGIN_AUDIT_NULL
-plugin-auth_0x0100              := PLUGIN_AUTH_0X0100
+plugin-auth_gssapi_client       := PLUGIN_AUTH_GSSAPI_CLIENT
+
 plugin-auth_ed25519             := PLUGIN_AUTH_ED25519
-plugin-auth_socket              := PLUGIN_AUTH_SOCKET
-plugin-auth_test_plugin         := PLUGIN_AUTH_TEST_PLUGIN
+plugin-auth_gssapi              := PLUGIN_AUTH_GSSAPI
+plugin-auth_pam                 := PLUGIN_AUTH_PAM
 plugin-client_ed25519           := PLUGIN_CLIENT_ED25519
-plugin-debug_key_management     := PLUGIN_DEBUG_KEY_MANAGEMENT
-plugin-dialog_examples          := PLUGIN_DIALOG_EXAMPLES
 plugin-disks                    := PLUGIN_DISKS
-plugin-example_key_management   := PLUGIN_EXAMPLE_KEY_MANAGEMENT
 plugin-feedback                 := PLUGIN_FEEDBACK
 plugin-file_key_management      := PLUGIN_FILE_KEY_MANAGEMENT
 plugin-ha_archive               := PLUGIN_ARCHIVE
 plugin-ha_blackhole             := PLUGIN_BLACKHOLE
 plugin-ha_connect               := PLUGIN_CONNECT
-plugin-ha_example               := PLUGIN_EXAMPLE
 plugin-ha_federated             := PLUGIN_FEDERATED
 plugin-ha_federatedx            := PLUGIN_FEDERATEDX
-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
-plugin-libdaemon_example        := PLUGIN_DAEMON_EXAMPLE
 plugin-locales                  := PLUGIN_LOCALES
 plugin-metadata_lock_info       := PLUGIN_METADATA_LOCK_INFO
-plugin-mypluglib                := PLUGIN_FTEXAMPLE
-plugin-qa_auth_client           := PLUGIN_QA_AUTH_CLIENT
-plugin-qa_auth_interface        := PLUGIN_QA_AUTH_INTERFACE
-plugin-qa_auth_server           := PLUGIN_QA_AUTH_SERVER
 plugin-query_cache_info         := PLUGIN_QUERY_CACHE_INFO
 plugin-query_response_time      := PLUGIN_QUERY_RESPONSE_TIME
 plugin-semisync_master          := PLUGIN_SEMISYNC_MASTER
@@ -156,13 +157,12 @@ MARIADB_SERVER_EXTRA := \
        mysql_tzinfo_to_sql \
        mysqlbinlog \
        mysqld_multi \
-       mysqld_safe \
-       mysqld_safe_helper \
        mysqldumpslow \
        mysqlhotcopy \
        perror \
        replace \
-       resolve_stack_dump
+       resolve_stack_dump \
+       wsrep_sst_*
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
@@ -180,10 +180,22 @@ MARIADB_COMMON_DEPENDS := \
 # ignore them.
 TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
 
+define Package/mariadb/disable/engine
+       echo > $(1)/storage/$(2)/CMakeLists.txt
+endef
+
+define Package/mariadb/disable/plugin
+       echo > $(1)/plugin/$(2)/CMakeLists.txt
+endef
+
 define Package/mariadb/install/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $(1)/usr/bin
 endef
 
+define Package/mariadb/install/plugin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/$(2).so $(1)$(PLUGIN_DIR)
+endef
+
 define Package/mariadb/description/Default
 MariaDB is a fast, stable and true multi-user, multi-threaded SQL
 database server. SQL (Structured Query Language) is the most popular
@@ -191,12 +203,17 @@ database query language in the world. The main goals of MariaDB are
 speed, robustness and ease of use.
 endef
 
-define Package/libmariadb
+define Package/libmariadb/Default
   SECTION:=libs
   CATEGORY:=Libraries
+  URL:=https://mariadb.org/
+endef
+
+define Package/libmariadb
+  $(call Package/libmariadb/Default)
   DEPENDS:=$(MARIADB_COMMON_DEPENDS)
   TITLE:=MariaDB database client library
-  URL:=https://mariadb.org/
+  MENU:=1
   PROVIDES:=libmariadbclient libmysqlclient libmysqlclient-r
 endef
 
@@ -216,10 +233,9 @@ endef
 
 define Package/mariadb-client
   $(call Package/mariadb/Default)
-  TITLE:=MariaDB database core client binaries
-  DEPENDS:= \
-         $(MARIADB_COMMON_DEPENDS) \
-         +libncursesw
+  TITLE:=MariaDB database client
+  MENU:=1
+  DEPENDS:=mariadb-client-base
 endef
 
 define Package/mariadb-client/description
@@ -231,9 +247,30 @@ $(subst $(space),$(newline),$(MARIADB_CLIENT))
 
 endef
 
+define Package/mariadb-client-base
+  $(call Package/mariadb/Default)
+  TITLE:=MariaDB database client base
+  DEPENDS:=mariadb-common \
+         $(MARIADB_COMMON_DEPENDS) \
+         +libedit
+endef
+
+define Package/mariadb-client-base/conffiles
+$(CONF_DIR)/conf.d/50-client.cnf
+$(CONF_DIR)/conf.d/50-mysql-clients.cnf
+endef
+
+define Package/mariadb-client-base/description
+$(call Package/mariadb/description/Default)
+
+This package provides the foundation for mariadb-client. It installs the
+configuration and the dependencies.
+
+endef
+
 define Package/mariadb-client-extra
   $(call Package/mariadb/Default)
-  TITLE:=MariaDB database extra client binaries
+  TITLE:=MariaDB database client extra
   DEPENDS:=mariadb-client
 endef
 
@@ -246,32 +283,29 @@ $(subst $(space),$(newline),$(MARIADB_CLIENT_EXTRA))
 
 endef
 
-define Package/mariadb-extra-charsets
+define Package/mariadb-common
   $(call Package/mariadb/Default)
-  TITLE:=MariaDB database extra character sets
-  DEPENDS:=mariadb-server
+  TITLE:=MariaDB database common files
+  DEPENDS:=
+endef
+
+define Package/mariadb-common/conffiles
+$(CONF_DIR)/my.cnf
 endef
 
-define Package/mariadb-extra-charsets/description
+define Package/mariadb-common/description
 $(call Package/mariadb/description/Default)
 
-This package contains single Byte character sets and collations that can
-be added at run time.
+This package includes shared files, for example $(CONF_DIR)/my.cnf.
 
 endef
 
 define Package/mariadb-server
   $(call Package/mariadb/Default)
-  DEPENDS:= \
-         $(MARIADB_COMMON_DEPENDS) \
-         +!arc:libaio \
-         +liblzma \
-         +libpcre \
-         +resolveip
-  TITLE:=MariaDB database core server binaries
+  DEPENDS:=mariadb-server-base
+  TITLE:=MariaDB database server
   MENU:=1
   PROVIDES:=mysql-server
-  USERID:=mariadb=376:mariadb=376
 endef
 
 define Package/mariadb-server/description
@@ -283,9 +317,36 @@ $(subst $(space),$(newline),$(MARIADB_SERVER))
 
 endef
 
+define Package/mariadb-server-base
+  $(call Package/mariadb/Default)
+  DEPENDS:=mariadb-common \
+         $(MARIADB_COMMON_DEPENDS) \
+         +!arc:libaio \
+         +liblzma \
+         +libpcre \
+         +resolveip
+  TITLE:=MariaDB database server base
+  USERID:=mariadb=376:mariadb=376
+endef
+
+define Package/mariadb-server-base/conffiles
+$(CONF_DIR)/conf.d/50-server.cnf
+$(CONF_DIR)/conf.d/60-galera.cnf
+/etc/config/mysqld
+endef
+
+define Package/mariadb-server-base/description
+$(call Package/mariadb/description/Default)
+
+This package provides the foundation for mariadb-server. It installs the
+init script, support files (configuration etc.), the user "mariadb" and
+the dependencies.
+
+endef
+
 define Package/mariadb-server-extra
   $(call Package/mariadb/Default)
-  TITLE:=MariaDB database extra server binaries
+  TITLE:=MariaDB database server extra
   DEPENDS:=mariadb-server
 endef
 
@@ -310,82 +371,64 @@ CMAKE_OPTIONS += -DWITH_UNIT_TESTS=0
 # time.
 CMAKE_OPTIONS += -DSTACK_DIRECTION=-1
 
-# Jemalloc was added for TokuDB. Since its configure script seems somewhat broken
-# when it comes to cross-compilation we shall disable it and also disable TokuDB.
-CMAKE_OPTIONS += -DWITH_JEMALLOC=no -DWITHOUT_TOKUDB=1
-
 # Make it explicit that we are cross-compiling
 CMAKE_OPTIONS += -DCMAKE_CROSSCOMPILING=1
 
 # Explicitly disable dtrace to avoid detection of a host version
 CMAKE_OPTIONS += -DENABLE_DTRACE=0
 
-# Prevent mariadb from messing with OpenWrt's C(XX)FLAGS
+# Prevent MariaDB from messing with OpenWrt's C(XX)FLAGS
 CMAKE_OPTIONS += -DSECURITY_HARDENED=OFF
 
 ifeq ($(CONFIG_PACKAGE_mariadb-server),)
 CMAKE_OPTIONS += -DWITHOUT_SERVER=ON
 else
-CMAKE_OPTIONS += -DWITHOUT_SERVER=OFF
+# Enable the auth_socket plugin and let unix user root access MariaDB without a
+# separate password.
+CMAKE_OPTIONS += -DWITHOUT_SERVER=OFF -DPLUGIN_AUTH_SOCKET=STATIC
 endif
 
 CMAKE_OPTIONS += \
        -DCONNECT_WITH_JDBC=NO \
        -DCONNECT_WITH_LIBXML2=system \
+       -DCONNECT_WITH_MONGO=NO \
        -DCONNECT_WITH_ODBC=NO \
-       -DDEFAULT_CHARSET=utf8 \
-       -DDEFAULT_COLLATION=utf8_general_ci \
        -DDISABLE_SHARED=NO \
        -DENABLED_PROFILING=OFF \
        -DENABLE_STATIC_LIBS=OFF \
        -DINSTALL_DOCDIR=share/doc/mariadb \
        -DINSTALL_DOCREADMEDIR=share/doc/mariadb \
+       -DINSTALL_INFODIR=share/info \
        -DINSTALL_MANDIR=share/man \
-       -DINSTALL_MYSQLSHAREDIR=share/mysql \
+       -DINSTALL_MYSQLSHAREDIR=share/mariadb \
        -DINSTALL_MYSQLTESTDIR="" \
-       -DINSTALL_PLUGINDIR=lib/mysql/plugin \
+       -DINSTALL_PLUGINDIR=lib/mariadb/plugin \
        -DINSTALL_SBINDIR=bin \
        -DINSTALL_SCRIPTDIR=bin \
        -DINSTALL_SQLBENCHDIR="" \
-       -DINSTALL_SUPPORTFILESDIR=share/mysql \
+       -DINSTALL_SUPPORTFILESDIR=share/mariadb \
        -DINSTALL_UNIX_ADDRDIR=/var/run/mysqld/mysqld.sock \
-       -DMYSQLD_USER=mariadb \
        -DMYSQL_DATADIR=/var/lib/mysql \
        -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
        -DSKIP_TESTS=ON \
-       -DWITH_ASAN=OFF \
+       -DWITH_DEBUG=OFF \
        -DWITH_EMBEDDED_SERVER=OFF \
-       -DWITH_EXTRA_CHARSETS=complex \
        -DWITH_INNODB_BZIP2=OFF \
        -DWITH_INNODB_LZ4=OFF \
        -DWITH_INNODB_LZMA=ON \
        -DWITH_INNODB_LZO=OFF \
        -DWITH_INNODB_SNAPPY=OFF \
-       -DWITH_LIBEDIT=OFF \
-       -DWITH_LIBNUMA=NO \
+       -DWITH_JEMALLOC=OFF \
+       -DWITH_LIBARCHIVE=OFF \
        -DWITH_LIBWRAP=OFF \
-       -DWITH_LIBWSEP=OFF \
        -DWITH_MARIABACKUP=ON \
        -DWITH_PCRE=system \
-       -DWITH_READLINE=OFF \
        -DWITH_SAFEMALLOC=OFF \
        -DWITH_SSL=system \
        -DWITH_SYSTEMD=no \
        -DWITH_VALGRIND=OFF \
        -DWITH_ZLIB=system
 
-# Default-disable some modules
-CMAKE_OPTIONS += \
-       -DPLUGIN_CASSANDRA=NO \
-       -DPLUGIN_MROONGA=NO \
-       -DPLUGIN_OQGRAPH=NO \
-       -DPLUGIN_ROCKSDB=NO \
-       -DPLUGIN_TOKUDB=NO \
-       -DPLUGIN_AUTH_PAM=NO \
-       -DPLUGIN_AUTH_GSSAPI=NO \
-       -DPLUGIN_AUTH_GSSAPI_CLIENT=OFF \
-       -DPLUGIN_CRACKLIB_PASSWORD_CHECK=NO
-
 # Help MariaDB find the correct libiconv.
 # nls.mk sets it up so that with CONFIG_BUILD_NLS libiconv-full would be used,
 # otherwise libiconv-stub (independent of the selected libc). MariaDB needs a
@@ -395,6 +438,7 @@ CMAKE_OPTIONS += \
        -DICONV_LIBRARIES=$(ICONV_PREFIX)/lib/libiconv.$(if $(CONFIG_BUILD_NLS),so,a)
 
 CMAKE_OPTIONS += \
+       $(foreach p,$(MARIADB_LIB_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_lib$(PKG_NAME)-plugin-$(subst _,-,$(p))),DYNAMIC,OFF)) \
        $(foreach p,$(MARIADB_SERVER_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-$(subst _,-,$(p))),DYNAMIC,NO))
 
 # Set CMAKE_FIND_ROOT_PATH_MODE_INCLUDE and CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
@@ -409,10 +453,9 @@ CMAKE_HOST_OPTIONS += \
        -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH \
        -DCMAKE_INSTALL_RPATH="$(STAGING_DIR_HOSTPKG)/lib" \
        -DCMAKE_SKIP_RPATH=FALSE \
-       -DWITHOUT_SERVER=OFF \
-       -DWITHOUT_TOKUDB=1
+       -DWITHOUT_SERVER=OFF
 
-# Some helpers must be compiled for host in order to crosscompile mariadb for
+# Some helpers must be compiled for host in order to crosscompile MariaDB for
 # the target. They are then included by import_executables.cmake which is
 # generated during the build of the host helpers. It is not necessary to build
 # the whole host package, only the "import_executables" target.
@@ -422,6 +465,13 @@ CMAKE_HOST_OPTIONS += \
 
 CMAKE_OPTIONS += -DIMPORT_EXECUTABLES=$(STAGING_DIR_HOSTPKG)/share/mariadb/import_executables.cmake
 
+# Disable some engines/plugins here as well - decreases the number of cmake checks.
+define Host/Prepare
+       $(call Host/Prepare/Default)
+       $(foreach e,$(MARIADB_DISABLE_ENGINES),$(call Package/mariadb/disable/engine,$(HOST_BUILD_DIR),$(e));)
+       $(foreach p,$(MARIADB_DISABLE_PLUGINS),$(call Package/mariadb/disable/plugin,$(HOST_BUILD_DIR),$(p));)
+endef
+
 define Host/Compile
        $(call Host/Compile/Default,import_executables)
 endef
@@ -438,7 +488,7 @@ 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
+# 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 prevent the variable from being set.
 # libiconv-stub does not use this variable, so there is no harm in always doing
@@ -447,6 +497,8 @@ endef
 define Build/Prepare
        $(call Build/Prepare/Default)
        $(SED) '/ADD_DEFINITIONS(-DLIBICONV_PLUG)/d' $(PKG_BUILD_DIR)/libmariadb/libmariadb/CMakeLists.txt
+       $(foreach e,$(MARIADB_DISABLE_ENGINES),$(call Package/mariadb/disable/engine,$(PKG_BUILD_DIR),$(e));)
+       $(foreach p,$(MARIADB_DISABLE_PLUGINS),$(call Package/mariadb/disable/plugin,$(PKG_BUILD_DIR),$(p));)
 endef
 
 define Build/InstallDev
@@ -477,111 +529,106 @@ define Package/mariadb-client/install
        cd $(1)/usr/bin; $(LN) mysqlcheck mysqloptimize
 endef
 
+define Package/mariadb-client-base/install
+       $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
+       $(INSTALL_CONF) conf/50-client.cnf $(1)$(CONF_DIR)/conf.d
+       $(INSTALL_CONF) conf/50-mysql-clients.cnf $(1)$(CONF_DIR)/conf.d
+endef
+
 define Package/mariadb-client-extra/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(foreach b,$(MARIADB_CLIENT_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
 endef
 
-define Package/mariadb-extra-charsets/install
-       $(INSTALL_DIR) $(1)/usr/share/mysql/charsets
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/charsets/* $(1)/usr/share/mysql/charsets
+define Package/mariadb-common/install
+       $(INSTALL_DIR) $(1)$(CONF_DIR)
+       $(INSTALL_CONF) conf/my.cnf $(1)$(CONF_DIR)
 endef
 
 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
+endef
+
+define Package/mariadb-server-base/install
+       $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
+       $(INSTALL_DIR) $(1)$(SHARE_DIR)/charsets
+       $(INSTALL_DIR) $(1)$(SHARE_DIR)/english
+       $(INSTALL_DIR) $(1)/etc/config
        $(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
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/english/errmsg.sys $(1)/usr/share/mysql/english
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/fill_help_tables.sql $(1)/usr/share/mysql
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/maria_add_gis_sp_bootstrap.sql $(1)/usr/share/mysql
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/mysql_performance_tables.sql $(1)/usr/share/mysql
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/mysql_system_tables.sql $(1)/usr/share/mysql
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/mysql_system_tables_data.sql $(1)/usr/share/mysql
+       $(SED) '/^[a-z]/s/^/#/' $(PKG_INSTALL_DIR)$(SHARE_DIR)/wsrep.cnf
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)$(SHARE_DIR)/wsrep.cnf $(1)$(CONF_DIR)/conf.d/60-galera.cnf
+       $(INSTALL_CONF) conf/50-server.cnf $(1)$(CONF_DIR)/conf.d
+       $(INSTALL_CONF) files/mysqld.config $(1)/etc/config/mysqld
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/charsets/* $(1)$(SHARE_DIR)/charsets
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/english/errmsg.sys $(1)$(SHARE_DIR)/english
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/fill_help_tables.sql $(1)$(SHARE_DIR)
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/maria_add_gis_sp_bootstrap.sql $(1)$(SHARE_DIR)
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_performance_tables.sql $(1)$(SHARE_DIR)
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_system_tables.sql $(1)$(SHARE_DIR)
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_system_tables_data.sql $(1)$(SHARE_DIR)
 endef
 
 define Package/mariadb-server-extra/install
        $(INSTALL_DIR) $(1)/usr/bin
+       $(SED) 's,/bin/bash,/bin/sh,g' $(PKG_INSTALL_DIR)/usr/bin/wsrep_sst_*
        $(foreach b,$(MARIADB_SERVER_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
 endef
 
-define Package/mariadb-server/conffiles
-/etc/default/mysqld
-/etc/mysql/my.cnf
-$(PLUGIN_DIR)/daemon_example.ini
-endef
-
 define BuildPlugin
-  define Package/$(PKG_NAME)-server-plugin-$(subst _,-,$(1))
-    $$(call Package/mariadb/Default)
-    TITLE:=MariaDB database plugin
-    DEPENDS:=mariadb-server $(patsubst +%,+PACKAGE_$(PKG_NAME)-server-plugin-$(subst _,-,$(1)):%,$(2))
+  define Package/$(1)-plugin-$(subst _,-,$(2))
+    $(call Package/$(subst mariadb-server,mariadb,$(1))/Default)
+    TITLE:=$(1) plugin
+    DEPENDS:=$(1) $(patsubst +%,+PACKAGE_$(1)-plugin-$(subst _,-,$(2)):%,$(3))
   endef
-  define Package/$(PKG_NAME)-server-plugin-$(subst _,-,$(1))/description
-    $$(call Package/mariadb/description/Default)
+  define Package/$(1)-plugin-$(subst _,-,$(2))/description
+    $(call Package/mariadb/description/Default)
 
-This package provides the $(1) plugin.
+This package provides the $(2) plugin.
 
   endef
-  define Package/$(PKG_NAME)-server-plugin-$(subst _,-,$(1))/install
-       $(INSTALL_DIR) $$(1)$(PLUGIN_DIR)
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/$(1).so \
-               $$(1)$(PLUGIN_DIR)
+  define Package/$(1)-plugin-$(subst _,-,$(2))/install
+         $(INSTALL_DIR) $$(1)$(PLUGIN_DIR)
+         $(call Package/mariadb/install/plugin,$$(1),$(2))
   endef
-  $$(eval $$(call BuildPackage,$(PKG_NAME)-server-plugin-$(subst _,-,$(1))))
+  $$(eval $$(call BuildPackage,$(1)-plugin-$(subst _,-,$(2))))
 endef
 
 $(eval $(call HostBuild))
 $(eval $(call BuildPackage,libmariadb))
 $(eval $(call BuildPackage,mariadb-client))
+$(eval $(call BuildPackage,mariadb-client-base))
 $(eval $(call BuildPackage,mariadb-client-extra))
-$(eval $(call BuildPackage,mariadb-extra-charsets))
+$(eval $(call BuildPackage,mariadb-common))
 $(eval $(call BuildPackage,mariadb-server))
+$(eval $(call BuildPackage,mariadb-server-base))
 $(eval $(call BuildPackage,mariadb-server-extra))
 
-$(eval $(call BuildPlugin,adt_null,))
-$(eval $(call BuildPlugin,auth_0x0100,))
-$(eval $(call BuildPlugin,auth_ed25519,))
-$(eval $(call BuildPlugin,auth_socket,))
-$(eval $(call BuildPlugin,auth_test_plugin,))
-$(eval $(call BuildPlugin,client_ed25519,))
-$(eval $(call BuildPlugin,debug_key_management,))
-$(eval $(call BuildPlugin,dialog_examples,))
-$(eval $(call BuildPlugin,disks,))
-$(eval $(call BuildPlugin,example_key_management,))
-$(eval $(call BuildPlugin,feedback,))
-$(eval $(call BuildPlugin,file_key_management,))
-$(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_sequence,))
-$(eval $(call BuildPlugin,ha_sphinx,))
-$(eval $(call BuildPlugin,ha_spider,))
-$(eval $(call BuildPlugin,ha_test_sql_discovery,))
-$(eval $(call BuildPlugin,handlersocket,))
-$(eval $(call BuildPlugin,libdaemon_example,))
-$(eval $(call BuildPlugin,locales,))
-$(eval $(call BuildPlugin,metadata_lock_info,))
-$(eval $(call BuildPlugin,mypluglib,))
-$(eval $(call BuildPlugin,qa_auth_client,))
-$(eval $(call BuildPlugin,qa_auth_interface,))
-$(eval $(call BuildPlugin,qa_auth_server,))
-$(eval $(call BuildPlugin,query_cache_info,))
-$(eval $(call BuildPlugin,query_response_time,))
-$(eval $(call BuildPlugin,semisync_master,))
-$(eval $(call BuildPlugin,semisync_slave,))
-$(eval $(call BuildPlugin,server_audit,))
-$(eval $(call BuildPlugin,simple_password_check,))
-$(eval $(call BuildPlugin,sql_errlog,))
-$(eval $(call BuildPlugin,wsrep_info,))
+$(eval $(call BuildPlugin,libmariadb,auth_gssapi_client,+krb5-libs))
+$(eval $(call BuildPlugin,mariadb-server,auth_ed25519,))
+$(eval $(call BuildPlugin,mariadb-server,auth_gssapi,+krb5-libs))
+$(eval $(call BuildPlugin,mariadb-server,auth_pam,+libpam))
+$(eval $(call BuildPlugin,mariadb-server,client_ed25519,))
+$(eval $(call BuildPlugin,mariadb-server,disks,))
+$(eval $(call BuildPlugin,mariadb-server,feedback,))
+$(eval $(call BuildPlugin,mariadb-server,file_key_management,))
+$(eval $(call BuildPlugin,mariadb-server,ha_archive,))
+$(eval $(call BuildPlugin,mariadb-server,ha_blackhole,))
+$(eval $(call BuildPlugin,mariadb-server,ha_connect,+libxml2))
+$(eval $(call BuildPlugin,mariadb-server,ha_federated,))
+$(eval $(call BuildPlugin,mariadb-server,ha_federatedx,))
+$(eval $(call BuildPlugin,mariadb-server,ha_sphinx,))
+$(eval $(call BuildPlugin,mariadb-server,ha_spider,))
+$(eval $(call BuildPlugin,mariadb-server,handlersocket,))
+$(eval $(call BuildPlugin,mariadb-server,locales,))
+$(eval $(call BuildPlugin,mariadb-server,metadata_lock_info,))
+$(eval $(call BuildPlugin,mariadb-server,query_cache_info,))
+$(eval $(call BuildPlugin,mariadb-server,query_response_time,))
+$(eval $(call BuildPlugin,mariadb-server,semisync_master,))
+$(eval $(call BuildPlugin,mariadb-server,semisync_slave,))
+$(eval $(call BuildPlugin,mariadb-server,server_audit,))
+$(eval $(call BuildPlugin,mariadb-server,simple_password_check,))
+$(eval $(call BuildPlugin,mariadb-server,sql_errlog,))
+$(eval $(call BuildPlugin,mariadb-server,wsrep_info,))
+
diff --git a/utils/mariadb/conf/50-client.cnf b/utils/mariadb/conf/50-client.cnf
new file mode 100644 (file)
index 0000000..de2b89f
--- /dev/null
@@ -0,0 +1,21 @@
+#
+# This group is read by the client library
+# Use it for options that affect all clients, but not the server
+#
+
+[client]
+# Default is Latin1, if you need UTF-8 set this (also in server section)
+default-character-set = utf8mb4
+
+# Example of client certificate usage
+# ssl-cert=/etc/mysql/client-cert.pem
+# ssl-key=/etc/mysql/client-key.pem
+#
+# Allow only TLS encrypted connections
+# ssl-verify-server-cert=on
+
+# This group is *never* read by mysql client library
+# If you use the same .cnf file for MySQL and MariaDB, use it for
+# MariaDB-only client options
+[client-mariadb]
+
diff --git a/utils/mariadb/conf/50-mysql-clients.cnf b/utils/mariadb/conf/50-mysql-clients.cnf
new file mode 100644 (file)
index 0000000..b762a76
--- /dev/null
@@ -0,0 +1,25 @@
+#
+# These groups are read by MariaDB command-line tools
+# Use it for options that affect only one utility
+#
+
+[mysql]
+# Default is Latin1, if you need UTF-8 set this (also in server section)
+default-character-set = utf8mb4
+
+[mysql_upgrade]
+
+[mysqladmin]
+
+[mysqlbinlog]
+
+[mysqlcheck]
+
+[mysqldump]
+
+[mysqlimport]
+
+[mysqlshow]
+
+[mysqlslap]
+
diff --git a/utils/mariadb/conf/50-server.cnf b/utils/mariadb/conf/50-server.cnf
new file mode 100644 (file)
index 0000000..d478d1f
--- /dev/null
@@ -0,0 +1,136 @@
+#
+# These groups are read by MariaDB server.
+# Use it for options that only the server (but not clients) should see
+#
+# See the examples of server my.cnf files in /usr/share/mysql/
+#
+
+# this is read by the standalone daemon and embedded servers
+[server]
+
+# this is only for the mysqld standalone daemon
+[mysqld]
+
+#
+# * Basic Settings
+#
+user           = mariadb
+pid-file       = /var/run/mysqld/mysqld.pid
+socket         = /var/run/mysqld/mysqld.sock
+port           = 3306
+basedir                = /usr
+# Don't put this on flash memory
+# Figure out where you are going to put the databases and run
+# mysql_install_db --force
+datadir                = /mnt/data/mysql
+# tmpdir should also not go on flash memory
+tmpdir         = /tmp
+lc-messages-dir        = /usr/share/mariadb
+
+skip-external-locking
+
+# Instead of skip-networking the default is now to listen only on
+# localhost which is more compatible and is not less secure.
+bind-address   = 127.0.0.1
+
+#
+# * Fine Tuning
+#
+key_buffer_size                = 16M
+max_allowed_packet     = 16M
+thread_stack           = 192K
+thread_cache_size      = 8
+# This replaces the startup script and checks MyISAM tables if needed
+# the first time they are touched
+myisam_recover_options = BACKUP
+#max_connections       = 100
+#table_cache           = 64
+#thread_concurrency    = 10
+
+#
+# * Query Cache Configuration
+#
+query_cache_limit      = 1M
+query_cache_size       = 16M
+
+#
+# * Logging and Replication
+#
+# Both location gets rotated by the cronjob.
+# Be aware that this log type is a performance killer.
+# As of 5.1 you can enable the log at runtime!
+#general_log_file      = /var/log/mysql/mysql.log
+#general_log           = 1
+#
+# Error log - should be very few entries.
+# Note that if unset the errors will go to stdout and can be seen in syslog
+# (check "logread")
+#
+#log_error = /var/log/mysql/error.log
+#
+# Enable the slow query log to see queries with especially long duration
+#slow_query_log_file   = /var/log/mysql/mariadb-slow.log
+#long_query_time       = 10
+#log_slow_rate_limit   = 1000
+#log_slow_verbosity    = query_plan
+#
+#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
+expire_logs_days       = 10
+max_binlog_size                = 100M
+#binlog_do_db          = include_database_name
+#binlog_ignore_db      = exclude_database_name
+
+#
+# * InnoDB
+#
+# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
+# Read the manual for more InnoDB related options. There are many!
+
+#
+# * Security Features
+#
+# Read the manual, too, if you want chroot!
+# chroot = /var/lib/mysql/
+#
+# For generating SSL certificates you can use for example the GUI tool "tinyca".
+#
+# ssl-ca=/etc/mysql/cacert.pem
+# ssl-cert=/etc/mysql/server-cert.pem
+# ssl-key=/etc/mysql/server-key.pem
+#
+# Accept only connections using the latest and most secure TLS protocol version.
+# ..when MariaDB is compiled with OpenSSL:
+# ssl-cipher=TLSv1.2
+
+#
+# * Character sets
+#
+# MySQL/MariaDB default is Latin1, but in OpenWrt we rather default to the full
+# utf8 4-byte character set. See also client.cnf
+#
+# Note: In OpenWrt until mariadb 10.2.19-2 the baked-in defaults were
+# "DEFAULT_CHARSET=utf8" and "DEFAULT_COLLATION=utf8_general_ci". As MariaDB's
+# utf8 (supports three bytes per character) is not really UTF-8 (which needs up
+# to four bytes per character) this was changed. Now the baked in-defaults are
+# the upstream defaults (Latin1), but in the default configuration (like in the
+# file you are currently reading) utf8mb4 is set, which is real UTF-8.
+#
+# Of course you are free to change this, either here or in a configuration file
+# of your own which is read after this .cnf file, see my.cnf in parent folder
+# (files are read in alphabetical order).
+character-set-server  = utf8mb4
+collation-server      = utf8mb4_general_ci
+
+#
+# * Unix socket authentication plugin is built-in
+#
+# Needed so the root database user can authenticate without a password but
+# only when running as the unix root user.
+#
+# Also available for other users if required.
+# See https://mariadb.com/kb/en/unix_socket-authentication-plugin/
+
index effa88a7717cc7d8b22efd655a4426ada33f5a1e..7583c7cae0ea03a52187fe497cfc9873cfae6571 100644 (file)
@@ -1,54 +1,22 @@
-[client]
-port           = 3306
-socket         = /var/run/mysqld/mysqld.sock
-
-[mysqld]
-user           = mariadb
-socket         = /var/run/mysqld/mysqld.sock
-port           = 3306
-basedir                = /usr
-
-############ Don't put this on the NAND #############
-# Figure out where you are going to put the databases
-# And run mysql_install_db --force
-datadir                = /mnt/data/mysql/
-
-######### This should also not go on the NAND #######
-tmpdir         = /mnt/data/tmp/
-
-skip-external-locking
-
-bind-address           = 127.0.0.1
-
-# Fine Tuning
-key_buffer_size                = 16M
-max_allowed_packet     = 16M
-thread_stack           = 192K
-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
-#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
-#expire_logs_days      = 10
-#max_binlog_size       = 100M
-#binlog_do_db          = include_database_name
-#binlog_ignore_db      = include_database_name
-
-
-[mysqldump]
-quick
-quote-names
-max_allowed_packet     = 16M
-
-[mysql]
-#no-auto-rehash        # faster start of mysql but no tab completition
-
-[isamchk]
-key_buffer             = 16M
-
+# The MariaDB configuration file
+#
+# The MariaDB/MySQL tools read configuration files in the following order:
+# 1. "/etc/mysql/my.cnf" (this file) to set global defaults,
+# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
+# 3. "~/.my.cnf" to set user-specific options.
+#
+# If the same option is defined multiple times, the last one will apply.
+#
+# One can use all long options that the program supports.
+# Run program with --help to get a list of available options and with
+# --print-defaults to see which it would actually understand and use.
+
+#
+# This group is read both both by the client and the server
+# use it for options that affect everything
+#
+[client-server]
+
+# Import all .cnf files from configuration directory
+!includedir /etc/mysql/conf.d/
 
diff --git a/utils/mariadb/conf/mysqld.default b/utils/mariadb/conf/mysqld.default
deleted file mode 100644 (file)
index fe9c698..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# 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=""
diff --git a/utils/mariadb/files/mysqld.config b/utils/mariadb/files/mysqld.config
new file mode 100644 (file)
index 0000000..1bfcde6
--- /dev/null
@@ -0,0 +1,7 @@
+
+config mysqld 'general'
+       option enabled '0'
+       option log_stderr '1'
+       option log_stdout '1'
+       option options ''
+
index abc99fc7a98bfa7c8775b7cc8ac47c4e973d0576..e55cfce706efa3dac748dc4b106450868429dce9 100644 (file)
@@ -8,46 +8,94 @@ USE_PROCD=1
 
 #PROCD_DEBUG=1
 
-MYSQLD=mysqld
+NAME=mysqld
 
-DEFAULT=/etc/default/$MYSQLD
-LOGGER="/usr/bin/logger -p user.err -s -t $MYSQLD"
-PROG=/usr/bin/$MYSQLD
+LOGGER="/usr/bin/logger -p user.err -s -t $NAME"
+COMMAND=/usr/bin/$NAME
 
-unset MY_ARGS MY_GROUP MY_USER
-
-[ -f $DEFAULT ] && . $DEFAULT
-
-my_user="${MY_USER:-mariadb}"
-my_group="${MY_GROUP:-mariadb}"
+mysqld_get_param() {
+       $COMMAND --print-defaults \
+               | tr " " "\n" \
+               | grep -- "--$1" \
+               | tail -n 1 \
+               | cut -d= -f2
+}
 
 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 "datadir '$datadir' in '$conf' does not exist"
-               return 1
-       }
-
-       [ -f "$datadir/mysql/tables_priv.MYD" ] || {
+       local conf=/etc/mysql/my.cnf
+       local dir
+       local user=mariadb
+
+       local datadir
+       local logdir=/var/log/mysql
+       local rundir=/var/run/mysqld
+       local tmpdir
+
+       local enabled
+       local log_stderr
+       local log_stdout
+       local options
+
+       if [ ! -x $COMMAND ]; then
+               $LOGGER $COMMAND is missing
+               exit 1
+       fi
+
+       if [ ! -r $conf ]; then
+               $LOGGER $conf cannot be read
+               exit 1
+       fi
+
+       config_load $NAME
+
+       config_get_bool enabled general enabled 0
+       if [ $enabled -eq 0 ]; then
+               $LOGGER service not enabled in /etc/config/$NAME
+               exit 1
+       fi
+
+       config_get_bool log_stderr general log_stderr 1
+       config_get_bool log_stdout general log_stdout 1
+
+       config_get options general options
+
+       datadir=$(mysqld_get_param datadir)
+       tmpdir=$(mysqld_get_param tmpdir)
+
+       if [ -z "$datadir" ]; then
+               $LOGGER datadir is not set
+               exit 1
+       fi
+
+       if [ -z "$tmpdir" ]; then
+               $LOGGER tmpdir is not set.
+               exit 1
+       fi
+
+       [ -e "$datadir" ] || mkdir -p "$datadir"
+
+       for dir in "$logdir" "$rundir" "$tmpdir"; do
+               if [ ! -e "$dir" ]; then
+                       mkdir -p "$dir"
+                       chown $user "$dir"
+               fi
+       done
+
+       if [ ! -f "$datadir/mysql/tables_priv.MYD" ]; then
                $LOGGER "cannot detect privileges table, you might need to"
                $LOGGER "run 'mysql_install_db --force' to initialize the system tables"
-               return 1
-       }
-
-       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
+               exit 1
+       fi
 
        procd_open_instance
 
-       procd_set_param command $PROG $MY_ARGS
-       procd_set_param pidfile /var/run/mysqld.pid
+       procd_set_param command $COMMAND $options
+
        # forward stderr to logd
-       procd_set_param stderr 1
+       procd_set_param stderr $log_stderr
+       # same for stdout
+       procd_set_param stdout $log_stdout
 
        procd_close_instance
 }
+
diff --git a/utils/mariadb/patches/180-libedit.patch b/utils/mariadb/patches/180-libedit.patch
new file mode 100644 (file)
index 0000000..5227928
--- /dev/null
@@ -0,0 +1,105 @@
+commit 2220f7458ef90829eacc457167a28aeba75ca1bc
+Author: Sebastian Kemper <sebastian_ml@gmx.net>
+Date:   Sun Dec 9 21:19:24 2018 +0100
+
+    cmake: support new libedit interface
+    
+    libedit changed it's interface a while ago. MariaDB's cmake file doesn't
+    recognize the new interface, the compile test fails:
+    
+    /mariadb-10.2.19/CMakeFiles/CMakeTmp/src.cxx: In function 'int main(int, char**)':
+    /mariadb-10.2.19/CMakeFiles/CMakeTmp/src.cxx:6:47: error: invalid conversion from 'char*' to 'int' [-fpermissive]
+      int res= (*rl_completion_entry_function)(0,0);
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
+    
+    Fix this by adding a detection for the new interface as well.
+    
+    In client/mysql.cc the ifdefs for the new readline interface are
+    extended to also check for the new libedit interface. They work the same
+    way.
+    
+    Run-tested on a MIPS machine.
+    
+    Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
+
+--- a/client/mysql.cc
++++ b/client/mysql.cc
+@@ -2577,7 +2577,7 @@ C_MODE_END
+   if not.
+ */
+-#if defined(USE_NEW_READLINE_INTERFACE) 
++#if defined(USE_NEW_READLINE_INTERFACE) || defined(USE_NEW_LIBEDIT_INTERFACE)
+ static int fake_magic_space(int, int);
+ extern "C" char *no_completion(const char*,int)
+ #elif defined(USE_LIBEDIT_INTERFACE)
+@@ -2659,7 +2659,7 @@ static int not_in_history(const char *li
+ }
+-#if defined(USE_NEW_READLINE_INTERFACE)
++#if defined(USE_NEW_READLINE_INTERFACE) || defined(USE_NEW_LIBEDIT_INTERFACE)
+ static int fake_magic_space(int, int)
+ #else
+ static int fake_magic_space(const char *, int)
+@@ -2676,7 +2676,7 @@ static void initialize_readline (char *n
+   rl_readline_name = name;
+   /* Tell the completer that we want a crack first. */
+-#if defined(USE_NEW_READLINE_INTERFACE)
++#if defined(USE_NEW_READLINE_INTERFACE) || defined(USE_NEW_LIBEDIT_INTERFACE)
+   rl_attempted_completion_function= (rl_completion_func_t*)&new_mysql_completion;
+   rl_completion_entry_function= (rl_compentry_func_t*)&no_completion;
+@@ -2706,7 +2706,7 @@ static char **new_mysql_completion(const
+                                    int end __attribute__((unused)))
+ {
+   if (!status.batch && !quick)
+-#if defined(USE_NEW_READLINE_INTERFACE)
++#if defined(USE_NEW_READLINE_INTERFACE) || defined(USE_NEW_LIBEDIT_INTERFACE)
+     return rl_completion_matches(text, new_command_generator);
+ #else
+     return completion_matches((char *)text, (CPFunction *)new_command_generator);
+--- a/cmake/readline.cmake
++++ b/cmake/readline.cmake
+@@ -160,8 +160,20 @@ MACRO (MYSQL_FIND_SYSTEM_LIBEDIT)
+       int res= (*rl_completion_entry_function)(0,0);
+       completion_matches(0,0);
+     }"
+-    LIBEDIT_INTERFACE)
+-    SET(USE_LIBEDIT_INTERFACE ${LIBEDIT_INTERFACE})
++    LIBEDIT_HAVE_COMPLETION_INT)
++
++    CHECK_CXX_SOURCE_COMPILES("
++    #include <stdio.h>
++    #include <readline.h>
++    int main(int argc, char **argv)
++    {
++      char res= *(*rl_completion_entry_function)(0,0);
++      completion_matches(0,0);
++    }"
++    LIBEDIT_HAVE_COMPLETION_CHAR)
++    IF(LIBEDIT_HAVE_COMPLETION_INT OR LIBEDIT_HAVE_COMPLETION_CHAR)
++      SET(USE_LIBEDIT_INTERFACE 1)
++    ENDIF()
+   ENDIF()
+ ENDMACRO()
+@@ -187,6 +199,7 @@ MACRO (MYSQL_CHECK_READLINE)
+         IF(USE_LIBEDIT_INTERFACE)
+           SET(MY_READLINE_INCLUDE_DIR ${LIBEDIT_INCLUDE_DIR})
+           SET(MY_READLINE_LIBRARY ${LIBEDIT_LIBRARY} ${CURSES_LIBRARY})
++          SET(USE_NEW_LIBEDIT_INTERFACE ${LIBEDIT_HAVE_COMPLETION_CHAR})
+         ELSE()
+           MYSQL_USE_BUNDLED_READLINE()
+         ENDIF()
+--- a/config.h.cmake
++++ b/config.h.cmake
+@@ -113,6 +113,7 @@
+ /* Readline */
+ #cmakedefine HAVE_HIST_ENTRY 1
+ #cmakedefine USE_LIBEDIT_INTERFACE 1
++#cmakedefine USE_NEW_LIBEDIT_INTERFACE 1
+ #cmakedefine USE_NEW_READLINE_INTERFACE 1
+ #cmakedefine FIONREAD_IN_SYS_IOCTL 1
index 659668958604e053bcb1b8089babf818dda507f6..f63ec7443ea2ed4a7b25b769cef80fc9d834c563 100644 (file)
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=prometheus-node-exporter-lua
 PKG_VERSION:=2018.07.23
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
 PKG_LICENSE:=Apache-2.0
@@ -82,6 +82,12 @@ define Package/prometheus-node-exporter-lua-openwrt
   DEPENDS:=prometheus-node-exporter-lua
 endef
 
+define Package/prometheus-node-exporter-lua-ltq-dsl
+  $(call Package/prometheus-node-exporter-lua/Default)
+  TITLE+= (lantiq dsl collector)
+  DEPENDS:=prometheus-node-exporter-lua @(PACKAGE_ltq-adsl-app||PACKAGE_ltq-vdsl-app)
+endef
+
 Build/Compile=
 
 define Package/prometheus-node-exporter-lua/install
@@ -142,6 +148,11 @@ define Package/prometheus-node-exporter-lua-openwrt/install
        $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/openwrt.lua $(1)/usr/lib/lua/prometheus-collectors/
 endef
 
+define Package/prometheus-node-exporter-lua-ltq-dsl/install
+       $(INSTALL_DIR) $(1)/usr/lib/lua/prometheus-collectors
+       $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/ltq-dsl.lua $(1)/usr/lib/lua/prometheus-collectors/
+endef
+
 $(eval $(call BuildPackage,prometheus-node-exporter-lua))
 $(eval $(call BuildPackage,prometheus-node-exporter-lua-nat_traffic))
 $(eval $(call BuildPackage,prometheus-node-exporter-lua-netstat))
@@ -151,3 +162,4 @@ $(eval $(call BuildPackage,prometheus-node-exporter-lua-bmx6))
 $(eval $(call BuildPackage,prometheus-node-exporter-lua-bmx7))
 $(eval $(call BuildPackage,prometheus-node-exporter-lua-textfile))
 $(eval $(call BuildPackage,prometheus-node-exporter-lua-openwrt))
+$(eval $(call BuildPackage,prometheus-node-exporter-lua-ltq-dsl))
diff --git a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/ltq-dsl.lua b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/ltq-dsl.lua
new file mode 100644 (file)
index 0000000..39b65fb
--- /dev/null
@@ -0,0 +1,100 @@
+local function scrape()
+  local fd = io.popen("/etc/init.d/dsl_control lucistat")
+  local dsl_func = loadstring(fd:read("*a"))
+  fd:close()
+
+  if not dsl_func then
+    return
+  end
+
+  local dsl_stat = dsl_func()
+
+  local dsl_line_attenuation = metric("dsl_line_attenuation_db", "gauge")
+  local dsl_signal_attenuation = metric("dsl_signal_attenuation_db", "gauge")
+  local dsl_snr = metric("dsl_signal_to_noise_margin_db", "gauge")
+  local dsl_aggregated_transmit_power = metric("dsl_aggregated_transmit_power_db", "gauge")
+  local dsl_latency = metric("dsl_latency_seconds", "gauge")
+  local dsl_datarate = metric("dsl_datarate", "gauge")
+  local dsl_max_datarate = metric("dsl_max_datarate", "gauge")
+  local dsl_error_seconds_total = metric("dsl_error_seconds_total", "counter")
+  local dsl_errors_total = metric("dsl_errors_total", "counter")
+
+  -- dsl hardware/firmware information
+  metric("dsl_info", "gauge", {
+    atuc_vendor_id = dsl_stat.atuc_vendor_id,
+    atuc_system_vendor_id = dsl_stat.atuc_system_vendor_id,
+    chipset = dsl_stat.chipset,
+    firmware_version = dsl_stat.firmware_version,
+    api_version = dsl_stat.api_version,
+  }, 1)
+
+  -- dsl line settings information
+  metric("dsl_line_info", "gauge", {
+    xtse1   = dsl_stat.xtse1,
+    xtse2   = dsl_stat.xtse2,
+    xtse3   = dsl_stat.xtse3,
+    xtse4   = dsl_stat.xtse4,
+    xtse5   = dsl_stat.xtse5,
+    xtse6   = dsl_stat.xtse6,
+    xtse7   = dsl_stat.xtse7,
+    xtse8   = dsl_stat.xtse8,
+    annex   = dsl_stat.annex_s,
+    mode    = dsl_stat.line_mode_s,
+    profile = dsl_stat.profile_s,
+  }, 1)
+
+  -- dsl up is 1 if the line is up and running
+  local dsl_up
+  if dsl_stat.line_state == "UP" then
+    dsl_up = 1
+  else
+    dsl_up = 0
+  end
+
+  metric("dsl_up", "gauge", {
+    detail = dsl_stat.line_state_detail,
+  }, dsl_up)
+
+  -- dsl line status data
+  metric("dsl_uptime_seconds", "gauge", {}, dsl_stat.line_uptime)
+
+  -- dsl db measurements
+  dsl_line_attenuation({direction="down"}, dsl_stat.line_attenuation_down)
+  dsl_line_attenuation({direction="up"}, dsl_stat.line_attenuation_up)
+  dsl_signal_attenuation({direction="down"}, dsl_stat.signal_attenuation_down)
+  dsl_signal_attenuation({direction="up"}, dsl_stat.signal_attenuation_up)
+  dsl_snr({direction="down"}, dsl_stat.noise_margin_down)
+  dsl_snr({direction="up"}, dsl_stat.noise_margin_up)
+  dsl_aggregated_transmit_power({direction="down"}, dsl_stat.actatp_down)
+  dsl_aggregated_transmit_power({direction="up"}, dsl_stat.actatp_up)
+
+  -- dsl performance data
+  if dsl_stat.latency_down ~= nil then
+    dsl_latency({direction="down"}, dsl_stat.latency_down / 1000000)
+    dsl_latency({direction="up"}, dsl_stat.latency_up / 1000000)
+  end
+  dsl_datarate({direction="down"}, dsl_stat.data_rate_down)
+  dsl_datarate({direction="up"}, dsl_stat.data_rate_up)
+  dsl_max_datarate({direction="down"}, dsl_stat.max_data_rate_down)
+  dsl_max_datarate({direction="up"}, dsl_stat.max_data_rate_up)
+
+  -- dsl errors
+  dsl_error_seconds_total({err="forward error correction",loc="near"}, dsl_stat.errors_fec_near)
+  dsl_error_seconds_total({err="forward error correction",loc="far"}, dsl_stat.errors_fec_far)
+  dsl_error_seconds_total({err="errored",loc="near"}, dsl_stat.errors_es_near)
+  dsl_error_seconds_total({err="errored",loc="far"}, dsl_stat.errors_es_near)
+  dsl_error_seconds_total({err="severely errored",loc="near"}, dsl_stat.errors_ses_near)
+  dsl_error_seconds_total({err="severely errored",loc="near"}, dsl_stat.errors_ses_near)
+  dsl_error_seconds_total({err="loss of signal",loc="near"}, dsl_stat.errors_loss_near)
+  dsl_error_seconds_total({err="loss of signal",loc="far"}, dsl_stat.errors_loss_far)
+  dsl_error_seconds_total({err="unavailable",loc="near"}, dsl_stat.errors_uas_near)
+  dsl_error_seconds_total({err="unavailable",loc="far"}, dsl_stat.errors_uas_far)
+  dsl_errors_total({err="header error code error",loc="near"}, dsl_stat.errors_hec_near)
+  dsl_errors_total({err="header error code error",loc="far"}, dsl_stat.errors_hec_far)
+  dsl_errors_total({err="non pre-emptive crc error",loc="near"}, dsl_stat.errors_crc_p_near)
+  dsl_errors_total({err="non pre-emptive crc error",loc="far"}, dsl_stat.errors_crc_p_far)
+  dsl_errors_total({err="pre-emptive crc error",loc="near"}, dsl_stat.errors_crcp_p_near)
+  dsl_errors_total({err="pre-emptive crc error",loc="far"}, dsl_stat.errors_crcp_p_far)
+end
+
+return { scrape = scrape }
index 8437b2042a4c6bf520679ea1d1fd2a413d02a697..842cb4b5f52a083507bc330ca8adb35037d90368 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=prometheus
-PKG_VERSION:=2.3.2
+PKG_VERSION:=2.6.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/prometheus/prometheus/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=008282497e2e85de6fb17a698dfdae4a942026f623d8a9d45b911a765442cb58
+PKG_HASH:=e0d3e77e45466fd055726268354a02834968a3275791be6cbd17513ec7860c1d
 
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
index 7c7378c2d3dd28a23711adfcaec43d49c07f9551..7348812fe82eda51d320bc6bda42d9698d9f4015 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pv
-PKG_VERSION:=1.5.3
+PKG_VERSION:=1.6.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://www.ivarch.com/programs/sources/
-PKG_HASH:=76f3999b1c3b3027163dce6ef667cdf8dafb75218ee25e54a03bfe590478f90e
+PKG_SOURCE_URL:=https://www.ivarch.com/programs/sources
+PKG_HASH:=608ef935f7a377e1439c181c4fc188d247da10d51a19ef79bcdee5043b0973f1
 PKG_LICENSE:=Artistic-2.0
 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
 
@@ -26,7 +26,7 @@ define Package/pv
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=Shell pipeline element to meter data passing through
-  URL:=http://www.ivarch.com/programs/pv.shtml
+  URL:=https://www.ivarch.com/programs/pv.shtml
 endef
 
 define Package/pv/description
index 1a540b25f9607928feee4497ddb477ca773183f8..681e3cadb846631e93063ce748d3b310fbe5fb06 100644 (file)
@@ -9,10 +9,10 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qemu
-PKG_VERSION:=3.0.0
+PKG_VERSION:=3.1.0
 PKG_RELEASE:=1
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=8d7af64fe8bd5ea5c3bdf17131a8b858491bcce1ee3839425a6d91fb821b5713
+PKG_HASH:=6a0508df079a0a33c2487ca936a56c12122f105b8a96a44374704bef6c69abfc
 PKG_SOURCE_URL:=http://download.qemu.org/
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=LICENSE tcg/LICENSE
index b34cef6b45c8313c8cce728a48b0de30e2388c8a..291839b115e3f387d05444f7673470d9c7efd62c 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rtty
-PKG_VERSION:=6.3.1
+PKG_VERSION:=6.4.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_SOURCE_URL=https://codeload.github.com/zhaojh329/rtty/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=1dd7852cd5a3615134dc1c6266157072652592bda847b44cc747ccfcaa27ce2f
+PKG_HASH:=9f3d792115f268f659c8d3e009591c5e92e2527427623db961f714c59fabe5fb
 CMAKE_INSTALL:=1
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
index 3f159b328f66843429a64ebc3d924fc387cdce81..a92083454603f6c81b3cf9199ab85f9152c2d749 100644 (file)
@@ -8,16 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tio
-PKG_VERSION:=1.31
+PKG_VERSION:=1.32
 PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/tio/tio/releases/download/v$(PKG_VERSION)
+PKG_HASH:=a8f5ed6994cacb96780baa416b19e5a6d7d67e8c162a8ea4fd9eccd64984ae44
+
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
 
-PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/releases/download/v$(PKG_VERSION)/
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=4e72825914dac77c4587c0772accbd7a1292d5c5895bd49ad1477707b3203e42
-
 PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk