Merge pull request #6471 from BKPepe/master
authorJo-Philipp Wich <jo@mein.io>
Sat, 28 Jul 2018 17:21:51 +0000 (19:21 +0200)
committerGitHub <noreply@github.com>
Sat, 28 Jul 2018 17:21:51 +0000 (19:21 +0200)
owfs: update to the latest version (v3.2p2)

87 files changed:
.travis_do.sh
admin/syslog-ng/Makefile
admin/syslog-ng/patches/001-fix-secret-storage.patch [new file with mode: 0644]
admin/syslog-ng/patches/100-use-1.0.2k-threadids.patch [deleted file]
lang/php7/Makefile
lang/python/python-mysql/Makefile
libs/dtc/Makefile
libs/libgcrypt/Makefile
libs/libgcrypt/patches/001-no_docs_tests.patch [deleted file]
libs/libgcrypt/patches/002-Add-configure-option-enable-build-timestamp.patch [deleted file]
libs/libgpg-error/Makefile
libs/libgpg-error/patches/001-cross-compile-fix.patch [new file with mode: 0644]
libs/libgpg-error/patches/001-gcc5.patch [deleted file]
libs/libhttp-parser/Makefile
libs/libpsl/Makefile [new file with mode: 0644]
libs/libsoup/Makefile
libs/libtalloc/Makefile
libs/libtorrent/Makefile
libs/libtorrent/patches/100-fix_cross_compile.patch
libs/libtorrent/patches/110-openssl-1.1.patch
libs/libuhttpd/Makefile [changed mode: 0755->0644]
libs/libuhttpd/patches/001-fix-find-lua.patch [new file with mode: 0644]
libs/libxerces-c/Makefile
libs/libzdb/Makefile
libs/tdb/Makefile
libs/xmlrpc-c/Makefile
mail/dovecot/Makefile
net/adblock/Makefile
net/adblock/files/adblock.init
net/adblock/files/adblock.sh
net/bonding/Makefile [new file with mode: 0644]
net/bonding/files/lib/netifd/proto/bonding.sh [new file with mode: 0755]
net/clamav/Makefile
net/ipsec-tools/Makefile
net/ipsec-tools/patches/012-fix-implicit-int.patch [new file with mode: 0644]
net/ipsec-tools/patches/015-openssl-1.1.patch [new file with mode: 0644]
net/mtr/Makefile
net/mtr/patches/100-disabled-ipv6-fix.patch [deleted file]
net/nginx/Config.in
net/nginx/Config_ssl.in
net/nginx/Makefile
net/nginx/files-luci-support/60_nginx-luci-support
net/nginx/files-luci-support/70_nginx-luci-support-ssl
net/nginx/files-luci-support/luci_nginx.conf
net/rtorrent/Makefile
net/rtorrent/patches/100-fix-cross_compile.patch
net/rtorrent/patches/120-fix-ncurses.patch
net/simple-adblock/Makefile
net/simple-adblock/files/README.md
net/simple-adblock/files/simple-adblock.conf
net/simple-adblock/files/simple-adblock.hotplug [new file with mode: 0644]
net/simple-adblock/files/simple-adblock.init
net/tor/Makefile
net/transmission/Makefile
net/transmission/files/transmission.config
net/transmission/files/transmission.init
net/uwsgi-cgi/LICENSE [deleted file]
net/uwsgi-cgi/Makefile
net/uwsgi-cgi/files-luci-support/uwsgi.conf
net/uwsgi-cgi/files-luci-support/uwsgi.init
net/uwsgi-cgi/patches/001-remove-unused-deps.patch [new file with mode: 0644]
net/uwsgi-cgi/patches/002-dont-hardcode-zlib.patch [new file with mode: 0644]
net/uwsgi-cgi/patches/003-dont-override-toolchain-optimization.patch [new file with mode: 0644]
net/uwsgi-cgi/patches/004-hard-code-Linux-as-compilation-os.patch [new file with mode: 0644]
net/wget/Makefile
net/znc/Makefile
net/znc/patches/100-move_rootcheck_after_config.patch [deleted file]
net/znc/patches/101-Reduce_rebuild_time.patch
net/znc/patches/104-disable-empty-modules-check.patch
sound/mpd/Makefile
sound/mpd/patches/210-support_raw_pcm_streams.patch
sound/pulseaudio/Makefile
sound/shine/Makefile
sound/shine/patches/002-fix-name-collision-with-ffmpeg.patch [deleted file]
utils/attr/Makefile
utils/btrfs-progs/Makefile
utils/collectd/Makefile
utils/fio/Makefile
utils/irqbalance/patches/300-upstream-fix-for-AARCH64.patch [new file with mode: 0644]
utils/picocom/Makefile
utils/picocom/patches/010-fix-compile.patch [new file with mode: 0644]
utils/picocom/patches/100-musl-compat.patch [deleted file]
utils/prometheus-node-exporter-lua/Makefile
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/conntrack.lua [new file with mode: 0644]
utils/slide-switch/Makefile
utils/tio/Makefile
utils/uvcdynctrl/Makefile

index 63cd1d77c90015b556418ddcf13623e54fae9050..798b19b7599136d26147e9429a049b4e98a57a01 100755 (executable)
@@ -136,7 +136,10 @@ EOF
                echo_blue "=== $pkg_name: Starting quick tests"
 
                exec_status '^ERROR' make "package/$pkg_name/download" V=s || RET=1
-               exec_status '^ERROR' make "package/$pkg_name/check" V=s || RET=1
+               badhash_msg_regex="HASH does not match "
+               badhash_msg_regex="$badhash_msg_regex|HASH uses deprecated hash,"
+               badhash_msg_regex="$badhash_msg_regex|HASH is missing,"
+               exec_status '^ERROR'"|$badhash_msg_regex" make "package/$pkg_name/check" V=s || RET=1
 
                echo_blue "=== $pkg_name: quick tests done"
        done
index e294ff5771d5823930ee1ea9a1181576f05540f8..219ce03a82a134da8fc44adda31ae5932b53644d 100644 (file)
@@ -1,14 +1,14 @@
 include  $(TOPDIR)/rules.mk
 
 PKG_NAME:=syslog-ng
-PKG_VERSION:=3.9.1
-PKG_RELEASE:=3
+PKG_VERSION:=3.16.1
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/balabit/syslog-ng/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
-PKG_HASH:=5678856a550ae790618fabde9d1447f932ce7a9080d55dca8fc5df1202c70a17
+PKG_HASH:=c7ee6f1d5e98d86f191964e580111bfa71081ecbb3275cea035bbba177b73a29
 
 PKG_INSTALL:=1
 
@@ -18,7 +18,7 @@ include $(INCLUDE_DIR)/nls.mk
 define Package/syslog-ng
   SECTION:=admin
   CATEGORY:=Administration
-  DEPENDS:=+libpcre +glib2 +libeventlog +libopenssl +libuuid +libcurl
+  DEPENDS:=+libpcre +glib2 +libopenssl +libuuid +libcurl
   TITLE:=A powerful syslog daemon
   URL:=http://www.balabit.com/network-security/syslog-ng/opensource-logging-system/
 endef
diff --git a/admin/syslog-ng/patches/001-fix-secret-storage.patch b/admin/syslog-ng/patches/001-fix-secret-storage.patch
new file mode 100644 (file)
index 0000000..b50c63f
--- /dev/null
@@ -0,0 +1,48 @@
+diff -u --recursive syslog-ng-3.16.1-vanilla/configure.ac syslog-ng-3.16.1/configure.ac
+--- syslog-ng-3.16.1-vanilla/configure.ac      2018-06-01 06:02:07.000000000 -0400
++++ syslog-ng-3.16.1/configure.ac      2018-07-15 19:31:30.307354198 -0400
+@@ -793,6 +793,14 @@
+ AC_CHECK_FUNCS([inotify_init])
+ dnl ***************************************************************************
++dnl secret-storage headers/libraries
++dnl ***************************************************************************
++
++SECRET_STORAGE_LIBS="\$(top_builddir)/lib/secret-storage/libsecret-storage.la"
++SECRET_STORAGE_NO_LIBTOOL_LIBS="\$(top_builddir)/lib/eventlog/src/.libs/libsecret-storage.so"
++SECRET_STORAGE_CFLAGS="-I\$(top_srcdir)/lib/secret-storage"
++
++dnl ***************************************************************************
+ dnl libevtlog headers/libraries (remove after relicensing libevtlog)
+ dnl ***************************************************************************
+@@ -1592,7 +1600,7 @@
+       java_module_path="$moduledir"/java-modules
+ fi
+-CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS $EVTLOG_CFLAGS $PCRE_CFLAGS $OPENSSL_CFLAGS $LIBNET_CFLAGS $LIBDBI_CFLAGS $IVYKIS_CFLAGS -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
++CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS $EVTLOG_CFLAGS $SECRET_STORAGE_CFLAGS $PCRE_CFLAGS $OPENSSL_CFLAGS $LIBNET_CFLAGS $LIBDBI_CFLAGS $IVYKIS_CFLAGS -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+ ########################################################
+ ## NOTES: on how syslog-ng is linked
+@@ -1640,7 +1648,7 @@
+ MODULE_DEPS_LIBS="\$(top_builddir)/lib/libsyslog-ng.la"
+ if test "x$linking_mode" = "xdynamic"; then
+-      SYSLOGNG_DEPS_LIBS="$LIBS $BASE_LIBS $GLIB_LIBS $EVTLOG_LIBS $RESOLV_LIBS $LIBCAP_LIBS $PCRE_LIBS $REGEX_LIBS $DL_LIBS"
++      SYSLOGNG_DEPS_LIBS="$LIBS $BASE_LIBS $GLIB_LIBS $EVTLOG_LIBS $SECRET_STORAGE_LIBS $RESOLV_LIBS $LIBCAP_LIBS $PCRE_LIBS $REGEX_LIBS $DL_LIBS"
+       if test "x$with_ivykis" = "xinternal"; then
+               # when using the internal ivykis, we're linking it statically into libsyslog-ng.so
+@@ -1659,8 +1667,8 @@
+       # syslog-ng binary is linked with the default link command (e.g. libtool)
+       SYSLOGNG_LINK='$(LINK)'
+ else
+-      SYSLOGNG_DEPS_LIBS="$LIBS $BASE_LIBS $RESOLV_LIBS $EVTLOG_NO_LIBTOOL_LIBS $LD_START_STATIC -Wl,${WHOLE_ARCHIVE_OPT} $GLIB_LIBS $PCRE_LIBS $REGEX_LIBS  -Wl,${NO_WHOLE_ARCHIVE_OPT} $IVYKIS_NO_LIBTOOL_LIBS $LD_END_STATIC $LIBCAP_LIBS $DL_LIBS"
+-      TOOL_DEPS_LIBS="$LIBS $BASE_LIBS $GLIB_LIBS $EVTLOG_LIBS $RESOLV_LIBS $LIBCAP_LIBS $PCRE_LIBS $REGEX_LIBS $IVYKIS_LIBS $DL_LIBS"
++      SYSLOGNG_DEPS_LIBS="$LIBS $BASE_LIBS $RESOLV_LIBS $EVTLOG_NO_LIBTOOL_LIBS $SECRET_STORAGE_NO_LIBTOOL_LIBS $LD_START_STATIC -Wl,${WHOLE_ARCHIVE_OPT} $GLIB_LIBS $PCRE_LIBS $REGEX_LIBS  -Wl,${NO_WHOLE_ARCHIVE_OPT} $IVYKIS_NO_LIBTOOL_LIBS $LD_END_STATIC $LIBCAP_LIBS $DL_LIBS"
++      TOOL_DEPS_LIBS="$LIBS $BASE_LIBS $GLIB_LIBS $EVTLOG_LIBS $SECRET_STORAGE_LIBS $RESOLV_LIBS $LIBCAP_LIBS $PCRE_LIBS $REGEX_LIBS $IVYKIS_LIBS $DL_LIBS"
+       CORE_DEPS_LIBS=""
+       # bypass libtool in case we want to do mixed linking because it
+Only in syslog-ng-3.16.1-vanilla/: syslog-ng-3.16.1
diff --git a/admin/syslog-ng/patches/100-use-1.0.2k-threadids.patch b/admin/syslog-ng/patches/100-use-1.0.2k-threadids.patch
deleted file mode 100644 (file)
index 17c005a..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
---- a/lib/crypto.c     2016-12-21 07:57:44.000000000 -0700
-+++ b/lib/crypto.c     2017-03-24 13:19:34.188259018 -0600
-@@ -51,11 +51,20 @@
-     }
- }
-+#if OPENSSL_VERSION_NUMBER < 0x10000000
- static unsigned long
- ssl_thread_id(void)
- {
-   return (unsigned long) get_thread_id();
- }
-+
-+#else
-+static void
-+ssl_thread_id2(CRYPTO_THREADID *id)
-+{
-+  CRYPTO_THREADID_set_numeric(id, get_thread_id());
-+}
-+#endif
- static void
- crypto_init_threading(void)
-@@ -68,7 +76,11 @@
-     {
-       g_static_mutex_init(&ssl_locks[i]);
-     }
-+#if OPENSSL_VERSION_NUMBER < 0x10000000
-   CRYPTO_set_id_callback(ssl_thread_id);
-+#else
-+  CRYPTO_THREADID_set_callback(ssl_thread_id2);
-+#endif
-   CRYPTO_set_locking_callback(ssl_locking_callback);
- }
index 24eb74e05067ca6c2ce619d8e1cb3309fe803604..99e98b3b91e99edd7e5f16720add09dd653bcac0 100644 (file)
@@ -6,8 +6,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=7.2.7
-PKG_RELEASE:=2
+PKG_VERSION:=7.2.8
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
 
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_HASH:=eb01c0153b3baf1f64b8b044013ce414b52fede222df3f509e8ff209478f31f0
+PKG_HASH:=53ba0708be8a7db44256e3ae9fcecc91b811e5b5119e6080c951ffe7910ffb0f
 
 PKG_FIXUP:=libtool autoreconf
 PKG_BUILD_PARALLEL:=1
index 09fd2420c1770797e3db6d203d6848b4eb94d8f3..c3977c0db7a279c6b997f04b92403f223d422f3c 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-mysql
 PKG_VERSION:=1.3.12
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_LICENSE:=GPL-2.0
 
 PKG_SOURCE:=mysqlclient-$(PKG_VERSION).tar.gz
@@ -21,17 +21,11 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-mysql-$(PKG_VERSION)
 include $(INCLUDE_DIR)/package.mk
 include ../python-package.mk
 include ../python3-package.mk
+# python-mysql needs iconv
+include $(INCLUDE_DIR)/nls.mk
 
 PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
 
-# Help python-mysql find libiconv.so when using uClibc.
-ifneq ($(CONFIG_USE_UCLIBC),)
-TARGET_CPPFLAGS+= \
-       -I$(STAGING_DIR)/usr/lib/libiconv-full/include
-TARGET_LDFLAGS += \
-       -L$(STAGING_DIR)/usr/lib/libiconv-full/lib
-endif
-
 define Package/python-mysql/Default
   SUBMENU:=Python
   SECTION:=lang
index 27b0c33d0a9265d3e4f9b8dd52fe499acb54ec74..d6a5bf1d347a29b4fb527f01a2cfc3c1dda1a3ae 100644 (file)
@@ -25,7 +25,7 @@ define Package/dtc
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=Device Tree Compiler
-  URL:=http://devicetree.org/Device_Tree_Compiler
+  URL:=https://git.kernel.org/pub/scm/utils/dtc/dtc.git
 endef
 
 define Package/dtc/description
@@ -45,7 +45,7 @@ define Package/fdt-utils
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=Flat Device Tree Utilities
-  URL:=http://devicetree.org/Device_Tree_Compiler
+  URL:=https://git.kernel.org/pub/scm/utils/dtc/dtc.git
 endef
 
 define Package/fdt-utils/install
@@ -62,7 +62,7 @@ define Package/libfdt
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=a utility library for reading and manipulating dtb files
-  URL:=http://devicetree.org/Device_Tree_Compiler
+  URL:=https://git.kernel.org/pub/scm/utils/dtc/dtc.git
 endef
 
 define Package/libfdt/description
index 6f52546f482e0f94d41ae5a214a06abe4851a167..87ce0c83e728a61aac9e51718b2b7ddf0a3306d8 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libgcrypt
-PKG_VERSION:=1.6.6
-PKG_RELEASE:=2
+PKG_VERSION:=1.8.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/libgcrypt/
-PKG_HASH:=f9461b4619bb78b273a88d468915750d418e89a3ea3b641bab0563a9af4b04d0
+PKG_HASH:=66ec90be036747602f2b48f98312361a9180c97c68a690a5f376fa0f67d0af7c
 PKG_LICENSE:=LGPL-2.1+ GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
 
@@ -47,6 +47,7 @@ CONFIGURE_ARGS += \
        --enable-shared \
        --enable-static \
        --disable-asm \
+       --disable-doc \
        --with-gpg-error-prefix="$(STAGING_DIR)/usr"
 
 TARGET_CFLAGS += $(FPIC)
diff --git a/libs/libgcrypt/patches/001-no_docs_tests.patch b/libs/libgcrypt/patches/001-no_docs_tests.patch
deleted file mode 100644 (file)
index b5aeacc..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -u --recursive libgcrypt-1.6.1-vanilla/Makefile.am libgcrypt-1.6.1/Makefile.am
---- libgcrypt-1.6.1-vanilla/Makefile.am        2014-07-18 00:31:21.020329371 -0400
-+++ libgcrypt-1.6.1/Makefile.am        2014-07-18 00:31:49.076314616 -0400
-@@ -25,8 +25,8 @@
- # (A suitable gitlog-to-changelog script can be found in GnuPG master.)
- GITLOG_TO_CHANGELOG=gitlog-to-changelog
--DIST_SUBDIRS = m4 compat mpi cipher random src doc tests
--SUBDIRS =         compat mpi cipher random src doc tests
-+DIST_SUBDIRS = m4 compat mpi cipher random src
-+SUBDIRS =         compat mpi cipher random src
- EXTRA_DIST = autogen.sh autogen.rc README.GIT LICENSES                   \
-              ChangeLog-2011 build-aux/ChangeLog-2011 doc/ChangeLog-2011    \
-diff -u --recursive libgcrypt-1.6.1-vanilla/Makefile.in libgcrypt-1.6.1/Makefile.in
---- libgcrypt-1.6.1-vanilla/Makefile.in        2014-07-18 00:31:21.020329371 -0400
-+++ libgcrypt-1.6.1/Makefile.in        2014-07-18 00:31:54.974311498 -0400
-@@ -331,8 +331,8 @@
- # (A suitable gitlog-to-changelog script can be found in GnuPG master.)
- GITLOG_TO_CHANGELOG = gitlog-to-changelog
--DIST_SUBDIRS = m4 compat mpi cipher random src doc tests
--SUBDIRS = compat mpi cipher random src doc tests
-+DIST_SUBDIRS = m4 compat mpi cipher random src
-+SUBDIRS = compat mpi cipher random src
- EXTRA_DIST = autogen.sh autogen.rc README.GIT LICENSES                   \
-              ChangeLog-2011 build-aux/ChangeLog-2011 doc/ChangeLog-2011    \
-              m4/ChangeLog-2011 cipher/ChangeLog-2011 src/ChangeLog-2011    \
diff --git a/libs/libgcrypt/patches/002-Add-configure-option-enable-build-timestamp.patch b/libs/libgcrypt/patches/002-Add-configure-option-enable-build-timestamp.patch
deleted file mode 100644 (file)
index 49c3991..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From a785cc3db0c4e8eb8ebbf784b833a40d2c42ec3e Mon Sep 17 00:00:00 2001
-From: Werner Koch <wk@gnupg.org>
-Date: Tue, 25 Aug 2015 21:11:05 +0200
-Subject: [PATCH] Add configure option --enable-build-timestamp.
-
-* configure.ac (BUILD_TIMESTAMP): Set to "<none>" by default.
---
-
-This is based on
-libgpg-error commit d620005fd1a655d591fccb44639e22ea445e4554
-but changed to be disabled by default.  Check there for some
-background.
-
-Signed-off-by: Werner Koch <wk@gnupg.org>
----
- configure.ac | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 48e217947287..2acfa3630cac 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2272,7 +2272,16 @@ changequote([,])dnl
- BUILD_FILEVERSION="${BUILD_FILEVERSION}mym4_revision_dec"
- AC_SUBST(BUILD_FILEVERSION)
--BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
-+AC_ARG_ENABLE([build-timestamp],
-+  AC_HELP_STRING([--enable-build-timestamp],
-+                 [set an explicit build timestamp for reproducibility.
-+                  (default is the current time in ISO-8601 format)]),
-+     [if test "$enableval" = "yes"; then
-+        BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
-+      else
-+        BUILD_TIMESTAMP="$enableval"
-+      fi],
-+     [BUILD_TIMESTAMP="<none>"])
- AC_SUBST(BUILD_TIMESTAMP)
- AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
-                    [The time this package was configured for a build])
--- 
-2.15.1
-
index 6e93effeb5953b697546faec371c94b0ad7c8c93..cb580f159ec779c42d2b08cb41fdeb2758958b8a 100644 (file)
@@ -8,18 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libgpg-error
-PKG_VERSION:=1.12
+PKG_VERSION:=1.32
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=ftp://ftp.gnupg.org/gcrypt/libgpg-error
-PKG_HASH:=cafc9ed6a87c53a35175d5a1220a96ca386696eef2fa059cc0306211f246e55f
+PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/libgpg-error/
+PKG_HASH:=c345c5e73cc2332f8d50db84a2280abfb1d8f6d4f1858b9daa30404db44540ca
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
+PKG_FIXUP:=autoreconf
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libgpg-error
diff --git a/libs/libgpg-error/patches/001-cross-compile-fix.patch b/libs/libgpg-error/patches/001-cross-compile-fix.patch
new file mode 100644 (file)
index 0000000..076ab39
--- /dev/null
@@ -0,0 +1,22 @@
+diff -u --recursive libgpg-error-1.32-vanilla/configure.ac libgpg-error-1.32/configure.ac
+--- libgpg-error-1.32-vanilla/configure.ac     2018-07-15 01:23:30.028462129 -0400
++++ libgpg-error-1.32/configure.ac     2018-07-15 01:25:32.214267179 -0400
+@@ -74,6 +74,18 @@
+ AC_CANONICAL_HOST
+ AB_INIT
++case "${host}" in
++    x86_64-openwrt-linux-gnu|i?86-openwrt-linux-gnu)
++        host=$(echo $host | sed 's/openwrt/pc/g')
++        ;;
++    arm-openwrt-linux-gnu)
++        host=arm-unknown-linux-gnueabi
++        ;;
++    *)
++        host=$(echo $host | sed 's/openwrt/unknown/g')
++        ;;
++esac
++
+ # Checks for programs.
+ AC_PROG_CC
+ AM_PROG_CC_C_O
diff --git a/libs/libgpg-error/patches/001-gcc5.patch b/libs/libgpg-error/patches/001-gcc5.patch
deleted file mode 100644 (file)
index 1d886ff..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Mon, 16 Mar 2015 17:40:12 +0000 (-0400)
-Subject: Avoid breakage with gcc 5
-X-Git-Tag: libgpg-error-1.19~7
-X-Git-Url: http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=commitdiff_plain;h=c01c8f0c4f55d76b037c7f6aa44ad25ede18d38a
-
-Avoid breakage with gcc 5
-
-* src/Makefile.am: Add -P to the C preprocessor when building
-mkerrcodes.h, to avoid a noisy intermediate pipeline.
-
---
-
-With gcc 5 without this patch, we see many errors like the following:
-
-gcc -I. -I. -o mkerrcodes ./mkerrcodes.c
-In file included from ./mkerrcodes.c:26:0:
-./mkerrcodes.h:9:5: error: expected expression before ‘,’ token
-   { , "GPG_ERR_E2BIG" },
-     ^
-./mkerrcodes.h:10:5: error: expected expression before ‘,’ token
-   { , "GPG_ERR_EACCES" },
-     ^
-
-This patch cleans up the generated mkerrcodes.h by making the
-intermediate stage clean for all the versions of gcc i tested (4.x and
-5).
-
-Debian-Bug-Id: 777374
-Signed-Off-By: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
----
-
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -140,7 +140,7 @@ code-to-errno.h: Makefile mkerrnos.awk e
- # It is correct to use $(CPP).  We want the host's idea of the error codes.
- mkerrcodes.h: Makefile mkerrcodes.awk $(gpg_extra_headers)
-       $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@
--      $(CPP) $(CPPFLAGS) $(extra_cppflags) _$@ | grep GPG_ERR_ | \
-+      $(CPP) $(CPPFLAGS) $(extra_cppflags) -P _$@ | grep GPG_ERR_ | \
-                $(AWK) -f $(srcdir)/mkerrcodes.awk >$@
-       -rm _$@
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -979,7 +979,7 @@ code-to-errno.h: Makefile mkerrnos.awk e
- # It is correct to use $(CPP).  We want the host's idea of the error codes.
- mkerrcodes.h: Makefile mkerrcodes.awk $(gpg_extra_headers)
-       $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@
--      $(CPP) $(CPPFLAGS) $(extra_cppflags) _$@ | grep GPG_ERR_ | \
-+      $(CPP) $(CPPFLAGS) $(extra_cppflags) -P _$@ | grep GPG_ERR_ | \
-                $(AWK) -f $(srcdir)/mkerrcodes.awk >$@
-       -rm _$@
index f719974c8784d6db99798f8af23b95fbdd16e78a..fa8860531ff156a4edf7d78f21e96544dffbf5eb 100644 (file)
@@ -8,19 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libhttp-parser
-PKG_VERSION:=2.8.0
-PKG_RELEASE=1
+PKG_VERSION:=2.8.1
+PKG_RELEASE:=1
 PKG_MAINTAINER:=Ramanathan Sivagurunathan <ramzthecoder@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE-MIT
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=cf154fc12666dfa404f2537bb54e32196841e0f9d32312bf1e4daaf43f97f9a5
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=git://github.com/nodejs/http-parser.git
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/nodejs/http-parser/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=51615f68b8d67eadfd2482decc63b3e55d749ce0055502bbb5b0032726d22d96
+PKG_BUILD_DIR:=$(BUILD_DIR)/http-parser-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -33,15 +30,15 @@ endef
 
 define Package/libhttp-parser/description
   A parser for HTTP messages written in C. It parses both requests and responses. 
