Merge pull request #4825 from nxhack/node-hid_fix_depends
authorchamptar <champetier.etienne@gmail.com>
Sat, 23 Sep 2017 22:19:35 +0000 (15:19 -0700)
committerGitHub <noreply@github.com>
Sat, 23 Sep 2017 22:19:35 +0000 (15:19 -0700)
node-hid: Correct multiple DEPENDS lines

81 files changed:
.travis_do.sh
admin/netdata/Makefile
lang/python/python-curl/Makefile [new file with mode: 0644]
lang/python/python-dpkt/Makefile [new file with mode: 0644]
lang/python/python/Makefile
lang/python/python/files/python-host.mk
lang/python/python3/Makefile
lang/python/python3/files/python3-host.mk
lang/ruby/Makefile
lang/ruby/patches/010-configure-2.4.2.patch [new file with mode: 0644]
libs/file/Makefile
libs/libcoap/Makefile
libs/libffi/Makefile
libs/libnetconf2/Makefile
libs/libredblack/Makefile [new file with mode: 0644]
libs/libtins/Makefile [new file with mode: 0644]
libs/libyang/Makefile
libs/sqlite3/Makefile
mail/dovecot/Makefile
mail/pigeonhole/Makefile
multimedia/youtube-dl/Makefile
net/adblock/Makefile
net/adblock/files/README.md
net/adblock/files/adblock.sh
net/chrony/Makefile
net/chrony/patches/001-freebind_uclibc.patch
net/htpdate/Makefile
net/htpdate/files/htpdate.conf [new file with mode: 0644]
net/htpdate/files/htpdate.default [deleted file]
net/htpdate/files/htpdate.init
net/htpdate/patches/101-daemon-run-in-foreground.patch [new file with mode: 0644]
net/inadyn/Makefile
net/iotivity/Makefile
net/linknx/Makefile
net/mwan3/Makefile
net/mwan3/files/etc/hotplug.d/iface/15-mwan3
net/mwan3/files/lib/mwan3/mwan3.sh
net/netopeer2/Config_server.in [deleted file]
net/netopeer2/Makefile
net/netopeer2/files/netopeer2-server.default
net/netopeer2/patches/002-server-BUGFIX-replace-sr_get_iter-with-sr_get_items [new file with mode: 0644]
net/netopeer2/patches/003-BUGFIX-for-missing-eaccess-in-uClibc [new file with mode: 0644]
net/netopeer2/patches/004-BUGFIX-for-missing-mkstemps-in-uClibc [new file with mode: 0644]
net/noddos/Makefile [new file with mode: 0644]
net/shadowsocks-libev/Makefile
net/shadowsocks-libev/README.md
net/shadowsocks-libev/files/shadowsocks-libev.init
net/shadowsocks-libev/files/ss-rules
net/shadowsocks-libev/patches/0001-decouple-use_syslog-from-pid_flags.patch [deleted file]
net/shadowsocks-libev/patches/0002-syslog-with-daemon-facility-instead-of-kern-0.patch [deleted file]
net/shorewall-core/Makefile
net/shorewall-lite/Makefile
net/shorewall6-lite/Makefile
net/sngrep/Makefile
net/sysrepo/Makefile
net/sysrepo/patches/001-protobuf-remove-protoc-command-from-cmake-file
net/sysrepo/patches/005-fix-struct-ucred-define [new file with mode: 0644]
net/unbound/Makefile
net/unbound/files/README.md
net/unbound/files/odhcpd.awk
net/unbound/files/unbound.sh
net/unbound/files/unbound.uci
net/unbound/files/unbound_ext.conf
net/unbound/files/unbound_srv.conf
net/unbound/patches/001-conf.patch
net/wireguard/Makefile
utils/canutils/Makefile
utils/collectd/Makefile
utils/collectd/patches/500-fix-uptime-reading.patch [new file with mode: 0644]
utils/cryptodev-linux/Makefile
utils/domoticz/Makefile
utils/domoticz/files/domoticz.init
utils/domoticz/patches/902_add-scripts-path.patch [deleted file]
utils/domoticz/patches/902_disable-libusb.patch [new file with mode: 0644]
utils/domoticz/patches/903_disable-libusb.patch [deleted file]
utils/domoticz/patches/903_fhs.patch [new file with mode: 0644]
utils/mbtools/Makefile
utils/mmc-utils/Makefile
utils/nano/Makefile
utils/nano/patches/001-backport-post287-fix-for-tiny-compilation.patch [new file with mode: 0644]
utils/zip/Makefile

index b70113113db4a1198cec95c5c0afd2ef8bb06b25..2dd1c1c8d771129f9934a24c22c02aba44fbf1e6 100755 (executable)
@@ -92,9 +92,9 @@ EOF
        # enable BUILD_LOG
        sed -i '1s/^/config BUILD_LOG\n\tbool\n\tdefault y\n\n/' Config-build.in
 
-       ./scripts/feeds update -a
-       ./scripts/feeds install -a
-       make defconfig
+       ./scripts/feeds update -a > /dev/null
+       ./scripts/feeds install -a > /dev/null
+       make defconfig > /dev/null
        echo_blue "=== Setting up SDK done"
 
        RET=0
@@ -124,8 +124,8 @@ EOF
 
                echo_blue "=== $pkg_name: begin compile logs"
                for f in $(find logs/package/feeds/packages/$pkg_name/ -type f); do
-                       echo_blue "Printing $f"
-                       cat "$f"
+                       echo_blue "Printing last 200 lines of $f"
+                       tail -n200 "$f"
                done
                echo_blue "=== $pkg_name: end compile logs"
 
index 1b4bbe42ff2154938e7db6dd969f47b8ea7bdbec..e7b81b510c8447b94cc6a5c60fb3c081c74bb290 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=netdata
-PKG_VERSION:=1.7.0
+PKG_VERSION:=1.8.0
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Daniel Engberg <daniel.engberg.lists@pyret.net>
 PKG_LICENSE:=GPL-3.0
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/firehol/netdata/releases/download/v$(PKG_VERSION)
-PKG_HASH:=7fa23ceaccf6548fba165cd4839ce694784b2fcf7f90de0a0162b9c529805fc0
+PKG_HASH:=1624a3b02f07dc8881b8edd5899049d4d3d53e485424ffb2fb65a322e2ff82c3
 
 PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
@@ -36,6 +36,9 @@ define Package/netdata/description
   monitoring for Linux systems, applications and SNMP devices over the web.
 endef
 
+TARGET_CFLAGS += -ffunction-sections -fdata-sections
+TARGET_LDFLAGS += -Wl,--gc-sections
+
 CONFIGURE_ARGS += --with-zlib --with-math --disable-x86-sse --disable-lto
 
 define Package/netdata/conffiles
@@ -58,8 +61,6 @@ define Package/netdata/install
        mkdir -p $(1)/usr/lib/netdata
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/netdata $(1)/usr/lib
        rm $(1)/usr/lib/netdata/python.d/python-modules-installer.sh
-       rm -rf $(1)/usr/lib/netdata/python.d/python_modules/pyyaml2
-       rm -rf $(1)/usr/lib/netdata/python.d/python_modules/pyyaml3
        chmod 4755 $(1)/usr/lib/netdata/plugins.d/apps.plugin
        mkdir -p $(1)/etc/init.d
        $(INSTALL_BIN) ./files/netdata.init $(1)/etc/init.d/netdata
diff --git a/lang/python/python-curl/Makefile b/lang/python/python-curl/Makefile
new file mode 100644 (file)
index 0000000..cc29f8e
--- /dev/null
@@ -0,0 +1,47 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=pycurl
+PKG_VERSION:=7.43.0
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Waldemar Konik <informatyk74@interia.pl>
+PKG_LICENSE:=LGPL-2.1
+PKG_LICENSE_FILE=COPYING-LGPL
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://dl.bintray.com/pycurl/pycurl/
+PKG_HASH:=aa975c19b79b6aa6c0518c0cc2ae33528900478f0b500531dbcdbf05beec584c
+
+PKG_BUILD_DEPENDS:=python libcurl
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-curl
+  CATEGORY:=Languages
+  SECTION:=lang
+  SUBMENU:=Python
+  TITLE:=Python module interface to the cURL library
+  URL:=http://pycurl.io/
+  DEPENDS:=+python +libcurl
+endef
+
+define Package/python-curl/description
+Python module interface to the cURL library.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-curl/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+               $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+               $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-curl))
diff --git a/lang/python/python-dpkt/Makefile b/lang/python/python-dpkt/Makefile
new file mode 100644 (file)
index 0000000..9bc137d
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2017 Andrew McConachie
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-dpkt
+PKG_VERSION:=1.91
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Andrew McConachie <andrew@depht.com>
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/kbandla/dpkt.git
+PKG_SOURCE_VERSION:=6cd0909d613a66033ecdefaca6cc07cfa7d46d6b
+PKG_MIRROR_HASH:=fe8657552b1dbaf8b9eba50168730e200567dc88a06932aa1cf60dc93211d16b
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-dpkt
+       SECTION:=language-python
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-dpkt
+       URL:=https://dpkt.readthedocs.io/en/latest/
+       DEPENDS:=+python
+endef
+
+define Package/python-dpkt/description
+  dpkt is a python module for fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols
+  https://pypi.python.org/pypi/dpkt
+  https://github.com/kbandla/dpkt
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,\
+               install --prefix=/usr --root="$(PKG_INSTALL_DIR)" \
+       )
+endef
+
+$(eval $(call PyPackage,python-dpkt))
+$(eval $(call BuildPackage,python-dpkt))
index a516b03bda98e16680e7d1de0536490d1f94645a..9b8f0c27a77d50db402590830b02d39cc4108199 100644 (file)
@@ -12,7 +12,7 @@ include ./files/python-version.mk
 
 PKG_NAME:=python
 PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION)
@@ -188,6 +188,16 @@ define Build/Compile
        $(call Build/Compile/python-pip)
 endef
 
+define Build/InstallMkFiles
+       $(INSTALL_DIR) $(STAGING_DIR)/mk/
+       $(INSTALL_DATA) \
+               ./files/python-package.mk \
+               ./files/python-host.mk \
+               ./files/python-version.mk \
+               ./files/python-package-install.sh \
+               $(STAGING_DIR)/mk/
+endef
+
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include/ $(1)/usr/lib/ $(1)/usr/lib/pkgconfig
        $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/
@@ -206,6 +216,7 @@ define Build/InstallDev
        $(CP) \
                $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config \
                $(1)/usr/lib/python$(PYTHON_VERSION)/
+       $(call Build/InstallMkFiles)
 endef
 
 PYTHON_BASE_LIB_FILES:= \
@@ -286,19 +297,10 @@ HOST_CONFIGURE_ARGS+= \
        CONFIG_SITE=
 
 define Host/Install
+       $(call Build/InstallMkFiles)
        $(MAKE) -C $(HOST_BUILD_DIR) install
-       $(INSTALL_DIR) $(HOST_PYTHON_DIR)/bin/ $(STAGING_DIR)/mk/
+       $(INSTALL_DIR) $(HOST_PYTHON_DIR)/bin/
        $(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(HOST_PYTHON_DIR)/bin/pgen2
-       # Install these mk files in the Host/Install phase ;
-       # The Build/InstallDev rule is activated only for target builds.
-       # But if someone needs only the host Python, then
-       # these files need to be installed in this phase, and not Build/InstallDev
-       $(INSTALL_DATA) \
-               ./files/python-package.mk \
-               ./files/python-host.mk \
-               ./files/python-version.mk \
-               ./files/python-package-install.sh \
-               $(STAGING_DIR)/mk/
 endef
 
 $(eval $(call HostBuild))
index f20dbdeabded81dabe2d79a71f761fda568b9b2a..e836eae71d9b91f12e9cface26f89ffef2357205 100644 (file)
@@ -37,21 +37,26 @@ define HostPython
        $(HOST_PYTHON_BIN) $(2);
 endef
 
+define host_python_settings
+       ARCH="$(HOST_ARCH)" \
+       CC="$(HOSTCC)" \
+       CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
+       CXX="$(HOSTCXX)" \
+       LD="$(HOSTCC)" \
+       LDSHARED="$(HOSTCC) -shared" \
+       CFLAGS="$(HOST_CFLAGS)" \
+       CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON_INC_DIR)" \
+       LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
+       _PYTHON_HOST_PLATFORM=linux2
+endef
+
 # $(1) => commands to execute before running pythons script
 # $(2) => python script and its arguments
 # $(3) => additional variables
 define Build/Compile/HostPyRunHost
        $(call HostPython, \
                $(if $(1),$(1);) \
-               CC="$(HOSTCC)" \
-               CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
-               CXX="$(HOSTCXX)" \
-               LD="$(HOSTCC)" \
-               LDSHARED="$(HOSTCC) -shared" \
-               CFLAGS="$(HOST_CFLAGS)" \
-               CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON_INC_DIR)" \
-               LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
-               _PYTHON_HOST_PLATFORM=linux2 \
+               $(call host_python_settings) \
                $(3) \
                , \
                $(2) \
@@ -63,6 +68,7 @@ endef
 # Note: I shamelessly copied this from Yousong's logic (from python-packages);
 HOST_PYTHON_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON_VERSION)
 define host_python_pip_install
+       $(call host_python_settings) \
        $(HOST_PYTHON_PIP) install \
                --root=$(1) \
                --prefix=$(2) \
index 7dba025e08858f38638999add008ecd5fc087c28..7fdcb92fa7023d64663bf87f65caf4eb49a4802e 100644 (file)
@@ -16,7 +16,7 @@ PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
 PKG_NAME:=python3
 # XXX: reset PKG_RELEASE to 1 only if Python's pip & setuptools versions have also bumped;
 #      otherwise, keep bumping PKG_RELEASE
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
@@ -184,6 +184,16 @@ define Build/Compile
        $(call Build/Compile/python3-pip)
 endef
 
+define Build/InstallMkFiles
+       $(INSTALL_DIR) $(STAGING_DIR)/mk/
+       $(INSTALL_DATA) \
+               ./files/python3-package.mk \
+               ./files/python3-host.mk \
+               ./files/python3-version.mk \
+               ./files/python3-package-install.sh \
+               $(STAGING_DIR)/mk/
+endef
+
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include/ $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/
@@ -197,6 +207,7 @@ define Build/InstallDev
        $(CP) \
                $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION) \
                $(1)/usr/lib/python$(PYTHON_VERSION)/
+       $(call Build/InstallMkFiles)
 endef
 
 PYTHON3_BASE_LIB_FILES:= \
@@ -274,21 +285,10 @@ define Host/Compile
 endef
 
 define Host/Install
+       $(call Build/InstallMkFiles)
        $(MAKE) -C $(HOST_BUILD_DIR) install
-
-       $(INSTALL_DIR) $(HOST_PYTHON3_DIR)/bin/ $(STAGING_DIR)/mk/
+       $(INSTALL_DIR) $(HOST_PYTHON3_DIR)/bin/
        $(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(HOST_PYTHON3_DIR)/bin/pgen3
-
-       # Install these mk files in the Host/Install phase ;
-       # The Build/InstallDev rule is activated only for target builds.
-       # But if someone needs only the host Python, then
-       # these files need to be installed in this phase, and not Build/InstallDev
-       $(INSTALL_DATA) \
-               ./files/python3-package.mk \
-               ./files/python3-host.mk \
-               ./files/python3-version.mk \
-               ./files/python3-package-install.sh \
-               $(STAGING_DIR)/mk/
 endef
 
 $(eval $(call HostBuild))
index 96bbc19ccca7477d154896edebdc1891cad13b45..4990d33a014312748a2912a5c2bc5d20c08a69e2 100644 (file)
@@ -37,21 +37,26 @@ define HostPython3
        $(HOST_PYTHON3_BIN) $(2);
 endef
 
+define host_python3_settings
+       ARCH="$(HOST_ARCH)" \
+       CC="$(HOSTCC)" \
+       CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
+       CXX="$(HOSTCXX)" \
+       LD="$(HOSTCC)" \
+       LDSHARED="$(HOSTCC) -shared" \
+       CFLAGS="$(HOST_CFLAGS)" \
+       CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
+       LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
+       _PYTHON_HOST_PLATFORM=linux2
+endef
+
 # $(1) => commands to execute before running pythons script
 # $(2) => python script and its arguments
 # $(3) => additional variables
 define Build/Compile/HostPy3RunHost
        $(call HostPython3, \
                $(if $(1),$(1);) \
-               CC="$(HOSTCC)" \
-               CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
-               CXX="$(HOSTCXX)" \
-               LD="$(HOSTCC)" \
-               LDSHARED="$(HOSTCC) -shared" \
-               CFLAGS="$(HOST_CFLAGS)" \
-               CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
-               LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
-               _PYTHON_HOST_PLATFORM=linux2 \
+               $(call host_python3_settings) \
                $(3) \
                , \
                $(2) \
@@ -63,6 +68,7 @@ endef
 # Note: I shamelessly copied this from Yousong's logic (from python-packages);
 HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION)
 define host_python3_pip_install
+       $(call host_python3_settings) \
        $(HOST_PYTHON3_PIP) install \
                --root=$(1) \
                --prefix=$(2) \
index adca82f64d22d2a63606e305d24cec71a3ec4d92..471127d6ca1a2d20be6071ab4a50436d90f1abeb 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ruby
-PKG_VERSION:=2.4.1
+PKG_VERSION:=2.4.2
 PKG_RELEASE:=1
 
 # First two numbes
 PKG_ABI_VERSION:=$(subst $(space),.,$(wordlist 1, 2, $(subst .,$(space),$(PKG_VERSION))))
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://cache.ruby-lang.org/pub/ruby/$(PKG_ABI_VERSION)/
-PKG_HASH:=4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654
+PKG_SOURCE_URL:=https://cache.ruby-lang.org/pub/ruby/$(PKG_ABI_VERSION)/
+PKG_HASH:=748a8980d30141bd1a4124e11745bb105b436fb1890826e0d2b9ea31af27f735
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=COPYING
diff --git a/lang/ruby/patches/010-configure-2.4.2.patch b/lang/ruby/patches/010-configure-2.4.2.patch
new file mode 100644 (file)
index 0000000..fddd810
--- /dev/null
@@ -0,0 +1,40 @@
+diff -pU3 a/configure b/configure
+--- a/configure        2017-09-14 21:52:19.000000000 +0900
++++ b/configure        2017-09-15 07:03:12.000000000 +0900
+@@ -10614,6 +10614,7 @@ fi
+ ac_res=$ac_cv_search___gmpz_init
+ if test "$ac_res" != no; then :
+   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
++  $as_echo "#define HAVE_LIBGMP 1" >>confdefs.h
+ fi
+@@ -10683,6 +10684,7 @@ fi
+ ac_res=$ac_cv_search_malloc_conf
+ if test "$ac_res" != no; then :
+   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
++  $as_echo "#define HAVE_LIBJEMALLOC 1" >>confdefs.h
+ else
+   with_jemalloc=no
+diff -pU3 a/configure.in b/configure.in
+--- a/configure.in     2017-08-04 23:39:29.000000000 +0900
++++ b/configure.in     2017-09-15 07:20:40.000000000 +0900
+@@ -1403,13 +1403,15 @@ AC_ARG_WITH([gmp],
+ AS_IF([test "x$with_gmp" != xno],
+   [AC_CHECK_HEADERS(gmp.h)
+    AS_IF([test "x$ac_cv_header_gmp_h" != xno],
+-     AC_SEARCH_LIBS([__gmpz_init], [gmp]))])
++     AC_SEARCH_LIBS([__gmpz_init], [gmp],
++       [AC_DEFINE(HAVE_LIBGMP, 1)]))])
+ AC_ARG_WITH([jemalloc],
+   [AS_HELP_STRING([--with-jemalloc],[use jemalloc allocator])],
+   [with_jemalloc=$withval], [with_jemalloc=no])
+ AS_IF([test "x$with_jemalloc" = xyes],[
+-  AC_SEARCH_LIBS([malloc_conf], [jemalloc], [], [with_jemalloc=no])
++  AC_SEARCH_LIBS([malloc_conf], [jemalloc],
++    [AC_DEFINE(HAVE_LIBJEMALLOC, 1)], [with_jemalloc=no])
+   AC_CHECK_HEADER(jemalloc/jemalloc.h, [
+     AC_DEFINE(RUBY_ALTERNATIVE_MALLOC_HEADER, [<jemalloc/jemalloc.h>])
+   ])
index 8c138e926f39e6f2dfb330a3eec6f9371009d0f5..e35b98b3894b3524791d330ac571b235e95a29c2 100644 (file)
@@ -9,10 +9,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=file
 PKG_VERSION:=5.25
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=ftp://ftp.astron.com/pub/file/
+PKG_SOURCE_URL:=https://sources.lede-project.org/ \
+       http://pkgs.fedoraproject.org/lookaside/pkgs/file/ \
+       http://download.openpkg.org/components/cache/file/ \
+       ftp://ftp.astron.com/pub/file/
 PKG_HASH:=3735381563f69fb4239470b8c51b876a80425348b8285a7cded8b61d6b890eca
 
 PKG_LICENSE:=BSD-2c
@@ -27,7 +30,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/file/Default
   TITLE:=File type determination
   URL:=ftp://ftp.astron.com/pub/file/
-  MAINTAINER:=Luka Perkov <luka@openwrt.org>
+  MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
 endef
 
 define Package/file
@@ -90,7 +93,7 @@ endef
 
 define Package/libmagic/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libmagic.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmagic.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,file))
