Merge pull request #8981 from ja-pa/yara-3.10.0
authorRosen Penev <rosenp@gmail.com>
Fri, 17 May 2019 23:40:52 +0000 (16:40 -0700)
committerGitHub <noreply@github.com>
Fri, 17 May 2019 23:40:52 +0000 (16:40 -0700)
yara: update to version 3.10.0

207 files changed:
lang/erlang/Makefile
lang/erlang/patches/010-openssl-deprecated.patch [new file with mode: 0644]
lang/erlang/patches/010-openssl-engine.patch [deleted file]
lang/golang/golang-version.mk
lang/golang/golang/Makefile
lang/luafilesystem/Makefile
lang/node-hid/Makefile
lang/node-homebridge/Makefile
lang/node-serialport/Makefile
lang/node/Makefile
lang/node/patches/006-mips64_support.patch [new file with mode: 0644]
lang/python/README.md
lang/python/Werkzeug/Makefile
lang/python/django-simple-captcha/Makefile
lang/python/python-boto3/Makefile [new file with mode: 0644]
lang/python/python-defusedxml/Makefile [new file with mode: 0644]
lang/python/python-packages/Makefile
lang/python/python-pyasn1-modules/Makefile
lang/python/python-requests/Makefile
lang/python/python-urllib3/Makefile
lang/python/python-zeroconf/Makefile
lang/python/python3-packages/Makefile [new file with mode: 0644]
lang/python/python3-packages/README.md [new file with mode: 0644]
libs/apr/Makefile
libs/apr/patches/201-upgrade-and-fix-1.5.1.patch
libs/boost/Makefile
libs/boost/patches/100-fix-apply_visitor-on-lvalue-variant.patch [new file with mode: 0644]
libs/boost/patches/uclibc-ng-2.patch [new file with mode: 0644]
libs/botan/Makefile
libs/faad2/Makefile
libs/fbthrift/Makefile [new file with mode: 0644]
libs/getdns/Makefile
libs/icu/Makefile
libs/icu/patches/020-uClibc-ng.patch [new file with mode: 0644]
libs/libartnet/Makefile
libs/libartnet/patches/002-gcc7.patch
libs/libevhtp/Makefile
libs/libevhtp/patches/020-openssl-1.1-compatibility.patch
libs/libevhtp/patches/021-openssl-thread.patch
libs/libevhtp/patches/030-uclibc.patch [new file with mode: 0644]
libs/libevhtp/patches/040-oniguruma.patch [new file with mode: 0644]
libs/libfizz/Makefile [new file with mode: 0644]
libs/libfolly/Makefile [new file with mode: 0644]
libs/libfolly/patches/100-cmake-fix-regex-match-path.patch [new file with mode: 0644]
libs/libfolly/patches/101-remove-undefined-dcheck.patch [new file with mode: 0644]
libs/libfolly/patches/102-uclibc-patches.patch [new file with mode: 0644]
libs/libfolly/patches/103-openssl-compatibility.patch [new file with mode: 0644]
libs/libfstrm/Makefile [new file with mode: 0644]
libs/libftdi/Makefile
libs/libftdi1/Makefile
libs/libimobiledevice/Makefile
libs/libimobiledevice/patches/010-openssl-deprecated.patch [new file with mode: 0644]
libs/libmraa/Makefile
libs/libmstch/Makefile [new file with mode: 0644]
libs/libndpi/Makefile
libs/libp11/Makefile
libs/libp11/patches/001-fix-install.patch
libs/librsocket-cpp/Makefile [new file with mode: 0644]
libs/librsocket-cpp/patches/100-fix-momit-leaf-frame-pointer-error.patch [new file with mode: 0644]
libs/librsocket-cpp/patches/101-do-not-use-gold.patch [new file with mode: 0644]
libs/libseccomp/Makefile
libs/libsigar/Makefile [new file with mode: 0644]
libs/libssh/Makefile
libs/libssh/patches/010-openssl-11-deprecated.patch [new file with mode: 0644]
libs/libssh/patches/020-openssl-threads.patch [new file with mode: 0644]
libs/libusbmuxd/Makefile
libs/libuwsc/Makefile
libs/libuwsc/patches/001-fix_find_lua.patch [new file with mode: 0644]
libs/libwangle/Makefile [new file with mode: 0644]
libs/libx264/Makefile
libs/libx264/patches/001-fix-x32-build-by-disabling-asm.patch [new file with mode: 0644]
libs/libx264/patches/002-dont-default-to-cortex-a9-with-neon.patch [new file with mode: 0644]
libs/libxerces-c/Makefile
libs/loudmouth/Makefile
libs/measurement-kit/Makefile
libs/measurement-kit/patches/003-fix-openssl-depredecated-api.patch [new file with mode: 0644]
libs/nss/Makefile
libs/pcre/Makefile
libs/quasselc/Makefile
mail/dovecot/Makefile
mail/msmtp/Makefile
mail/postfix/Makefile
mail/postfix/patches/950-dns_lookup-Fix-compilation-with-uClibc-ng.patch [new file with mode: 0644]
multimedia/tvheadend/Makefile
multimedia/tvheadend/patches/020-strncpy-issue.patch [new file with mode: 0644]
multimedia/youtube-dl/Makefile
net/banip/Makefile
net/banip/files/banip.conf
net/banip/files/banip.sh
net/chrony/Makefile
net/chrony/patches/001-freebind_uclibc.patch [deleted file]
net/chrony/patches/002-undefined_MIN.patch [deleted file]
net/freeradius3/Makefile
net/geth/Makefile
net/geth/patches/010-crypto-bn256-cloudflare-pull-in-upstream-fix-for-Go-.patch [new file with mode: 0644]
net/gnunet/Makefile
net/gnunet/patches/001-fix-libgnunetabe-build.patch [deleted file]
net/gnurl/Makefile
net/ibrdtnd/Makefile
net/ibrdtnd/patches/010-no-const.patch [new file with mode: 0644]
net/ibrdtnd/patches/020-uClibc-ng.patch [new file with mode: 0644]
net/iodine/Makefile
net/iodine/patches/100-musl-compatibility.patch
net/keepalived/Makefile
net/linuxptp/Makefile
net/lora-gateway-hal/Config.in [new file with mode: 0644]
net/lora-gateway-hal/Makefile [new file with mode: 0644]
net/lora-gateway-hal/patches/0001-add-cmake-support.patch [new file with mode: 0644]
net/lora-gateway-hal/patches/0002-add-preprocessing-for-SPI_DEV_PATH-and-SPI_SPEED.patch [new file with mode: 0644]
net/lora-gateway-hal/patches/0003-add-SPI_DEV_PATH-and-SPI_SPEED-to-cmake.patch [new file with mode: 0644]
net/mosquitto/Makefile
net/mosquitto/patches/901-fix-openssl-ui.patch [new file with mode: 0644]
net/mosquitto/patches/902-fix-engine-guards.patch [new file with mode: 0644]
net/nfs-kernel-server/Makefile
net/nfs-kernel-server/patches/0001-don-t-free-ai-ai_canonname.patch [deleted file]
net/nfs-kernel-server/patches/0002-define-and-use-wrapper-function-nfs_freeaddrin.patch [deleted file]
net/nfs-kernel-server/patches/102-limits.patch [deleted file]
net/nfs-kernel-server/patches/200-idmapd-add-missing-libgen-header.patch [deleted file]
net/port-mirroring/Makefile
net/port-mirroring/patches/010-convert-to-unix.patch [deleted file]
net/port-mirroring/patches/010-snprintf-to-strncpy.patch [new file with mode: 0644]
net/port-mirroring/patches/020-fix-musl.patch [deleted file]
net/rpcbind/Makefile
net/rpcbind/patches/002-fix_stack_buffer_overflow.patch [new file with mode: 0644]
net/rsyslog/Makefile
net/samba4/Makefile
net/samba4/files/samba.init
net/ser2net/Makefile
net/shadowsocks-libev/Makefile
net/shadowsocks-libev/README.md
net/shadowsocks-libev/files/shadowsocks-libev.init
net/smcroute/Makefile [new file with mode: 0644]
net/smcroute/files/smcroute.init [new file with mode: 0755]
net/socat/Makefile
net/stubby/Makefile
net/stubby/files/README.md
net/stubby/files/stubby.conf
net/stubby/files/stubby.init
net/subversion/Makefile
net/tac_plus/Makefile [new file with mode: 0644]
net/tac_plus/files/tac_plus.conf [new file with mode: 0644]
net/tac_plus/files/tac_plus.init [new file with mode: 0755]
net/tac_plus/patches/010-configure-remove-libnsl.patch [new file with mode: 0644]
net/tgt/Makefile
net/tgt/files/tgt.config
net/tgt/files/tgt.init
net/tgt/patches/110-iscsi_tcp-Replace-deprecated-valloc-function.patch [new file with mode: 0644]
net/tgt/patches/111-iscsi_tcp-fix-compile-warning.patch [new file with mode: 0644]
net/tor/Makefile
net/transmission/Makefile
utils/collectd/Makefile
utils/collectd/files/collectd.conf [deleted file]
utils/collectd/files/collectd.init
utils/collectd/files/collectd.uci [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/conntrack.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/contextswitch.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/cpu.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/cpufreq.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/csv.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/df.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/disk.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/dns.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/email.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/entropy.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/exec.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/interface.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/irq.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/iwinfo.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/load.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/lua.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/memory.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/netlink.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/nut.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/olsrd.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/openvpn.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/ping.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/processes.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/rrdtool.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/sensors.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/tcpconns.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/thermal.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/unixsock.json [new file with mode: 0644]
utils/collectd/files/usr/share/collectd/plugin/uptime.json [new file with mode: 0644]
utils/flent-tools/Makefile
utils/gawk/Makefile
utils/hashdeep/Makefile [new file with mode: 0644]
utils/hfsprogs/Makefile
utils/hfsprogs/patches/010-valloc-to-memalign.patch [new file with mode: 0644]
utils/lxc/Config.in
utils/lxc/Makefile
utils/lxc/patches/030-prlimit.patch [new file with mode: 0644]
utils/mariadb/Makefile
utils/mariadb/files/mysqld.init
utils/mariadb/patches/100-fix_hostname.patch
utils/mariadb/patches/170-ppc-remove-glibc-dep.patch
utils/oath-toolkit/Makefile
utils/oath-toolkit/patches/oath-toolkit-2.6.2-build-fix.patch
utils/pcsc-lite/Makefile
utils/pcsc-tools/Makefile
utils/rtl_433/Makefile
utils/rtl_433/patches/010-gnu-source.patch [new file with mode: 0644]
utils/swig/Makefile
utils/swig/patches/0001-Add-Node-7.x-aka-V8-5.2-support.patch [deleted file]
utils/tmux/Makefile
utils/usbmuxd/Makefile
utils/zstd/Makefile
utils/zstd/patches/010-uClibc-ng.patch [new file with mode: 0644]

index b103b67e7330d95069153a9360c83b1afb1de4c7..bc922f081a75aef76c30790f2aa6f4eb5a0a4eff 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=erlang
 PKG_VERSION:=21.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= http://www.erlang.org/download/
diff --git a/lang/erlang/patches/010-openssl-deprecated.patch b/lang/erlang/patches/010-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..88e268a
--- /dev/null
@@ -0,0 +1,189 @@
+--- a/lib/crypto/c_src/crypto.c
++++ b/lib/crypto/c_src/crypto.c
+@@ -41,6 +41,7 @@
+ #include <openssl/des.h>
+ #endif /* #ifndef OPENSSL_NO_DES */
+ /* #include <openssl/idea.h> This is not supported on the openssl OTP requires */
++#include <openssl/dh.h>
+ #include <openssl/dsa.h>
+ #include <openssl/rsa.h>
+ #include <openssl/aes.h>
+@@ -177,7 +178,7 @@
+ #endif
+ #if OPENSSL_VERSION_NUMBER >= PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
+-# ifndef HAS_LIBRESSL
++# if !defined(OPENSSL_NO_CHACHA) || !defined(OPENSSL_NO_POLY1305)
+ #  define HAVE_CHACHA20_POLY1305
+ # endif
+ #endif
+@@ -197,8 +198,10 @@
+ /* If OPENSSL_NO_EC is set, there will be an error in ec.h included from engine.h
+    So if EC is disabled, you can't use Engine either....
+ */
++#if !defined(OPENSSL_NO_ENGINE)
+ # define HAS_ENGINE_SUPPORT
+ #endif
++#endif
+ #if defined(HAS_ENGINE_SUPPORT)
+@@ -910,7 +913,11 @@ static void engine_ctx_dtor(ErlNifEnv* env, struct engine_ctx* ctx) {
+ static int verify_lib_version(void)
+ {
++#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
+     const unsigned long libv = SSLeay();
++#else
++    const unsigned long libv = OpenSSL_version_num();
++#endif
+     const unsigned long hdrv = OPENSSL_VERSION_NUMBER;
+ #   define MAJOR_VER(V) ((unsigned long)(V) >> (7*4))
+@@ -1166,12 +1173,14 @@ static int initialize(ErlNifEnv* env, ERL_NIF_TERM load_info)
+     funcp = &get_crypto_callbacks;
+ #endif
++#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
+ #ifdef OPENSSL_THREADS
+     enif_system_info(&sys_info, sizeof(sys_info));
+     if (sys_info.scheduler_threads > 1) {
+       nlocks = CRYPTO_num_locks();
+     }
+     /* else no need for locks */
++#endif
+ #endif
+     ccb = (*funcp)(nlocks);
+@@ -1183,15 +1192,21 @@ static int initialize(ErlNifEnv* env, ERL_NIF_TERM load_info)
+     CRYPTO_set_mem_functions(ccb->crypto_alloc, ccb->crypto_realloc, ccb->crypto_free);
++#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
+ #ifdef OPENSSL_THREADS
+     if (nlocks > 0) {
+       CRYPTO_set_locking_callback(ccb->locking_function);
++#if OPENSSL_VERSION_NUMBER < 0x10000000
+       CRYPTO_set_id_callback(ccb->id_function);
++#else
++      CRYPTO_THREADID_set_callback(ccb->id_function);
++#endif
+       CRYPTO_set_dynlock_create_callback(ccb->dyn_create_function);
+       CRYPTO_set_dynlock_lock_callback(ccb->dyn_lock_function);
+       CRYPTO_set_dynlock_destroy_callback(ccb->dyn_destroy_function);
+     }
+ #endif /* OPENSSL_THREADS */
++#endif
+     init_digest_types(env);
+     init_cipher_types(env);
+@@ -1391,7 +1406,11 @@ static ERL_NIF_TERM info_lib(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]
+     static const char libname[] = "OpenSSL";
+     unsigned name_sz = strlen(libname);
++#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
+     const char* ver = SSLeay_version(SSLEAY_VERSION);
++#else
++    const char* ver = OpenSSL_version(OPENSSL_VERSION);
++#endif
+     unsigned ver_sz = strlen(ver);
+     ERL_NIF_TERM name_term, ver_term;
+     int ver_num = OPENSSL_VERSION_NUMBER;
+--- a/lib/crypto/c_src/crypto_callback.c
++++ b/lib/crypto/c_src/crypto_callback.c
+@@ -83,7 +83,7 @@ static void crypto_free(void* ptr CCB_FILE_LINE_ARGS)
+     enif_free(ptr);
+ }
+-
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ #ifdef OPENSSL_THREADS /* vvvvvvvvvvvvvvv OPENSSL_THREADS vvvvvvvvvvvvvvvv */
+ static ErlNifRWLock** lock_vec = NULL; /* Static locks used by openssl */
+@@ -115,10 +115,17 @@ static void locking_function(int mode, int n, const char *file, int line)
+     locking(mode, lock_vec[n]);
+ }
++#if OPENSSL_VERSION_NUMBER < 0x10000000
+ static unsigned long id_function(void)
+ {
+     return (unsigned long) enif_thread_self();
+ }
++#else
++static void id_function(CRYPTO_THREADID *id)
++{
++    CRYPTO_THREADID_set_numeric(id, (unsigned long) enif_thread_self());
++}
++#endif
+ /* Dynamic locking, not used by current openssl version (0.9.8)
+  */
+@@ -136,6 +143,7 @@ static void dyn_destroy_function(struct CRYPTO_dynlock_value *ptr, const char *f
+ }
+ #endif /* ^^^^^^^^^^^^^^^^^^^^^^ OPENSSL_THREADS ^^^^^^^^^^^^^^^^^^^^^^ */
++#endif
+ DLLEXPORT struct crypto_callbacks* get_crypto_callbacks(int nlocks)
+ {
+@@ -146,7 +154,8 @@ DLLEXPORT struct crypto_callbacks* get_crypto_callbacks(int nlocks)
+       &crypto_alloc,
+       &crypto_realloc,
+       &crypto_free,
+-        
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ #ifdef OPENSSL_THREADS
+       &locking_function,
+       &id_function,
+@@ -154,9 +163,11 @@ DLLEXPORT struct crypto_callbacks* get_crypto_callbacks(int nlocks)
+       &dyn_lock_function,
+       &dyn_destroy_function
+ #endif /* OPENSSL_THREADS */
++#endif
+     };
+     if (!is_initialized) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ #ifdef OPENSSL_THREADS
+       if (nlocks > 0) {
+           int i;
+@@ -169,6 +180,7 @@ DLLEXPORT struct crypto_callbacks* get_crypto_callbacks(int nlocks)
+               if (lock_vec[i]==NULL) return NULL;
+           }
+       }
++#endif
+ #endif
+       is_initialized = 1;
+     }
+--- a/lib/crypto/c_src/crypto_callback.h
++++ b/lib/crypto/c_src/crypto_callback.h
+@@ -34,9 +34,15 @@ struct crypto_callbacks
+     void (*crypto_free)(void* ptr CCB_FILE_LINE_ARGS);
+     /* openssl callbacks */
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+   #ifdef OPENSSL_THREADS
+     void (*locking_function)(int mode, int n, const char *file, int line);
++  #if OPENSSL_VERSION_NUMBER < 0x10000000
+     unsigned long (*id_function)(void);
++  #else
++    void (*id_function)(CRYPTO_THREADID *id);
++  #endif
++#endif
+     struct CRYPTO_dynlock_value* (*dyn_create_function)(const char *file,
+                                                       int line);
+     void (*dyn_lock_function)(int mode, struct CRYPTO_dynlock_value* ptr,
+--- a/lib/crypto/c_src/otp_test_engine.c
++++ b/lib/crypto/c_src/otp_test_engine.c
+@@ -42,8 +42,10 @@
+       && !defined(OPENSSL_NO_EC) \
+       && !defined(OPENSSL_NO_ECDH) \
+       && !defined(OPENSSL_NO_ECDSA)
++#if !defined(OPENSSL_NO_ENGINE)
+ # define HAVE_EC
+ #endif
++#endif
+ #if defined(HAVE_EC)
+ /* If OPENSSL_NO_EC is set, there will be an error in ec.h included from engine.h
diff --git a/lang/erlang/patches/010-openssl-engine.patch b/lang/erlang/patches/010-openssl-engine.patch
deleted file mode 100644 (file)
index f05a127..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
---- a/lib/crypto/c_src/crypto.c
-+++ b/lib/crypto/c_src/crypto.c
-@@ -41,6 +41,7 @@
- #include <openssl/des.h>
- #endif /* #ifndef OPENSSL_NO_DES */
- /* #include <openssl/idea.h> This is not supported on the openssl OTP requires */
-+#include <openssl/dh.h>
- #include <openssl/dsa.h>
- #include <openssl/rsa.h>
- #include <openssl/aes.h>
-@@ -197,8 +198,10 @@
- /* If OPENSSL_NO_EC is set, there will be an error in ec.h included from engine.h
-    So if EC is disabled, you can't use Engine either....
- */
-+#if !defined(OPENSSL_NO_ENGINE)
- # define HAS_ENGINE_SUPPORT
- #endif
-+#endif
- #if defined(HAS_ENGINE_SUPPORT)
-@@ -1186,7 +1189,11 @@ static int initialize(ErlNifEnv* env, ERL_NIF_TERM load_info)
- #ifdef OPENSSL_THREADS
-     if (nlocks > 0) {
-       CRYPTO_set_locking_callback(ccb->locking_function);
-+#if OPENSSL_VERSION_NUMBER < 0x10000000
-       CRYPTO_set_id_callback(ccb->id_function);
-+#else
-+      CRYPTO_THREADID_set_callback(ccb->id_function);
-+#endif
-       CRYPTO_set_dynlock_create_callback(ccb->dyn_create_function);
-       CRYPTO_set_dynlock_lock_callback(ccb->dyn_lock_function);
-       CRYPTO_set_dynlock_destroy_callback(ccb->dyn_destroy_function);
---- a/lib/crypto/c_src/crypto_callback.c
-+++ b/lib/crypto/c_src/crypto_callback.c
-@@ -115,10 +115,17 @@ static void locking_function(int mode, int n, const char *file, int line)
-     locking(mode, lock_vec[n]);
- }
-+#if OPENSSL_VERSION_NUMBER < 0x10000000
- static unsigned long id_function(void)
- {
-     return (unsigned long) enif_thread_self();
- }
-+#else
-+static void id_function(CRYPTO_THREADID *id)
-+{
-+    CRYPTO_THREADID_set_numeric(id, (unsigned long) enif_thread_self());
-+}
-+#endif
- /* Dynamic locking, not used by current openssl version (0.9.8)
-  */
---- a/lib/crypto/c_src/crypto_callback.h
-+++ b/lib/crypto/c_src/crypto_callback.h
-@@ -36,7 +36,11 @@ struct crypto_callbacks
-     /* openssl callbacks */
-   #ifdef OPENSSL_THREADS
-     void (*locking_function)(int mode, int n, const char *file, int line);
-+  #if OPENSSL_VERSION_NUMBER < 0x10000000
-     unsigned long (*id_function)(void);
-+  #else
-+    void (*id_function)(CRYPTO_THREADID *id);
-+  #endif
-     struct CRYPTO_dynlock_value* (*dyn_create_function)(const char *file,
-                                                       int line);
-     void (*dyn_lock_function)(int mode, struct CRYPTO_dynlock_value* ptr,
---- a/lib/crypto/c_src/otp_test_engine.c
-+++ b/lib/crypto/c_src/otp_test_engine.c
-@@ -42,8 +42,10 @@
-       && !defined(OPENSSL_NO_EC) \
-       && !defined(OPENSSL_NO_ECDH) \
-       && !defined(OPENSSL_NO_ECDSA)
-+#if !defined(OPENSSL_NO_ENGINE)
- # define HAVE_EC
- #endif
-+#endif
- #if defined(HAVE_EC)
- /* If OPENSSL_NO_EC is set, there will be an error in ec.h included from engine.h
index e758ad2e1a96c29ad5b1e110e494191420d9c715..5c6ce3b4d00e75dd7d8bdc160485a9e3632759bb 100644 (file)
@@ -11,4 +11,4 @@ endif
 
 
 GO_VERSION_MAJOR_MINOR:=1.12
-GO_VERSION_PATCH:=4
+GO_VERSION_PATCH:=5
index 92714d3a0a056197a3bc81bb186c59a8bb869782..484abd51978b780f20960433505190b29a5fe90a 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:=4affc3e610cd8182c47abbc5b0c0e4e3c6a2b945b55aaa2ba952964ad9df1467
+PKG_HASH:=2aa5f088cbb332e73fc3def546800616b38d3bfe6b8713b8a6404060f22503e8
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
index b522b512d12c2b1b01f84f23d9bb1191355ea96c..a54d750f9ae246e86b21c022fad9bf6ba3266cd4 100644 (file)
@@ -12,7 +12,7 @@ PKG_VERSION:=1.7.0.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MIRROR_HASH:=23b4883aeb4fb90b2d0f338659f33a631f9df7a7e67c54115775a77d4ac3cc59
+PKG_MIRROR_HASH:=f109017711dd77d74a39bd1c0975be7edf726da0265f16496ea468481fac0b85
 PKG_SOURCE_URL:=https://github.com/keplerproject/luafilesystem.git
 PKG_SOURCE_VERSION:=de87218e9798c4dd1a40d65403d99e9e82e1cfa0
 PKG_SOURCE_PROTO:=git
index 6cd500467422d895f30d6666722187c15d2ebdf8..a13d291fd48d7720b602a822b6a16ea669a2b8ba 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NPM_NAME:=node-hid
 PKG_NAME:=$(PKG_NPM_NAME)
-PKG_VERSION:=0.7.7
-PKG_RELEASE:=2
+PKG_VERSION:=0.7.8
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=ac14467265a64116114e99091cd557ca7953500285c78cb4bdf6b82fe262cca6
+PKG_HASH:=a1ebbfd33139f7a7cd8c6a617b57229f45bf9ea9fa81563b7806738951d1d581
 
 PKG_BUILD_DEPENDS:=node/host
 PKG_USE_MIPS16:=0
index ba5133a0dc63378bdfe5a6fc104424415d1551de..b6c7b89a9c9b198c1134749571f8a65e72f7b00f 100644 (file)
@@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NPM_NAME:=homebridge
 PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_VERSION:=0.4.48
-PKG_RELEASE:=2
+PKG_VERSION:=0.4.49
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=http://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=020a4d882c04ed26a3c96b8a5e82768b29309cf461aa9a17f330887ed12e3e6b
+PKG_HASH:=1507c2ec513e6c8871d59537b502a1ed24c93e4cb59f1eca8c7fa35d77877cb3
 
 PKG_BUILD_DEPENDS:=node/host
 PKG_USE_MIPS16:=0
index 3c77f177ad7320c79bf707b2d4cb906634b131fc..38e8fbef04d1d6798c1a83177772190ea0141bb7 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NPM_NAME:=serialport
 PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_VERSION:=7.1.4
-PKG_RELEASE:=2
+PKG_VERSION:=7.1.5
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=d6f60bd81fe94578dee8e82887a66c5b007ec3f346b13d8156dd94a46f2b4849
+PKG_HASH:=96996a97a5ba9cb2ad5fc5b249e2f653657e9c2bd6a45c8188ad64a76bf93340
 
 PKG_BUILD_DEPENDS:=node/host
 PKG_USE_MIPS16:=0
index 25816a893003eb2d2c17639d44739a364a1dd8f1..71b023bd0ad124b177e8c1e034f3bc20f0dc296e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=node
 PKG_VERSION:=v8.16.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_SOURCE:=node-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://nodejs.org/dist/${PKG_VERSION}
 PKG_HASH:=3515e8e01568a5dc4dff3d91a76ebc6724f5fa2fbb58b4b0c5da7b178a2f7340
@@ -39,7 +39,6 @@ define Package/node
   URL:=https://nodejs.org/
   DEPENDS:=@(HAS_FPU||KERNEL_MIPS_FPU_EMULATOR) @!arc @!armeb \
           +libstdcpp +libopenssl +zlib +libnghttp2 +libuv +libhttp-parser \
-          +USE_UCLIBC:libpthread +USE_UCLIBC:librt \
           +NODEJS_ICU:icu
 endef
 
diff --git a/lang/node/patches/006-mips64_support.patch b/lang/node/patches/006-mips64_support.patch
new file mode 100644 (file)
index 0000000..8006245
--- /dev/null
@@ -0,0 +1,30 @@
+--- a/configure
++++ b/configure
+@@ -60,7 +60,7 @@
+ valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux',
+             'android', 'aix')
+-valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el', 'ppc',
++valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64', 'mips64el', 'ppc',
+               'ppc64', 'x32','x64', 'x86', 'x86_64', 's390', 's390x')
+ valid_arm_float_abi = ('soft', 'softfp', 'hard')
+ valid_arm_fpu = ('vfp', 'vfpv3', 'vfpv3-d16', 'neon')
+@@ -795,6 +795,9 @@
+   if rtn == 'mipsel' and '_LP64' in k:
+     rtn = 'mips64el'
++  if rtn == 'mips' and '_LP64' in k:
++    rtn = 'mips64'
++
+   return rtn
+@@ -877,7 +880,7 @@
+   if target_arch == 'arm':
+     configure_arm(o)
+-  elif target_arch in ('mips', 'mipsel', 'mips64el'):
++  elif target_arch in ('mips', 'mipsel', 'mips64', 'mips64el'):
+     configure_mips(o)
+   if flavor == 'aix':
index 2c5aa18ba0616de5e407e2bb07f115196a7c46e0..698c09e0187cc8aa231ff411e1aa1566a7caaa4c 100644 (file)
@@ -8,9 +8,10 @@
 2. [Python 2 end-of-life](#python-2-end-of-life)
     1. [Transition policy / schedule](#transition-policy--schedule)
 3. [Introduction](#introduction)
-4. [Build considerations](#build-considerations)
-5. [General folder structure](#general-folder-structure)
-6. [Building a Python[3] package](#building-a-python3-package)
+4. [Using Python[3] in external/other package feeds](#using-python3-in-externalother-package-feeds)
+5. [Build considerations](#build-considerations)
+6. [General folder structure](#general-folder-structure)
+7. [Building a Python[3] package](#building-a-python3-package)
     1. [PKG_BUILD_DIR](#pkg_build_dir)
     2. [PKG_UNPACK](#pkg_unpack)
     3. [Include python[3]-package.mk](#include-python3-packagemk)
@@ -65,6 +66,43 @@ It contains the 2 Python interpreters (Python & Python3) and Python packages. Mo
 
 If more packages (than the ones packaged here) are needed, they can be downloaded via [pip or pip3](https://pip.pypa.io). Note that the versions of `pip` & `setuptools` [available in this repo] are the ones that are packaged inside the Python & Python3 packages (yes, Python & Python3 come packaged with `pip` & `setuptools`).
 
+## Using Python[3] in external/other package feeds
+
+In the feeds.conf (or feeds.conf.default file, whatever is preferred), the packages repo should be present.
+
+Example
+```
+src-git packages https://git.openwrt.org/feed/packages.git
+src-git luci https://git.openwrt.org/project/luci.git
+src-git routing https://git.openwrt.org/feed/routing.git
+src-git telephony https://git.openwrt.org/feed/telephony.git
+#
+#
+src-git someotherfeed https://github.com/<github-user>/<some-other-package>
+```
+
+Assuming that there are Python packages in the `<some-other-package>`, they should include `python[3]-package.mk` like this:
+```
+include $(TOPDIR)/feeds/packages/lang/python/python-package.mk
+include $(TOPDIR)/feeds/packages/lang/python/python3-package.mk
+```
+
+Same rules apply for `python[3]-package.mk` as the Python packages in this repo.
+And if only 1 of `python-package.mk` or `python3-package.mk` is needed, then only the needed mk file should be included (though it's not an issue if both are included).
+
+**One important consideration:**: if the local name is not `packages`, it's something else, like `openwrt-packages`. And in `feeds.conf[.default]` it's:
+```
+src-git openwrt-packages https://git.openwrt.org/feed/packages.git
+```
+
+Then, the inclusions also change:
+```
+include $(TOPDIR)/feeds/openwrt-packages/lang/python/python-package.mk
+include $(TOPDIR)/feeds/openwrt-packages/lang/python/python3-package.mk
+```
+
+Each maintainer[s] of external packages feeds is responsible for the local name, and relative inclusion path back to this feed (which is named `packages` by default).
+
 ## Build considerations
 
 In order to build the Python[3] interpreters, a host Python/Python3 interpreter needs to be built, in order to process some of the build for the target Python/Python3 build. The host Python[3] interpreters are also needed so that Python bytecodes are generated, so the host interpreters need to be the exact versions as on the target. And finally, the host Python[3] interpreters also provide pip & pip3, so that they may be used to install some Python[3] packages that are required to build other Python[3] packages.
index 0ed2d976ab890b4fa7734c03989375b284b17c00..9c5c6618170a26245097ecdbfab51faa87a1790d 100644 (file)
@@ -5,12 +5,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=Werkzeug
-PKG_VERSION:=0.14.1
+PKG_VERSION:=0.15.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/W/Werkzeug
-PKG_HASH:=c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c
+PKG_HASH:=0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=BSD-3-Clause
index 014f9ca1c55dead67513f9589e1fb229f11ad3c8..a55e266d5a3b7e9e73402f06498f3e82d3df747c 100644 (file)
@@ -8,13 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=django-simple-captcha
-PKG_VERSION:=0.5.9
-PKG_RELEASE:=2
+PKG_VERSION:=0.5.11
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
 PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
-PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/d/${PKG_NAME}
-PKG_HASH:=0c30a14f02502119fd1a4d308dd5d2b899d0f4284825a396bbb010afd904754a
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/d/$(PKG_NAME)
+PKG_HASH:=e14e5c4b207be3dffb200309e7ac7a48de1a2b3293f09eefedd9ab317c4d9a7f
 
 include $(INCLUDE_DIR)/package.mk
 include ../python-package.mk
@@ -23,7 +26,6 @@ define Package/django-simple-captcha
   SUBMENU:=Python
   SECTION:=lang
   CATEGORY:=Languages
-  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
   TITLE:=A very simple, yet powerful, Django captcha application
   URL:=https://github.com/mbi/django-simple-captcha
   DEPENDS:=+python +python-six +django +pillow +django-ranged-response
diff --git a/lang/python/python-boto3/Makefile b/lang/python/python-boto3/Makefile
new file mode 100644 (file)
index 0000000..160cf40
--- /dev/null
@@ -0,0 +1,39 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=boto3
+PKG_VERSION:=1.9.135
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/b/boto3
+PKG_HASH:=5e5805992e873e5687b5ef3b4c56c386ccb4df1c3364f8b8601d289e2f275be1
+PKG_BUILD_DIR:=$(BUILD_DIR)/boto3-$(PKG_VERSION)
+
+PKG_MAINTAINER:=Daniel Danzberger <daniel@dd-wrt.com>
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-boto3
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=AWS SDK for Python (Boto3)
+  URL:=https://aws.amazon.com/sdk-for-python/
+  DEPENDS:=+python3 \
+       +python3-jmespath \
+       +python3-botocore \
+       +python3-s3transfer
+  VARIANT:=python3
+endef
+
+define Package/python3-boto3/description
+Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for Python,
+which allows Python developers to write software that makes use of services like Amazon S3 and Amazon EC2.
+endef
+
+$(eval $(call Py3Package,python3-boto3))
+$(eval $(call BuildPackage,python3-boto3))
+$(eval $(call BuildPackage,python3-boto3-src))
diff --git a/lang/python/python-defusedxml/Makefile b/lang/python/python-defusedxml/Makefile
new file mode 100644 (file)
index 0000000..d483177
--- /dev/null
@@ -0,0 +1,68 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-defusedxml
+PKG_VERSION:=0.6.0
+PKG_RELEASE:=1
+PKG_LICENSE:=Python-2.0
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+
+PKG_SOURCE:=defusedxml-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/d/defusedxml
+PKG_HASH:=f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-defusedxml-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+include ../python3-package.mk
+
+PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
+
+define Package/python-defusedxml/Default
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=XML bomb protection for Python stdlib modules.
+  URL:=https://github.com/tiran/defusedxml
+endef
+
+define Package/python-defusedxml
+  $(call Package/python-defusedxml/Default)
+  DEPENDS:= \
+       +PACKAGE_python-defusedxml:python-light \
+       +PACKAGE_python-defusedxml:python-codecs \
+       +PACKAGE_python-defusedxml:python-xml
+  VARIANT:=python
+endef
+
+define Package/python3-defusedxml
+  $(call Package/python-defusedxml/Default)
+  DEPENDS:= \
+       +PACKAGE_python3-defusedxml:python3-light \
+       +PACKAGE_python3-defusedxml:python3-xml
+  VARIANT:=python3
+endef
+
+define Package/python-defusedxml/description
+  The defusedxml package contains several Python-only workarounds and fixes for
+  denial of service and other vulnerabilities in Python’s XML libraries.
+endef
+
+define Package/python3-defusedxml/description
+$(call Package/python-defusedxml/description)
+.
+(Variant for Python3)
+endef
+
+$(eval $(call PyPackage,python-defusedxml))
+$(eval $(call BuildPackage,python-defusedxml))
+$(eval $(call BuildPackage,python-defusedxml-src))
+
+$(eval $(call Py3Package,python3-defusedxml))
+$(eval $(call BuildPackage,python3-defusedxml))
+$(eval $(call BuildPackage,python3-defusedxml-src))
index cefc2cb8693f670f6d30d6db69e216fa7ecb0e3f..1cc565f014c27a891b8d12f6166243c18be67c24 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-packages
 PKG_VERSION:=1.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 
@@ -66,6 +66,7 @@ CONFIG_PACKAGE_python-packages-list:=$(call qstrip,$(CONFIG_PACKAGE_python-packa
 CONFIG_PACKAGE_python-packages-list-cleanup:=$(call qstrip,$(CONFIG_PACKAGE_python-packages-list-cleanup))
 CONFIG_PACKAGE_python-packages-envs:=$(call qstrip,$(CONFIG_PACKAGE_python-packages-envs))
 CONFIG_PACKAGE_python-packages-extra-deps:=$(call qstrip,$(CONFIG_PACKAGE_python-packages-extra-deps))
+CONFIG_PACKAGE_python-packages-index-url:=$(call qstrip,$(CONFIG_PACKAGE_python-packages-index-url))
 CONFIG_PACKAGE_python-packages-pip-opts:=$(call qstrip,$(CONFIG_PACKAGE_python-packages-pip-opts))
 
 HOST_PYTHON_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON_VERSION)
@@ -88,7 +89,7 @@ HOST_PYTHON_PIP_INSTALL=$(HOST_PYTHON_PIP) install \
        --prefix=$(2) \
        --ignore-installed \
        --no-compile \
-       $(if $(CONFIG_PACKAGE_python-packages-index-url), --index-url $(CONFIG_PACKAGE_python-packages-index-url)) \
+       $(if $(CONFIG_PACKAGE_python-packages-index-url), --index-url "$(CONFIG_PACKAGE_python-packages-index-url)") \
        $(if $(CONFIG_PACKAGE_python-packages-pip-opts), $(CONFIG_PACKAGE_python-packages-pip-opts)) \
 
 HOST_PYTHON_PIP_INSTALL_HOST:=$(call HOST_PYTHON_PIP_INSTALL,$(STAGING_DIR_HOSTPKG),"")
index 300c7b8b92671d2d47b7807f6bd925b18daed478..8456a55aa27caf70ad0eb473887fa2e693ccdf95 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyasn1-modules
-PKG_VERSION:=0.2.4
-PKG_RELEASE:=2
+PKG_VERSION:=0.2.5
+PKG_RELEASE:=1
 
 PKG_SOURCE:=pyasn1-modules-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/p/pyasn1-modules
-PKG_HASH:=a52090e8c5841ebbf08ae455146792d9ef3e8445b21055d3a3b7ed9c712b7c7c
+PKG_HASH:=ef721f68f7951fab9b0404d42590f479e30d9005daccb1699b0a51bb4177db96
 
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
index 36b7302d60c6638ac38db27158fdd36f3b61643c..3c823893ca9b3311d7bbf02ed4b9722ca9e29059 100644 (file)
@@ -8,13 +8,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-requests
-PKG_VERSION:=2.21.0
-PKG_RELEASE:=2
+PKG_VERSION:=2.22.0
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>, Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+PKG_CPE_ID:=cpe:/a:python-requests:requests
 
 PKG_SOURCE:=requests-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/r/requests
-PKG_HASH:=502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e
+PKG_HASH:=11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4
+
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-requests-$(PKG_VERSION)
 
 PKG_CPE_ID:=cpe:/a:python-requests:requests
@@ -29,13 +34,12 @@ define Package/python-requests/Default
   SUBMENU:=Python
   SECTION:=lang
   CATEGORY:=Languages
-  MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>, Alexandru Ardelean <ardeleanalex@gmail.com>
-  URL:=http://python-requests.org/
+  TITLE:=HTTP library for Python
+  URL:=https://2.python-requests.org/
 endef
 
 define Package/python-requests
 $(call Package/python-requests/Default)
-  TITLE:=HTTP library for Python
   DEPENDS:= \
          +PACKAGE_python-requests:python \
          +PACKAGE_python-requests:python-chardet \
@@ -47,7 +51,6 @@ endef
 
 define Package/python3-requests
 $(call Package/python-requests/Default)
-  TITLE:=HTTP library for Python3
   DEPENDS:= \
          +python3-light  \
          +python3-chardet  \
@@ -58,7 +61,7 @@ $(call Package/python-requests/Default)
 endef
 
 define Package/python-requests/description
-  Requests is the only Non-GMO HTTP library for Python, safe for human consumption.
+  Requests is the only Non-GMO HTTP library for Python, safe for human consumption
 endef
 
 define Package/python3-requests/description
index 97fb21d8e1cd3b383ba78dd1f4f78045f8881b9f..c935a577371165344407d49f74f9ccfee4b8a3dc 100644 (file)
@@ -8,16 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-urllib3
-PKG_VERSION:=1.25
+PKG_VERSION:=1.25.2
 PKG_RELEASE:=1
 
+PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE.txt
 PKG_CPE_ID:=cpe:/a:urllib3_project:urllib3
 
 PKG_SOURCE:=urllib3-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/u/urllib3
-PKG_HASH:=f03eeb431c77b88cf8747d47e94233a91d0e0fdae1cf09e0b21405a885700266
+PKG_HASH:=a53063d8b9210a7bdec15e7b272776b9d42b2fd6816401a0d43006ad2f9902db
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-urllib3-$(PKG_VERSION)
 
index a29d4a6e1d75fb84d8cf4c257f280fd7aa233873..8c127ae476328e2e601aba030a641cd2de2dac83 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-zeroconf
-PKG_VERSION:=0.21.3
+PKG_VERSION:=0.22.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=zeroconf-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://pypi.python.org/packages/source/z/zeroconf/
-PKG_HASH:=5b52dfdf4e665d98a17bf9aa50dea7a8c98e25f972d9c1d7660e2b978a1f5713
+PKG_HASH:=fe66582c7b3ecc229ea4555b6d9da9bc26fc70134811e980b4fbd033e472b825
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/zeroconf-$(PKG_VERSION)
 
diff --git a/lang/python/python3-packages/Makefile b/lang/python/python3-packages/Makefile
new file mode 100644 (file)
index 0000000..e3c8f62
--- /dev/null
@@ -0,0 +1,134 @@
+#
+# Copyright (C) 2019 Yousong Zhou <yszhou4tech@gmail.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python3-packages
+PKG_VERSION:=1.0
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
+
+#
+# NOTE: move the host module installation to Host/Compile when
+# HOST_CONFIG_DEPENDS is supported
+#
+# NOTE: PKG_CONFIG_DEPENDS cannot correctly track changes of string type config
+# options, so you may want to do manual cleanup on config change.
+#
+PKG_CONFIG_DEPENDS:= \
+       CONFIG_PACKAGE_python3-packages-list-host \
+       CONFIG_PACKAGE_python3-packages-list \
+       CONFIG_PACKAGE_python3-packages-list-cleanup \
+       CONFIG_PACKAGE_python3-packages-envs \
+       CONFIG_PACKAGE_python3-packages-extra-deps \
+       CONFIG_PACKAGE_python3-packages-index-url \
+       CONFIG_PACKAGE_python3-packages-pip-opts \
+
+PKG_BUILD_DEPENDS:=python3 python3/host
+
+include $(INCLUDE_DIR)/package.mk
+include ../python3-host.mk
+include ../python3-package.mk
+
+define Package/python3-packages
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=A dummy package for packaging python3 modules with pip
+  DEPENDS:=@DEVEL +python3
+endef
+
+define Package/python3-packages/config
+if PACKAGE_python3-packages
+config PACKAGE_python3-packages-list-host
+       string "List of python3 packages to install on host"
+config PACKAGE_python3-packages-list
+       string "List of python3 packages to install on target"
+config PACKAGE_python3-packages-list-cleanup
+       string "List of python3 packages to cleanup to avoid clash with existing packages"
+config PACKAGE_python3-packages-envs
+       string "Extra environment variables to pass on to pip and its children on target build"
+config PACKAGE_python3-packages-extra-deps
+       string "List of deps fulfilled but not tracked by the build system"
+config PACKAGE_python3-packages-index-url
+       string "Index URL passed to pip with --index-url"
+config PACKAGE_python3-packages-pip-opts
+       string "Additional arguments to pip command line"
+endif
+endef
+
+CONFIG_PACKAGE_python3-packages-list-host:=$(call qstrip,$(CONFIG_PACKAGE_python3-packages-list-host))
+CONFIG_PACKAGE_python3-packages-list:=$(call qstrip,$(CONFIG_PACKAGE_python3-packages-list))
+CONFIG_PACKAGE_python3-packages-list-cleanup:=$(call qstrip,$(CONFIG_PACKAGE_python3-packages-list-cleanup))
+CONFIG_PACKAGE_python3-packages-envs:=$(call qstrip,$(CONFIG_PACKAGE_python3-packages-envs))
+CONFIG_PACKAGE_python3-packages-extra-deps:=$(call qstrip,$(CONFIG_PACKAGE_python3-packages-extra-deps))
+CONFIG_PACKAGE_python3-packages-index-url:=$(call qstrip,$(CONFIG_PACKAGE_python3-packages-index-url))
+CONFIG_PACKAGE_python3-packages-pip-opts:=$(call qstrip,$(CONFIG_PACKAGE_python3-packages-pip-opts))
+
+decr=$(word $(1),0 1 2 3 4 5 6 7 8 9 10)
+recur=$(if $(subst 0,,$(2)),$(call recur,$(1),$(call decr,$(2)),$(call $(1)$(2),$(3))),$(3))
+_req2dir1=$(subst >,gt,$(1))
+_req2dir2=$(subst <,lt,$(1))
+_req2dir3=$(subst >=,geq,$(1))
+_req2dir4=$(subst <=,leq,$(1))
+_req2dir5=$(subst ://,:::,$(1))
+_req2dir6=$(subst *,_,$(1))
+_req2dir7=$(subst ?,_,$(1))
+req2dir=$(call recur,_req2dir,7,$(1))
+
+# --ignore-installed, it may happen that host pip will ignore target install if
+#  it was already installed as host module, e.g. cffi deps of cryptograph
+#
+# --no-build-isolation, this is a new addition in pip3 and is needed when build
+#  depends on host modules
+HOST_PYTHON3_PIP_INSTALL=$(HOST_PYTHON3_PIP) install \
+       --root=$(1) \
+       --prefix=$(2) \
+       --ignore-installed \
+       --no-build-isolation \
+       --no-compile \
+       $(if $(CONFIG_PACKAGE_python3-packages-index-url), --index-url "$(CONFIG_PACKAGE_python3-packages-index-url)") \
+       $(if $(CONFIG_PACKAGE_python3-packages-pip-opts), $(CONFIG_PACKAGE_python3-packages-pip-opts)) \
+
+HOST_PYTHON3_PIP_INSTALL_HOST:=$(call HOST_PYTHON3_PIP_INSTALL,$(STAGING_DIR_HOSTPKG),"")
+HOST_PYTHON3_PIP_INSTALL_TARGET=$(call HOST_PYTHON3_PIP_INSTALL,$(PKG_INSTALL_DIR)/$(call req2dir,$(pkg)),/usr)
+HOST_PYTHON3_PIP_INSTALL_CLEANUP:=$(call HOST_PYTHON3_PIP_INSTALL,$(PKG_INSTALL_DIR)/_cleanup,/usr)
+
+define Build/Compile
+       $(foreach pkg,$(CONFIG_PACKAGE_python3-packages-list-host),
+               $(call Build/Compile/HostPy3RunHost,,$(HOST_PYTHON3_PIP_INSTALL_HOST) $(pkg))
+       )
+       $(foreach pkg,$(CONFIG_PACKAGE_python3-packages-list),
+               $(call Build/Compile/HostPy3RunTarget,,$(call HOST_PYTHON3_PIP_INSTALL_TARGET,$(pkg)) $(pkg),$(CONFIG_PACKAGE_python3-packages-envs))
+       )
+       $(foreach pkg,$(CONFIG_PACKAGE_python3-packages-list-cleanup),
+               $(call Build/Compile/HostPy3RunTarget,,$(HOST_PYTHON3_PIP_INSTALL_CLEANUP) $(pkg),$(CONFIG_PACKAGE_python3-packages-envs))
+       )
+endef
+
+define Package/python3-packages/install
+       $(foreach pkg,$(CONFIG_PACKAGE_python3-packages-list),
+               $(CP) "$(PKG_INSTALL_DIR)/$(call req2dir,$(pkg))"/* $(1)
+       )
+
+       find "$(PKG_INSTALL_DIR)/_cleanup" -mindepth 1 -depth | while read sf; do \
+               tf="$$$${sf#$(PKG_INSTALL_DIR)/_cleanup/}"; \
+               tf="$(1)/$$$$tf"; \
+               if [ -f "$$$$tf" -o -L "$$$$tf" ]; then \
+                       rm -vf "$$$$tf"; \
+               elif [ -d "$$$$tf" ]; then \
+                       rmdir -v -p "$$$$tf" || true; \
+               fi \
+       done
+endef
+
+define Package/python3-packages/extra_provides
+       echo $(CONFIG_PACKAGE_python3-packages-extra-deps) | tr ' ' '\n'
+endef
+
+$(eval $(call BuildPackage,python3-packages))
diff --git a/lang/python/python3-packages/README.md b/lang/python/python3-packages/README.md
new file mode 100644 (file)
index 0000000..01508bc
--- /dev/null
@@ -0,0 +1,72 @@
+This package allows users to package python3 modules without creating package
+Makefiles for each individual module and their dependencies.  It provides a
+way making packaging python3 packages faster and may also facilitate the process
+of developing Makefiles for new python3 packages
+
+This is a raw DEVEL only package.  Using it may entails a lot of implementation
+details and you may need to resolve target dependencies and package details on
+your own
+
+- Third party python3 packages may depend on features not included in e.g.
+  python3-light
+- Some python3 modules may require host install of another module to progress,
+  e.g. target cryptography requires host cffi
+- Some python3 modules have external C library dependencies, e.g. pyOpenSSL
+  requires openssl libs
+- Some packages may have an autoconf configure script whose arguments we
+  cannot control with pip and has to be passed on (hacked) by overriding some
+  environment variables
+
+## How it works
+
+1. Install host modules required for building target modules
+2. Install each target module to separate directories
+3. Install another copy of modules for cleanup purposes to make list of
+   installed files to be removed from target modules installed in step 2
+
+Why should it be so
+
+1. Installing target cryptography requires host installation of cffi module
+2. cryptography requires setuptools and pip will install its own copy with
+   --ignore-installed.  When PACKAGE_python3-setuptools is also selected, opkg
+   will complain of data file clashes if it was not removed here.
+
+Pip will handle dependency requirements of python3 modules, but external
+dependencies like c libraries has to be prepared by the build system.  The
+issue is that there is currently no way to express such dependencies, thus may
+cause build failure, e.g. pycrypto requires the presence of libgmp to build
+successfully.
+
+## Tips
+
+If something goes wrong, we can add additional arguments to pip command
+line to check the detailed build process.  Some useful arguments may be
+
+- -v, for verbose output.  Repeat this option if the current level of
+  verbosity is not enough
+- --no-clean, for preserving pip build dir on build failure
+
+## Examples
+
+tornado (python-only module)
+
+       CONFIG_PACKAGE_python3-packages=y
+       CONFIG_PACKAGE_python3-packages-list="tornado==6.0.2"
+
+cryptography (requires installation of host modules and cleanup on target modules)
+
+       CONFIG_PACKAGE_python3-packages=y
+       CONFIG_PACKAGE_python3-packages-list-host="cffi"
+       CONFIG_PACKAGE_python3-packages-list="cryptography"
+       CONFIG_PACKAGE_python3-packages-list-cleanup="setuptools"
+
+pycrypto 2.7a1 (python module with autoconf configure script; depends on
+libgmp; broken wmmintrin.h).  2.6.1 does not work because of a flaw in
+the setup.py hardcoding host include directory
+
+       CONFIG_PACKAGE_libgmp=y
+       CONFIG_PACKAGE_python3-packages=y
+       CONFIG_PACKAGE_python3-packages-list="https://github.com/dlitz/pycrypto/archive/v2.7a1.tar.gz"
+       CONFIG_PACKAGE_python3-packages-envs="ac_cv_header_wmmintrin_h=no build_alias=$(GNU_HOST_NAME) host_alias=$(GNU_TARGET_NAME) target_alias=$(GNU_TARGET_NAME)"
+       CONFIG_PACKAGE_python3-packages-extra-deps="libgmp.so.10"
+
index 5d3b5d6c8b59377bfbf9661f4624eb12d2d472bd..89fe9d29261fde429eae59fbce72972dd07380c1 100644 (file)
@@ -9,13 +9,14 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apr
 PKG_VERSION:=1.6.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@APACHE/apr/
 PKG_HASH:=a67ca9fcf9c4ff59bce7f428a323c8b5e18667fdea7b0ebad47d194371b0a105
+
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
-PKG_LICENSE:=Apache License
+PKG_LICENSE:=Apache-2.0
 
 PKG_FIXUP:=autoreconf
 PKG_REMOVE_FILES:=aclocal.m4 build/ltmain.sh
@@ -33,22 +34,27 @@ define Package/libapr
 endef
 
 TARGET_CFLAGS += $(FPIC)
-TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
 
 CONFIGURE_ARGS += \
+       --without-pic \
        --with-devrandom=/dev/urandom \
-       --disable-dso \
        $(call autoconf_bool,CONFIG_IPV6,ipv6)
 
 # XXX: ac_cv_sizeof_struct_iovec=1 is just to trick configure
 CONFIGURE_VARS += \
        ac_cv_sizeof_struct_iovec=1 \
        ac_cv_struct_rlimit=yes \
-       apr_cv_process_shared_works=no \
-       apr_cv_mutex_robust_shared=no \
+       ac_cv_func_sem_open=yes \
+       ac_cv_func_pthread_mutexattr_setpshared=yes \
+       apr_cv_mutex_robust_shared=yes \
        apr_cv_tcp_nodelay_with_cork=yes \
-       apr_cv_use_lfs64=yes \
-       LDFLAGS="$$$$LDFLAGS -lpthread" \
+       apr_cv_sock_cloexec=yes \
+       apr_cv_process_shared_works=yes \
+       apr_cv_mutex_recursive=yes \
+       apr_cv_epoll_create1=yes \
+       apr_cv_epoll=yes \
+       apr_cv_dup3=yes \
+       apr_cv_accept4=yes
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/include/apr-1 $(1)/usr/lib $(1)/usr/lib/pkgconfig $(1)/usr/share/build-1
index 87cd546d116634e313c00fff2bc22783b70b888a..b4e5ab75b5d2ec79d25419754c68d8f3018058cf 100644 (file)
@@ -36,7 +36,7 @@ Index: apr-1.5.2/Makefile.in
        include/private/apr_escape_test_char.h
  DISTCLEAN_TARGETS = config.cache config.log config.status \
        include/apr.h include/arch/unix/apr_private.h \
-@@ -135,9 +134,9 @@ tools/gen_test_char.lo: tools/gen_test_c
+@@ -138,9 +137,9 @@ tools/gen_test_char.lo: tools/gen_test_c
        $(APR_MKDIR) tools
        $(LT_COMPILE)
  
index 3a245119af907da7df4592b7506da87fb9ae564b..ed1b3ebc4a58d7342dd68d097c303bab99164775 100644 (file)
@@ -3,7 +3,7 @@
 # See /LICENSE for more information.
 #
 
-# 
+#
 # Original Boost 1.51 Makefile by Mirko Vogt <mirko@openwrt.org>
 # Dude, this "boost" is really one of the most crude stuff I ported yet.
 #
@@ -13,7 +13,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=boost
 PKG_VERSION:=1.70.0
 PKG_SOURCE_VERSION:=1_70_0
-PKG_RELEASE:=2
+PKG_RELEASE:=5
 
 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/
@@ -57,7 +57,7 @@ This package provides the following run-time libraries:
  - chrono
  - container
  - context
- - contract 
+ - contract
  - coroutine (Deprecated - use Coroutine2)
  - - coroutine2 (Requires GCC v5 and up)
  - date_time
@@ -142,17 +142,17 @@ define Package/boost/config
                                                 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 
+                                               - 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
@@ -171,10 +171,10 @@ define Package/boost/config
 
                        config boost-shared-libs
                                bool "Shared"
-                       
+
                        config boost-static-libs
                                bool "Static"
-                       
+
                        config boost-static-and-shared-libs
                                bool "Both"
                endchoice
@@ -189,7 +189,7 @@ define Package/boost/config
                                        - Not available if Shared libs are to be built.
                                -> Use both runtimes.
                                        - Not available if Shared libs are to be built.
-                                       - Two separate versions of Boost are built, linking each to a different runtime. 
+                                       - Two separate versions of Boost are built, linking each to a different runtime.
                                        - This option requires "Use tagged names" option to be active.
 
                        config boost-runtime-shared
@@ -197,7 +197,7 @@ define Package/boost/config
 
                        config boost-runtime-static
                                depends on @(!boost-shared-libs&&!boost-static-and-shared-libs)
-                               bool "Static"                   
+                               bool "Static"
 
                        config boost-runtime-static-and-shared
                                depends on @(boost-use-name-tags&&!boost-shared-libs&&!boost-static-and-shared-libs)
@@ -211,7 +211,7 @@ define Package/boost/config
                                Chooses which boost variant should be selected:
                                -> Release: Optimizes Boost for release.
                                        - Optimization: Speed;  Debug Symbols: Off; Inlining: Full; Runtime Debugging: Off.
-                               -> Debug: 
+                               -> Debug:
                                        - Optimization: Off; Debug Symbols: On; Inlining: Off; Runtime Debugging: On.
                                -> Profile:
                                        - Profiling: On;  Debug Symbols: On.
@@ -228,7 +228,7 @@ define Package/boost/config
 
                config boost-use-name-tags
                        bool "Use tagged names."
-                       help 
+                       help
                                Add name tags the lib files, to diferentiate each library version:
                                  "-mt" for multi-threading.
                                  "-d" for debugging.
@@ -239,14 +239,14 @@ define Package/boost/config
                config boost-single-thread
                        depends on @boost-use-name-tags
                        bool "Single thread Support."
-                       help 
+                       help
                                Compile Boost libraries in single-thread mode.
                        default n
-                           
+
                config boost-build-type-complete
                        depends on @boost-use-name-tags
                        bool "Complete Boost Build."
-                       help 
+                       help
                                Builds both release and debug libs. It will take much longer to compile.
                        default n
        endmenu
@@ -294,6 +294,16 @@ define Package/boost/config
                )
        endmenu
 
+       menu "Select Boost libraries for Host build"
+               comment  "Libraries for Host build"
+
+               $(foreach lib,$(BOOST_LIBS), \
+               config boost-host-build-$(lib)
+                       bool "Boost $(lib) $(if $(findstring python,$(lib)),$(paren_left)v$(if $(findstring 3,$(lib)),$(BOOST_PYTHON3_VER),$(BOOST_PYTHON_VER))$(paren_right) ,)library."
+                       default n
+               )
+       endmenu
+
 endef
 
 PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_boost-test
@@ -316,6 +326,7 @@ define DefineBoostLibrary
 
   BOOST_DEPENDS+= +$(if $(4),$(4):boost-$(1),boost-$(1))
   PKG_CONFIG_DEPENDS+= CONFIG_PACKAGE_boost-$(1)
+  HOST_CONFIG_DEPENDS+= CONFIG_boost-host-build-$(1)
 
   BOOST_LIBS+= $(1)
 
@@ -366,6 +377,14 @@ include $(INCLUDE_DIR)/host-build.mk
 define Host/Compile
        # b2 does not provide a configure-script nor a Makefile
        ( cd $(HOST_BUILD_DIR)/tools/build/src/engine ; ./build.sh gcc )
+
+       ( cd $(HOST_BUILD_DIR) ; \
+               ./bootstrap.sh --prefix=$(STAGING_DIR_HOST) \
+                       --with-libraries=$(subst $() $(),$(comma),$(strip \
+                               headers \
+                               $(foreach lib,$(BOOST_LIBS), \
+                                       $(if $(findstring python,$(lib)),,$(if $(CONFIG_boost-host-build-$(lib)),$(lib)))))) ; \
+               ./b2 install )
 endef
 
 CONFIGURE_PREFIX:=$(PKG_INSTALL_DIR)
@@ -499,8 +518,8 @@ define Build/InstallDev
                # copies _all_ header files - independent of <--with-library>-argument above
 
        $(INSTALL_DIR) $(1)/usr/lib
-       # copies all compiled archive and shared object files
-       $(CP) -v $(PKG_INSTALL_DIR)/lib/*.{a,so*} $(1)/usr/lib/ || :
+       # copies all cmake files, compiled archive and shared object files
+       $(CP) -v $(PKG_INSTALL_DIR)/lib/{*.{a,so*},cmake} $(1)/usr/lib/ || :
 endef
 
 define Host/Install
@@ -524,7 +543,7 @@ endef
 
 define BuildBoostLibrary
   define Package/boost-$(1)/install
-    $(call Package/boost/Default/install,$$(1),$(1)) 
+    $(call Package/boost/Default/install,$$(1),$(1))
   endef
 
   $$(eval $$(call BuildPackage,boost-$(1)))
diff --git a/libs/boost/patches/100-fix-apply_visitor-on-lvalue-variant.patch b/libs/boost/patches/100-fix-apply_visitor-on-lvalue-variant.patch
new file mode 100644 (file)
index 0000000..02623d9
--- /dev/null
@@ -0,0 +1,131 @@
+From cbdb354a274c8ab51a15dd43eafd02c2b6a576f0 Mon Sep 17 00:00:00 2001
+From: Edward Catmur <edward.catmur@mavensecurities.com>
+Date: Wed, 17 Apr 2019 15:05:37 +0100
+Subject: [PATCH 1/2] Copy variant cvref when determining result type
+
+Ensures that we can e.g. call apply_visitor on a lvalue variant
+---
+ boost/variant/detail/apply_visitor_unary.hpp | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/boost/variant/detail/apply_visitor_unary.hpp b/boost/variant/detail/apply_visitor_unary.hpp
+index 71610cb6..c3a741ef 100644
+--- a/boost/variant/detail/apply_visitor_unary.hpp
++++ b/boost/variant/detail/apply_visitor_unary.hpp
+@@ -23,6 +23,7 @@
+ #   include <boost/mpl/size.hpp>
+ #   include <boost/utility/declval.hpp>
+ #   include <boost/core/enable_if.hpp>
++#   include <boost/type_traits/copy_cv_ref.hpp>
+ #   include <boost/type_traits/remove_reference.hpp>
+ #   include <boost/variant/detail/has_result_type.hpp>
+ #endif
+@@ -85,7 +86,7 @@ namespace detail { namespace variant {
+ // This class serves only metaprogramming purposes. none of its methods must be called at runtime!
+ template <class Visitor, class Variant>
+ struct result_multideduce1 {
+-    typedef typename Variant::types                 types;
++    typedef typename remove_reference<Variant>::type::types types;
+     typedef typename boost::mpl::begin<types>::type begin_it;
+     typedef typename boost::mpl::advance<
+         begin_it, boost::mpl::int_<boost::mpl::size<types>::type::value - 1>
+@@ -95,14 +96,14 @@ struct result_multideduce1 {
+     struct deduce_impl {
+         typedef typename boost::mpl::next<It>::type next_t;
+         typedef typename boost::mpl::deref<It>::type value_t;
+-        typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< value_t >() )
++        typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< copy_cv_ref_t< value_t, Variant > >() )
+                               : boost::declval< typename deduce_impl<next_t>::type >()) type;
+     };
+     template <class Dummy>
+     struct deduce_impl<last_it, Dummy> {
+         typedef typename boost::mpl::deref<last_it>::type value_t;
+-        typedef decltype(boost::declval< Visitor& >()( boost::declval< value_t >() )) type;
++        typedef decltype(boost::declval< Visitor& >()( boost::declval< copy_cv_ref_t< value_t, Variant > >() )) type;
+     };
+     typedef typename deduce_impl<begin_it>::type type;
+@@ -132,7 +133,7 @@ inline decltype(auto) apply_visitor(Visitor&& visitor, Visitable&& visitable,
+         boost::detail::variant::has_result_type<Visitor>
+     >::type* = 0)
+ {
+-    boost::detail::variant::result_wrapper1<Visitor, typename remove_reference<Visitable>::type> cpp14_vis(::boost::forward<Visitor>(visitor));
++    boost::detail::variant::result_wrapper1<Visitor, Visitable> cpp14_vis(::boost::forward<Visitor>(visitor));
+     return ::boost::forward<Visitable>(visitable).apply_visitor(cpp14_vis);
+ }
+
+From 7331d648f46b6008138cbd22087b8c5c61ff7926 Mon Sep 17 00:00:00 2001
+From: Ed Catmur <ed@catmur.uk>
+Date: Sun, 21 Apr 2019 00:50:00 +0100
+Subject: [PATCH 2/2] Add test.
+
+---
+ libs/variant/test/const_ref_apply_visitor.cpp | 44 ++++++++++++++++++++++++++++++++
+ 1 file changed, 44 insertions(+)
+
+diff --git a/libs/variant/test/const_ref_apply_visitor.cpp b/libs/variant/test/const_ref_apply_visitor.cpp
+index 0ec77bd4..72afff9e 100644
+--- a/libs/variant/test/const_ref_apply_visitor.cpp
++++ b/libs/variant/test/const_ref_apply_visitor.cpp
+@@ -224,6 +224,44 @@ void test_cpp14_visitor(const variant_type& test_var, const variant_type& test_v
+ #endif
+ }
++void test_cpp14_visitor(variant_type& test_var)
++{
++    std::cout << "Testing lvalue visitable for c++14\n";
++
++    BOOST_TEST(boost::apply_visitor([](auto& v) { return lvalue_rvalue_detector()(v); }, test_var) == "lvalue reference");
++}
++
++void test_cpp14_mutable_visitor(variant_type& test_var)
++{
++    std::cout << "Testing lvalue visitable for c++14 with inline mutable lambda\n";
++
++    BOOST_TEST(boost::apply_visitor([](auto& v) mutable -> auto { return lvalue_rvalue_detector()(v); }, test_var) == "lvalue reference");
++}
++
++void test_cpp14_visitor(variant_type& test_var, variant_type& test_var2)
++{
++    std::cout << "Testing lvalue visitable for c++14\n";
++
++    BOOST_TEST(boost::apply_visitor([](auto& v, auto& vv) { return lvalue_rvalue_detector()(v, vv); }, test_var, test_var2)
++            == "lvalue reference, lvalue reference");
++}
++
++void test_cpp14_visitor(variant_type& test_var, variant_type& test_var2, variant_type& test_var3)
++{
++#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
++    std::cout << "Testing lvalue visitable for c++14\n";
++
++    auto result = boost::apply_visitor([](auto& v, auto& t, auto& p) { return lvalue_rvalue_detector()(v, t, p); },
++                test_var, test_var2, test_var3);
++    std::cout << "result: " << result << std::endl;
++    BOOST_TEST(result == "lvalue reference, lvalue reference, lvalue reference");
++#else
++    (void)test_var;
++    (void)test_var2;
++    (void)test_var3;
++#endif
++}
++
+ void test_cpp14_visitor(variant_type&& test_var)
+ {
+     std::cout << "Testing rvalue visitable for c++14\n";
+@@ -344,8 +382,14 @@ void run_cpp14_mixed_tests()
+ void run_cpp14_tests()
+ {
+ #ifndef BOOST_NO_CXX14_DECLTYPE_AUTO
++    variant_type const c1(10), c2(20), c3(30);
+     variant_type v1(10), v2(20), v3(30);
++    test_cpp14_visitor(c1);
++    test_cpp14_mutable_visitor(c1);
++    test_cpp14_visitor(c2, c3);
++    test_cpp14_visitor(c1, c2, c3);
++
+     test_cpp14_visitor(v1);
+     test_cpp14_mutable_visitor(v1);
+     test_cpp14_visitor(v2, v3);
diff --git a/libs/boost/patches/uclibc-ng-2.patch b/libs/boost/patches/uclibc-ng-2.patch
new file mode 100644 (file)
index 0000000..0d16686
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/boost/math/tools/roots.hpp
++++ b/boost/math/tools/roots.hpp
+@@ -665,8 +665,8 @@ namespace detail
+     inline T discriminant(T const & a, T const & b, T const & c)
+     {
+         T w = 4*a*c;
+-        T e = std::fma(-c, 4*a, w);
+-        T f = std::fma(b, b, -w);
++        T e = fma(-c, 4*a, w);
++        T f = fma(b, b, -w);
+         return f + e;
+     }
+ }
+@@ -674,7 +674,6 @@ namespace detail
+ template<class T>
+ auto quadratic_roots(T const& a, T const& b, T const& c)
+ {
+-    using std::copysign;
+     using std::sqrt;
+     if constexpr (std::is_integral<T>::value)
+     {
index ebd9c6dc96467907bdbb3752a9c8f4f13950ddbf..59d1b517e92794f2f11ff55174b9914746fa2eae 100644 (file)
@@ -41,7 +41,7 @@ define Package/libbotan
   CATEGORY:=Libraries
   TITLE+= (library)
   ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
-  DEPENDS:=+libstdcpp +libpthread
+  DEPENDS:=+libstdcpp +libpthread @!arc
 endef
 
 define Package/libbotan/description
index 9e75283ea4a10834469e5ba9740b53ffca1b7dab..77027b5be063efdfd71fb3c37b9fbb12d2914538 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=faad2
 PKG_VERSION:=2.8.8
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/faac/faad2-src/$(PKG_NAME)-2.8.0
@@ -64,10 +64,6 @@ ifeq ($(CONFIG_SOFT_FLOAT),y)
        CONFIGURE_ARGS+= -nfp
 endif
 
-ifeq ($(CONFIG_USE_UCLIBC),y)
-       CONFIGURE_VARS+= CPPFLAGS="-fno-builtin-cos -fno-builtin-sin -fno-builtin-log"
-endif
-
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include
diff --git a/libs/fbthrift/Makefile b/libs/fbthrift/Makefile
new file mode 100644 (file)
index 0000000..3e8c0e9
--- /dev/null
@@ -0,0 +1,55 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fbthrift
+PKG_VERSION:=2019.05.06.00
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Amol Bhave <ambhave@fb.com>
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/facebook/fbthrift/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=563ad2cacbd29cd22da3a608da52a2ab831942592c0f47dbeeab7131d9291995
+
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DEPENDS:=fbthrift/host
+HOST_BUILD_DEPENDS:=boost/host libmstch/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
+
+PKG_BUILD_PARALLEL:=1
+HOST_BUILD_PARALLEL:=1
+CMAKE_OPTIONS:= \
+       -DBoost_NO_BOOST_CMAKE=ON \
+       -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+       -DBUILD_SHARED_LIBS=ON
+CMAKE_HOST_OPTIONS:= \
+       -DBoost_NO_BOOST_CMAKE=ON \
+       -Dcompiler_only=ON
+HOST_LDFLAGS:=-Wl,-rpath=$(STAGING_DIR_HOST)/lib
+CMAKE_INSTALL:=1
+
+define Package/fbthrift
+       SECTION:=libs
+       CATEGORY:=Libraries
+       TITLE:=Facebook's branch of Apache Thrift, including a new C++ server.
+       DEPENDS:=+libstdcpp +boost +boost-filesystem +libfolly +glog +libsodium \
+               +libwangle +libfmt +libyarpl +libmstch +librsocket-cpp \
+               +@boost-host-build-filesystem +@boost-host-build-system \
+               +@boost-host-build-thread
+endef
+
+define Package/fbthrift/description
+       Facebook's branch of Apache Thrift, including a new C++ server.
+endef
+
+define Package/fbthrift/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,fbthrift))
+$(eval $(call HostBuild))
index a7f95761946f9d673afbee1c78c4737895901bee..40e559ef45143c5c7d293b9e0ffe3c1f81374a12 100644 (file)
@@ -5,7 +5,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=getdns
-PKG_VERSION:=1.5.0
+PKG_VERSION:=1.5.2
 PKG_RELEASE:=1
 
 PKG_LICENSE:=BSD-3-Clause
@@ -14,7 +14,7 @@ PKG_MAINTAINER:=Jonathan Underwood <jonathan.underwood@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://getdnsapi.net/dist/
-PKG_HASH:=577182c3ace919ee70cee5629505581a10dc530bd53fe5c241603ea91c84fa84
+PKG_HASH:=1826a6a221ea9e9301f2c1f5d25f6f5588e841f08b967645bf50c53b970694c0
 
 PKG_FIXUP:=autoreconf
 
index 9b2d20b72748cab471fa400e599a4a35a05014a9..e7ca37bf54c1ee680abf32a43c7bbc52bcfe1c0f 100644 (file)
@@ -11,7 +11,7 @@ PKG_NAME:=icu4c
 MAJOR_VERSION:=64
 MINOR_VERSION:=2
 PKG_VERSION:=$(MAJOR_VERSION).$(MINOR_VERSION)
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(MAJOR_VERSION)_$(MINOR_VERSION)-src.tgz
 PKG_SOURCE_URL:=https://github.com/unicode-org/icu/releases/download/release-$(MAJOR_VERSION)-$(MINOR_VERSION)
diff --git a/libs/icu/patches/020-uClibc-ng.patch b/libs/icu/patches/020-uClibc-ng.patch
new file mode 100644 (file)
index 0000000..2d2a3e7
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/i18n/decimfmt.cpp
++++ b/i18n/decimfmt.cpp
+@@ -1812,7 +1812,7 @@ bool DecimalFormat::fastFormatDouble(double input, UnicodeString& output) const
+         return false;
+     }
+     if (std::isnan(input)
+-            || std::trunc(input) != input
++            || trunc(input) != input
+             || input <= INT32_MIN
+             || input > INT32_MAX) {
+         return false;
+--- a/i18n/number_decimalquantity.cpp
++++ b/i18n/number_decimalquantity.cpp
+@@ -446,7 +446,7 @@ void DecimalQuantity::_setToDoubleFast(double n) {
+         for (; i <= -22; i += 22) n /= 1e22;
+         n /= DOUBLE_MULTIPLIERS[-i];
+     }
+-    auto result = static_cast<int64_t>(std::round(n));
++    auto result = static_cast<int64_t>(round(n));
+     if (result != 0) {
+         _setToLong(result);
+         scale -= fracLength;
index 5e7fc3c88abae806a7c184b32b539305ab534d7f..b2c325aa9fae7dccf90b268ecf5a7eb8257b1b47 100644 (file)
@@ -9,24 +9,25 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libartnet
 PKG_VERSION:=1.1.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/OpenLightingProject/libartnet/releases/download/1.1.2
 PKG_HASH:=19cdda434e208a81ddd138377f11046364438e40e34542ae101d6aa3fcaec696
 
 PKG_MAINTAINER:=Martijn Zilverschoon <martijn@friedzombie.com>
-
 PKG_LICENSE:=GPL-2.1
 PKG_LICENSE_FILES:=COPYING
 
+PKG_INSTALL:=1
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libartnet
        SECTION:=libs
        CATEGORY:=Libraries
        TITLE:=Libartnet is an implementation of the ArtNet protocol.
-       URL:=http://www.openlighting.org/libartnet-main/
+       URL:=https://www.openlighting.org/libartnet-main/
 endef
 
 define Package/libartnet/description
@@ -34,16 +35,6 @@ define Package/libartnet/description
        transmission of DMX and related data over IP networks.
 endef
 
-define Build/Configure
-       $(call Build/Configure/Default)
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-       DESTDIR="$(PKG_INSTALL_DIR)" \
-       all install
-endef
-
 define Build/InstallDev
        mkdir -p $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/artnet $(1)/usr/include/
index 44dde906900a65b89f5d37b47e3dff8733585088..9f0d62ff0ac6047183073d108eaea15068742700 100644 (file)
@@ -1,5 +1,3 @@
-diff --git a/artnet/transmit.c b/artnet/transmit.c
-index ce19b11..e882db9 100644
 --- a/artnet/transmit.c
 +++ b/artnet/transmit.c
 @@ -163,7 +163,7 @@ int artnet_tx_tod_data(node n, int id) {
@@ -7,7 +5,7 @@ index ce19b11..e882db9 100644
  
    while (remaining > 0) {
 -    memset(&tod.data.toddata.tod,0x00, ARTNET_MAX_UID_COUNT);
-+    memset(&tod.data.toddata.tod,0x00, ARTNET_MAX_UID_COUNT * sizeof(tod.data.toddata.tod));
++    memset(&tod.data.toddata.tod,0x00, sizeof(tod.data.toddata.tod));
      lim = min(ARTNET_MAX_UID_COUNT, remaining);
      tod.data.toddata.blockCount = bloc++;
      tod.data.toddata.uidCount = lim;
index 10fe79778cf7bab67d28054355eef36c06805552..5c39dc363a2a1cd8815d9ecd0aa287a1047d4958 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libevhtp
-PKG_VERSION:=1.1.6
-PKG_RELEASE:=3
-PKG_LICENSE:=BSD-3-Clause
+PKG_VERSION:=1.2.0
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/criticalstack/libevhtp/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=725dd0a32237b2a097cdc2003d09278a082ccce310aaba7441a5fd8fa8f26635
+PKG_HASH:=d8d98072693f5f68ccd74d327dedfa2f6add4446ac2799689c2f58dd480aa301
+
+PKG_MAINTAINER:=
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
 
-PKG_INSTALL:=1
+CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libevhtp
     SECTION:=libs
     CATEGORY:=Libraries
     TITLE:=A more flexible replacement for libevent's httpd API
-    MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
-    URL:=https://github.com/ellzey/libevhtp
-    DEPENDS:=+libevent2 +libevent2-openssl +libevent2-pthreads +libopenssl +libpthread
+    URL:=https://github.com/criticalstack/libevhtp
+    DEPENDS:=+libevent2 +libevent2-openssl +libevent2-pthreads
 endef
 
 define Package/libevhtp/description
@@ -38,12 +41,4 @@ define Package/libevhtp/description
    meaning the developer never thought of it being used for creating a full-fledged HTTP service.
 endef
 
-include $(INCLUDE_DIR)/cmake.mk
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/{include,lib}
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
-endef
-
 $(eval $(call BuildPackage,libevhtp))
index 30db96cfbaf636b3bbb8a398fade65e0bc0f006e..70410e319b1a19e9bf7726cb2c6870660af484a4 100644 (file)
@@ -1,6 +1,6 @@
 --- a/evhtp.c
 +++ b/evhtp.c
-@@ -1686,16 +1686,15 @@ _evhtp_ssl_thread_lock(int mode, int typ
+@@ -1817,16 +1817,15 @@ _evhtp_ssl_thread_lock(int mode, int typ
  #endif
  static void
  _evhtp_ssl_delete_scache_ent(evhtp_ssl_ctx_t * ctx, evhtp_ssl_sess_t * sess) {
@@ -22,7 +22,7 @@
  
      if (cfg->scache_del) {
          (cfg->scache_del)(htp, sid, slen);
-@@ -1706,14 +1705,17 @@ static int
+@@ -1837,14 +1836,17 @@ static int
  _evhtp_ssl_add_scache_ent(evhtp_ssl_t * ssl, evhtp_ssl_sess_t * sess) {
      evhtp_connection_t * connection;
      evhtp_ssl_cfg_t    * cfg;
@@ -44,7 +44,7 @@
  
      SSL_set_timeout(sess, cfg->scache_timeout);
  
-@@ -1725,7 +1727,7 @@ _evhtp_ssl_add_scache_ent(evhtp_ssl_t *
+@@ -1856,7 +1858,7 @@ _evhtp_ssl_add_scache_ent(evhtp_ssl_t *
  }
  
  static evhtp_ssl_sess_t *
@@ -53,7 +53,7 @@
      evhtp_connection_t * connection;
      evhtp_ssl_cfg_t    * cfg;
      evhtp_ssl_sess_t   * sess;
-@@ -1767,12 +1769,12 @@ _evhtp_ssl_servername(evhtp_ssl_t * ssl,
+@@ -1898,12 +1900,12 @@ _evhtp_ssl_servername(evhtp_ssl_t * ssl,
          connection->vhost_via_sni = 1;
  
          SSL_set_SSL_CTX(ssl, evhtp_vhost->ssl_ctx);
@@ -69,7 +69,7 @@
          }
  
          return SSL_TLSEXT_ERR_OK;
-@@ -3017,15 +3019,21 @@ evhtp_ssl_init(evhtp_t * htp, evhtp_ssl_
+@@ -3197,15 +3199,21 @@ evhtp_ssl_init(evhtp_t * htp, evhtp_ssl_
          return -1;
      }
  
@@ -91,7 +91,7 @@
  
  #if OPENSSL_VERSION_NUMBER >= 0x10000000L
      SSL_CTX_set_options(htp->ssl_ctx, SSL_MODE_RELEASE_BUFFERS);
-@@ -3062,7 +3070,11 @@ evhtp_ssl_init(evhtp_t * htp, evhtp_ssl_
+@@ -3242,7 +3250,11 @@ evhtp_ssl_init(evhtp_t * htp, evhtp_ssl_
      SSL_CTX_set_verify(htp->ssl_ctx, cfg->verify_peer, cfg->x509_verify_cb);
  
      if (cfg->x509_chk_issued_cb != NULL) {
  #else
  typedef void                      evhtp_ssl_sess_t;
  typedef void                      evhtp_ssl_t;
-@@ -154,9 +159,9 @@ typedef int (*evhtp_headers_iterator)(ev
+@@ -157,9 +162,9 @@ typedef int (*evhtp_headers_iterator)(ev
  typedef int (*evhtp_ssl_verify_cb)(int pre_verify, evhtp_x509_store_ctx_t * ctx);
  typedef int (*evhtp_ssl_chk_issued_cb)(evhtp_x509_store_ctx_t * ctx, evhtp_x509_t * x, evhtp_x509_t * issuer);
  
 +typedef evhtp_ssl_sess_t * (*evhtp_ssl_scache_get)(evhtp_connection_t * connection, evhtp_ssl_data_t * sid, int sid_len);
  typedef void * (*evhtp_ssl_scache_init)(evhtp_t *);
  
- #define EVHTP_VERSION           "1.1.6"
+ #define EVHTP_VERSION           "1.2.0"
index 4e984e5890488d0c6d65c4f0b6e304053f3f6b4b..4c370a1b9f277ad285c80ba35d2f2ed2746ba11f 100644 (file)
@@ -1,21 +1,40 @@
-diff --git a/evhtp.c b/evhtp.c
-index 24687be..b646925 100644
 --- a/evhtp.c
 +++ b/evhtp.c
-@@ -1667,9 +1667,9 @@ _evhtp_accept_cb(evserv_t * serv, int fd, struct sockaddr * s, int sl, void * ar
+@@ -1797,10 +1797,10 @@ _evhtp_accept_cb(evserv_t * serv, int fd, struct sockaddr * s, int sl, void * ar
+ }
  
  #ifndef EVHTP_DISABLE_SSL
- #ifndef EVHTP_DISABLE_EVTHR
+-#ifndef EVHTP_DISABLE_EVTHR
 -static unsigned long
 -_evhtp_ssl_get_thread_id(void) {
 -    return (unsigned long)pthread_self();
++#if !defined(EVHTP_DISABLE_EVTHR) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
 +static void
 +_evhtp_ssl_get_thread_id(CRYPTO_THREADID *id) {
 +    CRYPTO_THREADID_set_numeric(id, (unsigned long)pthread_self());
  }
  
  static void
-@@ -2999,7 +2999,7 @@ evhtp_ssl_use_threads(void) {
+@@ -3050,7 +3050,9 @@ evhtp_use_threads(evhtp_t * htp, evhtp_thread_init_cb init_cb, int nthreads, voi
+     htp->thread_init_cbarg = arg;
+ #ifndef EVHTP_DISABLE_SSL
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+     evhtp_ssl_use_threads();
++#endif
+ #endif
+     if (!(htp->thr_pool = evthr_pool_new(nthreads, _evhtp_thread_init, htp))) {
+@@ -3161,7 +3163,7 @@ evhtp_set_post_accept_cb(evhtp_t * htp, evhtp_post_accept_cb cb, void * arg) {
+ }
+ #ifndef EVHTP_DISABLE_SSL
+-#ifndef EVHTP_DISABLE_EVTHR
++#if !defined(EVHTP_DISABLE_EVTHR) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
+ int
+ evhtp_ssl_use_threads(void) {
+     int i;
+@@ -3179,7 +3181,7 @@ evhtp_ssl_use_threads(void) {
          pthread_mutex_init(&(ssl_locks[i]), NULL);
      }
  
diff --git a/libs/libevhtp/patches/030-uclibc.patch b/libs/libevhtp/patches/030-uclibc.patch
new file mode 100644 (file)
index 0000000..ae247fc
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/test_proxy.c
++++ b/test_proxy.c
+@@ -5,6 +5,9 @@
+ #include <errno.h>
+ #include <evhtp.h>
++#ifndef SIGTERM
++#define SIGTERM       15
++#endif
+ int
+ make_request(evbase_t         * evbase,
diff --git a/libs/libevhtp/patches/040-oniguruma.patch b/libs/libevhtp/patches/040-oniguruma.patch
new file mode 100644 (file)
index 0000000..5d457ab
--- /dev/null
@@ -0,0 +1,7 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -241,3 +241,4 @@ endif()
+ install (FILES evhtp.h DESTINATION include)
+ install (FILES htparse/htparse.h DESTINATION include)
+ install (FILES evthr/evthr.h DESTINATION include)
++install (FILES oniguruma/onigposix.h DESTINATION include)
diff --git a/libs/libfizz/Makefile b/libs/libfizz/Makefile
new file mode 100644 (file)
index 0000000..1449fae
--- /dev/null
@@ -0,0 +1,44 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libfizz
+PKG_VERSION:=2019.05.06.00
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/facebookincubator/fizz/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=80d4089cef655192733a7b0536bd3e2dab9baf143ed99510308064ff4842ae11
+PKG_BUILD_DIR:=$(BUILD_DIR)/fizz-$(PKG_VERSION)
+
+PKG_LICENSE:=BSD
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+PKG_BUILD_PARALLEL:=1
+CMAKE_SOURCE_SUBDIR:=fizz
+CMAKE_OPTIONS:= \
+       -DBUILD_EXAMPLES=OFF \
+       -DBUILD_SHARED_LIBS=ON
+CMAKE_INSTALL:=1
+
+define Package/libfizz
+       SECTION:=libs
+       CATEGORY:=Libraries
+       DEPENDS:=+libfolly +boost +libopenssl +glog +gflags +libevent2 \
+               +libdouble-conversion +libsodium
+       TITLE:=C++14 implementation of the TLS-1.3 standard
+       URL:=https://github.com/facebookincubator/fizz
+endef
+
+define Package/libfizz/description
+       C++14 implementation of the TLS-1.3 standard.
+       Fizz currently supports TLS 1.3 drafts 28, 26 (both wire-compatible with the final specification), and 23.
+endef
+
+define Package/libfizz/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfizz.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libfizz))
diff --git a/libs/libfolly/Makefile b/libs/libfolly/Makefile
new file mode 100644 (file)
index 0000000..83e4f45
--- /dev/null
@@ -0,0 +1,54 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libfolly
+PKG_VERSION:=2019.05.06.00
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/facebook/folly/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=59e88d792e4c917e2f37ac22c230af0056bce8aa7bacf2d9e94ceb177a7c1079
+PKG_BUILD_DIR:=$(BUILD_DIR)/folly-$(PKG_VERSION)
+
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+PKG_BUILD_PARALLEL:=1
+CMAKE_OPTIONS:= \
+       -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+       -DCXX_STD=gnu++14 \
+       -DFOLLY_HAVE_UNALIGNED_ACCESS_EXITCODE=OFF \
+       -DFOLLY_HAVE_LINUX_VDSO_EXITCODE=OFF \
+       -DFOLLY_HAVE_WCHAR_SUPPORT_EXITCODE=OFF \
+       -DHAVE_VSNPRINTF_ERRORS_EXITCODE=OFF \
+       -DFOLLY_HAVE_XSI_STRERROR_R_EXITCODE=0 \
+       -DBUILD_SHARED_LIBS=ON
+CMAKE_INSTALL:=1
+
+define Package/libfolly
+       SECTION:=libs
+       CATEGORY:=Libraries
+       TITLE:=An open-source C++ library developed and used at Facebook.
+       URL:=https://github.com/facebook/folly
+       DEPENDS:=+libstdcpp +boost +boost-context +boost-system +boost-thread \
+               +boost-date_time +boost-filesystem +boost-program_options +boost-regex \
+               +libbz2 +libopenssl +libdouble-conversion +libevent2 +glog +zlib +libzstd \
+               +gflags +libsodium +liblzma +libaio +liblz4 +libunwind +libatomic
+endef
+
+define Package/libfolly/description
+       An open-source C++ library developed and used at Facebook.
+       Folly (acronymed loosely after Facebook Open Source Library) is a library of
+       C++14 components designed with practicality and efficiency in mind.
+       Folly contains a variety of core library components used extensively at Facebook.
+       This package includes the shared library.
+endef
+
+define Package/libfolly/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfolly*.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libfolly))
diff --git a/libs/libfolly/patches/100-cmake-fix-regex-match-path.patch b/libs/libfolly/patches/100-cmake-fix-regex-match-path.patch
new file mode 100644 (file)
index 0000000..ac4adbe
--- /dev/null
@@ -0,0 +1,40 @@
+Index: folly-2019.05.06.00/CMakeLists.txt
+===================================================================
+--- folly-2019.05.06.00.orig/CMakeLists.txt
++++ folly-2019.05.06.00/CMakeLists.txt
+@@ -109,17 +109,19 @@ configure_file(
+ auto_sources(files "*.cpp" "RECURSE" "${FOLLY_DIR}")
+ auto_sources(hfiles "*.h" "RECURSE" "${FOLLY_DIR}")
+
++string(REPLACE + \\+ FOLLY_DIR_ESCAPED ${FOLLY_DIR})
++
+ # Exclude tests, benchmarks, and other standalone utility executables from the
+ # library sources.  Test sources are listed separately below.
+ REMOVE_MATCHES_FROM_LISTS(files hfiles
+   MATCHES
+-    "^${FOLLY_DIR}/build/"
+-    "^${FOLLY_DIR}/experimental/exception_tracer/"
+-    "^${FOLLY_DIR}/experimental/pushmi/"
+-    "^${FOLLY_DIR}/futures/exercises/"
+-    "^${FOLLY_DIR}/logging/example/"
+-    "^${FOLLY_DIR}/(.*/)?test/"
+-    "^${FOLLY_DIR}/tools/"
++    "^${FOLLY_DIR_ESCAPED}/build/"
++    "^${FOLLY_DIR_ESCAPED}/experimental/exception_tracer/"
++    "^${FOLLY_DIR_ESCAPED}/experimental/pushmi/"
++    "^${FOLLY_DIR_ESCAPED}/futures/exercises/"
++    "^${FOLLY_DIR_ESCAPED}/logging/example/"
++    "^${FOLLY_DIR_ESCAPED}/(.*/)?test/"
++    "^${FOLLY_DIR_ESCAPED}/tools/"
+     "Benchmark.cpp$"
+     "Test.cpp$"
+ )
+@@ -169,7 +171,7 @@ list(APPEND hfiles
+ if (NOT FOLLY_USE_SYMBOLIZER)
+   REMOVE_MATCHES_FROM_LISTS(files hfiles
+     MATCHES
+-      "^${FOLLY_DIR}/experimental/symbolizer/"
++      "^${FOLLY_DIR_ESCAPED}/experimental/symbolizer/"
+   )
+   list(REMOVE_ITEM files
+     ${FOLLY_DIR}/SingletonStackTrace.cpp
diff --git a/libs/libfolly/patches/101-remove-undefined-dcheck.patch b/libs/libfolly/patches/101-remove-undefined-dcheck.patch
new file mode 100644 (file)
index 0000000..74cce0a
--- /dev/null
@@ -0,0 +1,12 @@
+Index: folly-2019.05.06.00/folly/stats/detail/BufferedStat-defs.h
+===================================================================
+--- folly-2019.05.06.00.orig/folly/stats/detail/BufferedStat-defs.h
++++ folly-2019.05.06.00/folly/stats/detail/BufferedStat-defs.h
+@@ -74,7 +74,6 @@ void BufferedStat<DigestT, ClockT>::doUp
+     TimePoint now,
+     const std::unique_lock<SharedMutex>& g,
+     UpdateMode updateMode) {
+-  DCHECK(g.owns_lock());
+   // Check that no other thread has performed the slide after the check
+   auto oldExpiry = expiry_.load(std::memory_order_relaxed).tp;
+   if (now > oldExpiry || updateMode == UpdateMode::Now) {
diff --git a/libs/libfolly/patches/102-uclibc-patches.patch b/libs/libfolly/patches/102-uclibc-patches.patch
new file mode 100644 (file)
index 0000000..2dc539e
--- /dev/null
@@ -0,0 +1,114 @@
+diff --git a/folly/CachelinePadded.h b/folly/CachelinePadded.h
+--- a/folly/CachelinePadded.h
++++ b/folly/CachelinePadded.h
+@@ -35,10 +35,6 @@
+  */
+ template <typename T>
+ class CachelinePadded {
+-  static_assert(
+-      alignof(T) <= max_align_v,
+-      "CachelinePadded does not support over-aligned types.");
+-
+  public:
+   template <typename... Args>
+   explicit CachelinePadded(Args&&... args)
+diff --git a/folly/experimental/JSONSchema.cpp b/folly/experimental/JSONSchema.cpp
+--- a/folly/experimental/JSONSchema.cpp
++++ b/folly/experimental/JSONSchema.cpp
+@@ -25,6 +25,7 @@
+ #include <folly/Singleton.h>
+ #include <folly/String.h>
+ #include <folly/json.h>
++#include <folly/portability/Math.h>
+
+ namespace folly {
+ namespace jsonschema {
+@@ -141,7 +142,7 @@
+       return none;
+     }
+     if (schema_.isDouble() || value.isDouble()) {
+-      const auto rem = std::remainder(value.asDouble(), schema_.asDouble());
++      const auto rem = folly::remainder(value.asDouble(), schema_.asDouble());
+       if (std::abs(rem) > std::numeric_limits<double>::epsilon()) {
+         return makeError("a multiple of ", schema_, value);
+       }
+diff --git a/folly/external/farmhash/farmhash.cpp b/folly/external/farmhash/farmhash.cpp
+--- a/folly/external/farmhash/farmhash.cpp
++++ b/folly/external/farmhash/farmhash.cpp
+@@ -181,6 +181,7 @@
+
+ #undef bswap_32
+ #undef bswap_64
++#undef _BYTESWAP_H
+ #include <byteswap.h>
+
+ #endif
+diff --git a/folly/portability/Math.h b/folly/portability/Math.h
+--- a/folly/portability/Math.h
++++ b/folly/portability/Math.h
+@@ -20,21 +20,24 @@
+
+ namespace folly {
+
+-#ifndef __ANDROID__
++#if !defined(__ANDROID__) && !defined(__UCLIBC__)
+
+ /**
+- * Most platforms hopefully provide std::nextafter.
++ * Most platforms hopefully provide std::{nextafter,remainder}.
+  */
+
+ /* using override */ using std::nextafter;
++/* using override */ using std::remainder;
+
+-#else // !__ANDROID__
++#else // !__ANDROID__ && !__UCLIBC__
+
+ /**
+  * On Android, std::nextafter isn't implemented. However, the C functions and
+  * compiler builtins are still provided. Using the GCC builtin is actually
+  * slightly faster, as they're constexpr and the use cases within folly are in
+  * constexpr context.
++ *
++ * UCLIBC doesn't implement std::remainder. Use the builtin versions.
+  */
+
+ #if defined(__GNUC__) && !defined(__clang__)
+@@ -51,6 +54,18 @@
+   return __builtin_nextafterl(x, y);
+ }
+
++constexpr float remainder(float x, float y) {
++  return __builtin_remainderf(x, y);
++}
++
++constexpr double remainder(double x, double y) {
++  return __builtin_remainder(x, y);
++}
++
++constexpr long double remainder(long double x, long double y) {
++  return __builtin_remainderl(x, y);
++}
++
+ #else // __GNUC__
+
+ inline float nextafter(float x, float y) {
+@@ -65,6 +80,18 @@
+   return ::nextafterl(x, y);
+ }
+
++inline float remainder(float x, float y) {
++  return ::remainderf(x, y);
++}
++
++inline double remainder(double x, double y) {
++  return ::remainder(x, y);
++}
++
++inline long double remainder(long double x, long double y) {
++  return ::remainderl(x, y);
++}
++
+ #endif // __GNUC__
+
+ #endif // __ANDROID__
diff --git a/libs/libfolly/patches/103-openssl-compatibility.patch b/libs/libfolly/patches/103-openssl-compatibility.patch
new file mode 100644 (file)
index 0000000..72c3c7a
--- /dev/null
@@ -0,0 +1,147 @@
+diff --git a/folly/io/async/ssl/OpenSSLUtils.cpp b/folly/io/async/ssl/OpenSSLUtils.cpp
+index 0504cf8..a9c2775 100644
+--- a/folly/io/async/ssl/OpenSSLUtils.cpp
++++ b/folly/io/async/ssl/OpenSSLUtils.cpp
+@@ -155,8 +155,12 @@ static std::unordered_map<uint16_t, std::string> getOpenSSLCipherNames() {
+   SSL_CTX* ctx = nullptr;
+   SSL* ssl = nullptr;
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+   const SSL_METHOD* meth = SSLv23_server_method();
+   OpenSSL_add_ssl_algorithms();
++#else
++  const SSL_METHOD* meth = TLS_server_method();
++#endif
+
+   if ((ctx = SSL_CTX_new(meth)) == nullptr) {
+     return ret;
+diff --git a/folly/portability/OpenSSL.h b/folly/portability/OpenSSL.h
+index a4f4b04..427bf95 100644
+--- a/folly/portability/OpenSSL.h
++++ b/folly/portability/OpenSSL.h
+@@ -27,6 +27,7 @@
+
+ #include <openssl/asn1.h>
+ #include <openssl/bio.h>
++#include <openssl/bn.h>
+ #include <openssl/crypto.h>
+ #include <openssl/dh.h>
+ #include <openssl/err.h>
+diff --git a/folly/ssl/OpenSSLCertUtils.cpp b/folly/ssl/OpenSSLCertUtils.cpp
+index 544bb4f..423dd2c 100644
+--- a/folly/ssl/OpenSSLCertUtils.cpp
++++ b/folly/ssl/OpenSSLCertUtils.cpp
+@@ -155,12 +155,17 @@ folly::Optional<std::string> OpenSSLCertUtils::toString(X509& x509) {
+   }
+ }
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define X509_get0_notAfter X509_get_notAfter
++#define X509_get0_notBefore X509_get_notBefore
++#endif
++
+ std::string OpenSSLCertUtils::getNotAfterTime(X509& x509) {
+-  return getDateTimeStr(X509_get_notAfter(&x509));
++  return getDateTimeStr(X509_get0_notAfter(&x509));
+ }
+
+ std::string OpenSSLCertUtils::getNotBeforeTime(X509& x509) {
+-  return getDateTimeStr(X509_get_notBefore(&x509));
++  return getDateTimeStr(X509_get0_notBefore(&x509));
+ }
+
+ std::string OpenSSLCertUtils::getDateTimeStr(const ASN1_TIME* time) {
+diff --git a/folly/ssl/OpenSSLVersionFinder.h b/folly/ssl/OpenSSLVersionFinder.h
+index d0110d7..9d65580 100644
+--- a/folly/ssl/OpenSSLVersionFinder.h
++++ b/folly/ssl/OpenSSLVersionFinder.h
+@@ -18,6 +18,12 @@
+ #include <folly/Conv.h>
+ #include <folly/portability/OpenSSL.h>
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define OPENSSL_VERSION SSLEAY_VERSION
++#define OpenSSL_version SSLeay_version
++#define OpenSSL_version_num SSLeay
++#endif
++
+ // This is used to find the OpenSSL version at runtime. Just returning
+ // OPENSSL_VERSION_NUMBER is insufficient as runtime version may be different
+ // from the compile-time version
+@@ -25,7 +31,7 @@ namespace folly {
+ namespace ssl {
+ inline std::string getOpenSSLLongVersion() {
+ #ifdef OPENSSL_VERSION_TEXT
+-  return SSLeay_version(SSLEAY_VERSION);
++  return OpenSSL_version(OPENSSL_VERSION);
+ #elif defined(OPENSSL_VERSION_NUMBER)
+   return folly::format("0x{:x}", OPENSSL_VERSION_NUMBER).str();
+ #else
+@@ -35,7 +41,7 @@ inline std::string getOpenSSLLongVersion() {
+
+ inline uint64_t getOpenSSLNumericVersion() {
+ #ifdef OPENSSL_VERSION_NUMBER
+-  return SSLeay();
++  return OpenSSL_version_num();
+ #else
+   return 0;
+ #endif
+diff --git a/folly/ssl/detail/OpenSSLThreading.cpp b/folly/ssl/detail/OpenSSLThreading.cpp
+index 3414fbd..ce345ab 100644
+--- a/folly/ssl/detail/OpenSSLThreading.cpp
++++ b/folly/ssl/detail/OpenSSLThreading.cpp
+@@ -115,6 +115,7 @@ struct SSLLock {
+ // SSLContext runs in such environments.
+ // Instead of declaring a static member we "new" the static
+ // member so that it won't be destructed on exit().
++#if !FOLLY_SSL_DETAIL_OPENSSL_IS_110
+ static std::unique_ptr<SSLLock[]>& locks() {
+   static auto locksInst = new std::unique_ptr<SSLLock[]>();
+   return *locksInst;
+@@ -128,8 +129,8 @@ static void callbackLocking(int mode, int n, const char*, int) {
+   }
+ }
+
+-static unsigned long callbackThreadID() {
+-  return static_cast<unsigned long>(folly::getCurrentThreadID());
++static void callbackThreadID(CRYPTO_THREADID *id) {
++  return CRYPTO_THREADID_set_numeric(id, folly::getCurrentThreadID());
+ }
+
+ static CRYPTO_dynlock_value* dyn_create(const char*, int) {
+@@ -150,28 +151,33 @@ dyn_lock(int mode, struct CRYPTO_dynlock_value* lock, const char*, int) {
+ static void dyn_destroy(struct CRYPTO_dynlock_value* lock, const char*, int) {
+   delete lock;
+ }
++#endif
+
+ void installThreadingLocks() {
++#if !FOLLY_SSL_DETAIL_OPENSSL_IS_110
+   // static locking
+   locks() = std::make_unique<SSLLock[]>(size_t(CRYPTO_num_locks()));
+   for (auto it : lockTypes()) {
+     locks()[size_t(it.first)].lockType = it.second;
+   }
+-  CRYPTO_set_id_callback(callbackThreadID);
++  CRYPTO_THREADID_set_callback(callbackThreadID);
+   CRYPTO_set_locking_callback(callbackLocking);
+   // dynamic locking
+   CRYPTO_set_dynlock_create_callback(dyn_create);
+   CRYPTO_set_dynlock_lock_callback(dyn_lock);
+   CRYPTO_set_dynlock_destroy_callback(dyn_destroy);
++#endif
+ }
+
+ void cleanupThreadingLocks() {
+-  CRYPTO_set_id_callback(nullptr);
++#if !FOLLY_SSL_DETAIL_OPENSSL_IS_110
++  CRYPTO_THREADID_set_callback(nullptr);
+   CRYPTO_set_locking_callback(nullptr);
+   CRYPTO_set_dynlock_create_callback(nullptr);
+   CRYPTO_set_dynlock_lock_callback(nullptr);
+   CRYPTO_set_dynlock_destroy_callback(nullptr);
+   locks().reset();
++#endif
+ }
+
+ } // namespace detail
diff --git a/libs/libfstrm/Makefile b/libs/libfstrm/Makefile
new file mode 100644 (file)
index 0000000..1493434
--- /dev/null
@@ -0,0 +1,60 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libfstrm
+PKG_VERSION:=0.5.0
+PKG_RELEASE=1
+
+PKG_SOURCE:=fstrm-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://dl.farsightsecurity.com/dist/fstrm/
+PKG_HASH:=10ee7792a86face1d2271dc591652ab8c7af6976883887c69fdb11f10da135fc
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/fstrm-$(PKG_VERSION)
+
+PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libfstrm
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=This is fstrm, a C implementation of the Frame Streams data transport protocol.
+endef
+
+define Package/libfstrm/description
+       fstrm is an optimized C implementation of Frame Streams that includes a fast,
+       lockless circular queue implementation and exposes library interfaces for
+       setting up a dedicated Frame Streams I/O thread and asynchronously submitting
+       data frames for transport from worker threads. It was originally written to
+       facilitate the addition of high speed binary logging to DNS servers written
+       in C using the dnstap log format.
+endef
+
+CONFIGURE_ARGS+= \
+       --disable-programs
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
+
+       $(INSTALL_DIR) $(1)/usr/include/fstrm
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/fstrm/*.h $(1)/usr/include/fstrm/
+
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfstrm.{a,so*} $(1)/usr/lib/
+
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libfstrm.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libfstrm/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libfstrm.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libfstrm))
index ba9b09a4531eb5cf30bc55038ffdba619502334d..4cdb0166d48bc4609dfce59fd467bfb3913d55f2 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libftdi
 PKG_VERSION:=0.20
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.intra2net.com/en/developer/libftdi/download/
@@ -39,6 +39,8 @@ define Package/libftdi/description
   The library is linked with your program in userspace, no kernel driver required.
 endef
 
+CMAKE_OPTIONS += -DBoost_NO_BOOST_CMAKE=ON
+
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include/
        $(CP) $(PKG_INSTALL_DIR)/usr/include/ftdi.h $(1)/usr/include/
index fddf4034134c85ac7efca0a4592c5d96e6bdfd11..2280030320dd005042474b398364124d084220ba 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libftdi1
 PKG_VERSION:=1.4
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.intra2net.com/en/developer/libftdi/download/
@@ -22,8 +22,6 @@ PKG_LICENSE_FILES:=COPYING.LIB
 PKG_INSTALL:=1
 PKG_USE_MIPS16:=0
 
-CMAKE_OPTIONS:=-DBUILD_TESTS=OFF
-
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
@@ -60,6 +58,10 @@ define Package/ftdi_eeprom/description
   read. Otherwise, you will still get the old values.
 endef
 
+CMAKE_OPTIONS:= \
+       -DBUILD_TESTS=OFF \
+       -DBoost_NO_BOOST_CMAKE=ON
+
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include/libftdi1/
        $(CP) $(PKG_INSTALL_DIR)/usr/include/libftdi1/ftdi.h $(1)/usr/include/libftdi1/
index 8b0620e59dea52f44dffe9504e66fbbd91044bf2..ae33b568ee617be0c5cc0b94995cfeea0ae02721 100644 (file)
@@ -8,29 +8,29 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libimobiledevice
-PKG_VERSION:=1.2.1
-PKG_RELEASE:=2
+PKG_SOURCE_DATE:=2019-02-16
+PKG_SOURCE_VERSION:=0584aa90c93ff6ce46927b8d67887cb987ab9545
+PKG_RELEASE:=1
 
-PKG_MAINTAINER:=Lukasz Baj <l.baj@radytek.com>
+PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING.LESSER
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/libimobiledevice/libimobiledevice.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=13bf235cac2201747de11652cf14fe2714ca0718
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=4e8892b27f20216f86d69b36ad2229fca87cdf0a10f8d3e145d01841a492562a
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/libimobiledevice/libimobiledevice/tar.gz/$(PKG_SOURCE_VERSION)?
+PKG_HASH:=286e294aad60ef04a39ce70512a0e816415167c982f3e6c2988d9a6b8c5ee29b
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
 
 define Package/libimobiledevice/Default
   TITLE:=A library that talks to Apple devices.
-  URL:=http://www.libimobiledevice.org/
+  URL:=https://www.libimobiledevice.org/
 endef
 
 define Package/libimobiledevice/Default/description
@@ -61,17 +61,8 @@ define Package/libimobiledevice-utils/description
   This package contains the libimobiledevice utilities.
 endef
 
-CONFIGURE_VARS += \
-       libusbmuxd_CFLAGS="-I$(STAGING_DIR)/usr/include" \
-       libusbmuxd_LIBS="-L$(STAGING_DIR)/usr/lib -lusbmuxd" \
-       openssl_CFLAGS=" " \
-       openssl_LIBS="-L$(STAGING_DIR)/usr/lib -lssl -lcrypto"
-
-CONFIGURE_ARGS += \
-       --without-cython \
-       --disable-largefile
-
-TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
+CONFIGURE_VARS += ac_cv_sys_file_offset_bits=64
+CONFIGURE_ARGS += --without-cython
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
diff --git a/libs/libimobiledevice/patches/010-openssl-deprecated.patch b/libs/libimobiledevice/patches/010-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..e6a5459
--- /dev/null
@@ -0,0 +1,88 @@
+--- a/common/userpref.c
++++ b/common/userpref.c
+@@ -37,6 +37,7 @@
+ #include <unistd.h>
+ #include <usbmuxd.h>
+ #ifdef HAVE_OPENSSL
++#include <openssl/bn.h>
+ #include <openssl/pem.h>
+ #include <openssl/rsa.h>
+ #include <openssl/x509.h>
+@@ -73,6 +74,11 @@ const ASN1_ARRAY_TYPE pkcs1_asn1_tab[] = {
+ };
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define X509_set1_notBefore X509_set_notBefore
++#define X509_set1_notAfter X509_set_notAfter
++#endif
++
+ #ifdef WIN32
+ #define DIR_SEP '\\'
+ #define DIR_SEP_S "\\"
+@@ -420,9 +426,9 @@ userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record, key_da
+               /* set key validity */
+               ASN1_TIME* asn1time = ASN1_TIME_new();
+               ASN1_TIME_set(asn1time, time(NULL));
+-              X509_set_notBefore(root_cert, asn1time);
++              X509_set1_notBefore(root_cert, asn1time);
+               ASN1_TIME_set(asn1time, time(NULL) + (60 * 60 * 24 * 365 * 10));
+-              X509_set_notAfter(root_cert, asn1time);
++              X509_set1_notAfter(root_cert, asn1time);
+               ASN1_TIME_free(asn1time);
+               /* use root public key for root cert */
+@@ -453,9 +459,9 @@ userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record, key_da
+               /* set key validity */
+               ASN1_TIME* asn1time = ASN1_TIME_new();
+               ASN1_TIME_set(asn1time, time(NULL));
+-              X509_set_notBefore(host_cert, asn1time);
++              X509_set1_notBefore(host_cert, asn1time);
+               ASN1_TIME_set(asn1time, time(NULL) + (60 * 60 * 24 * 365 * 10));
+-              X509_set_notAfter(host_cert, asn1time);
++              X509_set1_notAfter(host_cert, asn1time);
+               ASN1_TIME_free(asn1time);
+               /* use host public key for host cert */
+@@ -533,9 +539,9 @@ userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record, key_da
+               ASN1_TIME* asn1time = ASN1_TIME_new();
+               ASN1_TIME_set(asn1time, time(NULL));
+-              X509_set_notBefore(dev_cert, asn1time);
++              X509_set1_notBefore(dev_cert, asn1time);
+               ASN1_TIME_set(asn1time, time(NULL) + (60 * 60 * 24 * 365 * 10));
+-              X509_set_notAfter(dev_cert, asn1time);
++              X509_set1_notAfter(dev_cert, asn1time);
+               ASN1_TIME_free(asn1time);
+               EVP_PKEY* pkey = EVP_PKEY_new();
+--- a/src/idevice.c
++++ b/src/idevice.c
+@@ -36,6 +36,7 @@
+ #include <usbmuxd.h>
+ #ifdef HAVE_OPENSSL
+ #include <openssl/err.h>
++#include <openssl/rsa.h>
+ #include <openssl/ssl.h>
+ #else
+@@ -49,6 +50,10 @@
+ #ifdef HAVE_OPENSSL
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define TLS_method TLSv1_method
++#endif
++
+ #if OPENSSL_VERSION_NUMBER < 0x10002000L
+ static void SSL_COMP_free_compression_methods(void)
+ {
+@@ -721,7 +726,7 @@ LIBIMOBILEDEVICE_API idevice_error_t idevice_connection_enable_ssl(idevice_conne
+       }
+       BIO_set_fd(ssl_bio, (int)(long)connection->data, BIO_NOCLOSE);
+-      SSL_CTX *ssl_ctx = SSL_CTX_new(TLSv1_method());
++      SSL_CTX *ssl_ctx = SSL_CTX_new(TLS_method());
+       if (ssl_ctx == NULL) {
+               debug_info("ERROR: Could not create SSL context.");
+               BIO_free(ssl_bio);
index 3d20abeb9664cbf7c05d65b33fd87dbd898fabf6..899a6a5b5195997ae1b10ffb5382afeec3a47a82 100644 (file)
@@ -53,7 +53,7 @@ endef
 define Package/libmraa
   $(call Package/libmraa/Default)
   TITLE:=Intel IoT lowlevel IO C/C++ library
-  DEPENDS:=+libstdcpp +libjson-c
+  DEPENDS:=+libstdcpp +libjson-c @!arc @!armeb @!ppc
 endef
 
 define Package/libmraa/description
diff --git a/libs/libmstch/Makefile b/libs/libmstch/Makefile
new file mode 100644 (file)
index 0000000..a5d1285
--- /dev/null
@@ -0,0 +1,45 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libmstch
+PKG_VERSION:=1.0.2
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/no1msd/mstch/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=811ed61400d4e9d4f9ae0f7679a2ffd590f0b3c06b16f2798e1f89ab917cba6c
+PKG_BUILD_DIR:=$(BUILD_DIR)/mstch-$(PKG_VERSION)
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/mstch-$(PKG_VERSION)
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+
+HOST_BUILD_DEPENDS:=boost boost/host
+
+PKG_BUILD_DEPENDS:=boost
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
+
+PKG_BUILD_PARALLEL:=1
+CMAKE_INSTALL:=1
+CMAKE_OPTIONS:= \
+       -DCMAKE_POSITION_INDEPENDENT_CODE=True
+
+define Package/libmstch
+       SECTION:=libs
+       CATEGORY:=Libraries
+       TITLE:=Complete implementation of {{mustache}} templates using modern C++
+       DEPENDS:=+boost +boost-container
+       URL:=https://github.com/no1msd/mstch
+       MAINTAINER:=Amol Bhave <ambhave@fb.com>
+endef
+
+define Package/libmstch/description
+       mstch is a complete implementation of {{mustache}} templates using modern C++
+endef
+
+$(eval $(call BuildPackage,libmstch))
+$(eval $(call HostBuild))
index 6d260aa753df0c43176ef286ac3a6deb8574fadc..07fada3c1103d0389d2f5db3d7a4d871a4fc9f74 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libndpi
-PKG_VERSION:=2.6
+PKG_VERSION:=2.8
 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:=efdfb68940385b18079920330528978765dc2a90c8163d10f63301bddadbf91e
+PKG_HASH:=f98def4d0e43818317b20e2887ce500b2d6a5a9c8ddb28cf57ae51caae0f33cc
 PKG_BUILD_DIR:=$(BUILD_DIR)/nDPI-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Banglang Huang <banglang.huang@foxmail.com>
@@ -21,9 +21,9 @@ PKG_LICENSE:=LGPLv3
 PKG_LICENSE_FILES:=COPYING
 
 PKG_FIXUP:=autoreconf
+PKG_REMOVE_FILES:=autogen.sh
 PKG_BUILD_DEPENDS:=libpcap
 PKG_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
@@ -41,36 +41,37 @@ define Package/libndpi/description
   Based on OpenDPI it includes ntop extensions.
 endef
 
-define Build/Configure
-       ( cd $(PKG_BUILD_DIR); ./autogen.sh )
-       $(call Build/Configure/Default)
+define Build/Prepare
+       $(PKG_UNPACK)
+       $(Build/Patch)
+       mv $(PKG_BUILD_DIR)/configure.seed $(PKG_BUILD_DIR)/configure.ac
+       $(SED) "s/@NDPI_MAJOR@/2/g" \
+               -e "s/@NDPI_MINOR@/8/g" \
+               -e "s/@NDPI_PATCH@/0/g" \
+               -e "s/@NDPI_VERSION_SHORT@/2.8.0/g" \
+               $(PKG_BUILD_DIR)/configure.ac
 endef
 
 define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include/
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/local/include/ndpi \
-               $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/include/ndpi
+       $(CP) $(PKG_BUILD_DIR)/src/include/*.h \
+               $(1)/usr/include/ndpi/
 
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/local/lib/libndpi.so* \
+       $(CP) $(PKG_BUILD_DIR)/src/lib/libndpi.so* \
                $(1)/usr/lib/
 
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/libdata/pkgconfig/libndpi.pc \
+       $(CP) $(PKG_BUILD_DIR)/libndpi.pc \
                $(1)/usr/lib/pkgconfig/
 endef
 
 define Package/libndpi/install
        $(INSTALL_DIR) $(1)/usr/lib/
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/local/lib/libndpi.so* \
+       $(CP) $(PKG_BUILD_DIR)/src/lib/libndpi.so* \
                $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/bin/
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/local/bin/ndpiReader \
+       $(CP) $(PKG_BUILD_DIR)/example/ndpiReader \
                $(1)/usr/bin/
 endef
 
index 30fb23b516003d0e2b8972232977632f44dd9036..9c6eda9988535e01f9573687b828d8ddf04d7a5a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libp11
-PKG_VERSION:=0.4.9
-PKG_RELEASE:=2
+PKG_VERSION:=0.4.10
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://github.com/OpenSC/libp11/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=9d1c76d74c21ca224f96204982097ebc6b956f645b2b0b5f9c502a20e9ffcfd8
+PKG_HASH:=639ea43c3341e267214b712e1e5e12397fd2d350899e673dd1220f3c6b8e3db4
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=LGPL-2.1+
index a062c1b897793c8687d231c9ea7d2801c0008772..0a576c688b3a20683f335f576614be7b9fd09959 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
-@@ -49,13 +49,6 @@ pkcs11_la_LIBADD = $(libp11_la_OBJECTS) $(OPENSSL_LIBS)
+@@ -49,13 +49,6 @@ pkcs11_la_LIBADD = $(libp11_la_OBJECTS)
  pkcs11_la_LDFLAGS = $(AM_LDFLAGS) -module -shared -shrext $(SHARED_EXT) \
        -avoid-version -export-symbols "$(srcdir)/pkcs11.exports"
  
@@ -16,7 +16,7 @@
  mylibdir=$(libdir)
 --- a/src/Makefile.in
 +++ b/src/Makefile.in
-@@ -872,7 +872,7 @@ distdir: $(DISTFILES)
+@@ -899,7 +899,7 @@ distdir-am: $(DISTFILES)
          fi; \
        done
  check-am: all-am
@@ -25,7 +25,7 @@
  check: check-am
  all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) config.h
  installdirs:
-@@ -944,7 +944,7 @@ install-dvi-am:
+@@ -988,7 +988,7 @@ install-dvi-am:
  
  install-exec-am: install-enginesexecLTLIBRARIES install-libLTLIBRARIES
        @$(NORMAL_INSTALL)
  install-html: install-html-am
  
  install-html-am:
-@@ -989,7 +989,7 @@ uninstall-am: uninstall-enginesexecLTLIBRARIES \
+@@ -1051,14 +1051,14 @@ uninstall-am: uninstall-enginesexecLTLIB
  .MAKE: all check-am install-am install-exec-am install-strip
  
--.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
-+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
-       clean-enginesexecLTLIBRARIES clean-generic \
+ .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am \
+-      check-local clean clean-enginesexecLTLIBRARIES clean-generic \
++      clean clean-enginesexecLTLIBRARIES clean-generic \
        clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
        ctags-am distclean distclean-compile distclean-generic \
-@@ -997,7 +997,7 @@ uninstall-am: uninstall-enginesexecLTLIBRARIES \
+       distclean-hdr distclean-libtool distclean-tags distdir dvi \
        dvi-am html html-am info info-am install install-am \
        install-data install-data-am install-dvi install-dvi-am \
        install-enginesexecLTLIBRARIES install-exec install-exec-am \
diff --git a/libs/librsocket-cpp/Makefile b/libs/librsocket-cpp/Makefile
new file mode 100644 (file)
index 0000000..d64ad42
--- /dev/null
@@ -0,0 +1,61 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=librsocket-cpp
+PKG_SOURCE_DATE:=2019-05-08
+PKG_SOURCE_VERSION:=ddc80392b17a3fadcbea09f82ea5f6936f0fd459
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/rsocket/rsocket-cpp/tar.gz/$(PKG_SOURCE_VERSION)?
+PKG_HASH:=b9b5177be57f6cd23ff3592845b11209167f679b683cb73acbf351e7a3550a76
+PKG_BUILD_DIR:=$(BUILD_DIR)/rsocket-cpp-$(PKG_SOURCE_VERSION)
+
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+PKG_BUILD_PARALLEL:=1
+CMAKE_BINARY_SUBDIR:=builddir
+CMAKE_OPTIONS:= \
+       -DBUILD_BENCHMARKS=OFF \
+       -DBUILD_EXAMPLES=OFF \
+       -DBUILD_TESTS=OFF \
+       -DBUILD_SHARED_LIBS=ON
+CMAKE_INSTALL:=1
+
+define Package/librsocket-cpp
+       SECTION:=libs
+       CATEGORY:=Libraries
+       TITLE:=C++ implementation of RSocket
+       DEPENDS:=+libfolly +gflags +glog +libopenssl +libyarpl
+endef
+
+define Package/libyarpl
+       SECTION:=libs
+       CATEGORY:=Libraries
+       TITLE:=yarpl: Yet Another Reactive Programming Library
+       DEPENDS:=+libfolly +gflags +glog +libatomic
+endef
+
+define Package/librsocket-cpp/description
+       C++ implementation of RSocket, and Application protocol providing Reactive Streams semantics
+endef
+
+define Package/libyarpl/description
+       C++ implementation of reactive functional programming including both Observable and Flowable types.
+endef
+
+define Package/librsocket-cpp/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libReactiveSocket.so* $(1)/usr/lib/
+endef
+
+define Package/libyarpl/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libyarpl*.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,librsocket-cpp))
+$(eval $(call BuildPackage,libyarpl))
diff --git a/libs/librsocket-cpp/patches/100-fix-momit-leaf-frame-pointer-error.patch b/libs/librsocket-cpp/patches/100-fix-momit-leaf-frame-pointer-error.patch
new file mode 100644 (file)
index 0000000..24dfe4b
--- /dev/null
@@ -0,0 +1,16 @@
+diff --git a/yarpl/CMakeLists.txt b/yarpl/CMakeLists.txt
+--- a/yarpl/CMakeLists.txt       Fri May 03 07:45:18 2019 -0700
++++ b/yarpl/CMakeLists.txt       Tue May 07 02:03:23 2019 -0700
+@@ -21,7 +21,11 @@
+   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter")
+   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-weak-vtables -Wno-padded")
+   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer")
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -momit-leaf-frame-pointer")
++  include(CheckCXXCompilerFlag)
++  CHECK_CXX_COMPILER_FLAG("-momit-leaf-frame-pointer" HAVE_OMIT_LEAF_FRAME_POINTER)
++  if(HAVE_OMIT_LEAF_FRAME_POINTER)
++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -momit-leaf-frame-pointer")
++  endif()
+ endif()
+
+ if(YARPL_WRAP_SHARED_IN_LOCK)
diff --git a/libs/librsocket-cpp/patches/101-do-not-use-gold.patch b/libs/librsocket-cpp/patches/101-do-not-use-gold.patch
new file mode 100644 (file)
index 0000000..c9f3387
--- /dev/null
@@ -0,0 +1,11 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -67,7 +67,6 @@
+   if (RSOCKET_ASAN)
+     set(ASAN_FLAGS -fsanitize=address,undefined)
+   endif ()
+-  set(EXTRA_LINK_FLAGS ${EXTRA_LINK_FLAGS} -fuse-ld=gold)
+
+ elseif (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
+   if (RSOCKET_ASAN)
index 96d144e707d48175e3dcc3ef2ff0b079b143f1f4..d88507b6f179f360cfde690db752bd461ce893d9 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libseccomp
-PKG_VERSION:=2.4.0
+PKG_VERSION:=2.4.1
 PKG_RELEASE:=1
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/seccomp/libseccomp/releases/download/v$(PKG_VERSION)/
-PKG_HASH:=2e74c7e8b54b340ad5d472e59286c6758e1e1e96c6b43c3dbdc8ddafbf0e525d
+PKG_HASH:=1ca3735249af66a1b2f762fe6e710fcc294ad7185f1cc961e5bd83f9988006e8
 PKG_MAINTAINER:=Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
 PKG_BUILD_PARALLEL:=1
@@ -26,6 +26,11 @@ PKG_CONFIG_DEPENDS:= \
 
 include $(INCLUDE_DIR)/package.mk
 
+# This is done instead of DEPENDS:=@!arc to avoid a recursive dependency when
+# the library is conditionally selected by util/lxc.
+define Package/libseccomp/config
+  depends on !arc
+endef
 
 define Package/libseccomp/Default
   SUBMENU:=
@@ -46,7 +51,6 @@ endef
 define Package/libseccomp
 $(call Package/libseccomp/Default)
   TITLE+= (library)
-  DEPENDS+=
 endef
 
 define Package/scmp_sys_resolver
diff --git a/libs/libsigar/Makefile b/libs/libsigar/Makefile
new file mode 100644 (file)
index 0000000..7a332e6
--- /dev/null
@@ -0,0 +1,40 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libsigar
+PKG_SOURCE_DATE:=2017-02-21
+PKG_SOURCE_VERSION:=a6c61edf8c64e013411e8c9d753165cd03102c6e
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/boundary/sigar/tar.gz/$(PKG_SOURCE_VERSION)?
+PKG_HASH:=5232f0fa994ab60ad4622364fad0297c0054e04f0cfec9c586b14e33bbc387da
+PKG_BUILD_DIR:=$(BUILD_DIR)/sigar-$(PKG_SOURCE_VERSION)
+
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILE:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+PKG_BUILD_PARALLEL:=1
+CMAKE_INSTALL:=1
+
+define Package/libsigar
+       SECTION:=libs
+       CATEGORY:=Libraries
+       TITLE:=System Information Gatherer And Reporter
+       URL:=https://github.com/boundary/sigar
+       DEPENDS:=+libtirpc
+       MAINTAINER:=Amol Bhave <ambhave@fb.com>
+endef
+
+define Package/libsigar/description
+       System Information Gatherer And Reporter
+endef
+
+define Package/libsigar/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsigar.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libsigar))
index babc08973bf5ce1e88a96fec58e2e6447dbac6c2..7f85982fb1955865f035e89d5170960ad8146870 100644 (file)
@@ -12,7 +12,7 @@ PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
 PKG_NAME:=libssh
 PKG_VERSION:=0.7.6
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.libssh.org/files/0.7/
diff --git a/libs/libssh/patches/010-openssl-11-deprecated.patch b/libs/libssh/patches/010-openssl-11-deprecated.patch
new file mode 100644 (file)
index 0000000..2a62d9d
--- /dev/null
@@ -0,0 +1,39 @@
+--- a/src/dh.c
++++ b/src/dh.c
+@@ -131,11 +131,15 @@ int ssh_get_random(void *where, int len, int strong){
+   return 1;
+ #elif defined HAVE_LIBCRYPTO
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+   if (strong) {
+     return RAND_bytes(where,len);
+   } else {
+     return RAND_pseudo_bytes(where,len);
+   }
++#else
++    return RAND_bytes(where,len);
++#endif
+ #endif
+   /* never reached */
+@@ -198,7 +202,9 @@ int ssh_crypto_init(void) {
+     }
+     bignum_bin2bn(p_group14_value, P_GROUP14_LEN, p_group14);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+     OpenSSL_add_all_algorithms();
++#endif
+ #endif
+@@ -219,8 +225,10 @@ void ssh_crypto_finalize(void) {
+ #ifdef HAVE_LIBGCRYPT
+     gcry_control(GCRYCTL_TERM_SECMEM);
+ #elif defined HAVE_LIBCRYPTO
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+     EVP_cleanup();
+     CRYPTO_cleanup_all_ex_data();
++#endif
+ #endif
+     ssh_crypto_initialized=0;
+   }
diff --git a/libs/libssh/patches/020-openssl-threads.patch b/libs/libssh/patches/020-openssl-threads.patch
new file mode 100644 (file)
index 0000000..1a801b3
--- /dev/null
@@ -0,0 +1,28 @@
+--- a/src/threads.c
++++ b/src/threads.c
+@@ -106,6 +106,8 @@ static int libgcrypt_thread_init(void){
+ static void **libcrypto_mutexes;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
+ static void libcrypto_lock_callback(int mode, int i, const char *file, int line){
+       (void)file;
+       (void)line;
+@@ -160,6 +162,16 @@ static void libcrypto_thread_finalize(void){
+ }
++#else
++
++static int libcrypto_thread_init(void){
++      return SSH_OK;
++}
++
++static void libcrypto_thread_finalize(void){
++}
++#endif
++
+ #endif
+ /** @internal
index 36c86120e3e17a26a68fab8ff4a0450800b46463..01b4c704ec6877fbd69b5706f30a8628a8c19263 100644 (file)
@@ -8,28 +8,28 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libusbmuxd
-PKG_VERSION:=1.1.0
-PKG_RELEASE:=2
+PKG_SOURCE_DATE:=2019-03-23
+PKG_SOURCE_VERSION:=873252dc8b4e469c7dc692064ac616104fca5f65
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Lukasz Baj <l.baj@radytek.com>
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING.LGPLv2.1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/libimobiledevice/libusbmuxd.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=4397b3376dc4e4cb1c991d0aed61ce6482614196
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=e145b567cdefb1d2536f3eec863769c77474ce9a5d9c4c81ab0a75dc6fe3056a
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/libimobiledevice/libusbmuxd/tar.gz/$(PKG_SOURCE_VERSION)?
+PKG_HASH:=47e39ce87b05ca873c16efaa517247aa9db137625dd910d566fb3cd99b4a1d18
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libusbmuxd/Default
   TITLE:=USB multiplexing daemon
-  URL:=http://www.libimobiledevice.org/
+  URL:=https://www.libimobiledevice.org/
 endef
 
 define Package/libusbmuxd/Default/description
@@ -66,7 +66,7 @@ define Package/libusbmuxd-utils/description
   This package contains the libusbmuxd utilities.
 endef
 
-TARGET_CFLAGS += $(FPIC)
+CONFIGURE_ARGS += --with-pic
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
index 4800f6de1da0728d2438ad94157b401068bb28b4..0ce7fd5433ccc4d5854b45fd6bd2f52ef627edb7 100644 (file)
@@ -8,29 +8,35 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libuwsc
-PKG_VERSION:=3.2.2
+PKG_VERSION:=3.3.1
 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:=824a29446ba12171f8f08778667c6b3a0528e18c249f0cf1f89b5f129cd2aadd
+PKG_SOURCE_URL=https://github.com/zhaojh329/libuwsc/releases/download/v$(PKG_VERSION)
+PKG_HASH:=0bfff3e11d075a125a4f4c486dd17f0cdfef546dd0581116578c0d41f0f121ee
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Jianhui Zhao <jianhuizhao329@gmail.com>
-PKG_LICENSE:=LGPL-2.1
+PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_BUILD_PARALLEL:=1
 CMAKE_INSTALL:=1
 
+PKG_CONFIG_DEPENDS:= \
+       CONFIG_LIBUWSC_openssl_LUA_BINDING \
+       CONFIG_LIBUWSC_wolfssl_LUA_BINDING \
+       CONFIG_LIBUWSC_mbedtls_LUA_BINDING \
+       CONFIG_LIBUWSC_nossl_LUA_BINDING
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libuwsc/Default
-  TITLE:=A lightweight WebSocket client library based on libev
   SECTION:=libs
   CATEGORY:=Libraries
   SUBMENU:=Networking
+  TITLE:=A lightweight WebSocket client library based on libev
   URL:=https://github.com/zhaojh329/libuwsc
   DEPENDS:=+libev $(2)
   VARIANT:=$(1)
@@ -42,6 +48,22 @@ Package/libuwsc-wolfssl=$(call Package/libuwsc/Default,wolfssl,+PACKAGE_libuwsc-
 Package/libuwsc-mbedtls=$(call Package/libuwsc/Default,mbedtls,+PACKAGE_libuwsc-mbedtls:libmbedtls)
 Package/libuwsc-nossl=$(call Package/libuwsc/Default,nossl)
 
+define Package/libuwsc/config
+menu "Configuration"
+       depends on PACKAGE_libuwsc-$(1)
+
+config LIBUWSC_$(1)_LUA_BINDING
+       bool
+       default n
+       prompt "Lua binding for libuwsc"
+endmenu
+endef
+
+Package/libuwsc-openssl/config=$(call Package/libuwsc/config,openssl)
+Package/libuwsc-wolfssl/config=$(call Package/libuwsc/config,wolfssl)
+Package/libuwsc-mbedtls/config=$(call Package/libuwsc/config,mbedtls)
+Package/libuwsc-nossl/config=$(call Package/libuwsc/config,nossl)
+
 ifeq ($(BUILD_VARIANT),openssl)
   CMAKE_OPTIONS += -DUWSC_USE_OPENSSL=ON
 else ifeq ($(BUILD_VARIANT),wolfssl)
@@ -52,9 +74,17 @@ else
   CMAKE_OPTIONS += -DUWSC_SSL_SUPPORT=OFF
 endif
 
+ifneq ($(CONFIG_LIBUWSC_$(BUILD_VARIANT)_LUA_BINDING),)
+  CMAKE_OPTIONS += -DUWSC_LUA_SUPPORT=ON
+endif
+
 define Package/libuwsc-$(BUILD_VARIANT)/install
-       $(INSTALL_DIR) $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libuwsc.so* $(1)/usr/lib/
+ifneq ($(CONFIG_LIBUWSC_$(BUILD_VARIANT)_LUA_BINDING),)
+       $(INSTALL_DIR) $(1)/usr/lib/lua
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lua/uwsc.so $(1)/usr/lib/lua
+endif
 endef
 
 $(eval $(call BuildPackage,libuwsc-openssl))
diff --git a/libs/libuwsc/patches/001-fix_find_lua.patch b/libs/libuwsc/patches/001-fix_find_lua.patch
new file mode 100644 (file)
index 0000000..d40eec4
--- /dev/null
@@ -0,0 +1,23 @@
+Index: libuwsc-3.3.1/cmake/Modules/FindLua.cmake
+===================================================================
+--- /dev/null
++++ libuwsc-3.3.1/cmake/Modules/FindLua.cmake
+@@ -0,0 +1,18 @@
++# - Try to find lua
++# Once done this will define
++#  LUA_FOUND          - System has lua
++#  LUA_INCLUDE_DIR    - The lua include directories
++#  LUA_LIBRARY        - The libraries needed to use lua
++
++find_path(LUA_INCLUDE_DIR lua.h)
++find_library(LUA_LIBRARY lua)
++
++include(FindPackageHandleStandardArgs)
++# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE
++# if all listed variables are TRUE and the requested version matches.
++find_package_handle_standard_args(Lua REQUIRED_VARS
++                                  LUA_LIBRARY LUA_INCLUDE_DIR
++                                  VERSION_VAR LUA_VERSION)
++
++mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARY)
++
diff --git a/libs/libwangle/Makefile b/libs/libwangle/Makefile
new file mode 100644 (file)
index 0000000..055c3f1
--- /dev/null
@@ -0,0 +1,41 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libwangle
+PKG_VERSION:=2019.05.06.00
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/facebook/wangle/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=de145e3748a5f71be1883ad2ea4be37e99f99fcb1838a6a258ca2c4cd0d053e7
+PKG_BUILD_DIR:=$(BUILD_DIR)/wangle-$(PKG_VERSION)
+
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+PKG_BUILD_PARALLEL:=1
+CMAKE_SOURCE_SUBDIR:=wangle
+CMAKE_OPTIONS:= \
+       -DBUILD_SHARED_LIBS=ON
+CMAKE_INSTALL:=1
+
+define Package/libwangle
+       SECTION:=libs
+       CATEGORY:=Libraries
+       TITLE:=Wangle: C++ networking library
+       DEPENDS:=+libstdcpp +libfolly +libsodium +libfizz
+endef
+
+define Package/libwangle/description
+       Wangle is a framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way.
+       This package includes the shared library.
+endef
+
+define Package/libwangle/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwangle.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libwangle))
index 480359c1ea65eff7ca72134b6324743e0f3eb728..6bbcf4f885121a3d67d6f470934f533aacd44627 100644 (file)
@@ -8,55 +8,49 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=x264
-PKG_VERSION:=snapshot-20181006-2245
+PKG_VERSION:=snapshot-20190324-2245
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://download.videolan.org/x264/snapshots/
 PKG_MAINTAINER:=Adrian Panella <ianchi74@outlook.com>
-PKG_HASH:=eae60e969958c0759554d5e338dea9b91f1f1fe85d9523c152c2259d8546f469
+PKG_HASH:=68010057edaadffc7593933d13084e8d32e041c42b17c089513d88c917f2ad54
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
-TARGET_CFLAGS:=$(filter-out -O%,$(TARGET_CFLAGS)) -std=gnu99 -fPIC -O3 -ffast-math -I.
-MAKE_FLAGS+= LD="$(TARGET_CC) -o"
+TARGET_CFLAGS:=$(filter-out -O%,$(TARGET_CFLAGS))
+MAKE_FLAGS:=$(filter-out LD=%,$(MAKE_FLAGS)) LD="$(TARGET_CC) -o"
 
-# ARM ASM depends on ARM1156 or later, blacklist earlier or incompatible cores
-# AMD Geode LX and i486 do not have SSE
-CPU_ASM_BLACKLIST:=geode i486 arm920t arm926ej-s arm1136j-s arm1176jzf-s fa526 mpcore xscale \
-                  464fp mips32 24kc 34kc 74kc octeon mips64
+# Instead of blacklisting a boatload of platforms just enable
+# optimization where it makes sense (matters) ie ARMv7+ and x86_64
 
-ifneq ($(CONFIG_SOFT_FLOAT)$(findstring $(call qstrip,$(CONFIG_CPU_TYPE)),$(CPU_ASM_BLACKLIST)),)
-  CONFIGURE_VARS+= AS= 
-  MAKE_FLAGS+= AS= 
-  CONFIGURE_ARGS += --disable-asm
-else
+ifneq ($(findstring cortex-a,$(CPU_TYPE)),)
   CONFIGURE_ARGS += --enable-lto
-ifneq ($(CONFIG_TARGET_x86),)
-ifeq ($(CONFIG_NASM),y)
-  CONFIGURE_VARS+= AS=nasm
-  MAKE_FLAGS+= AS=nasm
-else
-  CONFIGURE_VARS+= AS= 
-  MAKE_FLAGS+= AS= 
-  CONFIGURE_ARGS += --disable-asm
-endif
-endif
+  else
+  ifneq ($(CONFIG_TARGET_x86_64),)
+    CONFIGURE_ARGS += --enable-lto
+    ifeq ($(CONFIG_NASM),y)
+      CONFIGURE_VARS+= AS=nasm
+      MAKE_FLAGS+= AS=nasm
+    endif
+    else
+    CONFIGURE_ARGS += --disable-asm
+  endif
 endif
 
 CONFIGURE_ARGS += \
+               --disable-cli \
                --enable-shared \
+               --disable-opencl \
                --enable-pic \
-               --enable-strip \
-               --disable-cli \
                --disable-avs \
                --disable-ffms \
+               --disable-gpac \
                --disable-lsmash
 
 define Package/libx264
diff --git a/libs/libx264/patches/001-fix-x32-build-by-disabling-asm.patch b/libs/libx264/patches/001-fix-x32-build-by-disabling-asm.patch
new file mode 100644 (file)
index 0000000..a41d4e7
--- /dev/null
@@ -0,0 +1,48 @@
+From 66b120079fb21ed38cab0900c63360b0a7853eaa Mon Sep 17 00:00:00 2001
+From: Christopher Larson <chris_larson@mentor.com>
+Date: Tue, 13 Dec 2016 14:22:32 -0700
+Subject: [PATCH] Fix X32 build by disabling asm
+
+This applies gentoo's x32 patch, adjusted slightly, which disables asm support
+for x32 as well as correcting -m.
+
+Debian has a different patch which does the same, and there's a superior yet
+out of date patch series on the x264 list which keeps asm support enabled, but
+doesn't successfully build at this time, and my assembly is very rusty.
+
+Upstream-Status: Pending
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+---
+ configure | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+--- a/configure
++++ b/configure
+@@ -736,7 +736,13 @@ case $host_cpu in
+         AS_EXT=".asm"
+         ASFLAGS="$ASFLAGS -DARCH_X86_64=1 -I\$(SRCPATH)/common/x86/"
+         stack_alignment=16
+-        [ $compiler = GNU ] && CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
++        if [ $compiler = GNU ]; then
++            if cpp_check "" "" "__ILP32__" ; then
++                CFLAGS="-mx32 $CFLAGS" && LDFLAGS="-mx32 $LDFLAGS"
++            else
++                CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
++            fi
++        fi
+         if [ "$SYS" = MACOSX ]; then
+             ASFLAGS="$ASFLAGS -f macho64 -DPREFIX"
+             if cc_check '' "-arch x86_64"; then
+@@ -755,7 +761,11 @@ case $host_cpu in
+                 RCFLAGS="--target=pe-x86-64 $RCFLAGS"
+             fi
+         else
+-            ASFLAGS="$ASFLAGS -f elf64"
++            if cpp_check "" "" "__ILP32__" ; then
++                asm=no
++            else
++                ASFLAGS="$ASFLAGS -f elf64"
++            fi
+         fi
+         ;;
+     powerpc*)
diff --git a/libs/libx264/patches/002-dont-default-to-cortex-a9-with-neon.patch b/libs/libx264/patches/002-dont-default-to-cortex-a9-with-neon.patch
new file mode 100644 (file)
index 0000000..7062b67
--- /dev/null
@@ -0,0 +1,28 @@
+From a72bf499a0674fc75eedf15008b424e28f67e4bd Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei@gherzan.ro>
+Date: Fri, 2 Feb 2018 15:10:08 +0200
+Subject: [PATCH] dont default to cortex-a9 with neon
+
+-march flag is not in CFLAGS so this will always default to
+ -mcpu=cortex-a8 -mfpu=neon.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ configure | 3 ---
+ 1 file changed, 3 deletions(-)
+
+--- a/configure
++++ b/configure
+@@ -940,9 +940,6 @@ if [ $asm = auto -a \( $ARCH = X86 -o $A
+ fi
+ if [ $asm = auto -a $ARCH = ARM ] ; then
+-    # set flags so neon is built by default
+-    [ $compiler == CL ] || echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
+-
+     cc_check '' '' '__asm__("add r0, r1, r2");' && define HAVE_ARM_INLINE_ASM
+     if [ $compiler = CL ] && cpp_check '' '' 'defined(_M_ARM) && _M_ARM >= 7' ; then
+         define HAVE_ARMV6
index 23c1d196f2902d9a5c195edd0bdccafd8dbc04ea..3896a02c6c5570a3679a2637909b2634c718099e 100644 (file)
@@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xerces-c
 PKG_VERSION:=3.2.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@APACHE/xerces/c/3/sources
 PKG_HASH:=6daca3b23364d8d883dc77a73f681242f69389e3564543287ed3d073007e0a8e
-PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
+PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
@@ -65,9 +65,8 @@ CONFIGURE_ARGS += \
        --enable-msgloader-inmemory \
        --enable-netaccessor-socket \
        --enable-transcoder-iconv \
-       --without-pic
+       --with-pic
 
-TARGET_CFLAGS += $(FPIC)
 TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
 
 define Build/InstallDev
index 9216d7b6bc410d628ce1bc19c92333e51a012004..24c531b65a947a7bcf6cd67dc8d28396d291b159 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=loudmouth
 PKG_VERSION:=1.5.3
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/mcabber/loudmouth/tar.gz/$(PKG_VERSION)?
@@ -24,6 +24,7 @@ PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
 define Package/loudmouth
   SECTION:=libs
index 7b60452512edb235e4051a741982c966b390ca53..f78d24ec82b76f8522eaae49e8b93f4dffcc0d7c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=measurement-kit
-PKG_VERSION:=0.10.1
+PKG_VERSION:=0.10.3
 PKG_RELEASE=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/measurement-kit/measurement-kit/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=4caf856ebbb28633c7593a9b5b8ee79f0c0436d05ae7391cc59e8d72b260911a
+PKG_HASH:=04bc1832fbaa54a9fde4923e8f44a2f99610a862c228dd05977c36f54870d80f
 
 PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
diff --git a/libs/measurement-kit/patches/003-fix-openssl-depredecated-api.patch b/libs/measurement-kit/patches/003-fix-openssl-depredecated-api.patch
new file mode 100644 (file)
index 0000000..9afc65e
--- /dev/null
@@ -0,0 +1,28 @@
+From 45904ae4548c848d053bea20e2f3e38189043c3a Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Fri, 3 May 2019 23:37:10 -0700
+Subject: [PATCH] Fix compilation without deprecated OpenSSL APIs (#1785)
+
+Initialization is deprecated and causes compile errors with OpenSSL 1.1 when
+deprecated APIs are disabled.
+---
+ src/libmeasurement_kit/net/libssl.hpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/libmeasurement_kit/net/libssl.hpp b/src/libmeasurement_kit/net/libssl.hpp
+index eacee86ae..d1cecebbb 100644
+--- a/src/libmeasurement_kit/net/libssl.hpp
++++ b/src/libmeasurement_kit/net/libssl.hpp
+@@ -38,10 +38,12 @@ static inline void libssl_init_once(SharedPtr<Logger> logger) {
+         static bool initialized = false;
+         if (!initialized) {
+             logger->debug2("initializing libssl once");
++#if OPENSSL_VERSION_NUMBER < 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+             SSL_library_init();
+             ERR_load_crypto_strings();
+             SSL_load_error_strings();
+             OpenSSL_add_all_algorithms();
++#endif
+             initialized = true;
+         }
+     });
index c2d57f16a03aa7c724fb2f4d7a772475dcebbc02..bec217b227dc11282576201261f6b4abbe3b90f0 100644 (file)
@@ -7,8 +7,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nss
-PKG_VERSION:=3.43
-PKG_RELEASE:=2
+PKG_VERSION:=3.44
+PKG_RELEASE:=1
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
 PKG_LICENCE:=MPL-2.0
 
@@ -16,7 +16,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
     https://download.cdn.mozilla.net/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src \
     https://archive.mozilla.org/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src
-PKG_HASH:=f30bc1b7330887b75de9fec37dbc173001758dc43fb095ffbc45dac4093fe2ca
+PKG_HASH:=a5620e59b6eeedfd5a12c9298b50ad92e9898b223e214eb675e36f4ffb5b6aff
 
 PKG_BUILD_PARALLEL:=0
 
index 1f141ebd252cc824b9a78f6359c55ccdccde56fa..8d1cc09b1c063cdcd25d1544d285892811db4345 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcre
-PKG_VERSION:=8.42
-PKG_RELEASE:=2
+PKG_VERSION:=8.43
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=2cd04b7c887808be030254e8d77de11d3fe9d4505c39d4b15d2664ffe8bf9301
+PKG_HASH:=91e762520003013834ac1adb4a938d53b22a216341c061b0cf05603b290faf6b
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 
 PKG_LICENSE:=BSD-3-Clause
index d5bc72d3083f98d5bbc211069a0c88c0cc38f62a..4363200acccf1da7fecbfce11cdacf883e18fc25 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=quasselc
 PKG_SOURCE_DATE:=2017-01-11
 PKG_SOURCE_VERSION:=a0a1e6bd87d3eac68b5369972d1c2035cfe47e94
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/phhusson/QuasselC/tar.gz/$(PKG_SOURCE_VERSION)?
@@ -25,6 +25,7 @@ PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
 MAKE_FLAGS += prefix=$(STAGING_DIR)/usr libdir=$(STAGING_DIR)/usr/lib includedir=$(STAGING_DIR)/usr/include
 MAKE_INSTALL_FLAGS += prefix=/usr libdir=/usr/lib includedir=/usr/include
index 8a5d3ba14772f650ae6039391e56fd3d051cab0e..9ac11f00c1d9e066d8d2953072ab7ed1cc135c39 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dovecot
-PKG_VERSION:=2.3.5.2
+PKG_VERSION:=2.3.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.dovecot.org/releases/2.3
-PKG_HASH:=ba14e41aefd81a868a35b83bcb54194116106424d37690519b50ea83c0f31bf2
-PKG_LICENSE:=LGPL-2.1 MIT BSD-3-Clause Unique
+PKG_HASH:=ed1d8dc1beeae9c6c73deac73a62ef19fe9262fbffd86604a3f690452f5536c7
+PKG_LICENSE:=LGPL-2.1-only MIT BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL COPYING.MIT
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
 
@@ -105,6 +105,7 @@ CONFIGURE_ARGS += \
        --without-lzma \
        --without-lz4 \
        --without-sodium \
+       --without-docs \
        $(if $(CONFIG_DOVECOT_GSSAPI),--with-gssapi=yes,--with-gssapi=no) \
        $(if $(CONFIG_DOVECOT_LDAP),--with-ldap=yes,--with-ldap=no) \
        $(if $(CONFIG_DOVECOT_MYSQL),--with-mysql=yes,--with-mysql=no) \
@@ -137,15 +138,12 @@ endef
 define Package/dovecot/install
        $(INSTALL_DIR)  $(1)/etc/init.d \
                        $(1)/etc/dovecot \
-                       $(1)/usr/share/doc/dovecot \
                        $(1)/usr/lib/dovecot \
                        $(1)/usr/libexec/dovecot \
                        $(1)/usr/bin \
                        $(1)/usr/sbin
-       $(CP) $(PKG_INSTALL_DIR)/etc/dovecot/* $(1)/etc/dovecot/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/dovecot/* $(1)/usr/lib/dovecot/
        $(CP) $(PKG_INSTALL_DIR)/usr/libexec/dovecot/* $(1)/usr/libexec/dovecot/
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/dovecot/example-config $(1)/usr/share/doc/dovecot/
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/doveconf $(1)/usr/bin/
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
        $(INSTALL_BIN) ./files/dovecot.init $(1)/etc/init.d/dovecot
index 25a2e137a06141e6cd7ab2fde636ab034f4c51ea..6bbabf0214561b5a495553c4397c82c931e4c2b4 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=msmtp
 PKG_VERSION:=1.8.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://marlam.de/msmtp/releases
@@ -103,10 +103,6 @@ CONFIGURE_ARGS += \
        --without-macosx-keyring \
        --without-msmtpd
 
-ifneq ($(CONFIG_USE_UCLIBC),)
-  CONFIGURE_ARGS += --disable-gai-idn
-endif
-
 ifeq ($(BUILD_VARIANT),ssl)
        CONFIGURE_ARGS += --with-tls=gnutls
 else
index 3c499c2523d65f4a5abc402b0229e510a29dd941..f25e054a9d875f636b83a46bbd2f2ec65cb08c19 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=postfix
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_VERSION:=3.4.4
 PKG_SOURCE_URL:= \
        https://cdn.postfix.johnriley.me/mirrors/postfix-release/official/ \
diff --git a/mail/postfix/patches/950-dns_lookup-Fix-compilation-with-uClibc-ng.patch b/mail/postfix/patches/950-dns_lookup-Fix-compilation-with-uClibc-ng.patch
new file mode 100644 (file)
index 0000000..2bc874f
--- /dev/null
@@ -0,0 +1,36 @@
+From 4fe5b1f216f1643080299bdb35e07f07b9c2caae Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Thu, 2 May 2019 22:28:57 -0700
+Subject: [PATCH] dns_lookup: Fix compilation with uClibc-ng
+
+uClibc-ng does not have res_send or res_nsend. ifdef the entire function.
+---
+ src/dns/dns_lookup.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/dns/dns_lookup.c b/src/dns/dns_lookup.c
+index 1ea98b3..d7771d4 100644
+--- a/src/dns/dns_lookup.c
++++ b/src/dns/dns_lookup.c
+@@ -311,6 +311,10 @@ typedef struct DNS_REPLY {
+ static int dns_res_query(const char *name, int class, int type,
+                                unsigned char *answer, int anslen)
+ {
++#ifdef __UCLIBC__
++    msg_info("dns_res_query() is not supported under uClibc");
++    return 0;
++#else
+     unsigned char msg_buf[MAX_DNS_QUERY_SIZE];
+     HEADER *reply_header = (HEADER *) answer;
+     int     len;
+@@ -369,6 +373,7 @@ static int dns_res_query(const char *name, int class, int type,
+       }
+       return (len);
+     }
++#endif
+ }
+ /* dns_res_search - res_search() that can return negative replies */
+-- 
+2.17.1
+
index 4a41a9f38c9a97d27792a179e2226608930b18a0..9108b92963604a9b4c952caa3c27fe96de309956 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tvheadend
 PKG_VERSION:=4.0.10
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/tvheadend/tvheadend/tar.gz/v$(PKG_VERSION)?
@@ -72,8 +72,6 @@ CONFIGURE_ARGS += \
        --disable-libav \
        --enable-bundle
 
-TARGET_CFLAGS += -Wno-error=pointer-compare
-
 define Build/Prepare
        $(call Build/Prepare/Default)
        echo 'Tvheadend $(shell echo $(PKG_SOURCE_VERSION) | sed "s/^v//")~openwrt$(PKG_RELEASE)' \
diff --git a/multimedia/tvheadend/patches/020-strncpy-issue.patch b/multimedia/tvheadend/patches/020-strncpy-issue.patch
new file mode 100644 (file)
index 0000000..e9dc910
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 8c5e380..baef144 100644
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ PROG    := $(BUILDDIR)/tvheadend
+ #
+ CFLAGS  += -g -O2 -Wunused-result
+-CFLAGS  += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations
++#CFLAGS  += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations
+ CFLAGS  += -Wmissing-prototypes
+ CFLAGS  += -fms-extensions -funsigned-char -fno-strict-aliasing
+ CFLAGS  += -D_FILE_OFFSET_BITS=64
index f2e284c89756b65e096192a26432c853aca3b194..62a8c7537c14c485fd8ae3ce57f58b768ae38819 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=youtube-dl
-PKG_VERSION:=2019.4.30
+PKG_VERSION:=2019.5.11
 PKG_RELEASE:=1
 
 PKG_SOURCE:=youtube_dl-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/y/youtube_dl/
-PKG_HASH:=31844229a4f4d7003e03ab309ff2caff1b16ce0acbd3cfb7a13276058af13056
+PKG_HASH:=fe71aa725dc0f86deacdcc91f38492317d53b0ca8ec0f8bddc9961c205b4fea4
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/youtube_dl-$(PKG_VERSION)
 
index 612825cbcdec58755517c19ad88108704a0c03e2..5cf2127c3e8e4c0e0ca480f3677314f438729d4c 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=banip
-PKG_VERSION:=0.1.0
+PKG_VERSION:=0.1.1
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
index 7de03e8af66d383b8276a1b7db2a1d9d254d90b3..f658c445ba2e38db04dd98dbcd5b4ea186628b14 100644 (file)
@@ -10,7 +10,7 @@ config banip 'global'
 config banip 'extra'
        option ban_debug '0'
        option ban_backup '0'
-       option ban_maxqueue '8'
+       option ban_maxqueue '4'
 
 config source 'whitelist'
        option ban_src '/etc/banip/banip.whitelist'
index b12aed6b1aec7a1e3957cc3c366f461e0f6d8313..a55db3e02d454edb59e4d1ee3f98852c0511e2fb 100755 (executable)
@@ -10,7 +10,7 @@
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-ban_ver="0.1.0"
+ban_ver="0.1.1"
 ban_sysver="unknown"
 ban_enabled=0
 ban_automatic="1"
@@ -19,7 +19,7 @@ ban_debug=0
 ban_backup=0
 ban_backupboot=0
 ban_backupdir="/mnt"
-ban_maxqueue=8
+ban_maxqueue=4
 ban_fetchutil="uclient-fetch"
 ban_ip="$(command -v ip)"
 ban_ipt="$(command -v iptables)"
@@ -257,7 +257,7 @@ f_iptrule()
                rc="$("${ban_ipt6}" "${timeout}" -C ${rule} 2>/dev/null; printf '%u' ${?})"
 
                if ([ ${rc} -ne 0 ] && ([ "${action}" = "-A" ] || [ "${action}" = "-I" ])) \
-                  || ([ ${rc} -eq 0 ] && [ "${action}" = "-D" ])
+                       || ([ ${rc} -eq 0 ] && [ "${action}" = "-D" ])
                then
                        "${ban_ipt6}" "${timeout}" "${action}" ${rule}
                fi
@@ -265,7 +265,7 @@ f_iptrule()
                rc="$("${ban_ipt}" "${timeout}" -C ${rule} 2>/dev/null; printf '%u' ${?})"
 
                if ([ ${rc} -ne 0 ] && ([ "${action}" = "-A" ] || [ "${action}" = "-I" ])) \
-                  || ([ ${rc} -eq 0 ] && [ "${action}" = "-D" ])
+                       || ([ ${rc} -eq 0 ] && [ "${action}" = "-D" ])
                then
                        "${ban_ipt}" "${timeout}" "${action}" ${rule}
                fi
@@ -678,7 +678,7 @@ f_main()
 
                        if [ ${ban_rc} -eq 0 ]
                        then
-                               awk "${src_rset}" "${tmp_load}" 2>/dev/null | sort -u > "${tmp_file}"
+                               awk "${src_rset}" "${tmp_load}" 2>/dev/null > "${tmp_file}"
                                ban_rc=${?}
                                if [ ${ban_rc} -eq 0 ]
                                then
index c6cc67c94d60aa8e4cda9067a40ac57179f4ddc9..b08d158b6acfd5cd5613e06207832ebcd8058951 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=chrony
-PKG_VERSION:=3.4
+PKG_VERSION:=3.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://download.tuxfamily.org/chrony/
-PKG_HASH:=af77e47c2610a7e55c8af5b89a8aeff52d9a867dd5983d848b52d374bc0e6b9f
+PKG_HASH:=4e02795b1260a4ec51e6ace84149036305cc9fc340e65edb9f8452aa611339b5
 
 PKG_MAINTAINER:=Miroslav Lichvar <mlichvar0@gmail.com>
 PKG_LICENSE:=GPL-2.0
diff --git a/net/chrony/patches/001-freebind_uclibc.patch b/net/chrony/patches/001-freebind_uclibc.patch
deleted file mode 100644 (file)
index 7a3dd82..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/sysincl.h b/sysincl.h
-index a9e4da0..e2a6e78 100644
---- a/sysincl.h
-+++ b/sysincl.h
-@@ -80,4 +80,8 @@
- #include <sys/random.h>
- #endif
-+#if defined(LINUX) && !defined(IP_FREEBIND)
-+#define IP_FREEBIND 15
-+#endif
-+
- #endif /* GOT_SYSINCL_H */
diff --git a/net/chrony/patches/002-undefined_MIN.patch b/net/chrony/patches/002-undefined_MIN.patch
deleted file mode 100644 (file)
index 9381b8d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/hash_intmd5.c
-+++ b/hash_intmd5.c
-@@ -29,6 +29,7 @@
- #include "sysincl.h"
- #include "hash.h"
- #include "memory.h"
-+#include "util.h"
- #include "md5.c"
index 52c904632bcdda63e68ac993307a22cff7c4e506..fa417df5407602f0f440898316b4f2b9dc386775 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freeradius3
 PKG_VERSION:=release_3_0_19
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/FreeRADIUS/freeradius-server/archive
@@ -381,7 +381,7 @@ define Package/freeradius3-mod-sql-postgresql
   TITLE:=Radius PostgreSQL back-end drivers
 endef
 
-define Package/freeradius3-mod-sql-mysql/conffiles
+define Package/freeradius3-mod-sql-postgresql/conffiles
 /etc/freeradius3/mods-config/sql/main/postgresql
 endef
 
@@ -391,7 +391,7 @@ define Package/freeradius3-mod-sql-sqlite
   TITLE:=Radius SQLite back-end drivers
 endef
 
-define Package/freeradius3-mod-sql-mysql/conffiles
+define Package/freeradius3-mod-sql-sqlite/conffiles
 /etc/freeradius3/mods-config/sql/main/sqlite
 endef
 
index b8e79634b9419e09da222dec2f764be60523f0bf..0bca8f56d49cc90f1e356f99cb347c6fe7a01d7d 100644 (file)
@@ -7,16 +7,17 @@
 
 include $(TOPDIR)/rules.mk
 
-PKG_LICENSE:=ASL-2.0
-PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
-
 PKG_NAME:=go-ethereum
-PKG_VERSION:=1.8.21
-PKG_RELEASE:=1
+PKG_VERSION:=1.8.27
+PKG_RELEASE:=2
 
 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:=736028b4babd44d67a70a4a7883a06e97263449805c8c067b7dfd77e9fa94299
+PKG_HASH:=45d264106991d0e2a4c34ac5d6539fc9460c768fc70588ea38a25f467039ece8
+
+PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
+PKG_LICENSE:=GPL-3 LGPL-3
+PKG_LICENSE_FILES:=COPYING COPYING.LESSER
 
 PKG_BUILD_DEPENDS:=golang/host
 PKG_BUILD_PARALLEL:=1
diff --git a/net/geth/patches/010-crypto-bn256-cloudflare-pull-in-upstream-fix-for-Go-.patch b/net/geth/patches/010-crypto-bn256-cloudflare-pull-in-upstream-fix-for-Go-.patch
new file mode 100644 (file)
index 0000000..ee2b096
--- /dev/null
@@ -0,0 +1,127 @@
+From 39bd2609ca730b3b628003b3f938aed7d49132ab Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= <peterke@gmail.com>
+Date: Thu, 28 Feb 2019 14:53:44 +0200
+Subject: [PATCH] crypto/bn256/cloudflare: pull in upstream fix for Go 1.12 R18
+
+---
+ crypto/bn256/cloudflare/mul_arm64.h | 32 ++++++++++++++---------------
+ 1 file changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/crypto/bn256/cloudflare/mul_arm64.h b/crypto/bn256/cloudflare/mul_arm64.h
+index 75d52217311..d405eb8f728 100644
+--- a/crypto/bn256/cloudflare/mul_arm64.h
++++ b/crypto/bn256/cloudflare/mul_arm64.h
+@@ -12,7 +12,7 @@
+       UMULH R1, R8, c4 \
+       ADCS ZR, c4 \
+       \
+-      MUL R2, R5, R25 \
++      MUL R2, R5, R1 \
+       UMULH R2, R5, R26 \
+       MUL R2, R6, R0 \
+       ADDS R0, R26 \
+@@ -24,13 +24,13 @@
+       ADCS R0, R29 \
+       UMULH R2, R8, c5 \
+       ADCS ZR, c5 \
+-      ADDS R25, c1 \
++      ADDS R1, c1 \
+       ADCS R26, c2 \
+       ADCS R27, c3 \
+       ADCS R29, c4 \
+       ADCS  ZR, c5 \
+       \
+-      MUL R3, R5, R25 \
++      MUL R3, R5, R1 \
+       UMULH R3, R5, R26 \
+       MUL R3, R6, R0 \
+       ADDS R0, R26 \
+@@ -42,13 +42,13 @@
+       ADCS R0, R29 \
+       UMULH R3, R8, c6 \
+       ADCS ZR, c6 \
+-      ADDS R25, c2 \
++      ADDS R1, c2 \
+       ADCS R26, c3 \
+       ADCS R27, c4 \
+       ADCS R29, c5 \
+       ADCS  ZR, c6 \
+       \
+-      MUL R4, R5, R25 \
++      MUL R4, R5, R1 \
+       UMULH R4, R5, R26 \
+       MUL R4, R6, R0 \
+       ADDS R0, R26 \
+@@ -60,7 +60,7 @@
+       ADCS R0, R29 \
+       UMULH R4, R8, c7 \
+       ADCS ZR, c7 \
+-      ADDS R25, c3 \
++      ADDS R1, c3 \
+       ADCS R26, c4 \
+       ADCS R27, c5 \
+       ADCS R29, c6 \
+@@ -69,15 +69,15 @@
+ #define gfpReduce() \
+       \ // m = (T * N') mod R, store m in R1:R2:R3:R4
+       MOVD ·np+0(SB), R17 \
+-      MOVD ·np+8(SB), R18 \
++      MOVD ·np+8(SB), R25 \
+       MOVD ·np+16(SB), R19 \
+       MOVD ·np+24(SB), R20 \
+       \
+       MUL R9, R17, R1 \
+       UMULH R9, R17, R2 \
+-      MUL R9, R18, R0 \
++      MUL R9, R25, R0 \
+       ADDS R0, R2 \
+-      UMULH R9, R18, R3 \
++      UMULH R9, R25, R3 \
+       MUL R9, R19, R0 \
+       ADCS R0, R3 \
+       UMULH R9, R19, R4 \
+@@ -86,9 +86,9 @@
+       \
+       MUL R10, R17, R21 \
+       UMULH R10, R17, R22 \
+-      MUL R10, R18, R0 \
++      MUL R10, R25, R0 \
+       ADDS R0, R22 \
+-      UMULH R10, R18, R23 \
++      UMULH R10, R25, R23 \
+       MUL R10, R19, R0 \
+       ADCS R0, R23 \
+       ADDS R21, R2 \
+@@ -97,7 +97,7 @@
+       \
+       MUL R11, R17, R21 \
+       UMULH R11, R17, R22 \
+-      MUL R11, R18, R0 \
++      MUL R11, R25, R0 \
+       ADDS R0, R22 \
+       ADDS R21, R3 \
+       ADCS R22, R4 \
+@@ -107,19 +107,19 @@
+       \
+       \ // m * N
+       loadModulus(R5,R6,R7,R8) \
+-      mul(R17,R18,R19,R20,R21,R22,R23,R24) \
++      mul(R17,R25,R19,R20,R21,R22,R23,R24) \
+       \
+       \ // Add the 512-bit intermediate to m*N
+-      MOVD  ZR, R25 \
++      MOVD  ZR, R0 \
+       ADDS  R9, R17 \
+-      ADCS R10, R18 \
++      ADCS R10, R25 \
+       ADCS R11, R19 \
+       ADCS R12, R20 \
+       ADCS R13, R21 \
+       ADCS R14, R22 \
+       ADCS R15, R23 \
+       ADCS R16, R24 \
+-      ADCS  ZR, R25 \
++      ADCS  ZR, R0 \
+       \
+       \ // Our output is R21:R22:R23:R24. Reduce mod p if necessary.
+       SUBS R5, R21, R10 \
index 6cf315a9576647eb9d1a97f898a19729feaa0648..be8c46609c7bae90eafea6bd28c43d7bb8360108 100644 (file)
@@ -2,11 +2,11 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnunet
 
-PKG_VERSION:=0.11.3
+PKG_VERSION:=0.11.4
 PKG_RELEASE:=1
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/gnunet
-PKG_HASH:=2405db9232ae6ded57e7ff513abdf810c65e3861823b3985717ce990b8d87a37
+PKG_HASH:=7afeb638bd8b5a33c6b8dab24b90c5d7467439adc79794ff33218e9180f8b01b
 
 PKG_LICENSE:=AGPL-3.0
 PKG_LICENSE_FILES:=COPYING
@@ -213,7 +213,6 @@ PLUGIN_transport-http_client:=transport_http_client transport_https_client
 
 DEPENDS_transport-http_server:=+libmicrohttpd-ssl
 PLUGIN_transport-http_server:=transport_http_server transport_https_server
-BIN_transport-http_server:=transport-certificate-creation
 
 PLUGIN_transport-tcp:=transport_tcp
 
@@ -241,7 +240,7 @@ CONF_fs:=fs
 
 DEPENDS_gns:=+gnunet-vpn +iptables-mod-extra
 USERID_gns:=gnunet=958:gnunetdns=452
-BIN_gns:=gns gns-import.sh gns-proxy-setup-ca namecache namestore resolver zoneimport 
+BIN_gns:=gns gns-import.sh namecache namestore resolver zoneimport 
 LIB_gns:=gns gnsrecord namecache namestore
 PLUGIN_gns:=block_dns block_gns gnsrecord_conversation gnsrecord_dns gnsrecord_gns
 LIBEXEC_gns:=dns2gns helper-dns service-dns service-gns service-namecache service-namestore service-resolver service-zonemaster
@@ -265,7 +264,7 @@ BIN_reclaim:=credential reclaim
 LIB_reclaim:=consensus credential abe reclaim reclaimattribute secretsharing
 LIBEXEC_reclaim:=service-consensus service-credential service-reclaim service-secretsharing
 CONF_reclaim:=consensus credential reclaim secretsharing
-PLUGIN_reclaim:=block_consensus gnsrecord_credential gnsrecord_reclaim reclaim_attribute_gnuid reclaim_sqlite
+PLUGIN_reclaim:=block_consensus gnsrecord_credential gnsrecord_reclaim reclaim_attribute_gnuid
 
 DEPENDS_rest:=+gnunet-gns +gnunet-reclaim +libmicrohttpd-ssl +jansson
 LIB_rest:=rest json
diff --git a/net/gnunet/patches/001-fix-libgnunetabe-build.patch b/net/gnunet/patches/001-fix-libgnunetabe-build.patch
deleted file mode 100644 (file)
index ed7474a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/src/abe/Makefile.am b/src/abe/Makefile.am
-index 23a7ae68e..cccd3ccb0 100644
---- a/src/abe/Makefile.am
-+++ b/src/abe/Makefile.am
-@@ -20,6 +20,8 @@ libgnunetabe_la_LIBADD = \
-   $(LTLIBICONV) \
-   $(LTLIBINTL) \
-       $(ABE_LIBADD) \
-+      $(top_builddir)/src/util/libgnunetutil.la \
-+      -lgmp \
-       -lgabe \
-       -lpbc \
-       -lglib-2.0 \
-diff --git a/src/reclaim/Makefile.am b/src/reclaim/Makefile.am
-index 13918508e..be50cce26 100644
---- a/src/reclaim/Makefile.am
-+++ b/src/reclaim/Makefile.am
-@@ -99,6 +99,7 @@ libgnunet_plugin_reclaim_sqlite_la_LIBADD = \
-   libgnunetreclaim.la  \
-   $(top_builddir)/src/sq/libgnunetsq.la \
-   $(top_builddir)/src/statistics/libgnunetstatistics.la \
-+      $(top_builddir)/src/reclaim-attribute/libgnunetreclaimattribute.la \
-   $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) -lsqlite3 \
-   $(LTLIBINTL)
- libgnunet_plugin_reclaim_sqlite_la_LDFLAGS = \
-@@ -126,6 +127,7 @@ libgnunetreclaim_la_SOURCES = \
-  reclaim.h
- libgnunetreclaim_la_LIBADD = \
-   $(top_builddir)/src/util/libgnunetutil.la \
-+      $(top_builddir)/src/reclaim-attribute/libgnunetreclaimattribute.la \
-       $(GN_LIBINTL) $(XLIB)
- libgnunetreclaim_la_LDFLAGS = \
-       $(GN_LIB_LDFLAGS)  $(WINFLAGS) \
index 0a64aca83af512b7a1ae89f8f09c1f58cec8a15a..085e6aad6d5df7ab3d274201a0402b2574055e94 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnurl
-PKG_VERSION:=7.64.0
+PKG_VERSION:=7.64.1
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://ftp.gnu.org/gnu/gnunet
 
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=68b68a1be6a04f514a863eaac0d6b89f935833aff4e60bc2bcac472a465c755f
+PKG_HASH:=8ea67d505e2576f00d8a09485e6c04396af75388c17d77087a140f05e0ca2a96
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
index f58c1e028402ad40170ebfb6939187a6e43c4603..0a2a5ee815ae3eb7fc58b488c0bfadecc9b76cd0 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ibrdtnd
 PKG_VERSION:=1.0.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
diff --git a/net/ibrdtnd/patches/010-no-const.patch b/net/ibrdtnd/patches/010-no-const.patch
new file mode 100644 (file)
index 0000000..a6c80db
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/src/routing/SchedulingBundleIndex.cpp
++++ b/src/routing/SchedulingBundleIndex.cpp
+@@ -28,7 +28,7 @@ namespace dtn
+               void SchedulingBundleIndex::remove(const dtn::data::BundleID &id)
+               {
+                       ibrcommon::MutexLock l(_index_mutex);
+-                      for (priority_index::const_iterator iter = _priority_index.begin(); iter != _priority_index.end(); ++iter)
++                      for (priority_index::iterator iter = _priority_index.begin(); iter != _priority_index.end(); ++iter)
+                       {
+                               const dtn::data::MetaBundle &b = (*iter);
+                               if (id == (const dtn::data::BundleID&)b) {
+--- a/src/storage/MemoryBundleStorage.cpp
++++ b/src/storage/MemoryBundleStorage.cpp
+@@ -217,7 +217,7 @@ namespace dtn
+                       ibrcommon::MutexLock l(_bundleslock);
+                       // search for the bundle in the bundle list
+-                      const bundle_list::const_iterator iter = find(_bundles.begin(), _bundles.end(), id);
++                      const bundle_list::iterator iter = find(_bundles.begin(), _bundles.end(), id);
+                       // if no bundle was found throw an exception
+                       if (iter == _bundles.end()) throw NoBundleFoundException();
+--- a/src/storage/MetaStorage.cpp
++++ b/src/storage/MetaStorage.cpp
+@@ -66,7 +66,7 @@ namespace dtn
+               {
+                       std::set<dtn::data::EID> ret;
+-                      for (dtn::data::BundleList::const_iterator iter = begin(); iter != end(); ++iter)
++                      for (const_iterator iter = begin(); iter != end(); ++iter)
+                       {
+                               const dtn::data::MetaBundle &bundle = (*iter);
diff --git a/net/ibrdtnd/patches/020-uClibc-ng.patch b/net/ibrdtnd/patches/020-uClibc-ng.patch
new file mode 100644 (file)
index 0000000..abe2209
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/src/security/SecurityCertificateManager.cpp
++++ b/src/security/SecurityCertificateManager.cpp
+@@ -23,6 +23,7 @@
+ #include "Configuration.h"
+ #include <cstdlib>
++#include <cstring>
+ #include <ibrcommon/Logger.h>
+ #include <ibrcommon/ssl/TLSStream.h>
+--- a/src/security/SecurityManager.cpp
++++ b/src/security/SecurityManager.cpp
+@@ -28,6 +28,7 @@
+ #include <ibrdtn/security/PayloadConfidentialBlock.h>
+ #include <ibrdtn/security/ExtensionSecurityBlock.h>
+ #include <ibrcommon/Logger.h>
++#include <cstring>
+ #ifdef __DEVELOPMENT_ASSERTIONS__
+ #include <cassert>
index e6cf46c398ae772ed16ced2a82f6a63e988ea1c1..bf4d2f50b798b85d6defb2250ec091de91861338 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iodine
 PKG_VERSION:=0.7.0
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://code.kryo.se/iodine/
index 17ddc04836367cfead8544eed3fea78874cc36b7..ef55c3c52c31dc2df1c02ded9c238e9d7e3b41df 100644 (file)
@@ -20,7 +20,7 @@ index 2715979..5f0e370 100644
  
  /* daemon(3) exists only in 4.4BSD or later, and in GNU libc */
 -#if !defined(ANDROID) && !defined(WINDOWS32) && !(defined(BSD) && (BSD >= 199306)) && !defined(__GLIBC__)
-+#ifdef __UCLIBC__
++#ifdef __NO_DAEMON__
  static int daemon(int nochdir, int noclose)
  {
        int fd, i;
index 73196dd8283701566a3eaee4c239cfdb08236845..24da2bc246f27e1c717e323637d72b751db8b9c9 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=keepalived
-PKG_VERSION:=2.0.15
+PKG_VERSION:=2.0.16
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.keepalived.org/software
-PKG_HASH:=933ee01bc6346aa573453b998f87510d3cce4aba4537c9642b24e6dbfba5c6f4
+PKG_HASH:=f0c7dc86147a286913c1c2c918f557735016285d25779d4d2fce5732fcb888df
 
 PKG_CPE_ID:=cpe:/a:keepalived:keepalived
 PKG_LICENSE:=GPL-2.0+
index 2ba3643e203f102877aa6667d8dab2510008d1f2..d968081594b562e36d4ed99defcfaa71c7fd774e 100644 (file)
@@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=linuxptp
 PKG_VERSION:=2.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
-PKG_MAINTAINER:=Wojciech Dubowik <Wojciech.Dubowik@neratec.com>
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)/v$(PKG_VERSION)
 PKG_HASH:=0a24d9401e87d4af023d201e234d91127d82c350daad93432106284aa9459c7d
 
+PKG_MAINTAINER:=Wojciech Dubowik <Wojciech.Dubowik@neratec.com>
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
@@ -27,7 +27,6 @@ define Package/linuxptp
   SUBMENU:=Time Synchronization
   TITLE:=Linux Precision Time Protocol (PTP) daemon
   URL:=http://linuxptp.sourceforge.net/
-  DEPENDS:=@!USE_UCLIBC +librt
 endef
 
 define Package/linuxptp/description
diff --git a/net/lora-gateway-hal/Config.in b/net/lora-gateway-hal/Config.in
new file mode 100644 (file)
index 0000000..3fc61d1
--- /dev/null
@@ -0,0 +1,13 @@
+# libloragw configuration
+
+if PACKAGE_libloragw
+
+config SX1301_SPI_PATH
+       string "SPI Dev Path"
+       default /dev/spidev0.0
+
+config SX1301_SPI_SPEED
+       string "SPI Speed (Hz)"
+       default 8000000
+
+endif
diff --git a/net/lora-gateway-hal/Makefile b/net/lora-gateway-hal/Makefile
new file mode 100644 (file)
index 0000000..d71d181
--- /dev/null
@@ -0,0 +1,95 @@
+#
+# Copyright (C) 2019 Xue Liu <liuxuenetmail@gmail>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=lora-gateway-hal
+PKG_VERSION:=5.0.1
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=https://codeload.github.com/Lora-net/lora_gateway/tar.gz/v$(PKG_VERSION)?
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=1a0447d5e8183d08e6dce5f739f6872b9c57824b98f4078830d5ee21b15782c1
+PKG_MAINTAINER:=Xue Liu <liuxuenetmail@gmail.com>
+PKG_LICENSE_FILES:=LICENSE
+PKG_BUILD_DIR:=$(BUILD_DIR)/lora_gateway-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/libloragw
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=Driver/HAL library for Semtech SX1301
+  URL:=https://www.semtech.com/products/wireless-rf/lora-gateways/sx1301
+  DEPENDS:=+kmod-spi-dev @(!PACKAGE_lora-picogw-hal)
+endef
+
+define Package/libloragw/description
+  Driver/HAL library for Semtech SX1301 multi-channel modem and
+  SX1257/SX1255 RF transceivers.
+endef
+
+define Package/libloragw/config
+       source "$(SOURCE)/Config.in"
+endef
+
+define Package/libloragw-tests
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=LoRaWAN
+  TITLE:=Test programs for libloragw to check functionality
+  DEPENDS:=+libloragw
+endef
+
+define Package/libloragw-utils
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=LoRaWAN
+  TITLE:=Utility programs for libloragw
+  DEPENDS:=+libloragw
+endef
+
+CMAKE_OPTIONS += \
+               -DSPI_DEV_PATH:FILEPATH=$(CONFIG_SX1301_SPI_PATH) \
+               -DSPI_SPEED:STRING=$(CONFIG_SX1301_SPI_SPEED) \
+               -Dlora_gateway_build_shared_libs=ON
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/libloragw
+       $(CP) $(PKG_BUILD_DIR)/libloragw/inc/loragw_* $(1)/usr/include/libloragw
+       $(CP) $(PKG_BUILD_DIR)/libloragw/config.h $(1)/usr/include/libloragw
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/libloragw/libloragw.so* $(1)/usr/lib/
+       $(LN) libloragw.so.0 $(1)/usr/lib/libloragw.so
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_BUILD_DIR)/loragw.pc  $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libloragw/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/libloragw/libloragw.so.* $(1)/usr/lib/
+endef
+
+define Package/libloragw-tests/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/libloragw/test* $(1)/usr/sbin
+endef
+
+define Package/libloragw-utils/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/util_lbt_test $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/util_pkt_logger $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/util_spectral_scan $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/util_tx_continuous $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/util_spi_stress $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/util_tx_test $(1)/usr/sbin
+endef
+
+$(eval $(call BuildPackage,libloragw))
+$(eval $(call BuildPackage,libloragw-tests))
+$(eval $(call BuildPackage,libloragw-utils))
diff --git a/net/lora-gateway-hal/patches/0001-add-cmake-support.patch b/net/lora-gateway-hal/patches/0001-add-cmake-support.patch
new file mode 100644 (file)
index 0000000..e41e2dd
--- /dev/null
@@ -0,0 +1,496 @@
+From d49e5ea2988b2086c7deaa40d3e077531e449844 Mon Sep 17 00:00:00 2001
+From: Xue Liu <liuxuenetmail@gmail.com>
+Date: Thu, 21 Feb 2019 00:27:42 +0100
+Subject: [PATCH 1/3] - add cmake support
+
+Signed-off-by: Xue Liu <liuxuenetmail@gmail.com>
+---
+ CMakeLists.txt                    |  77 +++++++++++++++
+ cmake/loragw-config.cmake         |   1 +
+ libloragw/CMakeLists.txt          | 150 ++++++++++++++++++++++++++++++
+ libloragw/loragw.pc.in            |  10 ++
+ libloragw/loragw_config.h.in      |  14 +++
+ util_lbt_test/CMakeLists.txt      |  23 +++++
+ util_pkt_logger/CMakeLists.txt    |  29 ++++++
+ util_spectral_scan/CMakeLists.txt |  23 +++++
+ util_spi_stress/CMakeLists.txt    |  23 +++++
+ util_tx_continuous/CMakeLists.txt |  23 +++++
+ util_tx_test/CMakeLists.txt       |  23 +++++
+ 11 files changed, 396 insertions(+)
+ create mode 100644 CMakeLists.txt
+ create mode 100644 cmake/loragw-config.cmake
+ create mode 100644 libloragw/CMakeLists.txt
+ create mode 100644 libloragw/loragw.pc.in
+ create mode 100644 libloragw/loragw_config.h.in
+ create mode 100644 util_lbt_test/CMakeLists.txt
+ create mode 100644 util_pkt_logger/CMakeLists.txt
+ create mode 100644 util_spectral_scan/CMakeLists.txt
+ create mode 100644 util_spi_stress/CMakeLists.txt
+ create mode 100644 util_tx_continuous/CMakeLists.txt
+ create mode 100644 util_tx_test/CMakeLists.txt
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+new file mode 100644
+index 0000000..b112150
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,77 @@
++# -- Minimum required version
++cmake_minimum_required (VERSION 3.2)
++
++# -- Project name
++project (lora_gateway)
++
++# -- Various includes
++include (CMakePackageConfigHelpers)
++include (GNUInstallDirs)
++include (CheckFunctionExists)
++
++# -- set c99 standard default
++set(CMAKE_C_STANDARD 99)
++
++# -- options for shared lib (defaults off)
++option(lora_gateway_build_shared_libs "build as a shared library" OFF)
++set(BUILD_SHARED_LIBS ${lora_gateway_build_shared_libs})
++
++# -- Required to build
++set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
++set(THREADS_PREFER_PTHREAD_FLAG TRUE)
++find_package(Threads REQUIRED)
++
++# -- Versioning with git tag
++if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
++  execute_process(
++    COMMAND git describe --tags --always
++    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
++    OUTPUT_VARIABLE "lora_gateway_VERSION"
++    ERROR_QUIET
++    OUTPUT_STRIP_TRAILING_WHITESPACE)
++  if(lora_gateway_VERSION STREQUAL "")
++    set(lora_gateway_VERSION 0)
++  endif(lora_gateway_VERSION STREQUAL "")
++  message( STATUS "Git full version: ${lora_gateway_VERSION}" )
++  execute_process(
++    COMMAND /bin/bash -c "git describe --tags --abbrev=0 | cut --delimiter='v' --fields=2"
++    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
++    OUTPUT_VARIABLE "lora_gateway_VERSION_SHORT"
++    ERROR_QUIET
++    OUTPUT_STRIP_TRAILING_WHITESPACE)
++  if(lora_gateway_VERSION_SHORT STREQUAL "")
++    set(lora_gateway_VERSION_SHORT 0)
++  endif(lora_gateway_VERSION_SHORT STREQUAL "")
++  message( STATUS "Git version: ${lora_gateway_VERSION_SHORT}" )
++else(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
++  set(lora_gateway_VERSION_SHORT 0)
++  set(lora_gateway_VERSION 0)
++endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
++
++# when building, don't use the install RPATH already
++# (but later on when installing)
++SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
++if (NOT (${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" ) )
++   SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
++endif()
++
++# -- add the core library
++add_subdirectory(libloragw)
++
++# -- add util_lbt_test
++add_subdirectory(util_lbt_test)
++
++# -- add util_pkt_logger
++add_subdirectory(util_pkt_logger)
++
++# -- add util_pkt_logger
++add_subdirectory(util_spectral_scan)
++
++# -- add util_spi_stress
++add_subdirectory(util_spi_stress)
++
++# -- add util_tx_continuous
++add_subdirectory(util_tx_continuous)
++
++# -- add util_tx_test
++add_subdirectory(util_tx_test)
+diff --git a/cmake/loragw-config.cmake b/cmake/loragw-config.cmake
+new file mode 100644
+index 0000000..ee8687b
+--- /dev/null
++++ b/cmake/loragw-config.cmake
+@@ -0,0 +1 @@
++include("${CMAKE_CURRENT_LIST_DIR}/loragw-targets.cmake")
+diff --git a/libloragw/CMakeLists.txt b/libloragw/CMakeLists.txt
+new file mode 100644
+index 0000000..b2102ae
+--- /dev/null
++++ b/libloragw/CMakeLists.txt
+@@ -0,0 +1,150 @@
++set(TARGET loragw)
++
++add_library(${TARGET} "")
++
++# -- add additional debug options
++# Set the DEBUG_* to 1 to activate debug mode in individual modules.
++# Warning: that makes the module *very verbose*, do not use for production
++option(DEBUG_AUX "Active debug mode in AUX module" OFF)
++option(DEBUG_SPI "Active debug mode in SPI module" OFF)
++option(DEBUG_REG "Active debug mode in REG module" OFF)
++option(DEBUG_HAL "Active debug mode in HAL module" OFF)
++option(DEBUG_GPIO "Active debug mode in GPIO module" OFF)
++option(DEBUG_LBT "Active debug mode in LBT module" OFF)
++option(DEBUG_GPS "Active debug mode in GPS module" OFF)
++
++message("-- Build with debug AUX: ${DEBUG_AUX}")
++message("-- Build with debug SPI: ${DEBUG_SPI}")
++message("-- Build with debug REG: ${DEBUG_REG}")
++message("-- Build with debug HAL: ${DEBUG_HAL}")
++message("-- Build with debug GPIO: ${DEBUG_GPIO}")
++message("-- Build with debug LBT: ${DEBUG_LBT}")
++message("-- Build with debug GPS: ${DEBUG_GPS}")
++
++# --  add the compile options
++target_compile_options(
++      ${TARGET}
++      PRIVATE
++      -Werror
++      -Wall
++      -Wextra
++)
++
++target_sources(${TARGET}
++      PRIVATE
++              ${CMAKE_CURRENT_LIST_DIR}/src/loragw_aux.c
++              ${CMAKE_CURRENT_LIST_DIR}/src/loragw_fpga.c
++              ${CMAKE_CURRENT_LIST_DIR}/src/loragw_gps.c
++              ${CMAKE_CURRENT_LIST_DIR}/src/loragw_hal.c
++              ${CMAKE_CURRENT_LIST_DIR}/src/loragw_lbt.c
++              ${CMAKE_CURRENT_LIST_DIR}/src/loragw_radio.c
++              ${CMAKE_CURRENT_LIST_DIR}/src/loragw_reg.c
++              ${CMAKE_CURRENT_LIST_DIR}/src/loragw_spi.native.c
++)
++
++# --  add the public headers
++set (${TARGET}_PUBLIC_HEADERS
++      ${CMAKE_CURRENT_LIST_DIR}/inc/loragw_aux.h
++      ${CMAKE_CURRENT_LIST_DIR}/inc/loragw_fpga.h
++      ${CMAKE_CURRENT_LIST_DIR}/inc/loragw_gps.h
++      ${CMAKE_CURRENT_LIST_DIR}/inc/loragw_hal.h
++      ${CMAKE_CURRENT_LIST_DIR}/inc/loragw_lbt.h
++      ${CMAKE_CURRENT_LIST_DIR}/inc/loragw_radio.h
++      ${CMAKE_CURRENT_LIST_DIR}/inc/loragw_reg.h
++)
++
++target_include_directories(${TARGET}
++      PRIVATE
++              ${CMAKE_CURRENT_LIST_DIR}
++              ${CMAKE_CURRENT_LIST_DIR}/inc
++      PUBLIC
++              $<INSTALL_INTERFACE:include>
++              $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
++              $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
++)
++
++configure_file(${CMAKE_CURRENT_LIST_DIR}/${TARGET}_config.h.in "${CMAKE_CURRENT_BINARY_DIR}/config.h" @ONLY)
++
++target_link_libraries(${TARGET}
++      PUBLIC
++              Threads::Threads
++              m
++)
++
++set_target_properties(${TARGET} PROPERTIES VERSION ${lora_gateway_VERSION_SHORT})
++set_target_properties(${TARGET} PROPERTIES SOVERSION ${lora_gateway_VERSION_SHORT})
++set_target_properties(${TARGET} PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_BINARY_DIR}/config.h;${${TARGET}_PUBLIC_HEADERS}")
++
++# --  add the install targets
++install (TARGETS ${TARGET}
++      EXPORT ${TARGET}_targets
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT shlib
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++      PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET}
++      INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET}
++)
++
++# -- add pkg config file
++configure_file ("${CMAKE_CURRENT_LIST_DIR}/${TARGET}.pc.in" "${PROJECT_BINARY_DIR}/${TARGET}.pc" @ONLY)
++install (FILES ${PROJECT_BINARY_DIR}/${TARGET}.pc DESTINATION lib/pkgconfig)
++
++# -- write cmake package config file
++write_basic_package_version_file(
++      "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}/${TARGET}-config-version.cmake"
++      VERSION ${lora_gateway_VERSION}
++      COMPATIBILITY AnyNewerVersion
++)
++
++export(EXPORT ${TARGET}_targets
++      FILE "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}/${TARGET}-targets.cmake"
++      NAMESPACE Semtech::
++)
++
++configure_file(${PROJECT_SOURCE_DIR}/cmake/${TARGET}-config.cmake
++      "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}/${TARGET}-config.cmake"
++      COPYONLY
++)
++
++set(ConfigPackageLocation lib/cmake/${TARGET})
++
++install(EXPORT ${TARGET}_targets
++      FILE ${TARGET}-targets.cmake
++      NAMESPACE Semtech::
++      DESTINATION ${ConfigPackageLocation}
++)
++
++install(
++      FILES ${PROJECT_SOURCE_DIR}/cmake/${TARGET}-config.cmake "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}/${TARGET}-config-version.cmake"
++      DESTINATION ${ConfigPackageLocation}
++      COMPONENT Devel
++)
++
++# -- add test programs
++foreach(TEST test_loragw_spi test_loragw_gps test_loragw_reg test_loragw_hal test_loragw_cal)
++      add_executable(${TEST} "")
++
++      target_sources(${TEST}
++              PRIVATE
++                      ${CMAKE_CURRENT_LIST_DIR}/tst/${TEST}.c
++      )
++
++      target_include_directories(${TEST}
++              PRIVATE
++                      $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
++                      $<INSTALL_INTERFACE:include>
++                      ${CMAKE_CURRENT_LIST_DIR}/inc
++                      ${CMAKE_CURRENT_BINARY_DIR}
++      )
++
++      target_link_libraries(${TEST}
++              PRIVATE
++                      loragw
++      )
++
++      install (
++              TARGETS ${TEST}
++              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++      )
++
++endforeach()
++
+diff --git a/libloragw/loragw.pc.in b/libloragw/loragw.pc.in
+new file mode 100644
+index 0000000..01bb3cf
+--- /dev/null
++++ b/libloragw/loragw.pc.in
+@@ -0,0 +1,10 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}/bin
++includedir=${prefix}/include/libloragw
++libdir=${prefix}/lib
++
++Name: LIBLORAGW
++Description: BLANK_TEXT
++Version: @lora_gateway_VERSION@
++Cflags: -I${includedir}
++Libs: -L${libdir} -lloragw
+diff --git a/libloragw/loragw_config.h.in b/libloragw/loragw_config.h.in
+new file mode 100644
+index 0000000..76ad35a
+--- /dev/null
++++ b/libloragw/loragw_config.h.in
+@@ -0,0 +1,14 @@
++#ifndef _LORAGW_CONFIGURATION_H
++#define _LORAGW_CONFIGURATION_H
++
++#define LIBLORAGW_VERSION "@lora_gateway_VERSION_SHORT@"
++
++#cmakedefine01 DEBUG_AUX
++#cmakedefine01 DEBUG_SPI
++#cmakedefine01 DEBUG_REG
++#cmakedefine01 DEBUG_HAL
++#cmakedefine01 DEBUG_GPS
++#cmakedefine01 DEBUG_GPIO
++#cmakedefine01 DEBUG_LBT
++
++#endif
+diff --git a/util_lbt_test/CMakeLists.txt b/util_lbt_test/CMakeLists.txt
+new file mode 100644
+index 0000000..f184b82
+--- /dev/null
++++ b/util_lbt_test/CMakeLists.txt
+@@ -0,0 +1,23 @@
++
++add_executable(util_lbt_test "")
++target_sources(util_lbt_test
++        PRIVATE
++        ${CMAKE_CURRENT_LIST_DIR}/src/util_lbt_test.c
++)
++
++target_link_libraries(util_lbt_test
++      PUBLIC
++              loragw
++)
++
++set_target_properties(util_lbt_test PROPERTIES
++        RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
++)
++
++# add the install targets
++install (
++        TARGETS util_lbt_test
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT shlib
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++)
+diff --git a/util_pkt_logger/CMakeLists.txt b/util_pkt_logger/CMakeLists.txt
+new file mode 100644
+index 0000000..82cfc86
+--- /dev/null
++++ b/util_pkt_logger/CMakeLists.txt
+@@ -0,0 +1,29 @@
++
++add_executable(util_pkt_logger "")
++target_sources(util_pkt_logger
++      PRIVATE
++        ${CMAKE_CURRENT_LIST_DIR}/src/util_pkt_logger.c
++        ${CMAKE_CURRENT_LIST_DIR}/src/parson.c
++)
++
++target_include_directories(util_pkt_logger
++      PRIVATE
++        ${CMAKE_CURRENT_LIST_DIR}/inc
++)
++
++target_link_libraries(util_pkt_logger
++      PUBLIC
++              loragw
++)
++
++set_target_properties(util_pkt_logger PROPERTIES
++    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
++)
++
++# add the install targets
++install (
++        TARGETS util_pkt_logger
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT shlib
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++)
+diff --git a/util_spectral_scan/CMakeLists.txt b/util_spectral_scan/CMakeLists.txt
+new file mode 100644
+index 0000000..3cec2a9
+--- /dev/null
++++ b/util_spectral_scan/CMakeLists.txt
+@@ -0,0 +1,23 @@
++
++add_executable(util_spectral_scan "")
++target_sources(util_spectral_scan
++        PRIVATE
++        ${CMAKE_CURRENT_LIST_DIR}/src/util_spectral_scan.c
++)
++
++target_link_libraries(util_spectral_scan
++      PUBLIC
++              loragw
++)
++
++set_target_properties(util_spectral_scan PROPERTIES
++        RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
++)
++
++# add the install targets
++install (
++        TARGETS util_spectral_scan
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT shlib
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++)
+diff --git a/util_spi_stress/CMakeLists.txt b/util_spi_stress/CMakeLists.txt
+new file mode 100644
+index 0000000..d5f0eea
+--- /dev/null
++++ b/util_spi_stress/CMakeLists.txt
+@@ -0,0 +1,23 @@
++
++add_executable(util_spi_stress "")
++target_sources(util_spi_stress
++        PRIVATE
++        ${CMAKE_CURRENT_LIST_DIR}/src/util_spi_stress.c
++)
++
++target_link_libraries(util_spi_stress
++      PUBLIC
++              loragw
++)
++
++set_target_properties(util_spi_stress PROPERTIES
++        RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
++)
++
++# add the install targets
++install (
++        TARGETS util_spi_stress
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT shlib
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++)
+diff --git a/util_tx_continuous/CMakeLists.txt b/util_tx_continuous/CMakeLists.txt
+new file mode 100644
+index 0000000..97c70e5
+--- /dev/null
++++ b/util_tx_continuous/CMakeLists.txt
+@@ -0,0 +1,23 @@
++
++add_executable(util_tx_continuous "")
++target_sources(util_tx_continuous
++        PRIVATE
++        ${CMAKE_CURRENT_LIST_DIR}/src/util_tx_continuous.c
++)
++
++target_link_libraries(util_tx_continuous
++      PUBLIC
++              loragw
++)
++
++set_target_properties(util_tx_continuous PROPERTIES
++        RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
++)
++
++# add the install targets
++install (
++        TARGETS util_tx_continuous
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT shlib
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++)
+diff --git a/util_tx_test/CMakeLists.txt b/util_tx_test/CMakeLists.txt
+new file mode 100644
+index 0000000..6cc0e04
+--- /dev/null
++++ b/util_tx_test/CMakeLists.txt
+@@ -0,0 +1,23 @@
++
++add_executable(util_tx_test "")
++target_sources(util_tx_test
++        PRIVATE
++        ${CMAKE_CURRENT_LIST_DIR}/src/util_tx_test.c
++)
++
++target_link_libraries(util_tx_test
++      PUBLIC
++              loragw
++)
++
++set_target_properties(util_tx_test PROPERTIES
++        RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
++)
++
++# add the install targets
++install (
++        TARGETS util_tx_test
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT shlib
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++)
+-- 
+2.20.1
+
diff --git a/net/lora-gateway-hal/patches/0002-add-preprocessing-for-SPI_DEV_PATH-and-SPI_SPEED.patch b/net/lora-gateway-hal/patches/0002-add-preprocessing-for-SPI_DEV_PATH-and-SPI_SPEED.patch
new file mode 100644 (file)
index 0000000..084a114
--- /dev/null
@@ -0,0 +1,35 @@
+From ea2a7752295ab734464c2877e1f484a9bf08d58d Mon Sep 17 00:00:00 2001
+From: Xue Liu <liuxuenetmail@gmail.com>
+Date: Sun, 24 Feb 2019 01:03:48 +0100
+Subject: [PATCH 2/3] - add preprocessing for SPI_DEV_PATH and SPI_SPEED
+
+Signed-off-by: Xue Liu <liuxuenetmail@gmail.com>
+---
+ libloragw/src/loragw_spi.native.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/libloragw/src/loragw_spi.native.c b/libloragw/src/loragw_spi.native.c
+index c01ed1c..fe251e3 100644
+--- a/libloragw/src/loragw_spi.native.c
++++ b/libloragw/src/loragw_spi.native.c
+@@ -53,8 +53,15 @@ Maintainer: Sylvain Miermont
+ #define READ_ACCESS     0x00
+ #define WRITE_ACCESS    0x80
+-#define SPI_SPEED       8000000
+-#define SPI_DEV_PATH    "/dev/spidev0.0"
++
++#ifndef SPI_SPEED
++#error SPI_SPEED is not defined
++#endif
++
++#ifndef SPI_DEV_PATH
++#error SPI_DEV_PATH is not defined
++#endif
++
+ //#define SPI_DEV_PATH    "/dev/spidev32766.0"
+ /* -------------------------------------------------------------------------- */
+-- 
+2.20.1
+
diff --git a/net/lora-gateway-hal/patches/0003-add-SPI_DEV_PATH-and-SPI_SPEED-to-cmake.patch b/net/lora-gateway-hal/patches/0003-add-SPI_DEV_PATH-and-SPI_SPEED-to-cmake.patch
new file mode 100644 (file)
index 0000000..f80dde0
--- /dev/null
@@ -0,0 +1,45 @@
+From 81cd227c04ccb615cffaaa7b6372affb7964df2e Mon Sep 17 00:00:00 2001
+From: Xue Liu <liuxuenetmail@gmail.com>
+Date: Sun, 24 Feb 2019 01:04:29 +0100
+Subject: [PATCH 3/3] - add SPI_DEV_PATH and SPI_SPEED to cmake
+
+Signed-off-by: Xue Liu <liuxuenetmail@gmail.com>
+---
+ libloragw/CMakeLists.txt | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/libloragw/CMakeLists.txt b/libloragw/CMakeLists.txt
+index b2102ae..32abf51 100644
+--- a/libloragw/CMakeLists.txt
++++ b/libloragw/CMakeLists.txt
+@@ -13,6 +13,9 @@ option(DEBUG_GPIO "Active debug mode in GPIO module" OFF)
+ option(DEBUG_LBT "Active debug mode in LBT module" OFF)
+ option(DEBUG_GPS "Active debug mode in GPS module" OFF)
++set(SPI_DEV_PATH "/dev/spidev0.0" CACHE FILEPATH "Path of spi-dev")
++set(SPI_SPEED 8000000 CACHE STRING "SPI clock frequency")
++
+ message("-- Build with debug AUX: ${DEBUG_AUX}")
+ message("-- Build with debug SPI: ${DEBUG_SPI}")
+ message("-- Build with debug REG: ${DEBUG_REG}")
+@@ -20,6 +23,8 @@ message("-- Build with debug HAL: ${DEBUG_HAL}")
+ message("-- Build with debug GPIO: ${DEBUG_GPIO}")
+ message("-- Build with debug LBT: ${DEBUG_LBT}")
+ message("-- Build with debug GPS: ${DEBUG_GPS}")
++message("-- Build with SPI_DEV_PATH: ${SPI_DEV_PATH}")
++message("-- Build with SPI_SPEED: ${SPI_SPEED}")
+ # --  add the compile options
+ target_compile_options(
+@@ -28,6 +33,8 @@ target_compile_options(
+       -Werror
+       -Wall
+       -Wextra
++      -DSPI_DEV_PATH="${SPI_DEV_PATH}"
++      -DSPI_SPEED=${SPI_SPEED}
+ )
+ target_sources(${TARGET}
+-- 
+2.20.1
+
index 59323d68fd7d597f2c1c73343268e384e2a816b2..1cd2e92e4eea035d7c7c5c8c6e17271f212e46b5 100644 (file)
@@ -9,15 +9,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mosquitto
-PKG_VERSION:=1.5.8
-PKG_RELEASE:=2
+PKG_VERSION:=1.6.2
+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:=78d7e70c3794dc3a1d484b4f2f8d3addebe9c2da3f5a1cebe557f7d13beb0da4
+PKG_HASH:=33499e78dfa0ca1cb488fd196fde940a66305bdfd44ba763ce2001db2569a08b
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
diff --git a/net/mosquitto/patches/901-fix-openssl-ui.patch b/net/mosquitto/patches/901-fix-openssl-ui.patch
new file mode 100644 (file)
index 0000000..cfef42d
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/lib/net_mosq.c b/lib/net_mosq.c
+index 745b170..bdcaa19 100644
+--- a/lib/net_mosq.c
++++ b/lib/net_mosq.c
+@@ -50,6 +50,7 @@ Contributors:
+ #include <openssl/conf.h>
+ #include <openssl/engine.h>
+ #include <openssl/err.h>
++#include <openssl/ui.h>
+ #include <tls_mosq.h>
+ #endif
diff --git a/net/mosquitto/patches/902-fix-engine-guards.patch b/net/mosquitto/patches/902-fix-engine-guards.patch
new file mode 100644 (file)
index 0000000..48b3c42
--- /dev/null
@@ -0,0 +1,215 @@
+diff --git a/lib/net_mosq.c b/lib/net_mosq.c
+index bdcaa19..f207e32 100644
+--- a/lib/net_mosq.c
++++ b/lib/net_mosq.c
+@@ -141,7 +141,9 @@ int net__init(void)
+                       | OPENSSL_INIT_ADD_ALL_DIGESTS \
+                       | OPENSSL_INIT_LOAD_CONFIG, NULL);
+ #  endif
++#if !defined(OPENSSL_NO_ENGINE)
+       ENGINE_load_builtin_engines();
++#endif
+       setup_ui_method();
+       if(tls_ex_index_mosq == -1){
+               tls_ex_index_mosq = SSL_get_ex_new_index(0, "client context", NULL, NULL, NULL);
+@@ -599,6 +601,7 @@ static int net__init_ssl_ctx(struct mosquitto *mosq)
+                       SSL_CTX_set_mode(mosq->ssl_ctx, SSL_MODE_RELEASE_BUFFERS);
+ #endif
++#if !defined(OPENSSL_NO_ENGINE)
+               if(mosq->tls_engine){
+                       engine = ENGINE_by_id(mosq->tls_engine);
+                       if(!engine){
+@@ -615,12 +618,15 @@ static int net__init_ssl_ctx(struct mosquitto *mosq)
+                       ENGINE_set_default(engine, ENGINE_METHOD_ALL);
+                       ENGINE_free(engine); /* release the structural reference from ENGINE_by_id() */
+               }
++#endif
+               if(mosq->tls_ciphers){
+                       ret = SSL_CTX_set_cipher_list(mosq->ssl_ctx, mosq->tls_ciphers);
+                       if(ret == 0){
+                               log__printf(mosq, MOSQ_LOG_ERR, "Error: Unable to set TLS ciphers. Check cipher list \"%s\".", mosq->tls_ciphers);
++#if !defined(OPENSSL_NO_ENGINE)
+                               ENGINE_FINISH(engine);
++#endif
+                               COMPAT_CLOSE(mosq->sock);
+                               mosq->sock = INVALID_SOCKET;
+                               net__print_ssl_error(mosq);
+@@ -647,7 +653,9 @@ static int net__init_ssl_ctx(struct mosquitto *mosq)
+                                       log__printf(mosq, MOSQ_LOG_ERR, "Error: Unable to load CA certificates, check capath \"%s\".", mosq->tls_capath);
+                               }
+ #endif
++#if !defined(OPENSSL_NO_ENGINE)
+                               ENGINE_FINISH(engine);
++#endif
+                               COMPAT_CLOSE(mosq->sock);
+                               mosq->sock = INVALID_SOCKET;
+                               net__print_ssl_error(mosq);
+@@ -672,7 +680,9 @@ static int net__init_ssl_ctx(struct mosquitto *mosq)
+ #else
+                                       log__printf(mosq, MOSQ_LOG_ERR, "Error: Unable to load client certificate \"%s\".", mosq->tls_certfile);
+ #endif
++#if !defined(OPENSSL_NO_ENGINE)
+                                       ENGINE_FINISH(engine);
++#endif
+                                       COMPAT_CLOSE(mosq->sock);
+                                       mosq->sock = INVALID_SOCKET;
+                                       net__print_ssl_error(mosq);
+@@ -681,6 +691,7 @@ static int net__init_ssl_ctx(struct mosquitto *mosq)
+                       }
+                       if(mosq->tls_keyfile){
+                               if(mosq->tls_keyform == mosq_k_engine){
++#if !defined(OPENSSL_NO_ENGINE)
+                                       UI_METHOD *ui_method = net__get_ui_method();
+                                       if(mosq->tls_engine_kpass_sha1){
+                                               if(!ENGINE_ctrl_cmd(engine, ENGINE_SECRET_MODE, ENGINE_SECRET_MODE_SHA, NULL, NULL, 0)){
+@@ -714,6 +725,7 @@ static int net__init_ssl_ctx(struct mosquitto *mosq)
+                                               net__print_ssl_error(mosq);
+                                               return MOSQ_ERR_TLS;
+                                       }
++#endif
+                               }else{
+                                       ret = SSL_CTX_use_PrivateKey_file(mosq->ssl_ctx, mosq->tls_keyfile, SSL_FILETYPE_PEM);
+                                       if(ret != 1){
+@@ -722,7 +734,9 @@ static int net__init_ssl_ctx(struct mosquitto *mosq)
+ #else
+                                               log__printf(mosq, MOSQ_LOG_ERR, "Error: Unable to load client key file \"%s\".", mosq->tls_keyfile);
+ #endif
++#if !defined(OPENSSL_NO_ENGINE)
+                                               ENGINE_FINISH(engine);
++#endif
+                                               COMPAT_CLOSE(mosq->sock);
+                                               mosq->sock = INVALID_SOCKET;
+                                               net__print_ssl_error(mosq);
+@@ -732,7 +746,9 @@ static int net__init_ssl_ctx(struct mosquitto *mosq)
+                               ret = SSL_CTX_check_private_key(mosq->ssl_ctx);
+                               if(ret != 1){
+                                       log__printf(mosq, MOSQ_LOG_ERR, "Error: Client certificate/key are inconsistent.");
++#if !defined(OPENSSL_NO_ENGINE)
+                                       ENGINE_FINISH(engine);
++#endif
+                                       COMPAT_CLOSE(mosq->sock);
+                                       mosq->sock = INVALID_SOCKET;
+                                       net__print_ssl_error(mosq);
+diff --git a/lib/options.c b/lib/options.c
+index 005b781..6dc4262 100644
+--- a/lib/options.c
++++ b/lib/options.c
+@@ -255,6 +255,7 @@ int mosquitto_string_option(struct mosquitto *mosq, enum mosq_opt_t option, cons
+       switch(option){
+               case MOSQ_OPT_TLS_ENGINE:
+ #ifdef WITH_TLS
++#    if !defined(OPENSSL_NO_ENGINE)
+                       eng = ENGINE_by_id(value);
+                       if(!eng){
+                               return MOSQ_ERR_INVAL;
+@@ -265,6 +266,7 @@ int mosquitto_string_option(struct mosquitto *mosq, enum mosq_opt_t option, cons
+                               return MOSQ_ERR_NOMEM;
+                       }
+                       return MOSQ_ERR_SUCCESS;
++#endif
+ #else
+                       return MOSQ_ERR_NOT_SUPPORTED;
+ #endif
+diff --git a/src/net.c b/src/net.c
+index 74b4ee8..495f8b2 100644
+--- a/src/net.c
++++ b/src/net.c
+@@ -534,6 +534,7 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                               return 1;
+                       }
+                       if(listener->tls_engine){
++#if !defined(OPENSSL_NO_ENGINE)
+                               engine = ENGINE_by_id(listener->tls_engine);
+                               if(!engine){
+                                       log__printf(NULL, MOSQ_LOG_ERR, "Error loading %s engine\n", listener->tls_engine);
+@@ -548,6 +549,7 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                               }
+                               ENGINE_set_default(engine, ENGINE_METHOD_ALL);
+                               ENGINE_free(engine); /* release the structural reference from ENGINE_by_id() */
++#endif
+                       }
+                       /* FIXME user data? */
+                       if(listener->require_certificate){
+@@ -560,10 +562,13 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                               log__printf(NULL, MOSQ_LOG_ERR, "Error: Unable to load server certificate \"%s\". Check certfile.", listener->certfile);
+                               net__print_error(MOSQ_LOG_ERR, "Error: %s");
+                               COMPAT_CLOSE(sock);
++#if !defined(OPENSSL_NO_ENGINE)
+                               ENGINE_FINISH(engine);
++#endif
+                               return 1;
+                       }
+                       if(listener->tls_keyform == mosq_k_engine){
++#if !defined(OPENSSL_NO_ENGINE)
+                               UI_METHOD *ui_method = net__get_ui_method();
+                               if(listener->tls_engine_kpass_sha1){
+                                       if(!ENGINE_ctrl_cmd(engine, ENGINE_SECRET_MODE, ENGINE_SECRET_MODE_SHA, NULL, NULL, 0)){
+@@ -593,13 +598,16 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                                       ENGINE_FINISH(engine);
+                                       return 1;
+                               }
++#endif
+                       }else{
+                               rc = SSL_CTX_use_PrivateKey_file(listener->ssl_ctx, listener->keyfile, SSL_FILETYPE_PEM);
+                               if(rc != 1){
+                                       log__printf(NULL, MOSQ_LOG_ERR, "Error: Unable to load server key file \"%s\". Check keyfile.", listener->keyfile);
+                                       net__print_error(MOSQ_LOG_ERR, "Error: %s");
+                                       COMPAT_CLOSE(sock);
++#if !defined(OPENSSL_NO_ENGINE)
+                                       ENGINE_FINISH(engine);
++#endif
+                                       return 1;
+                               }
+                       }
+@@ -608,7 +616,9 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                               log__printf(NULL, MOSQ_LOG_ERR, "Error: Server certificate/key are inconsistent.");
+                               net__print_error(MOSQ_LOG_ERR, "Error: %s");
+                               COMPAT_CLOSE(sock);
++#if !defined(OPENSSL_NO_ENGINE)
+                               ENGINE_FINISH(engine);
++#endif
+                               return 1;
+                       }
+                       /* Load CRLs if they exist. */
+@@ -618,7 +628,9 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                                       log__printf(NULL, MOSQ_LOG_ERR, "Error: Unable to obtain TLS store.");
+                                       net__print_error(MOSQ_LOG_ERR, "Error: %s");
+                                       COMPAT_CLOSE(sock);
++#if !defined(OPENSSL_NO_ENGINE)
+                                       ENGINE_FINISH(engine);
++#endif
+                                       return 1;
+                               }
+                               lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file());
+@@ -627,7 +639,9 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                                       log__printf(NULL, MOSQ_LOG_ERR, "Error: Unable to load certificate revocation file \"%s\". Check crlfile.", listener->crlfile);
+                                       net__print_error(MOSQ_LOG_ERR, "Error: %s");
+                                       COMPAT_CLOSE(sock);
++#if !defined(OPENSSL_NO_ENGINE)
+                                       ENGINE_FINISH(engine);
++#endif
+                                       return 1;
+                               }
+                               X509_STORE_set_flags(store, X509_V_FLAG_CRL_CHECK);
+@@ -644,7 +658,9 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                       if(mosquitto__tls_server_ctx(listener)){
+                               COMPAT_CLOSE(sock);
++#if !defined(OPENSSL_NO_ENGINE)
+                               ENGINE_FINISH(engine);
++#endif
+                               return 1;
+                       }
+                       SSL_CTX_set_psk_server_callback(listener->ssl_ctx, psk_server_callback);
+@@ -654,7 +670,9 @@ int net__socket_listen(struct mosquitto__listener *listener)
+                                       log__printf(NULL, MOSQ_LOG_ERR, "Error: Unable to set TLS PSK hint.");
+                                       net__print_error(MOSQ_LOG_ERR, "Error: %s");
+                                       COMPAT_CLOSE(sock);
++#if !defined(OPENSSL_NO_ENGINE)
+                                       ENGINE_FINISH(engine);
++#endif
+                                       return 1;
+                               }
+                       }
index 6ad405aac7d51b4d97953d920f5641cb8894584f..371b5c94a21b152bed96e00d8d6b4e008b9d1db9 100644 (file)
@@ -7,9 +7,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nfs-kernel-server
-PKG_VERSION:=2.3.3
-PKG_RELEASE:=7
-PKG_HASH:=3c8c63611c7e78b7a3b2f8a28b9928a5b5e66d5e9ad09a1e54681508884320a4
+PKG_VERSION:=2.3.4
+PKG_RELEASE:=1
+PKG_HASH:=8a6bafd5a33c4259e6e5093d126384cbe33acb10135578b5faa60c40f2f5e995
 
 PKG_SOURCE_URL:=@SF/nfs
 PKG_SOURCE:=nfs-utils-$(PKG_VERSION).tar.xz
diff --git a/net/nfs-kernel-server/patches/0001-don-t-free-ai-ai_canonname.patch b/net/nfs-kernel-server/patches/0001-don-t-free-ai-ai_canonname.patch
deleted file mode 100644 (file)
index 98f7c04..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-From 4bc0dcae0b64eccd63f753d05b505b0becdcb2c8 Mon Sep 17 00:00:00 2001
-From: Peter Wagner <tripolar@gmx.at>
-Date: Tue, 19 Feb 2019 19:50:03 +0100
-Subject: [PATCH 1/2] don't free ai->ai_canonname
-
----
- support/export/hostname.c | 58 ++++++++-------------------------------
- utils/mountd/auth.c       | 16 +++++------
- 2 files changed, 20 insertions(+), 54 deletions(-)
-
-diff --git a/support/export/hostname.c b/support/export/hostname.c
-index 5c4c824..96c5449 100644
---- a/support/export/hostname.c
-+++ b/support/export/hostname.c
-@@ -264,9 +264,9 @@ host_canonname(const struct sockaddr *sap)
-  * Reverse and forward lookups are performed to ensure the address has
-  * matching forward and reverse mappings.
-  *
-- * Returns addrinfo structure with just the provided address with
-- * ai_canonname filled in. If there is a problem with resolution or
-- * the resolved records don't match up properly then it returns NULL
-+ * Returns addrinfo structure with just the provided address. If there
-+ * is a problem with resolution or the resolved records don't match up
-+ * properly then returns NULL.
-  *
-  * Caller must free the returned structure with freeaddrinfo(3).
-  */
-@@ -277,13 +277,15 @@ host_reliable_addrinfo(const struct sockaddr *sap)
-       struct addrinfo *ai, *a;
-       char *hostname;
-+      ai = NULL;
-       hostname = host_canonname(sap);
-       if (hostname == NULL)
--              return NULL;
-+              goto out;
-       ai = host_addrinfo(hostname);
-+      free(hostname);
-       if (!ai)
--              goto out_free_hostname;
-+              goto out;
-       /* make sure there's a matching address in the list */
-       for (a = ai; a; a = a->ai_next)
-@@ -291,22 +293,15 @@ host_reliable_addrinfo(const struct sockaddr *sap)
-                       break;
-       freeaddrinfo(ai);
-+      ai = NULL;
-       if (!a)
--              goto out_free_hostname;
-+              goto out;
-       /* get addrinfo with just the original address */
-       ai = host_numeric_addrinfo(sap);
--      if (!ai)
--              goto out_free_hostname;
--      /* and populate its ai_canonname field */
--      free(ai->ai_canonname);
--      ai->ai_canonname = hostname;
-+out:
-       return ai;
--
--out_free_hostname:
--      free(hostname);
--      return NULL;
- }
- /**
-@@ -323,7 +318,6 @@ host_numeric_addrinfo(const struct sockaddr *sap)
- {
-       socklen_t salen = nfs_sockaddr_length(sap);
-       char buf[INET6_ADDRSTRLEN];
--      struct addrinfo *ai;
-       int error;
-       if (salen == 0) {
-@@ -348,21 +342,7 @@ host_numeric_addrinfo(const struct sockaddr *sap)
-               return NULL;
-       }
--      ai = host_pton(buf);
--
--      /*
--       * getaddrinfo(AI_NUMERICHOST) never fills in ai_canonname
--       */
--      if (ai != NULL) {
--              free(ai->ai_canonname);         /* just in case */
--              ai->ai_canonname = strdup(buf);
--              if (ai->ai_canonname == NULL) {
--                      freeaddrinfo(ai);
--                      ai = NULL;
--              }
--      }
--
--      return ai;
-+      return host_pton(buf);
- }
- #else /* !HAVE_GETNAMEINFO */
- __attribute__((__malloc__))
-@@ -372,7 +352,6 @@ host_numeric_addrinfo(const struct sockaddr *sap)
-       const struct sockaddr_in *sin = (const struct sockaddr_in *)sap;
-       const struct in_addr *addr = &sin->sin_addr;
-       char buf[INET_ADDRSTRLEN];
--      struct addrinfo *ai;
-       if (sap->sa_family != AF_INET)
-               return NULL;
-@@ -382,19 +361,6 @@ host_numeric_addrinfo(const struct sockaddr *sap)
-                                       (socklen_t)sizeof(buf)) == NULL)
-               return NULL;
--      ai = host_pton(buf);
--
--      /*
--       * getaddrinfo(AI_NUMERICHOST) never fills in ai_canonname
--       */
--      if (ai != NULL) {
--              ai->ai_canonname = strdup(buf);
--              if (ai->ai_canonname == NULL) {
--                      freeaddrinfo(ai);
--                      ai = NULL;
--              }
--      }
--
--      return ai;
-+      return host_pton(buf);
- }
- #endif        /* !HAVE_GETNAMEINFO */
-diff --git a/utils/mountd/auth.c b/utils/mountd/auth.c
-index 8299256..cb4848c 100644
---- a/utils/mountd/auth.c
-+++ b/utils/mountd/auth.c
-@@ -261,40 +261,40 @@ auth_authenticate(const char *what, const struct sockaddr *caller,
-               *p = '\0';
-       }
-+      host_ntop(caller, buf, sizeof(buf));
-       switch (error) {
-       case bad_path:
-               xlog(L_WARNING, "bad path in %s request from %s: \"%s\"",
--                   what, host_ntop(caller, buf, sizeof(buf)), path);
-+                   what, buf, path);
-               break;
-       case unknown_host:
-               xlog(L_WARNING, "refused %s request from %s for %s (%s): unmatched host",
--                   what, host_ntop(caller, buf, sizeof(buf)), path, epath);
-+                   what, buf, path, epath);
-               break;
-       case no_entry:
-               xlog(L_WARNING, "refused %s request from %s for %s (%s): no export entry",
--                   what, ai->ai_canonname, path, epath);
-+                   what, buf, path, epath);
-               break;
-       case not_exported:
-               xlog(L_WARNING, "refused %s request from %s for %s (%s): not exported",
--                   what, ai->ai_canonname, path, epath);
-+                   what, buf, path, epath);
-               break;
-       case illegal_port:
-               xlog(L_WARNING, "refused %s request from %s for %s (%s): illegal port %u",
--                   what, ai->ai_canonname, path, epath, nfs_get_port(caller));
-+                   what, buf, path, epath, nfs_get_port(caller));
-               break;
-       case success:
-               xlog(L_NOTICE, "authenticated %s request from %s:%u for %s (%s)",
--                   what, ai->ai_canonname, nfs_get_port(caller), path, epath);
-+                   what, buf, nfs_get_port(caller), path, epath);
-               break;
-       default:
-               xlog(L_NOTICE, "%s request from %s:%u for %s (%s) gave %d",
--                   what, ai->ai_canonname, nfs_get_port(caller),
--                      path, epath, error);
-+                   what, buf, nfs_get_port(caller), path, epath, error);
-       }
-       freeaddrinfo(ai);
--- 
-2.20.1
-
diff --git a/net/nfs-kernel-server/patches/0002-define-and-use-wrapper-function-nfs_freeaddrin.patch b/net/nfs-kernel-server/patches/0002-define-and-use-wrapper-function-nfs_freeaddrin.patch
deleted file mode 100644 (file)
index 49d3630..0000000
+++ /dev/null
@@ -1,566 +0,0 @@
-From 877184f733d13d7db0ec9265a53ede9c30d03ba4 Mon Sep 17 00:00:00 2001
-From: Peter Wagner <tripolar@gmx.at>
-Date: Tue, 19 Feb 2019 20:00:22 +0100
-Subject: [PATCH 2/2] define and use wrapper function nfs_freeaddrinfo
- to handle freeaddrinfo versions that don't tolerate NULL pointers
-
-Signed-off-by: Peter Wagner <tripolar@gmx.at>
----
- support/export/client.c       |  6 +++---
- support/export/hostname.c     |  4 ++--
- support/include/exportfs.h    | 11 +++++++++++
- support/nfs/getport.c         |  7 ++++---
- support/nfs/svc_create.c      |  8 +++++---
- support/nfsidmap/umich_ldap.c |  2 +-
- tests/nsm_client/nsm_client.c |  2 +-
- utils/exportfs/exportfs.c     | 10 +++++-----
- utils/gssd/gssd.c             |  4 ++--
- utils/gssd/krb5_util.c        |  2 +-
- utils/mount/network.c         |  7 ++++---
- utils/mount/stropts.c         |  3 ++-
- utils/mountd/auth.c           |  2 +-
- utils/mountd/cache.c          | 10 +++++-----
- utils/mountd/mountd.c         |  4 ++--
- utils/mountd/rmtab.c          |  2 +-
- utils/nfsd/nfssvc.c           |  4 ++--
- utils/statd/hostname.c        | 11 ++++++-----
- utils/statd/sm-notify.c       | 14 +++++++-------
- 19 files changed, 65 insertions(+), 48 deletions(-)
-
-diff --git a/support/export/client.c b/support/export/client.c
-index baf59c8..a1fba01 100644
---- a/support/export/client.c
-+++ b/support/export/client.c
-@@ -210,7 +210,7 @@ init_subnetwork(nfs_client *clp)
-       set_addrlist(clp, 0, ai->ai_addr);
-       family = ai->ai_addr->sa_family;
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       switch (family) {
-       case AF_INET:
-@@ -309,7 +309,7 @@ client_lookup(char *hname, int canonical)
-               init_addrlist(clp, ai);
- out:
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       return clp;
- }
-@@ -674,7 +674,7 @@ check_netgroup(const nfs_client *clp, const struct addrinfo *ai)
-       tmp = host_pton(hname);
-       if (tmp != NULL) {
-               char *cname = host_canonname(tmp->ai_addr);
--              freeaddrinfo(tmp);
-+              nfs_freeaddrinfo(tmp);
-               /* The resulting FQDN may be in our netgroup. */
-               if (cname != NULL) {
-diff --git a/support/export/hostname.c b/support/export/hostname.c
-index 96c5449..be4d7f6 100644
---- a/support/export/hostname.c
-+++ b/support/export/hostname.c
-@@ -130,7 +130,7 @@ host_pton(const char *paddr)
-               if (!inet4 && ai->ai_addr->sa_family == AF_INET) {
-                       xlog(D_GENERAL, "%s: failed to convert %s",
-                                       __func__, paddr);
--                      freeaddrinfo(ai);
-+                      nfs_freeaddrinfo(ai);
-                       break;
-               }
-               return ai;
-@@ -292,7 +292,7 @@ host_reliable_addrinfo(const struct sockaddr *sap)
-               if (nfs_compare_sockaddr(a->ai_addr, sap))
-                       break;
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       ai = NULL;
-       if (!a)
-               goto out;
-diff --git a/support/include/exportfs.h b/support/include/exportfs.h
-index 4e0d9d1..b81f963 100644
---- a/support/include/exportfs.h
-+++ b/support/include/exportfs.h
-@@ -47,6 +47,17 @@ typedef struct mclient {
-       int                     m_count;
- } nfs_client;
-+/*
-+ * Some versions of freeaddrinfo(3) do not tolerate being
-+ * passed a NULL pointer.
-+ */
-+static inline void nfs_freeaddrinfo(struct addrinfo *ai)
-+{
-+      if (ai) {
-+              freeaddrinfo(ai);
-+      }
-+}
-+
- static inline const struct sockaddr *
- get_addrlist(const nfs_client *clp, const int i)
- {
-diff --git a/support/nfs/getport.c b/support/nfs/getport.c
-index 081594c..26ec85e 100644
---- a/support/nfs/getport.c
-+++ b/support/nfs/getport.c
-@@ -47,6 +47,7 @@
- #include "sockaddr.h"
- #include "nfsrpc.h"
-+#include "exportfs.h"
- /*
-  * Try a local socket first to access the local rpcbind daemon
-@@ -109,7 +110,7 @@ static int nfs_gp_loopback_address(struct sockaddr *sap, socklen_t *salen)
-               ret = 1;
-       }
--      freeaddrinfo(gai_results);
-+      nfs_freeaddrinfo(gai_results);
-       return ret;
- }
-@@ -134,8 +135,8 @@ static in_port_t nfs_gp_getservbyname(const char *service,
-       sin = (const struct sockaddr_in *)gai_results->ai_addr;
-       port = sin->sin_port;
--      
--      freeaddrinfo(gai_results);
-+
-+      nfs_freeaddrinfo(gai_results);
-       return port;
- }
-diff --git a/support/nfs/svc_create.c b/support/nfs/svc_create.c
-index ef7ff05..d0b747b 100644
---- a/support/nfs/svc_create.c
-+++ b/support/nfs/svc_create.c
-@@ -39,6 +39,8 @@
- #include <rpc/rpc.h>
- #include <rpc/svc.h>
-+#include "exportfs.h"
-+
- #ifdef HAVE_TCP_WRAPPER
- #include "tcpwrapper.h"
- #endif
-@@ -273,7 +275,7 @@ svc_create_nconf_rand_port(const char *name, const rpcprog_t program,
-       bindaddr.qlen = SOMAXCONN;
-       xprt = svc_tli_create(RPC_ANYFD, nconf, &bindaddr, 0, 0);
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       if (xprt == NULL) {
-               xlog(L_ERROR, "Failed to create listener xprt "
-                       "(%s, %u, %s)", name, version, nconf->nc_netid);
-@@ -364,11 +366,11 @@ svc_create_nconf_fixed_port(const char *name, const rpcprog_t program,
-       svc_create_cache_xprt(xprt);
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       return 1;
- out_free:
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       return 0;
- }
-diff --git a/support/nfsidmap/umich_ldap.c b/support/nfsidmap/umich_ldap.c
-index b661110..b8ee184 100644
---- a/support/nfsidmap/umich_ldap.c
-+++ b/support/nfsidmap/umich_ldap.c
-@@ -1089,7 +1089,7 @@ get_canonical_hostname(const char *inname)
-       return_name = strdup (tmphost);
- out_free:
--      freeaddrinfo(ap);
-+      nfs_freeaddrinfo(ap);
- out_err:
-       return return_name;
- }
-diff --git a/tests/nsm_client/nsm_client.c b/tests/nsm_client/nsm_client.c
-index 0fa3422..8dc0591 100644
---- a/tests/nsm_client/nsm_client.c
-+++ b/tests/nsm_client/nsm_client.c
-@@ -243,7 +243,7 @@ nsm_client_get_rpcclient(const char *node)
-               printf("RPC client creation failed\n");
-       }
- out:
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       return client;
- }
-diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
-index cd3c979..333eadc 100644
---- a/utils/exportfs/exportfs.c
-+++ b/utils/exportfs/exportfs.c
-@@ -282,7 +282,7 @@ exportfs_parsed(char *hname, char *path, char *options, int verbose)
-       validate_export(exp);
- out:
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
- }
- static int exportfs_generic(char *arg, char *options, int verbose)
-@@ -395,7 +395,7 @@ unexportfs_parsed(char *hname, char *path, int verbose)
-       if (!success)
-               xlog(L_ERROR, "Could not find '%s:%s' to unexport.", hname, path);
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
- }
- static int unexportfs_generic(char *arg, int verbose)
-@@ -588,7 +588,7 @@ address_list(const char *hostname)
-       if (ai != NULL) {
-               /* @hostname was a presentation address */
-               cname = host_canonname(ai->ai_addr);
--              freeaddrinfo(ai);
-+              nfs_freeaddrinfo(ai);
-               if (cname != NULL)
-                       goto out;
-       }
-@@ -639,8 +639,8 @@ matchhostname(const char *hostname1, const char *hostname2)
-                       }
- out:
--      freeaddrinfo(results1);
--      freeaddrinfo(results2);
-+      nfs_freeaddrinfo(results1);
-+      nfs_freeaddrinfo(results2);
-       return result;
- }
-diff --git a/utils/gssd/gssd.c b/utils/gssd/gssd.c
-index 2e92f28..7eeb05f 100644
---- a/utils/gssd/gssd.c
-+++ b/utils/gssd/gssd.c
-@@ -172,14 +172,14 @@ gssd_addrstr_to_sockaddr(struct sockaddr *sa, const char *node, const char *port
-               if (sin6->sin6_scope_id) {
-                       printerr(0, "ERROR: address %s has non-zero "
-                                   "sin6_scope_id!\n", node);
--                      freeaddrinfo(res);
-+                      nfs_freeaddrinfo(res);
-                       return false;
-               }
-       }
- #endif /* IPV6_SUPPORTED */
-       memcpy(sa, res->ai_addr, res->ai_addrlen);
--      freeaddrinfo(res);
-+      nfs_freeaddrinfo(res);
-       return true;
- }
-diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
-index eba1aac..adbde93 100644
---- a/utils/gssd/krb5_util.c
-+++ b/utils/gssd/krb5_util.c
-@@ -587,7 +587,7 @@ get_full_hostname(const char *inhost, char *outhost, int outhostlen)
-               goto out;
-       }
-       strncpy(outhost, addrs->ai_canonname, outhostlen);
--      freeaddrinfo(addrs);
-+      nfs_freeaddrinfo(addrs);
-       for (c = outhost; *c != '\0'; c++)
-           *c = tolower(*c);
-diff --git a/utils/mount/network.c b/utils/mount/network.c
-index 356f663..fcb0b9f 100644
---- a/utils/mount/network.c
-+++ b/utils/mount/network.c
-@@ -53,6 +53,7 @@
- #include <net/if.h>
- #include <ifaddrs.h>
-+#include "exportfs.h"
- #include "sockaddr.h"
- #include "xcommon.h"
- #include "mount.h"
-@@ -250,7 +251,7 @@ int nfs_lookup(const char *hostname, const sa_family_t family,
-               break;
-       }
--      freeaddrinfo(gai_results);
-+      nfs_freeaddrinfo(gai_results);
-       return ret;
- }
-@@ -307,7 +308,7 @@ int nfs_string_to_sockaddr(const char *address, struct sockaddr *sap,
-                       }
-                       break;
-               }
--              freeaddrinfo(gai_results);
-+              nfs_freeaddrinfo(gai_results);
-       }
-       return ret;
-@@ -1180,7 +1181,7 @@ static int nfs_ca_gai(const struct sockaddr *sap,
-       *buflen = gai_results->ai_addrlen;
-       memcpy(buf, gai_results->ai_addr, *buflen);
--      freeaddrinfo(gai_results);
-+      nfs_freeaddrinfo(gai_results);
-       return 1;
- }
-diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
-index 0a25b1f..b170552 100644
---- a/utils/mount/stropts.c
-+++ b/utils/mount/stropts.c
-@@ -35,6 +35,7 @@
- #include <netinet/in.h>
- #include <arpa/inet.h>
-+#include "exportfs.h"
- #include "sockaddr.h"
- #include "xcommon.h"
- #include "mount.h"
-@@ -1268,7 +1269,7 @@ int nfsmount_string(const char *spec, const char *node, char *type,
-       } else
-               nfs_error(_("%s: internal option parsing error"), progname);
--      freeaddrinfo(mi.address);
-+      nfs_freeaddrinfo(mi.address);
-       free(mi.hostname);
-       return retval;
- }
-diff --git a/utils/mountd/auth.c b/utils/mountd/auth.c
-index cb4848c..67627f7 100644
---- a/utils/mountd/auth.c
-+++ b/utils/mountd/auth.c
-@@ -297,7 +297,7 @@ auth_authenticate(const char *what, const struct sockaddr *caller,
-                    what, buf, nfs_get_port(caller), path, epath, error);
-       }
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       return exp;
- }
-diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
-index 7e8d403..2cb370f 100644
---- a/utils/mountd/cache.c
-+++ b/utils/mountd/cache.c
-@@ -113,7 +113,7 @@ static void auth_unix_ip(int f)
-               ai = client_resolve(tmp->ai_addr);
-               if (ai) {
-                       client = client_compose(ai);
--                      freeaddrinfo(ai);
-+                      nfs_freeaddrinfo(ai);
-               }
-       }
-       bp = buf; blen = sizeof(buf);
-@@ -133,7 +133,7 @@ static void auth_unix_ip(int f)
-       xlog(D_CALL, "auth_unix_ip: client %p '%s'", client, client?client: "DEFAULT");
-       free(client);
--      freeaddrinfo(tmp);
-+      nfs_freeaddrinfo(tmp);
- }
-@@ -667,7 +667,7 @@ static struct addrinfo *lookup_client_addr(char *dom)
-       if (tmp == NULL)
-               return NULL;
-       ret = client_resolve(tmp->ai_addr);
--      freeaddrinfo(tmp);
-+      nfs_freeaddrinfo(tmp);
-       return ret;
- }
-@@ -834,7 +834,7 @@ static void nfsd_fh(int f)
- out:
-       if (found_path)
-               free(found_path);
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       free(dom);
-       xlog(D_CALL, "nfsd_fh: found %p path %s", found, found ? found->e_path : NULL);
- }
-@@ -1355,7 +1355,7 @@ static void nfsd_export(int f)
-       xlog(D_CALL, "nfsd_export: found %p path %s", found, path ? path : NULL);
-       if (dom) free(dom);
-       if (path) free(path);
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
- }
-diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c
-index 086c39b..fb7bba4 100644
---- a/utils/mountd/mountd.c
-+++ b/utils/mountd/mountd.c
-@@ -578,10 +578,10 @@ static void prune_clients(nfs_export *exp, struct exportnode *e)
-                               *cp = c->gr_next;
-                               xfree(c->gr_name);
-                               xfree(c);
--                              freeaddrinfo(ai);
-+                              nfs_freeaddrinfo(ai);
-                               continue;
-                       }
--                      freeaddrinfo(ai);
-+                      nfs_freeaddrinfo(ai);
-               }
-               cp = &(c->gr_next);
-       }
-diff --git a/utils/mountd/rmtab.c b/utils/mountd/rmtab.c
-index 3ae0dbb..c896243 100644
---- a/utils/mountd/rmtab.c
-+++ b/utils/mountd/rmtab.c
-@@ -226,7 +226,7 @@ mountlist_list(void)
-                               ai = host_pton(rep->r_client);
-                               if (ai != NULL) {
-                                       m->ml_hostname = host_canonname(ai->ai_addr);
--                                      freeaddrinfo(ai);
-+                                      nfs_freeaddrinfo(ai);
-                               }
-                       }
-                       if (m->ml_hostname == NULL)
-diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
-index 1e6ffd6..47b1882 100644
---- a/utils/nfsd/nfssvc.c
-+++ b/utils/nfsd/nfssvc.c
-@@ -25,6 +25,7 @@
- #include "nfslib.h"
- #include "xlog.h"
- #include "nfssvc.h"
-+#include "exportfs.h"
- #include "../mount/version.h"
- #ifndef NFSD_FS_DIR
-@@ -246,8 +247,7 @@ error:
-               close(fd);
-       if (sockfd >= 0)
-               close(sockfd);
--      if (addrhead)
--              freeaddrinfo(addrhead);
-+      nfs_freeaddrinfo(addrhead);
-       return (bounded ? 0 : rc);
- }
-diff --git a/utils/statd/hostname.c b/utils/statd/hostname.c
-index 8cccdb8..c9e22d3 100644
---- a/utils/statd/hostname.c
-+++ b/utils/statd/hostname.c
-@@ -35,6 +35,7 @@
- #include <netdb.h>
- #include <arpa/inet.h>
-+#include "exportfs.h"
- #include "sockaddr.h"
- #include "statd.h"
- #include "xlog.h"
-@@ -203,7 +204,7 @@ statd_canonical_name(const char *hostname)
-               _Bool result;
-               result = get_nameinfo(ai->ai_addr, ai->ai_addrlen,
-                                       buf, (socklen_t)sizeof(buf));
--              freeaddrinfo(ai);
-+              nfs_freeaddrinfo(ai);
-               if (!result || buf[0] == '\0')
-                       /* OK to use presentation address,
-                        * if no reverse map exists */
-@@ -217,7 +218,7 @@ statd_canonical_name(const char *hostname)
-       if (ai == NULL)
-               return NULL;
-       strcpy(buf, ai->ai_canonname);
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       return strdup(buf);
- }
-@@ -253,7 +254,7 @@ statd_canonical_list(const char *hostname)
-               _Bool result;
-               result = get_nameinfo(ai->ai_addr, ai->ai_addrlen,
-                                       buf, (socklen_t)sizeof(buf));
--              freeaddrinfo(ai);
-+              nfs_freeaddrinfo(ai);
-               if (result)
-                       goto out;
-       }
-@@ -308,8 +309,8 @@ statd_matchhostname(const char *hostname1, const char *hostname2)
-                       }
- out:
--      freeaddrinfo(results2);
--      freeaddrinfo(results1);
-+      nfs_freeaddrinfo(results2);
-+      nfs_freeaddrinfo(results1);
-       xlog(D_CALL, "%s: hostnames %s and %s %s", __func__,
-                       hostname1, hostname2,
-diff --git a/utils/statd/sm-notify.c b/utils/statd/sm-notify.c
-index 29dad38..05d72a3 100644
---- a/utils/statd/sm-notify.c
-+++ b/utils/statd/sm-notify.c
-@@ -37,6 +37,7 @@
- #include "xlog.h"
- #include "nsm.h"
- #include "nfsrpc.h"
-+#include "exportfs.h"
- /* glibc before 2.3.4 */
- #ifndef AI_NUMERICSERV
-@@ -179,7 +180,7 @@ smn_verify_my_name(const char *name)
-       case 0:
-               /* @name was a presentation address */
-               retval = smn_get_hostname(ai->ai_addr, ai->ai_addrlen, name);
--              freeaddrinfo(ai);
-+              nfs_freeaddrinfo(ai);
-               if (retval == NULL)
-                       return NULL;
-               break;
-@@ -253,8 +254,7 @@ static void smn_forget_host(struct nsm_host *host)
-       free((void *)host->my_name);
-       free((void *)host->mon_name);
-       free(host->name);
--      if (host->ai)
--              freeaddrinfo(host->ai);
-+      nfs_freeaddrinfo(host->ai);
-       free(host);
- }
-@@ -430,7 +430,7 @@ retry:
-       if (srcport) {
-               if (bind(sock, ai->ai_addr, ai->ai_addrlen) == -1) {
-                       xlog(L_ERROR, "Failed to bind RPC socket: %m");
--                      freeaddrinfo(ai);
-+                      nfs_freeaddrinfo(ai);
-                       (void)close(sock);
-                       return -1;
-               }
-@@ -440,7 +440,7 @@ retry:
-               if (smn_bindresvport(sock, ai->ai_addr) == -1) {
-                       xlog(L_ERROR,
-                               "bindresvport on RPC socket failed: %m");
--                      freeaddrinfo(ai);
-+                      nfs_freeaddrinfo(ai);
-                       (void)close(sock);
-                       return -1;
-               }
-@@ -449,13 +449,13 @@ retry:
-               se = getservbyport((int)nfs_get_port(ai->ai_addr), "udp");
-               if (se != NULL && retry_cnt < 100) {
-                       retry_cnt++;
--                      freeaddrinfo(ai);
-+                      nfs_freeaddrinfo(ai);
-                       (void)close(sock);
-                       goto retry;
-               }
-       }
--      freeaddrinfo(ai);
-+      nfs_freeaddrinfo(ai);
-       return sock;
- }
--- 
-2.20.1
-
diff --git a/net/nfs-kernel-server/patches/102-limits.patch b/net/nfs-kernel-server/patches/102-limits.patch
deleted file mode 100644 (file)
index 67701c3..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/support/misc/file.c
-+++ b/support/misc/file.c
-@@ -27,6 +27,7 @@
- #include <dirent.h>
- #include <stdlib.h>
- #include <stdbool.h>
-+#include <limits.h>
- #include "xlog.h"
- #include "misc.h"
diff --git a/net/nfs-kernel-server/patches/200-idmapd-add-missing-libgen-header.patch b/net/nfs-kernel-server/patches/200-idmapd-add-missing-libgen-header.patch
deleted file mode 100644 (file)
index 1dd6b88..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Rosen Penev <rosenp@gmail.com>\r
-To: linux-nfs@vger.kernel.org\r
-Subject: [PATCH] idmapd: Add missing libgen header\r
-Date: Sun, 14 Apr 2019 19:11:40 -0700\r
-Message-Id: <20190415021140.1388-1-rosenp@gmail.com>\r
-X-Mailer: git-send-email 2.17.1\r
-\r
-Otherwise compilation can fail with an implicit declaration of basename.\r
-\r
-Signed-off-by: Rosen Penev <rosenp@gmail.com>\r
----\r
- utils/idmapd/idmapd.c | 1 +\r
- 1 file changed, 1 insertion(+)\r
-\r
-diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c\r
-index 91c0253..62e37b8 100644\r
---- a/utils/idmapd/idmapd.c\r
-+++ b/utils/idmapd/idmapd.c\r
-@@ -59,6 +59,7 @@\r
- #include <grp.h>\r
- #include <limits.h>\r
- #include <ctype.h>\r
-+#include <libgen.h>\r
- #include <nfsidmap.h>\r
\r
- #ifdef HAVE_CONFIG_H\r
--- \r
-2.17.1\r
-\r
index cb9b60141bf9a7136936fb4a5cd509bc8770826d..a001e47edc6787516aa4dd61b9e816b4dc6408f5 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015 OpenWrt.org
+# Copyright (c) 2019 OpenWrt.org
 #
 # This is free software, licensed under the BSD 2-Clause License.
 #
@@ -7,12 +7,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=port-mirroring
-PKG_VERSION:=1.4.3
-PKG_RELEASE:=1
+PKG_VERSION:=1.4.4
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/mmaraya/port-mirroring/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=90603163fb086cc586a711e066360ccfa5b4735f67586e8f9254e93f3bebb97e
+PKG_HASH:=9fb259d24cee4fe1bed1a51c49e52a8eb05b692ba1b5debb75fdf54957cc8ed1
 
 PKG_MAINTAINER:=Mike Maraya <mike.maraya@gmail.com>
 PKG_LICENSE:=BSD-2-Clause
diff --git a/net/port-mirroring/patches/010-convert-to-unix.patch b/net/port-mirroring/patches/010-convert-to-unix.patch
deleted file mode 100644 (file)
index e0a6330..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-diff --git a/include/config.h b/include/config.h
-index 5212c69..ac948ba 100644
---- a/include/config.h
-+++ b/include/config.h
-@@ -1,69 +1,69 @@
--/* \r
-- * Copyright (c) 2015 Mike Maraya <mike[dot]maraya[at]gmail[dot]com>\r
-- * All rights reserved.\r
-- *\r
-- * This file is subject to the terms and conditions defined in\r
-- * https://github.com/mmaraya/port-mirroring/blob/master/LICENSE,\r
-- * which is part of this software package.\r
-- *\r
-- */\r
--\r
--#ifndef PORT_MIRRORING_UTIL_H_\r
--#define PORT_MIRRORING_UTIL_H_\r
--\r
--#include <errno.h>\r
--#include <net/if.h>\r
--#include <netinet/in.h>\r
--#include <stdint.h>\r
--#include <stdio.h>\r
--#include <stdlib.h>\r
--#include <string.h>\r
--#include <syslog.h>\r
--#include <linux/limits.h>\r
--\r
--#define OPTION_MAX  254     /* max value for program options                */\r
--#define TIMEBUF     32      /* max timestamp length RFC3339                 */\r
--#define SRC_MAX     4       /* maxium number of source network interfaces   */\r
--#define PFE_MAX     80      /* maximum length of packet filter expression   */\r
--#define MACADDRLEN  6       /* length of a MAC address                      */\r
--\r
--// port-mirroring configuration bit flags\r
--#define PM_DAEMON   0x01    /* run as background process                    */\r
--#define PM_DEBUG    0x02    /* display debugging messages to console        */\r
--#define PM_TZSP     0x04    /* send packets using TaZmen Sniffer Protocol   */\r
--#define PM_DST_IF   0x08    /* destination is a network interface           */\r
--#define PM_DST_IP   0x10    /* destination is an internet protocol address  */\r
--#define PM_PROMISC  0x20    /* place source interface in promiscuous mode   */\r
--#define PM_SYSLOG   0x40    /* log messages to syslog facility              */\r
--\r
--// if no configuration file is specified, look through these in order\r
--#define CFG_PATH_1  "/etc/config/port-mirroring"\r
--#define CFG_PATH_2  "/etc/port-mirroring"\r
--#define CFG_PATH_3  "port-mirroring.conf"\r
--\r
--// default program id file\r
--#define PID_PATH    "/var/run/port-mirroring.pid"\r
--\r
--// program-wide configuration settings and variables\r
--struct pm_cfg\r
--{\r
--    char        *cfg_file;              /* path to configuration file       */\r
--    uint8_t     flags;                  /* boolean setting bitmask          */\r
--    char        src[SRC_MAX][IFNAMSIZ]; /* source network interfaces        */\r
--    char        dst_if[IFNAMSIZ];       /* destination network interface    */\r
--    in_addr_t   dst_ip;                 /* destination IP address           */\r
--    char        pfe[PFE_MAX];           /* tcpdump packet filter expression */\r
--    char        *pid_file;              /* path to process id file          */\r
--    int         src_count;              /* number of source ports           */\r
--    char        src_mac[MACADDRLEN];    /* source MAC address               */\r
--    char        dst_mac[MACADDRLEN];    /* destination MAC address          */\r
--    time_t      init_time;              /* used to check for timeouts       */\r
--    int         packet_count;           /* number of packets processed      */\r
--};\r
--\r
--void find_cfg(struct pm_cfg *cfg);\r
--char * printMACStr(const char *mac);\r
--char * getUCIItem(char *buf, char *item);\r
--int getUCIConf(char *buf, char *option, char *value);\r
--\r
--#endif  // PORT_MIRRORING_UTIL_H_\r
-+/* 
-+ * Copyright (c) 2015 Mike Maraya <mike[dot]maraya[at]gmail[dot]com>
-+ * All rights reserved.
-+ *
-+ * This file is subject to the terms and conditions defined in
-+ * https://github.com/mmaraya/port-mirroring/blob/master/LICENSE,
-+ * which is part of this software package.
-+ *
-+ */
-+
-+#ifndef PORT_MIRRORING_UTIL_H_
-+#define PORT_MIRRORING_UTIL_H_
-+
-+#include <errno.h>
-+#include <net/if.h>
-+#include <netinet/in.h>
-+#include <stdint.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <syslog.h>
-+#include <linux/limits.h>
-+
-+#define OPTION_MAX  254     /* max value for program options                */
-+#define TIMEBUF     32      /* max timestamp length RFC3339                 */
-+#define SRC_MAX     4       /* maxium number of source network interfaces   */
-+#define PFE_MAX     80      /* maximum length of packet filter expression   */
-+#define MACADDRLEN  6       /* length of a MAC address                      */
-+
-+// port-mirroring configuration bit flags
-+#define PM_DAEMON   0x01    /* run as background process                    */
-+#define PM_DEBUG    0x02    /* display debugging messages to console        */
-+#define PM_TZSP     0x04    /* send packets using TaZmen Sniffer Protocol   */
-+#define PM_DST_IF   0x08    /* destination is a network interface           */
-+#define PM_DST_IP   0x10    /* destination is an internet protocol address  */
-+#define PM_PROMISC  0x20    /* place source interface in promiscuous mode   */
-+#define PM_SYSLOG   0x40    /* log messages to syslog facility              */
-+
-+// if no configuration file is specified, look through these in order
-+#define CFG_PATH_1  "/etc/config/port-mirroring"
-+#define CFG_PATH_2  "/etc/port-mirroring"
-+#define CFG_PATH_3  "port-mirroring.conf"
-+
-+// default program id file
-+#define PID_PATH    "/var/run/port-mirroring.pid"
-+
-+// program-wide configuration settings and variables
-+struct pm_cfg
-+{
-+    char        *cfg_file;              /* path to configuration file       */
-+    uint8_t     flags;                  /* boolean setting bitmask          */
-+    char        src[SRC_MAX][IFNAMSIZ]; /* source network interfaces        */
-+    char        dst_if[IFNAMSIZ];       /* destination network interface    */
-+    in_addr_t   dst_ip;                 /* destination IP address           */
-+    char        pfe[PFE_MAX];           /* tcpdump packet filter expression */
-+    char        *pid_file;              /* path to process id file          */
-+    int         src_count;              /* number of source ports           */
-+    char        src_mac[MACADDRLEN];    /* source MAC address               */
-+    char        dst_mac[MACADDRLEN];    /* destination MAC address          */
-+    time_t      init_time;              /* used to check for timeouts       */
-+    int         packet_count;           /* number of packets processed      */
-+};
-+
-+void find_cfg(struct pm_cfg *cfg);
-+char * printMACStr(const char *mac);
-+char * getUCIItem(char *buf, char *item);
-+int getUCIConf(char *buf, char *option, char *value);
-+
-+#endif  // PORT_MIRRORING_UTIL_H_
diff --git a/net/port-mirroring/patches/010-snprintf-to-strncpy.patch b/net/port-mirroring/patches/010-snprintf-to-strncpy.patch
new file mode 100644 (file)
index 0000000..d28c2e2
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/src/main.c
++++ b/src/main.c
+@@ -90,7 +90,7 @@ int loadCfg(const char *fpath)
+                 }
+                 else
+                 {
+-                    snprintf(cfg.dst_if, IFNAMSIZ, "%s", value);
++                    strncpy(cfg.dst_if, value, IFNAMSIZ);
+                     cfg.flags |= PM_DST_IF;
+                 }
+             }
+@@ -104,7 +104,7 @@ int loadCfg(const char *fpath)
+             }
+             else if (strcmp(option, "filter") == 0)
+             {
+-                snprintf(cfg.pfe, PFE_MAX, "%s", value);
++                strncpy(cfg.pfe, value, PFE_MAX);
+             }
+             else if (strcmp(option, "promiscuous") == 0)
+             {
diff --git a/net/port-mirroring/patches/020-fix-musl.patch b/net/port-mirroring/patches/020-fix-musl.patch
deleted file mode 100644 (file)
index fc9288a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/include/config.h b/include/config.h
-index ac948ba..da93160 100644
---- a/include/config.h
-+++ b/include/config.h
-@@ -19,6 +19,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <syslog.h>
-+#include <time.h>
- #include <linux/limits.h>
- #define OPTION_MAX  254     /* max value for program options                */
index 108c7711adc57c8e1599d7d7859e1817a445c861..a3edecea5884fb84a0f09e5a7cf85d3af512f2e8 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rpcbind
 PKG_VERSION:=1.2.5
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE_URL:=@SF/rpcbind
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
diff --git a/net/rpcbind/patches/002-fix_stack_buffer_overflow.patch b/net/rpcbind/patches/002-fix_stack_buffer_overflow.patch
new file mode 100644 (file)
index 0000000..1a43dac
--- /dev/null
@@ -0,0 +1,69 @@
+From 0bc1c0ae7ce61a7ac8a8e9a9b2086268f011abf0 Mon Sep 17 00:00:00 2001
+From: Steve Dickson <steved@redhat.com>
+Date: Tue, 9 Oct 2018 09:19:50 -0400
+Subject: [PATCH 1/1] rpcinfo: Fix stack buffer overflow
+
+*** buffer overflow detected ***: rpcinfo terminated
+======= Backtrace: =========
+/lib64/libc.so.6(+0x721af)[0x7ff24c4451af]
+/lib64/libc.so.6(__fortify_fail+0x37)[0x7ff24c4ccdc7]
+/lib64/libc.so.6(+0xf8050)[0x7ff24c4cb050]
+rpcinfo(+0x435f)[0xef3be2635f]
+rpcinfo(+0x1c62)[0xef3be23c62]
+/lib64/libc.so.6(__libc_start_main+0xf5)[0x7ff24c3f36e5]
+rpcinfo(+0x2739)[0xef3be24739]
+======= Memory map: ========
+...
+The patch below fixes it.
+
+Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
+Signed-off-by: Thomas Blume <thomas.blume@suse.com>
+Signed-off-by: Steve Dickson <steved@redhat.com>
+---
+ src/rpcinfo.c | 23 +++++++++++++++++------
+ 1 file changed, 17 insertions(+), 6 deletions(-)
+
+diff --git a/src/rpcinfo.c b/src/rpcinfo.c
+index 9b46864..cfdba88 100644
+--- a/src/rpcinfo.c
++++ b/src/rpcinfo.c
+@@ -973,6 +973,7 @@ rpcbdump (dumptype, netid, argc, argv)
+       ("   program version(s) netid(s)                         service     owner\n");
+       for (rs = rs_head; rs; rs = rs->next)
+       {
++        size_t netidmax = sizeof(buf) - 1;
+         char *p = buf;
+         printf ("%10ld  ", rs->prog);
+@@ -985,12 +986,22 @@ rpcbdump (dumptype, netid, argc, argv)
+           }
+         printf ("%-10s", buf);
+         buf[0] = '\0';
+-        for (nl = rs->nlist; nl; nl = nl->next)
+-          {
+-            strcat (buf, nl->netid);
+-            if (nl->next)
+-              strcat (buf, ",");
+-          }
++
++          for (nl = rs->nlist; nl; nl = nl->next)
++            {
++              strncat (buf, nl->netid, netidmax);
++              if (strlen (nl->netid) < netidmax)
++                netidmax -= strlen(nl->netid);
++              else
++                break;
++
++              if (nl->next && netidmax > 1)
++                {
++                  strncat (buf, ",", netidmax);
++                  netidmax --;
++                }
++            }
++
+         printf ("%-32s", buf);
+         rpc = getrpcbynumber (rs->prog);
+         if (rpc)
+-- 
+1.8.3.1
+
index 3d4afffe2d5802c318f819e93e6abeea68e33775..78a26d136892567a8395b622f3bbb6488c83d3c0 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rsyslog
 PKG_VERSION:=8.39.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.rsyslog.com/files/download/rsyslog/
@@ -29,7 +29,7 @@ define Package/rsyslog
   CATEGORY:=Network
   TITLE:=Enhanced system logging and kernel message trapping daemons
   URL:=https://www.rsyslog.com/
-  DEPENDS:=+libestr +libfastjson +libuuid +zlib +USE_UCLIBC:libpthread +USE_UCLIBC:librt
+  DEPENDS:=+libestr +libfastjson +libuuid +zlib
 endef
 
 define Package/rsyslog/conffiles
index b0f24f1415470b08b5f4c1ee0b8b53b9b653a4c1..ff37ebd8ede9377989552cb5a3045609a58a8cfe 100644 (file)
@@ -2,8 +2,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba
-PKG_VERSION:=4.9.6
-PKG_RELEASE:=2
+PKG_VERSION:=4.9.8
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
 PKG_LICENSE:=GPL-3.0-only
@@ -16,7 +16,7 @@ PKG_SOURCE_URL:=https://ftp.heanet.ie/mirrors/ftp.samba.org/stable/ \
                http://samba.mirror.bit.nl/samba/ftp/stable/ \
                https://download.samba.org/pub/samba/stable/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=c9205a651a83d69e200fec9dd65e9fa360f0c75ab3275b3dcb74e5cbaec60807
+PKG_HASH:=82ebb7c3f1847c39341dd97ff8b73f40fa83f5f794daeceb80f3c349ace3cf56
 
 # samba4=(asn1_compile) e2fsprogs=(compile_et) nfs-kernel-server=(rpcgen)
 HOST_BUILD_DEPENDS:=nfs-kernel-server/host e2fsprogs/host
index 7e74a0c45b0908358ee5460603c62c47c57db410..b61f4bbe0712425ac86abbb6f1c1c15666496c8d 100644 (file)
@@ -82,6 +82,8 @@ smb_add_share() {
        local timemachine
        local timemachine_maxsize
        local force_root
+       local write_list
+       local read_list
 
        config_get name $1 name
        config_get path $1 path
@@ -97,6 +99,8 @@ smb_add_share() {
        config_get_bool timemachine     $1 timemachine  0
        config_get timemachine_maxsize $1 timemachine_maxsize
        config_get_bool force_root      $1 force_root   0
+       config_get write_list $1 write_list
+       config_get read_list $1 read_list
 
        [ -z "$name" -o -z "$path" ] && return
 
@@ -117,7 +121,10 @@ smb_add_share() {
        [ -n "$guest_ok" ] && echo -e "\tguest ok = $guest_ok" >> /var/etc/smb.conf
        [ -n "$guest_only" ] && echo -e "\tguest only = $guest_only" >> /var/etc/smb.conf
        [ -n "$inherit_owner" ] && echo -e "\tinherit owner = $inherit_owner" >> /var/etc/smb.conf
-       
+
+       [ -n "$write_list" ] && echo -e "\twrite list = $write_list" >> /var/etc/smb.conf
+       [ -n "$read_list" ] && echo -e "\tread list = $read_list" >> /var/etc/smb.conf
+
        if [ "$MACOS" -eq 1 ]; then
                vfs_objects="catia fruit streams_xattr $vfs_objects"
                echo -e "\tfruit:encoding = native" >> /var/etc/smb.conf
index 52590d233ad007454c0fcb80c68a1228e1636759..aaa99065bc362f73023e50811946a97c29d49ee7 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ser2net
 PKG_VERSION:=3.5.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/ser2net
@@ -28,8 +28,7 @@ define Package/ser2net
   SECTION:=net
   CATEGORY:=Network
   TITLE:=Serial to Network Proxy
-  URL:=http://sourceforge.net/projects/ser2net/
-  DEPENDS:=+USE_UCLIBC:libpthread +USE_UCLIBC:librt
+  URL:=https://sourceforge.net/projects/ser2net/
 endef
 
 define Package/ser2net/description
index 3214a3cc597829ff6eff63927f326925a23ae2e6..0374e7ece5abfb506e1887f9430f66741484422a 100644 (file)
@@ -14,7 +14,7 @@ include $(TOPDIR)/rules.mk
 #
 PKG_NAME:=shadowsocks-libev
 PKG_VERSION:=3.2.5
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)
index 30181ce25af1bfce136e6a5a7719c1b76fb692c4..8ac08713d144dbc8f9c93357566c0ade9c122071 100644 (file)
@@ -32,6 +32,8 @@ Section type `server` is for definition of remote shadowsocks servers.  They wil
 
 Section type `ss_local`, `ss_redir`, `ss_tunnel` are for specification of shadowsocks-libev components.  They share mostly a common set of options like `local_port`, `verbose`, `fast_open`, `timeout`, etc.
 
+Plugin options should be specified in `server` section and will be inherited by other compoenents referring to it.
+
 We can have multiple instances of component and `server` sections.  The relationship between them is many-to-one.  This will have the following implications
 
  - It's possible to have both `ss_local` and `ss_redir` referring to the same `server` definition
@@ -75,6 +77,13 @@ ss-rules uses kernel ipset mechanism for storing addresses/networks.  Those ipse
 
 Note also that `src_ips_xx` and `dst_ips_xx` actually also accepts cidr network representation.  Option names are retained in its current form for backward compatibility coniderations
 
+# incompatible changes
+
+| Commit date | Commit ID | Subject | Comment |
+| ----------- | --------- | ------- | ------- |
+| 2019-05-09  | afe7d3424 | shadowsocks-libev: move plugin options to server section | This is a revision against c19e949 committed 2019-05-06 |
+| 2017-07-02  | b61af9703 | shadowsocks-libev: rewrite | Packaging of shadowsocks-libev was rewritten from scratch |
+
 # notes and faq
 
 Useful paths and commands for debugging
index 42ffe9e0ddd5d8f27da41f07d52bf4e16c3be251..79ec2e8b3acc95f61adc38632838619bff76710c 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh /etc/rc.common
 #
-# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
+# Copyright (C) 2017-2019 Yousong Zhou <yszhou4tech@gmail.com>
 #
 # This is free software, licensed under the GNU General Public License v3.
 # See /LICENSE for more information.
@@ -30,6 +30,8 @@ ss_mkjson_server_conf_() {
        [ -z "$method" ] || json_add_string method "$method"
        [ -z "$key" ] || json_add_string key "$key"
        [ -z "$password" ] || json_add_string password "$password"
+       [ -z "$plugin" ] || json_add_string plugin "$plugin"
+       [ -z "$plugin_opts" ] || json_add_string plugin_opts "$plugin_opts"
 }
 
 ss_mkjson_ss_local_conf() {
@@ -212,7 +214,9 @@ validate_common_server_options_() {
                'server_port:port' \
                'password:string' \
                'key:string' \
-               "method:or($stream_methods, $aead_methods)"
+               "method:or($stream_methods, $aead_methods)" \
+               'plugin:string' \
+               'plugin_opts:string'
 }
 
 validate_common_client_options_() {
diff --git a/net/smcroute/Makefile b/net/smcroute/Makefile
new file mode 100644 (file)
index 0000000..c9f77cf
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Copyright (C) 2019 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=smcroute
+PKG_VERSION:=2.4.4
+PKG_RELEASE:=1
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/troglobit/smcroute/releases/download/$(PKG_VERSION)
+PKG_HASH:=431be94c46646767f69c85fee445277b7e765a55177d3ee29522416cfe2cc067
+
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/smcroute
+       SECTION:=net
+       CATEGORY:=Network
+       SUBMENU:=Routing and Redirection
+       TITLE:=Static Multicast Routing Daemon
+       URL:=http://troglobit.com/smcroute.html
+       MAINTAINER:=Moritz Warning <moritzwarning@web.de>
+endef
+
+define Package/smcroute/description
+       SMCRoute is a command line tool to manipulate the multicast routes of the Linux kernel.
+endef
+
+define Package/smcroute/conffiles
+       /etc/smcroute.conf
+endef
+
+CONFIGURE_ARGS += \
+       --without-libcap
+
+define Package/smcroute/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/etc/init.d/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/smcrouted $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/smcroutectl $(1)/usr/bin/
+       $(INSTALL_CONF) $(PKG_BUILD_DIR)/smcroute.conf $(1)/etc
+       $(INSTALL_BIN) ./files/smcroute.init $(1)/etc/init.d/smcroute
+endef
+
+$(eval $(call BuildPackage,smcroute))
diff --git a/net/smcroute/files/smcroute.init b/net/smcroute/files/smcroute.init
new file mode 100755 (executable)
index 0000000..a3d7017
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+USE_PROCD=1
+PROG=/usr/sbin/smcrouted
+
+start_service() {
+       procd_open_instance
+       procd_set_param command $PROG -n
+       procd_set_param stderr 1
+       procd_set_param stdout 1
+       procd_close_instance
+}
index 7a822490c662a41bd24621432c362e0b8d55edb8..4fac5f8ae94ee99facfc91d2e40c480041e1f518 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=socat
-PKG_VERSION:=1.7.3.2
-PKG_RELEASE:=5
+PKG_VERSION:=1.7.3.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.dest-unreach.org/socat/download
-PKG_HASH:=e3561f808739383eb10fada1e5d4f26883f0311b34fd0af7837d0c95ef379251
+PKG_HASH:=0dd63ffe498168a4aac41d307594c5076ff307aa0ac04b141f8f1cec6594d04a
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
index afda53ed8cb964197055c45ebb54ad34326f765f..20e60ad6ca500e2411bc0c4593b0972d22a31e7a 100644 (file)
@@ -5,7 +5,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=stubby
-PKG_VERSION:=0.2.4
+PKG_VERSION:=0.2.6
 PKG_RELEASE:=1
 
 PKG_LICENSE:=BSD-3-Clause
@@ -13,10 +13,9 @@ PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Jonathan Underwood <jonathan.underwood@gmail.com>
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/getdnsapi/$(PKG_NAME)
-PKG_SOURCE_VERSION:=58200cadec6371f95e31a7f3735225c5a46ecf75
-PKG_MIRROR_HASH:=28c46f4464cb41cf59264d10da63dc25ece9a1d00b4dfb05a9276594658e5eb9
+PKG_SOURCE_VERSION:=v$(PKG_VERSION)
+PKG_MIRROR_HASH:=af896c471ac67b31c2263d11fcdfcdb32a213621c2f8789f4b0a4ceca4437108
 
 PKG_FIXUP:=autoreconf
 
index 800e9545ebb38035d8f5630595f7827a3d7d67f7..bc5344cd807dc05b0417b1f76d50e784fc33171b 100644 (file)
@@ -372,7 +372,33 @@ The possible levels are:
 
 This option specifies additional command line arguments for
 stubby daemon. By default, this is an empty string.
-       
+
+#### `option tls_cipher_list`
+
+If set, this specifies the acceptable ciphers for DNS over TLS. With OpenSSL
+1.1.1 this list is for TLS1.2 and older only. Ciphers for TLS1.3 should be set
+with the `tls_ciphersuites` option. This option can also be given per upstream
+resolver. By default, this option is not set.
+
+#### `option tls_ciphersuites`
+
+If set, this specifies the acceptable cipher for DNS over TLS1.3. OpenSSL
+version 1.1.1 or greater is required for this option. This option can also be
+given per upstream resolver. By default, this option is not set.
+
+#### `option tls_min_version`
+
+If set, this specifies the minimum acceptable TLS version. Works with OpenSSL
+1.1.1 or greater only. This option can also be given per upstream resolver. By
+default, this option is not set.
+
+#### `option tls_max_version`
+
+If set, this specifies the maximum acceptable TLS version. Works with OpenSSL
+1.1.1 or greater only. This option can also be given per upstream resolver. By
+default, this option is not set.
+
+
 ### `resolver` section options
 
 #### `option address`
@@ -385,6 +411,36 @@ IPv6 address.
 This option specifies the upstream domain name used for TLS authentication with
 the supplied server certificate
 
+#### `option tls_port`
+
+This option specifies the TLS port for the upstream resolver. If not specified,
+this defaults to 853.
+
+#### `option tls_cipher_list`
+
+If set, this specifies the acceptable ciphers for DNS over TLS. With OpenSSL
+1.1.1 this list is for TLS1.2 and older only. Ciphers for TLS1.3 should be set
+with the `tls_ciphersuites` option. By default, this option is not set. If set,
+this overrides the global value.
+
+#### `option tls_ciphersuites`
+
+If set, this specifies the acceptable cipher for DNS over TLS1.3. OpenSSL
+version 1.1.1 or greater is required for this option. By default, this option is
+not set. If set, this overrides the global value.
+
+#### `option tls_min_version`
+
+If set, this specifies the minimum acceptable TLS version. Works with OpenSSL
+1.1.1 or greater only. By default, this option is not set. If set, this
+overrides the global value.
+
+#### `option tls_max_version`
+
+If set, this specifies the maximum acceptable TLS version. Works with OpenSSL
+1.1.1 or greater only. By default, this options is not set. If set, this
+overrides the global value.
+
 #### `list spki`
 
 This list specifies the SPKI pinset which is verified against the keys in the
index a02936da13900c52b1f7bd0a1423bcd1c83034be..f722a43046ae662cb1c37a0d8238f7a9132802fc 100644 (file)
@@ -19,24 +19,48 @@ config stubby 'global'
        list listen_address '0::1@5453'
        # option log_level '7'
        # option command_line_arguments ''
+       # option tls_cipher_list 'EECDH+AESGCM:EECDH+CHACHA20'
+       # option tls_ciphersuites 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256'
+       # option tls_min_version '1.2'
+       # option tls_max_version '1.3'
 
 # Upstream resolvers are specified using 'resolver' sections.
 config resolver
        option address '2606:4700:4700::1111'
        option tls_auth_name 'cloudflare-dns.com'
+       # option tls_port 853
        # list spki 'sha256/yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc='
+       # option tls_cipher_list 'EECDH+AESGCM:EECDH+CHACHA20'
+       # option tls_ciphersuites 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256'
+       # option tls_min_version '1.2'
+       # option tls_max_version '1.3'
 
 config resolver
        option address '2606:4700:4700::1001'
        option tls_auth_name 'cloudflare-dns.com'
+       # option tls_port 853
        # list spki 'sha256/yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc='
+       # option tls_cipher_list 'EECDH+AESGCM:EECDH+CHACHA20'
+       # option tls_ciphersuites 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256'
+       # option tls_min_version '1.2'
+       # option tls_max_version '1.3'
 
 config resolver
        option address '1.1.1.1'
        option tls_auth_name 'cloudflare-dns.com'
+       # option tls_port 853
        # list spki 'sha256/yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc='
+       # option tls_cipher_list 'EECDH+AESGCM:EECDH+CHACHA20'
+       # option tls_ciphersuites 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256'
+       # option tls_min_version '1.2'
+       # option tls_max_version '1.3'
 
 config resolver
        option address '1.0.0.1'
        option tls_auth_name 'cloudflare-dns.com'
+       # option tls_port 853
        # list spki 'sha256/yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc='
+       # option tls_cipher_list 'EECDH+AESGCM:EECDH+CHACHA20'
+       # option tls_ciphersuites 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256'
+       # option tls_min_version '1.2'
+       # option tls_max_version '1.3'
index 4a975e39d58114f70c8a82f74e626a279f75ba89..cf051a1404f1171ff832b2c2767e1f0e8fe11285 100755 (executable)
@@ -38,6 +38,10 @@ generate_config()
     local upstream_recursive_servers_section=0
     local command_line_arguments
     local log_level
+    local tls_cipher_list
+    local tls_ciphersuites
+    local tls_min_version
+    local tls_max_version
 
     # Generate configuration. See: https://github.com/getdnsapi/stubby/blob/develop/stubby.yml.example
     echo "# Autogenerated configuration from uci data" > "$config_file"
@@ -93,6 +97,26 @@ generate_config()
     config_get idle_timeout "global" idle_timeout "10000"
     echo "idle_timeout: $idle_timeout" >> "$config_file"
 
+    config_get tls_cipher_list "global" tls_cipher_list ""
+    if [ -n "$tls_cipher_list" ]; then
+        echo "tls_cipher_list: \"$tls_cipher_list\"" >> "$config_file"
+    fi
+
+    config_get tls_ciphersuites "global" tls_ciphersuites ""
+    if [ -n "$tls_ciphersuites" ]; then
+        echo "tls_ciphersuites: \"$tls_ciphersuites\"" >> "$config_file"
+    fi
+
+    config_get tls_min_version "global" tls_min_version ""
+    if [ -n "$tls_min_version" ]; then
+        echo "tls_min_version: GETDNS_TLS${tls_min_version/\./_}" >> "$config_file"
+    fi
+
+    config_get tls_max_version "global" tls_max_version ""
+    if [ -n "$tls_max_version" ]; then
+        echo "tls_max_version: GETDNS_TLS${tls_max_version/\./_}" >> "$config_file"
+    fi
+
     handle_listen_address_value()
     {
         local value="$1"
@@ -122,21 +146,52 @@ generate_config()
         local config=$1
         local address
         local tls_auth_name
+        local tls_port
         local tls_pubkey_pinset_section=0
+        local tls_cipher_list
+        local tls_ciphersuites
+        local tls_min_version
+        local tls_max_version
 
         if [ "$upstream_recursive_servers_section" = 0 ]; then
             echo "upstream_recursive_servers:" >> "$config_file"
             upstream_recursive_servers_section=1
         fi
         config_get address "$config" address
-        config_get tls_auth_name "$config" tls_auth_name
         echo "  - address_data: $address" >> "$config_file"
+
+        config_get tls_auth_name "$config" tls_auth_name
         echo "    tls_auth_name: \"$tls_auth_name\"" >> "$config_file"
 
+        config_get tls_auth_port "$config" tls_port ""
+        if [ -n "$tls_port" ]; then
+            echo "    tls_port: $tls_port"  >> "$config_file"
+        fi
+
+        config_get tls_cipher_list "$config" tls_cipher_list ""
+        if [ -n "$tls_cipher_list" ]; then
+            echo "    tls_cipher_list: \"$tls_cipher_list\"" >> "$config_file"
+        fi
+
+        config_get tls_ciphersuites "$config" tls_ciphersuites ""
+        if [ -n "$tls_ciphersuites" ]; then
+            echo "    tls_ciphersuites: \"$tls_ciphersuites\"" >> "$config_file"
+        fi
+
+        config_get tls_min_version "$config" tls_min_version ""
+        if [ -n "$tls_min_version" ]; then
+            echo "    tls_min_version: GETDNS_TLS${tls_min_version/\./_}" >> "$config_file"
+        fi
+
+        config_get tls_max_version "$config" tls_max_version ""
+        if [ -n "$tls_max_version" ]; then
+            echo "    tls_max_version: GETDNS_TLS${tls_max_version/\./_}" >> "$config_file"
+        fi
+
         handle_resolver_spki()
         {
             local val="$1"
-            local digest="${val%/*}"
+            local digest="${val%%/*}"
             local value="${val#*/}"
 
             if [ "$tls_pubkey_pinset_section" = 0 ]; then
index d8c6820de31cd498e07e62a4ab877d85470a0662..9cafc73dd14d6091fdb7ded066f910b7d1e8afdb 100644 (file)
@@ -79,6 +79,8 @@ define Package/subversion-server/conffiles
 endef
 
 TARGET_CFLAGS += $(FPIC)
+APU_LIBS=$(shell $(STAGING_DIR)/usr/bin/apu-1-config --link-libtool --libs)
+TARGET_LDFLAGS += $(APU_LIBS)
 
 CONFIGURE_ARGS += \
        --with-apr="$(STAGING_DIR)/usr/bin/apr-1-config" \
diff --git a/net/tac_plus/Makefile b/net/tac_plus/Makefile
new file mode 100644 (file)
index 0000000..381a044
--- /dev/null
@@ -0,0 +1,95 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=tac_plus
+PKG_VERSION:=4.0.4.28
+PKG_REV:=259251e6f1c2d5c98081a43c6f66d9eb2989cfd8
+PKG_RELEASE:=2
+
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE_DATE:=2019.02.11
+PKG_SOURCE_URL:=https://codeload.github.com/facebook/tac_plus/tar.gz/$(PKG_SOURCE_VERSION)?
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_DATE)-$(PKG_SOURCE_VERSION).tar.gz
+PKG_HASH:=3c37d6a8acf66cac4a95558bf3e29686ef3be505a1638e2ef788a7ece41d1b01
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(BUILD_VARIANT)
+PKG_BUILD_SUBDIR:=tacacs-F$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
+
+MAKE_PATH:=$(PKG_BUILD_SUBDIR)
+CONFIGURE_PATH:=$(PKG_BUILD_SUBDIR)
+
+CONFIGURE_ARGS += \
+       --disable-shared \
+       --without-libwrap
+
+ifeq ($(BUILD_VARIANT),without-pam)
+CONFIGURE_VARS += \
+       ac_cv_lib_pam_pam_start=no
+endif
+
+define Package/tac_plus/Default
+       SECTION:=net
+       CATEGORY:=Network
+       TITLE:=TACACS+ daemon
+       URL:=https://github.com/facebook/tac_plus/
+endef
+
+define Package/tac_plus
+$(call Package/tac_plus/Default)
+       TITLE+= (without PAM support)
+       VARIANT:=without-pam
+endef
+
+define Package/tac_plus-pam
+$(call Package/tac_plus/Default)
+       TITLE+= (with PAM support)
+       DEPENDS+= +libpam
+       VARIANT:=with-pam
+endef
+
+define Package/tac_plus/Default/description
+TACACS+ is a protocol (not TACACS or XTACACS) for authentication,
+authorization and accounting (AAA) services for routers and network devices.
+endef
+
+define Package/tac_plus/description
+$(call Package/tac_plus/Default/description)
+This package is built without PAM support.
+endef
+
+define Package/tac_plus-pam/description
+$(call Package/tac_plus/Default/description)
+This package is built with PAM support.
+endef
+
+define Package/tac_plus/Default/conffiles
+/etc/tac_plus.conf
+endef
+
+define Package/tac_plus/conffiles
+$(call Package/tac_plus/Default/conffiles)
+endef
+
+define Package/tac_plus-pam/conffiles
+$(call Package/tac_plus/Default/conffiles)
+endef
+
+define Package/tac_plus/install
+       $(INSTALL_DIR) $(1)/etc/init.d $(1)/usr/sbin
+       $(INSTALL_CONF) ./files/tac_plus.conf $(1)/etc/tac_plus.conf
+       $(INSTALL_BIN) ./files/tac_plus.init $(1)/etc/init.d/tac_plus
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_BUILD_SUBDIR)/tac_plus $(1)/usr/sbin/
+endef
+
+define Package/tac_plus-pam/install
+       $(INSTALL_DIR) $(1)/etc/init.d $(1)/usr/sbin
+       $(INSTALL_CONF) ./files/tac_plus.conf $(1)/etc/tac_plus.conf
+       $(INSTALL_BIN) ./files/tac_plus.init $(1)/etc/init.d/tac_plus
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_BUILD_SUBDIR)/tac_plus $(1)/usr/sbin/
+endef
+
+$(eval $(call BuildPackage,tac_plus))
+$(eval $(call BuildPackage,tac_plus-pam))
diff --git a/net/tac_plus/files/tac_plus.conf b/net/tac_plus/files/tac_plus.conf
new file mode 100644 (file)
index 0000000..5b9ce6c
--- /dev/null
@@ -0,0 +1,58 @@
+#
+# An example tac_plus configuration. You should change this
+# before using it.
+#
+
+# Define where to log accounting data, this is the default.
+accounting file = /var/log/tac_plus.acct
+
+# This is the key that clients have to use to access Tacacs+
+key = testing123
+
+# Use /etc/passwd file to do authentication
+#default authentication = file /etc/passwd
+
+# You can use feature like per host key with different enable passwords
+#host = 127.0.0.1 {
+#        key = test 
+#        type = cisco
+#        enable = <des|cleartext> enablepass
+#        prompt = "Welcome XXX ISP Access Router \n\nUsername:"
+#}
+
+# We also can define local users and specify a file where data is stored.
+# That file may be filled using tac_pwd
+#user = test1 {
+#    name = "Test User"
+#    member = staff
+#    login = file /etc/tacacs/tacacs_passwords
+#}
+
+# We can also specify rules valid per group of users.
+#group = group1 {
+#      cmd = conf {
+#              deny
+#      }
+#}
+
+# Another example : forbid configure command for some hosts
+# for a define range of clients
+#group = group1 {
+#      login = file /etc/passwd
+#      service = ppp
+#      protocol = ip {
+#              addr = 10.10.0.0/24
+#      }
+#      cmd = conf {
+#              deny .*
+#      }
+#}
+
+user = DEFAULT {
+       login = file /etc/passwd
+       service = ppp protocol = ip {}
+}
+
+# Much more features are availables, like ACL, more service compatibilities,
+# commands authorization, scripting authorization.
+# See the man page for those features.
diff --git a/net/tac_plus/files/tac_plus.init b/net/tac_plus/files/tac_plus.init
new file mode 100755 (executable)
index 0000000..42cae8c
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+
+USE_PROCD=1
+PROG=/usr/sbin/tac_plus
+
+start_service() {
+       procd_open_instance
+       procd_set_param command "$PROG" -G -C /etc/tac_plus.conf
+       procd_close_instance
+}
diff --git a/net/tac_plus/patches/010-configure-remove-libnsl.patch b/net/tac_plus/patches/010-configure-remove-libnsl.patch
new file mode 100644 (file)
index 0000000..01ac6aa
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/tacacs-F4.0.4.28/configure       2015-01-06 22:55:35.000000000 +0100
++++ b/tacacs-F4.0.4.28/configure       2019-01-31 14:44:28.679272504 +0100
+@@ -3285,11 +3285,9 @@
+     ;;
+     *linux* )
+       # XXX: not sure if /usr/local is necessary.
+-      # XXX: linux libwrap needs -lnsl. configure should check for
+-      #      existence of libnsl instead of hard-coding
+       CPPFLAGS="$CFLAGS -I/usr/local/include"; export CPPFLAGS
+       LDFLAGS="$LDFLAGS -L/usr/local/lib -L/lib"; export LDFLAGS
+-      LIBS="-lnsl -lcrypt $LIBS"; export LIBS
++      LIBS="-lcrypt $LIBS"; export LIBS
+       $as_echo "#define LINUX 1" >>confdefs.h
index fa65f3c752a242bc86485be44fe02fddcaa88ee6..1c4c6522d2897739ca819b4788138e07263d7317 100644 (file)
@@ -4,12 +4,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tgt
-PKG_VERSION:=1.0.76
+PKG_VERSION:=1.0.77
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/fujita/tgt/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=fda84ae0cfc71e2b67ca2d073978f60cb52feea5a697601938ff86656bfdd8f9
+PKG_HASH:=7eab72f47e69102c709be2b48b11228470d7a84c88e64f5c354b83ed84d2d04e
 
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 PKG_LICENSE:=GPL-2.0
index de5239d3618fe9566272230a8486cdba8e5a2049..e226f65860f5f7b2066188e2810bca3263140311 100644 (file)
@@ -44,6 +44,8 @@ config target 1
 #      option 'removable' '0'
 #  0 = Classic sense format, 1 = Support descriptor format.
 #      option 'sense_format' '0'
+# Rotaion rate: 0: not reported, 1: non-rotational medium (SSD), 2-1024: reserverd, 1025+: "Nominal rotation rate"
+#      option 'rotation_rate' '0'
 
 #config lun 2_1
 #      option device /mnt/iscsi.img
index b627d5dbd44e02b7fc050d7f1fedc4669149343c..c10057d6502a58701a66ea7e10e0ff708956d8f5 100755 (executable)
@@ -28,7 +28,8 @@ validate_lun_section() {
                'scsi_id:string' \
                'scsi_sn:string' \
                'sense_format:range(0, 1)' \
-               'vendor_id:string'
+               'vendor_id:string' \
+               'rotation_rate:uinteger'
 }
 
 handle_lun() {
@@ -36,7 +37,7 @@ handle_lun() {
        local my_tgtid=${tgt_lun%_*}
        local lun=${tgt_lun#*_}
 
-       [ $my_tgtid -eq $tgtid ] || return 0
+       [ "$my_tgtid" -eq "$tgtid" ] || return 0
 
        [ "$2" = 0 ] || {
                $logger "Validation failed for LUN $tgt_lun"
@@ -47,22 +48,22 @@ handle_lun() {
                return 1
        }
 
-       if [ $sync -ne 0 -o $direct -ne 0 ]; then
+       if [ "$sync" -ne 0 ] || [ "$direct" -ne 0 ]; then
                local bsoflags
-               [ $sync -ne 0 ] && bsoflags="sync"
-               [ $direct -ne 0 ] && bsoflags="direct"
-               [ $sync -ne 0 -a $direct -ne 0 ] && bsoflags="sync:direct"
+               [ "$sync" -ne 0 ] && bsoflags="sync"
+               [ "$direct" -ne 0 ] && bsoflags="direct"
+               [ "$sync" -ne 0 ] && [ "$direct" -ne 0 ] && bsoflags="sync:direct"
                bsoflags="--bsoflags $bsoflags"
        fi
 
        blocksize=${blocksize+--blocksize=$blocksize}
        local params='' i
-       for i in mode_page product_id product_rev readonly removable scsi_id scsi_sn sense_format vendor_id; do
+       for i in mode_page product_id product_rev readonly removable scsi_id scsi_sn sense_format vendor_id rotation_rate; do
                eval params=\${$i+$i=\$$i,}\$params
        done
 
        local _tgtadm="$tgtadm --mode logicalunit --tid $tgtid --lun $lun"
-       $_tgtadm --op new --backing-store $device --device-type $type --bstype $bstype $bsoflags $blocksize || {
+       $_tgtadm --op new --backing-store "$device" --device-type "$type" --bstype "$bstype" $bsoflags $blocksize || {
                $logger "Failed to create lun $tgt_lun"
                return 1
        }
@@ -117,7 +118,7 @@ bind_account_to_target() {
        local t
        for t in $target; do
                [ "$t" -eq "$tgtid" ] && {
-                       $_tgtadm --op bind --tid $tgtid --user "$user" $outgoing || {
+                       $_tgtadm --op bind --tid "$tgtid" --user "$user" $outgoing || {
                                $logger "Failed to bind user $username to target $tgtid"
                                return 1
                        }
@@ -137,24 +138,24 @@ handle_target() {
        local tgtid=$1
        local _tgtadm="$tgtadm --mode target"
 
-       [ $tgtid -ge 0 ] || return 1
+       [ "$tgtid" -ge 0 ] || return 1
        [ "$2" = 0 ] || {
                $logger "Validation failed for target $tgtid"
                return 1
        }
-       $_tgtadm --op new --tid $tgtid --targetname $name || {
+       $_tgtadm --op new --tid "$tgtid" --targetname "$name" || {
                $logger "Failed to create target $tgtid"
                return 1
        }
        local i
        for i in $allow_address; do
-               $_tgtadm --op bind --tid $tgtid --initiator-address $i || {
+               $_tgtadm --op bind --tid "$tgtid" --initiator-address "$i" || {
                        $logger "Failed to set allow $i to connect to target $tgtid"
                        return 1
                }
        done
        for i in $allow_name; do
-               $_tgtadm --op bind --tid $tgtid --initiator-name $i || {
+               $_tgtadm --op bind --tid "$tgtid" --initiator-name "$i" || {
                        $logger "Failed to set allow $i to connect to target $tgtid"
                        return 1
                }
@@ -193,7 +194,7 @@ start_tgt_instance() {
        }
        procd_open_instance
        procd_set_param command $PROG -f
-       [ "$iothreads" ] && procd_append_param command -t $iothreads
+       [ "$iothreads" ] && procd_append_param command -t "$iothreads"
        [ "$portal$nop_interval$nop_count" ] && {
                local iscsi="" i
                for i in nop_interval nop_count; do
@@ -202,11 +203,11 @@ start_tgt_instance() {
                for i in $portal; do
                        iscsi="portal=$i,$iscsi"
                done
-               procd_append_param command --iscsi $iscsi
+               procd_append_param command --iscsi "$iscsi"
        }
        procd_set_param respawn
        procd_close_instance
-       logger -p daemon.info -t $NAME -s "Configuration will be loaded in seconds"
+       logger -p daemon.info -t "$NAME" -s "Configuration will be loaded in seconds"
        ( sleep 5; configure || { stop_service; exit 1; } ) &
 }
 
diff --git a/net/tgt/patches/110-iscsi_tcp-Replace-deprecated-valloc-function.patch b/net/tgt/patches/110-iscsi_tcp-Replace-deprecated-valloc-function.patch
new file mode 100644 (file)
index 0000000..0c7c461
--- /dev/null
@@ -0,0 +1,31 @@
+From ced49c99ef0b120d32bcbb3bb6985ff90833052e Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Tue, 30 Apr 2019 22:34:45 -0700
+Subject: [PATCH 1/2] iscsi_tcp: Replace deprecated valloc function
+
+Replaced with posix_memalign as valloc is not available on uClibc.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ usr/iscsi/iscsi_tcp.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/usr/iscsi/iscsi_tcp.c b/usr/iscsi/iscsi_tcp.c
+index 536f22e..5762c23 100644
+--- a/usr/iscsi/iscsi_tcp.c
++++ b/usr/iscsi/iscsi_tcp.c
+@@ -578,7 +578,10 @@ static void iscsi_tcp_free_task(struct iscsi_task *task)
+ static void *iscsi_tcp_alloc_data_buf(struct iscsi_connection *conn, size_t sz)
+ {
+-      return valloc(sz);
++      void *addr = NULL;
++
++      posix_memalign(&addr, sysconf(_SC_PAGESIZE), sz);
++      return addr;
+ }
+ static void iscsi_tcp_free_data_buf(struct iscsi_connection *conn, void *buf)
+-- 
+2.21.0
+
diff --git a/net/tgt/patches/111-iscsi_tcp-fix-compile-warning.patch b/net/tgt/patches/111-iscsi_tcp-fix-compile-warning.patch
new file mode 100644 (file)
index 0000000..8555cc2
--- /dev/null
@@ -0,0 +1,36 @@
+From 23f3bb1ab8311601db03757a6d4538e747364454 Mon Sep 17 00:00:00 2001
+From: FUJITA Tomonori <fujita.tomonori@gmail.com>
+Date: Fri, 3 May 2019 19:30:07 +0900
+Subject: [PATCH 2/2] iscsi_tcp: fix compile warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+iscsi/iscsi_tcp.c: In function ‘iscsi_tcp_alloc_data_buf’:
+iscsi/iscsi_tcp.c:583:2: error: ignoring return value of ‘posix_memalign’, declared with attribute warn_unused_result [-Werror=unused-result]
+  posix_memalign(&addr, sysconf(_SC_PAGESIZE), sz);
+    ^
+
+Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
+---
+ usr/iscsi/iscsi_tcp.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/usr/iscsi/iscsi_tcp.c b/usr/iscsi/iscsi_tcp.c
+index 5762c23..0a076b0 100644
+--- a/usr/iscsi/iscsi_tcp.c
++++ b/usr/iscsi/iscsi_tcp.c
+@@ -579,8 +579,8 @@ static void iscsi_tcp_free_task(struct iscsi_task *task)
+ static void *iscsi_tcp_alloc_data_buf(struct iscsi_connection *conn, size_t sz)
+ {
+       void *addr = NULL;
+-
+-      posix_memalign(&addr, sysconf(_SC_PAGESIZE), sz);
++      if (posix_memalign(&addr, sysconf(_SC_PAGESIZE), sz) != 0)
++              return addr;
+       return addr;
+ }
+-- 
+2.21.0
+
index ae4cb962cdd58cf4a4275082beb0d18464e9f04a..752dd66111d76b6c2d60785d8b3f5473c9e8e095 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tor
-PKG_VERSION:=0.3.5.8
-PKG_RELEASE:=3
+PKG_VERSION:=0.4.0.5
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dist.torproject.org/ \
        https://archive.torproject.org/tor-package-archive
-PKG_HASH:=d5c56603942a8927670f50a4a469fb909e29d3571fdd013389d567e57abc0b47
+PKG_HASH:=b5a2cbf0dcd3f1df2675dbd5ec10bbe6f8ae995c41b68cebe2bc95bffc90696e
 PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de> \
                Peter Wagner <tripolar@gmx.at>
 PKG_LICENSE_FILES:=LICENSE
index bd6e557cfd19c825e8e207160f870f783d4a73a7..bbe073e698ad20d8d49544ae8767e617007493f9 100644 (file)
@@ -86,7 +86,6 @@ define Package/transmission-web
   $(call Package/transmission/template)
   TITLE+= (webinterface)
   DEPENDS:=@(PACKAGE_transmission-daemon-openssl||PACKAGE_transmission-daemon-mbedtls)
-  CONFLICTS:=transmission-web-control
   PKGARCH:=all
 endef
 
index 4d88af1a888d9486afd01e25ac78cf18a5135073..232225e45adb4a494969463252e9ad5b37339a47 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=collectd
 PKG_VERSION:=5.8.1
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://collectd.org/files/ \
@@ -200,6 +200,7 @@ $(call Package/collectd/Default)
          +zlib \
          +libltdl \
          +libip4tc \
+         +jshn \
          +PACKAGE_collectd-mod-lua:liblua
   MENU:=1
 endef
@@ -298,18 +299,21 @@ endif
 
 define Package/collectd/conffiles
 /etc/collectd.conf
+/etc/config/collectd
 endef
 
 define Package/collectd/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/collectd $(1)/usr/sbin/
+
        $(INSTALL_DIR) $(1)/usr/share/collectd
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/collectd/types.db $(1)/usr/share/collectd/
-       $(INSTALL_DIR) $(1)/etc
-       $(INSTALL_CONF) ./files/collectd.conf $(1)/etc/
+
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/collectd.init $(1)/etc/init.d/collectd
-       $(INSTALL_DIR) $(1)/etc/collectd/conf.d
+
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) files/collectd.uci $(1)/etc/config/collectd
 endef
 
 # 1: plugin name
@@ -333,6 +337,11 @@ define BuildPlugin
                        $(PKG_INSTALL_DIR)/usr/lib/collectd/$$$$$$$${m}.so \
                        $$(1)/usr/lib/collectd/ ; \
        done
+       if [ -f ./files/usr/share/collectd/plugin/$(1).json ]; then \
+               $(INSTALL_DIR) $$(1)/usr/share/collectd/plugin ; \
+               $(INSTALL_DATA) ./files/usr/share/collectd/plugin/$(1).json \
+                       $$(1)/usr/share/collectd/plugin/$(1).json ; \
+       fi
   endef
 
   $$(eval $$(call BuildPackage,collectd-mod-$(1)))
diff --git a/utils/collectd/files/collectd.conf b/utils/collectd/files/collectd.conf
deleted file mode 100644 (file)
index 3afbfad..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# Config file for collectd. More info: https://collectd.org/
-# Note: Luci statistics will generate a new config and overwrite this file.
-
-#Hostname   "localhost"
-#FQDNLookup  true
-BaseDir "/var/run/collectd"
-Include "/etc/collectd/conf.d"
-PIDFile "/var/run/collectd.pid"
-PluginDir "/usr/lib/collectd"
-TypesDB "/usr/share/collectd/types.db"
-Interval    30
-ReadThreads 2
-
-LoadPlugin interface
-LoadPlugin load
-#LoadPlugin ping
-LoadPlugin rrdtool
-
-<Plugin rrdtool>
-       DataDir "/tmp/rrd"
-       RRARows 100
-       RRASingle true
-       RRATimespan 3600
-       RRATimespan 86400
-       RRATimespan 604800
-       RRATimespan 2678400
-       RRATimespan 31622400
-</Plugin>
-
-<Plugin interface>
-       IgnoreSelected false
-       Interface "br-lan"
-</Plugin>
-
-#<Plugin ping>
-#      Host "host.foo.bar"
-#      Interval 30
-#      TTL 127
-#</Plugin>
index 668858b90266c24f97c4109ce7aab908eb782632..a0029267a7aafc6acd70213e114cdce2e06c7a1a 100644 (file)
 #!/bin/sh /etc/rc.common
 # Copyright (C) 2006-2016 OpenWrt.org
 
+. "/usr/share/libubox/jshn.sh"
+
 START=80
 STOP=10
 
 USE_PROCD=1
+COLLECTD_CONF="/tmp/collectd.conf"
+LOG="logger -t collectd[$$] -p"
 NICEPRIO=5
 
+CONFIG_STRING=""
+
+process_exec() {
+       printf "<Plugin exec>\n" >> "$COLLECTD_CONF"
+       config_foreach process_exec_sections exec_input "Exec"
+       config_foreach process_exec_sections exec_notify "NotificationExec"
+       printf "</Plugin>\n\n" >> "$COLLECTD_CONF"
+}
+
+process_exec_sections() {
+       local cfg="$1"
+       local section="$2"
+
+       local cmdline cmduser cmdgroup
+
+       config_get cmdline "$cfg" cmdline
+       [ -z "$cmdline" ] && {
+               $LOG notice "No cmdline option in config $cfg defined"
+               return 0
+       }
+
+       config_get cmduser "$cfg" cmduser
+       [ -z "$cmduser" ] && {
+               $LOG notice "No cmduser option in config $cfg defined"
+               return 0
+       }
+
+       config_get cmdgroup "$cfg" cmdgroup
+       if [ -z "$cmdgroup" ]; then
+               printf "\\t%s \"%s\" \"%s\"\n" "${section}" "${cmduser}" "${cmdline}" >> "$COLLECTD_CONF"
+       else
+               printf "\\t%s \"%s:%s\" \"%s\"\n" "${section}" "${cmduser}" "${cmdgroup}" "${cmdline}" >> "$COLLECTD_CONF"
+       fi
+}
+
+CONFIG_LIST=""
+add_list_option() {
+       local value="$1"
+       local option="$2"
+       local indent="$3"
+
+       CONFIG_LIST="${CONFIG_LIST}${indent}${option} \"$value\"\n"
+}
+
+process_generic() {
+       local cfg="$1"
+       local indent="$2"
+       local json="$3"
+
+       local config=""
+
+       json_init
+       json_load_file "$json"
+
+       json_select string 1>/dev/null 2>&1
+       if [ $? -eq 0 ]; then
+               json_get_keys keys
+               for key in ${keys}; do
+                       json_get_var option "$key"
+                       config_get value "$cfg" "$option" ""
+                       [ -z "$value" ] || {
+                               config="${config}${indent}${option} \"${value}\"\n"
+                       }
+               done
+               json_select ..
+       fi
+
+       json_select bool 1>/dev/null 2>&1
+       if [ $? -eq 0 ]; then
+               json_get_keys keys
+               for key in ${keys}; do
+                       json_get_var option "$key"
+                       config_get_bool value "$cfg" "$option"
+                       if [ "$value" = "0" ]; then
+                               config="${config}${indent}${option} false\n"
+                       fi
+
+                       if [ "$value" = "1" ]; then
+                               config="${config}${indent}${option} true\n"
+                       fi
+               done
+               json_select ..
+       fi
+
+       json_select list 1>/dev/null 2>&1
+       if [ $? -eq 0 ]; then
+               json_get_keys keys
+               for key in ${keys}; do
+                       json_get_var option "$key"
+                       CONFIG_LIST=""
+                       config_list_foreach "$cfg" "$option" add_list_option "$option" "$indent"
+                       config="${config}${CONFIG_LIST}"
+               done
+               json_select ..
+       fi
+
+       [ -z "$config" ] || {
+               printf "%s<Plugin %s>\n" "${CONFIG_STRING}" "$cfg" >> "$COLLECTD_CONF"
+               echo -e "${config}" >> "$COLLECTD_CONF"
+               printf "%s</Plugin>\n" "${CONFIG_STRING}" >> "$COLLECTD_CONF"
+       }
+
+       printf "\n" >> "$COLLECTD_CONF"
+}
+
+process_plugins() {
+       local cfg="$1"
+
+       local enable keys key option value
+
+       config_get enable "$cfg" enable 0
+       [ "$enable" = "1" ] || return 0
+
+       [ -f "/usr/lib/collectd/$cfg.so" ] || {
+               $LOG notice "Plugin collectd-mod-$cfg not installed"
+               return 0
+       }
+
+       [ -f "/usr/share/collectd/plugin/$cfg.json" ] || {
+               $LOG notice "Configuration definition file for $cfg not found"
+               return 0
+       }
+
+       printf "LoadPlugin %s\n" "$cfg" >> "$COLLECTD_CONF"
+       case "$cfg" in
+               exec)
+                       CONFIG_STRING=""
+                       process_exec
+                       ;;
+               *)
+                       CONFIG_STRING=""
+                       process_generic "$cfg" "\\t" "/usr/share/collectd/plugin/$cfg.json"
+               ;;
+       esac
+}
+
+process_config() {
+       local alt_config_file BaseDir Include PIDFile PluginDir TypesDB
+       local Interval ReadThreads Hostname
+
+       rm -f "$COLLECTD_CONF"
+
+       [ -f /etc/config/collectd ] || {
+               $LOG notice "UCI config not found"
+               return 0
+       }
+       config_load collectd
+       config_get alt_config_file globals alt_config_file
+
+       # If "alt_config_file" specified, use that instead
+       [ -n "$alt_config_file" ] && [ -f "$alt_config_file" ] && {
+               rm -f "$COLLECTD_CONF"
+               ln -s "$alt_config_file" "$COLLECTD_CONF"
+               return 0
+       }
+
+       # GOBAL CONFIG
+       config_get BaseDir globals BaseDir "/var/run/collectd"
+       printf "BaseDir \"%s\"\n" "$BaseDir" >> "$COLLECTD_CONF"
+
+       config_get Include globals Include "/tmp/collectd.d"
+       printf "Include \"%s\"\n" "$Include" >> "$COLLECTD_CONF"
+       mkdir -p "$Include"
+
+       config_get PIDFile globals PIDFile "/var/run/collectd.pid"
+       printf "PIDFile \"%s\"\n" "$PIDFile" >> "$COLLECTD_CONF"
+
+       config_get PluginDir globals PluginDir "/usr/lib/collectd"
+       printf "PluginDir \"%s\"\n" "$PluginDir" >> "$COLLECTD_CONF"
+
+       config_get TypesDB globals TypesDB "/usr/share/collectd/types.db"
+       printf "TypesDB \"%s\"\n" "$TypesDB" >> "$COLLECTD_CONF"
+
+       config_get Interval globals Interval 30
+       printf "Interval \"%s\"\n" "$Interval" >> "$COLLECTD_CONF"
+
+       config_get ReadThreads globals ReadThreads 2
+       printf "ReadThreads \"%s\"\n" "$ReadThreads" >> "$COLLECTD_CONF"
+
+       config_get Hostname globals Hostname "$(hostname)"
+       printf "Hostname \"%s\"\n" "$Hostname" >> "$COLLECTD_CONF"
+
+       printf "\n" >> "$COLLECTD_CONF"
+
+       # PLUGIN CONFIG
+       config_foreach process_plugins plugin
+}
+
 start_service() {
-       mkdir -m 0755 -p /var/lib/collectd
        procd_open_instance
-       procd_set_param command /usr/sbin/collectd -f
+       procd_set_param command /usr/sbin/collectd
+       procd_append_param command -C "$COLLECTD_CONF"
+       procd_append_param command -f # don't daemonize, procd will handle that for us
        procd_set_param nice "$NICEPRIO"
+
+       process_config
+
+       # set auto respawn behavior
+       procd_set_param respawn
        procd_close_instance
 }
 
diff --git a/utils/collectd/files/collectd.uci b/utils/collectd/files/collectd.uci
new file mode 100644 (file)
index 0000000..73e2c2a
--- /dev/null
@@ -0,0 +1,160 @@
+config globals 'globals'
+       option alt_config_file "/etc/collectd.conf"
+#      option BaseDir '/var/run/collectd'
+#      option Include '/tmp/collectd.d'
+#      option PIDFile '/var/run/collectd.pid'
+#      option PluginDir '/usr/lib/collectd'
+#      option TypesDB '/usr/share/collectd/types.db'
+#      option Interval '30'
+#      option ReadThreads '2'
+
+#config plugin 'conntrack'
+#      option enable '0'
+
+#config plugin 'contextswitch'
+#      option enable '0'
+
+#config plugin 'cpu'
+#      option enable '0'
+
+#config plugin 'cpufreq'
+#      option enable '0'
+
+#config plugin 'csv'
+#      option enable '0'
+#      option StoreRates '0'
+#      option DataDir '/tmp'
+
+#config plugin 'df'
+#      option enable '0'
+#      list Device '/dev/mtdblock/4'
+#      list MountPoint '/jffs'
+#      list FSType 'tmpfs'
+#      option IgnoreSelected '0'
+
+#config plugin 'disk'
+#      option enable '0'
+#      list Disk 'hda1'
+#      list Disk 'hdb'
+#      option IgnoreSelected '0'
+
+#config plugin 'dns'
+#      option enable '0'
+#      list Interface 'br-lan'
+#      list IgnoreSource '127.0.0.1'
+
+#config plugin 'email'
+#      option enable '0'
+#      option SocketFile '/var/run/collectd/email.sock'
+#      option SocketGroup 'nogroup'
+
+#config plugin 'entropy'
+#      option enable '0'
+
+#config plugin 'exec'
+#      option enable '0'
+
+#config exec_input
+#      option cmdline '/usr/bin/stat-dhcpusers'
+#      option cmduser 'nobody'
+#      option cmdgroup 'nogroup'
+
+#config exec_notify
+#      option cmdline '/usr/bin/stat-dhcpusers'
+#      option cmduser 'nobody'
+#      option cmdgroup 'nogroup'
+
+#config plugin 'interface'
+#      option enable '1'
+#      list Interface 'br-lan'
+#      option IgnoreSelected '0'
+
+#config plugin 'irq'
+#      option enable '0'
+#      list Irq '2'
+#      list Irq '3'
+#      list Irq '4'
+#      list Irq '7'
+
+#config plugin 'iwinfo'
+#      option enable '0'
+
+#config plugin 'load'
+#      option enable '0'
+
+#config plugin 'lua'
+#      option BasePath '/usr/share/collectd-mod-lua'
+#      list Script 'script1.lua'
+#      list Script 'script2.lua
+
+#config plugin 'memory'
+#      option enable '0'
+
+#config plugin 'netlink'
+#      option enable '0'
+#      option IgnoreSelected '0'
+#      list VerboseInterface 'br-lan'
+#      list QDisc 'br-lan'
+
+#config plugin 'nut'
+#      option enable '0'
+#      option UPS 'myupsname'
+
+#config plugin 'olsrd'
+#      option enable '0'
+#      option Port '2006'
+#      option Host '127.0.0.1'
+
+#config plugin 'openvpn'
+#      option enable '0'
+#      option StatusFile '/var/run/openvpn/openvpn.status'
+#      option CollectIndividualUsers '1'
+#      optoin CollectUserCount '1'
+#      optoin CollectCompression '1'
+#      option ImprovedNamingSchema '0'
+
+#config plugin 'ping'
+#      option enable '0'
+#      option TTL '127'
+#      option Interval '30'
+#      list Host '127.0.0.1'
+
+#config plugin 'processes'
+#      option enable '0'
+#      list Process 'uhttpd'
+#      list Process 'dnsmasq'
+#      list Process 'dropbear'
+
+#config plugin 'rrdtool'
+#      option enable '0'
+#      option DataDir '/tmp/rrd'
+#      option RRARows '100'
+#      option RRASingle '1'
+#      list RRATimespan '3600'
+#      list RRATimespan '86400'
+#      list RRATimespan '604800'
+#      list RRATimespan '2678400'
+#      list RRATimespan '31622400'
+
+#config plugin 'sensors'
+#      option enable '0'
+
+#config plugin 'tcpconns'
+#      option enable '0'
+#      list ListeningPort '0'
+#      list LocalPort '22'
+#      list LocalPort '80'
+
+#config plugin 'thermal'
+#      option enable '0'
+#      option IgnoreSelected '0'
+#      list Device ''
+
+#config plugin 'unixsock'
+#      option enable '0'
+#      option SocketFile '/var/run/collectd/query.sock'
+#      option SocketGroup 'nogroup'
+
+#config plugin 'uptime'
+#      option enable '0'
+
diff --git a/utils/collectd/files/usr/share/collectd/plugin/conntrack.json b/utils/collectd/files/usr/share/collectd/plugin/conntrack.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/contextswitch.json b/utils/collectd/files/usr/share/collectd/plugin/contextswitch.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/cpu.json b/utils/collectd/files/usr/share/collectd/plugin/cpu.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/cpufreq.json b/utils/collectd/files/usr/share/collectd/plugin/cpufreq.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/csv.json b/utils/collectd/files/usr/share/collectd/plugin/csv.json
new file mode 100644 (file)
index 0000000..3e89972
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "string": [
+               "DataDir"
+       ],
+       "bool": [
+               "StoreRates"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/df.json b/utils/collectd/files/usr/share/collectd/plugin/df.json
new file mode 100644 (file)
index 0000000..dde65fd
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Device",
+               "MountPoint",
+               "FSType"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/disk.json b/utils/collectd/files/usr/share/collectd/plugin/disk.json
new file mode 100644 (file)
index 0000000..e7b9214
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Disk"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/dns.json b/utils/collectd/files/usr/share/collectd/plugin/dns.json
new file mode 100644 (file)
index 0000000..c9dacf1
--- /dev/null
@@ -0,0 +1,6 @@
+{
+       "list": [
+               "Interface",
+               "IgnoreSource"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/email.json b/utils/collectd/files/usr/share/collectd/plugin/email.json
new file mode 100644 (file)
index 0000000..eb6b3ef
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "string": [
+               "SocketFile",
+               "SocketGroup",
+               "SocketPerms",
+               "MaxConns"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/entropy.json b/utils/collectd/files/usr/share/collectd/plugin/entropy.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/exec.json b/utils/collectd/files/usr/share/collectd/plugin/exec.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/interface.json b/utils/collectd/files/usr/share/collectd/plugin/interface.json
new file mode 100644 (file)
index 0000000..aef2522
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Interface"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/irq.json b/utils/collectd/files/usr/share/collectd/plugin/irq.json
new file mode 100644 (file)
index 0000000..0f7e59c
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Irq"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/iwinfo.json b/utils/collectd/files/usr/share/collectd/plugin/iwinfo.json
new file mode 100644 (file)
index 0000000..aef2522
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Interface"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/load.json b/utils/collectd/files/usr/share/collectd/plugin/load.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/lua.json b/utils/collectd/files/usr/share/collectd/plugin/lua.json
new file mode 100644 (file)
index 0000000..2bc7b68
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "string": [
+               "BasePath"
+       ],
+       "list": [
+               "Script"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/memory.json b/utils/collectd/files/usr/share/collectd/plugin/memory.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/netlink.json b/utils/collectd/files/usr/share/collectd/plugin/netlink.json
new file mode 100644 (file)
index 0000000..7ef7b77
--- /dev/null
@@ -0,0 +1,12 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Interface",
+               "VerboseInterface",
+               "QDisc",
+               "Classe",
+               "Filter"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/nut.json b/utils/collectd/files/usr/share/collectd/plugin/nut.json
new file mode 100644 (file)
index 0000000..4cac99f
--- /dev/null
@@ -0,0 +1,5 @@
+{
+       "string": [
+               "UPS"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/olsrd.json b/utils/collectd/files/usr/share/collectd/plugin/olsrd.json
new file mode 100644 (file)
index 0000000..04c0438
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "string": [
+               "Host",
+               "Port",
+               "CollectLinks",
+               "CollectRoutes",
+               "CollectTopology"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/openvpn.json b/utils/collectd/files/usr/share/collectd/plugin/openvpn.json
new file mode 100644 (file)
index 0000000..87a3f16
--- /dev/null
@@ -0,0 +1,11 @@
+{
+       "string": [
+               "StatusFile"
+       ],
+       "bool": [
+               "CollectIndividualUsers",
+               "CollectUserCount",
+               "CollectCompression",
+               "ImprovedNamingSchema"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/ping.json b/utils/collectd/files/usr/share/collectd/plugin/ping.json
new file mode 100644 (file)
index 0000000..53bc88c
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "string": [
+               "TTL",
+               "Interval"
+       ],
+       "list": [
+               "Host"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/processes.json b/utils/collectd/files/usr/share/collectd/plugin/processes.json
new file mode 100644 (file)
index 0000000..6e38fa9
--- /dev/null
@@ -0,0 +1,5 @@
+{
+       "list": [
+               "Process"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/rrdtool.json b/utils/collectd/files/usr/share/collectd/plugin/rrdtool.json
new file mode 100644 (file)
index 0000000..339f6ac
--- /dev/null
@@ -0,0 +1,17 @@
+{
+       "string": [
+               "DataDir",
+               "StepSize",
+               "HeartBeat",
+               "RRARows",
+               "XFF",
+               "CacheFlush",
+               "CacheTimeout"
+       ],
+       "bool": [
+               "RRASingle"
+       ],
+       "list": [
+               "RRATimespan"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/sensors.json b/utils/collectd/files/usr/share/collectd/plugin/sensors.json
new file mode 100644 (file)
index 0000000..35915ba
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Sensor"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/tcpconns.json b/utils/collectd/files/usr/share/collectd/plugin/tcpconns.json
new file mode 100644 (file)
index 0000000..56a4c81
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "bool": [
+               "ListeningPorts"
+       ],
+       "list": [
+               "LocalPort",
+               "RemotePort"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/thermal.json b/utils/collectd/files/usr/share/collectd/plugin/thermal.json
new file mode 100644 (file)
index 0000000..cf93fc2
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Device"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/unixsock.json b/utils/collectd/files/usr/share/collectd/plugin/unixsock.json
new file mode 100644 (file)
index 0000000..6362a9d
--- /dev/null
@@ -0,0 +1,7 @@
+{
+       "string": [
+               "SocketFile",
+               "SocketGroup",
+               "SocketPerms"
+       ]
+}
diff --git a/utils/collectd/files/usr/share/collectd/plugin/uptime.json b/utils/collectd/files/usr/share/collectd/plugin/uptime.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}
index 55dca989c4b9b2f41a25931f3bff1b47ab35988f..707d684267ebb3a387e814567f6fe4546d8a0929 100644 (file)
@@ -8,18 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=flent-tools
-PKG_VERSION:=1.0.1
-PKG_LICENSE:=GPLv3
+PKG_VERSION:=1.2.2
+PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_REV).tar.gz
-PKG_MIRROR_HASH:=0c4a99179a76e8479bdc7d91c312de7fc9e6d4d54132d1b2aba836138c86440c
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/tohojo/flent
-PKG_REV:=03c72cc340def354024351b6500774b11170d5ba
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/tohojo/flent/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=554bb1b5329cd39113cbb34445765ca6868dbf033aa64832d957d4a09d56adc7
+PKG_BUILD_DIR:=$(BUILD_DIR)/flent-$(PKG_VERSION)
+
+PKG_LICENSE:=GPL-3.0-only
+PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
 define Package/flent-tools
   SECTION:=utils
index d684c7e3e7b26b50dd2dabf67e6204f9f02114b4..fc13e36a9779894d39d021ad0a42a3735f184f15 100644 (file)
@@ -5,13 +5,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gawk
-PKG_VERSION:=4.2.1
+PKG_VERSION:=5.0.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/gawk
 
-PKG_HASH:=d1119785e746d46a8209d28b2de404a57f983aa48670f4e225531d3bdc175551
+PKG_HASH:=50f091ed0eb485ad87dbb620d773a3e2c31a27f75f5e008f7bf065055f024406
 
 PKG_LICENSE:=GPL
 PKG_LICENSE_FILES:=COPYING
diff --git a/utils/hashdeep/Makefile b/utils/hashdeep/Makefile
new file mode 100644 (file)
index 0000000..f697e08
--- /dev/null
@@ -0,0 +1,45 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=hashdeep
+PKG_VERSION:=4.4
+PKG_RELEASE:=1
+PKG_MAINTAINER=Tobe Deprez <trldp@outlook.com>
+PKG_LICENSE:=NLPL
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/jessek/hashdeep/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=ad78d42142f9a74fe8ec0c61bc78d6588a528cbb9aede9440f50b6ff477f3a7f
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/uclibc++.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/hashdeep
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Recursively compute hashsums or piecewise hashings
+  URL:=http://md5deep.sourceforge.net/
+  DEPENDS:=$(CXX_DEPENDS)
+endef
+
+define Package/hashdeep/description
+       hashdeep is a set of tools to compute MD5, SHA1, SHA256, tiger
+       and whirlpool hashsums of arbitrary number of files recursively.
+endef
+
+define Package/hashdeep/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/hashdeep \
+                   $(PKG_INSTALL_DIR)/usr/bin/md5deep \
+                   $(PKG_INSTALL_DIR)/usr/bin/sha1deep \
+                   $(PKG_INSTALL_DIR)/usr/bin/sha256deep \
+                   $(PKG_INSTALL_DIR)/usr/bin/tigerdeep \
+                   $(PKG_INSTALL_DIR)/usr/bin/whirlpooldeep \
+                   $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,hashdeep))
+
index 9300fbc0a79a5ebf3ea7b07553422d73b097c515..e5184280e9fa1b512a8f686de32e656a982a78e0 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hfsprogs
 PKG_VERSION:=332.25
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
diff --git a/utils/hfsprogs/patches/010-valloc-to-memalign.patch b/utils/hfsprogs/patches/010-valloc-to-memalign.patch
new file mode 100644 (file)
index 0000000..c391e1d
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/newfs_hfs.tproj/makehfs.c
++++ b/newfs_hfs.tproj/makehfs.c
+@@ -376,7 +376,7 @@ make_hfsplus(const DriveInfo *driveInfo, hfsparams_t *defaults)
+       if ( (temp & 0x01FF) != 0 )
+               temp = (temp + kBytesPerSector) & 0xFFFFFE00;
+       
+-      nodeBuffer = valloc((size_t)temp);
++      (void)posix_memalign(&nodeBuffer, sysconf(_SC_PAGESIZE), (size_t)temp);
+       if (nodeBuffer == NULL)
+               err(1, NULL);
+@@ -1814,7 +1814,7 @@ ClearDisk(const DriveInfo *driveInfo, UInt64 startingSector, UInt32 numberOfSect
+       bufferSize = bufferSizeInSectors << kLog2SectorSize;
+-      tempBuffer = valloc((size_t)bufferSize);
++      (void)posix_memalign(&tempBuffer, sysconf(_SC_PAGESIZE), (size_t)bufferSize);
+       if (tempBuffer == NULL)
+               err(1, NULL);
index 3340a3c2f1b109a761f4fbc995cb38cf0d77d9bd..b655d3e594590944d6f3069a798279b681705d41 100644 (file)
@@ -38,6 +38,7 @@ config LXC_BUSYBOX_OPTIONS
 config LXC_SECCOMP
        bool "Enable support for seccomp in LXC"
        default KERNEL_SECCOMP
+       depends on !arc
        help
          Build LXC with support for seccomp filters.
          Select libseccomp which also pulls-in the needed kernel features.
index 01b0597dec0faf212502488582f77c1a12c02ee7..8641775dd1d7d4d0415bc9d083c0a46ecf4d70b5 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lxc
 PKG_VERSION:=2.1.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_LICENSE:=LGPL-2.1+ BSD-2-Clause GPL-2.0
 PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
diff --git a/utils/lxc/patches/030-prlimit.patch b/utils/lxc/patches/030-prlimit.patch
new file mode 100644 (file)
index 0000000..88f17aa
--- /dev/null
@@ -0,0 +1,95 @@
+From f48b5fd8ab03c200eaf5e3a9b03bcd01b2659cf3 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Thu, 2 Nov 2017 16:00:33 +0100
+Subject: [PATCH] Fix compilation on toolchain without prlimit
+
+Some toolchains which are not bionic like uclibc does not support
+prlimit or prlimit64. In this case, return an error.
+Moreover, if prlimit64 is available, use lxc implementation of prlimit.
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ configure.ac        |  4 ++++
+ src/lxc/Makefile.am |  6 ++++++
+ src/lxc/conf.c      | 12 +++++++++---
+ 3 files changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 642b78e7e1..63df7466cb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -643,6 +643,10 @@ AC_CHECK_FUNCS([prlimit],
+       AM_CONDITIONAL(HAVE_PRLIMIT, true)
+       AC_DEFINE(HAVE_PRLIMIT,1,[Have prlimit]),
+       AM_CONDITIONAL(HAVE_PRLIMIT, false))
++AC_CHECK_FUNCS([prlimit64],
++      AM_CONDITIONAL(HAVE_PRLIMIT64, true)
++      AC_DEFINE(HAVE_PRLIMIT64,1,[Have prlimit64]),
++      AM_CONDITIONAL(HAVE_PRLIMIT64, false))
+ # Check for some libraries
+ AC_SEARCH_LIBS(sem_open, [rt pthread])
+diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
+index fff32ae4f3..8f0c11ecae 100644
+--- a/src/lxc/Makefile.am
++++ b/src/lxc/Makefile.am
+@@ -45,7 +45,10 @@ noinst_HEADERS += \
+       ../include/ifaddrs.h \
+       ../include/openpty.h \
+       ../include/lxcmntent.h
++endif
++
+ if !HAVE_PRLIMIT
++if HAVE_PRLIMIT64
+ noinst_HEADERS += ../include/prlimit.h
+ endif
+ endif
+@@ -142,7 +145,10 @@ liblxc_la_SOURCES += \
+       ../include/ifaddrs.c ../include/ifaddrs.h \
+       ../include/openpty.c ../include/openpty.h \
+       ../include/lxcmntent.c ../include/lxcmntent.h
++endif
++
+ if !HAVE_PRLIMIT
++if HAVE_PRLIMIT64
+ liblxc_la_SOURCES += ../include/prlimit.c ../include/prlimit.h
+ endif
+ endif
+diff --git a/src/lxc/conf.c b/src/lxc/conf.c
+index 44d9784303..8a66f2d02c 100644
+--- a/src/lxc/conf.c
++++ b/src/lxc/conf.c
+@@ -100,13 +100,14 @@
+ #if IS_BIONIC
+ #include <../include/lxcmntent.h>
+-#ifndef HAVE_PRLIMIT
+-#include <../include/prlimit.h>
+-#endif
+ #else
+ #include <mntent.h>
+ #endif
++#if !defined(HAVE_PRLIMIT) && defined(HAVE_PRLIMIT64)
++#include <../include/prlimit.h>
++#endif
++
+ lxc_log_define(lxc_conf, lxc);
+ #if HAVE_LIBCAP
+@@ -2457,10 +2458,15 @@ int setup_resource_limits(struct lxc_list *limits, pid_t pid) {
+                       return -1;
+               }
++#if HAVE_PRLIMIT || HAVE_PRLIMIT64
+               if (prlimit(pid, resid, &lim->limit, NULL) != 0) {
+                       ERROR("failed to set limit %s: %s", lim->resource, strerror(errno));
+                       return -1;
+               }
++#else
++              ERROR("Cannot set limit %s as prlimit is missing", lim->resource);
++              return -1;
++#endif
+       }
+       return 0;
+ }
index cd153d0b11181514a5172fb6532512a89801e430..fead55294452438ddff6517492b05d96aadc9e78 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mariadb
-PKG_VERSION:=10.2.22
+PKG_VERSION:=10.2.24
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -18,11 +18,13 @@ PKG_SOURCE_URL := \
        https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
        https://downloads.mariadb.org/interstitial/$(PKG_NAME)-$(PKG_VERSION)/source
 
-PKG_HASH:=42f4c54c29b7c196bd105bbf4d2ea721f869b14cb7ba436c3566e6dd2760614c
+PKG_HASH:=97f4d924e69f77abb2f650116785c2f5ef356230442534ebcbaadb51d9bb8bc4
 PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
 PKG_LICENSE:=GPL-2.0 LGPL-2.1
 PKG_LICENSE_FILES:=COPYING libmariadb/COPYING.LIB
 
+PKG_CPE_ID:=cpe:/a:mariadb:mariadb
+
 HOST_BUILD_PARALLEL:=1
 PKG_BUILD_PARALLEL:=1
 PKG_USE_MIPS16:=0
@@ -200,10 +202,7 @@ define Package/mariadb/install/plugin
 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
-database query language in the world. The main goals of MariaDB are
-speed, robustness and ease of use.
+MariaDB is a very fast and robust SQL database server.
 endef
 
 define Package/libmariadb/Default
index e55cfce706efa3dac748dc4b106450868429dce9..66afb35bcd4fdc864488773e78723d231c668b61 100644 (file)
@@ -10,7 +10,7 @@ USE_PROCD=1
 
 NAME=mysqld
 
-LOGGER="/usr/bin/logger -p user.err -s -t $NAME"
+LOGGER="/usr/bin/logger -p user.err -s -t $NAME --"
 COMMAND=/usr/bin/$NAME
 
 mysqld_get_param() {
@@ -24,7 +24,10 @@ mysqld_get_param() {
 start_service() {
        local conf=/etc/mysql/my.cnf
        local dir
-       local user=mariadb
+       local user
+       local group
+
+       local logfile
 
        local datadir
        local logdir=/var/log/mysql
@@ -36,6 +39,8 @@ start_service() {
        local log_stdout
        local options
 
+       local hint="please fix your server configuration in /etc/mysql/"
+
        if [ ! -x $COMMAND ]; then
                $LOGGER $COMMAND is missing
                exit 1
@@ -60,30 +65,80 @@ start_service() {
        config_get options general options
 
        datadir=$(mysqld_get_param datadir)
+       logfile=$(mysqld_get_param general_log_file)
        tmpdir=$(mysqld_get_param tmpdir)
+       user=$(mysqld_get_param user)
 
        if [ -z "$datadir" ]; then
                $LOGGER datadir is not set
+               $LOGGER $hint
                exit 1
        fi
 
        if [ -z "$tmpdir" ]; then
-               $LOGGER tmpdir is not set.
+               $LOGGER tmpdir is not set
+               $LOGGER $hint
                exit 1
        fi
 
-       [ -e "$datadir" ] || mkdir -p "$datadir"
+       if [ -z "$user" ]; then
+               $LOGGER user is not set
+               $LOGGER $hint
+               exit 1
+       fi
 
-       for dir in "$logdir" "$rundir" "$tmpdir"; do
-               if [ ! -e "$dir" ]; then
-                       mkdir -p "$dir"
-                       chown $user "$dir"
-               fi
-       done
+       user_exists "$user" || {
+               $LOGGER user \""$user"\" does not exist
+               $LOGGER $hint
+               exit 1
+       }
+
+       group=$(id -g -n "$user")
+
+       group_exists "$group" || {
+               $LOGGER group \""$group"\" does not exist
+               $LOGGER user \""$user"\" not configured correctly
+               exit 1
+       }
+
+       [ -n "$logfile" ] && logdir=$(dirname "$logfile")
+
+       # do not touch directories that already exist
+       # posix shell does not support arrays, hence using awk
+       awk \
+         -v user="$user" \
+         -v group="$group" \
+         -v a="$datadir" \
+         -v b="$logdir" \
+         -v c="$rundir" \
+         -v d="$tmpdir" \
+         '
+           BEGIN {
+             dir[0]=a
+             dir[1]=b
+             dir[2]=c
+             dir[3]=d
+             for (x in dir) {
+               if (system("test ! -e \"" dir[x] "\"" )) {
+                 delete dir[x]
+               }
+             }
+             for (x in dir) {
+               system("mkdir -p \"" dir[x] "\"" )
+               system("chmod 750 \"" dir[x] "\"" )
+               system("chown \"" user "\":\"" group "\" \"" dir[x] "\"" )
+             }
+           }
+         '
 
        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"
+               local args="--force"
+               local basedir=$(mysqld_get_param basedir)
+               [ -n "$basedir" ] && args="$args --basedir=$basedir"
+
+               $LOGGER Cannot detect privileges table. You might need to run
+               $LOGGER \'mysql_install_db $args\'
+               $LOGGER to initialize the system tables.
                exit 1
        fi
 
index d428a7b7e65a874d99717ab179aa28626d982119..81cef724cb5c14131a72926e3869cbd12159f913 100644 (file)
@@ -1,6 +1,6 @@
 --- a/scripts/mysql_install_db.sh
 +++ b/scripts/mysql_install_db.sh
-@@ -399,7 +399,7 @@ fi
+@@ -403,7 +403,7 @@ fi
  
  
  # Try to determine the hostname
index 7cfa667a185408c7db94b3f847516b5fdba4276f..198d5f10cd0630eab7350340c0f0fd13bd355e94 100644 (file)
@@ -53,7 +53,7 @@ directly was the first solution adopted in MariaDB [2].
  #  define UT_RESUME_PRIORITY_CPU() ((void)0)
 --- a/storage/innobase/include/ut0ut.h
 +++ b/storage/innobase/include/ut0ut.h
-@@ -70,9 +70,8 @@ typedef time_t       ib_time_t;
+@@ -71,9 +71,8 @@ typedef time_t       ib_time_t;
     the YieldProcessor macro defined in WinNT.h. It is a CPU architecture-
     independent way by using YieldProcessor. */
  # define UT_RELAX_CPU() YieldProcessor()
@@ -65,7 +65,7 @@ directly was the first solution adopted in MariaDB [2].
  #else
  # define UT_RELAX_CPU() do { \
       volatile int32   volatile_var; \
-@@ -90,9 +89,8 @@ typedef time_t       ib_time_t;
+@@ -91,9 +90,8 @@ typedef time_t       ib_time_t;
  #endif
  
  #if defined(HAVE_HMT_PRIORITY_INSTRUCTION)
index ebee904d63768a00694a9b8967b20287d7ffc398..6ab25ce5ecf67f3e02cc9c736bf2ae93f91798b6 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=oath-toolkit
 PKG_VERSION:=2.6.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=oath-toolkit-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SAVANNAH/oath-toolkit
index a2fc1ad6001a3acb28e7673b5b94b66e13877356..ff1a6ecdd840285b312d726bdb8213fc1bd526d0 100644 (file)
@@ -123,28 +123,6 @@ index 8ab19fd..54c3d5a 100644
    return ((fp->_flags & _IO_NO_WRITES) != 0
            || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
                && fp->_IO_read_base != NULL));
-diff --git a/liboath/gl/fseeko.c b/liboath/gl/fseeko.c
-index 67bb9ec..5616221 100644
---- a/liboath/gl/fseeko.c
-+++ b/liboath/gl/fseeko.c
-@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- #endif
-   /* These tests are based on fpurge.c.  */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_ftrylockfile || __GNU_LIBRARY__ /* GNU libc, BeOS, Haiku, Linux libc5 */
-   if (fp->_IO_read_end == fp->_IO_read_ptr
-       && fp->_IO_write_ptr == fp->_IO_write_base
-       && fp->_IO_save_base == NULL)
-@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
-           return -1;
-         }
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_ftrylockfile || __GNU_LIBRARY__ /* GNU libc, BeOS, Haiku, Linux libc5 */
-       fp->_flags &= ~_IO_EOF_SEEN;
-       fp->_offset = pos;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
 diff --git a/liboath/gl/stdio-impl.h b/liboath/gl/stdio-impl.h
 index 4c02c9f..393ef0c 100644
 --- a/liboath/gl/stdio-impl.h
index c7670444497e26140dbb63c03de16b131807f126..bfbd0964e491b8e6209a22bee2a4d2c33fecbe16 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcsc-lite
-PKG_VERSION:=1.8.24
+PKG_VERSION:=1.8.25
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://pcsclite.apdu.fr/files/
-PKG_HASH:=b81864fa6a5ec776639c02ae89998955f7702a8d10e8b8f70023c5a599d97568
+PKG_HASH:=d76d79edc31cf76e782b9f697420d3defbcc91778c3c650658086a1b748e8792
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING
index cde0a435775eaab5bb1e8786e3d1964a42230e11..3d877467767f070b10bee05004c12f4ff9f593fc 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcsc-tools
-PKG_VERSION=1.5.3
+PKG_VERSION=1.5.4
 PKG_RELEASE:=1
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://ludovic.rousseau.free.fr/softwares/pcsc-tools/
-PKG_HASH:=daaa011c28daa00653bd8e2a3d8b0b9f8abae00f7344f50b1a94fbd2b01f1d14
+PKG_HASH:=c39e6abba781895220c68df5e5d2f0f9547c7a676eebec3f1ddcff8794377c93
 
 PKG_FIXUP:=autoreconf
 
index ec90ae9345be3af97ca9cc9247791c6e6f651f13..31fa5318e051c6f3f6e9dd7376f5c5b5cc5577ea 100644 (file)
@@ -1,4 +1,4 @@
-# 
+#
 # Copyright (C) 2017 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
@@ -7,18 +7,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rtl_433
-PKG_VERSION:=18.05
+PKG_VERSION:=18.12
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/merbanan/rtl_433/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=4710105234e3b71ae839e2d3f2628d6c12879fcda9c849fffe847d4de42a74f3
-
-CMAKE_INSTALL:=1
+PKG_HASH:=8d9a0d57155430b03d299effd48b43b7e072f49868485f0fc79294a28402d654
 
+PKG_MAINTAINER:=Jasper Scholte <NightNL@outlook.com>
 PKG_LICENSE:=GPLv2
 PKG_LICENSE_FILES:=COPYING
 
+CMAKE_INSTALL:=1
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
@@ -28,7 +29,6 @@ define Package/rtl_433
   CATEGORY:=Utilities
   DEPENDS:=+librtlsdr +rtl-sdr +libtool-bin
   URL:=https://github.com/merbanan/rtl_433
-  MAINTAINER:=Jasper Scholte <NightNL@outlook.com>
 endef
 
 define Package/rtl-sdr/description
diff --git a/utils/rtl_433/patches/010-gnu-source.patch b/utils/rtl_433/patches/010-gnu-source.patch
new file mode 100644 (file)
index 0000000..3626558
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -50,7 +50,7 @@ if (("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" MATCHES
+     ADD_DEFINITIONS(-std=c99)
+     ADD_DEFINITIONS(-pedantic)
+     # for strdup, setenv
+-    ADD_DEFINITIONS(-D_POSIX_C_SOURCE=200809)
++    ADD_DEFINITIONS(-D_GNU_SOURCE)
+     #http://gcc.gnu.org/wiki/Visibility
+     add_definitions(-fvisibility=hidden)
index 6229d12f89b097dd1de4418cf2f7af212a96000f..26f951ce154b4e0b47202a87868006b36380720b 100644 (file)
@@ -1,4 +1,4 @@
-# 
+#
 # Copyright (C) 2006-2013 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
@@ -7,12 +7,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=swig
-PKG_VERSION:=3.0.12
-PKG_RELEASE:=2
+PKG_VERSION:=4.0.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d
+PKG_HASH:=e8a39cd6437e342cdcbd5af27a9bf11b62dc9efec9248065debcb8276fcbb925
 PKG_INSTALL:=1
 
 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>, Hirokazu MORIKAWA <morikw2@gmail.com>
diff --git a/utils/swig/patches/0001-Add-Node-7.x-aka-V8-5.2-support.patch b/utils/swig/patches/0001-Add-Node-7.x-aka-V8-5.2-support.patch
deleted file mode 100644 (file)
index 885c395..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-From 1a5aadcd66e85c63d228bfd811a521d617c22a38 Mon Sep 17 00:00:00 2001
-From: Patrick Schneider <patrick.schneider@meetnow.eu>
-Date: Thu, 13 Apr 2017 15:02:53 +0200
-Subject: [PATCH] Add Node 7.x aka V8 5.2+ support
-
-* Use WeakCallbackInfo instead of WeakCallbackData
-* Use GetPrivate instead of GetHiddenValue
-* Adopted new signature for SetWeak to support destructor calling
-* SetAccessor deprecation fixed
-* Proper version checks where applicable
-
-Upstream-Status: Submitted [https://github.com/swig/swig/pull/968]
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
----
- Lib/javascript/v8/javascriptcode.swg    | 27 +++++++++++++++++-----
- Lib/javascript/v8/javascripthelpers.swg | 29 +++++++++++++++++++++---
- Lib/javascript/v8/javascriptinit.swg    | 16 +++++++++++--
- Lib/javascript/v8/javascriptrun.swg     | 40 ++++++++++++++++++++++++++++-----
- 4 files changed, 95 insertions(+), 17 deletions(-)
-
-diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
-index fb7d55c..b8c5089 100644
---- a/Lib/javascript/v8/javascriptcode.swg
-+++ b/Lib/javascript/v8/javascriptcode.swg
-@@ -133,10 +133,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
-   SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
- static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) {
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
-   v8::Local<v8::Object> object = data.GetValue();
-   SWIGV8_Proxy *proxy = data.GetParameter();
-+#else
-+  static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
-+  SWIGV8_Proxy *proxy = data.GetParameter();
- #endif
-   if(proxy->swigCMemOwn && proxy->swigCObject) {
-@@ -147,7 +150,9 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
-   }
-   delete proxy;
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   object.Clear();
-+#endif
-   
- #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
-   object.Dispose();
-@@ -155,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
-   object.Dispose(isolate);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100)
-   object->Dispose(isolate);
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   object->Dispose();
- #endif
- }
-@@ -177,10 +182,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
-   SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
- static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) {
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
-   v8::Local<v8::Object> object = data.GetValue();
-   SWIGV8_Proxy *proxy = data.GetParameter();
-+#else
-+static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
-+  SWIGV8_Proxy *proxy = data.GetParameter();
- #endif
-   if(proxy->swigCMemOwn && proxy->swigCObject) {
-@@ -197,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
-   object->Dispose(isolate);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
-   object->Dispose();
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   object.Clear();
- #endif
- }
-@@ -211,7 +219,11 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
-  * ----------------------------------------------------------------------------- */
- %fragment("js_getter", "templates")
- %{
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) {
-+#else
-+static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) {
-+#endif
-   SWIGV8_HANDLESCOPE();
-   
-   v8::Handle<v8::Value> jsresult;
-@@ -233,8 +245,11 @@ fail:
-  * ----------------------------------------------------------------------------- */
- %fragment("js_setter", "templates")
- %{
--static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value,
--  const SwigV8PropertyCallbackInfoVoid &info) {
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-+static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
-+#else
-+static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
-+#endif
-   SWIGV8_HANDLESCOPE();
-   
-   $jslocals
-diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg
-index 091467d..7461079 100644
---- a/Lib/javascript/v8/javascripthelpers.swg
-+++ b/Lib/javascript/v8/javascripthelpers.swg
-@@ -6,11 +6,16 @@ typedef v8::InvocationCallback  SwigV8FunctionCallback;
- typedef v8::AccessorGetter      SwigV8AccessorGetterCallback;
- typedef v8::AccessorSetter      SwigV8AccessorSetterCallback;
- typedef v8::AccessorInfo        SwigV8PropertyCallbackInfoVoid;
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- typedef v8::FunctionCallback            SwigV8FunctionCallback;
- typedef v8::AccessorGetterCallback      SwigV8AccessorGetterCallback;
- typedef v8::AccessorSetterCallback      SwigV8AccessorSetterCallback;
- typedef v8::PropertyCallbackInfo<void>  SwigV8PropertyCallbackInfoVoid;
-+#else
-+typedef v8::FunctionCallback            SwigV8FunctionCallback;
-+typedef v8::AccessorNameGetterCallback  SwigV8AccessorGetterCallback;
-+typedef v8::AccessorNameSetterCallback  SwigV8AccessorSetterCallback;
-+typedef v8::PropertyCallbackInfo<void>  SwigV8PropertyCallbackInfoVoid;
- #endif
- /**
-@@ -65,18 +70,36 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char
-  */
- SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol,
-   SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) {
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter);
-+#else
-+  obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter);
-+#endif
- }
--SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value,
--  const SwigV8PropertyCallbackInfoVoid& info)
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
-+#else
-+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
-+#endif
- {
-     char buffer[256];
-     char msg[512];
-     int res;
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-     property->WriteUtf8(buffer, 256);
-     res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
-+#else
-+    v8::Local<v8::String> sproperty;
-+    if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) {
-+      sproperty->WriteUtf8(buffer, 256);
-+      res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
-+    }
-+    else {
-+      res = -1;
-+    }
-+#endif
-     if(res<0) {
-       SWIG_exception(SWIG_ERROR, "Tried to write read-only variable.");
-diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg
-index 34befa7..86008d9 100644
---- a/Lib/javascript/v8/javascriptinit.swg
-+++ b/Lib/javascript/v8/javascriptinit.swg
-@@ -7,15 +7,27 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
-   v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
-   v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module);
-   assert(!mod.IsEmpty());
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod);
-+#else
-+  v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
-+  global_obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, mod);
-+#endif
- }
- SWIGRUNTIME swig_module_info *
- SWIG_V8_GetModule(void *) {
-   v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"));
-+#else
-+  v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
-+  v8::Local<v8::Value> moduleinfo;
-+  if (!global_obj->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&moduleinfo))
-+    return 0;
-+#endif
--  if (moduleinfo.IsEmpty())
-+  if (moduleinfo.IsEmpty() || moduleinfo->IsNull() || moduleinfo->IsUndefined())
-   {
-     // It's not yet loaded
-     return 0;
-@@ -23,7 +35,7 @@ SWIG_V8_GetModule(void *) {
-   v8::Local<v8::External> moduleinfo_extern = v8::Local<v8::External>::Cast(moduleinfo);
--  if (moduleinfo_extern.IsEmpty())
-+  if (moduleinfo_extern.IsEmpty() || moduleinfo_extern->IsNull() || moduleinfo_extern->IsUndefined())
-   {
-     // Something's not right
-     return 0;
-diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
-index 5ac52a5..30002c0 100644
---- a/Lib/javascript/v8/javascriptrun.swg
-+++ b/Lib/javascript/v8/javascriptrun.swg
-@@ -193,8 +193,10 @@ public:
-   void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
-   void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy);
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data);
-+#else
-+  void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data);
- #endif
- };
-@@ -241,9 +243,12 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val
-   SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
- SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) {
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
-   SWIGV8_Proxy *proxy = data.GetParameter();
-+#else
-+SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
-+  SWIGV8_Proxy *proxy = data.GetParameter();
- #endif
-   delete proxy;
-@@ -312,12 +317,18 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw
-   } else {
-     cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
-   }
--#else
-+#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
-     cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
-   } else {
-     cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor);
-   }
-+#else
-+  if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
-+    cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter);
-+  } else {
-+    cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter);
-+  }
- #endif
- #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
-@@ -470,7 +481,14 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) {
-   
-   v8::Handle<v8::Object> objRef = valRef->ToObject();
-   if(objRef->InternalFieldCount() < 1) return false;
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"));
-+#else
-+  v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
-+  v8::Local<v8::Value> flag;
-+  if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag))
-+    return false;
-+#endif
-   return (flag->IsBoolean() && flag->BooleanValue());
- }
-@@ -519,10 +537,13 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist
-   SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
- SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) {
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) {
-   v8::Local<v8::Object> object = data.GetValue();
-   SwigV8PackedData *cdata = data.GetParameter();
-+#else
-+SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8PackedData> &data) {
-+  SwigV8PackedData *cdata = data.GetParameter();
- #endif
-   delete cdata;
-@@ -537,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Ob
-   object->Dispose(isolate);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
-   object->Dispose();
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   object.Clear();
- #endif
- }
-@@ -550,7 +571,12 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
- //  v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW();
-   v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW();
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true));
-+#else
-+  v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
-+  obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true));
-+#endif
- #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511)
-   obj->SetPointerInInternalField(0, cdata);
-@@ -573,9 +599,11 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
-   cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
-   cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete);
- //  v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete);
-+#else
-+  cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter);
- #endif
- #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
--- 
-2.9.5
-
index ff3c9ee19b94a94a2ecb9539cf28a32b893f3c86..b46d4c2fa231883a62d1c031f4dccd5efd2fab61 100644 (file)
@@ -1,19 +1,13 @@
-#
-# Copyright (C) 2009-2016 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tmux
-PKG_VERSION:=2.8
+PKG_VERSION:=2.9a
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/tmux/tmux/releases/download/$(PKG_VERSION)
-PKG_HASH:=7f6bf335634fafecff878d78de389562ea7f73a7367f268b66d37ea13617a2ba
+PKG_HASH:=839d167a4517a6bffa6b6074e89a9a8630547b2dea2086f1fad15af12ab23b25
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 
 PKG_LICENSE:=ISC
index aa6006d3bc25cc41f9948c3697aabb0de7ac123d..091e14e481d885b38e1fec5616df85df4f8abffd 100644 (file)
@@ -8,22 +8,22 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=usbmuxd
-PKG_VERSION:=1.1.1
-PKG_RELEASE:=4
-PKG_SOURCE_PROTO:=git
+PKG_SOURCE_DATE:=2019-03-04
+PKG_SOURCE_VERSION:=b1b0bf390363fa36aff1bc09443ff751943b9c34
+PKG_RELEASE:=1
 
-PKG_MAINTAINER:=Lukasz Baj <l.baj@radytek.com>
+PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING.GPLv2
 
-PKG_SOURCE_URL:=https://github.com/libimobiledevice/usbmuxd.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=35e5d48f29ae03b2b9686109e4ed9ab8b9677ce8
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=7c0d8ea230570344fbc0183c0171689c74baf3d75fff33bbdfca2d1775a4d62d
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
+PKG_SOURCE_URL=https://codeload.github.com/libimobiledevice/usbmuxd/tar.gz/$(PKG_SOURCE_VERSION)?
+PKG_HASH:=ca4275dbc21e8d9c926e65943b605ea5a6112d30eb3f9e655d3983da87ac6798
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -43,7 +43,7 @@ define Package/usbmuxd/description
   uses a dedicated USB interface as a virtual network device.
 endef
 
-TARGET_CFLAGS += $(FPIC)
+CONFIGURE_ARGS += --without-systemd
 
 define Package/usbmuxd/install
        $(INSTALL_DIR) $(1)/usr/sbin
index dff96d6ffb404ffa2c886c6cff442e88b06a0c7e..865dc73b3abddc28e0efd00b7eff1adaf737152b 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zstd
 PKG_VERSION:=1.4.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/facebook/zstd/tar.gz/v$(PKG_VERSION)?
diff --git a/utils/zstd/patches/010-uClibc-ng.patch b/utils/zstd/patches/010-uClibc-ng.patch
new file mode 100644 (file)
index 0000000..552286b
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/programs/fileio.c
++++ b/programs/fileio.c
+@@ -175,7 +175,7 @@ static void clearHandler(void)
+ #if !defined(BACKTRACE_ENABLE)
+ /* automatic detector : backtrace enabled by default on linux+glibc and osx */
+-#  if (defined(__linux__) && defined(__GLIBC__)) \
++#  if (defined(__linux__) && (defined(__GLIBC__) && !defined(__UCLIBC__))) \
+      || (defined(__APPLE__) && defined(__MACH__))
+ #    define BACKTRACE_ENABLE 1
+ #  else