-  The parser is designed to be used in performance HTTP applications. 
-  It does not make any syscalls nor allocations, it does not buffer data, 
-  it can be interrupted at anytime. Depending on your architecture, 
-  it only requires about 40 bytes of data per message stream 
+  The parser is designed to be used in performance HTTP applications.
+  It does not make any syscalls nor allocations, it does not buffer data,
+  it can be interrupted at anytime. Depending on your architecture,
+  it only requires about 40 bytes of data per message stream
   (in a web server that is per connection).
 endef
 
 define Build/Compile
-       $(call Build/Compile/Default, library) 
+       $(call Build/Compile/Default, library)
 endef
 
 define Build/InstallDev
diff --git a/libs/libpsl/Makefile b/libs/libpsl/Makefile
new file mode 100644 (file)
index 0000000..71a1e02
--- /dev/null
@@ -0,0 +1,62 @@
+#
+# Copyright (C) 2007-2018 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libpsl
+PKG_VERSION:=0.20.2
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/rockdaboot/libpsl/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
+PKG_HASH:=f8fd0aeb66252dfcc638f14d9be1e2362fdaf2ca86bde0444ff4d5cc961b560f
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libpsl
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=C library to handle the Public Suffix List
+  URL:=https://github.com/rockdaboot/libpsl
+  DEPENDS:=+libidn2 +libunistring
+endef
+
+define Package/libpsl/description
+  C library to handle the Public Suffix List
+endef
+
+CONFIGURE_ARGS += --disable-rpath
+
+define Build/InstallDev
+       $(INSTALL_DIR) \
+               $(1)/usr/lib \
+               $(1)/usr/include
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/include/* \
+               $(1)/usr/include/
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/* \
+               $(1)/usr/lib/
+endef
+
+define Package/libpsl/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/*.so* \
+               $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libpsl))
index 385691fc93cc1627774ac8dd68af7f7d5663bbd4..61695c7068bcad6dc0f893982fa67c25b9d9aede 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsoup
-PKG_VERSION:=2.60.3
+PKG_VERSION:=2.63.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@GNOME/$(PKG_NAME)/2.60
-PKG_HASH:=1b0dc762f23abe4e0d29b77370e539fd35f31d8e8e0318d6ddccff395be68a22
+PKG_SOURCE_URL:=@GNOME/$(PKG_NAME)/2.63
+PKG_HASH:=3931f8ae282f010fa0d6c31841751d7c4bff72f116d13f34a5bf98a96550a4f9
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
@@ -33,7 +33,7 @@ define Package/libsoup
   TITLE:=libsoup
   URL:=http://live.gnome.org/LibSoup
   MAINTAINER:=W. Michael Petullo <mike@flyn.org>
-  DEPENDS:=+glib2 +libxml2 +libgnutls +libsqlite3 $(ICONV_DEPENDS) $(INTL_DEPENDS)
+  DEPENDS:=+glib2 +libxml2 +libgnutls +libsqlite3 +libpsl $(ICONV_DEPENDS) $(INTL_DEPENDS)
 endef
 
 define Build/Configure
index ab4a0eb88ddf639e8dca4f60fd92131cf619386f..e5ca3e59856c1a9335d86892ebf1a8d4c932951a 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=talloc
-PKG_VERSION:=2.1.13
+PKG_VERSION:=2.1.14
 MAJOR_VERSION:=2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.samba.org/ftp/talloc
-PKG_HASH:=84f399dbf0ad97006a2b4953ea99452d033faac15aabfddd4ba61734764c6047
+PKG_HASH:=b185602756a628bac507fa8af8b9df92ace69d27c0add5dab93190ad7c3367ce
 
 PKG_MAINTAINER:=Lucile Quirion <lucile.quirion@savoirfairelinux.com>
 PKG_LICENSE:=LGPL-3.0+
index 3f14101ddc734f5b108a5ac2b808d5f2ba5f55b4..2f94b2f755bd8dcad6ec4b0f5c0bf7ef2ea52c4b 100644 (file)
@@ -8,15 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtorrent
-PKG_VERSION:=0.13.6-git-1
-PKG_RELEASE=$(PKG_SOURCE_VERSION).1
+PKG_VERSION:=0.13.7
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/rakshasa/libtorrent.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=14e793b75dac95c51ad64ff9cd2dc6772b68c625
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=0971c21d0e6b7028bc319e97c82bdb213c17dfc503fc0f89b809e5ed7ce98142
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/rakshasa/libtorrent/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=86b4b1753385aaddf9e59ad94f1292eee5102139eb57520e84d1af2f04693708
 
 PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=1
@@ -28,9 +24,9 @@ define Package/libtorrent
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Rakshasa's BitTorrent library
-  URL:=http://libtorrent.rakshasa.no/
+  URL:=https://rakshasa.github.io/rtorrent/
   DEPENDS:=+libopenssl +libsigcxx +zlib
-  MAINTAINER:=Peter Wagner <tripolar@gmx.at>
+  MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 endef
 
 define Package/libtorrent/description
index a0969465a44d5aad7cbf02ac1b427f57cd8e9d20..8d3ebb71e9489400904a4b197c8e3cc9fa8f998d 100644 (file)
@@ -1,13 +1,3 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -19,7 +19,6 @@ AC_SUBST(LIBTORRENT_INTERFACE_VERSION_NO
- AM_INIT_AUTOMAKE
- AC_CONFIG_HEADERS(config.h)
--AM_PATH_CPPUNIT(1.9.6)
- AC_PROG_CXX
 --- a/scripts/checks.m4
 +++ b/scripts/checks.m4
 @@ -96,7 +96,7 @@ AC_DEFUN([TORRENT_CHECK_KQUEUE], [
index 55d0cb901b71d1244dfe8df3c7e5b0a85fe775f9..277cd94c7242b0c8b552344eea0f080c52708649 100644 (file)
@@ -12,7 +12,7 @@ diff --git a/configure.ac b/configure.ac
 index 65e34872..27e33570 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -69,12 +69,15 @@ AC_ARG_ENABLE(openssl,
+@@ -71,12 +71,15 @@ AC_ARG_ENABLE(openssl,
    [  --disable-openssl       Don't use OpenSSL's SHA1 implementation.],
    [
      if test "$enableval" = "yes"; then
@@ -28,7 +28,7 @@ index 65e34872..27e33570 100644
      else
        AC_DEFINE(USE_NSS_SHA, 1, Using Mozilla's SHA1 implementation.)
      fi
-@@ -85,6 +88,7 @@ AC_ARG_ENABLE(openssl,
+@@ -87,6 +90,7 @@ AC_ARG_ENABLE(openssl,
  
      AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
      AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
old mode 100755 (executable)
new mode 100644 (file)
index 7f032de..83254f4
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libuhttpd
-PKG_VERSION:=2.0.3
-PKG_RELEASE:=1
+PKG_VERSION:=2.1.2
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_SOURCE_URL=https://github.com/zhaojh329/libuhttpd.git
-PKG_MIRROR_HASH:=f20e4081ba1bbea277a3c86f28fa451d54546817a58814fff91470550a5b8e5d
+PKG_MIRROR_HASH:=0f80b643ca4fa652df1a4510384e941e045b1ad8124fa4c8128a56861189b325
 CMAKE_INSTALL:=1
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
@@ -39,6 +39,7 @@ define Package/libuhttpd-nossl
   $(Package/libuhttpd/default)
   TITLE += (NO SSL)
   VARIANT:=nossl
+  CONFLICTS:=libuhttpd-openssl libuhttpd-wolfssl libuhttpd-mbedtls
 endef
 
 define Package/libuhttpd-openssl
@@ -46,6 +47,7 @@ define Package/libuhttpd-openssl
   TITLE += (openssl)
   DEPENDS += +libustream-openssl
   VARIANT:=openssl
+  CONFLICTS:=libuhttpd-wolfssl libuhttpd-mbedtls
 endef
 
 define Package/libuhttpd-wolfssl
@@ -53,6 +55,7 @@ define Package/libuhttpd-wolfssl
   TITLE += (wolfssl)
   DEPENDS += +libustream-wolfssl
   VARIANT:=wolfssl
+  CONFLICTS:=libuhttpd-mbedtls
 endef
 
 define Package/libuhttpd-mbedtls
@@ -67,8 +70,9 @@ ifeq ($(BUILD_VARIANT),nossl)
 endif
 
 define Package/libuhttpd/default/install
-       $(INSTALL_DIR) $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/ $(1)/usr/lib/lua/
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libuhttpd.so* $(1)/usr/lib/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/lua/uhttpd.so* $(1)/usr/lib/lua/
 endef
 
 Package/libuhttpd-nossl/install = $(Package/libuhttpd/default/install)
diff --git a/libs/libuhttpd/patches/001-fix-find-lua.patch b/libs/libuhttpd/patches/001-fix-find-lua.patch
new file mode 100644 (file)
index 0000000..eeb633f
--- /dev/null
@@ -0,0 +1,37 @@
+Index: libuhttpd-2.1.0/src/CMakeLists.txt
+===================================================================
+--- libuhttpd-2.1.0.orig/src/CMakeLists.txt
++++ libuhttpd-2.1.0/src/CMakeLists.txt
+@@ -8,7 +8,7 @@ set(UHTTPD_VERSION_PATCH 0)
+ # Check the third party Libraries
+ find_package(Libubox REQUIRED)
+-find_package(Lua)
++find_package(Lua51)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${LIBUBOX_INCLUDE_DIR})
+@@ -20,9 +20,9 @@ option(UHTTPD_SSL_SUPPORT "SSL support"
+ set(LUA_SUPPORT_DEFAULT "ON")
+-if (NOT LUA_FOUND)
++if (NOT LUA51_FOUND)
+     set(LUA_SUPPORT_DEFAULT "OFF")
+-endif (NOT LUA_FOUND)
++endif (NOT LUA51_FOUND)
+ set(UHTTPD_LUA_SUPPORT_CONFIG 1)
+ option(UHTTPD_LUA_SUPPORT "LUA support" ${LUA_SUPPORT_DEFAULT})
+@@ -34,9 +34,9 @@ else ()
+ endif ()
+ if (UHTTPD_LUA_SUPPORT)
+-    if (NOT LUA_FOUND)
++    if (NOT LUA51_FOUND)
+         message(FATAL_ERROR "Lua was not found on your system")
+-    endif (NOT LUA_FOUND)
++    endif (NOT LUA51_FOUND)
+     include_directories(${LUA_INCLUDE_DIR})
+     list(APPEND EXTRA_LIBS ${LUA_LIBRARY})
index e13a0201c89c3b24d0efbe6ce4bb54de3347da29..a0ff1a17f133f16c68d383cdab10e109d4a5f03e 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xerces-c
 PKG_MAIN_VER:=3.2
-PKG_VERSION:=3.2.0
+PKG_VERSION:=3.2.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@APACHE/xerces/c/3/sources
-PKG_HASH:=35d8db18ebe6db353850903981cd07cca64abeba071602e7e32596714352de08
+PKG_HASH:=02deac7c863027381910a8371f634f8bd14b39232a387efedd27c18f24f989cb
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
 PKG_LICENSE:=Apache-2.0
index 8c0f9c5a2dc642d7eeef055839c757d9ed826b6a..e3d1c276db062a77d8bd29237f70d8dd0c93ef70 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libzdb
 PKG_VERSION:=3.1
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 PKG_LICENSE:=GPL-3.0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -22,14 +22,8 @@ PKG_INSTALL:=1
 PKG_BUILD_DEPENDS:=libzdb/host
 
 include $(INCLUDE_DIR)/package.mk
-
-# Help libzdb find libiconv.so when using uClibc.
-ifneq ($(CONFIG_USE_UCLIBC),)
-TARGET_CPPFLAGS+= \
-       -I$(STAGING_DIR)/usr/lib/libiconv-full/include
-TARGET_LDFLAGS += \
-       -L$(STAGING_DIR)/usr/lib/libiconv-full/lib
-endif
+# libzdb needs to find iconv when linking to libmariadb
+include $(INCLUDE_DIR)/nls.mk
 
 define Package/libzdb
     SECTION:=libs
index 48a88009ce6fb70a87c00640bb3a8a1e5077dc3c..43131a16a4de11a53b8aab472699d4f9f75a0285 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tdb
-PKG_VERSION:=1.3.15
-PKG_RELEASE:=2
+PKG_VERSION:=1.3.16
+PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.samba.org/ftp/tdb/
-PKG_HASH:=b4a1bf3833601bd9f10aff363cb750860aef9ce5b4617989239923192f946728
+PKG_HASH:=6a3fc2616567f23993984ada3cea97d953a27669ffd1bfbbe961f26e0cf96cc5
 
 PKG_INSTALL:=1
 
@@ -23,13 +23,13 @@ include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/kernel.mk
 # for $(VERSION_DIST)
 include $(INCLUDE_DIR)/version.mk
-#include $(INCLUDE_DIR)/version.mk
 
 define Package/tdb
   SUBMENU:=database
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Trivial Database
+  DEPNEDS:=+libattr
   URL:=http://sourceforge.net/projects/tdb/
   MAINTAINER:=Dmitry V. Zimin <pfzim@mail.ru>
 endef
index fd1839181683ab20406c6b1a4a0bbb12f9f51343..fdaff771dddd0feb8e72591e4bc4e5f9938e17e4 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xmlrpc-c
 PKG_VERSION:=1.39.13
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=@SF/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(PKG_VERSION)
@@ -105,9 +105,10 @@ CONFIGURE_ARGS+= \
        --disable-wininet-client \
        --disable-libwww-client \
        --disable-abyss-server \
+       --disable-cgi-server \
        --disable-cplusplus \
        --disable-abyss-threads \
-       --disable-cgi-server
+       --without-libwww-ssl
 
 ifeq ($(BUILD_VARIANT),libxml2)
        CONFIGURE_ARGS += \
index 4aa68b8039d7adab21b974d33de9c9cd8157ccdd..33d77caa31b3b6fd0c30aedfbf1dc50ba57cc2b5 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2018 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dovecot
-PKG_VERSION:=2.3.2
+PKG_VERSION:=2.3.2.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.dovecot.org/releases/2.3
-PKG_HASH:=6e48f0fa60768427f03035b0a3e93d1ae29b972bb2bd9ca998ccc6a0f6dae393
+PKG_HASH:=4a65118508dc7a562e5f90dd7c3f56219fff22367c496f17d77cd0c7e2724e34
 PKG_LICENSE:=LGPL-2.1 MIT BSD-3-Clause Unique
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL COPYING.MIT
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
@@ -31,11 +31,14 @@ PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
+# iconv is needed when compiling with MySQL support. iconv will also be used by
+# dovecot itself.
+include $(INCLUDE_DIR)/nls.mk
 
 define Package/dovecot
   SECTION:=mail
   CATEGORY:=Mail
-  DEPENDS:=+DOVECOT_GSSAPI:krb5-libs +DOVECOT_LDAP:libopenldap +DOVECOT_MYSQL:libmysqlclient +DOVECOT_PGSQL:libpq +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap +DOVECOT_ICU:icu
+  DEPENDS:=+DOVECOT_GSSAPI:krb5-libs +DOVECOT_LDAP:libopenldap +DOVECOT_MYSQL:libmysqlclient +DOVECOT_PGSQL:libpq +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap +DOVECOT_ICU:icu $(ICONV_DEPENDS)
   TITLE:=An IMAP and POP3 daemon
   URL:=https://www.dovecot.org/
   USERID:=dovecot=59:dovecot=59
index 7e6a460509f0636b60c2c331b3d2305a598842bf..4b199597ea8062a22eacbd5701f604dd2dfedaf1 100644 (file)
@@ -6,8 +6,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock
-PKG_VERSION:=3.5.3
-PKG_RELEASE:=1
+PKG_VERSION:=3.5.4
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
 
index 33aebbfee3570704662e9d54955c177e1a7eddfe..b3981039fde3a317eed4ab2aef34a905b2b2580b 100755 (executable)
@@ -32,9 +32,11 @@ start_service()
                 return 0
             fi
         fi
+        local nice="$(uci_get adblock extra adb_nice)"
         procd_open_instance "adblock"
         procd_set_param command "${adb_script}" "${@}"
         procd_set_param pidfile "${adb_pidfile}"
+        procd_set_param nice ${nice:-0}
         procd_set_param stdout 1
         procd_set_param stderr 1
         procd_close_instance
index 69242a197fab785596c3750e5fd182ac8c9aad12..e91f8e9d7a7d49936c30303f949cca34c5111299 100755 (executable)
@@ -10,7 +10,7 @@
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="3.5.3"
+adb_ver="3.5.4-2"
 adb_sysver="unknown"
 adb_enabled=0
 adb_debug=0
@@ -263,7 +263,7 @@ f_envcheck()
     f_log "info" "start adblock processing (${adb_action})"
 }
 
-# create temporay files and directories
+# create temporary files and directories
 #
 f_temp()
 {
@@ -279,7 +279,7 @@ f_temp()
     fi
 }
 
-# remove temporay files and directories
+# remove temporary files and directories
 #
 f_rmtemp()
 {
@@ -360,7 +360,7 @@ f_count()
 #
 f_extconf()
 {
-    local uci_config
+    local uci_config port port_list="53 853 5353"
 
     case "${adb_dns}" in
         dnsmasq)
@@ -395,20 +395,24 @@ f_extconf()
 
     uci_config="firewall"
     if [ ${adb_enabled} -eq 1 ] && [ ${adb_forcedns} -eq 1 ] && \
-       [ -z "$(uci -q get firewall.adblock_dns)" ] && [ $(/etc/init.d/firewall enabled; printf '%u' ${?}) -eq 0 ]
+       [ -z "$(uci -q get firewall.adblock_dns_53)" ] && [ $(/etc/init.d/firewall enabled; printf '%u' ${?}) -eq 0 ]
     then
-       uci -q batch <<-EOF
-               set firewall.adblock_dns="redirect"
-               set firewall.adblock_dns.name="Adblock DNS"
-               set firewall.adblock_dns.src="lan"
-               set firewall.adblock_dns.proto="tcp udp"
-               set firewall.adblock_dns.src_dport="53"
-               set firewall.adblock_dns.dest_port="53"
-               set firewall.adblock_dns.target="DNAT"
-       EOF
-    elif [ -n "$(uci -q get firewall.adblock_dns)" ] && ([ ${adb_enabled} -eq 0 ] || [ ${adb_forcedns} -eq 0 ])
+        for port in ${port_list}
+        do
+            uci_add firewall "redirect" "adblock_dns_${port}"
+            uci_set firewall "adblock_dns_${port}" "name" "Adblock DNS, port ${port}"
+            uci_set firewall "adblock_dns_${port}" "src" "lan"
+            uci_set firewall "adblock_dns_${port}" "proto" "tcp udp"
+            uci_set firewall "adblock_dns_${port}" "src_dport" "${port}"
+            uci_set firewall "adblock_dns_${port}" "dest_port" "${port}"
+            uci_set firewall "adblock_dns_${port}" "target" "DNAT"
+        done
+    elif [ -n "$(uci -q get firewall.adblock_dns_53)" ] && ([ ${adb_enabled} -eq 0 ] || [ ${adb_forcedns} -eq 0 ])
     then
-        uci -q delete firewall.adblock_dns
+        for port in ${port_list}
+        do
+            uci_remove firewall "adblock_dns_${port}"
+        done
     fi
     f_uci "${uci_config}"
 }
diff --git a/net/bonding/Makefile b/net/bonding/Makefile
new file mode 100644 (file)
index 0000000..c808666
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2018 TDT AG <development@tdt.de>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See https://www.gnu.org/licenses/gpl-2.0.txt for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=proto-bonding
+PKG_VERSION:=2018-06-11
+PKG_RELEASE:=1
+
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=
+
+PKG_MAINTAINER:=Helge Mader <ma@dev.tdt.de>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/proto-bonding
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Link Aggregation (Channel Bonding) proto handler
+  DEPENDS:=+kmod-bonding
+endef
+
+define Package/proto-bonding/description
+  This package contains the channel bonding proto handler for netifd
+endef
+
+define Build/Compile
+endef
+
+define Package/proto-bonding/install
+       $(INSTALL_DIR) $(1)/lib/netifd/proto/
+       $(INSTALL_BIN) ./files/lib/netifd/proto/bonding.sh \
+               $(1)/lib/netifd/proto/
+endef
+
+$(eval $(call BuildPackage,proto-bonding))
diff --git a/net/bonding/files/lib/netifd/proto/bonding.sh b/net/bonding/files/lib/netifd/proto/bonding.sh
new file mode 100755 (executable)
index 0000000..b624738
--- /dev/null
@@ -0,0 +1,211 @@
+#!/bin/sh
+#
+# Copyright (C) 2018 TDT AG <development@tdt.de>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See https://www.gnu.org/licenses/gpl-2.0.txt for more information.
+#
+
+. /lib/functions.sh
+. ../netifd-proto.sh
+
+init_proto "$@"
+
+INCLUDE_ONLY=1
+
+BONDING_MASTERS="/sys/class/net/bonding_masters"
+
+set_driver_values() {
+       local varname
+
+       for varname in "$@"; do
+               local value
+               json_get_var value "$varname"
+
+               [ -n "$value" ] && echo "$value" > /sys/class/net/"$link"/bonding/"$varname"
+       done
+}
+
+proto_bonding_init_config() {
+       no_device=1
+       available=1
+
+       proto_config_add_string "ifname"
+
+       proto_config_add_string "ipaddr"
+       proto_config_add_string "netmask"
+
+       proto_config_add_string "bonding_policy"
+       proto_config_add_string "link_monitoring"
+       proto_config_add_string "slaves"
+       proto_config_add_string "all_slaves_active"
+
+       proto_config_add_string "min_links"
+       proto_config_add_string "ad_actor_sys_prio"
+       proto_config_add_string "ad_actor_system"
+       proto_config_add_string "ad_select"
+       proto_config_add_string "lacp_rate"
+       proto_config_add_string "packets_per_slave"
+       proto_config_add_string "xmit_hash_policy"
+       proto_config_add_string "primary"
+       proto_config_add_string "primary_reselect"
+       proto_config_add_string "lp_interval"
+       proto_config_add_string "tlb_dynamic_lb"
+       proto_config_add_string "resend_igmp"
+       proto_config_add_string "fail_over_mac"
+       proto_config_add_string "num_grat_arp__num_unsol_na"
+
+       proto_config_add_string "arp_interval"
+       proto_config_add_string "arp_ip_target"
+       proto_config_add_string "arp_all_targets"
+       proto_config_add_string "arp_validate"
+
+       proto_config_add_string "miimon"
+       proto_config_add_string "downdelay"
+       proto_config_add_string "updelay"
+       proto_config_add_string "use_carrier"
+}
+
+proto_bonding_setup() {
+       local cfg="$1"
+       local link="bonding-$cfg"
+
+       # Check for loaded kernel bonding driver (/sys/class/net/bonding_masters exists)
+       [ -f "$BONDING_MASTERS" ] || {
+               echo "$cfg" "setup: bonding_masters does not exist in sysfs (kernel module not loaded?)"
+               proto_notify_error "$cfg" "setup: bonding_masters does not exist in sysfs (kernel module not loaded?)"
+               proto_block_restart "$cfg"
+               return
+       }
+
+       # Add bonding interface to system
+       echo "+$link" > "$BONDING_MASTERS"
+
+       # Set bonding policy (with corresponding parameters)
+       local bonding_policy
+       json_get_vars bonding_policy
+
+       case "$bonding_policy" in
+
+               802.3ad)
+                       echo "$bonding_policy" > /sys/class/net/"$link"/bonding/mode
+                       set_driver_values min_links ad_actor_sys_prio ad_actor_system ad_select lacp_rate
+               ;;
+
+               balance-rr)
+                       echo "$bonding_policy" > /sys/class/net/"$link"/bonding/mode
+                       set_driver_values packets_per_slave xmit_hash_policy
+               ;;
+
+               balance-tlb)
+                       echo "$bonding_policy" > /sys/class/net/"$link"/bonding/mode
+                       set_driver_values primary primary_reselect lp_interval tlb_dynamic_lb resend_igmp xmit_hash_policy
+               ;;
+
+               balance-alb)
+                       echo "$bonding_policy" > /sys/class/net/"$link"/bonding/mode
+                       set_driver_values primary primary_reselect lp_interval tlb_dynamic_lb resend_igmp xmit_hash_policy
+               ;;
+
+               active-backup)
+                       echo "$bonding_policy" > /sys/class/net/"$link"/bonding/mode
+                       set_driver_values primary primary_reselect fail_over_mac num_grat_arp__num_unsol_na xmit_hash_policy
+               ;;
+        esac
+
+       # Set link monitoring (with corresponding parameters)
+       local link_monitoring
+       json_get_vars link_monitoring
+
+       case "$link_monitoring" in
+
+               arp)
+                       local arp_interval arp_ip_target arp_all_targets arp_validate
+                       json_get_vars arp_interval arp_ip_target arp_all_targets arp_validate
+
+                       [ -n "$arp_interval" -a "$arp_interval" != 0 ] && echo "$arp_interval" > /sys/class/net/"$link"/bonding/arp_interval
+
+                       IFS=' '
+                       for target in $arp_ip_target; do
+                               echo "+$target" > /sys/class/net/"$link"/bonding/arp_ip_target
+                       done
+
+                       [ -n "$arp_all_targets" ] && echo "$arp_all_targets" > /sys/class/net/"$link"/bonding/arp_all_targets
+                       [ -n "$arp_validate" ] && echo "$arp_validate" > /sys/class/net/"$link"/bonding/arp_validate
+               ;;
+
+               mii)
+                       local miimon downdelay updelay use_carrier
+                       json_get_vars miimon downdelay updelay use_carrier
+
+                       [ -n "$miimon" -a "$miimon" != 0 ] && echo "$miimon" > /sys/class/net/"$link"/bonding/miimon
+                       [ -n "$downdelay" ] && echo "$downdelay" > /sys/class/net/"$link"/bonding/downdelay
+                       [ -n "$updelay" ] && echo "$updelay" > /sys/class/net/"$link"/bonding/updelay
+                       [ -n "$use_carrier" ] && echo "$use_carrier" > /sys/class/net/"$link"/bonding/use_carrier
+               ;;
+       esac
+
+       # Add slaves to bonding interface
+       local slaves
+       json_get_vars slaves
+
+       for slave in $slaves; do
+
+               if [ "$(cat /proc/net/dev |grep "$slave")" == "" ]; then
+                       echo "$cfg" "ERROR IN CONFIGURATION - $slave: No such device"
+                       proto_notify_error "$cfg" "ERROR IN CONFIGURATION - $slave: No such device"
+                       proto_block_restart "$cfg"
+                       return
+               fi
+
+               ifconfig "$slave" down
+
+               sleep 1
+
+               echo "+$slave" > /sys/class/net/"$link"/bonding/slaves
+
+               ifconfig "$slave" up
+       done
+
+       [ -n "$all_slaves_active" ] && echo "$all_slaves_active" > /sys/class/net/"$link"/bonding/all_slaves_active
+
+       local ipaddr netmask
+       json_get_vars ipaddr netmask
+
+       # ATTENTION
+       #All json vars have to be read before the line below, as the
+       # json object will be overwritten by proto_init_update
+       # ATTENTION
+
+       proto_init_update "$link" 1
+
+       # For static configuration we _MUST_ have an IP address
+       [ -z "$ipaddr" ] && {
+               echo "$cfg" "INVALID LOCAL ADDRESS"
+               proto_notify_error "$cfg" "INVALID_LOCAL_ADDRESS"
+               proto_block_restart "$cfg"
+               return
+       }
+
+       proto_add_ipv4_address "$ipaddr" "$netmask"
+
+       proto_send_update "$cfg"
+}
+
+proto_bonding_teardown() {
+       local cfg="$1"
+       local link="bonding-$cfg"
+
+       # Check for loaded kernel bonding driver (/sys/class/net/bonding_masters exists)
+       [ -f "$BONDING_MASTERS" ] || {
+               echo "$cfg" "teardown: bonding_masters does not exist in sysfs (kernel module not loaded?)"
+               proto_notify_error "$cfg" "teardown: bonding_masters does not exist in sysfs (kernel module not loaded?)"
+               proto_block_restart "$cfg"
+               return
+       }
+
+       echo "-$link" > /sys/class/net/bonding_masters
+       logger "bonding_teardown($1): $2"
+}
+
+add_protocol bonding
index 53b5787ef64b55995e25af89b4705e35ed798c00..b54649198a449eaf22028c2e774f3e8c9dc2c402 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=clamav
-PKG_VERSION:=0.100.0
+PKG_VERSION:=0.100.1
 PKG_RELEASE:=1
 
 PKG_LICENSE:=GPL-2.0
@@ -17,7 +17,7 @@ PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr> \
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.clamav.net/downloads/production/
-PKG_HASH:=c5c5edaf75a3c53ac0f271148fd6447310bce53f448ec7e6205124a25918f65c
+PKG_HASH:=84e026655152247de7237184ee13003701c40be030dd68e0316111049f58a59f
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
index a987fceb1d0720191f4f2bd2d0f15746fa4b9f98..24b3ce9e2774411b499c596165c47089c835e22b 100644 (file)
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=ipsec-tools
 PKG_VERSION:=0.8.2
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 PKG_MAINTAINER:=Noah Meyerhans <frodo@morgul.net>, \
        Vitaly Protsko <villy@sft.ru>
 PKG_LICENSE := BSD-3-Clause
diff --git a/net/ipsec-tools/patches/012-fix-implicit-int.patch b/net/ipsec-tools/patches/012-fix-implicit-int.patch
new file mode 100644 (file)
index 0000000..1fa7cb2
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/racoon/isakmp_xauth.c
++++ b/src/racoon/isakmp_xauth.c
+@@ -376,6 +376,7 @@ xauth_reply(iph1, port, id, res)
+       struct ph1handle *iph1;
+       int port;
+       int id;
++      int res;
+ {
+       struct xauth_state *xst = &iph1->mode_cfg->xauth;
+       char *usr = xst->authdata.generic.usr;
+
diff --git a/net/ipsec-tools/patches/015-openssl-1.1.patch b/net/ipsec-tools/patches/015-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..5d55c59
--- /dev/null
@@ -0,0 +1,1096 @@
+From 071fec7181255b9234add44865a435dfdefee520 Mon Sep 17 00:00:00 2001
+In-Reply-To: <20180528120513.560-1-cote2004-github@yahoo.com>
+References: <20180528120513.560-1-cote2004-github@yahoo.com>
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Wed, 30 May 2018 15:42:20 -0300
+Subject: [PATCH v2 1/1] ipsec-tools: add openssl 1.1 support
+To: equeiroz@troianet.com.br
+
+This patch updates the calls to openssl 1.1 API, and adds a
+compatibility layer so it compiles with (at least) openssl 1.0.2, I
+haven't tested it with lower versions, but all that's needed is to edit
+the openssl_compat.* files and add the missing functions there--they're
+usually trivial.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ src/racoon/Makefile.am      |  10 +--
+ src/racoon/algorithm.c      |   6 +-
+ src/racoon/cfparse.y        |   2 +-
+ src/racoon/crypto_openssl.c | 197 +++++++++++++++++++++-------------------
+ src/racoon/crypto_openssl.h |   2 +-
+ src/racoon/eaytest.c        |   7 +-
+ src/racoon/ipsec_doi.c      |   2 +-
+ src/racoon/openssl_compat.c | 213 ++++++++++++++++++++++++++++++++++++++++++++
+ src/racoon/openssl_compat.h |  45 ++++++++++
+ src/racoon/plainrsa-gen.c   |  41 +++++----
+ src/racoon/prsa_par.y       |  28 ++++--
+ src/racoon/rsalist.c        |   5 +-
+ 12 files changed, 431 insertions(+), 127 deletions(-)
+ create mode 100644 src/racoon/openssl_compat.c
+ create mode 100644 src/racoon/openssl_compat.h
+
+diff --git a/src/racoon/Makefile.am b/src/racoon/Makefile.am
+index dbaded9..4c585f3 100644
+--- a/src/racoon/Makefile.am
++++ b/src/racoon/Makefile.am
+@@ -4,7 +4,7 @@ sbin_PROGRAMS = racoon racoonctl plainrsa-gen
+ noinst_PROGRAMS = eaytest
+ include_racoon_HEADERS = racoonctl.h var.h vmbuf.h misc.h gcmalloc.h admin.h \
+       schedule.h sockmisc.h isakmp_var.h isakmp.h isakmp_xauth.h \
+-      isakmp_cfg.h isakmp_unity.h ipsec_doi.h evt.h
++      isakmp_cfg.h isakmp_unity.h ipsec_doi.h evt.h openssl_compat.h
+ lib_LTLIBRARIES = libracoon.la
+ adminsockdir=${localstatedir}/racoon
+@@ -32,7 +32,7 @@ racoon_SOURCES = \
+       gssapi.c dnssec.c getcertsbyname.c privsep.c \
+       pfkey.c admin.c evt.c ipsec_doi.c oakley.c grabmyaddr.c vendorid.c \
+       policy.c localconf.c remoteconf.c crypto_openssl.c algorithm.c \
+-      proposal.c sainfo.c strnames.c \
++      openssl_compat.c proposal.c sainfo.c strnames.c \
+       plog.c logger.c schedule.c str2val.c \
+       safefile.c backupsa.c genlist.c rsalist.c \
+       cftoken.l cfparse.y prsa_tok.l prsa_par.y 
+@@ -51,12 +51,12 @@ libracoon_la_SOURCES = kmpstat.c vmbuf.c sockmisc.c misc.c
+ libracoon_la_CFLAGS = -DNOUSE_PRIVSEP $(AM_CFLAGS)
+ plainrsa_gen_SOURCES = plainrsa-gen.c plog.c \
+-      crypto_openssl.c logger.c 
++      crypto_openssl.c logger.c openssl_compat.c
+ EXTRA_plainrsa_gen_SOURCES = $(MISSING_ALGOS)
+ plainrsa_gen_LDADD = $(CRYPTOBJS) vmbuf.o misc.o
+ plainrsa_gen_DEPENDENCIES = $(CRYPTOBJS) vmbuf.o misc.o
+-eaytest_SOURCES = eaytest.c plog.c logger.c
++eaytest_SOURCES = eaytest.c plog.c logger.c openssl_compat.c
+ EXTRA_eaytest_SOURCES = missing/crypto/sha2/sha2.c
+ eaytest_LDADD =       crypto_openssl_test.o vmbuf.o str2val.o misc_noplog.o \
+       $(CRYPTOBJS)
+@@ -75,7 +75,7 @@ noinst_HEADERS = \
+       debugrm.h         isakmp.h      misc.h          sainfo.h \
+       dhgroup.h         isakmp_agg.h  netdb_dnssec.h  schedule.h \
+       isakmp_cfg.h      isakmp_xauth.h isakmp_unity.h isakmp_frag.h \
+-      throttle.h        privsep.h \
++      throttle.h        privsep.h     openssl_compat.h \
+       cfparse_proto.h   cftoken_proto.h genlist.h     rsalist.h \
+       missing/crypto/sha2/sha2.h missing/crypto/rijndael/rijndael_local.h \
+       missing/crypto/rijndael/rijndael-api-fst.h \
+diff --git a/src/racoon/algorithm.c b/src/racoon/algorithm.c
+index 3fd50f6..66c874b 100644
+--- a/src/racoon/algorithm.c
++++ b/src/racoon/algorithm.c
+@@ -128,7 +128,7 @@ static struct enc_algorithm oakley_encdef[] = {
+ { "aes",      algtype_aes,    OAKLEY_ATTR_ENC_ALG_AES,        16,
+               eay_aes_encrypt,        eay_aes_decrypt,
+               eay_aes_weakkey,        eay_aes_keylen, },
+-#ifdef HAVE_OPENSSL_CAMELLIA_H
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ { "camellia", algtype_camellia,       OAKLEY_ATTR_ENC_ALG_CAMELLIA,   16,
+               eay_camellia_encrypt,   eay_camellia_decrypt,
+               eay_camellia_weakkey,   eay_camellia_keylen, },
+@@ -168,7 +168,7 @@ static struct enc_algorithm ipsec_encdef[] = {
+ { "twofish",  algtype_twofish,        IPSECDOI_ESP_TWOFISH,           16,
+               NULL,                   NULL,
+               NULL,                   eay_twofish_keylen, },
+-#ifdef HAVE_OPENSSL_IDEA_H
++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA)
+ { "3idea",    algtype_3idea,          IPSECDOI_ESP_3IDEA,             8,
+               NULL,                   NULL,
+               NULL,                   NULL, },
+@@ -179,7 +179,7 @@ static struct enc_algorithm ipsec_encdef[] = {
+ { "rc4",      algtype_rc4,            IPSECDOI_ESP_RC4,               8,
+               NULL,                   NULL,
+               NULL,                   NULL, },
+-#ifdef HAVE_OPENSSL_CAMELLIA_H
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ { "camellia", algtype_camellia,       IPSECDOI_ESP_CAMELLIA,          16,
+               NULL,                   NULL,
+               NULL,                   eay_camellia_keylen, },
+diff --git a/src/racoon/cfparse.y b/src/racoon/cfparse.y
+index 0d9bd67..8415752 100644
+--- a/src/racoon/cfparse.y
++++ b/src/racoon/cfparse.y
+@@ -2564,7 +2564,7 @@ set_isakmp_proposal(rmconf)
+               plog(LLV_DEBUG2, LOCATION, NULL,
+                       "encklen=%d\n", s->encklen);
+-              memset(types, 0, ARRAYLEN(types));
++              memset(types, 0, sizeof types);
+               types[algclass_isakmp_enc] = s->algclass[algclass_isakmp_enc];
+               types[algclass_isakmp_hash] = s->algclass[algclass_isakmp_hash];
+               types[algclass_isakmp_dh] = s->algclass[algclass_isakmp_dh];
+diff --git a/src/racoon/crypto_openssl.c b/src/racoon/crypto_openssl.c
+index 55b076a..8fb358f 100644
+--- a/src/racoon/crypto_openssl.c
++++ b/src/racoon/crypto_openssl.c
+@@ -90,6 +90,7 @@
+ #endif
+ #endif
+ #include "plog.h"
++#include "openssl_compat.h"
+ #define USE_NEW_DES_API
+@@ -316,9 +317,12 @@ eay_cmp_asn1dn(n1, n2)
+                       i = idx+1;
+                       goto end;
+               }
+-              if ((ea->value->length == 1 && ea->value->data[0] == '*') ||
+-                  (eb->value->length == 1 && eb->value->data[0] == '*')) {
+-                      if (OBJ_cmp(ea->object,eb->object)) {
++              ASN1_STRING *sa = X509_NAME_ENTRY_get_data(ea);
++              ASN1_STRING *sb = X509_NAME_ENTRY_get_data(eb);
++              if ((ASN1_STRING_length(sa) == 1 && ASN1_STRING_get0_data(sa)[0] == '*') ||
++                  (ASN1_STRING_length(sb) == 1 && ASN1_STRING_get0_data(sb)[0] == '*')) {
++                      if (OBJ_cmp(X509_NAME_ENTRY_get_object(ea),
++                                  X509_NAME_ENTRY_get_object(eb))) {
+                               i = idx+1;
+                               goto end;
+                       }
+@@ -430,7 +434,7 @@ cb_check_cert_local(ok, ctx)
+       if (!ok) {
+               X509_NAME_oneline(
+-                              X509_get_subject_name(ctx->current_cert),
++                              X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)),
+                               buf,
+                               256);
+               /*
+@@ -438,7 +442,8 @@ cb_check_cert_local(ok, ctx)
+                * ok if they are self signed. But we should still warn
+                * the user.
+                */
+-              switch (ctx->error) {
++              int ctx_error = X509_STORE_CTX_get_error(ctx);
++              switch (ctx_error) {
+               case X509_V_ERR_CERT_HAS_EXPIRED:
+               case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
+               case X509_V_ERR_INVALID_CA:
+@@ -453,9 +458,9 @@ cb_check_cert_local(ok, ctx)
+               }
+               plog(log_tag, LOCATION, NULL,
+                       "%s(%d) at depth:%d SubjectName:%s\n",
+-                      X509_verify_cert_error_string(ctx->error),
+-                      ctx->error,
+-                      ctx->error_depth,
++                      X509_verify_cert_error_string(ctx_error),
++                      ctx_error,
++                      X509_STORE_CTX_get_error_depth(ctx),
+                       buf);
+       }
+       ERR_clear_error();
+@@ -477,10 +482,11 @@ cb_check_cert_remote(ok, ctx)
+       if (!ok) {
+               X509_NAME_oneline(
+-                              X509_get_subject_name(ctx->current_cert),
++                              X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)),
+                               buf,
+                               256);
+-              switch (ctx->error) {
++              int ctx_error=X509_STORE_CTX_get_error(ctx);
++              switch (ctx_error) {
+               case X509_V_ERR_UNABLE_TO_GET_CRL:
+                       ok = 1;
+                       log_tag = LLV_WARNING;
+@@ -490,9 +496,9 @@ cb_check_cert_remote(ok, ctx)
+               }
+               plog(log_tag, LOCATION, NULL,
+                       "%s(%d) at depth:%d SubjectName:%s\n",
+-                      X509_verify_cert_error_string(ctx->error),
+-                      ctx->error,
+-                      ctx->error_depth,
++                      X509_verify_cert_error_string(ctx_error),
++                      ctx_error,
++                      X509_STORE_CTX_get_error_depth(ctx),
+                       buf);
+       }
+       ERR_clear_error();
+@@ -516,14 +522,15 @@ eay_get_x509asn1subjectname(cert)
+       if (x509 == NULL)
+               goto error;
++      X509_NAME *subject_name = X509_get_subject_name(x509);
+       /* get the length of the name */
+-      len = i2d_X509_NAME(x509->cert_info->subject, NULL);
++      len = i2d_X509_NAME(subject_name, NULL);
+       name = vmalloc(len);
+       if (!name)
+               goto error;
+       /* get the name */
+       bp = (unsigned char *) name->v;
+-      len = i2d_X509_NAME(x509->cert_info->subject, &bp);
++      len = i2d_X509_NAME(subject_name, &bp);
+       X509_free(x509);
+@@ -661,15 +668,16 @@ eay_get_x509asn1issuername(cert)
+       if (x509 == NULL)
+               goto error;
++      X509_NAME *issuer_name = X509_get_issuer_name(x509);
+       /* get the length of the name */
+-      len = i2d_X509_NAME(x509->cert_info->issuer, NULL);
++      len = i2d_X509_NAME(issuer_name, NULL);
+       name = vmalloc(len);
+       if (name == NULL)
+               goto error;
+       /* get the name */
+       bp = (unsigned char *) name->v;
+-      len = i2d_X509_NAME(x509->cert_info->issuer, &bp);
++      len = i2d_X509_NAME(issuer_name, &bp);
+       X509_free(x509);
+@@ -850,7 +858,7 @@ eay_check_x509sign(source, sig, cert)
+               return -1;
+       }
+-      res = eay_rsa_verify(source, sig, evp->pkey.rsa);
++      res = eay_rsa_verify(source, sig, EVP_PKEY_get0_RSA(evp));
+       EVP_PKEY_free(evp);
+       X509_free(x509);
+@@ -992,7 +1000,7 @@ eay_get_x509sign(src, privkey)
+       if (evp == NULL)
+               return NULL;
+-      sig = eay_rsa_sign(src, evp->pkey.rsa);
++      sig = eay_rsa_sign(src, EVP_PKEY_get0_RSA(evp));
+       EVP_PKEY_free(evp);
+@@ -1079,7 +1087,11 @@ eay_strerror()
+       int line, flags;
+       unsigned long es;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++      es = 0; /* even when allowed by OPENSSL_API_COMPAT, it is defined as 0 */
++#else
+       es = CRYPTO_thread_id();
++#endif
+       while ((l = ERR_get_error_line_data(&file, &line, &data, &flags)) != 0){
+               n = snprintf(ebuf + len, sizeof(ebuf) - len,
+@@ -1100,7 +1112,7 @@ vchar_t *
+ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc)
+ {
+       vchar_t *res;
+-      EVP_CIPHER_CTX ctx;
++      EVP_CIPHER_CTX *ctx;
+       if (!e)
+               return NULL;
+@@ -1111,7 +1123,7 @@ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc
+       if ((res = vmalloc(data->l)) == NULL)
+               return NULL;
+-      EVP_CIPHER_CTX_init(&ctx);
++      ctx = EVP_CIPHER_CTX_new();
+       switch(EVP_CIPHER_nid(e)){
+       case NID_bf_cbc:
+@@ -1125,54 +1137,41 @@ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc
+               /* XXX: can we do that also for algos with a fixed key size ?
+                */
+               /* init context without key/iv
+-         */
+-        if (!EVP_CipherInit(&ctx, e, NULL, NULL, enc))
+-        {
+-            OpenSSL_BUG();
+-            vfree(res);
+-            return NULL;
+-        }
++                 */
++              if (!EVP_CipherInit(ctx, e, NULL, NULL, enc))
++                      goto out;
+               
+-        /* update key size
+-         */
+-        if (!EVP_CIPHER_CTX_set_key_length(&ctx, key->l))
+-        {
+-            OpenSSL_BUG();
+-            vfree(res);
+-            return NULL;
+-        }
+-
+-        /* finalize context init with desired key size
+-         */
+-        if (!EVP_CipherInit(&ctx, NULL, (u_char *) key->v,
++              /* update key size
++               */
++              if (!EVP_CIPHER_CTX_set_key_length(ctx, key->l))
++                      goto out;
++
++              /* finalize context init with desired key size
++               */
++              if (!EVP_CipherInit(ctx, NULL, (u_char *) key->v,
+                                                       (u_char *) iv->v, enc))
+-        {
+-            OpenSSL_BUG();
+-            vfree(res);
+-            return NULL;
+-              }
++                      goto out;
+               break;
+       default:
+-              if (!EVP_CipherInit(&ctx, e, (u_char *) key->v, 
+-                                                      (u_char *) iv->v, enc)) {
+-                      OpenSSL_BUG();
+-                      vfree(res);
+-                      return NULL;
+-              }
++              if (!EVP_CipherInit(ctx, e, (u_char *) key->v,
++                                                      (u_char *) iv->v, enc))
++                      goto out;
+       }
+       /* disable openssl padding */
+-      EVP_CIPHER_CTX_set_padding(&ctx, 0); 
++      EVP_CIPHER_CTX_set_padding(ctx, 0);
+       
+-      if (!EVP_Cipher(&ctx, (u_char *) res->v, (u_char *) data->v, data->l)) {
+-              OpenSSL_BUG();
+-              vfree(res);
+-              return NULL;
+-      }
++      if (!EVP_Cipher(ctx, (u_char *) res->v, (u_char *) data->v, data->l))
++              goto out;
+-      EVP_CIPHER_CTX_cleanup(&ctx);
++      EVP_CIPHER_CTX_free(ctx);
+       return res;
++out:
++      EVP_CIPHER_CTX_free(ctx);
++      OpenSSL_BUG();
++      vfree(res);
++      return NULL;
+ }
+ int
+@@ -1230,7 +1229,7 @@ eay_des_keylen(len)
+       return evp_keylen(len, EVP_des_cbc());
+ }
+-#ifdef HAVE_OPENSSL_IDEA_H
++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA)
+ /*
+  * IDEA-CBC
+  */
+@@ -1587,7 +1586,7 @@ eay_aes_keylen(len)
+       return len;
+ }
+-#if defined(HAVE_OPENSSL_CAMELLIA_H)
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ /*
+  * CAMELLIA-CBC
+  */
+@@ -1680,9 +1679,9 @@ eay_hmac_init(key, md)
+       vchar_t *key;
+       const EVP_MD *md;
+ {
+-      HMAC_CTX *c = racoon_malloc(sizeof(*c));
++      HMAC_CTX *c = HMAC_CTX_new();
+-      HMAC_Init(c, key->v, key->l, md);
++      HMAC_Init_ex(c, key->v, key->l, md, NULL);
+       return (caddr_t)c;
+ }
+@@ -1761,8 +1760,7 @@ eay_hmacsha2_512_final(c)
+       HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+       res->l = l;
+-      HMAC_cleanup((HMAC_CTX *)c);
+-      (void)racoon_free(c);
++      HMAC_CTX_free((HMAC_CTX *)c);
+       if (SHA512_DIGEST_LENGTH != res->l) {
+               plog(LLV_ERROR, LOCATION, NULL,
+@@ -1811,8 +1809,7 @@ eay_hmacsha2_384_final(c)
+       HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+       res->l = l;
+-      HMAC_cleanup((HMAC_CTX *)c);
+-      (void)racoon_free(c);
++      HMAC_CTX_free((HMAC_CTX *)c);
+       if (SHA384_DIGEST_LENGTH != res->l) {
+               plog(LLV_ERROR, LOCATION, NULL,
+@@ -1861,8 +1858,7 @@ eay_hmacsha2_256_final(c)
+       HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+       res->l = l;
+-      HMAC_cleanup((HMAC_CTX *)c);
+-      (void)racoon_free(c);
++      HMAC_CTX_free((HMAC_CTX *)c);
+       if (SHA256_DIGEST_LENGTH != res->l) {
+               plog(LLV_ERROR, LOCATION, NULL,
+@@ -1912,8 +1908,7 @@ eay_hmacsha1_final(c)
+       HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+       res->l = l;
+-      HMAC_cleanup((HMAC_CTX *)c);
+-      (void)racoon_free(c);
++      HMAC_CTX_free((HMAC_CTX *)c);
+       if (SHA_DIGEST_LENGTH != res->l) {
+               plog(LLV_ERROR, LOCATION, NULL,
+@@ -1962,8 +1957,7 @@ eay_hmacmd5_final(c)
+       HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l);
+       res->l = l;
+-      HMAC_cleanup((HMAC_CTX *)c);
+-      (void)racoon_free(c);
++      HMAC_CTX_free((HMAC_CTX *)c);
+       if (MD5_DIGEST_LENGTH != res->l) {
+               plog(LLV_ERROR, LOCATION, NULL,
+@@ -2266,6 +2260,7 @@ eay_dh_generate(prime, g, publen, pub, priv)
+       u_int32_t g;
+ {
+       BIGNUM *p = NULL;
++      BIGNUM *BNg = NULL;
+       DH *dh = NULL;
+       int error = -1;
+@@ -2276,25 +2271,28 @@ eay_dh_generate(prime, g, publen, pub, priv)
+       if ((dh = DH_new()) == NULL)
+               goto end;
+-      dh->p = p;
+-      p = NULL;       /* p is now part of dh structure */
+-      dh->g = NULL;
+-      if ((dh->g = BN_new()) == NULL)
++      if ((BNg = BN_new()) == NULL)
+               goto end;
+-      if (!BN_set_word(dh->g, g))
++      if (!BN_set_word(BNg, g))
+               goto end;
++      if (! DH_set0_pqg(dh, p, NULL, BNg))
++              goto end;
++      BNg = NULL;
++      p = NULL;       /* p is now part of dh structure */
+       if (publen != 0)
+-              dh->length = publen;
++              DH_set_length(dh, publen);
+       /* generate public and private number */
+       if (!DH_generate_key(dh))
+               goto end;
+       /* copy results to buffers */
+-      if (eay_bn2v(pub, dh->pub_key) < 0)
++      BIGNUM *pub_key, *priv_key;
++      DH_get0_key(dh, (const BIGNUM**) &pub_key, (const BIGNUM**) &priv_key);
++      if (eay_bn2v(pub, pub_key) < 0)
+               goto end;
+-      if (eay_bn2v(priv, dh->priv_key) < 0) {
++      if (eay_bn2v(priv, priv_key) < 0) {
+               vfree(*pub);
+               goto end;
+       }
+@@ -2306,6 +2304,8 @@ end:
+               DH_free(dh);
+       if (p != 0)
+               BN_free(p);
++      if (BNg != 0)
++              BN_free(BNg);
+       return(error);
+ }
+@@ -2319,6 +2319,10 @@ eay_dh_compute(prime, g, pub, priv, pub2, key)
+       int l;
+       unsigned char *v = NULL;
+       int error = -1;
++      BIGNUM *p = BN_new();
++      BIGNUM *BNg = BN_new();
++      BIGNUM *pub_key = BN_new();
++      BIGNUM *priv_key = BN_new();
+       /* make public number to compute */
+       if (eay_v2bn(&dh_pub, pub2) < 0)
+@@ -2327,19 +2331,21 @@ eay_dh_compute(prime, g, pub, priv, pub2, key)
+       /* make DH structure */
+       if ((dh = DH_new()) == NULL)
+               goto end;
+-      if (eay_v2bn(&dh->p, prime) < 0)
++      if (p == NULL || BNg == NULL || pub_key == NULL || priv_key == NULL)
+               goto end;
+-      if (eay_v2bn(&dh->pub_key, pub) < 0)
++
++      if (eay_v2bn(&p, prime) < 0)
+               goto end;
+-      if (eay_v2bn(&dh->priv_key, priv) < 0)
++      if (eay_v2bn(&pub_key, pub) < 0)
+               goto end;
+-      dh->length = pub2->l * 8;
+-
+-      dh->g = NULL;
+-      if ((dh->g = BN_new()) == NULL)
++      if (eay_v2bn(&priv_key, priv) < 0)
+               goto end;
+-      if (!BN_set_word(dh->g, g))
++      if (!BN_set_word(BNg, g))
+               goto end;
++      DH_set0_key(dh, pub_key, priv_key);
++      DH_set_length(dh, pub2->l * 8);
++      DH_set0_pqg(dh, p, NULL, BNg);
++      pub_key = priv_key = p = BNg = NULL;
+       if ((v = racoon_calloc(prime->l, sizeof(u_char))) == NULL)
+               goto end;
+@@ -2350,6 +2356,14 @@ eay_dh_compute(prime, g, pub, priv, pub2, key)
+       error = 0;
+ end:
++      if (p != NULL)
++              BN_free(p);
++      if (BNg != NULL)
++              BN_free(BNg);
++      if (pub_key != NULL)
++              BN_free(pub_key);
++      if (priv_key != NULL)
++              BN_free(priv_key);
+       if (dh_pub != NULL)
+               BN_free(dh_pub);
+       if (dh != NULL)
+@@ -2400,12 +2414,14 @@ eay_bn2v(var, bn)
+ void
+ eay_init()
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       OpenSSL_add_all_algorithms();
+       ERR_load_crypto_strings();
+ #ifdef HAVE_OPENSSL_ENGINE_H
+       ENGINE_load_builtin_engines();
+       ENGINE_register_all_complete();
+ #endif
++#endif
+ }
+ vchar_t *
+@@ -2504,8 +2520,7 @@ binbuf_pubkey2rsa(vchar_t *binbuf)
+               goto out;
+       }
+       
+-      rsa_pub->n = mod;
+-      rsa_pub->e = exp;
++      RSA_set0_key(rsa_pub, mod, exp, NULL);
+ out:
+       return rsa_pub;
+@@ -2582,5 +2597,5 @@ eay_random()
+ const char *
+ eay_version()
+ {
+-      return SSLeay_version(SSLEAY_VERSION);
++      return OpenSSL_version(OPENSSL_VERSION);
+ }
+diff --git a/src/racoon/crypto_openssl.h b/src/racoon/crypto_openssl.h
+index 66fac73..ee5b765 100644
+--- a/src/racoon/crypto_openssl.h
++++ b/src/racoon/crypto_openssl.h
+@@ -124,7 +124,7 @@ extern vchar_t *eay_aes_decrypt __P((vchar_t *, vchar_t *, vchar_t *));
+ extern int eay_aes_weakkey __P((vchar_t *));
+ extern int eay_aes_keylen __P((int));
+-#if defined(HAVE_OPENSSL_CAMELLIA_H)
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+ /* Camellia */
+ extern vchar_t *eay_camellia_encrypt __P((vchar_t *, vchar_t *, vchar_t *));
+ extern vchar_t *eay_camellia_decrypt __P((vchar_t *, vchar_t *, vchar_t *));
+diff --git a/src/racoon/eaytest.c b/src/racoon/eaytest.c
+index 1474bdc..ae09db3 100644
+--- a/src/racoon/eaytest.c
++++ b/src/racoon/eaytest.c
+@@ -62,6 +62,7 @@
+ #include "dhgroup.h"
+ #include "crypto_openssl.h"
+ #include "gnuc.h"
++#include "openssl_compat.h"
+ #include "package_version.h"
+@@ -103,7 +104,7 @@ rsa_verify_with_pubkey(src, sig, pubkey_txt)
+               printf ("PEM_read_PUBKEY(): %s\n", eay_strerror());
+               return -1;
+       }
+-      error = eay_check_rsasign(src, sig, evp->pkey.rsa);
++      error = eay_check_rsasign(src, sig, EVP_PKEY_get0_RSA(evp));
+       return error;
+ }
+@@ -698,7 +699,7 @@ ciphertest(ac, av)
+                         eay_cast_encrypt, eay_cast_decrypt) < 0)
+         return -1;
+       
+-#ifdef HAVE_OPENSSL_IDEA_H
++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA)
+       if (ciphertest_1 ("IDEA",
+                         &data, 8,
+                         &key, key.l,
+@@ -715,7 +716,7 @@ ciphertest(ac, av)
+                         eay_rc5_encrypt, eay_rc5_decrypt) < 0)
+         return -1;
+ #endif
+-#if defined(HAVE_OPENSSL_CAMELLIA_H)
++#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA)
+       if (ciphertest_1 ("CAMELLIA",
+                         &data, 16,
+                         &key, key.l,
+diff --git a/src/racoon/ipsec_doi.c b/src/racoon/ipsec_doi.c
+index 84a4c71..b52469f 100644
+--- a/src/racoon/ipsec_doi.c
++++ b/src/racoon/ipsec_doi.c
+@@ -715,7 +715,7 @@ out:
+       /* key length must not be specified on some algorithms */
+       if (keylen) {
+               if (sa->enctype == OAKLEY_ATTR_ENC_ALG_DES
+-#ifdef HAVE_OPENSSL_IDEA_H
++#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA)
+                || sa->enctype == OAKLEY_ATTR_ENC_ALG_IDEA
+ #endif
+                || sa->enctype == OAKLEY_ATTR_ENC_ALG_3DES) {
+diff --git a/src/racoon/openssl_compat.c b/src/racoon/openssl_compat.c
+new file mode 100644
+index 0000000..864b5fb
+--- /dev/null
++++ b/src/racoon/openssl_compat.c
+@@ -0,0 +1,213 @@
++/*
++ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
++ *
++ * Licensed under the OpenSSL license (the "License").  You may not use
++ * this file except in compliance with the License.  You can obtain a copy
++ * in the file LICENSE in the source distribution or at
++ * https://www.openssl.org/source/license.html
++ */
++
++#include "openssl_compat.h"
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <string.h>
++
++static void *OPENSSL_zalloc(size_t num)
++{
++    void *ret = OPENSSL_malloc(num);
++
++    if (ret != NULL)
++        memset(ret, 0, num);
++    return ret;
++}
++
++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
++{
++    /* If the fields n and e in r are NULL, the corresponding input
++     * parameters MUST be non-NULL for n and e.  d may be
++     * left NULL (in case only the public key is used).
++     */
++    if ((r->n == NULL && n == NULL)
++        || (r->e == NULL && e == NULL))
++        return 0;
++
++    if (n != NULL) {
++        BN_free(r->n);
++        r->n = n;
++    }
++    if (e != NULL) {
++        BN_free(r->e);
++        r->e = e;
++    }
++    if (d != NULL) {
++        BN_free(r->d);
++        r->d = d;
++    }
++
++    return 1;
++}
++
++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
++{
++    /* If the fields p and q in r are NULL, the corresponding input
++     * parameters MUST be non-NULL.
++     */
++    if ((r->p == NULL && p == NULL)
++        || (r->q == NULL && q == NULL))
++        return 0;
++
++    if (p != NULL) {
++        BN_free(r->p);
++        r->p = p;
++    }
++    if (q != NULL) {
++        BN_free(r->q);
++        r->q = q;
++    }
++
++    return 1;
++}
++
++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
++{
++    /* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input
++     * parameters MUST be non-NULL.
++     */
++    if ((r->dmp1 == NULL && dmp1 == NULL)
++        || (r->dmq1 == NULL && dmq1 == NULL)
++        || (r->iqmp == NULL && iqmp == NULL))
++        return 0;
++
++    if (dmp1 != NULL) {
++        BN_free(r->dmp1);
++        r->dmp1 = dmp1;
++    }
++    if (dmq1 != NULL) {
++        BN_free(r->dmq1);
++        r->dmq1 = dmq1;
++    }
++    if (iqmp != NULL) {
++        BN_free(r->iqmp);
++        r->iqmp = iqmp;
++    }
++
++    return 1;
++}
++
++void RSA_get0_key(const RSA *r,
++                  const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
++{
++    if (n != NULL)
++        *n = r->n;
++    if (e != NULL)
++        *e = r->e;
++    if (d != NULL)
++        *d = r->d;
++}
++
++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
++{
++    if (p != NULL)
++        *p = r->p;
++    if (q != NULL)
++        *q = r->q;
++}
++
++void RSA_get0_crt_params(const RSA *r,
++                         const BIGNUM **dmp1, const BIGNUM **dmq1,
++                         const BIGNUM **iqmp)
++{
++    if (dmp1 != NULL)
++        *dmp1 = r->dmp1;
++    if (dmq1 != NULL)
++        *dmq1 = r->dmq1;
++    if (iqmp != NULL)
++        *iqmp = r->iqmp;
++}
++
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
++{
++    /* If the fields p and g in d are NULL, the corresponding input
++     * parameters MUST be non-NULL.  q may remain NULL.
++     */
++    if ((dh->p == NULL && p == NULL)
++        || (dh->g == NULL && g == NULL))
++        return 0;
++
++    if (p != NULL) {
++        BN_free(dh->p);
++        dh->p = p;
++    }
++    if (q != NULL) {
++        BN_free(dh->q);
++        dh->q = q;
++    }
++    if (g != NULL) {
++        BN_free(dh->g);
++        dh->g = g;
++    }
++
++    if (q != NULL) {
++        dh->length = BN_num_bits(q);
++    }
++
++    return 1;
++}
++
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
++{
++    if (pub_key != NULL)
++        *pub_key = dh->pub_key;
++    if (priv_key != NULL)
++        *priv_key = dh->priv_key;
++}
++
++int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
++{
++    /* If the field pub_key in dh is NULL, the corresponding input
++     * parameters MUST be non-NULL.  The priv_key field may
++     * be left NULL.
++     */
++    if (dh->pub_key == NULL && pub_key == NULL)
++        return 0;
++
++    if (pub_key != NULL) {
++        BN_free(dh->pub_key);
++        dh->pub_key = pub_key;
++    }
++    if (priv_key != NULL) {
++        BN_free(dh->priv_key);
++        dh->priv_key = priv_key;
++    }
++
++    return 1;
++}
++
++int DH_set_length(DH *dh, long length)
++{
++    dh->length = length;
++    return 1;
++}
++
++HMAC_CTX *HMAC_CTX_new(void)
++{
++    return OPENSSL_zalloc(sizeof(HMAC_CTX));
++}
++
++void HMAC_CTX_free(HMAC_CTX *ctx)
++{
++    HMAC_CTX_cleanup(ctx);
++    OPENSSL_free(ctx);
++}
++
++RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
++{
++    if (pkey->type != EVP_PKEY_RSA) {
++        return NULL;
++    }
++    return pkey->pkey.rsa;
++}
++
++
++#endif /* OPENSSL_VERSION_NUMBER */
+diff --git a/src/racoon/openssl_compat.h b/src/racoon/openssl_compat.h
+new file mode 100644
+index 0000000..9e152c2
+--- /dev/null
++++ b/src/racoon/openssl_compat.h
+@@ -0,0 +1,45 @@
++#ifndef OPENSSL_COMPAT_H
++#define OPENSSL_COMPAT_H
++
++#include <openssl/opensslv.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <openssl/rsa.h>
++#include <openssl/dh.h>
++#include <openssl/evp.h>
++#include <openssl/hmac.h>
++
++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp);
++void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d);
++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q);
++void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp);
++
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key);
++int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key);
++int DH_set_length(DH *dh, long length);
++
++HMAC_CTX *HMAC_CTX_new(void);
++void HMAC_CTX_free(HMAC_CTX* ctx);
++
++RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey);
++
++#define ASN1_STRING_length(s) s->length
++#define ASN1_STRING_get0_data(s) s->data
++
++#define X509_get_subject_name(x) x->cert_info->subject
++#define X509_get_issuer_name(x) x->cert_info->issuer
++#define X509_NAME_ENTRY_get_data(n) n->value
++#define X509_NAME_ENTRY_get_object(n) n->object
++#define X509_STORE_CTX_get_current_cert(ctx) ctx->current_cert
++#define X509_STORE_CTX_get_error(ctx) ctx->error
++#define X509_STORE_CTX_get_error_depth(ctx) ctx->error_depth
++
++#define OPENSSL_VERSION SSLEAY_VERSION
++#define OpenSSL_version SSLeay_version
++
++#endif /* OPENSSL_VERSION_NUMBER */
++
++#endif /* OPENSSL_COMPAT_H */
+diff --git a/src/racoon/plainrsa-gen.c b/src/racoon/plainrsa-gen.c
+index cad1861..b949b08 100644
+--- a/src/racoon/plainrsa-gen.c
++++ b/src/racoon/plainrsa-gen.c
+@@ -60,6 +60,7 @@
+ #include "vmbuf.h"
+ #include "plog.h"
+ #include "crypto_openssl.h"
++#include "openssl_compat.h"
+ #include "package_version.h"
+@@ -90,12 +91,14 @@ mix_b64_pubkey(const RSA *key)
+       char *binbuf;
+       long binlen, ret;
+       vchar_t *res;
+-      
+-      binlen = 1 + BN_num_bytes(key->e) + BN_num_bytes(key->n);
++      const BIGNUM *e, *n;
++
++      RSA_get0_key(key, &n, &e, NULL);
++      binlen = 1 + BN_num_bytes(e) + BN_num_bytes(n);
+       binbuf = malloc(binlen);
+       memset(binbuf, 0, binlen);
+-      binbuf[0] = BN_bn2bin(key->e, (unsigned char *) &binbuf[1]);
+-      ret = BN_bn2bin(key->n, (unsigned char *) (&binbuf[binbuf[0] + 1]));
++      binbuf[0] = BN_bn2bin(e, (unsigned char *) &binbuf[1]);
++      ret = BN_bn2bin(n, (unsigned char *) (&binbuf[binbuf[0] + 1]));
+       if (1 + binbuf[0] + ret != binlen) {
+               plog(LLV_ERROR, LOCATION, NULL,
+                    "Pubkey generation failed. This is really strange...\n");
+@@ -131,16 +134,20 @@ print_rsa_key(FILE *fp, const RSA *key)
+       
+       fprintf(fp, "# : PUB 0s%s\n", pubkey64->v);
+       fprintf(fp, ": RSA\t{\n");
+-      fprintf(fp, "\t# RSA %d bits\n", BN_num_bits(key->n));
++      const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp;
++      RSA_get0_key(key, &n, &e, &d);
++      RSA_get0_factors(key, &p, &q);
++      RSA_get0_crt_params(key, &dmp1, &dmq1, &iqmp);
++      fprintf(fp, "\t# RSA %d bits\n", BN_num_bits(n));
+       fprintf(fp, "\t# pubkey=0s%s\n", pubkey64->v);
+-      fprintf(fp, "\tModulus: 0x%s\n", lowercase(BN_bn2hex(key->n)));
+-      fprintf(fp, "\tPublicExponent: 0x%s\n", lowercase(BN_bn2hex(key->e)));
+-      fprintf(fp, "\tPrivateExponent: 0x%s\n", lowercase(BN_bn2hex(key->d)));
+-      fprintf(fp, "\tPrime1: 0x%s\n", lowercase(BN_bn2hex(key->p)));
+-      fprintf(fp, "\tPrime2: 0x%s\n", lowercase(BN_bn2hex(key->q)));
+-      fprintf(fp, "\tExponent1: 0x%s\n", lowercase(BN_bn2hex(key->dmp1)));
+-      fprintf(fp, "\tExponent2: 0x%s\n", lowercase(BN_bn2hex(key->dmq1)));
+-      fprintf(fp, "\tCoefficient: 0x%s\n", lowercase(BN_bn2hex(key->iqmp)));
++      fprintf(fp, "\tModulus: 0x%s\n", lowercase(BN_bn2hex(n)));
++      fprintf(fp, "\tPublicExponent: 0x%s\n", lowercase(BN_bn2hex(e)));
++      fprintf(fp, "\tPrivateExponent: 0x%s\n", lowercase(BN_bn2hex(d)));
++      fprintf(fp, "\tPrime1: 0x%s\n", lowercase(BN_bn2hex(p)));
++      fprintf(fp, "\tPrime2: 0x%s\n", lowercase(BN_bn2hex(q)));
++      fprintf(fp, "\tExponent1: 0x%s\n", lowercase(BN_bn2hex(dmp1)));
++      fprintf(fp, "\tExponent2: 0x%s\n", lowercase(BN_bn2hex(dmq1)));
++      fprintf(fp, "\tCoefficient: 0x%s\n", lowercase(BN_bn2hex(iqmp)));
+       fprintf(fp, "  }\n");
+       vfree(pubkey64);
+@@ -203,11 +210,13 @@ int
+ gen_rsa_key(FILE *fp, size_t bits, unsigned long exp)
+ {
+       int ret;
+-      RSA *key;
++      RSA *key = RSA_new();
++      BIGNUM *e = BN_new();
+-      key = RSA_generate_key(bits, exp, NULL, NULL);
+-      if (!key) {
++      BN_set_word(e, exp);
++      if (! RSA_generate_key_ex(key, bits, e, NULL)) {
+               fprintf(stderr, "RSA_generate_key(): %s\n", eay_strerror());
++              RSA_free(key);
+               return -1;
+       }
+       
+diff --git a/src/racoon/prsa_par.y b/src/racoon/prsa_par.y
+index 1987e4d..27ce4c6 100644
+--- a/src/racoon/prsa_par.y
++++ b/src/racoon/prsa_par.y
+@@ -68,6 +68,7 @@
+ #include "isakmp_var.h"
+ #include "handler.h"
+ #include "crypto_openssl.h"
++#include "openssl_compat.h"
+ #include "sockmisc.h"
+ #include "rsalist.h"
+@@ -85,7 +86,18 @@ char *prsa_cur_fname = NULL;
+ struct genlist *prsa_cur_list = NULL;
+ enum rsa_key_type prsa_cur_type = RSA_TYPE_ANY;
+-static RSA *rsa_cur;
++struct my_rsa_st {
++      BIGNUM *n;
++      BIGNUM *e;
++      BIGNUM *d;
++      BIGNUM *p;
++      BIGNUM *q;
++      BIGNUM *dmp1;
++      BIGNUM *dmq1;
++      BIGNUM *iqmp;
++};
++
++static struct my_rsa_st *rsa_cur;
+ void
+ prsaerror(const char *s, ...)
+@@ -201,8 +213,12 @@ rsa_statement:
+                               rsa_cur->iqmp = NULL;
+                       }
+               }
+-              $$ = rsa_cur;
+-              rsa_cur = RSA_new();
++              RSA * rsa_tmp = RSA_new();
++              RSA_set0_key(rsa_tmp, rsa_cur->n, rsa_cur->e, rsa_cur->d);
++              RSA_set0_factors(rsa_tmp, rsa_cur->p, rsa_cur->q);
++              RSA_set0_crt_params(rsa_tmp, rsa_cur->dmp1, rsa_cur->dmq1, rsa_cur->iqmp);
++              $$ = rsa_tmp;
++              memset(rsa_cur, 0, sizeof(struct my_rsa_st));
+       }
+       | TAG_PUB BASE64
+       {
+@@ -351,10 +367,12 @@ prsa_parse_file(struct genlist *list, char *fname, enum rsa_key_type type)
+       prsa_cur_fname = fname;
+       prsa_cur_list = list;
+       prsa_cur_type = type;
+-      rsa_cur = RSA_new();
++      rsa_cur = malloc(sizeof(struct my_rsa_st));
++      memset(rsa_cur, 0, sizeof(struct my_rsa_st));
+       ret = prsaparse();
+       if (rsa_cur) {
+-              RSA_free(rsa_cur);
++              memset(rsa_cur, 0, sizeof(struct my_rsa_st));
++              free(rsa_cur);
+               rsa_cur = NULL;
+       }
+       fclose (fp);
+diff --git a/src/racoon/rsalist.c b/src/racoon/rsalist.c
+index f152c82..96e8363 100644
+--- a/src/racoon/rsalist.c
++++ b/src/racoon/rsalist.c
+@@ -52,6 +52,7 @@
+ #include "genlist.h"
+ #include "remoteconf.h"
+ #include "crypto_openssl.h"
++#include "openssl_compat.h"
+ #ifndef LIST_FIRST
+ #define LIST_FIRST(head)        ((head)->lh_first)
+@@ -98,7 +99,9 @@ rsa_key_dup(struct rsa_key *key)
+               return NULL;
+       if (key->rsa) {
+-              new->rsa = key->rsa->d != NULL ? RSAPrivateKey_dup(key->rsa) : RSAPublicKey_dup(key->rsa);
++              const BIGNUM *d;
++              RSA_get0_key(key->rsa, NULL, NULL, &d);
++              new->rsa = (d != NULL ? RSAPrivateKey_dup(key->rsa) : RSAPublicKey_dup(key->rsa));
+               if (new->rsa == NULL)
+                       goto dup_error;
+       }
+-- 
+2.16.1
+
index 363affb43c3d02d47fef51bd91fce72640419931..7fd4fe4aa7d15dda62b57aa00cd91ea57d62d950 100644 (file)
@@ -8,21 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mtr
-PKG_REV:=dd2b75080bc5406ba0b438953b36b72204ba114b
-PKG_VERSION:=0.85+newdns-$(PKG_REV)
-PKG_RELEASE:=2
+PKG_VERSION:=0.92
+PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/traviscross/mtr.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=4911c96ee4b3c31692664a845dccddabdfef107646d4861b21fd4053bd2b76e8
+PKG_MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/traviscross/mtr/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=568a52911a8933496e60c88ac6fea12379469d7943feb9223f4337903e4bc164
 
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
 
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 PKG_FIXUP:=autoreconf
 
@@ -34,7 +33,6 @@ define Package/mtr
   DEPENDS:=+libncurses
   TITLE:=Full screen ncurses traceroute tool
   URL:=http://www.bitwizard.nl/mtr/
-  PKG_MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
 endef
 
 define Package/mtr/description
diff --git a/net/mtr/patches/100-disabled-ipv6-fix.patch b/net/mtr/patches/100-disabled-ipv6-fix.patch
deleted file mode 100644 (file)
index 5ef9984..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
---- a/net.c
-+++ b/net.c
-@@ -307,9 +307,11 @@ void net_send_tcp(int index)
-   struct sockaddr_storage local;
-   struct sockaddr_storage remote;
-   struct sockaddr_in *local4 = (struct sockaddr_in *) &local;
--  struct sockaddr_in6 *local6 = (struct sockaddr_in6 *) &local;
-   struct sockaddr_in *remote4 = (struct sockaddr_in *) &remote;
-+#ifdef ENABLE_IPV6
-+  struct sockaddr_in6 *local6 = (struct sockaddr_in6 *) &local;
-   struct sockaddr_in6 *remote6 = (struct sockaddr_in6 *) &remote;
-+#endif
-   socklen_t len;
-   ttl = index + 1;
-@@ -566,8 +568,10 @@ void net_send_query(int index)
-   /* sendto() assumes packet length includes the IPv4 header but not the 
-      IPv6 header. */
--  spacketsize = abs(packetsize)       -
--              ( ( af == AF_INET ) ? 0 : sizeof (struct ip6_hdr) );
-+  spacketsize = abs(packetsize);
-+#ifdef ENABLE_IPV6
-+  spacketsize -= ( ( af == AF_INET ) ? 0 : sizeof (struct ip6_hdr) );
-+#endif
-   rv = sendto(sendsock, packet, spacketsize, 0, remotesockaddr, salen);
-   if (first && (rv < 0) && ((errno == EINVAL) || (errno == EMSGSIZE))) {
-     /* Try the first packet again using host byte order. */
---- a/dns.c
-+++ b/dns.c
-@@ -49,7 +49,7 @@
- #include <unistd.h>
- #include <fcntl.h>
- //#include <ctype.h>
--//#include <string.h>
-+#include <string.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <signal.h>
---- a/net.h
-+++ b/net.h
-@@ -20,6 +20,7 @@
- #include <netdb.h>
- #include <arpa/inet.h>
- #include <netinet/in.h>
-+#include <sys/select.h>
- #include <sys/socket.h>
- #ifdef ENABLE_IPV6
- #include <netinet/ip6.h>
index 32e6d245b1ede260f0848337172afd27e59c3dd3..2a8ce3389699643c9c9bebf8ad88a0abfca78341 100644 (file)
@@ -202,6 +202,11 @@ config NGINX_HTTP_SECURE_LINK
        prompt "Enable HTTP secure link module"
        default n
        
+config NGINX_HTTP_SUB
+       bool
+       prompt "Enable HTTP sub module"
+       default n
+       
 config NGINX_HEADERS_MORE
        bool
        prompt "Enable Headers_more module"
index 3b18dbbc938c4696479b6f6483f4dabf1cf3ac46..4fc79016f6cdedd2de6c36ddff146380de7515b9 100644 (file)
@@ -194,6 +194,11 @@ config NGINX_HTTP_SECURE_LINK
        bool
        prompt "Enable HTTP secure link module"
        default n
+
+config NGINX_HTTP_SUB
+       bool
+       prompt "Enable HTTP sub module"
+       default n
        
 config NGINX_HEADERS_MORE
        bool
index be2a857a91d7548778f6b70978819ea7af96569e..2c65ea72ef4402632714e70d0aeeb99401a8c8d5 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nginx
 PKG_VERSION:=1.15.1
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 
 PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://nginx.org/download/
@@ -97,6 +97,7 @@ define Package/nginx-ssl
   TITLE += with SSL support
   DEPENDS +=+libopenssl
   VARIANT:=ssl
+  PROVIDES:=nginx
 endef
 
 Package/nginx-ssl/description = $(Package/nginx/description) \
@@ -108,6 +109,7 @@ define Package/nginx-all-module
   TITLE += with ALL module selected
   DEPENDS:=+libpcre +libopenssl +zlib +liblua +libpthread
   VARIANT:=all-module
+  PROVIDES:=nginx
 endef
 
 Package/nginx-all-module/description = $(Package/nginx/description) \
@@ -259,6 +261,9 @@ ifneq ($(BUILD_VARIANT),all-module)
   ifeq ($(CONFIG_NGINX_HTTP_SECURE_LINK),y)
     ADDITIONAL_MODULES += --with-http_secure_link_module
   endif
+  ifeq ($(CONFIG_NGINX_HTTP_SUB),y)
+       ADDITIONAL_MODULES += --with-http_sub_module
+  endif
   ifeq ($(CONFIG_NGINX_HEADERS_MORE),y)
     ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-headers-more
   endif
@@ -281,7 +286,7 @@ else
   ADDITIONAL_MODULES += --with-http_ssl_module --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src \
     --add-module=$(PKG_BUILD_DIR)/lua-nginx --with-ipv6 --with-http_stub_status_module --with-http_flv_module \
        --with-http_dav_module --with-http_auth_request_module --with-http_v2_module --with-http_realip_module \
-       --with-http_secure_link_module --add-module=$(PKG_BUILD_DIR)/nginx-headers-more \
+       --with-http_secure_link_module --with-http_sub_module --add-module=$(PKG_BUILD_DIR)/nginx-headers-more \
        --add-module=$(PKG_BUILD_DIR)/nginx-brotli --add-module=$(PKG_BUILD_DIR)/nginx-rtmp \
        --add-module=$(PKG_BUILD_DIR)/nginx-ts
   config_files += koi-utf koi-win win-utf fastcgi_params 
index 38a8aa8855ef2172ab77bd9e3768c9fcfba76eed..dd076d2602ca230d0ee5454a069e1b6353734449 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 if [ -f "/etc/nginx/luci_nginx.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then
-       if [ ! "$(cat '/etc/nginx/nginx.conf' | grep -q 'luci_uwsgi.conf')" ]; then
+       if [ ! "$(cat '/etc/nginx/nginx.conf' | grep 'luci_uwsgi.conf')" ]; then
                mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_old
                mv /etc/nginx/luci_nginx.conf /etc/nginx/nginx.conf
                core_number=$(grep -c ^processor /proc/cpuinfo)
@@ -20,6 +20,8 @@ if [ -f "/etc/nginx/luci_nginx.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then
                else
                        /etc/init.d/uwsgi start
                fi
+       else
+               rm /etc/nginx/luci_nginx.conf
        fi
 fi
 
index 1cc1a85fc9186a9561de3ca2e2caa4407cb7ec80..76ce3a81956059c52f5aadc2bf3a5b5f676a0567 100644 (file)
@@ -2,7 +2,7 @@
 
 
 if [ -f "/etc/nginx/luci_nginx_ssl.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then
-       if [ ! "$(cat '/etc/nginx/nginx.conf' | grep -q 'return 301 https://$host$request_uri;')" ]; then
+       if [ ! "$(cat '/etc/nginx/nginx.conf' | grep 'return 301 https://$host$request_uri;')" ]; then
                if [ -f "/etc/nginx/nginx.conf_old" ]; then
                        rm /etc/nginx/nginx.conf
                else
@@ -16,6 +16,8 @@ if [ -f "/etc/nginx/luci_nginx_ssl.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; th
                else
                        /etc/init.d/nginx start
                fi
+       else
+               rm /etc/nginx/luci_nginx_ssl.conf
        fi
 fi
 
index 78f916b04f128932f557fa686c94e13af0bf2458..53d4ab6c7fb7f1bbd30500705d8f0051f25602a6 100644 (file)
@@ -1,5 +1,5 @@
 
-user  root;
+user nobody nogroup;
 worker_processes  1;
 
 #error_log  logs/error.log;
index 5de243ea73eb667f1381c2cf172a372491c42640..8c21cbcc8630da130602b9661b309c84ce2218ee 100644 (file)
@@ -8,15 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rtorrent
-PKG_VERSION:=0.9.6-git-1
-PKG_RELEASE=$(PKG_SOURCE_VERSION)
+PKG_VERSION:=0.9.7
+PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/rakshasa/rtorrent.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=62cb5a4605c0664bc522e0e0da9c72f09cf643a9
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=3c6834b12ebfa8d62618f6e9dbc06dfa593861fa0b435d2fd1bddb0e886fc77b
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/rakshasa/rtorrent/releases/download/v$(PKG_VERSION)
+PKG_HASH:=5d9842fe48c9582fbea2c7bf9f51412c1ccbba07d059b257039ad53b863fe8bb
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
@@ -36,7 +33,7 @@ define Package/rtorrent/Default
   TITLE:=BitTorrent client for ncurses
   URL:=http://libtorrent.rakshasa.no/
   DEPENDS:=+libcurl +libtorrent +libncursesw +libsigcxx +libpthread
-  MAINTAINER:=Peter Wagner <tripolar@gmx.at>
+  MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 endef
 
 define Package/rtorrent/Default/description
index 82dcc7648b403412a008b643928bd5af0656d680..50657df13d09b4edc66fee3542869cd381c02747 100644 (file)
@@ -1,13 +1,3 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -4,7 +4,6 @@ AC_DEFINE(API_VERSION, 9, api version)
- AM_INIT_AUTOMAKE
- AC_CONFIG_HEADERS(config.h)
--AM_PATH_CPPUNIT(1.9.6)
- AC_PROG_CXX
- AC_PROG_LIBTOOL
 --- a/scripts/common.m4
 +++ b/scripts/common.m4
 @@ -153,7 +153,7 @@ dnl   Need to fix this so that it uses t
index f491de36a08daf3ef5ee24486a23237371974b6b..a6719f2e4a7584c41949510423212c5017d1a7fa 100644 (file)
@@ -6,6 +6,6 @@
  
 -  Canvas(int x = 0, int y = 0, int width = 0, int height = 0);
 +  Canvas(int x = 0, int y = 0, int width = 1, int height = 1);
-   ~Canvas() { delwin(m_window); }
+   ~Canvas() { if (!m_isDaemon) { delwin(m_window); } }
  
-   void                refresh()                                               { wnoutrefresh(m_window); }
+   void                refresh()                                               { if (!m_isDaemon) { wnoutrefresh(m_window); } }
index fd5b99b1199d05a2a25e787026e0e4d2449e8570..0ef43b23a0f680d2a0d6ff6a18dd45f0a234b5a6 100644 (file)
@@ -1,30 +1,31 @@
-# Copyright (c) 2017 Stan Grishin (stangri@melmac.net)
+# Copyright 2017-2018 Stan Grishin (stangri@melmac.net)
+# TLD optimization written by Dirk Brenken (dev@brenken.org)
 # This is free software, licensed under the GNU General Public License v3.
 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=simple-adblock
-PKG_VERSION:=1.5.8
-PKG_RELEASE:=1
+PKG_VERSION:=1.6.3
+PKG_RELEASE:=5
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/simple-adblock
        SECTION:=net
        CATEGORY:=Network
        TITLE:=Simple AdBlock Service
        PKGARCH:=all
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/simple-adblock/description
 This service provides dnsmasq-based ad blocking.
 Please see the README for further information.
 
 endef
 
-define Package/$(PKG_NAME)/conffiles
+define Package/simple-adblock/conffiles
 /etc/config/simple-adblock
 endef
 
@@ -40,23 +41,41 @@ endef
 define Build/Compile
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/simple-adblock/install
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/simple-adblock.init $(1)/etc/init.d/simple-adblock
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/simple-adblock.conf $(1)/etc/config/simple-adblock
+       $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
+       $(INSTALL_BIN) ./files/simple-adblock.hotplug $(1)/etc/hotplug.d/iface/80-simple-adblock
 endef
 
-define Package/$(PKG_NAME)/prerm
+define Package/simple-adblock/postinst
        #!/bin/sh
        # check if we are on real system
        if [ -z "$${IPKG_INSTROOT}" ]; then
+               /etc/init.d/simple-adblock enable
+               while uci -q del ucitrack.@simple-adblock[-1]; do :; done
+               uci -q batch <<-EOF >/dev/null
+                       add ucitrack simple-adblock
+                       set ucitrack.@simple-adblock[0].init='simple-adblock'
+                       commit ucitrack
+       EOF
+       fi
+       exit 0
+endef
+
+define Package/simple-adblock/prerm
+       #!/bin/sh
+       # check if we are on real system
+       if [ -z "$${IPKG_INSTROOT}" ]; then
+               while uci -q del ucitrack.@simple-adblock[-1]; do :; done
                echo "Stopping service and removing rc.d symlink for simple-adblock"
                /etc/init.d/simple-adblock stop || true
                /etc/init.d/simple-adblock killcache || true
-               /etc/init.d/simple-adblock disable
+               /etc/init.d/simple-adblock disable || true
        fi
        exit 0
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,simple-adblock))
index 000465cd686c1deb618f9e33dc0d244834955685..fd3dd7f28303bac830b97a022afc1a711cf262de 100644 (file)
@@ -22,7 +22,7 @@ If you want a more robust AdBlocking, supporting free memory detection and compl
 
 
 ## Screenshot (luci-app-simple-adblock)
-![screenshot](https://raw.githubusercontent.com/stangri/screenshots/master/simple-adblock/screenshot04.png "screenshot")
+![screenshot](https://raw.githubusercontent.com/stangri/openwrt_packages/master/screenshots/simple-adblock/screenshot06.png "screenshot")
 
 
 ## Requirements
@@ -54,12 +54,12 @@ If you are running a development (trunk/snapshot) build of OpenWrt/LEDE Project
 
 
 ## How to install
-Install ```simple-adblock``` and  ```luci-app-simple-adblock``` packages from Web UI or run the following in the command line:
+Install ```simple-adblock``` and ```luci-app-simple-adblock``` packages from Web UI or run the following in the command line:
 ```sh
 opkg update; opkg install simple-adblock luci-app-simple-adblock
 ```
 
-If ```simple-adblock``` and  ```luci-app-simple-adblock``` packages are not found in the official feed/repo for your version of OpenWrt/LEDE Project, you will need to [add a custom repo to your router](#add-custom-repo-to-your-router) first.
+If ```simple-adblock``` and ```luci-app-simple-adblock``` packages are not found in the official feed/repo for your version of OpenWrt/LEDE Project, you will need to [add a custom repo to your router](#add-custom-repo-to-your-router) first.
 
 
 #### Add custom repo to your router
@@ -68,15 +68,17 @@ If your router is not set up with the access to repository containing these pack
 ###### OpenWrt 15.05.1
 ```sh
 opkg update; opkg install ca-certificates wget libopenssl
-echo -e -n 'untrusted comment: public key 7ffc7517c4cc0c56\nRWR//HUXxMwMVnx7fESOKO7x8XoW4/dRidJPjt91hAAU2L59mYvHy0Fa\n' > /tmp/stangri-repo.pub && opkg-key add /tmp/stangri-repo.pub
+echo -e -n 'untrusted comment: LEDE usign key of Stan Grishin\nRWR//HUXxMwMVnx7fESOKO7x8XoW4/dRidJPjt91hAAU2L59mYvHy0Fa\n' > /tmp/stangri-repo.pub && opkg-key add /tmp/stangri-repo.pub
 ! grep -q 'stangri_repo' /etc/opkg/customfeeds.conf && echo 'src/gz stangri_repo https://raw.githubusercontent.com/stangri/openwrt-repo/master' >> /etc/opkg/customfeeds.conf
 opkg update
 ```
 
 ###### LEDE Project and OpenWrt 18.xx or later
 ```sh
-opkg update; opkg install uclient-fetch libustream-mbedtls
-echo -e -n 'untrusted comment: public key 7ffc7517c4cc0c56\nRWR//HUXxMwMVnx7fESOKO7x8XoW4/dRidJPjt91hAAU2L59mYvHy0Fa\n' > /tmp/stangri-repo.pub && opkg-key add /tmp/stangri-repo.pub
+opkg update
+opkg list-installed | grep -q uclient-fetch || opkg install uclient-fetch
+opkg list-installed | grep -q libustream || opkg install libustream-mbedtls
+echo -e -n 'untrusted comment: LEDE usign key of Stan Grishin\nRWR//HUXxMwMVnx7fESOKO7x8XoW4/dRidJPjt91hAAU2L59mYvHy0Fa\n' > /tmp/stangri-repo.pub && opkg-key add /tmp/stangri-repo.pub
 ! grep -q 'stangri_repo' /etc/opkg/customfeeds.conf && echo 'src/gz stangri_repo https://raw.githubusercontent.com/stangri/openwrt-repo/master' >> /etc/opkg/customfeeds.conf
 opkg update
 ```
@@ -106,7 +108,7 @@ If you specify ```google.com``` as a domain to be whitelisted, you will have acc
 In general, whatever domain is specified to be whitelisted; it, along with with its subdomains will be whitelisted, but not any fake domains containing it.
 
 ## Documentation / Discussion
-Please head to [OpenWrt Forum](https://forum.openwrt.org/viewtopic.php?pid=307950) or [LEDE Project Forum](https://forum.lede-project.org/t/simple-adblock-fast-lean-and-fully-uci-luci-configurable-adblocking/1327/) for discussion of this package.
+Please head [LEDE Project Forum](https://forum.lede-project.org/t/simple-adblock-fast-lean-and-fully-uci-luci-configurable-adblocking/1327/) for discussion of this package.
 
 ## What's New
 1.5.8:
index 4358094eed1551dfa995dba6a2b9de4c688fbaf2..ee151594edef1e9be352dee05aa0f961d3107a0f 100644 (file)
@@ -13,6 +13,7 @@ config simple-adblock 'config'
        list blacklist_hosts_url 'http://www.malwaredomainlist.com/hostslist/hosts.txt'
        list blacklist_hosts_url 'https://adaway.org/hosts.txt'
        list blacklist_hosts_url 'http://someonewhocares.org/hosts/hosts'
+       list blacklist_hosts_url 'https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/hosts.txt'
        list blacklist_hosts_url 'https://zeustracker.abuse.ch/blocklist.php?download=hostfile'
        list blacklist_domains_url 'http://mirror1.malwaredomains.com/files/justdomains'
        list blacklist_domains_url 'https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt'
diff --git a/net/simple-adblock/files/simple-adblock.hotplug b/net/simple-adblock/files/simple-adblock.hotplug
new file mode 100644 (file)
index 0000000..5306246
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+if [[ "$ACTION" == "ifup" ]]; then
+  sleep 10 && /etc/init.d/simple-adblock start &
+fi
index 9e6b9af07a0854883ce49ac32b11eefa8852a68f..799ee44677c7b2ec7b690e8680d27e82fb985e68 100644 (file)
 #!/bin/sh /etc/rc.common
+# TLD optimization written by Dirk Brenken (dev@brenken.org)
 PKG_VERSION=
 
 export START=94
 export USE_PROCD=1
 
-readonly A_TMP='/var/hosts.allowed.tmp'
-readonly B_TMP='/var/hosts.blocked.tmp'
-readonly T_TMP='/var/simple-adblock.hosts'
-readonly dl='wget --no-check-certificate -qO-'
+readonly packageName='simple-adblock'
+readonly serviceName="$packageName $PKG_VERSION"
+readonly PID="/var/run/${packageName}.pid"
+readonly dnsmasqFile="/var/dnsmasq.d/${packageName}"
+export EXTRA_COMMANDS="check killcache"
+export EXTRA_HELP="    check   Checks if specified domain is found in current blacklist"
+
+readonly A_TMP='/var/simple-adblock.hosts.a.tmp'
+readonly B_TMP='/var/simple-adblock.hosts.b.tmp'
+readonly CACHE_TMP='/var/simple-adblock.cache'
 readonly h_filter='/localhost/d;/^#/d;/^[^0-9]/d;s/^0\.0\.0\.0.//;s/^127\.0\.0\.1.//;s/[[:space:]]*#.*$//;s/[[:cntrl:]]$//;s/[[:space:]]//g;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;'
 readonly d_filter='/^#/d;s/[[:space:]]*#.*$//;s/[[:space:]]*$//;s/[[:cntrl:]]$//;/[[:space:]]/d;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;'
 readonly f_filter='s|^|local=/|;s|$|/|'
+readonly checkmark='\xe2\x9c\x93'
+readonly xmark='\xe2\x9c\x97'
 readonly _OK_='\033[0;32m\xe2\x9c\x93\033[0m'
 readonly _FAIL_='\033[0;31m\xe2\x9c\x97\033[0m'
 readonly __OK__='\033[0;32m[\xe2\x9c\x93]\033[0m'
 readonly __FAIL__='\033[0;31m[\xe2\x9c\x97]\033[0m'
 readonly _ERROR_='\033[0;31mERROR\033[0m'
 
-export EXTRA_COMMANDS="check killcache"
-export EXTRA_HELP="    check   Checks if specified <string> is found in current blacklist"
-
-readonly packageName='simple-adblock'
-readonly serviceName="$packageName $PKG_VERSION"
-ok() { case $verbosity in 1) output "$_OK_";; 2) output "$__OK__\n";; esac; }
-okn() { case $verbosity in 1) output "$_OK_\n";; 2) output "$__OK__\n";; esac; }
-fail() { case $verbosity in 1) output "$_FAIL_";; 2) output "$__FAIL__\n";; esac; }
-failn() { case $verbosity in 1) output "$_FAIL_\n";; 2) output "$__FAIL__\n";; esac; }
-output() { [[ $# -ne 1 ]] && { [[ ! $((verbosity & $1)) -gt 0 ]] && return 0 || shift; }; local msg; msg=$(echo -n "${1/$serviceName /service }" | sed 's|\\033\[[0-9]\?;\?[0-9]\?[0-9]\?m||g'); [[ -t 1 ]] && echo -e -n "$1"; [[ $(echo -e -n "$msg" | wc -l) -gt 0 ]] && logger -t "${packageName:-service} [$$]" "$(echo -e -n ${logmsg}${msg})" && logmsg='' || logmsg=${logmsg}${msg}; }
-led_on(){ [[ -n "$led" && -e "$led/trigger" ]] && echo "default-on" > "$led/trigger"; }
-led_off(){ [[ -n "$led" && -e "$led/trigger" ]] && echo "none" > "$led/trigger"; }
-export serviceEnabled verbosity force_dns debug led wan_if wan_gw wanphysdev hosts_file
+create_lock() { [ -e "$PID" ] && return 1; touch "$PID"; }
+remove_lock() { [ -e "$PID" ] && rm -f "$PID"; rm -f /var/simple-adblock_tmp_* >/dev/null 2>&1; }
+trap remove_lock EXIT
+output_ok() { case $verbosity in 1) output 1 "$_OK_";; 2) output 2 "$__OK__\n";; esac; }
+output_okn() { case $verbosity in 1) output 1 "$_OK_\n";; 2) output 2 "$__OK__\n";; esac; }
+output_fail() { case $verbosity in 1) output 1 "$_FAIL_";; 2) output 2 "$__FAIL__\n";; esac; }
+output_failn() { case $verbosity in 1) output 1 "$_FAIL_\n";; 2) output 2 "$__FAIL__\n";; esac; }
+export logmsg
+output() {
+# Can take a single parameter (text) to be output at any verbosity
+# Or target verbosity level and text to be output at specifc verbosity
+       if [[ $# -ne 1 ]]; then
+               [[ ! $((verbosity & $1)) -gt 0 ]] && return 0 || shift
+       fi
+       [[ -t 1 ]] && echo -e -n "$1" # if we're running in console, echo text
+       # strip text of ASCII control characters and send completed lines to log
+       local msg=$(echo -n "${1/$serviceName /service }" | sed 's|\\033\[[0-9]\?;\?[0-9]\?[0-9]\?m||g');
+       if [[ $(echo -e -n "$msg" | wc -l) -gt 0 ]]; then
+               logger -t "${packageName:-service} [$$]" "$(echo -e -n ${logmsg}${msg})"
+               logmsg=''
+       else
+               logmsg=${logmsg}${msg}
+       fi
+}
+led_on(){ [[ -n "${1}" && -e "${1}/trigger" ]] && echo "default-on" > "${1}/trigger" 2>&1; }
+led_off(){ [[ -n "${1}" && -e "${1}/trigger" ]] && echo "none" > "${1}/trigger" 2>&1; }
+boot() { load_package_config; ( sleep $bootDelay && rc_procd start_service && rc_procd service_triggers | cat & ); }
 
-boot() { ( sleep 120 && rc_procd start_service && rc_procd service_triggers | cat &); }
+export serviceEnabled verbosity forceDNS debug led wan_if wan_gw wanphysdev bootDelay dl_command serviceStatus
 
 load_package_config() {
        config_load "$packageName"
        config_get_bool serviceEnabled 'config' 'enabled' 1
-       config_get_bool force_dns      'config' 'force_dns' 1
+       config_get_bool forceDNS       'config' 'force_dns' 1
        config_get_bool debug          'config' 'debug' 0
+       config_get bootDelay           'config' 'boot_delay' '120'
+       config_get dlTimeout           'config' 'download_timeout' '20'
        config_get verbosity           'config' 'verbosity' '2'
-       config_get hosts_file          'config' 'hosts_file' "/var/dnsmasq.d/${packageName}"
        config_get led                 'config' 'led'
-       source  /lib/functions/network.sh
+       if [ -z "${verbosity##*[!0-9]*}" ] || [ $verbosity -lt 0 ] || [ $verbosity -gt 2 ]; then
+               verbosity=1
+       fi
+       source /lib/functions/network.sh
+       dl_command="wget --no-check-certificate --timeout $dlTimeout -qO-"
+       led="${led:+/sys/class/leds/$led}"
 }
 
 is_enabled() {
-               local sleepCount=1
-               load_package_config
+       local sleepCount=1
+       load_package_config
 
-               if [ "$debug" -ne 0 ]; then
-                       exec 1>>/tmp/simple-adblock.log
-                       exec 2>&1
-                       set -x
+       if [ "$debug" -ne 0 ]; then
+               exec 1>>/tmp/simple-adblock.log
+               exec 2>&1
+               set -x
+       fi
+
+       if [ $serviceEnabled -eq 0 ]; then
+               if [ "$1" == "on_start" ]; then
+                       output "$packageName is currently disabled.\n"
+                       output "Run the following commands before starting service again:\n"
+                       output "uci set $packageName.config.enabled='1'; uci commit;\n"
                fi
+               return 1
+       fi
+       network_flush_cache; network_find_wan wan_if;   network_get_gateway wan_gw $wan_if;
+       [ -n "$wan_gw" ] && return 0
+       output "$_ERROR_: $serviceName failed to discover WAN gateway.\n"; return 1;
+}
 
-               led="${led:+/sys/class/leds/$led}"
-               [ $serviceEnabled -gt 0 ] || return 1
-               while : ; do
-                       network_flush_cache; network_find_wan wan_if;   network_get_gateway wan_gw $wan_if;
-                       [[ $sleepCount -ge 25 || -n "$wan_gw" ]] && break
-                       output "$serviceName waiting for wan gateway...\n"; sleep 2; let "sleepCount+=1";
-               done
-               [ -n "$wan_gw" ] && return 0
-               output "$_ERROR_: $serviceName failed to discover WAN gateway.\n"; return 1;
+dnsmasq_kill() { killall -q -HUP dnsmasq; }
+dnsmasq_restart() { /etc/init.d/dnsmasq restart >/dev/null 2>&1; }
+reload_dnsmasq() {
+       case $1 in
+               on_start)
+                       if [ -s $dnsmasqFile ]; then
+                               output 3 'Restarting dnsmasq '
+                               if dnsmasq_restart; then
+                                       led_on "$led"
+                                       output_okn
+                               else
+                                       output_failn
+                                       output "$_ERROR_: $serviceName failed to restart dnsmasq!\n"
+                                       serviceStatus="${serviceStatus:-'DNSMASQ restart error'}"
+                                       return 1
+                               fi
+                       else
+                               output "$_ERROR_: $serviceName failed to create its data file!\n"
+                               serviceStatus="${serviceStatus:-'Failed to create data file'}"
+                               return 1
+                       fi
+                       ;;
+               on_stop)
+                       [ -f $dnsmasqFile ] && mv $dnsmasqFile $CACHE_TMP
+                       output 3 'Restarting dnsmasq '
+                       if dnsmasq_restart; then
+                               led_off "$led"
+                               output_okn
+                               output "$serviceName stopped.\n"
+                               return 0
+                       else
+                               output_failn;
+                               output "$_ERROR_: $serviceName failed to restart dnsmasq!\n"
+                               return 1
+                       fi
+                       ;;
+               quiet | *)
+                       dnsmasq_restart && return 0 || return 1
+                       ;;
+       esac
 }
 