index ae0130ad445d392bf837595602447c1abcaab1e8..4f49adccf01346f64369d4521a1e4aaefd157924 100644 (file)
@@ -8,14 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libcoap
-PKG_RELEASE:=3
+PKG_VERSION:=v4.1.2
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/obgm/libcoap
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)
-PKG_SOURCE_VERSION:=2da31de732c0e51a9bc9e1d4aea21e25da89cf87
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
-PKG_MIRROR_HASH:=b61fe3245a329dfcf198187149d2072509b18ca6e348d0b423c0f44d11e930e4
+PKG_SOURCE_VERSION:=fa5248603049ddf95cc84608aad569120763bf2b
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MIRROR_HASH:=0ab4bc9569a78904743cc3074fd1c0fc9c78c85fd510fef5145dd872523619e6
 
 PKG_MAINTAINER:=Anton Glukhov <anton.a.glukhov@gmail.com>
 PKG_LICENSE:=GPL-2.0+ BSD-2-Clause
@@ -39,10 +40,32 @@ define Package/libcoap/description
   Constrained Application Protocol (RFC 7252) library
 endef
 
+define Package/coap-client
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=+libcoap
+  TITLE:=CoAP (RFC 7252) client tool
+endef
+
+define Package/coap-client/description
+  Constrained Application Protocol (RFC7252) client tool
+endef
+
+define Package/coap-server
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libcoap
+  TITLE:=CoAP (RFC 7252) server programs
+endef
+
+define Package/coap-server/description
+  Constrained Application Protocol (RFC 7252) server and resource directory server
+endef
+
 TARGET_CFLAGS += $(FPIC)
 
 CONFIGURE_ARGS += \
-       --disable-examples \
+       --enable-examples \
        --disable-documentation
 
 ifeq ($(CONFIG_BIG_ENDIAN),y)
@@ -62,4 +85,17 @@ define Package/libcoap/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcoap-1.so* $(1)/usr/lib/
 endef
 
+define Package/coap-client/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/coap-client $(1)/usr/bin/
+endef
+
+define Package/coap-server/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/coap-server $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/coap-rd $(1)/usr/bin/
+endef
+
 $(eval $(call BuildPackage,libcoap))
+$(eval $(call BuildPackage,coap-client))
+$(eval $(call BuildPackage,coap-server))
index b0376d4417ed4a0e8275f38264a910beddd9eb61..be1763c93dc29ed7620209e58364d394d9db6b03 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libffi
 PKG_VERSION:=3.2.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://sourceware.org/pub/libffi/
@@ -78,5 +78,15 @@ define Package/libffi/install
                $(1)/usr/lib/
 endef
 
+define Host/Install
+       $(call Host/Install/Default)
+       # Adjust host libffi headers ; the default rule does
+       # not seem to install them to the proper include folder
+       $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/include
+       $(CP) \
+               $(STAGING_DIR_HOSTPKG)/lib/libffi-$(PKG_VERSION)/include/*.h \
+               $(STAGING_DIR_HOSTPKG)/include
+endef
+
 $(eval $(call HostBuild))
 $(eval $(call BuildPackage,libffi))
index 59644ee84ed83d53bcd17673a47cd91a0d84ddc6..12e4bf11f3c38d0c873239f6f786f6e402ea7aef 100644 (file)
@@ -12,14 +12,14 @@ PKG_NAME:=libnetconf2
 PKG_LICENSE:=BSD-3-Clause
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
-PKG_VERSION:=0.8.56
+PKG_VERSION:=0.9.15
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=4d13eca938085298edbad6a731d77dfd55c8d514
-PKG_MIRROR_HASH:=88d1ab14a945c8c8c9fadfb248568294ac5f62dea3b8d99e60dbb8262f7107bc
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_VERSION:=cea46db1edb72231c9e009d7e6d6799256676eb8
+PKG_MIRROR_HASH:=a686754cef2ef29a511b8ea06d121f0ce562b570d6cea6c6a7562ff47b91d2a2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/cesnet/libnetconf2/
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
 
 PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
 PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
diff --git a/libs/libredblack/Makefile b/libs/libredblack/Makefile
new file mode 100644 (file)
index 0000000..75a616a
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# Copyright (C) 2017 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libredblack
+PKG_VERSION:=0.2.3
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_LICENSE:=GPL-2.0+
+PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=a399310d99b61eec4d3c0677573ab5dddcf9395d
+PKG_MIRROR_HASH:=71b05e70988b97865f734c698dd5564e349680556ccb8634a5bddf344012f22a
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/sysrepo/libredblack.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
+
+PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+
+define Package/libredblack
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=RedBlack tree library
+  URL:=$(PKG_SOURCE_URL)
+endef
+
+define Package/libredblack/description
+ RedBlack Balanced Tree Searching and Sorting Library.
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libredblack.{so*,a,la} $(1)/usr/lib/
+
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/redblack.h $(1)/usr/include/
+endef
+
+define Package/libredblack/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libredblack.{so*,a,la} $(1)/usr/lib/
+
+       $(INSTALL_DIR) $(1)/usr/include
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/include/redblack.h $(1)/usr/include
+endef
+
+$(eval $(call BuildPackage,libredblack))
diff --git a/libs/libtins/Makefile b/libs/libtins/Makefile
new file mode 100644 (file)
index 0000000..7eb8109
--- /dev/null
@@ -0,0 +1,52 @@
+#
+# Copyright (C) 2017 Steven Hessing
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libtins
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:= Steven Hessing <steven.hessing@gmail.com>
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/mfontanini/libtins.git
+PKG_SOURCE_VERSION:=v3.5
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.xz
+PKG_MIRROR_HASH:=47cd7d659ffa75dcfc2172ef54151fd36dc87de9e0f04bb066f6b076a7df7b57
+
+PKG_LICENSE:=BSD-2-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+PKG_BUILD_PARALLEL:=1
+
+CMAKE_INSTALL:=1
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+CMAKE_OPTIONS += -D_RUN_RESULT_VAR=FORCE
+CMAKE_OPTIONS += -DLIBTINS_ENABLE_WPA2=0
+CMAKE_OPTIONS += -DLIBTINS_ENABLE_CXX11=1
+
+define Package/libtins
+       SECTION:=net
+       CATEGORY:=Libraries
+       TITLE:=libtins 
+       URL:=http://libtins.github.io/
+       DEPENDS:=+libstdcpp +libpcap 
+endef
+
+define Package/libtins/description
+libtins is a high-level, multiplatform C++ network packet sniffing and crafting library.
+endef
+
+define Package/libtins/install
+    $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libtins.so.3.5 $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libtins))
index ab32e25e1fd6cdc1e0a3cf2bb72253b06e51e9d8..29c416b0a16c7e941191f4ac91f00dc339ef2488 100644 (file)
@@ -8,18 +8,21 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libyang
-PKG_VERSION:=0.12.174
+PKG_VERSION:=0.13.46
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_LICENSE:=GPL-2.0+
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
 PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=d1556e0ae3872d676dfd63bd6073fe7e72d0130f
+PKG_MIRROR_HASH:=4a23a3854ceca147e113ab65ecdce3371e30b59436680e7d981b0bab6dbe751d
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/CESNET/libyang.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=7e811613b335afc8e1b2c0ee77e7b3f371bc9175
-PKG_MIRROR_HASH:=860865b294c628ad66ca5ef6848aae8df93e46325302914dbfb14264866f1678
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
+
+PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -32,7 +35,7 @@ define Package/libyang
   CATEGORY:=Libraries
   TITLE:=YANG data modeling language library
   URL:=$(PKG_SOURCE_URL)
-  DEPENDS:=+libpcre
+  DEPENDS:=+libpcre +libpthread
 endef
 
 define Package/yanglint
index 8d21809022c0ef07e53cd3e72ee91e3d2e66de03..f67f658ff6b9b3fd84b45a96700172ab429c7d3f 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqlite
-PKG_VERSION:=3190300
+PKG_VERSION:=3200100
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-autoconf-$(PKG_VERSION).tar.gz
-PKG_HASH:=06129c03dced9f87733a8cba408871bd60673b8f93b920ba8d815efab0a06301
+PKG_HASH:=ec66595b29bc0798b023a5122021ea646ab4fa9e2f735937c5426feeba950742
 PKG_SOURCE_URL:=http://www.sqlite.org/2017/
 
 PKG_LICENSE:=PUBLICDOMAIN
index 4a8e99deb464dedcfe55a16a2fcd60bd38c6268f..cb3e988509a17c7b924386e1e6fe62bed99c0ad7 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dovecot
-PKG_VERSION:=2.2.31
-PKG_RELEASE:=2
+PKG_VERSION:=2.2.32
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.dovecot.org/releases/2.2
-PKG_HASH:=034be40907748128d65088a4f59789b2f99ae7b33a88974eae0b6a68ece376a1
+PKG_HASH:=160b2151e2af359877f69cb2dcdfe1a3f4138ad3766e3b8562b96616e2f6bc2e
 PKG_LICENSE:=LGPL-2.1 MIT BSD-3-Clause Unique
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL COPYING.MIT
 
index 51fb0a4a3d60938193c74e6464f08460ebe7d646..d136b2a89db523759fdfa472a03d174fc278d124 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pigeonhole
-PKG_VERSION:=0.4.16
+PKG_VERSION:=0.4.20
 PKG_RELEASE:=1
 
 DOVECOT_VERSION:=2.2
 
 PKG_SOURCE:=dovecot-$(DOVECOT_VERSION)-$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://pigeonhole.dovecot.org/releases/$(DOVECOT_VERSION)
-PKG_HASH:=8f0b98f18062d6e241eef74ebe16cc167cd246361cbe6657d94f0ecc5d7d3234
+PKG_HASH:=6fe17d0b8f25f2ad580e01ad81ce47a9e965255e383a1f80e455f9ca0f00be5b
 PKG_LICENSE:=LGPL-2.1
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL
 
index e3bb3df63b6b0be05e74186dc8de96b38c1d65b2..9b9f4627c7484edcd4add885a42002adfd7cb2c7 100644 (file)
@@ -8,19 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=youtube-dl
-PKG_VERSION:=2017.06.05
+PKG_VERSION:=2017.09.11
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://yt-dl.org/downloads/$(PKG_VERSION)/
-PKG_HASH:=b54ca848490285909d0830c04c19376c2d78da74d8de0056387b11ba34234e8c
+PKG_HASH:=8b6defdd7cb9a8228eca2ef03a8c203a3ccba1ed97cb700f11b40a3af548212a
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
 
 PKG_LICENSE:=Unlicense
 PKG_LICENSE_FILES:=LICENSE
 PKG_MAINTAINER:=Adrian Panella <ianchi74@outlook.com>
 
-PKG_BUILD_DEPENDS:=python/host
+PKG_BUILD_DEPENDS:=python/host zip/host
 
 include $(INCLUDE_DIR)/package.mk
 
index f311972cdc85c5e9f133bdef6487c602f10b2371..2efc54af88a874b9851b12a2336c78ab7c032e6b 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock
-PKG_VERSION:=3.0.1
+PKG_VERSION:=3.0.2
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
index 55dc570705f9ecfe46b792b6ebe50ed8b89ec6e7..610bad77389399630da850ca02dba12bae88d5e4 100644 (file)
@@ -129,19 +129,19 @@ A lot of people already use adblocker plugins within their desktop browsers, but
     * adb\_manmode => do not automatically update block lists during startup, use backups instead (default: '0', disabled)
 
 ## Examples
-**change default dns backend to 'unbound':**
-<pre><code>
+**change default dns backend to 'unbound':**  
+
 Adblock deposits the sorted and filtered block list (adb_list.overall) in '/var/lib/unbound' where unbound can find them in its jail.
 If you use manual configuration for unbound, then just include the following line in your 'server' clause:
-
+<pre><code>
   include: "/var/lib/unbound/adb_list.overall"
 </code></pre>
   
-**change default dns backend to 'named' (bind):**
-<pre><code>
+**change default dns backend to 'named' (bind):**  
+
 Adblock deposits the sorted and filtered block list (adb_list.overall) in '/var/lib/bind' where bind can find them.
 To use the block list please modify the following bind configuration files:
-
+<pre><code>
 change '/etc/bind/named.conf', in the 'options' namespace add:
   response-policy { zone "rpz"; };
 
@@ -162,30 +162,33 @@ create the new file '/etc/bind/db.rpz' and add:
   $INCLUDE /var/lib/bind/adb_list.overall
 </code></pre>
   
-**change default dns backend to 'kresd':**
-<pre><code>
+**change default dns backend to 'kresd':**  
+
 The knot-resolver (kresd) is only available on turris omnia devices. Currently there's no package for kresd in the official LEDE / OpenWrt package repository.
 Adblock deposits the sorted and filtered block list (adb_list.overall) in '/etc/kresd' where kresd can find them.
 To use the block list please create/modify the following kresd configuration files:
+<pre><code>
+TurrisOS > 3.6:
+  edit '/etc/config/resolver' and change / uncomment the following options:
+    forward_upstream '0'
+    list rpz_file '/etc/kresd/adb_list.overall'
 
-edit '/etc/config/resolver' and uncomment the following option:
-  option include_config '/etc/kresd/custom.conf'
-
-in the same file change the 'forward_upstream' option like that:
-  forward_upstream '0'
+TurrisOS < 3.6:
+  edit '/etc/config/resolver' and change / uncomment the following options:
+   forward_upstream '0'
+   option include_config '/etc/kresd/custom.conf'
 
-create '/etc/kresd/custom.conf' and add:
-  policy.add(policy.rpz(policy.DENY, '/etc/kresd/adb_list.overall'))
-  policy.add(policy.all(policy.FORWARD('8.8.8.8')))
-  policy.add(policy.all(policy.FORWARD('8.8.4.4')))
+  create '/etc/kresd/custom.conf' and add:
+    policy.add(policy.rpz(policy.DENY, '/etc/kresd/adb_list.overall'))
+    policy.add(policy.all(policy.FORWARD({'8.8.8.8', '8.8.4.4'})))
 </code></pre>
   
-**change default dns backend to 'dnscrypt-proxy':**
-<pre><code>
+**change default dns backend to 'dnscrypt-proxy':**  
+
 Adblock deposits the sorted and filtered block list (adb_list.overall) by default in '/tmp' where DNSCrypt-Proxy can find them.
 The blacklist option is not supported by default, because DNSCrypt-Proxy is compiled without plugins support.
 Take a custom LEDE build with plugins support to use this feature:
-
+<pre><code>
 edit '/etc/config/dnscrypt-proxy' and add the following option per dnscrypt-proxy instance:
   list blacklist 'domains:/tmp/adb_list.overall'
 </code></pre>
index 3f8e13a96c78a5119d48f364ee186f9ac7574b7b..6eb36fa58cec7a59a505e7304e5341148a0f097d 100755 (executable)
@@ -10,8 +10,8 @@
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="3.0.1"
-adb_sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
+adb_ver="3.0.2"
+adb_sysver="unknown"
 adb_enabled=0
 adb_debug=0
 adb_manmode=0
@@ -34,7 +34,22 @@ adb_rc=0
 #
 f_envload()
 {
-    local dns_up cnt=0
+    local dns_up sys_call sys_desc sys_model sys_ver cnt=0
+
+    # get system information
+    #
+    sys_call="$(ubus -S call system board 2>/dev/null)"
+    if [ -n "${sys_call}" ]
+    then
+        sys_desc="$(printf '%s' "${sys_call}" | jsonfilter -e '@.release.description')"
+        sys_model="$(printf '%s' "${sys_call}" | jsonfilter -e '@.model')"
+        sys_ver="$(cat /etc/turris-version 2>/dev/null)"
+        if [ -n "${sys_ver}" ]
+        then
+            sys_desc="${sys_desc}/${sys_ver}"
+        fi
+        adb_sysver="${sys_model}, ${sys_desc}"
+    fi
 
     # source in system libraries
     #
index 0d367c6fb48cb9b183da1a282e36570f3a5541c4..81fe8267d7653fc7669b3fe0f3aaabeccb923be0 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=chrony
-PKG_VERSION:=3.1
-PKG_RELEASE:=2
+PKG_VERSION:=3.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://download.tuxfamily.org/chrony/
-PKG_HASH:=9d9107dcdb7768a03dc129d33b2a7a25f1eea2f5620bc85eb00cfea07c1b6075
+PKG_HASH:=329f6718dd8c3ece3eee78be1f4821cbbeb62608e7d23f25da293cfa433c4116
 
 PKG_MAINTAINER:=Miroslav Lichvar <mlichvar0@gmail.com>
 PKG_LICENSE:=GPL-2.0
index e18d07e923ca1bb3caf6239dca5fedb426c18d83..7a3dd826969a2d35d4442fde6cb181af0a0e1f6e 100644 (file)
@@ -1,9 +1,9 @@
 diff --git a/sysincl.h b/sysincl.h
-index 30e9b48..8fe16c0 100644
+index a9e4da0..e2a6e78 100644
 --- a/sysincl.h
 +++ b/sysincl.h
-@@ -70,4 +70,8 @@
- #include <arpa/inet.h>
+@@ -80,4 +80,8 @@
+ #include <sys/random.h>
  #endif
  
 +#if defined(LINUX) && !defined(IP_FREEBIND)
index 64b635c630fb237fd4f5d2ab737d0081857ac690..2650597e87e0b9a2d79f68ae9061fa3b464f914e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=htpdate
 PKG_VERSION:=1.1.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.vervest.org/htp/archive/c/
@@ -26,7 +26,8 @@ define Package/htpdate
   CATEGORY:=Network
   TITLE:=an HTP (Hypertext Time Protocol) implementation
   URL:=http://www.vervest.com/htp/
-  MAINTAINER:=Tijs Van Buggenhout <tvbuggen@netzerk.be>
+  MAINTAINER:=Tijs Van Buggenhout <tvbuggen@netzerk.be>, \
+              Marcin Jurkowski <marcin1j@gmail.com>
 endef
 
 define Package/htpdate/description
@@ -38,7 +39,7 @@ define Package/htpdate/description
 endef
 
 define Package/htpdate/conffiles
-/etc/default/htpdate
+/etc/config/htpdate
 endef
 
 define Build/Compile
@@ -50,8 +51,8 @@ endef
 define Package/htpdate/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/htpdate $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/etc/default/
-       $(INSTALL_CONF) ./files/htpdate.default $(1)/etc/default/htpdate
+       $(INSTALL_DIR) $(1)/etc/config/
+       $(INSTALL_CONF) ./files/htpdate.conf $(1)/etc/config/htpdate
        $(INSTALL_DIR) $(1)/etc/init.d/
        $(INSTALL_BIN) ./files/htpdate.init $(1)/etc/init.d/htpdate
 endef
diff --git a/net/htpdate/files/htpdate.conf b/net/htpdate/files/htpdate.conf
new file mode 100644 (file)
index 0000000..46bdf44
--- /dev/null
@@ -0,0 +1,11 @@
+config htpdate 'htpdate'
+       option enabled 1
+       list server 'www.google.com'
+       list server 'www.yahoo.com'
+       list server 'www.linux.com'
+       list server 'www.freebsd.org'
+       option proxy_host ''
+       option proxy_port '8080'
+       option debug 0
+       option sanity_check 1
+       #list option '-4'
diff --git a/net/htpdate/files/htpdate.default b/net/htpdate/files/htpdate.default
deleted file mode 100644 (file)
index 94674fd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-OPTIONS="www.google.com www.yahoo.com www.linux.org www.freebsd.org"
index 1409321df9c56f6707b04701a2cc5cc5b436fb6c..88176c84cc7c3be2d3fee74a388b993f8670b05a 100644 (file)
@@ -2,18 +2,53 @@
 # Copyright (C) 2006 OpenWrt.org
 
 START=49
-BIN=htpdate
-DEFAULT=/etc/default/$BIN
-RUN_D=/var/run
-PID_F=$RUN_D/$BIN.pid
-
-start() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       mkdir -p $RUN_D
-       $BIN -l -s -t $OPTIONS && $BIN -D $OPTIONS
+USE_PROCD=1
+PROG=/usr/sbin/htpdate
+
+
+
+
+validate_htpdate_section() {
+       uci_validate_section htpdate htpdate "${1}" \
+               'server:list(host)' \
+               'proxy_host:host' \
+               'proxy_port:port:8080' \
+               'debug:bool:0' \
+               'sanity_check:bool:1' \
+               'option:list(string)' \
+               'enabled:bool:1'
 }
 
-stop() {
-       [ -f $PID_F ] && kill $(cat $PID_F)
+
+start_service() {
+       local server proxy debug sanity_check option enabled
+
+        validate_htpdate_section htpdate || {
+               echo "validation failed"
+               return 1
+       }
+
+       [ "$enabled" = 0 ] && return
+
+
+       procd_open_instance
+       procd_set_param command "$PROG" -f
+
+       [ -n "$proxy" ] && procd_append_param command -P $proxy:$proxy_port
+       [ "$debug" = "1" ] && procd_append_param command -d
+       [ "$sanity_check" = "0" ] && procd_append_param command -t
+       [ -n "$option" ] && procd_append_param command $option
+       for peer in $server; do
+               procd_append_param command $peer
+       done
+
+       procd_set_param stdout 1
+       procd_set_param stderr 1
+       procd_set_param respawn
+       procd_close_instance
 }
 
+service_triggers() {
+       procd_add_reload_trigger "htpdate"
+       procd_add_validation validate_htpdate_section
+}
diff --git a/net/htpdate/patches/101-daemon-run-in-foreground.patch b/net/htpdate/patches/101-daemon-run-in-foreground.patch
new file mode 100644 (file)
index 0000000..a68365a
--- /dev/null
@@ -0,0 +1,40 @@
+--- a/htpdate.c
++++ b/htpdate.c
+@@ -395,6 +395,7 @@ Usage: htpdate [-046abdhlqstxD] [-i pid
+   -b    burst mode\n\
+   -d    debug mode\n\
+   -D    daemon mode\n\
++  -f    run in foreground\n\
+   -h    help\n\
+   -i    pid file\n\
+   -l    use syslog for output\n\
+@@ -510,7 +511,7 @@ int main( int argc, char *argv[] ) {
+       /* Parse the command line switches and arguments */
+-      while ( (param = getopt(argc, argv, "046abdhi:lm:p:qstu:xDM:P:") ) != -1)
++      while ( (param = getopt(argc, argv, "046abdhi:lm:p:qstu:xDfM:P:") ) != -1)
+       switch( param ) {
+               case '0':                       /* HTTP/1.0 */
+@@ -593,6 +594,9 @@ int main( int argc, char *argv[] ) {
+                       daemonize = 1;
+                       logmode = 1;
+                       break;
++              case 'f':                       /* run in foreground */
++                      daemonize = 2;
++                      break;
+               case 'M':                       /* maximum poll interval */
+                       if ( ( maxsleep = atoi(optarg) ) <= 0 ) {
+                               fputs( "Invalid sleep time\n", stderr );
+@@ -631,7 +635,9 @@ int main( int argc, char *argv[] ) {
+       /* Run as a daemonize when -D is set */
+       if ( daemonize ) {
+-              runasdaemon( pidfile );
++              if ( daemonize == 1 ) {
++                      runasdaemon( pidfile );
++              }
+               /* Query only mode doesn't exist in daemon mode */
+               if ( !setmode )
+                       setmode = 1;
index 100a3d105cab93c3f3b1585ceeb28d5b76b3738d..f95fc14c8c030d2c89f2d29b848e529cd19b55f1 100644 (file)
@@ -8,18 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=inadyn
-PKG_VERSION=2017-02-02
+PKG_VERSION=2.2
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Daniel Engberg <daniel.engberg.lists@pyret.net>
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/troglobit/inadyn
-PKG_SOURCE_SUBDIR=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=3b9ae1c22f96194232cc86ded33af9e0a1602af2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=9db6cd8d2b421d8bc61d4ae60c8215a86d73657746a1b06d79f4fbfd79734f6e
+PKG_SOURCE_URL:=https://github.com/troglobit/inadyn/releases/download/v$(PKG_VERSION)
+PKG_HASH:=27aed84a3d04591540b01ef91a5af4b02cbd0e0c20db36a2660453780bd645f6
 
 PKG_FIXUP:=autoreconf
 
@@ -46,7 +43,6 @@ CONFIGURE_ARGS += --enable-shared --disable-static --enable-openssl
 
 define Package/inadyn/install
        $(INSTALL_DIR) $(1)/etc
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/examples/dyndns.conf $(1)/etc/inadyn.conf
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/inadyn $(1)/usr/sbin/
 endef
index 2961181a53d0ab8ed4a354e9e2929a44d617a273..f31adbd9c3bb93381bbf68af211cfb9aac12f5d2 100644 (file)
@@ -163,6 +163,7 @@ PKG_TINYCBOR_NAME:=tinycbor
 PKG_TINYCBOR_PROTO:=git
 PKG_TINYCBOR_VERSION:=0.4
 PKG_TINYCBOR_SOURCE_VERSION:=a088996aa5f59b4f27f20fadad053d88bee357d4
+PKG_TINYCBOR_MIRROR_HASH:=77c600bd7362df8291148fa3d94ca780815ea2b74b817dca7565310ea0abff96
 PKG_TINYCBOR_SOURCE:=$(PKG_TINYCBOR_NAME)-$(PKG_TINYCBOR_VERSION).tar.bz2
 PKG_TINYCBOR_SOURCE_URL:=https://github.com/01org/tinycbor.git
 PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
@@ -170,6 +171,7 @@ PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
 define Download/iotivity-tinycbor
   FILE:=$(PKG_TINYCBOR_SOURCE)
   URL:=$(PKG_TINYCBOR_SOURCE_URL)
+  MIRROR_HASH:=$(PKG_TINYCBOR_MIRROR_HASH)
   PROTO:=$(PKG_TINYCBOR_PROTO)
   VERSION:=$(PKG_TINYCBOR_SOURCE_VERSION)
   SUBDIR:=$(PKG_TINYCBOR_SUBDIR)
index e40209ddee2427aa0cc172fbc2a3aa672b1b85e6..eddf65885cf2c4b4315d44090f1896b54d53782b 100644 (file)
@@ -9,17 +9,17 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=linknx
 PKG_VERSION:=0.0.1.33
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
 PKG_LICENSE:=GPL-2.0+
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/linknx/linknx.git
-PKG_SOURCE_VERSION:=f627ed44feaea5a1f67c53f2810c44a14c059cef
+PKG_SOURCE_VERSION:=6166831eff645f21a7fd22ec3f7855f36005b8d9
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)
-PKG_SOURCE:=$(PKG_NAME)-${PKG_VERSION}.tar.gz
-PKG_MIRROR_HASH:=713876afcb0ed9ff23ae820daa644f1927b2a0f02abbb81fa154304768f7e97b
+PKG_SOURCE:=$(PKG_NAME)-${PKG_VERSION}.tar.xz
+PKG_MIRROR_HASH:=9d38d3a5b4bd935f841fbacf0ee00a9bb9e75ac7a7e7609864254ebb5bbdb960
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
 PKG_BUILD_DEPENDS:=argp-standalone
index a4b23d37a974c6ae7a10aab72c147f0648b3fabf..34e38f07c5edba300399b58b1ed1e49922b525f2 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mwan3
-PKG_VERSION:=2.6.5
+PKG_VERSION:=2.6.6
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
 PKG_LICENSE:=GPLv2
index dfeff7daa5c0ac089173dc78d602c43ecbfca1e0..27033d582df09afba7014f3d1ed7aae5db4e85ae 100644 (file)
@@ -77,7 +77,7 @@ case "$ACTION" in
                else
                        $LOG notice "Starting tracker on interface $INTERFACE (${DEVICE:-unknown})"
                        mwan3_set_iface_hotplug_state $INTERFACE "offline"
-                       mwan3_track $INTERFACE $DEVICE "offline" "$src_ip"
+                       mwan3_track $INTERFACE $DEVICE "unknown" "$src_ip"
                fi
        ;;
        ifdown)
index 06d8ee3f2d6047c558abbe2c97bd6b303b5c9a11..a92cb46870c272e3329974cdbf23390ff7cebfa6 100644 (file)
@@ -460,7 +460,7 @@ mwan3_track()
 
        mwan3_list_track_ips()
        {
-               track_ips="$1 $track_ips"
+               track_ips="$track_ips $1"
        }
        config_list_foreach $1 track_ip mwan3_list_track_ips
 
diff --git a/net/netopeer2/Config_server.in b/net/netopeer2/Config_server.in
deleted file mode 100644 (file)
index 112da76..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-if PACKAGE_netopeer2-server
-
-config SSH_SERVER
-       bool "Install the default ssh server (openssh-server)"
-       default y
-
-endif
index 62f4ec5a8cd51b20396a5b7b2c8b873fc5229b6c..fb136cb05009e7b38268186fdf19e76ffaf220c2 100644 (file)
@@ -14,14 +14,14 @@ PKG_NAME:=netopeer2
 PKG_LICENSE:=BSD-3-Clause
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
-PKG_VERSION:=0.3.65
+PKG_VERSION:=0.4.0
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=c204b59f9c2bb7e63eb907f33c44adbf208295ee
-PKG_MIRROR_HASH:=61a2b3e0ee9a3cf2f73715843f059c79292446ad3643f4eeb85d48d1e185c3b9
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_VERSION:=d028c1f931819db4b3e3cb1fd2d349a4fd5c0459
+PKG_MIRROR_HASH:=7f5b3ad49aaf2a8ceea2c17a37e276f5694af570ef904cfc5a6f53d295809cef
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/CESNET/Netopeer2.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
 
 PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
 PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
@@ -34,10 +34,6 @@ CMAKE_INSTALL:=1
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
-define Package/netopeer2-server/config
-  source "$(SOURCE)/Config_server.in"
-endef
-
 define Package/netopeer2-keystored/config
   source "$(SOURCE)/Config_keystored.in"
 endef
@@ -47,7 +43,7 @@ define Package/netopeer2-server
   CATEGORY:=Utilities
   TITLE:=NETCONF server
   URL:=$(PKG_SOURCE_URL)
-  DEPENDS:=+libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepo +SSH_SERVER:openssh-server
+  DEPENDS:=+libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepo
   MENU:=1
 endef
 
index ec6bae0524b73ca6d2e4f774adb8a073afb31988..d2a699bb1389d25cb831ccc6ff59c53192a646bc 100644 (file)
@@ -28,10 +28,6 @@ if [ -x /bin/sysrepoctl ]; then
                sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-server.yang -o root:root -p 600
                sysrepoctl -m ietf-netconf-server -e listen
                sysrepoctl -m ietf-netconf-server -e ssh-listen
-               sysrepoctl -m ietf-netconf-server -e tls-listen
-               sysrepoctl -m ietf-netconf-server -e call-home
-               sysrepoctl -m ietf-netconf-server -e ssh-call-home
-               sysrepoctl -m ietf-netconf-server -e tls-call-home
                if [ -x /bin/sysrepocfg ]; then
                        sysrepocfg -d startup -i /usr/share/netopeer2-server/stock_config.xml ietf-netconf-server
                        rm /usr/share/netopeer2-server/stock_config.xml
diff --git a/net/netopeer2/patches/002-server-BUGFIX-replace-sr_get_iter-with-sr_get_items b/net/netopeer2/patches/002-server-BUGFIX-replace-sr_get_iter-with-sr_get_items
new file mode 100644 (file)
index 0000000..9cd4538
--- /dev/null
@@ -0,0 +1,48 @@
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/server/ietf_netconf_server.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/server/ietf_netconf_server.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/server/ietf_netconf_server.c
+@@ -1161,8 +1161,8 @@ feature_change_ietf_netconf_server(const
+ {
+     int rc, rc2 = 0;
+     const char *path = NULL;
+-    sr_val_iter_t *sr_iter;
+-    sr_val_t *sr_val;
++    sr_val_t *values;
++    size_t value_cnt;
+     assert(feature_name);
+@@ -1180,26 +1180,26 @@ feature_change_ietf_netconf_server(const
+             return EXIT_SUCCESS;
+         }
+-        rc = sr_get_items_iter(np2srv.sr_sess.srs, path, &sr_iter);
++        rc =sr_get_items(np2srv.sr_sess.srs, path, &values, &value_cnt);
+         if (rc != SR_ERR_OK) {
+             ERR("Failed to get \"%s\" values iterator from sysrepo (%s).", sr_strerror(rc));
+             return EXIT_FAILURE;
+         }
+-        while ((rc = sr_get_item_next(np2srv.sr_sess.srs, sr_iter, &sr_val)) == SR_ERR_OK) {
+-            if (sr_val->type == SR_LIST_T) {
++        size_t i;
++        for(i = 0; i < value_cnt; i++) {
++            if (values[i].type == SR_LIST_T) {
+                 /* no semantic meaning */
+                 continue;
+             }
+-            rc2 = module_change_resolve(np2srv.sr_sess.srs, SR_OP_CREATED, NULL, sr_val, NULL, NULL);
+-            sr_free_val(sr_val);
++            rc2 = module_change_resolve(np2srv.sr_sess.srs, SR_OP_CREATED, NULL, &values[i], NULL, NULL);
+             if (rc2) {
+                 ERR("Failed to enable nodes depending on the \"%s\" ietf-netconf-server feature.", feature_name);
+                 break;
+             }
+         }
+-        sr_free_val_iter(sr_iter);
++        sr_free_values(values, value_cnt);
+         if (rc2) {
+             return EXIT_FAILURE;
+         } else if ((rc != SR_ERR_OK) && (rc != SR_ERR_NOT_FOUND)) {
diff --git a/net/netopeer2/patches/003-BUGFIX-for-missing-eaccess-in-uClibc b/net/netopeer2/patches/003-BUGFIX-for-missing-eaccess-in-uClibc
new file mode 100644 (file)
index 0000000..5314cdb
--- /dev/null
@@ -0,0 +1,59 @@
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/CMakeLists.txt
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt
+@@ -67,6 +67,9 @@ if(NOT MAN_INSTALL_DIR)
+     set(MAN_INSTALL_DIR share/man)
+ endif()
++include(CheckFunctionExists)
++check_function_exists(eaccess HAVE_EACCESS)
++
+ # install binary
+ install(TARGETS netopeer2-cli DESTINATION ${BIN_INSTALL_DIR})
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/commands.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/commands.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/commands.c
+@@ -37,6 +37,10 @@
+ #   include <openssl/x509v3.h>
+ #endif
++#ifndef HAVE_EACCESS
++#define eaccess access
++#endif
++
+ #include "commands.h"
+ #include "configuration.h"
+ #include "completion.h"
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/completion.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c
+@@ -27,6 +27,10 @@
+ #include <nc_client.h>
++#ifndef HAVE_EACCESS
++#define eaccess access
++#endif
++
+ #include "commands.h"
+ #include "linenoise/linenoise.h"
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/configuration.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/configuration.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/configuration.c
+@@ -28,6 +28,10 @@
+ #include <libyang/libyang.h>
+ #include <nc_client.h>
++#ifndef HAVE_EACCESS
++#define eaccess access
++#endif
++
+ #include "configuration.h"
+ #include "commands.h"
+ #include "linenoise/linenoise.h"
diff --git a/net/netopeer2/patches/004-BUGFIX-for-missing-mkstemps-in-uClibc b/net/netopeer2/patches/004-BUGFIX-for-missing-mkstemps-in-uClibc
new file mode 100644 (file)
index 0000000..24460a1
--- /dev/null
@@ -0,0 +1,51 @@
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/CMakeLists.txt
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt
+@@ -69,6 +69,10 @@ endif()
+ include(CheckFunctionExists)
+ check_function_exists(eaccess HAVE_EACCESS)
++check_function_exists(mkstemps HAVE_MKSTEMPS)
++if(HAVE_MKSTEMPS)
++    set(CMAKE_C_FLAGS         "${CMAKE_C_FLAGS} -DHAVE_MKSTEMPS")
++endif(HAVE_MKSTEMPS)
+ # install binary
+ install(TARGETS netopeer2-cli DESTINATION ${BIN_INSTALL_DIR})
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/completion.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c
+@@ -120,6 +120,7 @@ readinput(const char *instruction, const
+     char* tmpname = NULL, *input = NULL, *old_content = NULL, *ptr, *ptr2;
+     /* Create a unique temporary file */
++#ifdef HAVE_MKSTEMPS
+     if (asprintf(&tmpname, "/tmp/tmpXXXXXX.xml") == -1) {
+         ERROR(__func__, "asprintf() failed (%s).", strerror(errno));
+         goto fail;
+@@ -129,6 +130,23 @@ readinput(const char *instruction, const
+         ERROR(__func__, "Failed to create a temporary file (%s).", strerror(errno));
+         goto fail;
+     }
++#else
++    if (asprintf(&tmpname, "/tmp/tmpXXXXXX") == -1) {
++        ERROR(__func__, "asprintf() failed (%s).", strerror(errno));
++        goto fail;
++    }
++    /* cannot fail */
++    mktemp(tmpname);
++    if (asprintf(&tmpname, ".xml") == -1) {
++        ERROR(__func__, "asprintf() failed (%s).", strerror(errno));
++        goto fail;
++    }
++    tmpfd = open(tmpname, O_RDWR | O_CREAT | O_EXCL, 0600);
++    if (tmpfd == -1) {
++        ERROR(__func__, "Failed to create a temporary file (%s).", strerror(errno));
++        goto fail;
++    }
++#endif /* #ifdef HAVE_MKSTEMPS */
+     /* Read the old content, if any */
+     if (old_tmp != NULL) {
diff --git a/net/noddos/Makefile b/net/noddos/Makefile
new file mode 100644 (file)
index 0000000..64cc369
--- /dev/null
@@ -0,0 +1,82 @@
+#
+# Copyright (C) 2017 Steven Hessing
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+# Name and release number of this package
+PKG_NAME:=noddos
+PKG_RELEASE:=1
+PKG_LICENSE:=GPLv3
+
+PKG_SOURCE_VERSION:=0.5.0
+PKG_SOURCE_URL:=https://github.com/noddos/noddos/releases/download/v$(PKG_SOURCE_VERSION)/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.xz
+PKG_HASH:=61119d76bbc1e7de74c3f3cd58fe7048581a1653dbffa03ae4215163b5221b18
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+
+CMAKE_INSTALL:=1
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/noddos
+       SECTION:=net
+       CATEGORY:=Network
+       TITLE:=noddos -- device-aware cloud-powered firewall
+       URL:=https://www.noddos.io/
+       DEPENDS:=+libstdcpp +libnetfilter-conntrack +libcurl +libopenssl +openssl-util +ca-bundle +ca-certificates +wget +bzip2 +libtins +ipset +libpthread
+endef
+
+define Package/noddos/description
+Noddos discovers what devices you have in your network and tailors the firewall rules based on whitelisted flows for that device. Noddos downloads the firewall rules periodically from the cloud. In order to support creating these firewall rules, noddos can optionally upload anonimized traffic statistics for each device to the cloud.
+endef
+
+define Package/noddos/conffiles
+       /etc/config/noddos      
+endef
+
+define Package/noddos/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/etc/noddos
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/noddos $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/getnoddosdeviceprofiles $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/makenoddoscert.sh $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/noddos.init $(1)/etc/init.d/noddos
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/noddos.uciconfig $(1)/etc/config/noddos
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddos.conf-base $(1)/etc/noddos
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddosconfig.pem $(1)/etc/noddos
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddos.conf-base $(1)/etc/noddos
+endef
+
+define Package/noddos/prerm
+       #!/bin/sh
+       # check if we are on real system
+       if [ -z "$${IPKG_INSTROOT}" ]; then
+               /etc/init.d/noddos stop
+               echo "Removing rc.d symlink for noddos"
+               /etc/init.d/noddos disable
+       fi
+       exit 0
+endef
+
+define Package/noddos/postrm
+       #!/bin/sh
+       # check if we are on real system
+       if [ -z "$${IPKG_INSTROOT}" ]; then
+               echo "Removing noddos data directory"
+               rm -rf /var/lib/noddos
+               if [ -f /var/etc/noddos.conf ]; then
+                       rm /var/etc/noddos.conf
+               fi
+       fi
+       exit 0
+endef
+
+$(eval $(call BuildPackage,noddos))
index bdf58948e7aa17daa666dba489705aaa21a3899f..303475beb5fa4fc69760d0f9158c49011de320ec 100644 (file)
@@ -13,12 +13,12 @@ include $(TOPDIR)/rules.mk
 # - check if default mode has changed from being tcp_only
 #
 PKG_NAME:=shadowsocks-libev
-PKG_VERSION:=3.0.8
-PKG_RELEASE:=14
+PKG_VERSION:=3.1.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)
-PKG_HASH:=3bdf7f8f89050aee896496fd86b6b7ef694754f0b8cd97c4b5a04d1d3e5c2e5b
+PKG_HASH:=3b6493ebdcfff1eb31faf34d164d57049f7253ff5bffafa6ce2263c9ac123f31
 
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 
@@ -56,7 +56,7 @@ define Package/shadowsocks-libev/Default
     SUBMENU:=Web Servers/Proxies
     TITLE:=shadowsocks-libev $(1)
     URL:=https://github.com/shadowsocks/shadowsocks-libev
-    DEPENDS:=+libev +libmbedtls +libpcre +libpthread +libsodium +libudns +shadowsocks-libev-config +zlib
+    DEPENDS:=+libcares +libev +libmbedtls +libpcre +libpthread +libsodium +shadowsocks-libev-config +zlib
   endef
 
   define Package/shadowsocks-libev-$(1)/install
index ad81a021a93dfbfdc19951db6c221c10d79aefc1..ada71208bf0a9d00f272b47d65e423ce15e80c15 100644 (file)
@@ -1,9 +1,9 @@
 ## components
 
-`ss-local` provides SOCKS5 proxy.
+`ss-local` provides SOCKS5 proxy with UDP associate support.
 
         socks5                                     ss              plain
-       --------> tcp:udp:local_address:local_port ----> ss server -------> dest
+       --------> tcp:local_address:local_port ----> ss server -------> dest
 
 `ss-redir`.  The REDIRECT and TPROXY part are to be provided by `ss-rules` script.  REDIRECT only works for tcp traffic (see also darkk/redsocks).  TPROXY is used to proxy udp messages, but it's only available in the PREROUTING chain and as such cannot proxy local out traffic.
 
index 98d4add347e0e861a1eb1c8292ee97f9f1f9cdf7..1b08f41df2cee4ff6c94018c41e2bd071304d0b5 100644 (file)
@@ -81,7 +81,7 @@ ss_mkjson_ss_redir_conf() {
        ss_mkjson_server_conf || return 1
        [ "$disable_sni" = 0 ] && disable_sni=false || disable_sni=true
        cat <<-EOF
-               ${q}disable_sni${q}: $disable_sni,
+               "disable_sni": $disable_sni,
        EOF
 }
 
@@ -120,7 +120,7 @@ ss_xxx() {
                procd_set_param file "$confjson"
                procd_set_param respawn
                procd_close_instance
-               ss_rules_cb "$cfg"
+               ss_rules_cb
        fi
 }
 
index 29de5953876ddece9c41ba4eea9e5bbee12433f0..b0a30606e1300d57f357d61e44d6e2c9da6c44c2 100755 (executable)
@@ -159,7 +159,6 @@ ss_rules_iptchains_init() {
 }
 
 ss_rules_iptchains_init_tcp() {
-       local ipt="iptables -t nat"
        local local_target
 
        [ -n "$o_redir_tcp_port" ] || return 0
diff --git a/net/shadowsocks-libev/patches/0001-decouple-use_syslog-from-pid_flags.patch b/net/shadowsocks-libev/patches/0001-decouple-use_syslog-from-pid_flags.patch
deleted file mode 100644 (file)
index 174dcdb..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From a91d70dd37e9555d104629538890d44ef355c772 Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <yszhou4tech@gmail.com>
-Date: Mon, 26 Jun 2017 14:49:36 +0800
-Subject: [PATCH 1/2] decouple use_syslog from pid_flags
-
-Sometimes we need processes to run in the foreground to be supervised
-and at the same time use syslog facility instead of logging its stdout,
-stderr output
----
- src/jconf.c   |  6 ++++++
- src/local.c   |  2 +-
- src/manager.c |  2 +-
- src/redir.c   |  2 +-
- src/server.c  |  2 +-
- src/tunnel.c  |  2 +-
- src/utils.h   | 18 +++++++++++-------
- 7 files changed, 22 insertions(+), 12 deletions(-)
-
-diff --git a/src/jconf.c b/src/jconf.c
-index 3c58148..05445c3 100644
---- a/src/jconf.c
-+++ b/src/jconf.c
-@@ -313,6 +313,12 @@ read_jconf(const char *file)
-                 check_json_value_type(value, json_boolean,
-                     "invalid config file: option 'ipv6_first' must be a boolean");
-                 conf.ipv6_first = value->u.boolean;
-+#ifdef HAS_SYSLOG
-+            } else if (strcmp(name, "use_syslog") == 0) {
-+                check_json_value_type(value, json_boolean,
-+                    "invalid config file: option 'use_syslog' must be a boolean");
-+                use_syslog = value->u.boolean;
-+#endif
-             }
-         }
-     } else {
-diff --git a/src/local.c b/src/local.c
-index 78f6d29..e4bd477 100644
---- a/src/local.c
-+++ b/src/local.c
-@@ -1522,8 +1522,8 @@ main(int argc, char **argv)
-         local_addr = "127.0.0.1";
-     }
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/manager.c b/src/manager.c
-index 6e7197c..338ab85 100644
---- a/src/manager.c
-+++ b/src/manager.c
-@@ -1149,8 +1149,8 @@ main(int argc, char **argv)
-         timeout = "60";
-     }
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/redir.c b/src/redir.c
-index 3809411..fae8d54 100644
---- a/src/redir.c
-+++ b/src/redir.c
-@@ -1140,8 +1140,8 @@ main(int argc, char **argv)
- #endif
-     }
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/server.c b/src/server.c
-index 534dbd8..1c25c74 100644
---- a/src/server.c
-+++ b/src/server.c
-@@ -1726,8 +1726,8 @@ main(int argc, char **argv)
-     }
- #endif
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/tunnel.c b/src/tunnel.c
-index 77c7380..2419fa0 100644
---- a/src/tunnel.c
-+++ b/src/tunnel.c
-@@ -1022,8 +1022,8 @@ main(int argc, char **argv)
-         local_addr = "127.0.0.1";
-     }
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/utils.h b/src/utils.h
-index 2603e85..53f3983 100644
---- a/src/utils.h
-+++ b/src/utils.h
-@@ -35,7 +35,7 @@
- #include <android/log.h>
- #define USE_TTY()
--#define USE_SYSLOG(ident)
-+#define USE_SYSLOG(ident, _cond)
- #define LOGI(...)                                                \
-     ((void)__android_log_print(ANDROID_LOG_DEBUG, "shadowsocks", \
-                                __VA_ARGS__))
-@@ -53,7 +53,7 @@
- extern FILE *logfile;
- #define TIME_FORMAT "%Y-%m-%d %H:%M:%S"
- #define USE_TTY()
--#define USE_SYSLOG(ident)
-+#define USE_SYSLOG(ident, _cond)
- #define USE_LOGFILE(ident)                                     \
-     do {                                                       \
-         if (ident != NULL) { logfile = fopen(ident, "w+"); } } \
-@@ -99,11 +99,15 @@ extern int use_syslog;
-         use_tty = isatty(STDERR_FILENO); \
-     } while (0)
--#define USE_SYSLOG(ident)                          \
--    do {                                           \
--        use_syslog = 1;                            \
--        openlog((ident), LOG_CONS | LOG_PID, 0); } \
--    while (0)
-+#define USE_SYSLOG(_ident, _cond)                       \
-+    do {                                                \
-+        if (!use_syslog && (_cond)) {                   \
-+            use_syslog = 1;                             \
-+        }                                               \
-+        if (use_syslog) {                               \
-+            openlog((_ident), LOG_CONS | LOG_PID, 0);   \
-+        }                                               \
-+    } while (0)
- #define LOGI(format, ...)                                                        \
-     do {                                                                         \
--- 
-2.12.2
-
diff --git a/net/shadowsocks-libev/patches/0002-syslog-with-daemon-facility-instead-of-kern-0.patch b/net/shadowsocks-libev/patches/0002-syslog-with-daemon-facility-instead-of-kern-0.patch
deleted file mode 100644 (file)
index 6d23ecc..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From afe796ce6e7a4164459009c58d7e60862edb0be3 Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <yszhou4tech@gmail.com>
-Date: Tue, 1 Aug 2017 15:21:38 +0800
-Subject: [PATCH 2/2] syslog with daemon facility instead of kern (0)
-
----
- src/utils.h | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/utils.h b/src/utils.h
-index 53f3983..3b624e8 100644
---- a/src/utils.h
-+++ b/src/utils.h
-@@ -99,14 +99,14 @@ extern int use_syslog;
-         use_tty = isatty(STDERR_FILENO); \
-     } while (0)
--#define USE_SYSLOG(_ident, _cond)                       \
--    do {                                                \
--        if (!use_syslog && (_cond)) {                   \
--            use_syslog = 1;                             \
--        }                                               \
--        if (use_syslog) {                               \
--            openlog((_ident), LOG_CONS | LOG_PID, 0);   \
--        }                                               \
-+#define USE_SYSLOG(_ident, _cond)                               \
-+    do {                                                        \
-+        if (!use_syslog && (_cond)) {                           \
-+            use_syslog = 1;                                     \
-+        }                                                       \
-+        if (use_syslog) {                                       \
-+            openlog((_ident), LOG_CONS | LOG_PID, LOG_DAEMON);  \
-+        }                                                       \
-     } while (0)
- #define LOGI(format, ...)                                                        \
--- 
-2.12.2
-
index 3a60d7aa0029f206ec51e4695cdd84efd9fd5a3e..e3f0c6ed515699b2d957fae76e78b7af147c985e 100644 (file)
@@ -16,7 +16,7 @@ PKG_MAINVERSION:=5.1.4
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=118378698e0fa1216b52ace92fe9eae0f7d32c39becbc50837a895d7367674b2c973b1633c8919045d9d16dd2a5fdbedb9d62ff1513547ee4770a2e9116d8b1e
+PKG_HASH:=3d1446f7e437104c8f8c7257ccdbddfc0dc7df3ea68b80274c11dd94cc1c8629
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index 7cc25b29a3c349d9160299e12251c234b363e1aa..0a08a08907687aa45ee298908390c0b8173bf505 100644 (file)
@@ -16,7 +16,7 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/ 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=c06e365d06c484e7ef673e5a8597d70996f1008a00163aae2d7a53d0d720739a8b0317a093b3e75487ef1c8a02ac4c4c542480757226a974671f82ab08353896
+PKG_HASH:=e90d419ed8a6da615c3a0d6fdcb9481f8e71f89c2bdcff09ab027198ca2ce293
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index b35e77740718e1685808ce0fa648d8d680ac4bde..048b53aa7c99b2363554d00deb97fd2a15927d65 100644 (file)
@@ -16,7 +16,7 @@ PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/ 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=b616c5886b5bc274e88052359ca4c8aa6df60a9706958698eac7fc362f1c893de00ed2272535d61a88cb6a786bae9b7cba64a835833a9f81c991fb2ffed8244b
+PKG_HASH:=29a2f2be295b4f995b38e663b771660ccdc6321134bcfbd0f9378f9bb1237e3c
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index bb7a6d1cbec2d278906efa30a0a8de76d89b9aad..7ebfe5d3aaa185e1742e3a6f6eced4060bc5351e 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sngrep
-PKG_VERSION=1.4.2
+PKG_VERSION=1.4.4-rc2
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Daniel Engberg <daniel.engberg.lists@pyret.net>
 PKG_LICENSE:=GPL-3.0
@@ -17,9 +17,9 @@ PKG_LICENSE_FILES:=COPYING
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/irontec/sngrep
 PKG_SOURCE_SUBDIR=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=da791185cabeea5a6fcc7372157340b2d1369df7
+PKG_SOURCE_VERSION:=cf5e1da49d00bc7ab1afe9d63daa240db2b9b19c
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=2cc640e065f33cae4a3a8e14bdc740e49269cd850eee2ffa9eb821427caaa371
+PKG_MIRROR_HASH:=a6cee2caa108a618134fe87d7c04862e93aa2fdf9647d81dfe4abe91a6c9c19f
 
 PKG_FIXUP:=autoreconf
 
index b1ca349267942de7ed13ea5dc01005b0d426d935..b832162db15b9213ea22a4a23ab2b2790f2ee3eb 100644 (file)
@@ -11,17 +11,18 @@ PKG_LICENSE:=ASL-2.0
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
 PKG_NAME:=sysrepo
-PKG_VERSION:=0.6.0
+PKG_VERSION:=0.7.0
 PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=e4a5705a4c5293ba121048c71899b98243d99edf
-PKG_MIRROR_HASH:=aa0fb5d7c947dd428d9f573c84edf6237c8c1a4db92dcd4d7552a68d25277a39
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_VERSION:=7aa2f18d234267403147df92c0005c871f0aa840
+PKG_MIRROR_HASH:=31125596ae1c4dbf8dd48c639bf78043060ab1b89678c860eb2b10606fe4b686
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/sysrepo/sysrepo.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
 
 CMAKE_INSTALL:=1
 
@@ -36,7 +37,7 @@ define Package/libsysrepo
   CATEGORY:=Utilities
   URL:=$(PKG_SOURCE_URL)
   TITLE:=YANG-based data store library
-  DEPENDS:=+libyang +libprotobuf-c +libev +libavl
+  DEPENDS:=+libyang +libprotobuf-c +libev +libredblack +librt
 endef
 
 define Package/sysrepo
@@ -69,6 +70,7 @@ endef
 
 CMAKE_OPTIONS += \
        -DCMAKE_BUILD_TYPE:STRING=Release \
+       -DUSE_AVL_LIB:BOOL=FALSE \
        -DENABLE_TESTS:BOOL=FALSE \
        -DBUILD_EXAMPLES:BOOL=FALSE \
        -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=TRUE \
index 50c4bceb7d77caea59d950982e6000b7c0d83a39..cb742cec76d830cbc46e2c6504615859f734e82a 100644 (file)
@@ -1,7 +1,7 @@
-Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/CMakeLists.txt
+Index: sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/CMakeLists.txt
 ===================================================================
---- sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf.orig/src/CMakeLists.txt
-+++ sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/CMakeLists.txt
+--- sysrepo-7aa2f18d234267403147df92c0005c871f0aa840.orig/src/CMakeLists.txt
++++ sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/CMakeLists.txt
 @@ -21,14 +21,6 @@ set(GENERATED_PROTO_H "${COMMON_BIN_DIR}
  set(GENERATED_PROTO_C "${COMMON_BIN_DIR}/${PROTO_NAME}.pb-c.c")
  
@@ -17,11 +17,11 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/CMakeLists.txt
  
  configure_file("${COMMON_DIR}/sr_constants.h.in" "${COMMON_BIN_DIR}/sr_constants.h" ESCAPE_QUOTES @ONLY)
  
-Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.c
+Index: sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sysrepo.pb-c.c
 ===================================================================
 --- /dev/null
-+++ sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.c
-@@ -0,0 +1,10517 @@
++++ sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sysrepo.pb-c.c
+@@ -0,0 +1,10537 @@
 +/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
 +/* Generated from: sysrepo.proto */
 +
@@ -6518,9 +6518,29 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +  (ProtobufCMessageInit) sr__copy_config_req__init,
 +  NULL,NULL,NULL    /* reserved[123] */
 +};
-+#define sr__copy_config_resp__field_descriptors NULL
-+#define sr__copy_config_resp__field_indices_by_name NULL
-+#define sr__copy_config_resp__number_ranges NULL
++static const ProtobufCFieldDescriptor sr__copy_config_resp__field_descriptors[1] =
++{
++  {
++    "errors",
++    1,
++    PROTOBUF_C_LABEL_REPEATED,
++    PROTOBUF_C_TYPE_MESSAGE,
++    offsetof(Sr__CopyConfigResp, n_errors),
++    offsetof(Sr__CopyConfigResp, errors),
++    &sr__error__descriptor,
++    NULL,
++    0,             /* flags */
++    0,NULL,NULL    /* reserved1,reserved2, etc */
++  },
++};
++static const unsigned sr__copy_config_resp__field_indices_by_name[] = {
++  0,   /* field[0] = errors */
++};
++static const ProtobufCIntRange sr__copy_config_resp__number_ranges[1 + 1] =
++{
++  { 1, 0 },
++  { 0, 1 }
++};
 +const ProtobufCMessageDescriptor sr__copy_config_resp__descriptor =
 +{
 +  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
@@ -6529,10 +6549,10 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +  "Sr__CopyConfigResp",
 +  "sr",
 +  sizeof(Sr__CopyConfigResp),
-+  0,
++  1,
 +  sr__copy_config_resp__field_descriptors,
 +  sr__copy_config_resp__field_indices_by_name,
-+  0,  sr__copy_config_resp__number_ranges,
++  1,  sr__copy_config_resp__number_ranges,
 +  (ProtobufCMessageInit) sr__copy_config_resp__init,
 +  NULL,NULL,NULL    /* reserved[123] */
 +};
@@ -10539,11 +10559,11 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +  sr__operation__value_ranges,
 +  NULL,NULL,NULL,NULL   /* reserved[1234] */
 +};
-Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.h
+Index: sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sysrepo.pb-c.h
 ===================================================================
 --- /dev/null
-+++ sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.h
-@@ -0,0 +1,4236 @@
++++ sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sysrepo.pb-c.h
+@@ -0,0 +1,4238 @@
 +/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
 +/* Generated from: sysrepo.proto */
 +
@@ -10556,7 +10576,7 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +
 +#if PROTOBUF_C_VERSION_NUMBER < 1000000
 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
-+#elif 1001001 < PROTOBUF_C_MIN_COMPILER_VERSION
++#elif 1002001 < PROTOBUF_C_MIN_COMPILER_VERSION
 +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
 +#endif
 +
@@ -11770,10 +11790,12 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +struct  _Sr__CopyConfigResp
 +{
 +  ProtobufCMessage base;
++  size_t n_errors;
++  Sr__Error **errors;
 +};
 +#define SR__COPY_CONFIG_RESP__INIT \
 + { PROTOBUF_C_MESSAGE_INIT (&sr__copy_config_resp__descriptor) \
-+     }
++    , 0,NULL }
 +
 +
 +/*
diff --git a/net/sysrepo/patches/005-fix-struct-ucred-define b/net/sysrepo/patches/005-fix-struct-ucred-define
new file mode 100644 (file)
index 0000000..1547976
--- /dev/null
@@ -0,0 +1,30 @@
+Index: sysrepo-0.7.0-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sr_utils.c
+===================================================================
+--- sysrepo-0.7.0-7aa2f18d234267403147df92c0005c871f0aa840.orig/src/common/sr_utils.c
++++ sysrepo-0.7.0-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sr_utils.c
+@@ -460,14 +460,24 @@ sr_fd_set_nonblock(int fd)
+ #if defined(SO_PEERCRED)
++#if defined(__GLIBC__)
+ #if !defined(SCM_CREDENTIALS)
+-/* struct ucred is ifdefined behind __USE_GNU, but __USE_GNU is not defined */
+ struct ucred {
+     pid_t pid;    /* process ID of the sending process */
+     uid_t uid;    /* user ID of the sending process */
+     gid_t gid;    /* group ID of the sending process */
+ };
+ #endif /* !defined(SCM_CREDENTIALS) */
++#else
++#if !defined(__USE_GNU)
++struct ucred {
++    pid_t pid;    /* process ID of the sending process */
++    uid_t uid;    /* user ID of the sending process */
++    gid_t gid;    /* group ID of the sending process */
++};
++/* struct ucred is ifdefined behind __USE_GNU, but __USE_GNU is not defined */
++#endif /* !defined(__USE_GNU) */
++#endif /* defined(__GLIBC__) */
+ int
+ sr_get_peer_eid(int fd, uid_t *uid, gid_t *gid)
index aec9dc4c1e9e6b9811e9718d1233776eb67c26ab..8cdf46f567638342299d52b0ad00418dca193dba 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unbound
-PKG_VERSION:=1.6.5
-PKG_RELEASE:=1
+PKG_VERSION:=1.6.6
+PKG_RELEASE:=2
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
@@ -17,7 +17,7 @@ PKG_MAINTAINER:=Eric Luehrsen <ericluehrsen@hotmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.unbound.net/downloads
-PKG_HASH:=e297aa1229015f25bf24e4923cb1dadf1f29b84f82a353205006421f82cc104e
+PKG_HASH:=972b14dc33093e672652a7b2b5f159bab2198b0fe9c9e1c5707e1895d4d4b390
 
 PKG_BUILD_DEPENDS:=libexpat
 PKG_BUILD_PARALLEL:=1
index db0f5974f49e8522d4a7de940f79d082efb0b7e8..f8bb320246fb49b966053443d2759e8a851bc351 100644 (file)
@@ -200,6 +200,13 @@ config unbound
     Bytes. Extended DNS is necessary for DNSSEC. However, it can run
     into MTU issues. Use this size in bytes to manage drop outs.
 
+  option extended_luci '0'
+    Boolean. Extends a tab hierarchy in LuCI for advanced congfiguration.
+
+  option extended_stats '0'
+    Boolean. extended statistics are printed from unbound-control.
+    Keeping track of more statistics takes time.
+
   option hide_binddata '1'
     Boolean. If enabled version.server, version.bind, id.server, and
     hostname.bind queries are refused.
@@ -266,8 +273,12 @@ config unbound
     Typical to configure maybe 0~300, but 1800 is the maximum accepted.
 
   option unbound_control '0'
-    Boolean. Enables unbound-control application access ports. Enabling
-    this without the unbound-control package installed is robust.
+    Level. Enables unbound-control application access ports.
+    0 - No unbound-control Access, or add your own in 'unbound_ext.conf'
+    1 - Unencrypted Local Host Access
+    2 - SSL Local Host Access; auto unbound-control-setup if available
+    3 - SSL Network Access; auto unbound-control-setup if available
+    4 - SSL Network Access; static key/pem files must already exist
 
   option validator '0'
     Boolean. Enable DNSSEC. Unbound names this the "validator" module.
index 160950884e39e077946e1cdd0f61abc552b9f8e1..58f28d29a75aba9a8a27c8a09aca0878d385d606 100644 (file)
@@ -68,7 +68,7 @@
       if ( bconf == 1 ) {
         x = ( "local-data: \"" fqdn ". 120 IN A " adr "\"" ) ;
         y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
-        print ( x "\n" y ) > hostfile ;
+        print ( x "\n" y "\n" ) > hostfile ;
       }
 
       else {
             # GA or ULA routed addresses only (not LL or MC)
             sub( /\/.*/, "", adr ) ;
             adr = ( adr slaac ) ;
-            
-            
-            if ( split( adr, tmp0, ":" ) >= 8 ) { 
-              sub( "::", ":", adr ) ; 
+
+
+            if ( split( adr, tmp0, ":" ) >= 8 ) {
+              sub( "::", ":", adr ) ;
             }
 
 
             if ( bconf == 1 ) {
               x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr "\"" ) ;
               y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
-              print ( x "\n" y ) > hostfile ;
+              print ( x "\n" y "\n" ) > hostfile ;
             }
 
             else {
       if ( bconf == 1 ) {
         x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr "\"" ) ;
         y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
-        print ( x "\n" y ) > hostfile ;
+        print ( x "\n" y "\n" ) > hostfile ;
       }
 
       else {
         print ( x "\n" y ) > hostfile ;
       }
     }
-    
+
     if (( cdr2 == 128 ) && ( hst != "-" )) {
       if ( bconf == 1 ) {
         x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr2 "\"" ) ;
         y = ( "local-data-ptr: \"" adr2 " 120 " fqdn "\"" ) ;
-        print ( x "\n" y ) > hostfile ;
+        print ( x "\n" y "\n" ) > hostfile ;
       }
 
       else {
index 7defd8db475ddddb5df017822f4819e27fa74ced..e0a1e52540954a5243521f00e29a223878313903 100644 (file)
 #
 ##############################################################################
 
-UNBOUND_B_CONTROL=0
 UNBOUND_B_SLAAC6_MAC=0
 UNBOUND_B_DNSSEC=0
 UNBOUND_B_DNS64=0
+UNBOUND_B_EXT_STATS=0
 UNBOUND_B_GATE_NAME=0
 UNBOUND_B_HIDE_BIND=1
 UNBOUND_B_LOCL_BLCK=0
@@ -37,6 +37,7 @@ UNBOUND_B_PRIV_BLCK=1
 UNBOUND_B_QUERY_MIN=0
 UNBOUND_B_QRY_MINST=0
 
+UNBOUND_D_CONTROL=0
 UNBOUND_D_DOMAIN_TYPE=static
 UNBOUND_D_DHCP_LINK=none
 UNBOUND_D_EXTRA_DNS=0
@@ -80,6 +81,11 @@ UNBOUND_KEYFILE=$UNBOUND_VARDIR/root.key
 UNBOUND_HINTFILE=$UNBOUND_VARDIR/root.hints
 UNBOUND_TIMEFILE=$UNBOUND_VARDIR/hotplug.time
 
+UNBOUND_CTLKEY_FILE=$UNBOUND_VARDIR/unbound_control.key
+UNBOUND_CTLPEM_FILE=$UNBOUND_VARDIR/unbound_control.pem
+UNBOUND_SRVKEY_FILE=$UNBOUND_VARDIR/unbound_server.key
+UNBOUND_SRVPEM_FILE=$UNBOUND_VARDIR/unbound_server.pem
+
 ##############################################################################
 
 UNBOUND_ANCHOR=/usr/sbin/unbound-anchor
@@ -457,17 +463,54 @@ unbound_mkdir() {
 
   # Ensure access and prepare to jail
   chown -R unbound:unbound $UNBOUND_VARDIR
-  chmod 775 $UNBOUND_VARDIR
-  chmod 664 $UNBOUND_VARDIR/*
+  chmod 755 $UNBOUND_VARDIR
+  chmod 644 $UNBOUND_VARDIR/*
+
+
+  if [ -f $UNBOUND_CTLKEY_FILE -o -f $UNBOUND_CTLPEM_FILE \
+    -o -f $UNBOUND_SRVKEY_FILE -o -f $UNBOUND_SRVPEM_FILE ] ; then
+    # Keys (some) exist already; do not create new ones
+    chmod 640 $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+              $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+  elif [ -x /usr/sbin/unbound-control-setup ] ; then
+    case "$UNBOUND_D_CONTROL" in
+    [2-3])
+      # unbound-control-setup for encrypt opt. 2 and 3, but not 4 "static"
+      /usr/sbin/unbound-control-setup -d $UNBOUND_VARDIR
+
+      chown -R unbound:unbound  $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+                                $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+      chmod 640 $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+                $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+      cp -p $UNBOUND_CTLKEY_FILE /etc/unbound/unbound_control.key
+      cp -p $UNBOUND_CTLPEM_FILE /etc/unbound/unbound_control.pem
+      cp -p $UNBOUND_SRVKEY_FILE /etc/unbound/unbound_server.key
+      cp -p $UNBOUND_SRVPEM_FILE /etc/unbound/unbound_server.pem
+      ;;
+    esac
+  fi
 }
 
 ##############################################################################
 
 unbound_control() {
-  if [ "$UNBOUND_B_CONTROL" -gt 0 ] ; then
+  if [ "$UNBOUND_D_CONTROL" -gt 1 ] ; then
+    if [ ! -f $UNBOUND_CTLKEY_FILE -o ! -f $UNBOUND_CTLPEM_FILE \
+      -o ! -f $UNBOUND_SRVKEY_FILE -o ! -f $UNBOUND_SRVPEM_FILE ] ; then
+      # Key files need to be present; if unbound-control-setup was found, then
+      # they might have been made during unbound_makedir() above.
+      UNBOUND_D_CONTROL=0
+    fi
+  fi
+
+
+  case "$UNBOUND_D_CONTROL" in
+  1)
     {
-      # Enable remote control tool, but only at local host for security
-      # You can hand write fancier encrypted access with /etc/..._ext.conf
+      # Local Host Only Unencrypted Remote Control
       echo "remote-control:"
       echo "  control-enable: yes"
       echo "  control-use-cert: no"
@@ -475,7 +518,42 @@ unbound_control() {
       echo "  control-interface: ::1"
       echo
     } >> $UNBOUND_CONFFILE
-  fi
+    ;;
+
+  2)
+    {
+      # Local Host Only Encrypted Remote Control
+      echo "remote-control:"
+      echo "  control-enable: yes"
+      echo "  control-use-cert: yes"
+      echo "  control-interface: 127.0.0.1"
+      echo "  control-interface: ::1"
+      echo "  server-key-file: \"$UNBOUND_SRVKEY_FILE\""
+      echo "  server-cert-file: \"$UNBOUND_SRVPEM_FILE\""
+      echo "  control-key-file: \"$UNBOUND_CTLKEY_FILE\""
+      echo "  control-cert-file: \"$UNBOUND_CTLPEM_FILE\""
+      echo
+    } >> $UNBOUND_CONFFILE
+    ;;
+
+  [3-4])
+    {
+      # Network Encrypted Remote Control
+      # (3) may auto setup and (4) must have static key/pem files
+      # TODO: add UCI list for interfaces to bind
+      echo "remote-control:"
+      echo "  control-enable: yes"
+      echo "  control-use-cert: yes"
+      echo "  control-interface: 0.0.0.0"
+      echo "  control-interface: ::0"
+      echo "  server-key-file: \"$UNBOUND_SRVKEY_FILE\""
+      echo "  server-cert-file: \"$UNBOUND_SRVPEM_FILE\""
+      echo "  control-key-file: \"$UNBOUND_CTLKEY_FILE\""
+      echo "  control-cert-file: \"$UNBOUND_CTLPEM_FILE\""
+      echo
+    } >> $UNBOUND_CONFFILE
+    ;;
+  esac
 
 
   {
@@ -493,15 +571,14 @@ unbound_conf() {
   local cfg="$1"
   local rt_mem rt_conn modulestring
 
+  # Make fresh conf file
+  echo > $UNBOUND_CONFFILE
+
 
   {
     # Make fresh conf file
     echo "# $UNBOUND_CONFFILE generated by UCI $( date )"
     echo
-  } > $UNBOUND_CONFFILE
-
-
-  {
     # No threading
     echo "server:"
     echo "  username: unbound"
@@ -511,27 +588,33 @@ unbound_conf() {
     echo "  infra-cache-slabs: 1"
     echo "  key-cache-slabs: 1"
     echo
-  } >> $UNBOUND_CONFFILE
-
-
-  {
+    # Interface Wildcard (access contol handled by "option local_service")
+    echo "  interface: 0.0.0.0"
+    echo "  interface: ::0"
+    echo "  outgoing-interface: 0.0.0.0"
+    echo "  outgoing-interface: ::0"
+    echo
     # Logging
     echo "  verbosity: 1"
     echo "  statistics-interval: 0"
     echo "  statistics-cumulative: no"
-    echo "  extended-statistics: no"
-    echo
   } >> $UNBOUND_CONFFILE
 
 
-  {
-    # Interfaces (access contol "option local_service")
-    echo "  interface: 0.0.0.0"
-    echo "  interface: ::0"
-    echo "  outgoing-interface: 0.0.0.0"
-    echo "  outgoing-interface: ::0"
-    echo
-  } >> $UNBOUND_CONFFILE
+  if [ "$UNBOUND_B_EXT_STATS" -gt 0 ] ; then
+    {
+      # Log More
+      echo "  extended-statistics: yes"
+      echo
+    } >> $UNBOUND_CONFFILE
+
+  else
+    {
+      # Log Less
+      echo "  extended-statistics: no"
+      echo
+    } >> $UNBOUND_CONFFILE
+  fi
 
 
   case "$UNBOUND_D_PROTOCOL" in
@@ -930,6 +1013,7 @@ unbound_uci() {
 
   config_get_bool UNBOUND_B_SLAAC6_MAC "$cfg" dhcp4_slaac6 0
   config_get_bool UNBOUND_B_DNS64      "$cfg" dns64 0
+  config_get_bool UNBOUND_B_EXT_STATS  "$cfg" extended_stats 0
   config_get_bool UNBOUND_B_HIDE_BIND  "$cfg" hide_binddata 1
   config_get_bool UNBOUND_B_LOCL_SERV  "$cfg" localservice 1
   config_get_bool UNBOUND_B_MAN_CONF   "$cfg" manual_conf 0
@@ -937,7 +1021,6 @@ unbound_uci() {
   config_get_bool UNBOUND_B_QRY_MINST  "$cfg" query_min_strict 0
   config_get_bool UNBOUND_B_PRIV_BLCK  "$cfg" rebind_protection 1
   config_get_bool UNBOUND_B_LOCL_BLCK  "$cfg" rebind_localhost 0
-  config_get_bool UNBOUND_B_CONTROL    "$cfg" unbound_control 0
   config_get_bool UNBOUND_B_DNSSEC     "$cfg" validator 0
   config_get_bool UNBOUND_B_NTP_BOOT   "$cfg" validator_ntp 1
 
@@ -947,6 +1030,7 @@ unbound_uci() {
   config_get UNBOUND_N_RX_PORT   "$cfg" listen_port 53
   config_get UNBOUND_N_ROOT_AGE  "$cfg" root_age 9
 
+  config_get UNBOUND_D_CONTROL     "$cfg" unbound_control 0
   config_get UNBOUND_D_DOMAIN_TYPE "$cfg" domain_type static
   config_get UNBOUND_D_DHCP_LINK   "$cfg" dhcp_link none
   config_get UNBOUND_D_EXTRA_DNS   "$cfg" add_extra_dns 0
index 45022f4080037853934868c1f03ce25c24a95ee5..aef5c1378fc0b50c6a5c7291d14b3ecd522a2eb6 100644 (file)
@@ -9,6 +9,8 @@ config unbound
        option domain 'lan'
        option domain_type 'static'
        option edns_size '1280'
+       option extended_luci '0'
+       option extended_stats '0'
        option hide_binddata '1'
        option listen_port '53'
        option localservice '1'
index 5a4398bf0e479c914928b0ad6ff414e4c2f008a4..a44213b6a11ac02d1b209a7562ef54081709c714 100644 (file)
@@ -1,8 +1,9 @@
 ##############################################################################
-# UNBOUND UCI USER ADDED CLAUSES
+# Extended user clauses added to the end of the UCI generated 'unbound.conf'
 #
-# Put your own forward:, view:, stub:, and control: clauses here. This file is
-# appended to the end of UCI auto generated 'unbound.conf'. This is done with
-# include: statement. Notice, it is outside of the server: clause.
+# Put your own forward:, view:, stub:, or remote-control: clauses here. This
+# file is appended to the end of 'unbound.conf' with an include: statement.
+# Notice that it is not part of the server: clause. Use 'unbound_srv.conf' to
+# place custom option statements in the server: clause.
 ##############################################################################
 
index 01ba54414dc3ca868eb262063c0451ad3e6fe5d4..03eb48abcd8c5a7df2a57f3d8a26b457f2f25d5b 100644 (file)
@@ -1,8 +1,9 @@
 ##############################################################################
-# UNBOUND UCI USER ADDED SERVER OPTIONS
+# User custom options added in the server: clause part of UCI 'unbound.conf'
 #
-# Put your own choice options here when not covered by UCI. These are all part
-# of the server: clause only. Most likely are hardening options or local-zone:
-# This is in an include: statement towards the end of the server: cluase. 
+# Add your own option statements here when they are not covered by UCI. This
+# file is placed _inside_ the server: clause with an include: statement. Do
+# not start other clauses here, because that would brake the server: clause.
+# Use 'unbound_ext.conf' to start new clauses at the end of 'unbound.conf'.
 ##############################################################################
 
index b6da07374b785dbac7291ba928806ae816177dcd..a54596eaec4a2885f052b9438943595078994e90 100644 (file)
@@ -6,7 +6,7 @@ index 5396029..cbb51ec 100644
 -#
 -# Example configuration file.
 -#
--# See unbound.conf(5) man page, version 1.6.5.
+-# See unbound.conf(5) man page, version 1.6.6.
 -#
 -# this is a comment.
 +##############################################################################
index 90e65180a8435d6aae2bf4e68bd91ee5ca0c47dc..de12fb379370ca84e1d79cb4f9f5e89640c93cdd 100644 (file)
@@ -11,12 +11,12 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=wireguard
 
-PKG_VERSION:=0.0.20170907
+PKG_VERSION:=0.0.20170918
 PKG_RELEASE:=1
 
 PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/
-PKG_HASH:=a1ee12d60662607e4c5a19f84b5115e56f083e2600053882e161537f12d963fd
+PKG_HASH:=e083f18596574fb7050167090bfb4db4df09a1a99f3c1adc77f820c166368881
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
@@ -34,9 +34,9 @@ define Package/wireguard/Default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=VPN
-  URL:=https://www.wireguard.io
+  URL:=https://www.wireguard.com
   MAINTAINER:=Baptiste Jonglez <openwrt@bitsofnetworks.org>, \
-              Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> \
+              Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>, \
               Dan Luedtke <mail@danrl.com>, \
               Jason A. Donenfeld <Jason@zx2c4.com>
 endef
@@ -47,8 +47,7 @@ define Package/wireguard/Default/description
   more useful than IPSec, while avoiding the massive headache. It intends to
   be considerably more performant than OpenVPN.  WireGuard is designed as a
   general purpose VPN for running on embedded interfaces and super computers
-  alike, fit for many different circumstances.
-  It runs over UDP.
+  alike, fit for many different circumstances. It uses UDP.
 endef
 
 define Package/wireguard
index b35b8ddfe2a6b0cf335a2234d4d9973483f4a7bf..7781fd390870d7cfde5336dfeea4396977546030 100644 (file)
@@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/linux-can/can-utils
 PKG_SOURCE_DATE:=2017-02-16
 PKG_SOURCE_VERSION:=cb33a55720716cbe01e6025a2bda74a1b7e492d3
-PKG_MIRROR_HASH:=cb6a615bc7d62923d5bc0130891e824e9964de8a31920004b74872a07d8743ef
+PKG_MIRROR_HASH:=d9c01eeff3d81a28161ca5c3937ec005a1f49ca3eb97bee0164d53cc66365786
 
 PKG_MAINTAINER:=Anton Glukhov <anton.a.glukhov@gmail.com>
 PKG_LICENSE:=GPL-2.0+
index d52c9b0627dd40bd070a66e557c8b3d20eb44986..53f8909e095beefbf23c85aa3e67a999ad136578 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=collectd
 PKG_VERSION:=5.7.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://collectd.org/files/ \
diff --git a/utils/collectd/patches/500-fix-uptime-reading.patch b/utils/collectd/patches/500-fix-uptime-reading.patch
new file mode 100644 (file)
index 0000000..8c80d16
--- /dev/null
@@ -0,0 +1,169 @@
+From af01dd6fa3eb458e2fbb272703b0cae37ea54a9b Mon Sep 17 00:00:00 2001
+From: Marcin Jurkowski <marcin1j@gmail.com>
+Date: Tue, 11 Jul 2017 15:00:25 +0200
+Subject: [PATCH] uptime plugin: don't cache boot time and simplify Linux code
+
+Caching boottime on startup yields incorrect uptime values if system
+date changes after the daemon is started.
+This is almost certain to happen on embedded systems without RTC, where
+clock is set from NTP server at some point after boot process.
+
+On Linux, we can retrieve uptime directly by either reading /proc/uptime
+(it's sufficient to read a few bytes) or calling sysinfo() function.
+Use the latter since it's the most efficient way in speed, memory
+requirements and code simplicity terms.
+---
+ src/uptime.c | 71 ++++++++++++++++--------------------------------------------
+ 1 file changed, 19 insertions(+), 52 deletions(-)
+
+--- a/src/uptime.c
++++ b/src/uptime.c
+@@ -25,8 +25,7 @@
+ #include "plugin.h"
+ #if KERNEL_LINUX
+-#define STAT_FILE "/proc/stat"
+-/* Using /proc filesystem to retrieve the boot time, Linux only. */
++#include <sys/sysinfo.h>
+ /* #endif KERNEL_LINUX */
+ #elif HAVE_LIBKSTAT
+@@ -53,8 +52,6 @@
+ /*
+  * Global variables
+  */
+-/* boottime always used, no OS distinction */
+-static time_t boottime;
+ #if HAVE_LIBKSTAT
+ extern kstat_ctl_t *kc;
+@@ -72,8 +69,6 @@ static void uptime_submit(gauge_t value)
+   plugin_dispatch_values(&vl);
+ }
+-static int uptime_init(void) /* {{{ */
+-{
+ /*
+  * On most unix systems the uptime is calculated by looking at the boot
+  * time (stored in unix time, since epoch) and the current one. We are
+@@ -84,48 +79,21 @@ static int uptime_init(void) /* {{{ */
+  * the boot time, the plugin is unregistered and there is no chance to
+  * try again later. Nevertheless, this is very unlikely to happen.
+  */
+-
++static time_t uptime_get_sys(void) { /* {{{ */
++  time_t result;
+ #if KERNEL_LINUX
+-  unsigned long starttime;
+-  char buffer[1024];
+-  int ret;
+-  FILE *fh;
+-
+-  ret = 0;
+-
+-  fh = fopen(STAT_FILE, "r");
++  struct sysinfo info;
++  int status;
+-  if (fh == NULL) {
++  status = sysinfo(&info);
++  if (status != 0) {
+     char errbuf[1024];
+-    ERROR("uptime plugin: Cannot open " STAT_FILE ": %s",
++    ERROR("uptime plugin: Error calling sysinfo: %s",
+           sstrerror(errno, errbuf, sizeof(errbuf)));
+     return (-1);
+   }
+-  while (fgets(buffer, 1024, fh) != NULL) {
+-    /* look for the btime string and read the value */
+-    ret = sscanf(buffer, "btime %lu", &starttime);
+-    /* avoid further loops if btime has been found and read
+-     * correctly (hopefully) */
+-    if (ret == 1)
+-      break;
+-  }
+-
+-  fclose(fh);
+-
+-  /* loop done, check if no value has been found/read */
+-  if (ret != 1) {
+-    ERROR("uptime plugin: No value read from " STAT_FILE "");
+-    return (-1);
+-  }
+-
+-  boottime = (time_t)starttime;
+-
+-  if (boottime == 0) {
+-    ERROR("uptime plugin: btime read from " STAT_FILE ", "
+-          "but `boottime' is zero!");
+-    return (-1);
+-  }
++  result = (time_t)info.uptime;
+ /* #endif KERNEL_LINUX */
+ #elif HAVE_LIBKSTAT
+@@ -159,13 +127,13 @@ static int uptime_init(void) /* {{{ */
+     return (-1);
+   }
+-  boottime = (time_t)knp->value.ui32;
+-
+-  if (boottime == 0) {
++  if (knp->value.ui32 == 0) {
+     ERROR("uptime plugin: kstat_data_lookup returned success, "
+           "but `boottime' is zero!");
+     return (-1);
+   }
++
++  result = time(NULL) - (time_t)knp->value.ui32;
+ /* #endif HAVE_LIBKSTAT */
+ #elif HAVE_SYS_SYSCTL_H
+@@ -186,13 +154,13 @@ static int uptime_init(void) /* {{{ */
+     return (-1);
+   }
+-  boottime = boottv.tv_sec;
+-
+-  if (boottime == 0) {
++  if (boottv.tv_sec == 0) {
+     ERROR("uptime plugin: sysctl(3) returned success, "
+           "but `boottime' is zero!");
+     return (-1);
+   }
++
++  result = time(NULL) - boottv.tv_sec;
+ /* #endif HAVE_SYS_SYSCTL_H */
+ #elif HAVE_PERFSTAT
+@@ -212,18 +180,18 @@ static int uptime_init(void) /* {{{ */
+   if (hertz <= 0)
+     hertz = HZ;
+-  boottime = time(NULL) - cputotal.lbolt / hertz;
++  result = cputotal.lbolt / hertz;
+ #endif /* HAVE_PERFSTAT */
+-  return (0);
+-} /* }}} int uptime_init */
++  return result;
++} /* }}} int uptime_get_sys */
+ static int uptime_read(void) {
+   gauge_t uptime;
+   time_t elapsed;
+   /* calculate the amount of time elapsed since boot, AKA uptime */
+-  elapsed = time(NULL) - boottime;
++  elapsed = uptime_get_sys();
+   uptime = (gauge_t)elapsed;
+@@ -233,6 +201,5 @@ static int uptime_read(void) {
+ }
+ void module_register(void) {
+-  plugin_register_init("uptime", uptime_init);
+   plugin_register_read("uptime", uptime_read);
+ } /* void module_register */
index 896b001d578ea845ef664adc3ac751848e49b843..ddf481b970c005736536f203b02e92ba9e8665de 100644 (file)
@@ -16,7 +16,7 @@ PKG_RELEASE:=1
 PKG_SOURCE_URL:=https://github.com/cryptodev-linux/cryptodev-linux
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=a705360197260d28535746ae98c461ba2cfb7a9e
-PKG_MIRROR_HASH:=553069ecf1f3d5d5652404aaf438610f555c94db4369c7c1db85210c4e3cdfee
+PKG_MIRROR_HASH:=334a8f4df18e36e97459b4c6669c9873c13c4f5dae25243cf41ff70c2ce661d8
 
 PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
 
index 8a330be17339a7b2e367dd6c7a1c119abea7dba2..d8dee81390ead2b9b0eb650d643873312d10fa9f 100644 (file)
@@ -11,7 +11,7 @@ PKG_NAME:=domoticz
 PKG_VERSION_MAJOR:=3
 PKG_VERSION_PATCH:=8153
 PKG_VERSION:=$(PKG_VERSION_MAJOR).$(PKG_VERSION_PATCH)
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_VERSION)/$(PKG_SOURCE)
@@ -62,6 +62,8 @@ CMAKE_OPTIONS += \
        -DUSE_STATIC_OPENZWAVE=no \
        -DUSE_PYTHON=no
 
+TARGET_CXXFLAGS+=-DWITH_GPIO
+
 define Build/Prepare
        $(call Build/Prepare/Default)
        # Fix APPVERSION to suppress update popup
@@ -72,7 +74,7 @@ define Build/Prepare
                buienradar_rain_example.pl \
                _domoticz_main* \
                download_update.sh \
-               dzVents/{.gitignore,documentation,examples} \
+               dzVents/{.gitignore,documentation,examples,generated_scripts} \
                dzVents/runtime/{integration-tests,misc/smoothing.xlsx,tests} \
                logrotate/ \
                lua_parsers/example* \
index d714b97388c772af21f1122ae2d4555b66bd70d7..26e0c42d4215ebdb2c28222c01d63da85e4a4ce3 100644 (file)
@@ -20,9 +20,9 @@ start_domoticz() {
        [ -n "$loglevel" ] && procd_append_param command -loglevel "$loglevel"
        [ -n "$syslog" ] && procd_append_param command -syslog "$syslog"
        [ -n "$userdata" ] && {
-               mkdir -p "$userdata"
-               chmod 0770 "$userdata"
-               chown domoticz:domoticz "$userdata"
+               mkdir -p "${userdata}/generated_scripts"
+               chmod -R 0770 "$userdata"
+               chown -R domoticz:domoticz "$userdata"
                procd_append_param command -userdata "$userdata"
        }
        [ -n "$sslcert" -a "${sslwww:-0}" -gt 0 ] && {
diff --git a/utils/domoticz/patches/902_add-scripts-path.patch b/utils/domoticz/patches/902_add-scripts-path.patch
deleted file mode 100644 (file)
index 031321e..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
---- a/hardware/OpenZWave.cpp
-+++ b/hardware/OpenZWave.cpp
-@@ -948,7 +948,7 @@ bool COpenZWave::OpenSerialConnector()
-       m_nodes.clear();
-       m_bNeedSave = false;
--      std::string ConfigPath = szStartupFolder + "Config/";
-+      std::string ConfigPath = "/usr/share/domoticz/openzwave/";
-       std::string UserPath = ConfigPath;
-       if (szStartupFolder != szUserDataFolder)
-       {
---- a/main/EventSystem.cpp
-+++ b/main/EventSystem.cpp
-@@ -33,7 +33,7 @@ extern "C" {
- #endif
- }
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- extern http::server::CWebServerHelper m_webservers;
- static std::string m_printprefix;
-@@ -149,7 +149,7 @@ void CEventSystem::StartEventSystem()
-       GetCurrentScenesGroups();
-       GetCurrentUserVariables();
- #ifdef ENABLE_PYTHON
--    Plugins::PythonEventsInitialize(szUserDataFolder);
-+    Plugins::PythonEventsInitialize(szScriptsFolder);
- #endif
-       m_thread = boost::shared_ptr<boost::thread>(new boost::thread(boost::bind(&CEventSystem::Do_Work, this)));
-@@ -181,9 +181,9 @@ void CEventSystem::LoadEvents()
- {
-       std::string dzv_Dir,s;
- #ifdef WIN32
--      dzv_Dir = szUserDataFolder + "scripts\\dzVents\\generated_scripts\\";
-+      dzv_Dir = szScriptsFolder + "dzVents\\generated_scripts\\";
- #else
--      dzv_Dir = szUserDataFolder + "scripts/dzVents/generated_scripts/";
-+      dzv_Dir = szScriptsFolder + "dzVents/generated_scripts/";
- #endif
-       boost::unique_lock<boost::shared_mutex> eventsMutexLock(m_eventsMutex);
-       _log.Log(LOG_STATUS, "EventSystem: reset all events...");
-@@ -274,18 +274,18 @@ void CEventSystem::LoadEvents()
- void CEventSystem::Do_Work()
- {
- #ifdef WIN32
--      m_lua_Dir = szUserDataFolder + "scripts\\lua\\";
--      m_dzv_Dir = szUserDataFolder + "scripts\\dzVents\\runtime\\";
-+      m_lua_Dir = szScriptsFolder + "lua\\";
-+      m_dzv_Dir = szScriptsFolder + "dzVents\\runtime\\";
- #else
--      m_lua_Dir = szUserDataFolder + "scripts/lua/";
--      m_dzv_Dir = szUserDataFolder + "scripts/dzVents/runtime/";
-+      m_lua_Dir = szScriptsFolder + "lua/";
-+      m_dzv_Dir = szScriptsFolder + "dzVents/runtime/";
- #endif
- #ifdef ENABLE_PYTHON
- #ifdef WIN32
--      m_python_Dir = szUserDataFolder + "scripts\\python\\";
-+      m_python_Dir = szScriptsFolder + "python\\";
- #else
--      m_python_Dir = szUserDataFolder + "scripts/python/";
-+      m_python_Dir = szScriptsFolder + "python/";
- #endif
- #endif
-       m_stoprequested = false;
-@@ -1426,9 +1426,9 @@ void CEventSystem::EvaluateEvent(const s
-               {
-                       std::string dzv_scripts;
- #ifdef WIN32
--                      dzv_scripts = szUserDataFolder + "scripts\\dzVents\\scripts\\";
-+                      dzv_scripts = szScriptsFolder + "dzVents\\scripts\\";
- #else
--                      dzv_scripts = szUserDataFolder + "scripts/dzVents/scripts/";
-+                      dzv_scripts = szScriptsFolder + "dzVents/scripts/";
- #endif
-                       DirectoryListing(FileEntries, dzv_scripts, false, true);
-                       for (itt = FileEntries.begin(); itt != FileEntries.end(); ++itt)
-@@ -2404,7 +2404,7 @@ bool CEventSystem::parseBlocklyActions(c
-                       }
- #if !defined WIN32
-                       if (sPath.find("/") != 0)
--                              sPath = szUserDataFolder + "scripts/" + sPath;
-+                              sPath = szScriptsFolder + sPath;
- #endif
-                       m_sql.AddTaskItem(_tTaskItem::ExecuteScript(0.2f, sPath, sParam));
-@@ -3508,11 +3508,11 @@ void CEventSystem::EvaluateLua(const std
-               {
-                       std::stringstream lua_DirT;
--                      lua_DirT << szUserDataFolder <<
-+                      lua_DirT << szScriptsFolder <<
- #ifdef WIN32
--                      "scripts\\dzVents\\";
-+                      "dzVents\\";
- #else
--                      "scripts/dzVents/";
-+                      "dzVents/";
- #endif
-                       lua_pushstring(lua_state, "script_path");
-@@ -4695,9 +4695,9 @@ namespace http {
-                               std::stringstream template_file;
- #ifdef WIN32
--                              template_file << szUserDataFolder << "scripts\\templates\\" << eventType << "." << interpreter;
-+                              template_file << szScriptsFolder << "templates\\" << eventType << "." << interpreter;
- #else
--                              template_file << szUserDataFolder << "scripts/templates/" << eventType << "." << interpreter;
-+                              template_file << szScriptsFolder << "templates/" << eventType << "." << interpreter;
- #endif
-                               std::ifstream file;
-                               std::stringstream template_content;
---- a/main/LuaHandler.cpp
-+++ b/main/LuaHandler.cpp
-@@ -22,7 +22,7 @@ extern "C" {
- #include "mainworker.h"
- #include "../hardware/hardwaretypes.h"
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- int CLuaHandler::l_domoticz_updateDevice(lua_State* lua_state)
- {
-@@ -155,9 +155,9 @@ bool CLuaHandler::executeLuaScript(const
- {
-       std::stringstream lua_DirT;
- #ifdef WIN32
--      lua_DirT << szUserDataFolder << "scripts\\lua_parsers\\";
-+      lua_DirT << szScriptsFolder << "lua_parsers\\";
- #else
--      lua_DirT << szUserDataFolder << "scripts/lua_parsers/";
-+      lua_DirT << szScriptsFolder << "lua_parsers/";
- #endif
-       std::string lua_Dir = lua_DirT.str();
---- a/main/SQLHelper.cpp
-+++ b/main/SQLHelper.cpp
-@@ -633,6 +633,7 @@ const char *sqlCreateMobileDevices =
- "[LastUpdate] DATETIME DEFAULT(datetime('now', 'localtime'))"
- ");";
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- CSQLHelper::CSQLHelper(void)
-@@ -3683,9 +3684,9 @@ uint64_t CSQLHelper::UpdateValueInt(cons
-                               //Execute possible script
-                               std::string scriptname;
- #ifdef WIN32
--                              scriptname = szUserDataFolder + "scripts\\domoticz_main.bat";
-+                              scriptname = szScriptsFolder + "domoticz_main.bat";
- #else
--                              scriptname = szUserDataFolder + "scripts/domoticz_main";
-+                              scriptname = szScriptsFolder + "domoticz_main";
- #endif
-                               if (file_exist(scriptname.c_str()))
-                               {
-@@ -6641,7 +6642,7 @@ bool CSQLHelper::HandleOnOffAction(const
-                       std::string scriptname = OnAction.substr(9);
- #if !defined WIN32
-                       if (scriptname.find("/") != 0)
--                              scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                              scriptname = szScriptsFolder + scriptname;
- #endif
-                       std::string scriptparams="";
-                       //Add parameters
-@@ -6675,7 +6676,7 @@ bool CSQLHelper::HandleOnOffAction(const
-               std::string scriptname = OffAction.substr(9);
- #if !defined WIN32
-               if (scriptname.find("/") != 0)
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-               std::string scriptparams = "";
-               int pindex = scriptname.find(' ');
---- a/main/WebServer.cpp
-+++ b/main/WebServer.cpp
-@@ -59,6 +59,7 @@
- #define round(a) ( int ) ( a + .5 )
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- extern std::string szWWWFolder;
-@@ -2987,9 +2988,9 @@ namespace http {
-                       if (scriptname.find("..") != std::string::npos)
-                               return;
- #ifdef WIN32
--                      scriptname = szUserDataFolder + "scripts\\" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #else
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-                       if (!file_exist(scriptname.c_str()))
-                               return;
---- a/main/domoticz.cpp
-+++ b/main/domoticz.cpp
-@@ -136,6 +136,7 @@ static const _facilities facilities[] =
- }; 
- std::string logfacname = "user";
- #endif
-+std::string szScriptsFolder;
- std::string szStartupFolder;
- std::string szUserDataFolder;
- std::string szWWWFolder;
-@@ -696,6 +697,19 @@ int main(int argc, char**argv)
-                       szUserDataFolder = szroot;
-       }
-+      szScriptsFolder=szStartupFolder;
-+      if (cmdLine.HasSwitch("-scripts"))
-+      {
-+              if (cmdLine.GetArgumentCount("-scripts") != 1)
-+              {
-+                      _log.Log(LOG_ERROR, "Please specify a path for scripts directory");
-+                      return 1;
-+              }
-+              std::string szroot = cmdLine.GetSafeArgument("-scripts", 0, "");
-+              if (szroot.size() != 0)
-+                      szScriptsFolder = szroot;
-+      }
-+
-       if (cmdLine.HasSwitch("-startupdelay"))
-       {
-               if (cmdLine.GetArgumentCount("-startupdelay") != 1)
---- a/main/mainworker.cpp
-+++ b/main/mainworker.cpp
-@@ -159,6 +159,7 @@
- #define round(a) ( int ) ( a + .5 )
-+extern std::string szScriptsFolder;
- extern std::string szStartupFolder;
- extern std::string szUserDataFolder;
- extern std::string szWWWFolder;
-@@ -1473,8 +1474,8 @@ void MainWorker::Do_Work()
-                       m_sql.GetPreferencesVar("ReleaseChannel", nValue);
-                       bool bIsBetaChannel = (nValue != 0);
--                      std::string scriptname = szUserDataFolder + "scripts/download_update.sh";
--                      std::string strparm = szUserDataFolder;
-+                      std::string scriptname = szScriptsFolder + "download_update.sh";
-+                      std::string strparm = szScriptsFolder;
-                       if (bIsBetaChannel)
-                               strparm += " /beta";
---- a/notifications/NotificationHTTP.cpp
-+++ b/notifications/NotificationHTTP.cpp
-@@ -6,7 +6,7 @@
- #include "../main/SQLHelper.h"
- #include "../main/Logger.h"
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- CNotificationHTTP::CNotificationHTTP() : CNotificationBase(std::string("http"), OPTIONS_NONE)
- {
-@@ -105,7 +105,7 @@ bool CNotificationHTTP::SendMessageImple
-               std::string scriptparams = "";
- #if !defined WIN32
-               if (scriptname.find("/") != 0)
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-               //Add parameters
-               uPos = scriptname.find(" ");
---- a/push/GooglePubSubPush.cpp
-+++ b/push/GooglePubSubPush.cpp
-@@ -22,7 +22,7 @@ extern "C" {
- using namespace boost::python;
- #endif
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- // this should be filled in by the preprocessor
- extern const char * Python_exe;
-@@ -231,11 +231,11 @@ void CGooglePubSubPush::DoGooglePubSubPu
- #ifdef ENABLE_PYTHON_DECAP
- #ifdef WIN32
--                              python_DirT << szUserDataFolder << "scripts\\python\\";
--                              std::string filename = szUserDataFolder + "scripts\\python\\" + "googlepubsub.py";
-+                              python_DirT << szScriptsFolder << "python\\";
-+                              std::string filename = szScriptsFolder + "python\\" + "googlepubsub.py";
- #else
--                              python_DirT << szUserDataFolder << "scripts/python/";
--                              std::string filename = szUserDataFolder + "scripts/python/" + "googlepubsub.py";
-+                              python_DirT << szScriptsFolder << "python/";
-+                              std::string filename = szScriptsFolder + "python/" + "googlepubsub.py";
- #endif
-                               wchar_t * argv[1];
---- a/hardware/EvohomeScript.cpp
-+++ b/hardware/EvohomeScript.cpp
-@@ -30,7 +30,7 @@
- #include <string>
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- CEvohomeScript::CEvohomeScript(const int ID)
-@@ -143,7 +143,7 @@ void CEvohomeScript::RunScript(const cha
-                       std::string scriptname = OnAction.substr(9);
- #if !defined WIN32
-                       if (scriptname.find("/") != 0)
--                              scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                              scriptname = szScriptsFolder + "scripts/" + scriptname;
- #endif
-                       std::string scriptparams="";
-                       //Add parameters
---- a/main/EventsPythonModule.cpp
-+++ b/main/EventsPythonModule.cpp
-@@ -108,7 +108,7 @@
-         
-         int PythonEventsInitalized = 0;
--        bool PythonEventsInitialize(std::string szUserDataFolder) {
-+        bool PythonEventsInitialize(std::string szScriptsFolder) {
-             
-             if (!Plugins::Py_LoadLibrary())
-             {
-@@ -131,9 +131,9 @@
-             
-             std::string ssPath;
- #ifdef WIN32
--            ssPath  = szUserDataFolder + "scripts\\python\\;";
-+            ssPath  = szScriptsFolder + "python\\;";
- #else
--            ssPath  = szUserDataFolder + "scripts/python/:";
-+            ssPath  = szScriptsFolder + "python/:";
- #endif
-             
-             std::wstring sPath = std::wstring(ssPath.begin(), ssPath.end());
diff --git a/utils/domoticz/patches/902_disable-libusb.patch b/utils/domoticz/patches/902_disable-libusb.patch
new file mode 100644 (file)
index 0000000..f4f03c3
--- /dev/null
@@ -0,0 +1,39 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -521,20 +521,23 @@ else()
+   MESSAGE(FATAL_ERROR "cURL not found on your system, see install.txt how to get them installed. (for example 'sudo apt-get install curl libcurl4-openssl-dev')")
+ ENDIF(CURL_FOUND)
+-find_path(LIBUSB_INCLUDE_DIR usb.h
+-   HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
+-find_library(LIBUSB_LIBRARY NAMES usb
+-   HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
+-set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
++option(WITH_LIBUSB "Enable libusb support" NO)
++  if(WITH_LIBUSB)
++  find_path(LIBUSB_INCLUDE_DIR usb.h
++     HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
++  find_library(LIBUSB_LIBRARY NAMES usb
++     HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
++  set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
+-find_package_handle_standard_args(LIBUSB  DEFAULT_MSG  LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
+-IF(LIBUSB_FOUND)
+-  MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
+-  add_definitions(-DWITH_LIBUSB)
+-  target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
+-else()
+-  MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
+-ENDIF(LIBUSB_FOUND)
++  find_package_handle_standard_args(LIBUSB  DEFAULT_MSG  LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
++  IF(LIBUSB_FOUND)
++    MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
++    add_definitions(-DWITH_LIBUSB)
++    target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
++  else()
++    MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
++  ENDIF(LIBUSB_FOUND)
++endif(WITH_LIBUSB)
+ #
+ # Find MD5/RMD160/SHA library
diff --git a/utils/domoticz/patches/903_disable-libusb.patch b/utils/domoticz/patches/903_disable-libusb.patch
deleted file mode 100644 (file)
index f4f03c3..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -521,20 +521,23 @@ else()
-   MESSAGE(FATAL_ERROR "cURL not found on your system, see install.txt how to get them installed. (for example 'sudo apt-get install curl libcurl4-openssl-dev')")
- ENDIF(CURL_FOUND)
--find_path(LIBUSB_INCLUDE_DIR usb.h
--   HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
--find_library(LIBUSB_LIBRARY NAMES usb
--   HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
--set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
-+option(WITH_LIBUSB "Enable libusb support" NO)
-+  if(WITH_LIBUSB)
-+  find_path(LIBUSB_INCLUDE_DIR usb.h
-+     HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
-+  find_library(LIBUSB_LIBRARY NAMES usb
-+     HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
-+  set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
--find_package_handle_standard_args(LIBUSB  DEFAULT_MSG  LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
--IF(LIBUSB_FOUND)
--  MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
--  add_definitions(-DWITH_LIBUSB)
--  target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
--else()
--  MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
--ENDIF(LIBUSB_FOUND)
-+  find_package_handle_standard_args(LIBUSB  DEFAULT_MSG  LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
-+  IF(LIBUSB_FOUND)
-+    MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
-+    add_definitions(-DWITH_LIBUSB)
-+    target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
-+  else()
-+    MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
-+  ENDIF(LIBUSB_FOUND)
-+endif(WITH_LIBUSB)
- #
- # Find MD5/RMD160/SHA library
diff --git a/utils/domoticz/patches/903_fhs.patch b/utils/domoticz/patches/903_fhs.patch
new file mode 100644 (file)
index 0000000..11e531a
--- /dev/null
@@ -0,0 +1,407 @@
+diff --git a/hardware/EvohomeScript.cpp b/hardware/EvohomeScript.cpp
+index 5258fc55..0a44e97c 100644
+--- a/hardware/EvohomeScript.cpp
++++ b/hardware/EvohomeScript.cpp
+@@ -30,7 +30,7 @@
+ #include <string>
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ CEvohomeScript::CEvohomeScript(const int ID)
+@@ -143,7 +143,7 @@ void CEvohomeScript::RunScript(const char *pdata, const unsigned char length)
+                       std::string scriptname = OnAction.substr(9);
+ #if !defined WIN32
+                       if (scriptname.find("/") != 0)
+-                              scriptname = szUserDataFolder + "scripts/" + scriptname;
++                              scriptname = szScriptsFolder + "scripts/" + scriptname;
+ #endif
+                       std::string scriptparams="";
+                       //Add parameters
+diff --git a/hardware/OpenZWave.cpp b/hardware/OpenZWave.cpp
+index 1f5c341c..24db61c9 100644
+--- a/hardware/OpenZWave.cpp
++++ b/hardware/OpenZWave.cpp
+@@ -948,7 +948,7 @@ bool COpenZWave::OpenSerialConnector()
+       m_nodes.clear();
+       m_bNeedSave = false;
+-      std::string ConfigPath = szStartupFolder + "Config/";
++      std::string ConfigPath = "/usr/share/domoticz/openzwave/";
+       std::string UserPath = ConfigPath;
+       if (szStartupFolder != szUserDataFolder)
+       {
+diff --git a/main/EventSystem.cpp b/main/EventSystem.cpp
+index 4eff02fd..f2b17b97 100644
+--- a/main/EventSystem.cpp
++++ b/main/EventSystem.cpp
+@@ -33,9 +33,11 @@ extern "C" {
+ #endif
+ }
++extern std::string szScriptsFolder;
+ extern std::string szUserDataFolder;
+ extern http::server::CWebServerHelper m_webservers;
++static std::string dzv_Dir;
+ static std::string m_printprefix;
+ #ifdef ENABLE_PYTHON
+@@ -115,7 +117,6 @@ static const _tJsonMap JsonMap[] =
+       { NULL,                                 NULL,                                           tString         }
+ };
+-
+ CEventSystem::CEventSystem(void)
+ {
+       m_stoprequested = false;
+@@ -149,7 +150,7 @@ void CEventSystem::StartEventSystem()
+       GetCurrentScenesGroups();
+       GetCurrentUserVariables();
+ #ifdef ENABLE_PYTHON
+-    Plugins::PythonEventsInitialize(szUserDataFolder);
++    Plugins::PythonEventsInitialize(szScriptsFolder);
+ #endif
+       m_thread = boost::shared_ptr<boost::thread>(new boost::thread(boost::bind(&CEventSystem::Do_Work, this)));
+@@ -179,11 +180,11 @@ void CEventSystem::SetEnabled(const bool bEnabled)
+ void CEventSystem::LoadEvents()
+ {
+-      std::string dzv_Dir,s;
++      std::string s;
+ #ifdef WIN32
+-      dzv_Dir = szUserDataFolder + "scripts\\dzVents\\generated_scripts\\";
++      dzv_Dir = szUserDataFolder + "generated_scripts\\";
+ #else
+-      dzv_Dir = szUserDataFolder + "scripts/dzVents/generated_scripts/";
++      dzv_Dir = szUserDataFolder + "generated_scripts/";
+ #endif
+       boost::unique_lock<boost::shared_mutex> eventsMutexLock(m_eventsMutex);
+       _log.Log(LOG_STATUS, "EventSystem: reset all events...");
+@@ -274,18 +275,18 @@ void CEventSystem::LoadEvents()
+ void CEventSystem::Do_Work()
+ {
+ #ifdef WIN32
+-      m_lua_Dir = szUserDataFolder + "scripts\\lua\\";
+-      m_dzv_Dir = szUserDataFolder + "scripts\\dzVents\\runtime\\";
++      m_lua_Dir = szScriptsFolder + "lua\\";
++      m_dzv_Dir = szScriptsFolder + "dzVents\\runtime\\";
+ #else
+-      m_lua_Dir = szUserDataFolder + "scripts/lua/";
+-      m_dzv_Dir = szUserDataFolder + "scripts/dzVents/runtime/";
++      m_lua_Dir = szScriptsFolder + "lua/";
++      m_dzv_Dir = szScriptsFolder + "dzVents/runtime/";
+ #endif
+ #ifdef ENABLE_PYTHON
+ #ifdef WIN32
+-      m_python_Dir = szUserDataFolder + "scripts\\python\\";
++      m_python_Dir = szScriptsFolder + "python\\";
+ #else
+-      m_python_Dir = szUserDataFolder + "scripts/python/";
++      m_python_Dir = szScriptsFolder + "python/";
+ #endif
+ #endif
+       m_stoprequested = false;
+@@ -1426,9 +1427,9 @@ void CEventSystem::EvaluateEvent(const std::string &reason, const uint64_t Devic
+               {
+                       std::string dzv_scripts;
+ #ifdef WIN32
+-                      dzv_scripts = szUserDataFolder + "scripts\\dzVents\\scripts\\";
++                      dzv_scripts = szScriptsFolder + "dzVents\\scripts\\";
+ #else
+-                      dzv_scripts = szUserDataFolder + "scripts/dzVents/scripts/";
++                      dzv_scripts = szScriptsFolder + "dzVents/scripts/";
+ #endif
+                       DirectoryListing(FileEntries, dzv_scripts, false, true);
+                       for (itt = FileEntries.begin(); itt != FileEntries.end(); ++itt)
+@@ -2404,7 +2405,7 @@ bool CEventSystem::parseBlocklyActions(const std::string &Actions, const std::st
+                       }
+ #if !defined WIN32
+                       if (sPath.find("/") != 0)
+-                              sPath = szUserDataFolder + "scripts/" + sPath;
++                              sPath = szScriptsFolder + sPath;
+ #endif
+                       m_sql.AddTaskItem(_tTaskItem::ExecuteScript(0.2f, sPath, sParam));
+@@ -3508,13 +3509,16 @@ void CEventSystem::EvaluateLua(const std::string &reason, const std::string &fil
+               {
+                       std::stringstream lua_DirT;
+-                      lua_DirT << szUserDataFolder <<
++                      lua_DirT << szScriptsFolder <<
+ #ifdef WIN32
+-                      "scripts\\dzVents\\";
++                      "dzVents\\";
+ #else
+-                      "scripts/dzVents/";
++                      "dzVents/";
+ #endif
++                      lua_pushstring(lua_state, "generated_script_path");
++                      lua_pushstring(lua_state, dzv_Dir.c_str());
++                      lua_rawset(lua_state, -3);
+                       lua_pushstring(lua_state, "script_path");
+                       lua_pushstring(lua_state, lua_DirT.str().c_str());
+                       lua_rawset(lua_state, -3);
+@@ -4695,9 +4699,9 @@ namespace http {
+                               std::stringstream template_file;
+ #ifdef WIN32
+-                              template_file << szUserDataFolder << "scripts\\templates\\" << eventType << "." << interpreter;
++                              template_file << szScriptsFolder << "templates\\" << eventType << "." << interpreter;
+ #else
+-                              template_file << szUserDataFolder << "scripts/templates/" << eventType << "." << interpreter;
++                              template_file << szScriptsFolder << "templates/" << eventType << "." << interpreter;
+ #endif
+                               std::ifstream file;
+                               std::stringstream template_content;
+diff --git a/main/EventsPythonModule.cpp b/main/EventsPythonModule.cpp
+index f69e7219..2d97562e 100644
+--- a/main/EventsPythonModule.cpp
++++ b/main/EventsPythonModule.cpp
+@@ -108,7 +108,7 @@
+         
+         int PythonEventsInitalized = 0;
+-        bool PythonEventsInitialize(std::string szUserDataFolder) {
++        bool PythonEventsInitialize(std::string szScriptsFolder) {
+             
+             if (!Plugins::Py_LoadLibrary())
+             {
+@@ -131,9 +131,9 @@
+             
+             std::string ssPath;
+ #ifdef WIN32
+-            ssPath  = szUserDataFolder + "scripts\\python\\;";
++            ssPath  = szScriptsFolder + "python\\;";
+ #else
+-            ssPath  = szUserDataFolder + "scripts/python/:";
++            ssPath  = szScriptsFolder + "python/:";
+ #endif
+             
+             std::wstring sPath = std::wstring(ssPath.begin(), ssPath.end());
+diff --git a/main/LuaHandler.cpp b/main/LuaHandler.cpp
+index 8fdcb278..c2ad98ff 100644
+--- a/main/LuaHandler.cpp
++++ b/main/LuaHandler.cpp
+@@ -22,7 +22,7 @@ extern "C" {
+ #include "mainworker.h"
+ #include "../hardware/hardwaretypes.h"
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ int CLuaHandler::l_domoticz_updateDevice(lua_State* lua_state)
+ {
+@@ -155,9 +155,9 @@ bool CLuaHandler::executeLuaScript(const std::string &script, const std::string
+ {
+       std::stringstream lua_DirT;
+ #ifdef WIN32
+-      lua_DirT << szUserDataFolder << "scripts\\lua_parsers\\";
++      lua_DirT << szScriptsFolder << "lua_parsers\\";
+ #else
+-      lua_DirT << szUserDataFolder << "scripts/lua_parsers/";
++      lua_DirT << szScriptsFolder << "lua_parsers/";
+ #endif
+       std::string lua_Dir = lua_DirT.str();
+diff --git a/main/SQLHelper.cpp b/main/SQLHelper.cpp
+index 491aa5a2..d529243a 100644
+--- a/main/SQLHelper.cpp
++++ b/main/SQLHelper.cpp
+@@ -633,6 +633,7 @@ const char *sqlCreateMobileDevices =
+ "[LastUpdate] DATETIME DEFAULT(datetime('now', 'localtime'))"
+ ");";
++extern std::string szScriptsFolder;
+ extern std::string szUserDataFolder;
+ CSQLHelper::CSQLHelper(void)
+@@ -3683,9 +3684,9 @@ uint64_t CSQLHelper::UpdateValueInt(const int HardwareID, const char* ID, const
+                               //Execute possible script
+                               std::string scriptname;
+ #ifdef WIN32
+-                              scriptname = szUserDataFolder + "scripts\\domoticz_main.bat";
++                              scriptname = szScriptsFolder + "domoticz_main.bat";
+ #else
+-                              scriptname = szUserDataFolder + "scripts/domoticz_main";
++                              scriptname = szScriptsFolder + "domoticz_main";
+ #endif
+                               if (file_exist(scriptname.c_str()))
+                               {
+@@ -6641,7 +6642,7 @@ bool CSQLHelper::HandleOnOffAction(const bool bIsOn, const std::string &OnAction
+                       std::string scriptname = OnAction.substr(9);
+ #if !defined WIN32
+                       if (scriptname.find("/") != 0)
+-                              scriptname = szUserDataFolder + "scripts/" + scriptname;
++                              scriptname = szScriptsFolder + scriptname;
+ #endif
+                       std::string scriptparams="";
+                       //Add parameters
+@@ -6675,7 +6676,7 @@ bool CSQLHelper::HandleOnOffAction(const bool bIsOn, const std::string &OnAction
+               std::string scriptname = OffAction.substr(9);
+ #if !defined WIN32
+               if (scriptname.find("/") != 0)
+-                      scriptname = szUserDataFolder + "scripts/" + scriptname;
++                      scriptname = szScriptsFolder + scriptname;
+ #endif
+               std::string scriptparams = "";
+               int pindex = scriptname.find(' ');
+diff --git a/main/WebServer.cpp b/main/WebServer.cpp
+index f8471791..d2cf10b2 100644
+--- a/main/WebServer.cpp
++++ b/main/WebServer.cpp
+@@ -59,6 +59,7 @@
+ #define round(a) ( int ) ( a + .5 )
++extern std::string szScriptsFolder;
+ extern std::string szUserDataFolder;
+ extern std::string szWWWFolder;
+@@ -2987,9 +2988,9 @@ namespace http {
+                       if (scriptname.find("..") != std::string::npos)
+                               return;
+ #ifdef WIN32
+-                      scriptname = szUserDataFolder + "scripts\\" + scriptname;
++                      scriptname = szScriptsFolder + scriptname;
+ #else
+-                      scriptname = szUserDataFolder + "scripts/" + scriptname;
++                      scriptname = szScriptsFolder + scriptname;
+ #endif
+                       if (!file_exist(scriptname.c_str()))
+                               return;
+diff --git a/main/domoticz.cpp b/main/domoticz.cpp
+index 5ef96f68..52599b14 100644
+--- a/main/domoticz.cpp
++++ b/main/domoticz.cpp
+@@ -136,6 +136,7 @@ static const _facilities facilities[] =
+ }; 
+ std::string logfacname = "user";
+ #endif
++std::string szScriptsFolder;
+ std::string szStartupFolder;
+ std::string szUserDataFolder;
+ std::string szWWWFolder;
+@@ -696,6 +697,19 @@ int main(int argc, char**argv)
+                       szUserDataFolder = szroot;
+       }
++      szScriptsFolder=szStartupFolder;
++      if (cmdLine.HasSwitch("-scripts"))
++      {
++              if (cmdLine.GetArgumentCount("-scripts") != 1)
++              {
++                      _log.Log(LOG_ERROR, "Please specify a path for scripts directory");
++                      return 1;
++              }
++              std::string szroot = cmdLine.GetSafeArgument("-scripts", 0, "");
++              if (szroot.size() != 0)
++                      szScriptsFolder = szroot;
++      }
++
+       if (cmdLine.HasSwitch("-startupdelay"))
+       {
+               if (cmdLine.GetArgumentCount("-startupdelay") != 1)
+diff --git a/main/mainworker.cpp b/main/mainworker.cpp
+index 803690e1..e89a783b 100644
+--- a/main/mainworker.cpp
++++ b/main/mainworker.cpp
+@@ -159,6 +159,7 @@
+ #define round(a) ( int ) ( a + .5 )
++extern std::string szScriptsFolder;
+ extern std::string szStartupFolder;
+ extern std::string szUserDataFolder;
+ extern std::string szWWWFolder;
+@@ -1473,8 +1474,8 @@ void MainWorker::Do_Work()
+                       m_sql.GetPreferencesVar("ReleaseChannel", nValue);
+                       bool bIsBetaChannel = (nValue != 0);
+-                      std::string scriptname = szUserDataFolder + "scripts/download_update.sh";
+-                      std::string strparm = szUserDataFolder;
++                      std::string scriptname = szScriptsFolder + "download_update.sh";
++                      std::string strparm = szScriptsFolder;
+                       if (bIsBetaChannel)
+                               strparm += " /beta";
+diff --git a/notifications/NotificationHTTP.cpp b/notifications/NotificationHTTP.cpp
+index decff3b4..632e4e66 100644
+--- a/notifications/NotificationHTTP.cpp
++++ b/notifications/NotificationHTTP.cpp
+@@ -6,7 +6,7 @@
+ #include "../main/SQLHelper.h"
+ #include "../main/Logger.h"
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ CNotificationHTTP::CNotificationHTTP() : CNotificationBase(std::string("http"), OPTIONS_NONE)
+ {
+@@ -105,7 +105,7 @@ bool CNotificationHTTP::SendMessageImplementation(
+               std::string scriptparams = "";
+ #if !defined WIN32
+               if (scriptname.find("/") != 0)
+-                      scriptname = szUserDataFolder + "scripts/" + scriptname;
++                      scriptname = szScriptsFolder + scriptname;
+ #endif
+               //Add parameters
+               uPos = scriptname.find(" ");
+diff --git a/push/GooglePubSubPush.cpp b/push/GooglePubSubPush.cpp
+index 359a7d7c..46e489f6 100644
+--- a/push/GooglePubSubPush.cpp
++++ b/push/GooglePubSubPush.cpp
+@@ -22,7 +22,7 @@ extern "C" {
+ using namespace boost::python;
+ #endif
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ // this should be filled in by the preprocessor
+ extern const char * Python_exe;
+@@ -231,11 +231,11 @@ void CGooglePubSubPush::DoGooglePubSubPush()
+ #ifdef ENABLE_PYTHON_DECAP
+ #ifdef WIN32
+-                              python_DirT << szUserDataFolder << "scripts\\python\\";
+-                              std::string filename = szUserDataFolder + "scripts\\python\\" + "googlepubsub.py";
++                              python_DirT << szScriptsFolder << "python\\";
++                              std::string filename = szScriptsFolder + "python\\" + "googlepubsub.py";
+ #else
+-                              python_DirT << szUserDataFolder << "scripts/python/";
+-                              std::string filename = szUserDataFolder + "scripts/python/" + "googlepubsub.py";
++                              python_DirT << szScriptsFolder << "python/";
++                              std::string filename = szScriptsFolder + "python/" + "googlepubsub.py";
+ #endif
+                               wchar_t * argv[1];
+diff --git a/scripts/dzVents/runtime/dzVents.lua b/scripts/dzVents/runtime/dzVents.lua
+index d0dfa869..8370d6a9 100644
+--- a/scripts/dzVents/runtime/dzVents.lua
++++ b/scripts/dzVents/runtime/dzVents.lua
+@@ -1,8 +1,9 @@
+ local currentPath = globalvariables['script_path']
++local generatedScriptPath = globalvariables['generated_script_path']
+ local triggerReason = globalvariables['script_reason']
+ _G.scriptsFolderPath = currentPath .. 'scripts' -- global
+-_G.generatedScriptsFolderPath = currentPath .. 'generated_scripts' -- global
++_G.generatedScriptsFolderPath = generatedScriptPath -- global
+ _G.dataFolderPath = currentPath .. 'data' -- global
+ package.path = package.path .. ';' .. currentPath .. '?.lua'
+@@ -10,7 +11,7 @@ package.path = package.path .. ';' .. currentPath .. 'runtime/?.lua'
+ package.path = package.path .. ';' .. currentPath .. 'runtime/device-adapters/?.lua'
+ package.path = package.path .. ';' .. currentPath .. 'dzVents/?.lua'
+ package.path = package.path .. ';' .. currentPath .. 'scripts/?.lua'
+-package.path = package.path .. ';' .. currentPath .. 'generated_scripts/?.lua'
++package.path = package.path .. ';' .. generatedScriptPath .. '?.lua'
+ package.path = package.path .. ';' .. currentPath .. 'data/?.lua'
+ local EventHelpers = require('EventHelpers')
index 9fa171905da109c2d2a9c337cc60dbadb98d8a42..d55a795565626f1134908a68f0caeed49c9ddb8e 100644 (file)
@@ -16,7 +16,7 @@ PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/webstack/mbtools.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=149e9c69cec180f18cf8781cf5285b97352bf719
-PKG_MIRROR_HASH:=1e6e2f0e40b1c596bb55279bcedfac5a8deb86ef56978dce01a78877151c9352
+PKG_MIRROR_HASH:=3aed4146e06bd9f9bcc271824c6b1d75d1fc2a0bd980f2b729c3b4755c6f70a8
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 
 PKG_FIXUP:=autoreconf
index 4913f06e5d03ab8a2df18a35de1e51982f0b4a1b..3f37d9336c860daea96b0297341b93751268ef30 100644 (file)
@@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
 PKG_SOURCE_DATE:=2017-03-20
 PKG_SOURCE_VERSION:=37c86e60c0442fef570b75cd81aeb1db4d0cbafd
-PKG_MIRROR_HASH:=fc49fce4f592ffdc2a9c8f453ea96b28eb3ece0c6303ed73462cc61fb5b63318
+PKG_MIRROR_HASH:=652958e818d984804be6846ba504961f31c6e98414d0d34ec7a0d76d0844584a
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=
index 29a9ab5480b6b73481a92a04cf6154c4470d6994..a08a540361531b438dd08c080f14b01b0c868a3c 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nano
-PKG_VERSION:=2.8.6
+PKG_VERSION:=2.8.7
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/nano
-PKG_HASH:=9a46962a3ae59db922467a095217ed23280b42d80640f932f3a59ba2a6a85776
+PKG_HASH:=fbe31746958698d73c6726ee48ad8b0612697157961a2e9aaa83b4aa53d1165a
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
diff --git a/utils/nano/patches/001-backport-post287-fix-for-tiny-compilation.patch b/utils/nano/patches/001-backport-post287-fix-for-tiny-compilation.patch
new file mode 100644 (file)
index 0000000..ef8d749
--- /dev/null
@@ -0,0 +1,38 @@
+From 28cfab7580c42a6d6c9c5d787ce736094fd51a0c Mon Sep 17 00:00:00 2001
+From: Benno Schulenberg <bensberg@telfort.nl>
+Date: Tue, 29 Aug 2017 19:28:44 +0200
+Subject: tweaks: fix compilation when configured with --enable-tiny
+
+When moving the cursor to the top-left corner, it is not necessary
+to compute leftedge because firstcolumn IS the relevant leftedge.
+
+Reported-by: Jordi Mallach <jordi@debian.org>
+---
+ src/move.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/move.c b/src/move.c
+index d138356..ce276e4 100644
+--- a/src/move.c
++++ b/src/move.c
+@@ -121,7 +121,7 @@ void do_page_up(void)
+       openfile->current = openfile->edittop;
+       openfile->current_y = 0;
+-      leftedge = leftedge_for(openfile->firstcolumn, openfile->edittop);
++      leftedge = openfile->firstcolumn;
+       target_column = 0;
+     } else
+       get_edge_and_target(&leftedge, &target_column);
+@@ -152,7 +152,7 @@ void do_page_down(void)
+       openfile->current = openfile->edittop;
+       openfile->current_y = 0;
+-      leftedge = leftedge_for(openfile->firstcolumn, openfile->edittop);
++      leftedge = openfile->firstcolumn;
+       target_column = 0;
+     } else
+       get_edge_and_target(&leftedge, &target_column);
+-- 
+cgit v1.0-41-gc330
+
index 65de08d8bcdb7d0baa3c84a984e0ab6e38a10bfe..afdc76ada53f93848849d947faf666f522855b0b 100644 (file)
@@ -21,8 +21,10 @@ PKG_LICENSE:=BSD-4-Clause
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/zip$(PKG_REV)
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION)/zip$(PKG_REV)
 PKG_CHECK_FORMAT_SECURITY:=0
 
+include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/zip
@@ -58,4 +60,14 @@ define Package/zip/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
 endef
 
+define Host/Compile
+       +$(HOST_MAKE_VARS) $(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) -I. -f unix/Makefile generic 
+endef
+
+define Host/Install
+       $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/zip $(STAGING_DIR_HOSTPKG)/bin/
+endef
+
+$(eval $(call HostBuild))
 $(eval $(call BuildPackage,zip))