-iptables_destroy() {
-  [ $force_dns -eq 0 ] && return 0
-       [ -z "$packageName" ] && return 1
-       iptables-save | grep -Fv -- "$packageName" | iptables-restore
-       lsmod | grep -q ip6table_nat && ip6tables-save | grep -Fv -- "$packageName" | ip6tables-restore
-       [ -z "$1" ] && output 'No longer forcing local DNS server.\n'
+ubus_status(){
+       case "$1" in
+               add)
+                       ubus_status set "$(ubus_status get)${2}"
+                       ;;
+               del | set)
+                       ubus call service set "{ \"name\": \"${packageName}\", \"instances\": { \"status\": { \"command\": [ \"\" ],  \"data\": { \"status\": \"${2}\" }}}}"
+                       # ubus call service set "{ \"name\": \"${packageName}\", \"instances\": { \"status\": { \"data\": { \"status\": \"${2}\" }}}}"
+                       ;;
+               get)
+                       echo "$(ubus call service list "{\"name\": \"${packageName}\"}" | jsonfilter -l1 -e "@['${packageName}']['instances']['status']['data']['status']")"
+                       ;;
+       esac
 }
 
-iptables_create() {
-       local ip ipv6 label ipv6wan brname
-       network_get_ipaddr ip lan; network_get_ipaddr6 ipv6 lan; network_get_device brname lan; network_get_physdev wanphysdev wan;
-       ipv6wan=$(ifconfig $wanphysdev | grep inet6 | awk '{print $3}')
-
-       iptables_destroy 'quiet'
-       if [ $force_dns -ne 0 ]; then
-               [ -n "$ip" ] && iptables -t nat -A prerouting_rule -i $brname -p tcp --dport 53 -j DNAT --to $ip -m comment --comment "$packageName"
-               [ -n "$ip" ] && iptables -t nat -A prerouting_rule -i $brname -p udp --dport 53 -j DNAT --to $ip -m comment --comment "$packageName"
-               if [[ -n "$ipv6" && -n "$ipv6wan" ]] && lsmod | grep -q ip6table_nat; then
-                       ip6tables -t nat -A PREROUTING -i $brname -p tcp --dport 53 -j DNAT --to-destination [$ipv6] -m comment --comment "$packageName"
-                       ip6tables -t nat -A PREROUTING -i $brname -p udp --dport 53 -j DNAT --to-destination [$ipv6] -m comment --comment "$packageName"
-                       label="$ip/$ipv6"
-               else
-                       label="$ip"
-               fi
-               if [ -z "$1" ]; then
-                       if [ -n "$label" ]; then
-                               output "Forcing local DNS server: $label.\n"
-                       else
-                               output "$_ERROR_: $serviceName failed to obtain LAN IP address for DNS forcing!\n"
-                       fi
-               fi
+is_chaos_calmer() { ubus -S call system board | grep -q 'Chaos Calmer'; }
+
+remove_fw3_redirect() {
+       config_get name "$1" 'name'
+       if [[ -n "$name" && "$name" != "${name//simple_adblock}" ]]; then
+               uci -q del "firewall.$1"
        fi
 }
 
-stop_adblocking() {
-       load_package_config
-  [ -f $hosts_file ] && mv $hosts_file $T_TMP
-  output 3 "Restarting dnsmasq "
-       led_off
-  /etc/init.d/dnsmasq restart >/dev/null 2>&1
-       if [[ $? -eq 0 ]]; then
-               okn; output "$serviceName stopped.\n";
-       else
-               failn; output "$_ERROR_: $serviceName failed to reload dnsmasq!\n";
+fw3_setup() {
+       config_load 'firewall'
+       config_foreach remove_fw3_redirect 'redirect'
+       if [ "$1" == "start" ]; then
+               uci -q add firewall redirect >/dev/null 2>&1
+               uci -q set firewall.@redirect[-1].name='simple_adblock_dns_hijack'
+               uci -q set firewall.@redirect[-1].target='DNAT'
+               uci -q set firewall.@redirect[-1].src='lan'
+               uci -q set firewall.@redirect[-1].proto='tcpudp'
+               uci -q set firewall.@redirect[-1].src_dport='53'
+               uci -q set firewall.@redirect[-1].dest_port='53'
+               uci -q set firewall.@redirect[-1].dest_ip="$ip"
+               uci -q set firewall.@redirect[-1].reflection='0'
+       fi
+
+       if [ -n "$(uci changes firewall)" ]; then
+               uci -q commit firewall
+               /etc/init.d/firewall restart >/dev/null 2>&1
        fi
 }
 
 process_url() {
        local label type D_TMP R_TMP
        [[ -n "$1" && -n "$2" && -n "$3" ]] || return 1
-       local url=$1
-       [ "$2" == "hosts" ] && label="Hosts: $(echo $1 | cut -d'/' -f3)" filter="$h_filter" || label="Domains: $(echo $1 | cut -d'/' -f3)" filter="$d_filter"
-       [ "$3" == "blocked" ] && { type='Blocked'; D_TMP="$B_TMP"; } || { type='Allowed'; D_TMP="$A_TMP"; }
-       R_TMP="/var/simple-adblock_$(head -c40 /dev/urandom 2>/dev/null | tr -dc 'A-Za-z0-9' 2>/dev/null)"
-       while [ -e "$R_TMP" ]; do R_TMP="/var/simple-adblock_$(head -c40 /dev/urandom 2>/dev/null | tr -dc 'A-Za-z0-9' 2>/dev/null)"; done
+#      ping -W5 -c1 "$(echo $1 | awk -F '/' '{print $3}')" 1>/dev/null 2>/dev/null || { output_fail; return 1; }
+       if [ "$2" == "hosts" ]; then
+               label="Hosts: $(echo $1 | cut -d'/' -f3)" filter="$h_filter"
+       else
+               label="Domains: $(echo $1 | cut -d'/' -f3)" filter="$d_filter"
+       fi
+       if [ "$3" == "blocked" ]; then
+               type='Blocked'; D_TMP="$B_TMP";
+       else
+               type='Allowed'; D_TMP="$A_TMP";
+       fi
+       while [[ -z "$R_TMP" || -e "$R_TMP" ]]; do
+               R_TMP="/var/${packageName}_tmp_$(head -c40 /dev/urandom 2>/dev/null | tr -dc 'A-Za-z0-9' 2>/dev/null)"
+       done
        touch "$R_TMP"
-    output 2 "[DL] $type $label "
-    $dl "${url}" > "$R_TMP" 2>/dev/null && ok || fail
-       { sed -i "$filter" "$R_TMP"; cat "$R_TMP" >> "$D_TMP"; rm -f "$R_TMP"; } &
+       if ! $dl_command "$1" > "$R_TMP" 2>/dev/null; then
+               output 2 "[DL] $type $label $__FAIL__\n"
+               output 1 "$_FAIL_"
+               ubus_status add '-'
+               return 1
+       fi
+       sed -i "$filter" "$R_TMP"
+       cat "$R_TMP" >> "$D_TMP"
+       rm -f "$R_TMP" >/dev/null 2>/dev/null
+       output 2 "[DL] $type $label $__OK__\n"
+       output 1 "$_OK_"
+       ubus_status add '+'
+       return 0
 }
 
-start_adblocking() {
-               local whitelist_domains blacklist_domains whitelist_domains_urls blacklist_domains_urls blacklist_hosts_urls
-    config_get whitelist_domains          'config' 'whitelist_domain'
-    config_get blacklist_domains          'config' 'blacklist_domain'
-    config_get whitelist_domains_urls     'config' 'whitelist_domains_url'
-    config_get blacklist_domains_urls     'config' 'blacklist_domains_url'
-    config_get blacklist_hosts_urls       'config' 'blacklist_hosts_url'
-
-    local hf w_filter
-
-       [ ! -d ${hosts_file%/*} ] && mkdir -p ${hosts_file%/*}
-       [ ! -f "$hosts_file" ] && touch "$hosts_file"
-       if [[ -s $T_TMP && ! "$1" == "reload" ]]; then
-               output 3 'Found existing data file, reusing it '
-               mv $T_TMP $hosts_file && okn || failn
-       else
-               [ -f $A_TMP ] && rm -f $A_TMP; [ -f $B_TMP ] && rm -f $B_TMP; [ -f $T_TMP ] && rm -f $T_TMP; [ -f $hosts_file ] && rm -f $hosts_file;
-               if [ "$(awk '/^MemFree/ {print int($2/1000)}' "/proc/meminfo")" -lt 32 ]; then
-                       output 1 'Low free memory, restarting dnsmasq...'
-                       /etc/init.d/dnsmasq restart >/dev/null 2>&1 && okn || failn
-               fi
-    touch $A_TMP; touch $B_TMP; touch $T_TMP;
-    if [ -n "$blacklist_hosts_urls" ]; then
-           output 1 '[DL] Blocked Hosts '
-           for hf in ${blacklist_hosts_urls}; do process_url "$hf" 'hosts' 'blocked'; done
-                       output 1 '\n'
-               fi
-    if [ -n "$blacklist_domains_urls" ]; then
-           output 1 '[DL] Blocked Domains '
-           for hf in ${blacklist_domains_urls}; do process_url "$hf" 'domains' 'blocked'; done
+download_lists() {
+       local i hf w_filter whitelist_domains blacklist_domains whitelist_domains_urls blacklist_domains_urls blacklist_hosts_urls j=0
+       config_get whitelist_domains          'config' 'whitelist_domain'
+       config_get blacklist_domains          'config' 'blacklist_domain'
+       config_get whitelist_domains_urls     'config' 'whitelist_domains_url'
+       config_get blacklist_domains_urls     'config' 'blacklist_domains_url'
+       config_get blacklist_hosts_urls       'config' 'blacklist_hosts_url'
+
+       ubus_status set 'Reloading '
+       [ ! -d ${dnsmasqFile%/*} ] && mkdir -p ${dnsmasqFile%/*}
+       for i in $A_TMP $B_TMP $CACHE_TMP $dnsmasqFile; do [ -f $i ] && rm -f $i; done
+       if [ "$(awk '/^MemFree/ {print int($2/1000)}' "/proc/meminfo")" -lt 32 ]; then
+               output 3 'Low free memory, restarting dnsmasq...'
+               reload_dnsmasq 'quiet' && output_okn || output_failn
+       fi
+       touch $A_TMP; touch $B_TMP;
+       output 1 'Downloading lists '
+       if [ -n "$blacklist_hosts_urls" ]; then
+               for hf in ${blacklist_hosts_urls}; do
+                       process_url "$hf" 'hosts' 'blocked' &
+               done
+       fi
+       if [ -n "$blacklist_domains_urls" ]; then
+               for hf in ${blacklist_domains_urls}; do
+                       process_url "$hf" 'domains' 'blocked' &
+               done
+       fi
+       if [ -n "$whitelist_domains_urls" ]; then
+               for hf in ${whitelist_domains_urls}; do
+                       process_url "$hf" 'domains' 'allowed' &
+               done
+       fi
+       wait
+       i="$(ubus_status get)"
+       [ "${i//-}" != "$i" ] && serviceStatus="${serviceStatus:-'Download error'}" || unset serviceStatus
+       i="${i//Reloading }"
+       i="${i//-/$xmark}"
+       i="${i//+/$checkmark}"
+       [ "$verbosity" == "1" ] && logmsg="${logmsg}${i}"
+       output 1 '\n'
+
+       [ -n "$blacklist_domains" ] && for hf in ${blacklist_domains}; do echo "$hf" | sed "$d_filter" >> $B_TMP; done
+       whitelist_domains="${whitelist_domains}"$'\n'"$(cat $A_TMP)"
+       [ -n "$whitelist_domains" ] && for hf in ${whitelist_domains}; do hf=$(echo $hf | sed 's/\./\\./g'); w_filter="$w_filter/^${hf}$/d;/\\.${hf}$/d;"; done
+       if [ -s $B_TMP ]; then
+                       output 1 'Processing downloads '
+                       output 2 'Sorting combined list '
+                       if sort $B_TMP | uniq > $A_TMP; then
+                               output_ok
+                       else
+                               output_fail
+                               serviceStatus="${serviceStatus:-'Sorting error'}"
+                       fi
+                       output 2 'Optimizing combined list '
+                       if awk -F "." '{for(f=NF;f>1;f--)printf "%s.",$f;print $1}' "$A_TMP" > "$B_TMP"; then
+                               if sort "$B_TMP" > "$A_TMP"; then
+                                       if awk '{if(NR==1){tld=$NF};while(getline){if($NF!~tld"\\."){print tld;tld=$NF}}print tld}' "$A_TMP" > "$B_TMP"; then
+                                               if awk -F "." '{for(f=NF;f>1;f--)printf "%s.",$f;print $1}' "$B_TMP" > "$A_TMP"; then
+                                                       if sort "$A_TMP" | uniq > "$B_TMP"; then
+                                                               output_ok
+                                                       else
+                                                               output_fail
+                                                               serviceStatus="${serviceStatus:-'Data file optimization error'}"
+                                                               mv $A_TMP $B_TMP
+                                                       fi
+                                               else
+                                                       output_fail
+                                                       serviceStatus="${serviceStatus:-'Data file optimization error'}"
+                                               fi
+                                       else
+                                               output_fail
+                                               serviceStatus="${serviceStatus:-'Data file optimization error'}"
+                                               mv $A_TMP $B_TMP
+                                       fi
+                               else
+                                       output_fail
+                                       serviceStatus="${serviceStatus:-'Data file optimization error'}"
+                               fi
+                       else
+                               output_fail
+                               serviceStatus="${serviceStatus:-'Data file optimization error'}"
+                               mv $A_TMP $B_TMP
+                       fi
+                       output 2 'Whitelisting domains '
+                       if sed -i "$w_filter" $B_TMP; then
+                               output_ok
+                       else
+                               output_fail
+                               serviceStatus="${serviceStatus:-'Whitelist processing error'}"
+                       fi
+                       output 2 'Formatting merged file '
+                       if sed "$f_filter" $B_TMP > $A_TMP; then
+                               output_ok
+                       else
+                               output_fail
+                               serviceStatus="${serviceStatus:-'Data file formatting error'}"
+                       fi
+                       output 2 'Creating dnsmasq config '
+                       if mv $A_TMP $dnsmasqFile; then
+                               output_ok
+                       else
+                               output_fail
+                               serviceStatus="${serviceStatus:-'Error moving data file'}"
+                       fi
+                       output 2 'Removing temporary files '
+                       rm -f /var/simple-adblock_tmp_* >/dev/null 2>&1;
+                       for i in $A_TMP $B_TMP $CACHE_TMP; do if [ -s $i ]; then rm -f $i || j=1; fi; done
+                       if [ $j -eq 0 ]; then
+                               output_ok
+                       else
+                               output_fail
+                               serviceStatus="${serviceStatus:-'Error removing temporary files'}"
+                       fi
                        output 1 '\n'
+       fi
+}
+
+start_service() {
+       local ip status
+       if create_lock; then
+               is_enabled 'on_start' || return 1
+               procd_open_instance
+               procd_set_param command /bin/true
+               procd_set_param stdout 1
+               procd_set_param stderr 1
+               network_get_ipaddr ip 'lan'
+               if [[ $forceDNS -ne 0 && -n "$ip" ]]; then
+                       if is_chaos_calmer; then
+                               fw3_setup 'start'
+                       else
+                               procd_open_data
+                               json_add_array firewall
+                               json_add_object ""
+                               json_add_string type redirect
+                               json_add_string target 'DNAT'
+                               json_add_string src 'lan'
+                               json_add_string proto 'tcpudp'
+                               json_add_string src_dport '53'
+                               json_add_string dest_port '53'
+                               json_add_string dest_ip "$ip"
+                               json_add_string name 'simple_adblock_dns_hijack'
+                               json_add_string reflection '0'
+                               json_close_object
+                               json_close_array
+                               procd_close_data
+                       fi
                fi
-    if [ -n "$whitelist_domains_urls" ]; then
-           output 1 '[DL] Allowed Domains '
-           for hf in ${whitelist_domains_urls}; do process_url "$hf" 'domains' 'allowed'; done
-                       output 1 '\n'
+               procd_close_instance
+               status="$(ubus_status get)"
+               if [ -s "$CACHE_TMP" ] && [ "$1" != "reload" ]; then
+                       output "Starting $serviceName...\n"
+                       output 3 'Found existing data file, reusing it '
+                       mv $CACHE_TMP $dnsmasqFile && output_okn || output_failn
+                       reload_dnsmasq 'on_start' || serviceStatus="${serviceStatus:-'DNSMASQ restart error'}"
+               elif [ "$1" == "reload" ] || [ "$status" == "${status//Success}" ]; then
+                       output "Reloading $serviceName...\n"
+                       download_lists
+                       reload_dnsmasq 'on_start' || serviceStatus="${serviceStatus:-'DNSMASQ restart error'}"
+               elif [ ! -s "$dnsmasqFile" ]; then
+                       output "Starting $serviceName...\n"
+                       download_lists
+                       reload_dnsmasq 'on_start' || serviceStatus="${serviceStatus:-'DNSMASQ restart error'}"
                fi
-               output 3 'Waiting for background processes '
-               wait && okn
-    [ -n "$blacklist_domains" ] && for hf in ${blacklist_domains}; do echo "$hf" | sed "$d_filter" >> $B_TMP; done
-    whitelist_domains="${whitelist_domains}"$'\n'"$(cat $A_TMP)"
-    [ -n "$whitelist_domains" ] && for hf in ${whitelist_domains}; do hf=$(echo $hf | sed 's/\./\\./g'); w_filter="$w_filter/^${hf}$/d;/\\.${hf}$/d;"; done
-               if [ -s $B_TMP ]; then
-                   output 1 'Processing downloads '
-                   output 2 'Sorting merged file '; sort $B_TMP | uniq > $T_TMP && ok || fail
-                   output 2 'Whitelisting domains '; sed -i "$w_filter" $T_TMP && ok || fail
-                   output 2 'Formatting merged file '; sed "$f_filter" $T_TMP > $B_TMP && mv $B_TMP $hosts_file && ok || fail
-                   output 1 '\n'
-                   output 3 'Removing temporary files '
-                       [ -f $A_TMP ] && rm -f $A_TMP; [ -f $B_TMP ] && rm -f $B_TMP; [ -f $T_TMP ] && rm -f $T_TMP;
-                   okn
+               if [ -s "$dnsmasqFile" ]; then
+                       if [ -z "$serviceStatus" ]; then
+                               output "$serviceName is blocking $(wc -l < $dnsmasqFile) domains "; output_okn;
+                               serviceStatus="Success: $(wc -l < $dnsmasqFile) domains blocked"
+                       else
+                               output "$serviceName is blocking $(wc -l < $dnsmasqFile) domains with error: $serviceStatus "; output_failn;
+                               serviceStatus="$(wc -l < $dnsmasqFile) domains blocked with error: $serviceStatus"
+                       fi
                fi
+               [ -n "$serviceStatus" ] && ubus_status set "$serviceStatus"
+               remove_lock
+       else
+               output "$serviceName: another instance is starting up "; output_failn;
+               return 1
        fi
+}
 
-       if [ -s $hosts_file ]; then
-               output 3 'Restarting dnsmasq '
-               /etc/init.d/dnsmasq restart >/dev/null 2>&1
-               if [[ $? -eq 0 ]]; then
-                       led_on; okn;
-                       output "$serviceName blocking $(wc -l < $hosts_file) domains $_OK_\n"
-               else
-                       failn; output "$_ERROR_: $serviceName failed to reload dnsmasq!\n";
-                       exit 1
-               fi
+service_started() { procd_set_config_changed firewall; }
+reload_service() { start_service 'reload'; }
+killcache() { [ -s $CACHE_TMP ] && rm -f $CACHE_TMP >/dev/null 2>/dev/null; }
+
+stop_service() {
+       load_package_config
+       if [ $serviceEnabled -gt 0 ]; then
+               output "Stopping $serviceName...\n"
+               reload_dnsmasq 'on_stop'
        else
-               output "$_ERROR_: $serviceName failed to create its data file!\n"
-               exit 1
+               reload_dnsmasq 'quiet'
        fi
+       ubus_status set 'Stopped'
+       procd_set_config_changed firewall
 }
 
 check() {
        load_package_config
        local string="$1"
-       if [ ! -f $hosts_file ]; then
-               echo "No local blacklist ($hosts_file) found."
+       if [ ! -f $dnsmasqFile ]; then
+               echo "No local blacklist ($dnsmasqFile) found."
        elif [ -z "$string" ]; then
-               echo "Usage: /etc/init.d/${serviceName} check <string>"
-       elif grep -m1 -q $string $hosts_file; then
-               echo "Found $(grep $string $hosts_file | wc -l) matches for $string in $hosts_file:"
-               grep $string $hosts_file | sed 's|local=/||;s|/$||;'
+               echo "Usage: /etc/init.d/${packageName} check 'domain'"
+       elif grep -m1 -q $string $dnsmasqFile; then
+               echo "Found $(grep $string $dnsmasqFile | wc -l) matches for $string in $dnsmasqFile:"
+               grep $string $dnsmasqFile | sed 's|local=/||;s|/$||;'
        else
                echo "The $string is not found in current blacklist."
        fi
 }
-
-start_service() {
-  is_enabled || return 1
-       if [ -f "$hosts_file" ]; then
-               output "Reloading $serviceName...\n"
-               iptables_create 'quiet'
-               start_adblocking 'reload'
-       else
-               output "Starting $serviceName...\n"
-               iptables_create
-               start_adblocking
-       fi
-}
-
-stop_service() {
-  load_package_config
-       output "Stopping $serviceName...\n"
-       iptables_destroy
-       stop_adblocking
-}
-
-killcache() { [ -s $T_TMP ] && rm -f $T_TMP; }
index 6ef72ddb1c5434a3c6f1d6ef24cb379a66a2f47b..61fb12d893afdc31a4b98f232ec63583043ff588 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tor
-PKG_VERSION:=0.3.3.7
+PKG_VERSION:=0.3.3.9
 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:=ea6bb512c4adfbc4e05b22e4c2d06bddff5b358a53de982273fec846b75bde0c
+PKG_HASH:=85346b4d026e6a041c8e326d2cc64b5f5361b032075c89c5854f16dbc02fce6f
 PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de> \
                Peter Wagner <tripolar@gmx.at>
 PKG_LICENSE_FILES:=LICENSE
index 7e05f75e912680f8f50de4b10672a1d730bb6df0..6dfd4b32e0b16f85f58614af2727ac27646f7ab0 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=transmission
 PKG_VERSION:=2.94
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GITHUB/transmission/transmission-releases/master
index 0dad95042829462b7874ac94146f9b48f661eda7..770908c7f2d2119bbf93481dd0ea11d4afe5f78b 100644 (file)
@@ -6,6 +6,7 @@ config transmission
        option group 'transmission'
        option mem_percentage 50
        option nice 10
+       option web_home ''
        option alt_speed_down 50
        option alt_speed_enabled false
        option alt_speed_time_begin  540
index c7593ac1d691168b8ffec659abb7633d08538f0e..521fe20b83ed0bc95933ab9a5f9d781872003aea 100644 (file)
@@ -52,6 +52,7 @@ transmission() {
        local mem_percentage
        local nice
        local cmdline
+       local web_home
 
        section_enabled "$section" || return 1
 
@@ -62,6 +63,7 @@ transmission() {
        config_get mem_percentage "$cfg" 'mem_percentage' '50'
        config_get config_overwrite "$cfg" config_overwrite 1
        config_get nice "$cfg" nice 0
+       config_get web_home "$cfg" 'web_home'
 
        local MEM=$(sed -ne 's!^MemTotal:[[:space:]]*\([0-9]*\) kB$!\1!p' /proc/meminfo)
        if test "$MEM" -gt 1;then
@@ -123,6 +125,10 @@ transmission() {
                logger -t transmission "Starting with $USE virt mem"
        fi
 
+       if test -d "$web_home"; then
+               procd_set_param env TRANSMISSION_WEB_HOME="$web_home"
+       fi
+
        procd_add_jail transmission log
        procd_add_jail_mount $config_file
        procd_add_jail_mount_rw $download_dir
diff --git a/net/uwsgi-cgi/LICENSE b/net/uwsgi-cgi/LICENSE
deleted file mode 100644 (file)
index 9c4309b..0000000
+++ /dev/null
@@ -1,355 +0,0 @@
-----------------------------------------------------------------------
-
-LINKING EXCEPTION
-
- In addition to the permissions in the GNU General Public License,
- the authors give you unlimited permission to link the compiled
- version of this library into combinations with other programs,
- and to distribute those combinations without any restriction
- coming from the use of this file. (The General Public License
- restrictions do apply in other respects; for example, they cover
- modification of the file, and distribution when not linked into
- a combined executable.)
-
-----------------------------------------------------------------------
-
-
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
index b80472ea8b3beb4b68ec5f8f02997be3010813d3..7c991c9ea732def63897a6ba4bdcca5d1eb72ea8 100644 (file)
@@ -2,15 +2,14 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uwsgi-cgi
 PKG_VERSION:=2.0.17.1
-PKG_RELEASE:=1
+PKG_RELEASE:=4
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/unbit/uwsgi
-PKG_SOURCE_DATE:=2018-07-08
-PKG_SOURCE_VERSION:=4b3e9621c0a3eb2aacf937b8e84e67b23b20490b
-PKG_MIRROR_HASH:=a843909ad5e8c36b86392d99c8bd411a84c14ad51993ba63638180212c7819e2
+PKG_SOURCE_URL=https://codeload.github.com/unbit/uwsgi/tar.gz/$(PKG_VERSION)?
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=d2318235c74665a60021a4fc7770e9c2756f9fc07de7b8c22805efe85b5ab277
+PKG_BUILD_DIR:=$(BUILD_DIR)/uwsgi-$(PKG_VERSION)
 
-PKG_LICENSE:=GPL2 + linking exception
+PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=LICENSE
 PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
 
@@ -23,7 +22,7 @@ define Package/uwsgi-cgi
   SUBMENU:=Web Servers/Proxies
   TITLE:=The uWSGI server
   URL:=http://unbit.com/
-  DEPENDS:=+libcap +libopenssl +libpcre +jansson +libuuid +libxml2
+  DEPENDS:=+libcap +jansson +libuuid
 endef
 
 define Package/uwsgi-cgi-luci-support
@@ -54,9 +53,7 @@ endef
 define Package/uwsgi-cgi-luci-support/install
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files-luci-support/uwsgi.init $(1)/etc/init.d/uwsgi
-       $(INSTALL_DIR) $(1)/etc/uwsgi
-       $(INSTALL_BIN) ./files-luci-support/uwsgi.conf $(1)/etc/uwsgi/uwsgi.conf
-       $(INSTALL_DIR) $(1)/etc/nginx
+       $(INSTALL_BIN) ./files-luci-support/uwsgi.conf $(1)/etc/uwsgi.conf
 endef
 
 $(eval $(call BuildPackage,uwsgi-cgi))
index 84c32bbfb33ab89712a399b3c42f3897ce18fe6a..7e8b2e56c880cc65a103c2fa1cf451e00c73274c 100644 (file)
@@ -1,28 +1,27 @@
 [uwsgi]
-stric = True
-uwsgi_modifier1 = 9
-socket = /var/run/uwsgi.sock
-cgi-mode = true
-cgi = /www/cgi-bin/luci
-chdir = /usr/lib/lua/luci/
-master = True
-buffer-size = 10000
-reload-mercy=8
-max-requests=2000
-limit-as=200
-reload-on-as=256
-reload-on-rss=192
-no-orphans=True
-vacuum=True
-enable-threads=True
-post-buffering=8192
-socket-timeout=120
-thunder-lock = True
-logger = syslog:uwsgi
-daemonize = True
-disable-logging = True
-log-format = %(addr) %(method) %(uri) => generated %(rsize) bytes in %(msecs) msecs
-pidfile=/var/run/uwsgi.pid
-die-on-term=True
-fork-socket=True
-pcre-jit=True
\ No newline at end of file
+strict         = true
+socket         = /var/run/uwsgi.sock
+cgi-mode       = true
+cgi            = /www/cgi-bin/luci
+chdir          = /usr/lib/lua/luci/
+master         = true
+buffer-size    = 10000
+reload-mercy   = 8
+max-requests   = 2000
+limit-as       = 200
+reload-on-as   = 256
+reload-on-rss  = 192
+no-orphans     = true
+vacuum         = true
+enable-threads = true
+post-buffering = 8192
+socket-timeout = 120
+thunder-lock   = true
+logger         = syslog:uwsgi
+disable-logging        = true
+log-format     = %(addr) %(method) %(uri) => generated %(rsize) bytes in %(msecs) msecs
+pidfile                = /var/run/uwsgi.pid
+die-on-term    = true
+threads                = 3
+processes      = 3
+chmod-socket   = 666
index 7897180f609165b56502dfa7c550a33f12b6678a..af2a307e9a6492a6476084076775342f2afa3b82 100644 (file)
@@ -1,34 +1,13 @@
-#!/bin/sh /etc/rc.common 
+#!/bin/sh /etc/rc.common
 
 START=79
-
-start() {
-       core_number=$(grep -c ^processor /proc/cpuinfo)
-       /usr/sbin/uwsgi --ini /etc/uwsgi/uwsgi.conf --threads $core_number --processes $(($core_number * 2))
-       logger -ts "Uwsgi" "Starting Uwsgi process"
-}                 
-stop() {
-       pidfile="/var/run/uwsgi.pid"
-       if [ -n "$(pgrep uwsgi)" ]; then
-               if [ -f $pidfile ]; then
-                       logger -t "Uwsgi" "Stopping Uwsgi process"
-                       kill $( cat $pidfile )
-               else
-                       for pid in $(pgrep uwsgi); do
-                               if [ -n "$(pgrep uwsgi)" ]; then
-                                       #Keep trying to kill until the master process is found
-                                       kill -KILL $pid
-                               fi
-                       done
-               fi
-       else 
-               logger -t "Uwsgi" "Uwsgi not running!"
-       fi
-}
-
-reload() {
-       /usr/sbin/uwsgi --reload /var/run/uwsgi.pid
-}
-
+USE_PROCD=1
+
+start_service() {
+       procd_open_instance
+       procd_set_param command /usr/sbin/uwsgi --ini /etc/uwsgi.conf
+       procd_set_param file /etc/uwsgi.conf
+       procd_set_param respawn
+       procd_close_instance
+       }
 
diff --git a/net/uwsgi-cgi/patches/001-remove-unused-deps.patch b/net/uwsgi-cgi/patches/001-remove-unused-deps.patch
new file mode 100644 (file)
index 0000000..2b058c3
--- /dev/null
@@ -0,0 +1,17 @@
+--- a/buildconf/base.ini
++++ b/buildconf/base.ini
+@@ -1,9 +1,9 @@
+ [uwsgi]
+-xml = auto
+-yaml = true
+-json = auto
+-ssl = auto
+-pcre = auto
++xml = false
++yaml = embedded
++json = jansson
++ssl = false
++pcre = false
+ routing = auto
+ debug = false
+ unbit = false
diff --git a/net/uwsgi-cgi/patches/002-dont-hardcode-zlib.patch b/net/uwsgi-cgi/patches/002-dont-hardcode-zlib.patch
new file mode 100644 (file)
index 0000000..23ca62d
--- /dev/null
@@ -0,0 +1,19 @@
+--- a/uwsgiconfig.py
++++ b/uwsgiconfig.py
+@@ -851,11 +851,11 @@ class uConf(object):
+                 self.cflags.append('-DUWSGI_HAS_EXECINFO')
+                 report['execinfo'] = True
+-        if self.has_include('zlib.h'):
+-            self.cflags.append('-DUWSGI_ZLIB')
+-            self.libs.append('-lz')
+-            self.gcc_list.append('core/zlib')
+-            report['zlib'] = True
++#        if self.has_include('zlib.h'):
++#            self.cflags.append('-DUWSGI_ZLIB')
++#            self.libs.append('-lz')
++#            self.gcc_list.append('core/zlib')
++            report['zlib'] = False
+         if uwsgi_os == 'OpenBSD':
+             try:
diff --git a/net/uwsgi-cgi/patches/003-dont-override-toolchain-optimization.patch b/net/uwsgi-cgi/patches/003-dont-override-toolchain-optimization.patch
new file mode 100644 (file)
index 0000000..196edfb
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/uwsgiconfig.py
++++ b/uwsgiconfig.py
+@@ -680,7 +680,7 @@ class uConf(object):
+             self.include_path += os.environ['UWSGI_INCLUDES'].split(',')
+-        self.cflags = ['-O2', '-I.', '-Wall', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64'] + os.environ.get("CFLAGS", "").split() + self.get('cflags','').split()
++        self.cflags = ['-I.', '-Wall', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64'] + os.environ.get("CFLAGS", "").split() + self.get('cflags','').split()
+         report['kernel'] = uwsgi_os
diff --git a/net/uwsgi-cgi/patches/004-hard-code-Linux-as-compilation-os.patch b/net/uwsgi-cgi/patches/004-hard-code-Linux-as-compilation-os.patch
new file mode 100644 (file)
index 0000000..0459ed0
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/uwsgiconfig.py
++++ b/uwsgiconfig.py
+@@ -5,9 +5,9 @@
+ import os
+ import re
+ import time
+-uwsgi_os = os.uname()[0]
+-uwsgi_os_k = re.split('[-+_]', os.uname()[2])[0]
+-uwsgi_os_v = os.uname()[3]
++uwsgi_os = "Linux"
++uwsgi_os_k = "4.4.0"
++uwsgi_os_v = "Linux"
+ uwsgi_cpu = os.uname()[4]
+ import sys
index 64a6a08a88584548ec0c70c9642c1e57e69709eb..fa03cc60eab0066608552dde63c64f5418391250 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=wget
 PKG_VERSION:=1.19.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
@@ -67,7 +67,8 @@ CONFIGURE_ARGS+= \
        --disable-rpath \
        --disable-iri \
        --with-included-libunistring \
-       --without-libuuid
+       --without-libuuid \
+       --without-libpsl
 
 CONFIGURE_VARS += \
        ac_cv_header_uuid_uuid_h=no
index 21b9c955953446d4b3b01c4b4e52f323c60a057b..76c443c167206e00e4c6327f433e91a539009fe2 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=znc
-PKG_VERSION:=1.6.6
-PKG_RELEASE:=1
+PKG_VERSION:=1.7.1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://znc.in/releases \
                https://znc.in/releases/archive
-PKG_HASH:=7fb841bc71dc1749b1dc081e9eaf22ceb56ebb03c6b1d8804a4f9eb8bbd59525
+PKG_HASH:=44cfea7158ea05dc2547c7c6bc22371e66c869def90351de0ab90a9c200d39c4
 
-PKG_MAINTAINER:=Jonas Gorski <jogo@openwrt.org>
+PKG_MAINTAINER:=Jonas Gorski <jonas.gorski@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
@@ -279,7 +279,7 @@ PKG_CONFIG_DEPENDS += $(patsubst %,CONFIG_PACKAGE_%,$(ZNC_MODULES))
 include $(INCLUDE_DIR)/package.mk
 
 CONFIGURE_VARS += \
-       CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -fno-rtti" \
+       CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin" \
        CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \
        LDFLAGS="-nodefaultlibs -lc -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \
        LIBS="-lstdc++ -lm -lssl -lcrypto $(LIBGCC_S) -lc"
diff --git a/net/znc/patches/100-move_rootcheck_after_config.patch b/net/znc/patches/100-move_rootcheck_after_config.patch
deleted file mode 100644 (file)
index 15ecdca..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From adf42357c9043c38d9a9b47544a1b46445bdae19 Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
-Date: Wed, 6 Apr 2011 04:10:23 +0200
-Subject: [PATCH] Move the root check to after config parsing
-
----
- src/main.cpp | 27 ++++++++++++++-------------
- 1 file changed, 14 insertions(+), 13 deletions(-)
-
---- a/src/main.cpp
-+++ b/src/main.cpp
-@@ -312,19 +312,6 @@ int main(int argc, char** argv) {
-               CUtils::PrintStatus(true, "");
-       }
--      if (isRoot()) {
--              CUtils::PrintError("You are running ZNC as root! Don't do that! There are not many valid");
--              CUtils::PrintError("reasons for this and it can, in theory, cause great damage!");
--              if (!bAllowRoot) {
--                      CZNC::DestroyInstance();
--                      return 1;
--              }
--              CUtils::PrintError("You have been warned.");
--              CUtils::PrintError("Hit CTRL+C now if you don't want to run ZNC as root.");
--              CUtils::PrintError("ZNC will start in 30 seconds.");
--              sleep(30);
--      }
--
-       if (bMakeConf) {
-               if (!pZNC->WriteNewConfig(sConfig)) {
-                       CZNC::DestroyInstance();
-@@ -346,6 +333,20 @@ int main(int argc, char** argv) {
-               return 1;
-       }
-+      if (isRoot()) {
-+              CUtils::PrintError("You are running ZNC as root! Don't do that! There are not many valid");
-+              CUtils::PrintError("reasons for this and it can, in theory, cause great damage!");
-+              if (!bAllowRoot) {
-+                      CZNC::DestroyInstance();
-+                      return 1;
-+              }
-+              CUtils::PrintError("You have been warned.");
-+              CUtils::PrintError("Hit CTRL+C now if you don't want to run ZNC as root.");
-+              CUtils::PrintError("ZNC will start in 30 seconds.");
-+              sleep(30);
-+      }
-+
-+
-       if (bForeground) {
-               int iPid = getpid();
-               CUtils::PrintMessage("Staying open for debugging [pid: " + CString(iPid) + "]");
index 60d335c74b989c4ef85c2871a293defb0d9fe23c..6282482f0b1e69cb8713a5f4ddba0ab0614a9393 100644 (file)
@@ -11,7 +11,7 @@ Subject: [PATCH] Don't rebuild everything when the Makefile's timestamp
 
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -112,7 +112,7 @@ clean:
+@@ -128,7 +128,7 @@ clean:
  distclean: clean
        rm -rf $(DISTCLEAN)
  
@@ -22,7 +22,7 @@ Subject: [PATCH] Don't rebuild everything when the Makefile's timestamp
        $(Q)$(CXX) $(CXXFLAGS) -c -o $@ $< -MD -MF .depend/$*.dep -MT $@
 --- a/modules/Makefile.in
 +++ b/modules/Makefile.in
-@@ -112,12 +112,12 @@ install_datadir:
+@@ -127,12 +127,12 @@ install_datadir:
  clean:
        rm -rf $(CLEAN)
  
index d92deeea3437f1093983b8028e09b712a4f60010..6395af59187d59f7674fa9093265a63312bc1c55 100644 (file)
@@ -1,15 +1,17 @@
 --- a/src/main.cpp
 +++ b/src/main.cpp
-@@ -304,10 +304,12 @@ int main(int argc, char** argv) {
-                       CUtils::PrintStatus(false, "");
-                       CUtils::PrintError("No modules found. Perhaps you didn't install ZNC properly?");
-                       CUtils::PrintError("Read http://wiki.znc.in/Installation for instructions.");
+@@ -412,12 +412,14 @@ int main(int argc, char** argv) {
+                 "No modules found. Perhaps you didn't install ZNC properly?");
+             CUtils::PrintError(
+                 "Read https://wiki.znc.in/Installation for instructions.");
 +#if 0
-                       if (!CUtils::GetBoolInput("Do you really want to run ZNC without any modules?", false)) {
-                               CZNC::DestroyInstance();
-                               return 1;
-                       }
+             if (!CUtils::GetBoolInput(
+                     "Do you really want to run ZNC without any modules?",
+                     false)) {
+                 CZNC::DestroyInstance();
+                 return 1;
+             }
 +#endif
-               }
-               CUtils::PrintStatus(true, "");
-       }
+         }
+         CUtils::PrintStatus(true, "");
+     }
index 771984cba3ec9caf435fc2963108f8b08bbc73de..132f22fb0f20ae5a9c0378913a30d91d4176f2cf 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mpd
-PKG_VERSION:=0.20.9
-PKG_RELEASE:=2
+PKG_VERSION:=0.20.20
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.musicpd.org/download/mpd/0.20/
-PKG_HASH:=cd77a2869e32354b004cc6b34fcb0bee56114caa2d9ed862aaa8071441e34eb7
+PKG_HASH:=a9e458c6e07cdf62649de7722e1e5a7f13aa82eeb397bfbbebc07cf5cf273584
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
 PKG_LICENSE:=GPL-2.0
@@ -35,7 +35,7 @@ define Package/mpd/Default
   TITLE:=Music Player Daemon
   URL:=http://www.musicpd.org/
   DEPENDS:= +zlib +libcurl +libpthread +libmpdclient +libstdcpp $(ICONV_DEPENDS) \
-           +AUDIO_SUPPORT:alsa-lib +boost +boost-container +libexpat
+           +AUDIO_SUPPORT:alsa-lib +boost +boost-container +libexpat +libflac
 endef
 
 define Package/mpd/Default/description
@@ -66,7 +66,7 @@ endef
 define Package/mpd-mini
 $(call Package/mpd/Default)
   TITLE+= (mini)
-  DEPENDS+= +libflac +libmpg123 +libvorbisidec
+  DEPENDS+= +libmpg123 +libvorbisidec
   PROVIDES:=mpd
   VARIANT:=mini
 endef
@@ -162,7 +162,6 @@ ifeq ($(BUILD_VARIANT),full)
   CONFIGURE_ARGS += \
        --enable-upnp \
        --enable-ffmpeg \
-       --disable-flac \
        --enable-id3 \
        --enable-mms \
        --disable-mpg123 \
index 7f31d7d06d76a5b43ebba23ea88234a605a95096..a8981cdd63586798208c5996e8263fb430c2d135 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx
 +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
-@@ -931,6 +931,7 @@ static const char *const ffmpeg_mime_typ
+@@ -937,6 +937,7 @@ static const char *const ffmpeg_mime_typ
        "audio/qcelp",
        "audio/vorbis",
        "audio/vorbis+ogg",
index b91f629a2b76f912da35aa6dccf536f48faa1d56..0d66b34baedfc40c01f8a28801412d5e9495ea30 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2011-2016 OpenWrt.org
+# Copyright (C) 2011-2018 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pulseaudio
-PKG_VERSION:=12.0
+PKG_VERSION:=12.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://freedesktop.org/software/pulseaudio/releases/
-PKG_HASH:=6e422dbdc9fd11c0cb6af869e5eda73dc24a8be3c14725440edd51ce6b464444
+PKG_HASH:=809668ffc296043779c984f53461c2b3987a45b7a25eb2f0a1d11d9f23ba4055
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=GPL LICENSE
 
@@ -50,7 +50,6 @@ endef
 define Package/pulseaudio-daemon-avahi
   $(call Package/pulseaudio/Default)
   DEPENDS+=+dbus +libavahi-client +sbc
-#  DEPENDS+=+avahi-daemon 
   TITLE+= (avahi/bluez)
   VARIANT:=avahi
 endef
@@ -124,7 +123,6 @@ CONFIGURE_ARGS += \
        --without-fftw \
        --without-soxr \
        --without-speex
-# --disable-bluez
 
 ifeq ($(BUILD_VARIANT),avahi)
 CONFIGURE_ARGS += \
@@ -141,9 +139,6 @@ endif
 CONFIGURE_VARS += \
        PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig"
 
-#SUPP_LIBS:=-L$(INTL_PREFIX)/lib -L$(ICONV_PREFIX)/lib
-TARGET_CFLAGS += -std=gnu99
-
 define Build/InstallDev
        $(INSTALL_DIR) \
                $(1)/usr/lib/pkgconfig \
index 2b99c700ad430d9ed9bfc5c4b5abe97a47f30a40..680377aa2db89632f0f0b4af127fdbb1ffedb6cd 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shine
-PKG_VERSION:=3.1.0
-PKG_RELEASE:=2
+PKG_VERSION:=3.1.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/toots/shine/releases/download/$(PKG_VERSION)/
-PKG_HASH:=6c5310bda766b116ed2415d639a27e5e11040e068b4b2db6bd733333e620cb4f
+PKG_HASH:=58e61e70128cf73f88635db495bfc17f0dde3ce9c9ac070d505a0cd75b93d384
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
diff --git a/sound/shine/patches/002-fix-name-collision-with-ffmpeg.patch b/sound/shine/patches/002-fix-name-collision-with-ffmpeg.patch
deleted file mode 100644 (file)
index 83ddb5e..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From 3695118267be9b7a9412c86c7c5424ab47efe7ec Mon Sep 17 00:00:00 2001
-From: Romain Beauxis <toots@rastageeks.org>
-Date: Thu, 7 Apr 2016 13:20:46 -0500
-Subject: [PATCH] Rename slen{1,2}_table to avoid name collision with ffmpeg.
-
----
- src/lib/l3bitstream.c | 4 ++--
- src/lib/l3loop.c      | 4 ++--
- src/lib/tables.c      | 4 ++--
- src/lib/tables.h      | 4 ++--
- 4 files changed, 8 insertions(+), 8 deletions(-)
-
---- a/src/lib/l3bitstream.c
-+++ b/src/lib/l3bitstream.c
-@@ -127,8 +127,8 @@ static void encodeMainData(shine_global_
-         {
-           BF_PartHolder **pph = &config->l3stream.scaleFactorsPH[gr][ch];
-           gr_info *gi = &(si.gr[gr].ch[ch].tt);
--          unsigned slen1 = slen1_tab[ gi->scalefac_compress ];
--          unsigned slen2 = slen2_tab[ gi->scalefac_compress ];
-+          unsigned slen1 = shine_slen1_tab[ gi->scalefac_compress ];
-+          unsigned slen2 = shine_slen2_tab[ gi->scalefac_compress ];
-           int *ix = &config->l3_enc[ch][gr][0];
-           if ( (gr == 0) || (si.scfsi[ch][0] == 0) )
---- a/src/lib/l3loop.c
-+++ b/src/lib/l3loop.c
-@@ -287,8 +287,8 @@ int part2_length(int gr, int ch, shine_g
-   bits = 0;
-   {
--    slen1 = slen1_tab[ gi->scalefac_compress ];
--    slen2 = slen2_tab[ gi->scalefac_compress ];
-+    slen1 = shine_slen1_tab[ gi->scalefac_compress ];
-+    slen2 = shine_slen2_tab[ gi->scalefac_compress ];
-     if ( !gr || !(config->side_info.scfsi[ch][0]) )
-       bits += (6 * slen1);
---- a/src/lib/tables.c
-+++ b/src/lib/tables.c
-@@ -7,8 +7,8 @@
\r
- #include "tables.h"\r
\r
--const int slen1_tab[16] = { 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 };\r
--const int slen2_tab[16] = { 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3 };\r
-+const int shine_slen1_tab[16] = { 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 };\r
-+const int shine_slen2_tab[16] = { 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3 };\r
\r
- /* Valid samplerates and bitrates. */\r
- const int samplerates[9] = {\r
---- a/src/lib/tables.h
-+++ b/src/lib/tables.h
-@@ -3,8 +3,8 @@
\r
- #include "types.h"\r
\r
--extern const int slen1_tab[16];\r
--extern const int slen2_tab[16];\r
-+extern const int shine_slen1_tab[16];\r
-+extern const int shine_slen2_tab[16];\r
\r
- extern const int samplerates[9];\r
- extern const int bitrates[16][4];\r
index ad35355565149be302fb0b43aac2a469bf19407f..0a79cde726546d9e296b882e9ab0f6415e309a3e 100644 (file)
@@ -8,16 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=attr
-PKG_REV:=cfd8e6ef491a7a5ff900ba2ba3deff7d0bebb0a6
-PKG_VERSION:=20170915
+PKG_VERSION:=2.4.48
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://git.savannah.gnu.org/git/attr.git
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_MIRROR_HASH:=3c4f9331fd73192801a30071a379f07b48699adffe0d560133a740ade029a04c
+PKG_SOURCE_URL:=http://git.savannah.nongnu.org/cgit/attr.git/snapshot
+PKG_HASH:=095699f71230ace37e5bc680c6f9d15cf8e53eb38d00b2c46db5cc7e0712e5f3
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 
 PKG_LICENSE:=LGPL-2.1 GPL-2.0
index 20f92581828df4ec9971f87ea85c4f5e2e67c337..1a821dffdfabf00d2173803bd6130d993ad327ee 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=btrfs-progs
-PKG_VERSION:=4.16.1
+PKG_VERSION:=4.17
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/kdave/btrfs-progs/
-PKG_HASH:=013403fb67b17975b21408fa9eb7523b0ecf94f84f8a4397cf972e8e254d2246
+PKG_HASH:=82ca0ecf76350a1e3c6543fe220c0910e240511e663d51fc79c32bd0052c117c
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION)
 
@@ -54,6 +54,9 @@ CONFIGURE_ARGS += \
        --disable-python \
        --disable-zstd
 
+TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
+TARGET_LDFLAGS += -Wl,--gc-sections -flto
+
 EXTRA_CFLAGS=$(TARGET_CPPFLAGS)
 
 define Build/InstallDev
index b3d5fb843e840181b6321dd6659bc9d41a11c828..7e83795e5ebab863943cf6d2f30b4df72f3bf334 100644 (file)
@@ -184,6 +184,8 @@ PKG_CONFIG_DEPENDS:= \
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/kernel.mk
+# collectd-mod-mysql needs iconv
+include $(INCLUDE_DIR)/nls.mk
 
 define Package/collectd/Default
   SECTION:=utils
index 3c6fdb4ca35d411dba25146ed72e451d6678650c..df221b8867f9bf44c81482dfecfec89e83397760 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fio
-PKG_VERSION:=3.6
+PKG_VERSION:=3.7
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Dragan Stancevic <ds@codeminutia.com>
 PKG_LICENSE:=GPL-2.0+
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE_URL:=http://brick.kernel.dk/snaps
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=026a2cbb4a1bc9810f13f23d07eb146dbd4325bb467221dc49b88915ee8a52b4
+PKG_HASH:=73aba1b307f084ba5ec3ac3084233e3a0ef297a2991e904ab391cc95f07f003c
 
 include $(INCLUDE_DIR)/package.mk
 
diff --git a/utils/irqbalance/patches/300-upstream-fix-for-AARCH64.patch b/utils/irqbalance/patches/300-upstream-fix-for-AARCH64.patch
new file mode 100644 (file)
index 0000000..867de0e
--- /dev/null
@@ -0,0 +1,21 @@
+From b0f77c10fc4561463b59b12cba0bfd69d7c73934 Mon Sep 17 00:00:00 2001
+From: Timo Teräs <timo.teras@iki.fi>
+Date: Tue, 10 Jan 2017 09:51:32 +0200
+Subject: [PATCH] fix aarch64 compile error due to undefined variable
+
+fixes #36
+
+Signed-off-by: Timo Teräs <timo.teras@iki.fi>
+
+--- a/procinterrupts.c
++++ b/procinterrupts.c
+@@ -148,6 +148,9 @@ GList* collect_full_irq_list()
+       char *line = NULL;
+       size_t size = 0;
+       char *irq_name, *irq_mod, *savedptr, *last_token, *p;
++#ifdef AARCH64
++      char *tmp;
++#endif
+       file = fopen("/proc/interrupts", "r");
+       if (!file)
index 7eb2b438881561dadfcd35c823f5c9459e09d7cd..3872c455cfbca9ec969d048251e9a30ecaa42a2e 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=picocom
-PKG_VERSION:=1.7
-PKG_RELEASE:=2
+PKG_VERSION:=3.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/picocom
-PKG_HASH:=d0f31c8f7a215a76922d30c81a52b9a2348c89e02a84935517002b3bc2c1129e
+PKG_SOURCE_URL:=https://codeload.github.com/npat-efault/picocom/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=e6761ca932ffc6d09bd6b11ff018bdaf70b287ce518b3282d29e0270e88420bb
 
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 PKG_LICENSE:=GPL-2.0+
@@ -24,7 +24,7 @@ define Package/picocom
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=A minimal dumb-terminal emulation program
-  URL:=http://code.google.com/p/picocom/
+  URL:=https://github.com/npat-efault/picocom
   SUBMENU:=Terminal
 endef
 
diff --git a/utils/picocom/patches/010-fix-compile.patch b/utils/picocom/patches/010-fix-compile.patch
new file mode 100644 (file)
index 0000000..ec4ecb5
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/Makefile b/Makefile
+index d6a4d60..a07d801 100644
+--- a/Makefile
++++ b/Makefile
+@@ -51,7 +51,6 @@ linenoise-1.0/linenoise.o : linenoise-1.0/linenoise.c linenoise-1.0/linenoise.h
+ OBJS += picocom.o term.o fdio.o split.o termios2.o custbaud_bsd.o
+ picocom : $(OBJS)
+-      $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
+ picocom.o : picocom.c term.h fdio.h split.h custbaud.h
+ term.o : term.c term.h termios2.h custbaud_bsd.h custbaud.h
diff --git a/utils/picocom/patches/100-musl-compat.patch b/utils/picocom/patches/100-musl-compat.patch
deleted file mode 100644 (file)
index 5f7d750..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: picocom-1.7/term.c
-===================================================================
---- picocom-1.7.orig/term.c
-+++ picocom-1.7/term.c
-@@ -33,10 +33,11 @@
- #include <string.h>
- #include <errno.h>
- #include <unistd.h>
--#ifdef __linux__
-+#if defined(__linux__) && (defined(__GLIBC__) || defined(__UCLIBC__))
- #include <termio.h>
- #else
- #include <termios.h>
-+#include <sys/ioctl.h>
- #endif /* of __linux__ */
- #include "term.h"
index 2c38ae353d18aa495a7c3791494ef4cb25991b16..2fc73562ff3beb4071c4ef564e62582ee74cf9bc 100644 (file)
@@ -4,10 +4,10 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=prometheus-node-exporter-lua
-PKG_VERSION:=2018.06.26
+PKG_VERSION:=2018.07.23
 PKG_RELEASE:=1
 
-PKG_MAINTAINER:=Christian Simon <simon@swine.de>
+PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
 PKG_LICENSE:=Apache-2.0
 
 include $(INCLUDE_DIR)/package.mk
@@ -79,6 +79,7 @@ endef
 define Package/prometheus-node-exporter-lua-openwrt
   $(call Package/prometheus-node-exporter-lua/Default)
   TITLE+= (openwrt collector)
+  DEPENDS:=prometheus-node-exporter-lua
 endef
 
 Build/Compile=
@@ -92,6 +93,7 @@ define Package/prometheus-node-exporter-lua/install
        $(INSTALL_BIN) ./files/usr/bin/prometheus-node-exporter-lua $(1)/usr/bin/prometheus-node-exporter-lua
        $(INSTALL_DIR) $(1)/usr/lib/lua/prometheus-collectors
        $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/cpu.lua         $(1)/usr/lib/lua/prometheus-collectors/
+       $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/conntrack.lua   $(1)/usr/lib/lua/prometheus-collectors/
        $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/filefd.lua      $(1)/usr/lib/lua/prometheus-collectors/
        $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/loadavg.lua     $(1)/usr/lib/lua/prometheus-collectors/
        $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/meminfo.lua     $(1)/usr/lib/lua/prometheus-collectors/
diff --git a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/conntrack.lua b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/conntrack.lua
new file mode 100644 (file)
index 0000000..93b26c2
--- /dev/null
@@ -0,0 +1,8 @@
+local function scrape()
+  metric("node_nf_conntrack_entries", "gauge", nil,
+    string.sub(get_contents("/proc/sys/net/netfilter/nf_conntrack_count"), 1, -2))
+  metric("node_nf_conntrack_entries_limit", "gauge", nil,
+    string.sub(get_contents("/proc/sys/net/netfilter/nf_conntrack_max"), 1, -2))
+end
+
+return { scrape = scrape }
index 352579a45d11e1d0cc47251be56e57ff9ca59118..5cbd22f2e9acb0ca201ce5ba40d899e4164b136a 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2016, 2018 OpenWrt.org
+# Copyright (C) 2016, 2018 Jeffery To
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=slide-switch
-PKG_VERSION:=0.9.1
+PKG_VERSION:=0.9.2
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/jefferyto/openwrt-slide-switch.git
-PKG_SOURCE_VERSION:=d70b5a09f457050e7e3b45fe03787945aa8880a0
+PKG_SOURCE_VERSION:=234293255f919cc00dc799f4729401e91b5091c9
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=78227e0cdc36f105b4fc5657620e41d6bb429eeef76419ce2cd53d2b6700ce31
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(call version_abbrev,$(PKG_SOURCE_VERSION)).tar.xz
+PKG_MIRROR_HASH:=ca405699c826428a13b174d5ec70c8b60fdde6467184b1fa0a09df3643bf24d3
 
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
index d1f8e5dd893b4a021a23c71b02bef1d6dd0da7ae..3f159b328f66843429a64ebc3d924fc387cdce81 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tio
-PKG_VERSION:=1.30
+PKG_VERSION:=1.31
 PKG_RELEASE:=1
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0+
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/releases/download/v$(PKG_VERSION)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=5c86c392a7783c9a3963421087c4a3fd8a32d5d5c705d2ce979bcf011659ac9d
+PKG_HASH:=4e72825914dac77c4587c0772accbd7a1292d5c5895bd49ad1477707b3203e42
 
 PKG_FIXUP:=autoreconf
 
index 7f57432391cb6f70d6096f7e76573208e734f41a..ca598ab034b08311681353ecbf1f2a312ab12436 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uvcdynctrl
-PKG_VERSION:=0.2.4
-PKG_REV:=2
+PKG_VERSION:=0.2.5
+PKG_RELEASE:=1
 
 PKG_SOURCE:=libwebcam-src-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/libwebcam
-PKG_HASH:=91741aca11f079eb6d043e31b7da6fe1f7927c28d7496590386928f8466b4297
+PKG_HASH:=3ca5199c7b8398b655a7c38e3ad4191bb053b1486503287f20d30d141bda9d41
 PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/libwebcam-src-$(PKG_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/libwebcam-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
@@ -26,7 +26,7 @@ define Package/uvcdynctrl
   CATEGORY:=Utilities
   DEPENDS:=+libwebcam
   TITLE:=Manage dynamic controls in uvcvideo
-  URL:=http://sourceforge.net/projects/libwebcam/
+  URL:=https://sourceforge.net/projects/libwebcam/
   MENU:=1
 endef
 
@@ -41,7 +41,7 @@ define Package/libwebcam
   CATEGORY:=Libraries
   DEPENDS:=+libxml2 +libiconv-full
   TITLE:=Webcam library
-  URL:=http://sourceforge.net/projects/libwebcam/
+  URL:=https://sourceforge.net/projects/libwebcam/
 endef
 
 define Package/libwebcam/description