Merge pull request #4115 from dibdot/mc
authorHannu Nyman <hannu.nyman@iki.fi>
Wed, 8 Mar 2017 21:06:09 +0000 (23:06 +0200)
committerGitHub <noreply@github.com>
Wed, 8 Mar 2017 21:06:09 +0000 (23:06 +0200)
mc (midnight commander): release 4.8.19

75 files changed:
CONTRIBUTING.md
admin/htop/Makefile
admin/monit/Makefile
admin/monit/patches/001-fix-default-piddir.patch
admin/openwisp-config/Makefile [new file with mode: 0644]
admin/zabbix/Makefile
lang/lua-mosquitto/Makefile
lang/lua-openssl/Makefile
lang/lua-penlight/Makefile
lang/python-cryptography/Makefile
lang/python-cryptography/patches/001-disable-setup-requirements.patch [new file with mode: 0644]
libs/boost/Makefile
libs/flac/Makefile
libs/flac/patches/001-no-docs-and-examples.patch
libs/flac/patches/002-no-utility.patch
libs/flac/patches/005-gcc_debug_options.patch
libs/flac/patches/020-fix-musl-sigemptyset-x86.patch [deleted file]
libs/glib2/Makefile
libs/libarchive/Makefile
libs/libwebsockets/Makefile
libs/musl-fts/Makefile [new file with mode: 0644]
libs/sqlite3/Makefile
mail/postfix/Makefile
mail/postfix/patches/501-include_stdio.patch [new file with mode: 0644]
mail/ssmtp/Makefile
net/adblock/Makefile
net/adblock/files/README.md
net/adblock/files/adblock.init
net/adblock/files/adblock.sh
net/ddns-scripts/Makefile
net/dynapoint/Makefile
net/gnunet/Makefile
net/irssi/Makefile
net/knot/Makefile
net/knot/patches/04_cookies_big_endian.patch [deleted file]
net/net-snmp/Makefile
net/ntpd/Makefile
net/ntpd/files/ntpd.hotplug
net/privoxy/Makefile
net/radicale/Makefile
net/travelmate/Makefile
net/travelmate/files/README.md
net/travelmate/files/travelmate.conf
net/travelmate/files/travelmate.init
net/travelmate/files/travelmate.sh
net/unbound/Makefile
net/unbound/files/README.md
net/unbound/files/rootzone.sh
net/unbound/files/unbound.sh
net/unbound/files/unbound.uci
net/vpnbypass/Makefile
net/vpnbypass/files/README.md
net/vpnbypass/files/vpnbypass.conf
net/vpnbypass/files/vpnbypass.init
net/xinetd/Makefile
utils/collectd/Makefile
utils/domoticz/Makefile [new file with mode: 0644]
utils/domoticz/files/domoticz.config [new file with mode: 0644]
utils/domoticz/files/domoticz.hotplug [new file with mode: 0644]
utils/domoticz/files/domoticz.init [new file with mode: 0644]
utils/domoticz/patches/001-Add-sslkey-option-to-allow-separate-cert-key-files-1.patch [new file with mode: 0644]
utils/domoticz/patches/002-Evohome-updates-to-6708.patch [new file with mode: 0644]
utils/domoticz/patches/900_fix-build.patch [new file with mode: 0644]
utils/domoticz/patches/901_no-udev.patch [new file with mode: 0644]
utils/domoticz/patches/902_add-scripts-path.patch [new file with mode: 0644]
utils/domoticz/patches/903_disable-libusb.patch [new file with mode: 0644]
utils/mc/Makefile
utils/openzwave/Makefile [new file with mode: 0644]
utils/openzwave/patches/001-unix-fix-compilation-against-musl-libc-1127.patch [new file with mode: 0644]
utils/openzwave/patches/900_fix-build.patch [new file with mode: 0644]
utils/openzwave/patches/901_no-hidcontroller.patch [new file with mode: 0644]
utils/openzwave/patches/902_no-udev.patch [new file with mode: 0644]
utils/owfs/Makefile
utils/screen/Makefile
utils/zoneinfo/Makefile

index 29ba5dbaa9eab437bce9db6f4314486f08fbb1bd..4cfaef151ffd2c2e0b577649f365b611288f84ab 100644 (file)
@@ -22,6 +22,7 @@ All packages you commit or submit by pull-request should follow these simple gui
 * An optional PKG_LICENSE_FILES tag including the filenames of the license-files in the source-package.
     (E.g.: PKG_LICENSE_FILES:=COPYING)
 * PKG_RELEASE should be initially set to 1 or reset to 1 if the software version is changed. You should increment it if the package itself has changed. For example, modifying a support script, changing configure options like --disable* or --enable* switches, or if you changed something in the package which causes the resulting binaries to be different. Changes like correcting md5sums, changing mirror URLs, adding a maintainer field or updating a comment or copyright year in a Makefile do not require a change to PKG_RELEASE.
+* Avoid reuse of PKG_NAME in call, define and eval lines to improve readability.
 
 #### Commits in your pull-requests should:
 
index 010f36dbf4358241a8e86a322f22170e8b532666..d45b3d9371f2278cb610b64174765ec1ab916621 100644 (file)
@@ -13,7 +13,7 @@ PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://hisham.hm/htop/releases/$(PKG_VERSION)/
-PKG_MD5SUM:=7d354d904bad591a931ad57e99fea84a
+PKG_HASH:=179be9dccb80cee0c5e1a1f58c8f72ce7b2328ede30fb71dcdf336539be2f487
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
index 4f8c14a29e4ffd7865ac11ab8b58138fd035d4a1..ac2fcecc5cea3d83ab1a3331d4b5c0d03e092487 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=monit
-PKG_VERSION:=5.18
+PKG_VERSION:=5.20.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=ebac395ec50c1ae64d568db1260bc049d0e0e624c00e79d7b1b9a59c2679b98d
 PKG_SOURCE_URL:=http://mmonit.com/monit/dist
-PKG_MD5SUM:=a1bfac0fbb83439435f8616200d2364d
 
 PKG_LICENSE:=AGPL-3.0
 PKG_LICENSE_FILES:=COPYING
@@ -26,7 +26,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/monit/Default
   SECTION:=admin
   CATEGORY:=Administration
-  DEPENDS:= +libpthread
+  DEPENDS:= +libpthread +zlib
   TITLE:=System services monitoring utility
   URL:=http://mmonit.com/monit/
   MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
index 7af871f0deb4492e927c697caf1c5b2f9aee00ac..3d6059df706b0c817113387ce5c4a12655944391 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure
 +++ b/configure
-@@ -13849,14 +13849,7 @@ fi
+@@ -13839,14 +13839,7 @@ fi
  # Find the right directory to put the root-mode PID file in
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking pid file location" >&5
  $as_echo_n "checking pid file location... " >&6; }
diff --git a/admin/openwisp-config/Makefile b/admin/openwisp-config/Makefile
new file mode 100644 (file)
index 0000000..ed539b0
--- /dev/null
@@ -0,0 +1,119 @@
+# openwisp.org
+#
+# This is free software, licensed under the GNU General Public License v3.
+# See /LICENSE for more information.
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=openwisp-config
+PKG_VERSION:=0.4.5
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/openwisp/openwisp-config.git
+PKG_SOURCE_VERSION:=0.4.5
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_MIRROR_HASH:=017a8ed35ebfda2805426e7da02559d5cc2845ee9ded60fdae8e848d377424fb
+PKG_LICENSE:=GPL-3.0
+PKGARCH:=all
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/openwisp-config/default
+       TITLE:=Remote configuration management agent ($(2) variant)
+       CATEGORY:=Administration
+       SECTION:=admin
+       SUBMENU:=openwisp
+       DEPENDS:=+curl +lua +libuci-lua +luafilesystem $(3)
+       VARIANT:=$(1)
+       MAINTAINER:=Federico Capoano <f.capoano@cineca.it>
+       URL:=http://openwisp.org
+endef
+
+Package/openwisp-config-openssl=$(call Package/openwisp-config/default,openssl,OpenSSL,+ca-certificates +libopenssl)
+Package/openwisp-config-mbedtls=$(call Package/openwisp-config/default,mbedtls,mbedTLS,+ca-certificates +libmbedtls)
+Package/openwisp-config-cyassl=$(call Package/openwisp-config/default,cyassl,CyaSSL,+ca-certificates +libcyassl)
+# deprecated on recent versions of OpenWRT (>= Designated Driver) and LEDE (>= 17.01)
+Package/openwisp-config-polarssl=$(call Package/openwisp-config/default,polarssl,PolarSSL,+ca-certificates +libpolarssl)
+Package/openwisp-config-nossl=$(call Package/openwisp-config/default,nossl,No SSL)
+
+define Build/Compile
+endef
+
+define Package/openwisp-config-$(BUILD_VARIANT)/conffiles
+/etc/config/openwisp
+endef
+
+ifeq ($(BUILD_VARIANT),openssl)
+CONFIG_OPENWISP_UCI:=ssl
+endif
+ifeq ($(BUILD_VARIANT),mbedtls)
+CONFIG_OPENWISP_UCI:=ssl
+endif
+ifeq ($(BUILD_VARIANT),cyassl)
+CONFIG_OPENWISP_UCI:=ssl
+endif
+ifeq ($(BUILD_VARIANT),polarssl)
+CONFIG_OPENWISP_UCI:=ssl
+endif
+ifeq ($(BUILD_VARIANT),nossl)
+CONFIG_OPENWISP_UCI:=nossl
+endif
+
+
+define Package/openwisp-config-$(BUILD_VARIANT)/install
+       $(INSTALL_DIR) \
+               $(1)/usr/sbin \
+               $(1)/etc/init.d \
+               $(1)/etc/config \
+               $(1)/etc/openwisp \
+               $(1)/usr/lib/lua/openwisp
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/openwisp.agent \
+               $(1)/usr/sbin/openwisp_config
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/openwisp.init \
+               $(1)/etc/init.d/openwisp_config
+
+       $(INSTALL_CONF) $(PKG_BUILD_DIR)/openwisp-config/files/openwisp-$(CONFIG_OPENWISP_UCI).config \
+               $(1)/etc/config/openwisp
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/sbin/openwisp-reload-config \
+               $(1)/usr/sbin/openwisp-reload-config
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/lib/openwisp/utils.lua \
+               $(1)/usr/lib/lua/openwisp/utils.lua
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/sbin/openwisp-store-unmanaged.lua \
+               $(1)/usr/sbin/openwisp-store-unmanaged
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/sbin/openwisp-restore-unmanaged.lua \
+               $(1)/usr/sbin/openwisp-restore-unmanaged
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/sbin/openwisp-remove-default-wifi.lua \
+               $(1)/usr/sbin/openwisp-remove-default-wifi
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/sbin/openwisp-uci-autoname.lua \
+               $(1)/usr/sbin/openwisp-uci-autoname
+
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/openwisp-config/files/sbin/openwisp-update-config.lua \
+               $(1)/usr/sbin/openwisp-update-config
+
+       $(CP) $(PKG_BUILD_DIR)/VERSION $(1)/etc/openwisp/
+endef
+
+$(eval $(call BuildPackage,openwisp-config-openssl))
+$(eval $(call BuildPackage,openwisp-config-mbedtls))
+$(eval $(call BuildPackage,openwisp-config-cyassl))
+$(eval $(call BuildPackage,openwisp-config-polarssl))
+$(eval $(call BuildPackage,openwisp-config-nossl))
index f66c237d074fa48ee653f7dd6cc72fb61c8d4bf5..dcc41b9e506c06fa80073802cc62a5df5a6cec2f 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zabbix
-PKG_VERSION:=3.0.3
+PKG_VERSION:=3.2.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=22cf19ef5a9478df2281bf518e8be38adc7dbc508bf63111e02388ca7aabeef4
 PKG_SOURCE_URL:=@SF/zabbix
-PKG_MD5SUM:=7c45d37000e67d75042695344c9937e0
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
index 2220b2e07fc3b5e4b4f138ab9410dac45d554009..6497c9a968a678eb5d4c60135db4de6b3b0f5c00 100644 (file)
@@ -21,7 +21,7 @@ PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/lua-mosquitto
     SUBMENU:=Lua
     SECTION:=lang
     CATEGORY:=Languages
@@ -30,13 +30,13 @@ define Package/$(PKG_NAME)
     MAINTAINER:=Karl Palsson <karlp@remake.is>
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/lua-mosquitto/description
        Lua bindings to libmosquitto
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/lua-mosquitto/install
        $(INSTALL_DIR) $(1)/usr/lib/lua
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/mosquitto.so $(1)/usr/lib/lua
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,lua-mosquitto))
index 6f46e7a0884cf77e6132f1e1929012b0abbc7088..fddca22e37d708d34f9c8f8971322bcdd10875b6 100644 (file)
@@ -21,7 +21,7 @@ PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/lua-openssl
   SUBMENU:=Lua
   SECTION:=lang
   CATEGORY:=Languages
@@ -34,9 +34,9 @@ define Package/lua-openssl/description
     A free, MIT-licensed OpenSSL binding for Lua.
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/lua-openssl/install
        $(INSTALL_DIR) $(1)/usr/lib/lua
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/openssl.so $(1)/usr/lib/lua/
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,lua-openssl))
index 5c1b72a2a049da77efe5b8c366e41f147a7b6273..de594ec126892cadadbc521342d4e58138d10723 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE_FILES:=LICENSE.md
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/lua-penlight
   SUBMENU:=Lua
   SECTION:=lang
   CATEGORY:=Languages
@@ -29,7 +29,7 @@ define Package/$(PKG_NAME)
   MAINTAINER:= Karl Palsson <karlp@remake.is>
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/lua-penlight/description
   It is often said of Lua that it does not include batteries.
   Penlight is the batteries.
 endef
@@ -38,9 +38,9 @@ define Build/Compile
        echo "Nothing to compile, pure lua package"
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/lua-penlight/install
        $(INSTALL_DIR) $(1)/usr/lib/lua
        $(CP) $(PKG_BUILD_DIR)/lua/pl $(1)/usr/lib/lua
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,lua-penlight))
index d657089d76bf59c6200ca780d721a0d82f775fd3..9ac237d0138cb12cbdb9a9c91ec7e0e655006a1b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cryptography
 PKG_VERSION:=1.5.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://pypi.python.org/packages/21/e1/37fc14f9d77924e84ba0dcb88eb8352db914583af229287c6c965d66ba0d
diff --git a/lang/python-cryptography/patches/001-disable-setup-requirements.patch b/lang/python-cryptography/patches/001-disable-setup-requirements.patch
new file mode 100644 (file)
index 0000000..07ae483
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/setup.py b/setup.py
+index b5c05df..a777dd7 100644
+--- a/setup.py
++++ b/setup.py
+@@ -266,6 +266,7 @@ class DummyPyTest(test):
+ with open(os.path.join(base_dir, "README.rst")) as f:
+     long_description = f.read()
++setup_requirements=[]
+ setup(
+     name=about["__title__"],
index 56d31d4325827ede7ca55f0e4a3fc9a558cdbe6b..54c281ddd36273d0318f08b998ccc903b337946d 100644 (file)
@@ -18,7 +18,7 @@ include $(INCLUDE_DIR)/target.mk
 PKG_NAME:=boost
 PKG_VERSION:=1.63.0
 PKG_SOURCE_VERSION:=1_63_0
-PKG_RELEASE:=3
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceforge.net/projects/boost/files/boost/$(PKG_VERSION)
@@ -56,14 +56,6 @@ Boost is a set of free, peer-reviewed, portable C++ source libraries.
 | - Boost.Locale                                                            |
 | - Boost.Coroutine2                                                        |
 | - Boost.Fiber                                                             |
-| Also, due to hardware contraints, the following libs and those that are   |
-|   dependent, are disabled for some Targets.                               |
-| - Boost.Context                                                           |
-|   - Disabled for -> avr32, octeon and netlogic.                           |
-| - Boost.Fiber                                                             |
-|   - Disabled for -> ar7, rb532, brcm63xx.smp, brcm63xx, brcm47xx,         |
-|                     brcm47xx.legacy, brcm2708_bcm2708, au1000, ath25,     |
-|                     adm8668 and adm5120.                                  |
 -----------------------------------------------------------------------------
 
 This package provides the following run-time libraries:
@@ -72,11 +64,11 @@ This package provides the following run-time libraries:
  - container
  - context
  - coroutine (Deprecated - use Coroutine2)
- - - coroutine2 (Requires GCC v5 or newer)
+ - - coroutine2 (Requires GCC v5 and up)
  - date_time
  - exception
  - filesystem
- - fiber (Requires GCC v5 or newer)
+ - fiber (Requires GCC v5 and up)
  - graph
  - - graph-parallel
  - iostreams
@@ -235,69 +227,34 @@ define Package/boost/config
                config boost-libs-all
                        bool "Include all Boost libraries."
                        default m if ALL
-                       select PACKAGE_boost-container
-                       select PACKAGE_boost-date_time
-                       select PACKAGE_boost-iostreams
-                       select PACKAGE_boost-math
-                       select PACKAGE_boost-program_options
-                       select PACKAGE_boost-serialization
-                       select PACKAGE_boost-signals
-                       select PACKAGE_boost-regex
-                       select PACKAGE_boost-graph if PACKAGE_boost-regex
-                       select PACKAGE_boost-system
-                       select PACKAGE_boost-atomic if PACKAGE_boost-system
-                       select PACKAGE_boost-chrono if PACKAGE_boost-system
-                       select PACKAGE_boost-random if PACKAGE_boost-system
-                       select PACKAGE_boost-filesystem if PACKAGE_boost-system
-                       select PACKAGE_boost-locale if PACKAGE_boost-system
-                       select PACKAGE_boost-timer if PACKAGE_boost-chrono
-                       select PACKAGE_boost-thread if PACKAGE_boost-chrono&&PACKAGE_boost-atomic
-                       select PACKAGE_boost-context if PACKAGE_boost-chrono&&PACKAGE_boost-thread
-                       select PACKAGE_boost-coroutine if PACKAGE_boost-context
-                       select PACKAGE_boost-fiber if boost-coroutine2
-                       select PACKAGE_boost-log if PACKAGE_boost-chrono&&PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem&&PACKAGE_boost-regex
-                       select PACKAGE_boost-wave if PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem
-                       select PACKAGE_boost-python
-                       select PACKAGE_boost-python3
-                       select boost-test-pkg if PACKAGE_boost-system&&PACKAGE_boost-timer
-                       select boost-coroutine2 if PACKAGE_boost-coroutine
-                       select boost-graph-parallel if PACKAGE_boost-graph
-                       
+                       select PACKAGE_boost-libs
+                       select boost-test-pkg
+                       select boost-coroutine2
+                       select boost-graph-parallel
 
                config boost-test-pkg
-                       depends on PACKAGE_boost-system&&PACKAGE_boost-timer
                        bool "Boost test package."
                        default m if ALL
                        select PACKAGE_boost-test
 
                config boost-coroutine2
-                       depends on !@GCC_VERSION_4_8&&PACKAGE_boost-coroutine
+                       depends on !@GCC_VERSION_4_8
                        bool "Boost couroutine2 support."
-                       default m if ALL
+                       select PACKAGE_boost-coroutine
+                       default n
 
                config boost-graph-parallel
-                       depends on PACKAGE_boost-graph
                        bool "Boost parallel graph support."
-                       default m if ALL
+                       select PACKAGE_boost-graph
+                       default n
 
                $(foreach lib,$(BOOST_LIBS), \
                        config PACKAGE_boost-$(lib)
                        prompt "Boost $(lib) library."
                        default m if ALL
-                       $(if $(findstring graph,$(lib)),depends on PACKAGE_boost-regex,)\
-                       $(if $(findstring atomic,$(lib)),depends on PACKAGE_boost-system,)\
-                       $(if $(findstring chrono,$(lib)),depends on PACKAGE_boost-system,)\
-                       $(if $(findstring random,$(lib)),depends on PACKAGE_boost-system,)\
-                       $(if $(findstring filesystem,$(lib)),depends on PACKAGE_boost-system,)\
-                       $(if $(findstring locale,$(lib)),depends on PACKAGE_boost-system&&BUILD_NLS,)\
-                       $(if $(findstring timer,$(lib)),depends on PACKAGE_boost-chrono,)\
-                       $(if $(findstring thread,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-atomic,)\
-                       $(if $(findstring context,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-thread&&@(!TARGET_avr32&&!TARGET_octeon&&!TARGET_netlogic),)\
-                       $(if $(findstring coroutine,$(lib)),depends on PACKAGE_boost-context,)\
-                       $(if $(findstring fiber,$(lib)),depends on @boost-coroutine2&&@(!TARGET_ar7&&!TARGET_rb532&&!TARGET_brcm63xx_smp&&!TARGET_brcm63xx&&!TARGET_brcm47xx&&!TARGET_brcm47xx_legacy&&!TARGET_brcm2708_bcm2708&&!TARGET_au1000&&!TARGET_ath25&&!TARGET_adm8668&&!TARGET_adm5120),)\
-                       $(if $(findstring log,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem&&PACKAGE_boost-regex,)\
-                       $(if $(findstring wave,$(lib)),depends on PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem,)\
+                       $(if $(findstring locale,$(lib)),depends on BUILD_NLS,)\
                        $(if $(findstring python,$(lib)),depends on PACKAGE_$(lib),)
+
                )
        endmenu
 
@@ -309,13 +266,14 @@ define Package/boost-test
        $(call Package/boost/Default)
        TITLE+= (test)
        HIDDEN:=1
+       DEPENDS+=+boost-system +boost-timer
 endef
 
 define Build/Configure
 endef
 
 # 1: short name
-# 2: dependencies on other boost libraries (short name) - Deprecated
+# 2: dependencies on other boost libraries (short name)
 # 3: dependencies on other packages
 # 4: conditional/inward dependencies
 define DefineBoostLibrary
@@ -328,7 +286,7 @@ define DefineBoostLibrary
   define Package/boost-$(1)
     $(call Package/boost/Default)
     TITLE+= ($(1))
-    DEPENDS+= $(3) $(if $(4),@$(4),)
+    DEPENDS+= $$(foreach lib,$(2),+boost-$$(lib)) $(3) $(if $(4),@$(4),)
     HIDDEN:=1
   endef
 
@@ -337,37 +295,32 @@ define DefineBoostLibrary
   endef
 endef
 
-
-## If you are thinking in making changes to the following list, for some reason, the order of what follows matters.
-$(eval $(call DefineBoostLibrary,container,,,))
-$(eval $(call DefineBoostLibrary,date_time,,,))
-$(eval $(call DefineBoostLibrary,iostreams,,+zlib,))
-$(eval $(call DefineBoostLibrary,math,,,))
-$(eval $(call DefineBoostLibrary,program_options,,,))
-$(eval $(call DefineBoostLibrary,serialization,,,))
-$(eval $(call DefineBoostLibrary,signals,,,))
-
-$(eval $(call DefineBoostLibrary,regex,,,))
-$(eval $(call DefineBoostLibrary,graph,,,))
-
-$(eval $(call DefineBoostLibrary,system,,,))
-$(eval $(call DefineBoostLibrary,atomic,,,))
-$(eval $(call DefineBoostLibrary,chrono,,,))
-$(eval $(call DefineBoostLibrary,random,,,))
-$(eval $(call DefineBoostLibrary,filesystem,,,))
-$(eval $(call DefineBoostLibrary,locale,,$(ICONV_DEPENDS),BUILD_NLS))
-$(eval $(call DefineBoostLibrary,timer,,,))
-$(eval $(call DefineBoostLibrary,thread,,,))
-$(eval $(call DefineBoostLibrary,context,,,))
-$(eval $(call DefineBoostLibrary,coroutine,,,))
-$(eval $(call DefineBoostLibrary,fiber,,,))
-$(eval $(call DefineBoostLibrary,log,,,))
-$(eval $(call DefineBoostLibrary,wave,,,))
+$(eval $(call DefineBoostLibrary,atomic,system,))
+$(eval $(call DefineBoostLibrary,chrono,system,))
+$(eval $(call DefineBoostLibrary,container,,))
+$(eval $(call DefineBoostLibrary,context,chrono system thread,))
+$(eval $(call DefineBoostLibrary,coroutine,system chrono context thread,))
+$(eval $(call DefineBoostLibrary,date_time,,))
+#$(eval $(call DefineBoostLibrary,exception,,))
+$(eval $(call DefineBoostLibrary,fiber,coroutine,,))
+$(eval $(call DefineBoostLibrary,filesystem,system,))
+$(eval $(call DefineBoostLibrary,graph,regex,))
+$(eval $(call DefineBoostLibrary,iostreams,,+zlib))
+$(eval $(call DefineBoostLibrary,locale,system,$(ICONV_DEPENDS),BUILD_NLS))
+$(eval $(call DefineBoostLibrary,log,system chrono date_time thread filesystem regex,))
+$(eval $(call DefineBoostLibrary,math,,))
+#$(eval $(call DefineBoostLibrary,mpi,,)) # OpenMPI does no exist in OpenWRT at this time.
+$(eval $(call DefineBoostLibrary,program_options,,))
 $(eval $(call DefineBoostLibrary,python,,,PACKAGE_python))
 $(eval $(call DefineBoostLibrary,python3,,,PACKAGE_python3))
-
-#$(eval $(call DefineBoostLibrary,mpi,,)) # OpenMPI does no exist in OpenWRT at this time.
-#$(eval $(call DefineBoostLibrary,exception,,))
+$(eval $(call DefineBoostLibrary,random,system,))
+$(eval $(call DefineBoostLibrary,regex,,))
+$(eval $(call DefineBoostLibrary,serialization,,))
+$(eval $(call DefineBoostLibrary,signals,,))
+$(eval $(call DefineBoostLibrary,system,,))
+$(eval $(call DefineBoostLibrary,thread,system chrono atomic,))
+$(eval $(call DefineBoostLibrary,timer,chrono))
+$(eval $(call DefineBoostLibrary,wave,date_time thread filesystem,))
 
 
 define Host/Compile
@@ -379,6 +332,8 @@ CONFIGURE_PREFIX:=$(PKG_INSTALL_DIR)
 TARGET_LDFLAGS += -pthread -lrt
 
 TARGET_CFLAGS += \
+       $(if $(CONFIG_PACKAGE_boost-python), -I$(STAGING_DIR)/usr/include/python2.7/) \
+       $(if $(CONFIG_PACKAGE_boost-python3), -I$(STAGING_DIR)/usr/include/python3.5/) \
        $(if $(CONFIG_SOFT_FLOAT),-DBOOST_NO_FENV_H) -fPIC
 
 EXTRA_CXXFLAGS += $(if $(CONFIG_GCC_VERSION_4_8),-std=gnu++11,-std=gnu++14)
@@ -398,17 +353,16 @@ endif
 
 comma := ,
 
-
 define Build/Compile
        $(info Selected Boost API $(BOOST_ABI) for architecture $(ARCH) and cpu $(CPU_TYPE) $(CPU_SUBTYPE))
        ( cd $(PKG_BUILD_DIR) ; \
                echo "using gcc : $(ARCH) : $(GNU_TARGET_NAME)-gcc : <compileflags>\"$(TARGET_CFLAGS)\" <cxxflags>\"$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > tools/build/src/user-config.jam ; \
                $(if $(CONFIG_PACKAGE_boost-python3), \
-                       echo "using python : 3.6 : : $(STAGING_DIR)/usr/include/python3.6/ ;" >> \
+                       echo "using python : 3.5 : $(STAGING_DIR_ROOT)/usr/bin/python3 : $(STAGING_DIR)/usr/include/python3.5/ ;" >> \
                                tools/build/src/user-config.jam; \
                ) \
                $(if $(CONFIG_PACKAGE_boost-python), \
-                       echo "using python : 2.7 : : $(STAGING_DIR)/usr/include/python2.7/ ;" >> \
+                       echo "using python : 2.7 : $(STAGING_DIR_ROOT)/usr/bin/python : $(STAGING_DIR)/usr/include/python2.7/ ;" >> \
                                tools/build/src/user-config.jam; \
                ) \
                b2 \
@@ -438,8 +392,6 @@ define Build/Compile
                                        $(if $(or $(CONFIG_PACKAGE_boost-python),$(CONFIG_PACKAGE_boost-python3)),,--without-python), \
                                        $(if $(CONFIG_PACKAGE_boost-$(lib)),,--without-$(lib))) \
                        ) \
-                       $(if $(CONFIG_PACKAGE_boost-python),python=2.7,) \
-                       $(if $(CONFIG_PACKAGE_boost-python3),python=3.6,) \
                        $(if $(CONFIG_PACKAGE_boost-locale),boost.locale.iconv=on -sICONV_PATH=$(ICONV_PREFIX) boost.locale.posix=$(if $(USE_MUSL),on,off), \
                                boost.locale.iconv=off) \
                        \
index 01d7d646e3e06b8f272d688d9ae12dd1a373325e..136e03b9cf8e8b30712f314e8dd3aeca968d06ab 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=flac
-PKG_VERSION:=1.3.1
-PKG_RELEASE:=3
+PKG_VERSION:=1.3.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://downloads.xiph.org/releases/flac/
-PKG_MD5SUM:=b9922c9a0378c88d3e901b234f852698
+PKG_MD5SUM:=454f1bfa3f93cc708098d7890d0499bd
+PKG_HASH:=91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
 PKG_INSTALL:=1
index 72b26310e3d5ee56800c15b2c558be97bba0cc6a..7c34288c3060633625e5775d94c4f334813e10ca 100644 (file)
@@ -4,7 +4,7 @@
  
  ACLOCAL_AMFLAGS = -I m4
  
--SUBDIRS = doc include m4 man src examples test build objs
+-SUBDIRS = doc include m4 man src examples test build objs microbench
 +SUBDIRS = include m4 src build objs
  
  EXTRA_DIST = \
index f74460259caeb6597195aebd755ea6e0c91bcdae..17aaf7392e2c8f88498334bd42e6bd2682392c61 100644 (file)
@@ -2,8 +2,8 @@
 +++ b/src/Makefile.am
 @@ -27,10 +27,7 @@ endif
  SUBDIRS = \
-       share \
        libFLAC \
+       share \
 -      flac \
 -      metaflac \
        $(XMMS_DIRS) \
index 80ffff1a689e00591d5755ce303bb6c738f79bb0..ea7db8e148eaba4a9321038e788c4301e483bd41 100644 (file)
@@ -1,16 +1,15 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -348,11 +348,11 @@ fi
+@@ -386,10 +386,11 @@ fi
  
  if test "x$debug" = xtrue; then
        CPPFLAGS="-DDEBUG $CPPFLAGS"
--      CFLAGS=$(echo "$CFLAGS" | sed 's/-g//')
 -      CFLAGS="-g $CFLAGS"
 +      CFLAGS=$(echo "$CFLAGS" | sed 's/-g[0-9]*//')
 +      CFLAGS="-g3 $CFLAGS"
  else
        CPPFLAGS="-DNDEBUG $CPPFLAGS"
--      CFLAGS=$(echo "$CFLAGS" | sed 's/-O2//;s/-g//')
+-      CFLAGS=$(echo "$CFLAGS" | sed 's/-O2//')
 +      CFLAGS=$(echo "$CFLAGS" | sed 's/-O2//;s/-g[0-9]*//')
        CFLAGS="-O3 -funroll-loops $CFLAGS"
  fi
diff --git a/libs/flac/patches/020-fix-musl-sigemptyset-x86.patch b/libs/flac/patches/020-fix-musl-sigemptyset-x86.patch
deleted file mode 100644 (file)
index 0ee3ce5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/libFLAC/cpu.c
-+++ b/src/libFLAC/cpu.c
-@@ -243,7 +243,7 @@ void FLAC__cpu_info(FLAC__CPUInfo *info)
-               struct sigaction sigill_save;
-               struct sigaction sigill_sse;
-               sigill_sse.sa_sigaction = sigill_handler_sse_os;
--              __sigemptyset(&sigill_sse.sa_mask);
-+              sigemptyset(&sigill_sse.sa_mask);
-               sigill_sse.sa_flags = SA_SIGINFO | SA_RESETHAND; /* SA_RESETHAND just in case our SIGILL return jump breaks, so we don't get stuck in a loop */
-               if(0 == sigaction(SIGILL, &sigill_sse, &sigill_save))
-               {
index dce64f9606da857f0a430fca50c3cd844d44c69f..9c8bac55c50ba34c7a0d098be7e3ad9c17cea95a 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=glib2
-PKG_VERSION:=2.50.2
-PKG_RELEASE:=2
+PKG_VERSION:=2.50.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=glib-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(BUILD_DIR)/glib-$(PKG_VERSION)
 PKG_SOURCE_URL:=@GNOME/glib/2.50
-PKG_MD5SUM:=5eeb2bfaf78a07be59585e8b6e80b1d6
+PKG_HASH:=82ee94bf4c01459b6b00cb9db0545c2237921e3060c0b74cff13fbc020cfd999
 
 PKG_BUILD_PARALLEL:=1
 HOST_BUILD_PARALLEL:=1
index b1a69e206ea760064d36dc4b70964b48a3b81e64..5620391f9c118de7c1a5bec9fdee8bbfffea75d8 100644 (file)
@@ -22,7 +22,7 @@ PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)/Default
+define Package/libarchive/Default
        SECTION:=libs
        CATEGORY:=Libraries
        DEPENDS:=+zlib +liblzma +libbz2 +libexpat
@@ -30,13 +30,13 @@ define Package/$(PKG_NAME)/Default
        URL:=http://www.libarchive.org/
 endef
 
-define Package/$(PKG_NAME)
-       $(call Package/$(PKG_NAME)/Default)
+define Package/libarchive
+       $(call Package/libarchive/Default)
        DEPENDS += +libopenssl
 endef
 
-define Package/$(PKG_NAME)-noopenssl
-       $(call Package/$(PKG_NAME)/Default)
+define Package/libarchive-noopenssl
+       $(call Package/libarchive/Default)
        TITLE += (without OpenSSL dependency)
        VARIANT:=noopenssl
 endef
@@ -90,7 +90,7 @@ define Package/bsdtar/install
        $(CP) $(PKG_INSTALL_DIR)/usr/bin/bsdtar $(1)/usr/bin
 endef
 
-Package/$(PKG_NAME)-noopenssl/install = $(Package/$(PKG_NAME)/install)
+Package/libarchive-noopenssl/install = $(Package/libarchive/install)
 
 $(eval $(call BuildPackage,libarchive))
 $(eval $(call BuildPackage,libarchive-noopenssl))
index cd090a7a995a3d7669b46f6d395b150678e1a845..3260fa5bc95d4b3e214ae47f66eb39995c35ae18 100644 (file)
@@ -39,7 +39,7 @@ CMAKE_OPTIONS += -DLWS_WITHOUT_TESTAPPS=ON
 # CMAKE_OPTIONS += -DLWS_WITHOUT_DEBUG=ON
 
 
-define Package/$(PKG_NAME)/Default
+define Package/libwebsockets/Default
        SECTION:=libs
        CATEGORY:=Libraries
        TITLE:=libwebsockets
@@ -49,21 +49,21 @@ define Package/$(PKG_NAME)/Default
 endef
 
 define Package/libwebsockets-openssl
-       $(call Package/$(PKG_NAME)/Default)
+       $(call Package/libwebsockets/Default)
        TITLE += (OpenSSL)
        DEPENDS += +libopenssl
        VARIANT:=openssl
 endef
 
 define Package/libwebsockets-cyassl
-       $(call Package/$(PKG_NAME)/Default)
+       $(call Package/libwebsockets/Default)
        TITLE += (CyaSSL)
        DEPENDS += +libcyassl
        VARIANT:=cyassl
 endef
 
 define Package/libwebsockets-full
-       $(call Package/$(PKG_NAME)/Default)
+       $(call Package/libwebsockets/Default)
        TITLE += (Full - OpenSSL, libuv, plugins, CGI)
        DEPENDS += +libopenssl +libuv
        VARIANT:=full
@@ -102,9 +102,9 @@ define Package/libwebsockets/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwebsockets.so* $(1)/usr/lib/
 endef
 
-Package/$(PKG_NAME)-cyassl/install = $(Package/$(PKG_NAME)/install)
-Package/$(PKG_NAME)-openssl/install = $(Package/$(PKG_NAME)/install)
-Package/$(PKG_NAME)-full/install = $(Package/$(PKG_NAME)/install)
+Package/libwebsockets-cyassl/install = $(Package/libwesockets/install)
+Package/libwebsockets-openssl/install = $(Package/libwebsockets/install)
+Package/libwesockets-full/install = $(Package/libwebsockets/install)
 
 $(eval $(call BuildPackage,libwebsockets-openssl))
 $(eval $(call BuildPackage,libwebsockets-cyassl))
diff --git a/libs/musl-fts/Makefile b/libs/musl-fts/Makefile
new file mode 100644 (file)
index 0000000..d6dd1d1
--- /dev/null
@@ -0,0 +1,59 @@
+#
+# Copyright (C) 2017 Lucian Cristian <lucian.cristian@gmail.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+# updated to work with latest source from abrasive
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=musl-fts
+PKG_VERSION:=1.2.7
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/pullmoll/musl-fts.git
+PKG_SOURCE_VERSION:=0bde52df588e8969879a2cae51c3a4774ec62472
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+
+PKG_MAINTAINER:= Lucian Cristian <lucian.cristian@gmail.com>
+
+PKG_LICENSE:=LGPL-2.1
+PKG_LICENSE_FILES:=COPYING AUTHORS
+
+PKG_FIXUP:=autoreconf
+PKG_REMOVE_FILES:=autogen.sh
+
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/musl-fts
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=fts implementation for musl libc
+  URL:=https://github.com/pullmoll/musl-fts
+  DEPENDS:= +libpthread
+endef
+
+define Package/musl-fts/description
+  The musl-fts package implements the fts(3) functions fts_open, fts_read, fts_children, fts_set and fts_close, which are missing in musl libc.
+endef
+
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/fts.h $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfts.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/musl-fts.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/musl-fts/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfts.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,musl-fts))
index 7f9b1b34ce940b8ba5b36c635d32f56a51457249..9219691b34fa219179614487bb45a2675c63bb7b 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqlite
-PKG_VERSION:=3160000
+PKG_VERSION:=3170000
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-autoconf-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.sqlite.org/2017/
-PKG_MD5SUM:=5102404047054b2cec2f43463293f94dea39425d42bf386d24596ab4fac7c7ff
+PKG_MD5SUM:=450a95a7bde697c9fe4de9ae2fffdcca
+PKG_HASH:=a4e485ad3a16e054765baf6371826b5000beed07e626510896069c0bf013874c
 
 PKG_LICENSE:=PUBLICDOMAIN
 PKG_LICENSE_FILES:=
index 8801948dce3f002e0bf8b2c95c33cd94e8f5d5f2..7b6b7664b90cb30504bc20fc4d98bdbec24f7d87 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=postfix
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_SOURCE_URL:=ftp://ftp.porcupine.org/mirrors/postfix-release/official/
 PKG_VERSION:=3.1.4
 PKG_MD5SUM:=878a059d92ee3b093d7d3e97248c915d
@@ -25,7 +25,7 @@ define Package/postfix
   CATEGORY:=Mail
   TITLE:=Postfix Mail Transmit Agent
   URL:=http://www.postfix.org/
-  DEPENDS:=+POSTFIX_TLS:libopenssl +POSTFIX_SASL:libsasl2 +POSTFIX_LDAP:libopenldap +POSTFIX_DB:libdb47 +POSTFIX_EAI:icu +libpcre
+  DEPENDS:=+POSTFIX_TLS:libopenssl +POSTFIX_SASL:libsasl2 +POSTFIX_LDAP:libopenldap +POSTFIX_DB:libdb47 +POSTFIX_SQLITE:libsqlite3 +POSTFIX_EAI:icu +libpcre
 endef
 
 define Package/postfix/description
@@ -59,6 +59,11 @@ define Package/postfix/config
                        default y
                        help
                          Implements support for cdb files using tinycdb
+               config POSTFIX_SQLITE
+                       bool "SQLITE support"
+                       default y
+                       help
+                         Implements support for SQLite3 DB
                config POSTFIX_EAI
                        bool "SMTPUTF8 support"
                        default n
@@ -106,6 +111,11 @@ else
   CCARGS+=-DNO_DB
 endif
 
+ifdef CONFIG_POSTFIX_SQLITE
+  CCARGS+=-DHAS_SQLITE -I$(STAGING_DIR)/usr/include/
+  AUXLIBS+=-L$(STAGING_DIR)/usr/lib -lsqlite3 -lpthread
+endif
+
 ifdef CONFIG_POSTFIX_EAI
   AUXLIBS+=-licuuc
   CCARGS+=-DHAS_EAI
diff --git a/mail/postfix/patches/501-include_stdio.patch b/mail/postfix/patches/501-include_stdio.patch
new file mode 100644 (file)
index 0000000..4fc3f52
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/src/posttls-finger/posttls-finger.c
++++ b/src/posttls-finger/posttls-finger.c
+@@ -318,6 +318,7 @@
+ #include <sys/un.h>
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
++#include <stdio.h>
+ #ifdef STRCASECMP_IN_STRINGS_H
+ #include <strings.h>
index 22db52a04867387aad8c270f34e2b5684cf64230..3e6147ab150656d7e53e1fcf3081f17cdf16ab86 100644 (file)
@@ -21,7 +21,7 @@ include $(INCLUDE_DIR)/package.mk
 
 TARGET_CFLAGS += $(TARGET_CPPFLAGS)
 
-define Package/$(PKG_NAME)
+define Package/ssmtp
        SECTION:=mail
        CATEGORY:=Mail
        DEPENDS:=+libopenssl
@@ -29,14 +29,14 @@ define Package/$(PKG_NAME)
        URL:=http://packages.debian.org/ssmtp
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/ssmtp/description
 A secure, effective and simple way of getting mail off a system to your mail hub.
 Mail is simply forwarded to the configured mailhost, no daemons running in the background.
 Extremely easy configuration.
 
 endef
 
-define Package/$(PKG_NAME)/conffiles
+define Package/ssmtp/conffiles
 /etc/ssmtp/ssmtp.conf
 /etc/ssmtp/revaliases
 endef
@@ -47,7 +47,7 @@ CONFIGURE_VARS += \
 CONFIGURE_ARGS += \
        --enable-ssl
 
-define Package/$(PKG_NAME)/install
+define Package/ssmtp/install
        $(INSTALL_DIR) $(1)/etc/ssmtp
        $(INSTALL_CONF) $(PKG_BUILD_DIR)/ssmtp.conf $(1)/etc/ssmtp/
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/revaliases $(1)/etc/ssmtp/
@@ -56,4 +56,4 @@ define Package/$(PKG_NAME)/install
        ln -s /usr/sbin/ssmtp $(1)/usr/sbin/sendmail
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,ssmtp))
index dbed4f629fbe5b97c1c7faed74c29dd8f17b3c66..a5f4b803fc557567ae7368b26af3592cf23b4b96 100644 (file)
@@ -6,28 +6,28 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock
-PKG_VERSION:=2.3.2
-PKG_RELEASE:=1
+PKG_VERSION:=2.4.0
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/adblock
        SECTION:=net
        CATEGORY:=Network
        TITLE:=Powerful adblock script to block ad/abuse domains
        PKGARCH:=all
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/adblock/description
 Powerful adblock script to block ad/abuse domains via dnsmasq or unbound dns backend.
 The script supports many domain blacklist sites plus manual black- and whitelist overrides.
 Please see https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md for further information.
 
 endef
 
-define Package/$(PKG_NAME)/conffiles
+define Package/adblock/conffiles
 /etc/config/adblock
 /etc/adblock/adblock.whitelist
 /etc/adblock/adblock.blacklist
@@ -42,7 +42,7 @@ endef
 define Build/Compile
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/adblock/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) ./files/adblock.sh $(1)/usr/bin/
 
@@ -57,4 +57,4 @@ define Package/$(PKG_NAME)/install
        $(INSTALL_CONF) ./files/adblock.whitelist $(1)/etc/adblock/
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,adblock))
index 62732e9075d0bf28888dbff583b94be094cc8b48..172551f5cdac76f0bbdf76818265c5ebae26aac4 100644 (file)
@@ -57,6 +57,7 @@ A lot of people already use adblocker plugins within their desktop browsers, but
 * automatically selects uclient-fetch or wget as download utility (other tools like curl or aria2c are supported as well)
 * automatically supports a wide range of router modes, even AP modes are supported
 * full IPv4 and IPv6 support
+* supports tld compression (top level domain compression), this feature removes thousands of needless host entries from the block lists and lowers the memory footprint for the dns backends
 * each block list source will be updated and processed separately
 * block list source parsing by fast & flexible regex rulesets
 * overall duplicate removal in separate block lists
@@ -120,6 +121,7 @@ A lot of people already use adblocker plugins within their desktop browsers, but
     * adb\_iface => restrict the procd interface trigger to a (list of) certain wan interface(s) or disable it at all (default: not set, disabled)
     * adb\_fetch => full path to a different download utility, see example below (default: not set, use wget)
     * adb\_fetchparm => options for the download utility, see example below (default: not set, use wget options)
+    * adb\_tldcomp => enable/disable tld compression (default: '1', enabled)
 
 ## Examples
 
@@ -136,19 +138,19 @@ If you use manual configuration for unbound, then just include the following lin
 <pre><code>
 wget (default):
   option adb_fetch="/usr/bin/wget"
-  option adb_fetchparm="--no-config --quiet --tries=1 --no-cache --no-cookies --max-redirect=0 --timeout=5 --no-check-certificate -O"
+  option adb_fetchparm="--no-config --quiet --no-cache --no-cookies --max-redirect=0 --timeout=10 --no-check-certificate -O"
 
 aria2c:
   option adb_fetch '/usr/bin/aria2c'
-  option adb_fetchparm '-q --max-tries=1 --timeout=5 --allow-overwrite=true --auto-file-renaming=false --check-certificate=false -o'
+  option adb_fetchparm '-q --timeout=10 --allow-overwrite=true --auto-file-renaming=false --check-certificate=false -o'
 
 uclient-fetch:
   option adb_fetch '/bin/uclient-fetch'
-  option adb_fetchparm '-q --timeout=5 --no-check-certificate -O'
+  option adb_fetchparm '-q --timeout=10 --no-check-certificate -O'
 
 curl:
   option adb_fetch '/usr/bin/curl'
-  option adb_fetchparm '-s --retry 1 --connect-timeout 5 --insecure -o'
+  option adb_fetchparm '-s --connect-timeout 10 --insecure -o'
 </code></pre>
   
 **receive adblock statistics via ubus:**
index 7c4a91c1c4a8e7f10e8ae883a95ebf5ce49836a4..cf8a57b1516ba2f9bd0327f97816fd508dd1c9e4 100755 (executable)
@@ -37,7 +37,6 @@ start_service()
     if [ $(/etc/init.d/adblock enabled; printf ${?}) -eq 0 ]
     then
         procd_open_instance "adblock"
-        procd_set_param env adb_procd="true"
         procd_set_param command "${adb_script}" "${@}"
         procd_set_param stdout 1
         procd_set_param stderr 1
@@ -52,7 +51,6 @@ reload_service()
 
 stop_service()
 {
-    export adb_procd="true"
     rc_procd "${adb_script}" stop
 }
 
@@ -73,7 +71,6 @@ resume()
 
 query()
 {
-    export adb_procd="true"
     rc_procd "${adb_script}" query "${1}"
 }
 
@@ -81,8 +78,6 @@ service_triggers()
 {
     local iface="$(uci -q get adblock.global.adb_iface)"
 
-    procd_open_trigger
-    procd_add_config_trigger "config.change" "adblock" /etc/init.d/adblock start
     if [ -z "${iface}" ]
     then
         procd_add_raw_trigger "interface.*.up" 1000 /etc/init.d/adblock start
@@ -92,5 +87,5 @@ service_triggers()
             procd_add_interface_trigger "interface.*.up" "${name}" /etc/init.d/adblock start
         done
     fi
-    procd_close_trigger
+    procd_add_config_trigger "config.change" "adblock" /etc/init.d/adblock start
 }
index 8dc464b62a7adc4da57af08639a77f982b5ee089..a470d0bf7e0c82ddd29acacd6b5f8467f2989668 100755 (executable)
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="2.3.2"
+adb_ver="2.4.0-2"
 adb_enabled=1
 adb_debug=0
 adb_backup=0
+adb_tldcomp=1
 adb_backupdir="/mnt"
 adb_whitelist="/etc/adblock/adblock.whitelist"
 adb_whitelist_rset="\$1 ~/^([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\"^\"\$1\"\\\|[.]\"\$1)}"
@@ -324,7 +325,11 @@ f_log()
         then
             logger -t "adblock-[${adb_ver}] ${class}" "Please check the online documentation 'https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md'"
             f_rmtemp
-            f_rmdns
+            if [ "$(ls -dA "${adb_dnsdir}/${adb_dnsprefix}"* >/dev/null 2>&1)" ]
+            then
+                f_rmdns
+                f_dnsrestart
+            fi
             exit 255
         fi
     fi
@@ -389,13 +394,22 @@ f_main()
             adb_rc=${?}
         fi
 
-        # check download result and prepare domain output (incl. list backup/restore)
+        # check download result and prepare domain output (incl. tld compression, list backup & restore)
         #
         if [ ${adb_rc} -eq 0 ] && [ -s "${adb_tmpload}" ]
         then
             awk "${src_rset}" "${adb_tmpload}" > "${adb_tmpfile}"
             if [ -s "${adb_tmpfile}" ]
             then
+                if [ ${adb_tldcomp} -eq 1 ]
+                then
+                    awk -F "." '{for(f=NF;f > 1;f--) printf "%s.", $f;print $1}' "${adb_tmpfile}" | sort -u > "${adb_tmpload}"
+                    awk '{if(NR==1){tld=$NF};while(getline){if($NF !~ tld"\\."){print tld;tld=$NF}}print tld}' "${adb_tmpload}" > "${adb_tmpfile}"
+                    awk -F "." '{for(f=NF;f > 1;f--) printf "%s.", $f;print $1}' "${adb_tmpfile}" > "${adb_tmpload}"
+                else
+                    sort -u "${adb_tmpfile}" > "${adb_tmpload}"
+                fi
+                mv -f "${adb_tmpload}" "${adb_tmpfile}"
                 f_list backup
             else
                 f_list restore
@@ -410,9 +424,9 @@ f_main()
         then
             if [ -s "${adb_tmpdir}/tmp.whitelist" ]
             then
-                grep -vf "${adb_tmpdir}/tmp.whitelist" "${adb_tmpfile}" | sort -u | eval "${adb_dnsformat}" > "${adb_dnsfile}"
+                grep -vf "${adb_tmpdir}/tmp.whitelist" "${adb_tmpfile}" | eval "${adb_dnsformat}" > "${adb_dnsfile}"
             else
-                sort -u "${adb_tmpfile}" | eval "${adb_dnsformat}" > "${adb_dnsfile}"
+                cat "${adb_tmpfile}" | eval "${adb_dnsformat}" > "${adb_dnsfile}"
             fi
             adb_rc=${?}
             if [ ${adb_rc} -ne 0 ]
@@ -472,34 +486,31 @@ f_main()
 
 # handle different adblock actions
 #
-if [ "${adb_procd}" = "true" ]
-then
-    f_envload
-    case "${1}" in
-        stop)
-            f_rmtemp
-            f_rmdns
-            f_dnsrestart
-            ;;
-        restart)
-            f_rmtemp
-            f_rmdns
-            f_envcheck
-            f_main
-            ;;
-        suspend)
-            f_switch suspend
-            ;;
-        resume)
-            f_switch resume
-            ;;
-        query)
-            f_query "${2}"
-            ;;
-        *)
-            f_envcheck
-            f_main
-            ;;
-    esac
-fi
+f_envload
+case "${1}" in
+    stop)
+        f_rmtemp
+        f_rmdns
+        f_dnsrestart
+        ;;
+    restart)
+        f_rmtemp
+        f_rmdns
+        f_envcheck
+        f_main
+        ;;
+    suspend)
+        f_switch suspend
+        ;;
+    resume)
+        f_switch resume
+        ;;
+    query)
+        f_query "${2}"
+        ;;
+    *)
+        f_envcheck
+        f_main
+        ;;
+esac
 exit 0
index 7be49477f7036f631a75b41e4404cd33d5f9bb1c..b6d89ac522047bd7236fb71f0b8068fe8a97f82f 100755 (executable)
@@ -22,7 +22,7 @@ include $(INCLUDE_DIR)/package.mk
 # no default dependencies
 PKG_DEFAULT_DEPENDS=
 
-define Package/$(PKG_NAME)/Default
+define Package/ddns-scripts/Default
     SECTION:=net
     CATEGORY:=Network
     SUBMENU:=IP Addresses and Names
@@ -30,16 +30,16 @@ define Package/$(PKG_NAME)/Default
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)
-    $(call Package/$(PKG_NAME)/Default)
+define Package/ddns-scripts
+    $(call Package/ddns-scripts/Default)
     TITLE:=Dynamic DNS Client scripts (with IPv6 support)
 endef
 # shown in LuCI package description
-define Package/$(PKG_NAME)/description
+define Package/ddns-scripts/description
     Dynamic DNS Client scripts (with IPv6 support) - Info: http://wiki.openwrt.org/doc/howto/ddns.client
 endef
 # shown in menuconfig <Help>
-define Package/$(PKG_NAME)/config
+define Package/ddns-scripts/config
        help
                A highly configurable set of scripts for doing dynamic dns updates.
                  - IPv6 support
@@ -54,55 +54,55 @@ define Package/$(PKG_NAME)/config
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_cloudflare
-    $(call Package/$(PKG_NAME)/Default)
+define Package/ddns-scripts_cloudflare
+    $(call Package/ddns-scripts/Default)
     TITLE:=CloudFlare.com API v1 (deprecated)
-    DEPENDS:=$(PKG_NAME)
+    DEPENDS:=ddns-scripts
 endef
-define Package/$(PKG_NAME)_cloudflare/description
+define Package/ddns-scripts_cloudflare/description
     Dynamic DNS Client scripts extension for CloudFlare.com API-v1 (deprecated)
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_cloudflare.com-v4
-    $(call Package/$(PKG_NAME)/Default)
+define Package/ddns-scripts_cloudflare.com-v4
+    $(call Package/ddns-scripts/Default)
     TITLE:=CloudFlare.com API v4 (require cURL)
-    DEPENDS:=$(PKG_NAME) +curl
+    DEPENDS:=ddns-scripts +curl
 endef
-define Package/$(PKG_NAME)_cloudflare.com-v4/description
+define Package/ddns-scripts_cloudflare.com-v4/description
     Dynamic DNS Client scripts extension for CloudFlare.com API-v4 (require/install cURL)
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_godaddy.com-v1
-    $(call Package/$(PKG_NAME)/Default)
+define Package/ddns-scripts_godaddy.com-v1
+    $(call Package/ddns-scripts/Default)
     TITLE:=GoDaddy.com (require cURL)
-    DEPENDS:=$(PKG_NAME) +curl
+    DEPENDS:=ddns-scripts +curl
 endef
-define Package/$(PKG_NAME)_godaddy.com-v1/description
+define Package/ddns-scripts_godaddy.com-v1/description
     Dynamic DNS Client scripts extension for GoDaddy.com (require/install cURL)
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_no-ip_com
-    $(call Package/$(PKG_NAME)/Default)
+define Package/ddns-scripts_no-ip_com
+    $(call Package/ddns-scripts/Default)
     TITLE:=DDNS extension for No-IP.com
-    DEPENDS:=$(PKG_NAME)
+    DEPENDS:=ddns-scripts
 endef
-define Package/$(PKG_NAME)_no-ip_com/description
+define Package/ddns-scripts_no-ip_com/description
     Dynamic DNS Client scripts extension for No-IP.com
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_nsupdate
-    $(call Package/$(PKG_NAME)/Default)
+define Package/ddns-scripts_nsupdate
+    $(call Package/ddns-scripts/Default)
     TITLE:=DDNS extension using Bind nsupdate
-    DEPENDS:=$(PKG_NAME) +bind-client
+    DEPENDS:=ddns-scripts +bind-client
 endef
-define Package/$(PKG_NAME)_nsupdate/description
+define Package/ddns-scripts_nsupdate/description
     Dynamic DNS Client scripts extension for direct updates using Bind nsupdate
 endef
-define Package/$(PKG_NAME)_nsupdate/config
+define Package/ddns-scripts_nsupdate/config
     help
        The script directly updates a PowerDNS (or maybe bind server) via nsupdate
        from bind-client package. It requires
@@ -132,18 +132,18 @@ define Build/Compile
        gzip -f9 $(PKG_BUILD_DIR)/files/public_suffix_list.dat
 endef
 
-define Package/$(PKG_NAME)/conffiles
+define Package/ddns-scripts/conffiles
 /etc/config/ddns
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)/preinst
+define Package/ddns-scripts/preinst
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)/install
+define Package/ddns-scripts/install
        $(INSTALL_DIR)  $(1)/etc/uci-defaults
        $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns
        $(INSTALL_DIR)  $(1)/etc/hotplug.d/iface
@@ -159,7 +159,7 @@ define Package/$(PKG_NAME)/install
        $(INSTALL_DIR)  $(1)/usr/lib/ddns
        $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/dynamic_dns_*.sh $(1)/usr/lib/ddns
 endef
-define Package/$(PKG_NAME)/postinst
+define Package/ddns-scripts/postinst
        #!/bin/sh
        # if NOT run buildroot and PKG_UPGRADE then (re)start service if enabled
        [ -z "$${IPKG_INSTROOT}" -a "$${PKG_UPGRADE}" = "1" ] && {
@@ -171,7 +171,7 @@ define Package/$(PKG_NAME)/postinst
        }
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)/prerm
+define Package/ddns-scripts/prerm
        #!/bin/sh
        # if run within buildroot exit
        [ -n "$${IPKG_INSTROOT}" ] && exit 0
@@ -184,13 +184,13 @@ define Package/$(PKG_NAME)/prerm
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_cloudflare/preinst
+define Package/ddns-scripts_cloudflare/preinst
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_cloudflare/install
+define Package/ddns-scripts_cloudflare/install
        $(INSTALL_DIR)  $(1)/etc/uci-defaults
        $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_cloudflare
        $(INSTALL_DIR)  $(1)/usr/share
@@ -198,7 +198,7 @@ define Package/$(PKG_NAME)_cloudflare/install
        $(INSTALL_DIR)  $(1)/usr/lib/ddns
        $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/update_cloudflare_com_v1.sh $(1)/usr/lib/ddns
 endef
-define Package/$(PKG_NAME)_cloudflare/postinst
+define Package/ddns-scripts_cloudflare/postinst
        #!/bin/sh
        # remove old services file entries
        /bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services         >/dev/null 2>&1
@@ -216,7 +216,7 @@ define Package/$(PKG_NAME)_cloudflare/postinst
        }
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_cloudflare/prerm
+define Package/ddns-scripts_cloudflare/prerm
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop                             >/dev/null 2>&1
@@ -227,19 +227,19 @@ define Package/$(PKG_NAME)_cloudflare/prerm
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_cloudflare.com-v4/preinst
+define Package/ddns-scripts_cloudflare.com-v4/preinst
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_cloudflare.com-v4/install
+define Package/ddns-scripts_cloudflare.com-v4/install
        $(INSTALL_DIR) $(1)/etc/uci-defaults
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_cloudflare.com-v4
        $(INSTALL_DIR) $(1)/usr/lib/ddns
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_cloudflare_com_v4.sh $(1)/usr/lib/ddns
 endef
-define Package/$(PKG_NAME)_cloudflare.com-v4/postinst
+define Package/ddns-scripts_cloudflare.com-v4/postinst
        #!/bin/sh
        # remove old services file entries
        /bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services         >/dev/null 2>&1
@@ -257,7 +257,7 @@ define Package/$(PKG_NAME)_cloudflare.com-v4/postinst
        }
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_cloudflare.com-v4/prerm
+define Package/ddns-scripts_cloudflare.com-v4/prerm
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop                             >/dev/null 2>&1
@@ -268,19 +268,19 @@ define Package/$(PKG_NAME)_cloudflare.com-v4/prerm
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_godaddy.com-v1/preinst
+define Package/ddns-scripts_godaddy.com-v1/preinst
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_godaddy.com-v1/install
+define Package/ddns-scripts_godaddy.com-v1/install
        $(INSTALL_DIR) $(1)/etc/uci-defaults
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_godaddy.com-v1
        $(INSTALL_DIR) $(1)/usr/lib/ddns
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_godaddy_com_v1.sh $(1)/usr/lib/ddns
 endef
-define Package/$(PKG_NAME)_godaddy.com-v1/postinst
+define Package/ddns-scripts_godaddy.com-v1/postinst
        #!/bin/sh
        # remove old services file entries
        /bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services            >/dev/null 2>&1
@@ -298,7 +298,7 @@ define Package/$(PKG_NAME)_godaddy.com-v1/postinst
        }
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_godaddy.com-v1/prerm
+define Package/ddns-scripts_godaddy.com-v1/prerm
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop                             >/dev/null 2>&1
@@ -309,19 +309,19 @@ define Package/$(PKG_NAME)_godaddy.com-v1/prerm
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_no-ip_com/preinst
+define Package/ddns-scripts_no-ip_com/preinst
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_no-ip_com/install
+define Package/ddns-scripts_no-ip_com/install
        $(INSTALL_DIR) $(1)/etc/uci-defaults
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_no-ip_com
        $(INSTALL_DIR) $(1)/usr/lib/ddns
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_no-ip_com.sh $(1)/usr/lib/ddns
 endef
-define Package/$(PKG_NAME)_no-ip_com/postinst
+define Package/ddns-scripts_no-ip_com/postinst
        #!/bin/sh
        # remove old services file entries
        /bin/sed -i '/no-ip\.com/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
@@ -337,7 +337,7 @@ define Package/$(PKG_NAME)_no-ip_com/postinst
        }
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_no-ip_com/prerm
+define Package/ddns-scripts_no-ip_com/prerm
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop             >/dev/null 2>&1
@@ -347,19 +347,19 @@ define Package/$(PKG_NAME)_no-ip_com/prerm
 endef
 
 ###### *************************************************************************
-define Package/$(PKG_NAME)_nsupdate/preinst
+define Package/ddns-scripts_nsupdate/preinst
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_nsupdate/install
+define Package/ddns-scripts_nsupdate/install
        $(INSTALL_DIR) $(1)/etc/uci-defaults
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_nsupdate
        $(INSTALL_DIR) $(1)/usr/lib/ddns
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_nsupdate.sh $(1)/usr/lib/ddns
 endef
-define Package/$(PKG_NAME)_nsupdate/postinst
+define Package/ddns-scripts_nsupdate/postinst
        #!/bin/sh
        # remove old services file entries
        /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services      >/dev/null 2>&1
@@ -377,7 +377,7 @@ define Package/$(PKG_NAME)_nsupdate/postinst
        }
        exit 0  # suppress errors
 endef
-define Package/$(PKG_NAME)_nsupdate/prerm
+define Package/ddns-scripts_nsupdate/prerm
        #!/bin/sh
        # if NOT run buildroot then stop service
        [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop                     >/dev/null 2>&1
@@ -388,9 +388,9 @@ define Package/$(PKG_NAME)_nsupdate/prerm
 endef
 
 ###### *************************************************************************
-$(eval $(call BuildPackage,$(PKG_NAME)))
-$(eval $(call BuildPackage,$(PKG_NAME)_cloudflare))
-$(eval $(call BuildPackage,$(PKG_NAME)_cloudflare.com-v4))
-$(eval $(call BuildPackage,$(PKG_NAME)_godaddy.com-v1))
-$(eval $(call BuildPackage,$(PKG_NAME)_no-ip_com))
-$(eval $(call BuildPackage,$(PKG_NAME)_nsupdate))
+$(eval $(call BuildPackage,ddns-scripts))
+$(eval $(call BuildPackage,ddns-scripts_cloudflare))
+$(eval $(call BuildPackage,ddns-scripts_cloudflare.com-v4))
+$(eval $(call BuildPackage,ddns-scripts_godaddy.com-v1))
+$(eval $(call BuildPackage,ddns-scripts_no-ip_com))
+$(eval $(call BuildPackage,ddns-scripts_nsupdate))
index ca32cd1dc1d940fc4338a0bd8d6c9de0bca5f697..60c8c8701a9cff728794d5125a8fc41d571eb3dc 100644 (file)
@@ -15,7 +15,7 @@ PKG_LICENSE:=GPL-3.0+
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/dynapoint
     SECTION:=net
     CATEGORY:=Network
     SUBMENU:=wireless
@@ -23,19 +23,19 @@ define Package/$(PKG_NAME)
     TITLE:=Dynamic access point manager
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/dynapoint/description
   Dynapoint uses LUA scripts to allow dynamic access point creation
   and deletion depending on changes of certain network conditions.
 endef
 
-define Package/$(PKG_NAME)/conffiles
+define Package/dynapoint/conffiles
 /etc/config/dynapoint
 endef
 
 define Build/Compile
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/dynapoint/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) ./src/dynapoint.lua $(1)/usr/sbin/
        $(INSTALL_DIR) $(1)/etc/init.d
@@ -44,4 +44,4 @@ define Package/$(PKG_NAME)/install
        $(INSTALL_DATA) ./src/dynapoint.config $(1)/etc/config/dynapoint
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,dynapoint))
index 3dead69587fb12cce5cb4ece7d5b0773f42d2156..ce4d4ce3620b828fc841eb8c8536a651c6f8ce1c 100644 (file)
@@ -1,8 +1,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnunet
-PKG_SOURCE_VERSION:=a4295da3df82817ff2fe1fa547374a96a2e0280b
-PKG_VERSION:=0.10.2-git-20170111-$(PKG_SOURCE_VERSION)
+PKG_SOURCE_VERSION:=65f138e9a6156983ac74f8f1a5b8051d8f9be86a
+PKG_VERSION:=0.10.2-git-20170305-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -30,7 +30,6 @@ CONFIGURE_ARGS+= \
        $(if $(CONFIG_PACKAGE_libsqlite3),--with-sqlite="$(STAGING_DIR)/usr",--without-sqlite) \
        --disable-testing \
        --disable-testruns \
-       --disable-wachs \
        --enable-experimental \
        --with-extractor=$(STAGING_DIR)/usr \
        --with-gnutls=$(STAGING_DIR)/usr \
@@ -137,7 +136,7 @@ define Package/gnunet/install
                $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnunet-$$$$bin $(1)/usr/bin/ ; \
        done )
 
-       ( for lib in arm ats block cadet core datacache dht \
+       ( for lib in arm ats block blockgroup cadetnew core datacache dht \
            dns dnsparser fragmentation friends hello identity natauto natnew nse \
            peerinfo regexblock regex revocation scalarproduct set \
            statistics transport util; do \
@@ -150,7 +149,7 @@ define Package/gnunet/install
        done )
 
        ( for lex in daemon-topology helper-nat-client \
-           helper-nat-server service-arm service-ats service-cadet \
+           helper-nat-server service-arm service-ats service-cadet-new \
            service-core service-dht service-identity service-nat service-nat-auto \
            service-nse service-peerinfo service-regex \
            service-revocation service-scalarproduct-alice \
@@ -206,7 +205,6 @@ LIBEXEC_transport-wlan:=helper-transport-wlan
 
 DEPENDS_experiments:=+libglpk
 PLUGIN_experiments:=ats_mlp ats_ril
-LIBEXEC_experiments:=service-dht-whanau service-dht-xvine
 
 # BIN_dv:=dv
 LIB_dv:=dv
@@ -252,6 +250,7 @@ PLUGIN_rest:=rest_gns rest_identity rest_identity_provider rest_namestore
 LIBEXEC_rest:=rest-server
 CONF_rest:=rest
 
+DEPENDS_rps:=@BROKEN
 BIN_rps:=rps
 LIB_rps:=rps
 LIBEXEC_rps:=service-rps
index 6b6820d023cbafa65c2edd9f4c54520767734c3d..7aa056ed5c5aba88c029c634d472751c4dfbf087 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=irssi
-PKG_VERSION:=0.8.21
+PKG_VERSION:=1.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=https://github.com/irssi/irssi/releases/download/0.8.21/
-PKG_MD5SUM:=b820760c3b4f3b0c24abe4db82b6366a
+PKG_SOURCE_URL:=https://github.com/irssi/irssi/releases/download/1.0.1/
+PKG_HASH:=9428c51a3f3598ffaef438c351a8d609cf10db34f2435bdcb84456226c383ccf
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
index 920122a2fe577a84a222456de7e24ccd2a7c263b..b537585d00b6b793f4f6c0473d443456366a278f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014-2016 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+# Copyright (C) 2014-2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knot
-PKG_VERSION:=2.3.0
+PKG_VERSION:=2.3.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/
-PKG_MD5SUM:=7ca754f972fb07faa4f30e50d8a4385b
+PKG_HASH:=a929bce3b957a81776b1db7b43b0e4473339bf16be8dbba5abb4b0593bf43c94
 
 PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
 PKG_LICENSE:=GPL-3.0 LGPL-2.0 0BSD MIT OLDAP-2.8
@@ -242,7 +242,7 @@ endef
 
 define Package/knot-zonecheck/install
        $(INSTALL_DIR)                                          $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kzonecheck   $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kzonecheck    $(1)/usr/bin/
 endef
 
 define Package/knot-keymgr/install
diff --git a/net/knot/patches/04_cookies_big_endian.patch b/net/knot/patches/04_cookies_big_endian.patch
deleted file mode 100644 (file)
index 6838495..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-From 84849be189c49ef9556bd84d5e5103317372e8a7 Mon Sep 17 00:00:00 2001
-From: Karel Slany <karel.slany@nic.cz>
-Date: Thu, 11 Aug 2016 11:39:39 +0200
-Subject: [PATCH] Added conversion to wire format when writing FNV64 hash
- values.
-
-Test on big-endian machines have been failing.
----
- src/libknot/cookies/alg-fnv64.c     |  6 +++---
- tests/libknot/test_cookies-client.c | 20 ++++++++++----------
- tests/libknot/test_cookies-server.c | 20 ++++++++++----------
- 3 files changed, 23 insertions(+), 23 deletions(-)
-
-diff --git a/src/libknot/cookies/alg-fnv64.c b/src/libknot/cookies/alg-fnv64.c
-index 9989a4f..5e263c1 100644
---- a/src/libknot/cookies/alg-fnv64.c
-+++ b/src/libknot/cookies/alg-fnv64.c
-@@ -17,10 +17,10 @@
- #include <assert.h>
- #include <stdint.h>
- #include <stdlib.h>
--#include <string.h>
- #include "contrib/fnv/fnv.h"
- #include "contrib/sockaddr.h"
-+#include "contrib/wire.h"
- #include "libknot/attribute.h"
- #include "libknot/cookies/alg-fnv64.h"
- #include "libknot/rrtype/opt-cookie.h"
-@@ -80,7 +80,7 @@ static uint16_t cc_gen_fnv64(const struct knot_cc_input *input,
-       assert(KNOT_OPT_COOKIE_CLNT == sizeof(hash_val));
-       cc_len = sizeof(hash_val);
--      memcpy(cc_out, &hash_val, cc_len);
-+      wire_write_u64(cc_out, hash_val);
-       return cc_len;
- }
-@@ -127,7 +127,7 @@ static uint16_t sc_gen_fnv64(const struct knot_sc_input *input,
-       assert(SRVR_FNV64_HASH_SIZE == sizeof(hash_val));
-       hash_len = sizeof(hash_val);
--      memcpy(hash_out, &hash_val, hash_len);
-+      wire_write_u64(hash_out, hash_val);
-       return hash_len;
- }
-diff --git a/tests/libknot/test_cookies-client.c b/tests/libknot/test_cookies-client.c
-index 44be903..712dbba 100644
---- a/tests/libknot/test_cookies-client.c
-+++ b/tests/libknot/test_cookies-client.c
-@@ -110,7 +110,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
-       ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
-       {
--              uint8_t expected[] = { 0x74, 0x31, 0xf9, 0xa8, 0x03, 0xef, 0x15, 0xb1 };
-+              uint8_t expected[] = { 0xb1, 0x15, 0xef, 0x03, 0xa8, 0xf9, 0x31, 0x74 };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
-       }
-@@ -123,7 +123,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
-       ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
-       {
--              uint8_t expected[] = { 0x7c, 0x62, 0x25, 0xd2, 0x43, 0xdd, 0x09, 0xe7 };
-+              uint8_t expected[] = { 0xe7, 0x09, 0xdd, 0x43, 0xd2, 0x25, 0x62, 0x7c };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
-       }
-@@ -136,7 +136,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
-       ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
-       {
--              uint8_t expected[] = { 0x7c, 0x62, 0x25, 0xd2, 0x43, 0xdd, 0x09, 0xe7 };
-+              uint8_t expected[] = { 0xe7, 0x09, 0xdd, 0x43, 0xd2, 0x25, 0x62, 0x7c };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
-       }
-@@ -149,7 +149,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
-       ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
-       {
--              uint8_t expected[] = { 0x05, 0xa9, 0xd1, 0x08, 0x1b, 0x98, 0xe0, 0xaa };
-+              uint8_t expected[] = { 0xaa, 0xe0, 0x98, 0x1b, 0x08, 0xd1, 0xa9, 0x05 };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
-       }
-@@ -162,7 +162,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
-       ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
-       {
--              uint8_t expected[] = { 0x05, 0xa9, 0xd1, 0x08, 0x1b, 0x98, 0xe0, 0xaa };
-+              uint8_t expected[] = { 0xaa, 0xe0, 0x98, 0x1b, 0x08, 0xd1, 0xa9, 0x05 };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
-       }
-@@ -179,7 +179,7 @@ int main(int argc, char *argv[])
-       }
-       {
--              uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+              uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
-               ret = knot_cc_check(cookie, sizeof(cookie), NULL, &knot_cc_alg_fnv64);
-               ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check no input");
-       }
-@@ -190,7 +190,7 @@ int main(int argc, char *argv[])
-       cc_in.secret_data = secret;
-       cc_in.secret_len = sizeof(secret);
-       {
--              uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+              uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
-               ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, NULL);
-               ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check no algorithm");
-       }
-@@ -201,7 +201,7 @@ int main(int argc, char *argv[])
-       cc_in.secret_data = secret;
-       cc_in.secret_len = sizeof(secret);
-       {
--              uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+              uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
-               ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, &knot_cc_alg_fnv64);
-               ok(ret == KNOT_EOK, "cookies: FNV64 client good cookie check");
-       }
-@@ -212,7 +212,7 @@ int main(int argc, char *argv[])
-       cc_in.secret_data = secret;
-       cc_in.secret_len = sizeof(secret);
-       {
--              uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+              uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
-               ret = knot_cc_check(cookie, sizeof(cookie) - 1, &cc_in, &knot_cc_alg_fnv64);
-               ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check invalid length");
-       }
-@@ -223,7 +223,7 @@ int main(int argc, char *argv[])
-       cc_in.secret_data = secret;
-       cc_in.secret_len = sizeof(secret);
-       {
--              uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xae };
-+              uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x32 };
-               ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, &knot_cc_alg_fnv64);
-               ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check invalid cookie");
-       }
-diff --git a/tests/libknot/test_cookies-server.c b/tests/libknot/test_cookies-server.c
-index 32001c1..66a54ba 100644
---- a/tests/libknot/test_cookies-server.c
-+++ b/tests/libknot/test_cookies-server.c
-@@ -28,10 +28,10 @@
- #include "libknot/rrtype/opt-cookie.h"
- const char *cookie_opts[] = {
--      "\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\xe0\xd9\x95\x4e\xbc\xc3\x99\x18", /* 8 octets long wrong server cookie. */
--      "\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\xe0\xd9\x95\x4e\xbc\xc3\x99\x19", /* 8 octets long OK server cookie. */
--      "\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\xc0\xbd\xdb\xec\x19\x78\x88\x38", /* 8B nonce 8B hash long wrong server cookie. */
--      "\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\xc0\xbd\xdb\xec\x19\x78\x88\x39" /* 8B nonce 8B hash long OK server cookie. */
-+      "\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x19\x99\xc3\xbc\x4e\x95\xd9\xdf", /* 8 octets long wrong server cookie. */
-+      "\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x19\x99\xc3\xbc\x4e\x95\xd9\xe0", /* 8 octets long OK server cookie. */
-+      "\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x39\x88\x78\x19\xec\xdb\xbd\xbf", /* 8B nonce 8B hash long wrong server cookie. */
-+      "\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x39\x88\x78\x19\xec\xdb\xbd\xc0"/* 8B nonce 8B hash long OK server cookie. */
- };
- #define ROPT(i) ((const uint8_t *)cookie_opts[(i)])
-@@ -193,7 +193,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
-       ok(hash_len != 0, "cookies: FNV64 server cookie output");
-       {
--              uint8_t expected[] = { 0x75, 0x45, 0x7c, 0x9a, 0xe0, 0x13, 0xa8, 0xea };
-+              uint8_t expected[] = { 0xea, 0xa8, 0x13, 0xe0, 0x9a, 0x7c, 0x45, 0x75 };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
-       }
-@@ -210,7 +210,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
-       ok(hash_len != 0, "cookies: FNV64 server cookie output");
-       {
--              uint8_t expected[] = { 0xc0, 0xbd, 0xdb, 0xec, 0x19, 0x78, 0x88, 0x39 };
-+              uint8_t expected[] = { 0x39, 0x88, 0x78, 0x19, 0xec, 0xdb, 0xbd, 0xc0 };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
-       }
-@@ -227,7 +227,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
-       ok(hash_len != 0, "cookies: FNV64 server cookie output");
-       {
--              uint8_t expected[] = { 0xe0, 0xd9, 0x95, 0x4e, 0xbc, 0xc3, 0x99, 0x19 };
-+              uint8_t expected[] = { 0x19, 0x99, 0xc3, 0xbc, 0x4e, 0x95, 0xd9, 0xe0 };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
-       }
-@@ -244,7 +244,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
-       ok(hash_len != 0, "cookies: FNV64 server cookie output");
-       {
--              uint8_t expected[] = { 0x4d, 0xde, 0xfa, 0x22, 0xb9, 0x0a, 0xcc, 0xd8 };
-+              uint8_t expected[] = { 0xd8, 0xcc, 0x0a, 0xb9, 0x22, 0xfa, 0xde, 0x4d };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
-       }
-@@ -261,7 +261,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
-       ok(hash_len != 0, "cookies: FNV64 server cookie output");
-       {
--              uint8_t expected[] = { 0xa0, 0x35, 0xe3, 0xe0, 0x78, 0x7a, 0x91, 0xaf };
-+              uint8_t expected[] = { 0xaf, 0x91, 0x7a, 0x78, 0xe0, 0xe3, 0x35, 0xa0 };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
-       }
-@@ -278,7 +278,7 @@ int main(int argc, char *argv[])
-       hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
-       ok(hash_len != 0, "cookies: FNV64 server cookie output");
-       {
--              uint8_t expected[] = { 0x8e, 0xa3, 0xf8, 0x97, 0x84, 0x0a, 0x3d, 0x8b };
-+              uint8_t expected[] = { 0x8b, 0x3d, 0x0a, 0x84, 0x97, 0xf8, 0xa3, 0x8e };
-               ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
-       }
--- 
-2.7.4
-
index 3446d151426291a5c2dc4929a6d15099ace0f072..edc2c8a571fe2a335538003d8475d03b79c1a8c7 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=net-snmp
 PKG_VERSION:=5.7.3
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/net-snmp
@@ -98,6 +98,7 @@ endef
 
 
 SNMP_MIB_MODULES_INCLUDED = \
+       agent/extend \
        agentx \
        host/hr_device \
        host/hr_disk \
index f1e57ad4ffa74ed40015651b749ba5d4e7a00131..98db1ae6f3998e9085cbb63926ed1c8af14c688b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ntp
 PKG_VERSION:=4.2.8p9
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/
index 975be751ec78a189091eaaa7d7c630b09303e5ea..67a4d6aaa35190ee2f0911d03a3673b0922a9e22 100644 (file)
@@ -1,10 +1,10 @@
+#!/bin/sh
+
 NAME=ntpd
-CONFIG=/etc/ntp.conf
-COMMAND=/sbin/$NAME
+COMMAND=/etc/init.d/$NAME
 
 [ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && {
-        [ -x $COMMAND ] && [ -r $CONFIG ] && {
-               killall ntpd
-               /etc/init.d/ntpd start
-        } &
+       $COMMAND enabled && {
+               $COMMAND restart
+        }
 }
index 8d482089b779033d2217f24ec824bc2b4fbc44a8..74fae22616e20e683e7bc95144be3ae7ad62491e 100644 (file)
@@ -49,7 +49,7 @@ PKG_CONFIG_DEPENDS:= \
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/privoxy
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Web Servers/Proxies
@@ -61,12 +61,12 @@ define Package/$(PKG_NAME)
 endef
 
 # shown in LuCI package description
-define Package/$(PKG_NAME)/description
+define Package/privoxy/description
 $(TITLE) - Homepage: www.privoxy.org
 endef
 
 # shown in make menuconfig <Help>
-define Package/$(PKG_NAME)/config
+define Package/privoxy/config
        help
                Privoxy is a web proxy with advanced filtering capabilities for protecting
                privacy, modifying web page content, managing cookies, controlling access,
@@ -110,14 +110,14 @@ CONFIGURE_ARGS += \
 # needed otherwise errors during compile
 MAKE_FLAGS:=
 
-define Package/$(PKG_NAME)/conffiles
+define Package/privoxy/conffiles
 /etc/config/privoxy
 /etc/privoxy/user.action
 /etc/privoxy/user.filter
 /etc/privoxy/user.trust
 endef
 
-define Package/$(PKG_NAME)/preinst
+define Package/privoxy/preinst
        #!/bin/sh
        [ -n "$${IPKG_INSTROOT}" ] && exit 0    # if run within buildroot exit
 
@@ -127,7 +127,7 @@ define Package/$(PKG_NAME)/preinst
        exit 0  # suppress errors from stop command
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/privoxy/install
        if [ -f $(PKG_INSTALL_DIR)/etc/privoxy/trust ]; then \
                mv -f $(PKG_INSTALL_DIR)/etc/privoxy/trust $(PKG_INSTALL_DIR)/etc/privoxy/user.trust; \
        fi
@@ -155,10 +155,10 @@ define Package/$(PKG_NAME)/install
        $(INSTALL_CONF) ./files/privoxy.config $(1)/etc/config/privoxy
 endef
 
-define Package/$(PKG_NAME)/postinst
+define Package/privoxy/postinst
        #!/bin/sh
        grep -i privoxy $${IPKG_INSTROOT}/etc/services >/dev/null 2>&1 || \
                echo -e "privoxy\t8118" >> $${IPKG_INSTROOT}/etc/services
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,privoxy))
index 26cacd7770c3665ad2969b6fa396238f4e6f7989..b4dd69b7207b98ac3c42dde329ff57d3030eb117 100644 (file)
@@ -28,7 +28,7 @@ $(call include_mk, python3-package.mk)
 # no default dependencies
 PKG_DEFAULT_DEPENDS:=
 
-define Package/$(PKG_NAME)/Default
+define Package/radicale/Default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Web Servers/Proxies
@@ -37,29 +37,29 @@ define Package/$(PKG_NAME)/Default
   PKGARCH:=all
   USERID:=radicale=5232:radicale=5232
 endef
-define Package/$(PKG_NAME)-py2
-  $(call Package/$(PKG_NAME)/Default)
+define Package/radicale-py2
+  $(call Package/radicale/Default)
   TITLE+= (Python 2)
   VARIANT:=2
   DEPENDS:=+python-logging +python-openssl +python-xml +python-codecs
 endef
-define Package/$(PKG_NAME)-py3
-  $(call Package/$(PKG_NAME)/Default)
+define Package/radicale-py3
+  $(call Package/radicale/Default)
   TITLE+= (Python 3)
   VARIANT:=3
   DEPENDS:=+python3-logging +python3-openssl +python3-xml +python3-codecs +python3-email
 endef
 
 # shown in LuCI package description
-define Package/$(PKG_NAME)-py2/description
+define Package/radicale-py2/description
 Radicale CalDAV/CardDAV server (Python 2) - Homepage: http://radicale.org/
 endef
-define Package/$(PKG_NAME)-py3/description
+define Package/radicale-py3/description
 Radicale CalDAV/CardDAV server (Python 3) - Homepage: http://radicale.org/
 endef
 
 # shown in make menuconfig <Help>
-define Package/$(PKG_NAME)-py2/config
+define Package/radicale-py2/config
     help
        The Radicale Project is a CalDAV (calendar) and CardDAV (contact) server.
        It aims to be a light solution, easy to use, easy to install, easy to configure.
@@ -69,14 +69,14 @@ define Package/$(PKG_NAME)-py2/config
        Version : $(PKG_VERSION)
        Homepage: http://radicale.org/
 endef
-Package/$(PKG_NAME)-py3/config = $(Package/$(PKG_NAME)-py2/config)
+Package/radicale-py3/config = $(Package/radicale-py2/config)
 
-define Package/$(PKG_NAME)-py2/conffiles
+define Package/radicale-py2/conffiles
 /etc/config/radicale
 /etc/radicale/users
 /etc/radicale/rights
 endef
-Package/$(PKG_NAME)-py3/conffiles = $(Package/$(PKG_NAME)-py2/conffiles)
+Package/radicale-py3/conffiles = $(Package/radicale-py2/conffiles)
 
 define Build/Configure
        # nothing to configure
@@ -85,7 +85,7 @@ define Build/Compile
        # nothing to compile
 endef
 
-define Package/$(PKG_NAME)-py2/preinst
+define Package/radicale-py2/preinst
        #!/bin/sh
        [ -n "$${IPKG_INSTROOT}" ] && exit 0    # if run within buildroot exit
 
@@ -94,11 +94,11 @@ define Package/$(PKG_NAME)-py2/preinst
 
        exit 0  # suppress errors from stop command
 endef
-define Package/$(PKG_NAME)-py3/preinst
-$(call Package/$(PKG_NAME)-py2/preinst)
+define Package/radicale-py3/preinst
+$(call Package/radicale-py2/preinst)
 endef
 
-define Package/$(PKG_NAME)/inst_all
+define Package/radicale/inst_all
        $(INSTALL_DIR)  $(1)/etc/init.d
        $(INSTALL_BIN)  ./files/radicale.init    $(1)/etc/init.d/radicale
 
@@ -120,27 +120,27 @@ define Package/$(PKG_NAME)/inst_all
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/radicale $(1)/usr/bin/
 endef
-define Package/$(PKG_NAME)-py2/install
-       $(call Package/$(PKG_NAME)/inst_all, $(1))
+define Package/radicale-py2/install
+       $(call Package/radicale/inst_all, $(1))
        $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)/radicale
        $(CP) $(PKG_BUILD_DIR)/radicale/* $(1)$(PYTHON_PKG_DIR)/radicale
 endef
-define Package/$(PKG_NAME)-py3/install
-       $(call Package/$(PKG_NAME)/inst_all, $(1))
+define Package/radicale-py3/install
+       $(call Package/radicale/inst_all, $(1))
        $(INSTALL_DIR) $(1)$(PYTHON3_PKG_DIR)/radicale
        $(CP) $(PKG_BUILD_DIR)/radicale/* $(1)$(PYTHON3_PKG_DIR)/radicale
 endef
 
-define Package/$(PKG_NAME)-py2/postinst
+define Package/radicale-py2/postinst
        #!/bin/sh
        # patch /usr/bin/radicale force run using python2
        /bin/sed -i 's/python/python2/' $${IPKG_INSTROOT}/usr/bin/radicale
 endef
-define Package/$(PKG_NAME)-py3/postinst
+define Package/radicale-py3/postinst
        #!/bin/sh
        # patch /usr/bin/radicale force run using python3
        /bin/sed -i 's/python/python3/' $${IPKG_INSTROOT}/usr/bin/radicale
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)-py2))
-$(eval $(call BuildPackage,$(PKG_NAME)-py3))
+$(eval $(call BuildPackage,radicale-py2))
+$(eval $(call BuildPackage,radicale-py3))
index ca31adb0f7aa9183796b52c42ed4f77e4320164e..c38a180cd37bab1c6afd3b5f942365ce85d41f2d 100644 (file)
@@ -6,27 +6,27 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=travelmate
-PKG_VERSION:=0.3.5
-PKG_RELEASE:=1
+PKG_VERSION:=0.4.1
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/travelmate
        SECTION:=net
        CATEGORY:=Network
        TITLE:=A wlan connection manager for travel router
        PKGARCH:=all
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/travelmate/description
 A wlan connection manager for travel router.
 Please see https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md for further information.
 
 endef
 
-define Package/$(PKG_NAME)/conffiles
+define Package/travelmate/conffiles
 /etc/config/travelmate
 endef
 
@@ -39,7 +39,7 @@ endef
 define Build/Compile
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/travelmate/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) ./files/travelmate.sh $(1)/usr/bin/
 
@@ -50,4 +50,4 @@ define Package/$(PKG_NAME)/install
        $(INSTALL_CONF) ./files/travelmate.conf $(1)/etc/config/travelmate
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,travelmate))
index 0570558d9a2ebb40ca080c97f5b35e7e0b7a1b55..5671e78d9bcd7eeb3569a375523e09c0feaeacdc 100644 (file)
@@ -9,7 +9,8 @@ To avoid these kind of deadlocks, travelmate set all station interfaces in an "a
 * STA interfaces operating in an "always off" mode, to make sure that the AP is always accessible
 * easy setup within normal OpenWrt/LEDE environment
 * fast uplink connections
-* support multiple radios
+* "active mode" support, where travelmate will be restarted every n seconds (default 60) and checks the existing uplink connection regardless of ifdown event trigger
+* support of devices with multiple radios
 * procd init system support
 * procd based hotplug support, the travelmate start will be triggered by interface triggers
 * status & debug logging to syslog
@@ -41,8 +42,10 @@ To avoid these kind of deadlocks, travelmate set all station interfaces in an "a
 * travelmate config options:
     * trm\_enabled => main switch to enable/disable the travelmate service (default: '0', disabled)
     * trm\_debug => enable/disable debug logging (default: '0', disabled)
+    * trm\_active => keep travelmate in an active state (default: '0', disabled)
     * trm\_maxwait => how long (in seconds) should travelmate wait for wlan interface reload action (default: '20')
     * trm\_maxretry => how many times should travelmate try to find an uplink after a trigger event (default: '3')
+    * trm\_timeout => timeout in seconds for "active mode" (default: '60')
     * trm\_iw => set this option to '0' to use iwinfo for wlan scanning (default: '1', use iw)
     * trm\_radio => limit travelmate to a dedicated radio, e.g. 'radio0' (default: not set, use all radios)
     * trm\_iface => restrict the procd interface trigger to a (list of) certain wan interface(s) or disable it at all (default: not set, disabled)
index c63000f3806b7969a8beab630ea6e23b8ffb4419..f51973e9c2a62194d98c41ee27f61bba1c2048b2 100644 (file)
@@ -4,6 +4,8 @@
 config travelmate 'global'
        option trm_enabled '0'
        option trm_debug '0'
+       option trm_active '0'
        option trm_maxwait '20'
        option trm_maxretry '3'
+       option trm_timeout '60'
        option trm_iw '1'
index c6f81255ab5da44b997d2936f34c883244168cc5..90b8071e81e97d5fdcc63b4b5f861d4b0232c7ed 100755 (executable)
@@ -5,13 +5,17 @@ USE_PROCD=1
 
 trm_script="/usr/bin/travelmate.sh"
 
+boot()
+{
+    ubus -t 30 wait_for network.interface
+    rc_procd start_service
+}
+
 start_service()
 {
     if [ $(/etc/init.d/travelmate enabled; printf ${?}) -eq 0 ]
     then
-        ubus -t 30 wait_for network.interface
         procd_open_instance "travelmate"
-        procd_set_param env trm_procd="true"
         procd_set_param command "${trm_script}" "${@}"
         procd_set_param stdout 1
         procd_set_param stderr 1
@@ -23,8 +27,6 @@ service_triggers()
 {
     local iface="$(uci -q get travelmate.global.trm_iface)"
 
-    procd_open_trigger
-    procd_add_config_trigger "config.change" "travelmate" /etc/init.d/travelmate start
     if [ -z "${iface}" ]
     then
         procd_add_raw_trigger "interface.*.down" 1000 /etc/init.d/travelmate start
@@ -34,5 +36,5 @@ service_triggers()
             procd_add_interface_trigger "interface.*.down" "${name}" /etc/init.d/travelmate start
         done
     fi
-    procd_close_trigger
+    procd_add_config_trigger "config.change" "travelmate" /etc/init.d/travelmate start
 }
index 734b0167ca2b89f7f8b9620db9cf53cc0cf1ddd4..60cd558b3232810d93a9d1c8ebb80a6307ebd61c 100755 (executable)
@@ -6,18 +6,22 @@
 # You should have received a copy of the GNU General Public License
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
 
-# prepare environment
+# set initial defaults
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-trm_ver="0.3.5"
+trm_ver="0.4.1-2"
+trm_sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
 trm_enabled=1
 trm_debug=0
+trm_active=0
 trm_maxwait=20
 trm_maxretry=3
-trm_radio="*"
+trm_timeout=60
 trm_iw=1
 
+# f_envload: load travelmate environment
+#
 f_envload()
 {
     # source required system libraries
@@ -59,40 +63,54 @@ f_envload()
     fi
 }
 
-# function to bring down all STA interfaces
+# f_prepare: gather radio information & bring down all STA interfaces
 #
 f_prepare()
 {
     local config="${1}"
     local mode="$(uci -q get wireless."${config}".mode)"
-    local network="$(uci -q get wireless."${config}".network)"
+    local radio="$(uci -q get wireless."${config}".device)"
     local disabled="$(uci -q get wireless."${config}".disabled)"
 
-    if [ "${mode}" = "sta" ] && [ -n "${network}" ]
+    if [ "${mode}" = "ap" ] && ([ -z "${disabled}" ] || [ "${disabled}" = "0" ]) && \
+        ([ -z "${trm_radio}" ] || [ "${trm_radio}" = "${radio}" ])
+    then
+        trm_radiolist="${trm_radiolist} ${radio}"
+    elif [ "${mode}" = "sta" ]
     then
-        trm_stalist="${trm_stalist} ${config}_${network}"
+        trm_stalist="${trm_stalist} ${config}_${radio}"
         if [ -z "${disabled}" ] || [ "${disabled}" = "0" ]
         then
             uci -q set wireless."${config}".disabled=1
-            f_log "debug" "config: ${config}, interface: ${network}"
         fi
     fi
+    f_log "debug" "mode: ${mode}, radio: ${radio}, config: ${config}, disabled: ${disabled}"
 }
 
+# f_check: check interface status
+#
 f_check()
 {
-    local ifname cnt=1 mode="${1}"
+    local ifname radio cnt=1 mode="${1}"
     trm_ifstatus="false"
 
     while [ ${cnt} -le ${trm_maxwait} ]
     do
         if [ "${mode}" = "ap" ]
         then
-            ifname="$(ubus -S call network.wireless status | jsonfilter -l1 -e "@.${trm_radio}.interfaces[@.config.mode=\"ap\"].ifname")"
-            if [ -n "${ifname}" ]
-            then
-                trm_ifstatus="$(ubus -S call network.wireless status | jsonfilter -l1 -e "@.${trm_radio}.up")"
-            fi
+            for radio in ${trm_radiolist}
+            do
+                trm_ifstatus="$(ubus -S call network.wireless status | jsonfilter -e "@.${radio}.up")"
+                if [ "${trm_ifstatus}" = "true" ]
+                then
+                    trm_aplist="${trm_aplist} $(ubus -S call network.wireless status | jsonfilter -e "@.${radio}.interfaces[@.config.mode=\"ap\"].ifname")_${radio}"
+                    ifname="${trm_aplist}"
+                else
+                    trm_aplist=""
+                    trm_ifstatus="false"
+                    break
+                fi
+            done
         else
             ifname="$(ubus -S call network.wireless status | jsonfilter -l1 -e '@.*.interfaces[@.config.mode="sta"].ifname')"
             if [ -n "${ifname}" ]
@@ -107,10 +125,20 @@ f_check()
         cnt=$((cnt+1))
         sleep 1
     done
-    f_log "debug" "mode: ${mode}, radio: ${trm_radio}, name: ${ifname}, status: ${trm_ifstatus}, count: ${cnt}, max-wait: ${trm_maxwait}"
+    f_log "debug" "mode: ${mode}, name: ${ifname}, status: ${trm_ifstatus}, count: ${cnt}, max-wait: ${trm_maxwait}"
 }
 
-# function to write to syslog
+# f_active: keep travelmate in an active state
+#
+f_active()
+{
+    if [ ${trm_active} -eq 1 ]
+    then
+        (sleep ${trm_timeout}; /etc/init.d/travelmate start >/dev/null 2>&1) &
+    fi
+}
+
+# f_log: function to write to syslog
 #
 f_log()
 {
@@ -122,18 +150,19 @@ f_log()
         logger -t "travelmate-[${trm_ver}] ${class}" "${log_msg}"
         if [ "${class}" = "error" ]
         then
-            logger -t "travelmate-[${trm_ver}] ${class}" "Please check the online documentation 'https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md'"
+            logger -t "travelmate-[${trm_ver}] ${class}" "Please check the readme 'https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md' (${trm_sysver})"
+            f_active
             exit 255
         fi
     fi
 }
 
+# f_main: main function for connection handling
+#
 f_main()
 {
-    local ap_list ssid_list config network ssid cnt=1
-    local sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
+    local ssid_list config ap_radio sta_radio ssid cnt=1
 
-    f_log "info " "start travelmate scanning ..."
     f_check "initial"
     if [ "${trm_ifstatus}" != "true" ]
     then
@@ -145,15 +174,20 @@ f_main()
             ubus call network reload
         fi
         f_check "ap"
-        ap_list="$(ubus -S call network.wireless status | jsonfilter -e "@.${trm_radio}.interfaces[@.config.mode=\"ap\"].ifname" | awk '{ORS=" "; print $0}')"
-        f_log "debug" "ap-list: ${ap_list}, sta-list: ${trm_stalist}"
-        if [ -z "${ap_list}" ] || [ -z "${trm_stalist}" ]
+        f_log "debug" "ap-list: ${trm_aplist}, sta-list: ${trm_stalist}"
+        if [ -z "${trm_aplist}" ] || [ -z "${trm_stalist}" ]
         then
             f_log "error" "no usable AP/STA configuration found"
         fi
-        for ap in ${ap_list}
+        for ap in ${trm_aplist}
         do
             cnt=1
+            ap_radio="${ap##*_}"
+            ap="${ap%%_*}"
+            if [ -z "$(printf "${trm_stalist}" | grep -Fo "_${ap_radio}")" ]
+            then
+                continue
+            fi
             while [ ${cnt} -le ${trm_maxretry} ]
             do
                 if [ ${trm_iw} -eq 1 ]
@@ -170,9 +204,9 @@ f_main()
                     for sta in ${trm_stalist}
                     do
                         config="${sta%%_*}"
-                        network="${sta##*_}"
+                        sta_radio="${sta##*_}"
                         ssid="\"$(uci -q get wireless."${config}".ssid)\""
-                        if [ -n "$(printf "${ssid_list}" | grep -Fo "${ssid}")" ]
+                        if [ -n "$(printf "${ssid_list}" | grep -Fo "${ssid}")" ] && [ "${ap_radio}" = "${sta_radio}" ]
                         then
                             uci -q set wireless."${config}".disabled=0
                             uci -q commit wireless
@@ -180,33 +214,28 @@ f_main()
                             f_check "sta"
                             if [ "${trm_ifstatus}" = "true" ]
                             then
-                                f_log "info " "wwan interface connected to uplink ${ssid} (${cnt}/${trm_maxretry}, ${sysver})"
+                                f_log "info " "wwan interface connected to uplink ${ssid} (${cnt}/${trm_maxretry}, ${trm_sysver})"
                                 sleep 5
                                 return 0
                             else
                                 uci -q set wireless."${config}".disabled=1
                                 uci -q commit wireless
                                 ubus call network reload
-                                f_log "info " "wwan interface can't connect to uplink ${ssid} (${cnt}/${trm_maxretry}, ${sysver})"
+                                f_log "info " "wwan interface can't connect to uplink ${ssid} (${cnt}/${trm_maxretry}, ${trm_sysver})"
                             fi
                         fi
                     done
                 else
-                    f_log "info " "empty uplink list (${cnt}/${trm_maxretry}, ${sysver})"
+                    f_log "info " "empty uplink list (${cnt}/${trm_maxretry}, ${trm_sysver})"
                 fi
                 cnt=$((cnt+1))
                 sleep 5
             done
         done
-        f_log "info " "no wwan uplink found (${sysver})"
-    else
-        f_log "info " "wwan uplink still connected (${sysver})"
     fi
 }
 
-if [ "${trm_procd}" = "true" ]
-then
-    f_envload
-    f_main
-fi
+f_envload
+f_main
+f_active
 exit 0
index e531a4578dd80af040f29baaf9a21caed349a7bb..6546fa2a11c21a49347715995ea09115ed43e1f5 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unbound
 PKG_VERSION:=1.6.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
index 53f8a14129d31ad597f637ccdcd33b69515c56f8..4855688ac9d411c44bad2f88c4f167368e5cccc7 100644 (file)
@@ -117,7 +117,7 @@ Keep the DNSKEY updated with your choice of flash activity. `root.key` maintenan
 
        config unbound
                option manual_conf '1'
-               option root_age '30'
+               option root_age '9'
 
 ### Hybrid Manual/UCI
 You like the UCI. Yet, you need to add some difficult to standardize options, or just are not ready to make a UCI request yet. The files `/etc/unbound/unbound_srv.conf` and `/etc/unbound/unbound_ext.conf` will be copied to Unbounds chroot directory and included during auto generation. 
@@ -230,7 +230,7 @@ The former will be added to the end of the `server:` clause. The later will be a
                defaults with a bit of balancing. Tiny is close to the published
                memory restricted configuration. Small 1/2 medium, and large 2x.
 
-       option root_age '30'
+       option root_age '9'
                Days. >90 Disables. Age limit for Unbound root data like root
                DNSSEC key. Unbound uses RFC 5011 to manage root key. This could
                harm flash ROM. This activity is mapped to "tmpfs," but every so
index 143c0560f65715cf5e5f786e9b8752ce807613a9..d085fed4eafcc8ff7c3109ef0bfdec65d9b4662a 100644 (file)
@@ -26,7 +26,7 @@ rootzone_uci() {
   # This will likely be called outside of "start_service()" context
   config_get_bool UNBOUND_B_DNSSEC "$cfg" validator 0
   config_get_bool UNBOUND_B_NTP_BOOT "$cfg" validator_ntp 1
-  config_get UNBOUND_N_ROOT_AGE "$cfg" root_age 30
+  config_get UNBOUND_N_ROOT_AGE "$cfg" root_age 9
 }
 
 ##############################################################################
index 24964d0b0a675480fc9270727301e07696f89ce6..ce250bd952ad9c137a03cd4823d7771edf84587c 100644 (file)
@@ -47,7 +47,7 @@ UNBOUND_IP_DNS64="64:ff9b::/96"
 UNBOUND_N_EDNS_SIZE=1280
 UNBOUND_N_FWD_PORTS=""
 UNBOUND_N_RX_PORT=53
-UNBOUND_N_ROOT_AGE=28
+UNBOUND_N_ROOT_AGE=9
 
 UNBOUND_TTL_MIN=120
 
@@ -258,6 +258,13 @@ unbound_mkdir() {
   fi
 
 
+  if [ -f $UNBOUND_KEYFILE ] ; then
+    # Lets not lose RFC 5011 tracking if we don't have to
+    cp -p $UNBOUND_KEYFILE $UNBOUND_KEYFILE.keep
+  fi
+
+
+  # Blind copy /etc/ to /var/lib/
   mkdir -p $UNBOUND_VARDIR
   rm -f $UNBOUND_VARDIR/dhcp_*
   touch $UNBOUND_CONFFILE
@@ -282,7 +289,7 @@ unbound_mkdir() {
       # Debian-like package dns-root-data
       cp -p /usr/share/dns/root.key $UNBOUND_KEYFILE
 
-    elif [ -x "$UNBOUND_ANCHOR" ] ; then
+    elif [ -x $UNBOUND_ANCHOR ] ; then
       $UNBOUND_ANCHOR -a $UNBOUND_KEYFILE
 
     else
@@ -290,7 +297,14 @@ unbound_mkdir() {
     fi
   fi
 
-
+  
+  if [ -f $UNBOUND_KEYFILE.keep ] ; then
+    # root.key.keep is reused if newest
+    cp -u $UNBOUND_KEYFILE.keep $UNBOUND_KEYFILE
+    rm -f $UNBOUND_KEYFILE.keep
+  fi
+  
+  
   # Ensure access and prepare to jail
   chown -R unbound:unbound $UNBOUND_VARDIR
   chmod 775 $UNBOUND_VARDIR
@@ -755,7 +769,7 @@ unbound_uci() {
 
   config_get UNBOUND_N_EDNS_SIZE "$cfg" edns_size 1280
   config_get UNBOUND_N_RX_PORT   "$cfg" listen_port 53
-  config_get UNBOUND_N_ROOT_AGE  "$cfg" root_age 7
+  config_get UNBOUND_N_ROOT_AGE  "$cfg" root_age 9
 
   config_get UNBOUND_D_DOMAIN_TYPE "$cfg" domain_type static
   config_get UNBOUND_D_DHCP_LINK   "$cfg" dhcp_link none
index 7794e976547cbabf75a143adc730d494dd3d4596..9e58ac799bb69c72f17f61d97b828a89057ceea2 100644 (file)
@@ -19,7 +19,7 @@ config unbound
        option rebind_protection '1'
        option recursion 'passive'
        option resource 'small'
-       option root_age '28'
+       option root_age '9'
        option ttl_min '120'
        option unbound_control '0'
        option validator '0'
index a7c8cc81c9563ae0863ce01eeeaec95db7db2247..9e779a6bf14a7478998617959ba04a2bbb8ab59a 100644 (file)
@@ -4,14 +4,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vpnbypass
-PKG_VERSION:=1.1.1
-PKG_RELEASE:=4
+PKG_VERSION:=1.3.0
+PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/$(PKG_NAME)
+define Package/vpnbypass
        SECTION:=net
        CATEGORY:=Network
        DEPENDS:=+ip-full +ipset +iptables +ubox +dnsmasq-full
@@ -20,14 +20,14 @@ define Package/$(PKG_NAME)
        PKGARCH:=all
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/vpnbypass/description
 This service can be used to enable simple VPN split tunnelling.
 Supports accessing domains, IP ranges outside of your VPN tunnel.
 Also supports dedicating local ports/IP ranges for direct internet access (outside of your VPN tunnel).
 Please see the README for further information.
 endef
 
-define Package/$(PKG_NAME)/conffiles
+define Package/vpnbypass/conffiles
 /etc/config/vpnbypass
 endef
 
@@ -43,7 +43,7 @@ endef
 define Build/Compile
 endef
 
-define Package/$(PKG_NAME)/install
+define Package/vpnbypass/install
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/vpnbypass.init $(1)/etc/init.d/vpnbypass
        $(INSTALL_DIR) $(1)/etc/config
@@ -52,4 +52,4 @@ define Package/$(PKG_NAME)/install
        $(INSTALL_DATA) ./files/vpnbypass.hotplug $(1)/etc/hotplug.d/firewall/94-vpnbypass
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,vpnbypass))
index 7867ba76d514ad44876d277f18c45443861a0326..c4b95bf2a2943b7ce6db95d932a38cff1afd098d 100644 (file)
@@ -11,7 +11,7 @@ A simple PROCD-based vpnbypass service for OpenWrt/LEDE Project. Useful if your
 - Proudly made in Canada, using locally-sourced electrons.
 
 ## Screenshot (luci-app-vpnbypass)
-![screenshot](https://raw.githubusercontent.com/stangri/screenshots/master/vpnbypass/screenshot01.png "screenshot")
+![screenshot](https://raw.githubusercontent.com/stangri/screenshots/master/vpnbypass/screenshot02.png "screenshot")
 
 ## Requirements
 This service requires following packages to be installed on your router: ```ip-full ipset iptables dnsmasq-full``` (```ip-full``` requires you uninstall ```ip``` first; ```dnsmasq-full``` requires you uninstall ```dnsmasq``` first). Run the following commands to satisfy the requirements:
@@ -35,8 +35,19 @@ Please head to [LEDE Project Forum](https://forum.lede-project.org/t/vpn-bypass-
 Domain lists should be in following format/syntax: ```/domain1.com/domain2.com/vpnbypass```. Please don't forget the leading ```/``` and trailing ```/vpnbypass```. There's no validation if you enter something incorrectly -- it just won't work. Please see [Notes/Known Issues](#notesknown-issues) if you want to edit this setting manually, without Web UI.
 
 ## What's New
+1.3.0
+- No longer depends on hardcoded WAN interface name (```wan```) works with other interface names (like ```wwan```).
+- Table ID, IPSET name and FW_MARK as well as FW_MASK can be defined in config file.
+- Uses iptables, not ip rules for handling local IPs/ranges.
+- More reliable creation/destruction of VPNBYPASS iptables chain.
+- Updated Web UI enables/start and stops/disables service.
+- Beautified output.
+
+1.2.0
+- More elegant handling of iptables (thanks [@hnyman](https://github.com/hnyman) and [@tohojo](https://github.com/tohojo)!).
+
 1.1.1
-- More reliable way of obtaining WAN gateway on boot (thanks @dibdot for the hint!).
+- More reliable way of obtaining WAN gateway on boot (thanks [@dibdot](https://github.com/dibdot) for the hint!).
 
 1.1.0:
 - Detects individual IP addresses in the config and converts them to subnet automatically.
@@ -55,7 +66,7 @@ Domain lists should be in following format/syntax: ```/domain1.com/domain2.com/v
 - Initial release.
 
 ## Notes/Known Issues
-Domains to be accessed outside of VPN tunnel are not defined in ```/etc/config/vpnpass```, but rather in ```/etc/config/dhcp```. To add/delete/edit domains you can use VPN Bypass Web UI or you can edit ```/etc/config/dhcp``` manually or run following commands:
+Domains to be accessed outside of VPN tunnel are handled by dnsmasq and thus are not defined in ```/etc/config/vpnpass```, but rather in ```/etc/config/dhcp```. To add/delete/edit domains you can use VPN Bypass Web UI or you can edit ```/etc/config/dhcp``` manually or run following commands:
 ```sh
 uci add_list dhcp.@dnsmasq[-1].ipset='/github.com/plex.tv/google.com/vpnbypass'
 uci add_list dhcp.@dnsmasq[-1].ipset='/hulu.com/netflix.com/nhl.com/vpnbypass'
index b48d45e72fd1115b660b2c8004bec1815fe11af9..2ecac72c4967699a971fde71fab69a6d6133e6e5 100644 (file)
@@ -1,5 +1,4 @@
 config vpnbypass 'config'
-       option enabled '1'
        list localport '32400'
        list localsubnet '192.168.1.81/29'
        list remotesubnet '25.0.0.0/8'
index c64b83c000f1f1f5d9c312ad59b2f272ce55e77e..265300eb326015bb7c4e411b75836cac66f3caa0 100644 (file)
@@ -4,36 +4,44 @@ PKG_VERSION=
 START=94
 USE_PROCD=1
 
-readonly TID="200" FW_MARK="0x010000" IPSET="vpnbypass"
+readonly __ok__='\033[0;32m[\xe2\x9c\x93]\033[0m'
+readonly __fail__='\033[0;31m[\xe2\x9c\x97]\033[0m'
+readonly __pass__='\033[0;33m[-]\033[0m'
+readonly __error__='\033[0;31mERROR\033[0m'
 
-output() {
-       [ -n "$2" ] && [ ! $(($verbosity & $2)) -gt 0 ] && return 0;
-       [ -t 1 ] && echo -e -n "$1"
-       [ $(echo -e -n "$1" | wc -l) -gt 0 ] && logger -t "${PKG_NAME:-service} [$$]" "$(echo -e -n ${logmsg}${1})" && logmsg='' || logmsg=${logmsg}${1}
-}
+output() { local msg=$(echo -n "${1/$p_name /service }" | sed 's|\\033\[[0-9]\?;\?[0-9]\?[0-9]\?m||g'); [ -n "$2" ] && [ ! $(($verbosity & $2)) -gt 0 ] && return 0; [ -t 1 ] && echo -e -n "$1"; [ $(echo -e -n "$msg" | wc -l) -gt 0 ] && logger -t "${PKG_NAME:-service} [$$]" "$(echo -e -n ${logmsg}${msg})" && logmsg='' || logmsg=${logmsg}${msg}; }
+PKG_NAME="${PKG_NAME:-vpnbypass}"; p_name="${PKG_NAME} ${PKG_VERSION}"
 
-vpnbypass_enabled() {
-       config_load vpnbypass
-       config_get_bool enabled 'config' 'enabled' 0
+is_enabled() {
+       config_load $PKG_NAME
        config_get verbosity    'config' 'verbosity' '2'
-       PKG_NAME="${PKG_NAME:-vpnbypass}"
-       [ -n "$PKG_VERSION" ] && p_name="$PKG_NAME $PKG_VERSION" || p_name="$PKG_NAME"
-       [ -t 1 ] || p_name='service'
+       config_get TID          'config' 'table_number' '200'
+       config_get IPSET        'config' 'ipset'  'vpnbypass'
+       config_get FW_MARK      'config' 'fw_mark' '0x010000'
+       config_get FW_MASK      'config' 'fw_mask' '0xff0000'
        source /lib/functions/network.sh
-       [ "$enabled" -ne "0" ] && return 0
-       output "$p_name is not enabled in the config file!\n"
-       output "To enable, run 'uci set $PKG_NAME.config.enabled=1; uci commit $PKG_NAME'\n"
-       return 1
+       return 0
 }
 
-iptables_reset(){ [ -z "$PKG_NAME" ] && return 1; iptables-save | grep -Fv -- "$PKG_NAME" | iptables-restore; lsmod | grep -q ip6table_nat && ip6tables-save | grep -Fv -- "$PKG_NAME" | ip6tables-restore; }
+ipt() {
+    local d=$(echo $* | sed s/-A/-D/g)
+    [ "$d" != "$*" ] && iptables $d >/dev/null 2>&1
+    d=$(echo $* | sed s/-I/-D/g)
+    [ "$d" != "$*" ] && iptables $d >/dev/null 2>&1
+               d=$(echo $* | sed s/-N/-F/g)
+    [ "$d" != "$*" ] && iptables $d >/dev/null 2>&1
+               d=$(echo $* | sed s/-N/-X/g)
+    [ "$d" != "$*" ] && iptables $d >/dev/null 2>&1
+
+               iptables $* >/dev/null 2>&1
+}
 
-boot() { ubus -t 30 wait_for network.interface.wan && { rc_procd start_service; rc_procd service_triggers; } || output "ERROR: $p_name failed to settle network interface!\n"; }
+#boot() { ubus -t 30 wait_for network.interface.wan && { rc_procd start_service; rc_procd service_triggers; } || output "ERROR: $p_name failed to settle network interface!\n"; }
 
 start_service() {
        local ll c=1
   config_load vpnbypass
-  vpnbypass_enabled || return 1
+  is_enabled || return 1
   config_get lports   'config' 'localport'
   config_get rports   'config' 'remoteport'
   config_get routes   'config' 'remotesubnet'
@@ -45,40 +53,49 @@ start_service() {
        procd_set_param stderr 1
        procd_close_instance
 
-       while : ; do network_get_ipaddr wanip wan; network_get_gateway gwip wan; [ $c -ge 15 ] && break || let "c+=1"; [ -n "$wanip" -a -n "$gwip" ] && break || output "$p_name waiting for wan gateway...\n"; sleep 2; network_flush_cache; done
-       [ -z "$wanip" -o -z "$gwip" ] && output "ERROR: $p_name could not get wan interface IP: $wanip or gateway: $gwip!\n" && exit 0
+       while : ; do
+               network_find_wan wan_if4; [ -n "wan_if4" ] && network_get_gateway wan_gw $wan_if4;
+               [ $c -ge 25 -o -n "$wan_gw" ] && break
+               output "$p_name waiting for wan gateway...\n"; sleep 2; network_flush_cache; let "c+=1";
+       done
+       [ -z "$wan_gw" ] && output "$__error__: $p_name could not discover wan gateway IP!\n" && exit 1
 
-       for ll in ${routes}; do ip route del $ll; ip route add $ll via $gwip; done
-       ip rule del fwmark "$FW_MARK" table "$TID" >/dev/null 2>&1; iptables_reset; ipset -q flush "$IPSET"; ipset -q destroy "$IPSET";
+       ipt -t mangle -N VPNBYPASS; ipt -t mangle -A PREROUTING -m mark --mark 0x00/${FW_MASK} -g VPNBYPASS;
+       ipt -t mangle -A VPNBYPASS -m set --match-set $IPSET dst -j MARK --set-mark ${FW_MARK}/${FW_MASK}
+       ip rule del fwmark "$FW_MARK" table "$TID" >/dev/null 2>&1; ipset -q flush "$IPSET"; ipset -q destroy "$IPSET";
        ip route flush table "$TID"; ip route flush cache;
-       ip route add default via "$gwip" table "$TID"; ip route flush cache;
-       { modprobe xt_set; modprobe ip_set; modprobe ip_set_hash_ip; } >/dev/null 2>&1
+       ip route add default via "$wan_gw" table "$TID"; ip route flush cache;
        ipset -q -exist create "$IPSET" hash:ip; ipset -q flush "$IPSET"
-       for ll in ${lports}; do iptables -t mangle -A PREROUTING -p tcp -m multiport --sport "${ll//-/:}" -j MARK --set-mark "$FW_MARK/$FW_MARK" -m comment --comment "$PKG_NAME"; done
-       for ll in ${rports}; do iptables -t mangle -A PREROUTING -p tcp -m multiport --dport "${ll//-/:}" -j MARK --set-mark "$FW_MARK/$FW_MARK" -m comment --comment "$PKG_NAME"; done
-       for ll in ${ranges}; do iptables -t mangle -I PREROUTING -s "$ll" -j MARK --set-mark "$FW_MARK/$FW_MARK" -m comment --comment "$PKG_NAME"; done
-       iptables -t mangle -A PREROUTING -m set --match-set "$IPSET" dst -j MARK --set-mark "$FW_MARK/$FW_MARK" -m comment --comment "$PKG_NAME"
        ip rule add fwmark "$FW_MARK" table "$TID"
+       { modprobe xt_set; modprobe ip_set; modprobe ip_set_hash_ip; } >/dev/null 2>&1
+       for ll in ${ranges}; do ipt -t mangle -I VPNBYPASS 1 -j MARK --set-mark ${FW_MARK}/${FW_MASK} -s "$ll"; done
+       for ll in ${lports}; do ipt -t mangle -I VPNBYPASS 1 -j MARK --set-mark ${FW_MARK}/${FW_MASK} -p tcp -m multiport --sport "${ll//-/:}"; done
+       for ll in ${routes}; do ipt -t mangle -I VPNBYPASS 1 -j MARK --set-mark ${FW_MARK}/${FW_MASK} -d "$ll"; done
+       for ll in ${rports}; do ipt -t mangle -I VPNBYPASS 1 -j MARK --set-mark ${FW_MARK}/${FW_MASK} -p tcp -m multiport --dport "${ll//-/:}"; done
        output "$p_name started with TID: $TID; FW_MARK: $FW_MARK\n"
 }
 
 stop_service() {
        local ll
-  vpnbypass_enabled || return 1
-  config_get routes   'config' 'remotesubnet'
+  is_enabled || return 1
 
-       for ll in ${routes}; do ip route del "$ll"; done
-       ip rule del fwmark "$FW_MARK" table "$TID" >/dev/null 2>&1; iptables_reset; ipset -q flush "$IPSET"; ipset -q destroy "$IPSET";
+       ip rule del fwmark "$FW_MARK" table "$TID" >/dev/null 2>&1; ipset -q flush "$IPSET"; ipset -q destroy "$IPSET";
        ip route flush table "$TID"; ip route flush cache;
+       ipt -t mangle -D PREROUTING -m mark --mark 0x00/${FW_MASK} -g VPNBYPASS
+       ipt -t mangle -F VPNBYPASS; ipt -t mangle -X VPNBYPASS;
        output "$p_name stopped\n"
 }
 
-reload_service() { start_service; }
+reload_service(){
+       start_service
+}
 
+st_load_interfaces(){ local d; config_get d $1 ifname; [ "$1" == "$wan_if4" -o "$d" != "${d/tun}" -o "$d" != "${d/tap}" ] && ifaces=" ${1} ${ifaces}"; }
 service_triggers() {
+               local ifaces n
                procd_add_reload_trigger 'vpnbypass'
                procd_open_trigger
                procd_add_config_trigger "config.change" "vpnbypass" /etc/init.d/vpnbypass reload
-               procd_add_interface_trigger "interface.*" "wan" /etc/init.d/vpnbypass reload
+               for n in $ifaces; do procd_add_interface_trigger "interface.*" "$n" /etc/init.d/openvpn-policy-routing reload; done;
                procd_close_trigger
 }
index c1586b725b0c1dcb83a2f83d23cd97bb55c5af3b..4c85fc3726bb1b4d02d74c6174a8a70e4570817d 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xinetd
 PKG_VERSION:=2.3.15
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.xinetd.org
@@ -39,6 +39,7 @@ endef
 
 define Package/xinetd/conffiles
 /etc/xinetd.conf
+/etc/xinetd.d/
 endef
 
 TARGET_CFLAGS += -DNO_RPC
index 224867670b6173261e7c6157abbcfa11e9cc9f9f..e5e625e88993d0c41e2cc213243f267513db027f 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=collectd
 PKG_VERSION:=5.7.1
-PKG_RELEASE:=2
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://collectd.org/files/ \
@@ -32,7 +32,6 @@ COLLECTD_PLUGINS_DISABLED:= \
        battery \
        ceph \
        cgroups \
-       chrony \
        cpusleep \
        curl_json \
        curl_xml \
@@ -56,6 +55,7 @@ COLLECTD_PLUGINS_DISABLED:= \
        lua \
        lvm \
        lpar \
+       madwifi \
        mbmon \
        md \
        memcachec \
@@ -111,6 +111,7 @@ COLLECTD_PLUGINS_SELECTED:= \
        apcups \
        ascent \
        bind \
+       chrony \
        conntrack \
        contextswitch \
        cpu \
@@ -131,7 +132,11 @@ COLLECTD_PLUGINS_SELECTED:= \
        iwinfo \
        load \
        logfile \
-       madwifi \
+       match_empty_counter \
+       match_hashed \
+       match_regex \
+       match_timediff \
+       match_value \
        memory \
        modbus \
        mysql \
@@ -310,6 +315,7 @@ $(eval $(call BuildPlugin,apache,apache status input,apache,+PACKAGE_collectd-mo
 $(eval $(call BuildPlugin,apcups,apcups status input,apcups,))
 $(eval $(call BuildPlugin,ascent,ascent status input,ascent,+PACKAGE_collectd-mod-ascent:libcurl +PACKAGE_collectd-mod-ascent:libxml2))
 $(eval $(call BuildPlugin,bind,BIND server/zone input,bind,+PACKAGE_collectd-mod-bind:libcurl +PACKAGE_collectd-mod-bind:libxml2))
+$(eval $(call BuildPlugin,chrony,chrony status input,chrony,))
 $(eval $(call BuildPlugin,conntrack,connection tracking table size input,conntrack,))
 $(eval $(call BuildPlugin,contextswitch,context switch input,contextswitch,))
 $(eval $(call BuildPlugin,cpu,CPU input,cpu,))
@@ -331,7 +337,11 @@ $(eval $(call BuildPlugin,irq,interrupt usage input,irq,))
 $(eval $(call BuildPlugin,iwinfo,libiwinfo wireless statistics,iwinfo,+PACKAGE_collectd-mod-iwinfo:libiwinfo))
 $(eval $(call BuildPlugin,load,system load input,load,))
 $(eval $(call BuildPlugin,logfile,log files output,logfile,))
-$(eval $(call BuildPlugin,madwifi,MadWifi status input,madwifi,))
+$(eval $(call BuildPlugin,match-empty-counter,empty-counter match,match_empty_counter,))
+$(eval $(call BuildPlugin,match-hashed,hashed match,match_hashed,))
+$(eval $(call BuildPlugin,match-regex,regex match,match_regex,))
+$(eval $(call BuildPlugin,match-timediff,timediff match,match_timediff,))
+$(eval $(call BuildPlugin,match-value,value match,match_value,))
 #$(eval $(call BuildPlugin,mysql,MySQL status input,mysql,+PACKAGE_collectd-mod-mysql:libmysqlclient-r))
 $(eval $(call BuildPlugin,memory,physical memory usage input,memory,))
 $(eval $(call BuildPlugin,modbus,read variables through libmodbus,modbus,+PACKAGE_collectd-mod-modbus:libmodbus))
diff --git a/utils/domoticz/Makefile b/utils/domoticz/Makefile
new file mode 100644 (file)
index 0000000..4a350db
--- /dev/null
@@ -0,0 +1,100 @@
+#
+# Copyright (C) 2016 - 2017  Stijn Tintel <stijn@linux-ipv6.be>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=domoticz
+PKG_VERSION_MAJOR:=3
+PKG_VERSION_PATCH:=5877
+PKG_VERSION:=$(PKG_VERSION_MAJOR).$(PKG_VERSION_PATCH)
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_VERSION)/$(PKG_SOURCE)
+PKG_HASH:=fb88edbe428851a7a337a85faa93f6da00713b3ad086ff6957031dc9b3b58bba
+
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=License.txt
+
+PKG_BUILD_PARALLEL:=1
+PKG_USE_MIPS16:=0
+
+CMAKE_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/domoticz
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Open Source Home Automation System
+  URL:=http://domoticz.com/
+  MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
+  USERID:=domoticz=6144:domoticz=6144
+  DEPENDS:= \
+       +boost \
+       +boost-date_time \
+       +boost-system \
+       +boost-thread \
+       +libcurl \
+       +libmosquittopp \
+       +libopenssl \
+       +libopenzwave \
+       +libsqlite3 \
+       +libstdcpp \
+       +zlib
+endef
+
+define Package/domoticz/description
+  Domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device.
+endef
+
+CMAKE_OPTIONS += \
+       -DCMAKE_BUILD_TYPE=Release \
+       -DUSE_BUILTIN_MQTT=no \
+       -DUSE_BUILTIN_SQLITE=no \
+       -DUSE_STATIC_BOOST=no \
+       -DUSE_STATIC_LIBSTDCXX=no \
+       -DUSE_STATIC_OPENZWAVE=no \
+       -DUSE_PYTHON=no
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       # Fix APPVERSION to suppress update popup
+       sed -i 's/#define APPVERSION.*/#define APPVERSION $(PKG_VERSION_PATCH)/' \
+                $(PKG_BUILD_DIR)/appversion.default
+       # Remove unwanted scripts
+       cd $(PKG_BUILD_DIR)/scripts && rm -rf \
+               buienradar_rain_example.pl \
+               _domoticz_main.bat \
+               download_update.sh \
+               logrotate/ \
+               python/ \
+               readme.txt \
+               restart_domoticz \
+               templates/All.Python \
+               update_domoticz
+endef
+
+define Package/domoticz/install
+       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/tty $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/domoticz.hotplug $(1)/etc/hotplug.d/tty/domoticz
+       $(INSTALL_BIN) ./files/domoticz.init $(1)/etc/init.d/domoticz
+       $(INSTALL_CONF) ./files/domoticz.config $(1)/etc/config/domoticz
+       $(INSTALL_DIR) $(1)/usr/share/domoticz $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/Config $(1)/usr/share/domoticz/openzwave
+       $(CP) $(PKG_INSTALL_DIR)/usr/scripts $(1)/usr/share/domoticz/
+       $(CP) $(PKG_INSTALL_DIR)/usr/www $(1)/usr/share/domoticz/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/domoticz $(1)/usr/bin/domoticz
+endef
+
+define Package/domoticz/conffiles
+/etc/config/domoticz
+/var/lib/domoticz/
+endef
+
+$(eval $(call BuildPackage,domoticz))
diff --git a/utils/domoticz/files/domoticz.config b/utils/domoticz/files/domoticz.config
new file mode 100644 (file)
index 0000000..b300f3f
--- /dev/null
@@ -0,0 +1,28 @@
+config domoticz
+       option disabled '1'
+       option loglevel '1'
+       option syslog 'daemon'
+       # option sslcert '/path/to/ssl.crt'
+       # option sslkey '/path/to/ssl.key'
+       # option sslpass 'passphrase'
+       option sslwww '0'
+       # CAUTION - by default, /var is not persistent accross reboots
+       # Don't forget the trailing / - domoticz requires it
+       option userdata '/var/lib/domoticz/'
+
+#config device
+#      option product '658/200/0'
+#      option symlink 'ttyACM-aeotec-zstick-g5'
+
+#config device
+#      option serial '526359'
+#      option symlink 'ttyUSB-serial'
+
+#config device
+#      option usbif '2-1:1.0'
+#      option symlink 'ttyUSB-port1'
+
+#config device
+#      option product '67b/2303/202'
+#      option usbif '2-2:1.0'
+#      option symlink 'ttyUSB-port2'
diff --git a/utils/domoticz/files/domoticz.hotplug b/utils/domoticz/files/domoticz.hotplug
new file mode 100644 (file)
index 0000000..7138175
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+. /lib/functions.sh
+
+[ "$SUBSYSTEM" = "tty" ] || exit 0
+
+add() {
+       local cfg="$1"
+       local product serial symlink usbif
+
+       [ -c "/dev/$DEVICENAME" ] || return
+
+       config_get product "$cfg" product
+       config_get serial "$cfg" serial
+       config_get symlink "$cfg" symlink
+       config_get usbif "$cfg" usbif
+
+       [ -z "$product" -a -z "$serial" -a -z "$usbif" ] && return
+
+       . "/sys/$DEVPATH/device/../uevent"
+       SERIAL="$(cat /sys/$DEVPATH/device/../../serial)" 2>/dev/null
+       USBIF="$(echo $DEVPATH | awk -F/ 'BEGIN {i=3}; /ACM/ {i=2}; END {print $(NF-i)}')"
+
+       [ -n "$product" -a "$product" != "$PRODUCT" ] && return
+       [ -n "$serial" -a "$serial" != "$SERIAL" ] && return
+       [ -n "$usbif" -a "$usbif" != "$USBIF" ] && return
+
+       chgrp domoticz "/dev/$DEVICENAME"
+       chmod g+rw "/dev/$DEVICENAME"
+
+       [ -n "$symlink" ] && ln -s "/dev/$DEVICENAME" "/dev/$symlink"
+}
+
+remove() {
+       local cfg="$1"
+       local symlink
+
+       config_get symlink "$cfg" symlink
+
+       [ "/dev/$DEVICENAME" = "$(readlink /dev/$symlink)" ] && rm "/dev/$symlink"
+}
+
+config_load "domoticz"
+config_foreach "$ACTION" device
diff --git a/utils/domoticz/files/domoticz.init b/utils/domoticz/files/domoticz.init
new file mode 100644 (file)
index 0000000..cbee77b
--- /dev/null
@@ -0,0 +1,54 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+USE_PROCD=1
+PROG=/usr/bin/domoticz
+PIDFILE=/var/run/domoticz.pid
+
+start_domoticz() {
+       local section="$1"
+       local loglevel sslcert sslpass sslwww syslog userdata
+
+       config_get loglevel "$section" "loglevel"
+       config_get sslcert "$section" "sslcert"
+       config_get sslkey "$section" "sslkey"
+       config_get sslpass "$section" "sslpass"
+       config_get sslwww "$section" "sslwww"
+       config_get syslog "$section" "syslog"
+       config_get userdata "$section" "userdata"
+
+       [ -n "$loglevel" ] && procd_append_param command -loglevel "$loglevel"
+       [ -n "$syslog" ] && procd_append_param command -syslog "$syslog"
+       [ -n "$userdata" ] && procd_append_param command -userdata "$userdata"
+       [ -n "$sslcert" -a "${sslwww:-0}" -gt 0 ] && {
+               procd_append_param command -sslcert "$sslcert"
+               procd_append_param command -sslwww "$sslwww"
+               [ -n "$sslkey" ] && procd_append_param command -sslkey "$sslkey"
+               [ -n "$sslpass" ] && procd_append_param command -sslpass "$sslpass"
+       } || procd_append_param command -sslwww 0
+}
+
+start_service() {
+       mkdir -p /var/lib/domoticz
+       chmod 0770 /var/lib/domoticz
+       chown domoticz:domoticz /var/lib/domoticz
+
+       procd_open_instance
+
+       procd_set_param command "$PROG"
+       procd_append_param command -scripts /usr/share/domoticz/scripts/
+       procd_append_param command -wwwroot /usr/share/domoticz/www/
+
+       config_load "domoticz"
+       config_get_bool disabled "$section" "disabled" 0
+       [ "$disabled" -gt 0 ] && return 1
+       config_foreach start_domoticz domoticz
+
+       procd_set_param pidfile "$PIDFILE"
+       procd_set_param respawn
+       procd_set_param stdout 0
+       procd_set_param term_timeout 10
+       procd_set_param user "domoticz"
+
+       procd_close_instance
+}
diff --git a/utils/domoticz/patches/001-Add-sslkey-option-to-allow-separate-cert-key-files-1.patch b/utils/domoticz/patches/001-Add-sslkey-option-to-allow-separate-cert-key-files-1.patch
new file mode 100644 (file)
index 0000000..3e73465
--- /dev/null
@@ -0,0 +1,48 @@
+From 2504f02de752aceb5a3c1d4749032147efde8082 Mon Sep 17 00:00:00 2001
+From: dwmw2 <dwmw2@infradead.org>
+Date: Fri, 3 Feb 2017 07:40:35 +0000
+Subject: [PATCH] Add -sslkey option to allow separate cert/key files (#1195)
+
+---
+ main/domoticz.cpp             | 11 +++++++++++
+ webserver/server_settings.hpp |  2 +-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+--- a/main/domoticz.cpp
++++ b/main/domoticz.cpp
+@@ -76,6 +76,7 @@ const char *szHelp=
+ #ifdef WWW_ENABLE_SSL
+       "\t-sslwww port (for example -sslwww 443, or -sslwww 0 to disable https)\n"
+       "\t-sslcert file_path (for example /opt/domoticz/server_cert.pem)\n"
++      "\t-sslkey file_path (if different from certificate file)\n"
+       "\t-sslpass passphrase (to access to server private key in certificate)\n"
+       "\t-sslmethod method (for SSL method)\n"
+       "\t-ssloptions options (for SSL options, default is 'default_workarounds,no_sslv2,single_dh_use')\n"
+@@ -682,6 +683,16 @@ int main(int argc, char**argv)
+                       return 1;
+               }
+               secure_webserver_settings.cert_file_path = cmdLine.GetSafeArgument("-sslcert", 0, "");
++              secure_webserver_settings.private_key_file_path = secure_webserver_settings.cert_file_path;
++      }
++      if (cmdLine.HasSwitch("-sslkey"))
++      {
++              if (cmdLine.GetArgumentCount("-sslkey") != 1)
++              {
++                      _log.Log(LOG_ERROR, "Please specify a file path for your server SSL key file");
++                      return 1;
++              }
++              secure_webserver_settings.private_key_file_path = cmdLine.GetSafeArgument("-sslkey", 0, "");
+       }
+       if (cmdLine.HasSwitch("-sslpass"))
+       {
+--- a/webserver/server_settings.hpp
++++ b/webserver/server_settings.hpp
+@@ -227,7 +227,7 @@ public:
+                       // use certificate file for all usage by default
+                       certificate_chain_file_path = ssl_settings.cert_file_path;
+                       ca_cert_file_path = ssl_settings.cert_file_path;
+-                      private_key_file_path = ssl_settings.cert_file_path;
++                      private_key_file_path = ssl_settings.private_key_file_path;
+                       tmp_dh_file_path = ssl_settings.cert_file_path;
+                       verify_file_path = ssl_settings.cert_file_path;
+               }
diff --git a/utils/domoticz/patches/002-Evohome-updates-to-6708.patch b/utils/domoticz/patches/002-Evohome-updates-to-6708.patch
new file mode 100644 (file)
index 0000000..bf8d6ae
--- /dev/null
@@ -0,0 +1,68 @@
+diff --git a/hardware/evohome.cpp b/hardware/evohome.cpp
+index fcbee6d..f77291e 100644
+--- a/hardware/evohome.cpp
++++ b/hardware/evohome.cpp
+@@ -423,11 +423,11 @@ void CEvohome::RunScript(const char *pdata, const unsigned char length)
+                       boost::replace_all(OnAction, "{state}", s_strid.str());
+                       boost::replace_all(OnAction, "{until}", CEvohomeDateTime::GetISODate(tsen->EVOHOME2));
+                       //Execute possible script
+-                      std::string scriptname;
+-                      if (OnAction.find("script:///") != std::string::npos)
+-                              scriptname = OnAction.substr(9);
+-                      else
+-                              scriptname = OnAction.substr(8);
++                      std::string scriptname = OnAction.substr(9);
++#if !defined WIN32
++                      if (scriptname.find("/") != 0)
++                              scriptname = szUserDataFolder + "scripts/" + scriptname;
++#endif
+                       std::string scriptparams="";
+                       //Add parameters
+                       int pindex=scriptname.find(' ');
+@@ -439,7 +439,7 @@ void CEvohome::RunScript(const char *pdata, const unsigned char length)
+                       
+                       if (file_exist(scriptname.c_str()))
+                       {
+-                              m_sql.AddTaskItem(_tTaskItem::ExecuteScript(1,scriptname,scriptparams));
++                              m_sql.AddTaskItem(_tTaskItem::ExecuteScript(0.2f,scriptname,scriptparams));
+                       }
+                       else
+                               _log.Log(LOG_ERROR,"evohome: Error script not found '%s'",scriptname.c_str());
+@@ -1321,7 +1321,7 @@ bool CEvohome::DecodeZoneName(CEvohomeMsg &msg)
+       }
+       if(memcmp(&msg.payload[2],m_szNameErr,18)==0)
+       {
+-              Log(true,LOG_STATUS,"evohome: %s: Warning zone name not set: %d", tag, msg.payload[0]);
++              Log(true,LOG_STATUS,"evohome: %s: Warning zone name not set: %d", tag, msg.payload[0]+1);
+               m_bStartup[0]=false;
+               return true;
+       }
+@@ -1606,9 +1606,11 @@ bool CEvohome::DecodeBatteryInfo(CEvohomeMsg &msg)
+       RFX_SETID3(msg.GetID(0),tsen.EVOHOME2.id1,tsen.EVOHOME2.id2,tsen.EVOHOME2.id3)
+       tsen.EVOHOME2.updatetype = updBattery;
+       
+-      double dbCharge=0;
+-      if(nBattery!=0xFF)
+-              dbCharge=(double)nBattery/2.0; //Presumed to be the charge level where sent
++      if (nBattery == 0xFF)
++              nBattery = 100; // recode full battery (0xFF) to 100 for consistency across device types
++      else
++              nBattery = nBattery / 2;  // recode battery level values to 0-100 from original 0-200 values
++
+       if(nLowBat==0)
+               nBattery=0;
+       tsen.EVOHOME2.battery_level=nBattery;
+@@ -1657,9 +1659,11 @@ bool CEvohome::DecodeBatteryInfo(CEvohomeMsg &msg)
+               tsen.EVOHOME2.type=pTypeEvohomeWater;
+               tsen.EVOHOME2.subtype=sTypeEvohomeWater;
+               tsen.EVOHOME2.zone=nDevNo;
+-              sDecodeRXMessage(this, (const unsigned char *)&tsen.EVOHOME2, NULL, nBattery);
++              RFX_SETID3(GetControllerID(), tsen.EVOHOME2.id1, tsen.EVOHOME2.id2, tsen.EVOHOME2.id3); 
++              sDecodeRXMessage(this, (const unsigned char *)&tsen.EVOHOME2, "DHW Temp", nBattery);  // Update DHW Zone sensor
+       }
+-      Log(true,LOG_STATUS,"evohome: %s: %s=%d charge=%d (%.1f %%) level=%d (%s)",tag,szType.c_str(),nDevNo,nBattery,dbCharge,nLowBat,(nLowBat==0)?"Low":"OK");
++      
++      Log(true,LOG_STATUS,"evohome: %s: %s=%d charge=%d(%%) level=%d (%s)",tag,szType.c_str(),nDevNo,nBattery,nLowBat,(nLowBat==0)?"Low":"OK");
+       
+       return true;
+ }
diff --git a/utils/domoticz/patches/900_fix-build.patch b/utils/domoticz/patches/900_fix-build.patch
new file mode 100644 (file)
index 0000000..58e3bbb
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -606,8 +606,6 @@ else()
+   target_link_libraries(domoticz -lrt ${Boost_LIBRARIES} ${ZLIB_LIBRARIES} ${CURL_LIBRARIES} pthread ${LUA_LIBRARIES} ${MQTT_LIBRARIES} ${SQLite_LIBRARIES} ${CMAKE_DL_LIBS} ${TELLDUS_LIBRARIES} ${EXECINFO_LIBRARIES})
+ ENDIF()
+-ADD_PRECOMPILED_HEADER(domoticz "main/stdafx.h")
+-
+ IF(CMAKE_COMPILER_IS_GNUCXX)
+   option(USE_STATIC_LIBSTDCXX "Build with static libgcc/libstdc++ libraries" YES)
+   IF(USE_STATIC_LIBSTDCXX)
diff --git a/utils/domoticz/patches/901_no-udev.patch b/utils/domoticz/patches/901_no-udev.patch
new file mode 100644 (file)
index 0000000..7ac6b78
--- /dev/null
@@ -0,0 +1,42 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -534,39 +534,6 @@ IF(OpenZWave)
+   target_link_libraries(domoticz ${OpenZWave})
+   include_directories(${CMAKE_SOURCE_DIR}/hardware/openzwave)
+   add_definitions(-DWITH_OPENZWAVE)
+-  # open-zwave needs libudev
+-  IF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+-    set(IOKIT_LIBRARY "-framework IOKit -framework CoreFoundation" CACHE FILEPATH "IOKit framework" FORCE)
+-    target_link_libraries(domoticz ${IOKIT_LIBRARY})
+-  else()
+-    IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+-      MESSAGE(STATUS "Building on FreeBSD, libudev not needed!")
+-      FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
+-      FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
+-      IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
+-        SET(ICONV_FOUND TRUE)
+-        #target_link_libraries(domoticz ${ICONV_INCLUDE_DIR})
+-        target_link_libraries(domoticz ${ICONV_LIBRARIES} -lrt)
+-        message(STATUS ${ICONV_LIBRARIES})
+-      else()
+-        MESSAGE(FATAL_ERROR "libiconv not found on your system")
+-      ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
+-    else()
+-      find_library(UDEV NAMES libudev.a)
+-      IF(UDEV)
+-        message(STATUS ${UDEV})
+-        target_link_libraries(domoticz ${UDEV} -lrt)
+-      else()
+-        find_library(UDEV NAMES libudev.so)
+-        IF(UDEV)
+-           message(STATUS ${UDEV})
+-           target_link_libraries(domoticz ${UDEV} -lrt)
+-        else()
+-           MESSAGE(FATAL_ERROR "LIB UDEV not found on your system, see install.txt how to get them installed.\nsudo apt-get install libudev-dev")
+-        ENDIF(UDEV)
+-      ENDIF(UDEV)
+-    ENDIF()
+-  ENDIF()
+ else()
+   MESSAGE(STATUS "==== OpenZWave not found, support disabled!")
+ ENDIF(OpenZWave)
diff --git a/utils/domoticz/patches/902_add-scripts-path.patch b/utils/domoticz/patches/902_add-scripts-path.patch
new file mode 100644 (file)
index 0000000..919cfee
--- /dev/null
@@ -0,0 +1,262 @@
+--- a/hardware/OpenZWave.cpp
++++ b/hardware/OpenZWave.cpp
+@@ -993,7 +993,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
+@@ -44,7 +44,7 @@ extern "C" {
+ using namespace boost::python;
+ #endif
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ CEventSystem::CEventSystem(void)
+ {
+@@ -1086,9 +1086,9 @@ void CEventSystem::EvaluateEvent(const s
+       std::stringstream lua_DirT;
+ #ifdef WIN32
+-      lua_DirT << szUserDataFolder << "scripts\\lua\\";
++      lua_DirT << szScriptsFolder << "lua\\";
+ #else
+-      lua_DirT << szUserDataFolder << "scripts/lua/";
++      lua_DirT << szScriptsFolder << "lua/";
+ #endif
+       std::string lua_Dir = lua_DirT.str();
+@@ -1139,9 +1139,9 @@ void CEventSystem::EvaluateEvent(const s
+       {
+               std::stringstream python_DirT;
+ #ifdef WIN32
+-              python_DirT << szUserDataFolder << "scripts\\python\\";
++              python_DirT << szScriptsFolder << "python\\";
+ #else
+-              python_DirT << szUserDataFolder << "scripts/python/";
++              python_DirT << szScriptsFolder << "python/";
+ #endif
+               std::string python_Dir = python_DirT.str();
+@@ -2021,7 +2021,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(1, sPath, sParam));
+@@ -2133,9 +2133,9 @@ void CEventSystem::EvaluatePython(const
+       std::stringstream python_DirT;
+ #ifdef WIN32
+-      python_DirT << szUserDataFolder << "scripts\\python\\";
++      python_DirT << szScriptsFolder << "python\\";
+ #else
+-      python_DirT << szUserDataFolder << "scripts/python/";
++      python_DirT << szScriptsFolder << "python/";
+ #endif
+       std::string python_Dir = python_DirT.str();
+       if(!Py_IsInitialized()) {
+@@ -3909,9 +3909,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_applyXPath(lua_State* lua_state)
+ {
+@@ -319,9 +319,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
+@@ -612,6 +612,7 @@ const char *sqlCreateMobileDevices =
+ "[LastUpdate] DATETIME DEFAULT(datetime('now', 'localtime'))"
+ ");";
++extern std::string szScriptsFolder;
+ extern std::string szUserDataFolder;
+ CSQLHelper::CSQLHelper(void)
+@@ -3408,9 +3409,9 @@ unsigned long long CSQLHelper::UpdateVal
+                               //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()))
+                               {
+@@ -6460,7 +6461,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
+@@ -6492,7 +6493,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
+@@ -55,6 +55,7 @@
+ #define round(a) ( int ) ( a + .5 )
++extern std::string szScriptsFolder;
+ extern std::string szUserDataFolder;
+ extern std::string szWWWFolder;
+@@ -2614,9 +2615,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
+@@ -135,6 +135,7 @@ static const _facilities facilities[] =
+ }; 
+ std::string logfacname = "user";
+ #endif
++std::string szScriptsFolder;
+ std::string szStartupFolder;
+ std::string szUserDataFolder;
+ std::string szWWWFolder;
+@@ -603,6 +604,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
+@@ -139,6 +139,7 @@
+ #define round(a) ( int ) ( a + .5 )
++extern std::string szScriptsFolder;
+ extern std::string szStartupFolder;
+ extern std::string szUserDataFolder;
+ extern std::string szWWWFolder;
+@@ -1394,8 +1395,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)
+ {
+@@ -97,7 +97,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
+@@ -20,7 +20,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;
+@@ -222,11 +222,11 @@ void CGooglePubSubPush::DoGooglePubSubPu
+ #ifdef ENABLE_PYTHON
+ #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
+                               char * argv[1];
diff --git a/utils/domoticz/patches/903_disable-libusb.patch b/utils/domoticz/patches/903_disable-libusb.patch
new file mode 100644 (file)
index 0000000..4e788f8
--- /dev/null
@@ -0,0 +1,39 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -476,20 +476,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
index 51fde5df4aa63e1661cf32e392f1de1743d3bc57..f1f4762826e1029f4afab27c4fe062c96b26948d 100644 (file)
@@ -32,7 +32,7 @@ PKG_CONFIG_DEPENDS := \
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
 
-define Package/$(PKG_NAME)
+define Package/mc
        SECTION:=utils
        CATEGORY:=Utilities
        DEPENDS:=+glib2 +libncurses +libmount +MC_VFS:libssh2 $(LIBRPC_DEPENDS) $(ICONV_DEPENDS)
@@ -41,11 +41,11 @@ define Package/$(PKG_NAME)
        MENU:=1
 endef
 
-define Package/$(PKG_NAME)/config
+define Package/mc/config
        source "$(SOURCE)/Config.in"
 endef
 
-define Package/$(PKG_NAME)/description
+define Package/mc/description
 GNU Midnight Commander is a visual file manager.
 It's a feature rich full-screen text mode application that allows you to copy,
 move and delete files and whole directory trees, search for files and run commands in the subshell.
@@ -100,7 +100,7 @@ CONFIGURE_ARGS += \
        --disable-vfs
 endif
 
-define Package/$(PKG_NAME)/install
+define Package/mc/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mc $(1)/usr/bin
        $(INSTALL_DIR) $(1)/etc/mc
@@ -121,9 +121,9 @@ endif
        $(INSTALL_DIR) $(1)/etc/mc/mcedit/Syntax
 endef
 
-define Package/$(PKG_NAME)/conffiles
+define Package/mc/conffiles
 /etc/mc/mc.menu
 /etc/mc/skins/default.ini
 endef
 
-$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,mc))
diff --git a/utils/openzwave/Makefile b/utils/openzwave/Makefile
new file mode 100644 (file)
index 0000000..d5e13e5
--- /dev/null
@@ -0,0 +1,95 @@
+#
+# Copyright (C) 2017  Hauke Mehrtens <hauke@hauke-m.de>
+# Copyright (C) 2016 - 2017  Stijn Tintel <stijn@linux-ipv6.be>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=openzwave
+PKG_REV:=164
+PKG_VERSION:=1.4.$(PKG_REV)
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://old.openzwave.com/downloads
+PKG_HASH:=4ecf39787aaf278c203764069b581dbc26094ce57cafeab4a0c1f012d2c0ac69
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/openzwave/default
+  URL:=http://openzwave.com
+  MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
+  DEPENDS:=+libpthread +libstdcpp
+endef
+
+define Package/openzwave/description
+       Open-ZWave is a library that interfaces with selected Z-Wave PC controllers
+endef
+
+define Package/libopenzwave
+$(call Package/openzwave/default)
+  SECTION:=Libs
+  CATEGORY:=Libraries
+  TITLE:=Open-ZWave Library
+endef
+
+define Package/openzwave
+$(call Package/openzwave/default)
+  SECTION:=Utils
+  CATEGORY:=Utilities
+  TITLE:=Open-ZWave MinOZW test utility
+  DEPENDS:=+libopenzwave +openzwave-config
+endef
+
+define Package/openzwave-config
+$(call Package/openzwave/default)
+  SECTION:=Utils
+  CATEGORY:=Utilities
+  TITLE:=Open-ZWave Device Configs
+endef
+
+MAKE_FLAGS += \
+       LD="$(TARGET_CROSS)g++" \
+       PREFIX=$(CONFIGURE_PREFIX) \
+       instlibdir=/usr/lib \
+       pkgconfigdir=/usr/lib/pkgconfig \
+       sysconfdir=/etc/openzwave
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       rm $(PKG_BUILD_DIR)/cpp/src/platform/HidController.*
+       sed -i -e '/hidapi/d;/HidController/d' $(PKG_BUILD_DIR)/distfiles.mk
+endef
+
+define Package/libopenzwave/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopenzwave.so* $(1)/usr/lib/
+endef
+
+define Package/openzwave/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/MinOZW $(1)/usr/bin/
+endef
+
+define Package/openzwave-config/install
+       $(INSTALL_DIR) $(1)/etc/
+       $(CP) $(PKG_INSTALL_DIR)/etc/openzwave $(1)/etc/
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/openzwave $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopenzwave.* $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libopenzwave.pc $(1)/usr/lib/pkgconfig/
+endef
+
+$(eval $(call BuildPackage,libopenzwave))
+$(eval $(call BuildPackage,openzwave))
+$(eval $(call BuildPackage,openzwave-config))
diff --git a/utils/openzwave/patches/001-unix-fix-compilation-against-musl-libc-1127.patch b/utils/openzwave/patches/001-unix-fix-compilation-against-musl-libc-1127.patch
new file mode 100644 (file)
index 0000000..3001667
--- /dev/null
@@ -0,0 +1,28 @@
+From eab45f0959ccb1deb662c6f8c036651088e2e8d6 Mon Sep 17 00:00:00 2001
+From: Stijn Tintel <stijn@linux-ipv6.be>
+Date: Fri, 17 Feb 2017 05:42:25 +0100
+Subject: [PATCH] unix: fix compilation against musl libc (#1127)
+
+POSIX.1-2001 requires sys/select.h for select() and friends.
+Compile-tested on glibc and musl, runtime tested on musl.
+
+Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
+---
+ cpp/src/platform/unix/SerialControllerImpl.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/cpp/src/platform/unix/SerialControllerImpl.cpp b/cpp/src/platform/unix/SerialControllerImpl.cpp
+index d95f848..b52b74f 100644
+--- a/cpp/src/platform/unix/SerialControllerImpl.cpp
++++ b/cpp/src/platform/unix/SerialControllerImpl.cpp
+@@ -25,6 +25,7 @@
+ //    along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+ //
+ //-----------------------------------------------------------------------------
++#include <sys/select.h>
+ #include <unistd.h>
+ #include <pthread.h>
+ #include "Defs.h"
+-- 
+2.10.2
+
diff --git a/utils/openzwave/patches/900_fix-build.patch b/utils/openzwave/patches/900_fix-build.patch
new file mode 100644 (file)
index 0000000..1081c98
--- /dev/null
@@ -0,0 +1,29 @@
+--- a/cpp/build/Makefile
++++ b/cpp/build/Makefile
+@@ -15,7 +15,7 @@
+ # what flags we will use for compiling in debug mode
+ DEBUG_CFLAGS    := -Wall -Wno-unknown-pragmas -Wno-inline -Wno-format -Werror -Wno-error=sequence-point -Wno-sequence-point -ggdb -DDEBUG -fPIC  -DSYSCONFDIR="\"$(PREFIX)/etc/openzwave/\""
+ # what flags we will use for compiling in release mode
+-RELEASE_CFLAGS  := -Wall -Wno-unknown-pragmas -Werror -Wno-format -Wno-error=sequence-point -Wno-sequence-point -O3 -DNDEBUG -fPIC  -DSYSCONFDIR="\"$(PREFIX)/etc/openzwave/\""
++RELEASE_CFLAGS  := -Wall -Wno-unknown-pragmas -Wno-error=sequence-point -Wno-sequence-point -DNDEBUG -fPIC  -DSYSCONFDIR="\"/etc/openzwave/\""
+ #what flags we will use for linking in debug mode
+ DEBUG_LDFLAGS := -g
+@@ -139,7 +139,7 @@ $(LIBDIR)/libopenzwave.a:  $(patsubst %.c
+                       $(patsubst %.cpp,$(OBJDIR)/%.o,$(indep)) \
+                       $(OBJDIR)/vers.o
+       @echo "Linking Static Library"
+-      @$(AR) $@ $+
++      @$(AR) q $@ $+
+       @$(RANLIB) $@
+ $(LIBDIR)/$(SHARED_LIB_NAME): $(patsubst %.cpp,$(OBJDIR)/%.o,$(tinyxml)) \
+@@ -161,7 +161,7 @@ $(top_builddir)/libopenzwave.pc: $(top_s
+               -e 's|[@]exec_prefix@|$(PREFIX)/bin|g' \
+               -e 's|[@]libdir@|$(instlibdir)|g' \
+               -e 's|[@]includedir@|$(PREFIX)/include/openzwave/|g' \
+-                -e 's|[@]sysconfdir@|$(PREFIX)/etc/openzwave/|g' \
++                -e 's|[@]sysconfdir@|/etc/openzwave/|g' \
+                 -e 's|[@]gitversion@|$(GITVERSION)|g' \
+                 -e 's|[@]docdir@|$(docdir)/|g' \
+               -e 's|[@]VERSION@|$(VERSION)|g' \
diff --git a/utils/openzwave/patches/901_no-hidcontroller.patch b/utils/openzwave/patches/901_no-hidcontroller.patch
new file mode 100644 (file)
index 0000000..dfacbf0
--- /dev/null
@@ -0,0 +1,89 @@
+--- a/cpp/src/Driver.cpp
++++ b/cpp/src/Driver.cpp
+@@ -37,11 +37,6 @@
+ #include "platform/Event.h"
+ #include "platform/Mutex.h"
+ #include "platform/SerialController.h"
+-#ifdef WINRT
+-#include "platform/winRT/HidControllerWinRT.h"
+-#else
+-#include "platform/HidController.h"
+-#endif
+ #include "platform/Thread.h"
+ #include "platform/Log.h"
+ #include "platform/TimeStamp.h"
+@@ -223,14 +218,7 @@ m_nonceReportSentAttempt( 0 )
+       initNetworkKeys(false);
+-      if( ControllerInterface_Hid == _interface )
+-      {
+-              m_controller = new HidController();
+-      }
+-      else
+-      {
+-              m_controller = new SerialController();
+-      }
++      m_controller = new SerialController();
+       m_controller->SetSignalThreshold( 1 );
+       Options::Get()->GetOptionAsBool( "NotifyTransactions", &m_notifytransactions );
+--- a/cpp/build/Makefile
++++ b/cpp/build/Makefile
+@@ -66,16 +66,7 @@ CFLAGS  += $(CPPFLAGS)
+ #where to put the temporary library
+ LIBDIR        ?= $(top_builddir)
+-INCLUDES      := -I $(top_srcdir)/cpp/src -I $(top_srcdir)/cpp/tinyxml/ -I $(top_srcdir)/cpp/hidapi/hidapi/
+-
+-ifeq ($(UNAME),Darwin)
+-SOURCES_HIDAPI =$(top_srcdir)/cpp/hidapi/mac
+-else ifeq ($(UNAME),FreeBSD)
+-SOURCES_HIDAPI =$(top_srcdir)/cpp/hidapi/libusb
+-else
+-SOURCES_HIDAPI =$(top_srcdir)/cpp/hidapi/linux
+-endif
+-
++INCLUDES      := -I $(top_srcdir)/cpp/src -I $(top_srcdir)/cpp/tinyxml/
+ SOURCES               := $(top_srcdir)/cpp/src $(top_srcdir)/cpp/src/command_classes $(top_srcdir)/cpp/tinyxml \
+       $(top_srcdir)/cpp/src/value_classes $(top_srcdir)/cpp/src/platform $(top_srcdir)/cpp/src/platform/unix $(SOURCES_HIDAPI) $(top_srcdir)/cpp/src/aes/
+@@ -85,14 +76,6 @@ VPATH = $(top_srcdir)/cpp/src:$(top_srcd
+ tinyxml := $(notdir $(wildcard $(top_srcdir)/cpp/tinyxml/*.cpp))
+-ifeq ($(UNAME),Darwin)
+-hidapi := $(notdir $(wildcard $(top_srcdir)/cpp/hidapi/mac/*.c))
+-else ifeq ($(UNAME),FreeBSD)
+-hidapi := $(notdir $(wildcard $(top_srcdir)/cpp/hidapi/libusb/*.c))
+-else
+-hidapi := $(notdir $(wildcard $(top_srcdir)/cpp/hidapi/linux/*.c)) # we do not want the libusb version
+-endif
+-
+ cclasses := $(notdir $(wildcard $(top_srcdir)/cpp/src/command_classes/*.cpp))
+ vclasses := $(notdir $(wildcard $(top_srcdir)/cpp/src/value_classes/*.cpp))
+ pform := $(notdir $(wildcard $(top_srcdir)/cpp/src/platform/*.cpp)) \
+@@ -111,7 +94,6 @@ printversion:
+ -include $(patsubst %.cpp,$(DEPDIR)/%.d,$(tinyxml))
+--include $(patsubst %.c,$(DEPDIR)/%.d,$(hidapi))
+ -include $(patsubst %.cpp,$(DEPDIR)/%.d,$(cclasses))
+ -include $(patsubst %.cpp,$(DEPDIR)/%.d,$(vclasses))
+ -include $(patsubst %.cpp,$(DEPDIR)/%.d,$(pform))
+@@ -131,7 +113,6 @@ $(top_srcdir)/cpp/src/vers.cpp:
+ #$(OBJDIR)/vers.o:    $(top_builddir)/vers.cpp
+ $(LIBDIR)/libopenzwave.a:     $(patsubst %.cpp,$(OBJDIR)/%.o,$(tinyxml)) \
+-                      $(patsubst %.c,$(OBJDIR)/%.o,$(hidapi)) \
+                       $(patsubst %.c,$(OBJDIR)/%.o,$(aes)) \
+                       $(patsubst %.cpp,$(OBJDIR)/%.o,$(cclasses)) \
+                       $(patsubst %.cpp,$(OBJDIR)/%.o,$(vclasses)) \
+@@ -143,7 +124,6 @@ $(LIBDIR)/libopenzwave.a:  $(patsubst %.c
+       @$(RANLIB) $@
+ $(LIBDIR)/$(SHARED_LIB_NAME): $(patsubst %.cpp,$(OBJDIR)/%.o,$(tinyxml)) \
+-                      $(patsubst %.c,$(OBJDIR)/%.o,$(hidapi)) \
+                       $(patsubst %.c,$(OBJDIR)/%.o,$(aes)) \
+                       $(patsubst %.cpp,$(OBJDIR)/%.o,$(cclasses)) \
+                       $(patsubst %.cpp,$(OBJDIR)/%.o,$(vclasses)) \
diff --git a/utils/openzwave/patches/902_no-udev.patch b/utils/openzwave/patches/902_no-udev.patch
new file mode 100644 (file)
index 0000000..c9176d7
--- /dev/null
@@ -0,0 +1,24 @@
+--- a/cpp/src/platform/unix/SerialControllerImpl.cpp
++++ b/cpp/src/platform/unix/SerialControllerImpl.cpp
+@@ -34,10 +34,6 @@
+ #include "SerialControllerImpl.h"
+ #include "platform/Log.h"
+-#ifdef __linux__
+-#include <libudev.h>
+-#endif
+-
+ using namespace OpenZWave;
+ //-----------------------------------------------------------------------------
+--- a/cpp/build/Makefile
++++ b/cpp/build/Makefile
+@@ -59,7 +59,7 @@ endif
+ else
+ LDFLAGS += -shared -Wl,-soname,libopenzwave.so.$(VERSION)
+-LIBS  += -ludev
++LIBS  +=
+ endif
+ CFLAGS  += $(CPPFLAGS)
index e0ac78f4ba8a75b67769cd4f94572d95bc301034..a4d08cd9afbd78ed3620953e316326baee8db1d7 100644 (file)
@@ -34,7 +34,7 @@ include $(INCLUDE_DIR)/package.mk
 # templates
 #
 
-define Package/$(PKG_NAME)/Default
+define Package/owfs/Default
   TITLE:=OWFS (1-Wire File System)
   URL:=http://owfs.sourceforge.net/
   SECTION:=net
@@ -42,7 +42,7 @@ define Package/$(PKG_NAME)/Default
   SUBMENU:=Filesystem
 endef
 
-define Package/$(PKG_NAME)/Default/description
+define Package/owfs/Default/description
   OWFS is a suite of programs that designed to make the 1-wire bus and its
   devices easily accessible. The underlying principle is to create a virtual
   filesystem, with the unique ID being the directory, and the individual
@@ -94,7 +94,7 @@ define Package/libow/config
 endef
 
 define Package/libow/description
-  $(call Package/$(PKG_NAME)/Default/description)
+  $(call Package/owfs/Default/description)
 
   This package contains the OWFS library.
 endef
@@ -106,7 +106,7 @@ define Package/libow-capi
 endef
 
 define Package/libow-capi/description
-  $(call Package/$(PKG_NAME)/Default/description)
+  $(call Package/owfs/Default/description)
 
   This package contains the OWFS C-API library.
 endef
@@ -122,7 +122,7 @@ define Package/owshell
 endef
 
 define Package/owshell/description
-  $(call Package/$(PKG_NAME)/Default/description)
+  $(call Package/owfs/Default/description)
 
   This package contains the OWFS shell utilities.
 endef
@@ -135,7 +135,7 @@ define Package/owfs
 endef
 
 define Package/owfs/description
-  $(call Package/$(PKG_NAME)/Default/description)
+  $(call Package/owfs/Default/description)
 
   This package contains the OWFS fuse filesystem.
 endef
@@ -150,7 +150,7 @@ define Package/owhttpd
 endef
 
 define Package/owhttpd/description
-  $(call Package/$(PKG_NAME)/Default/description)
+  $(call Package/owfs/Default/description)
 
   This package contains the OWFS http server.
 endef
@@ -161,7 +161,7 @@ define Package/owftpd
 endef
 
 define Package/owftpd/description
-  $(call Package/$(PKG_NAME)/Default/description)
+  $(call Package/owfs/Default/description)
 
   This package contains the OWFS ftp server.
 endef
@@ -172,7 +172,7 @@ define Package/owserver
 endef
 
 define Package/owserver/description
-  $(call Package/$(PKG_NAME)/Default/description)
+  $(call Package/owfs/Default/description)
 
   This package contains the OWFS network server.
 endef
index 09e0ef9e7099c100562f5a97990e1471b7c03724..264ae9f0a9cd3cc3dec0befa9325f3c1203179b0 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=screen
-PKG_VERSION:=4.3.1
+PKG_VERSION:=4.5.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=97db2114dd963b016cd4ded34831955dcbe3251e5eee45ac2606e67e9f097b2d
 PKG_SOURCE_URL:=@GNU/screen
-PKG_MD5SUM:=5bb3b0ff2674e29378c31ad3411170ad
 
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=
index cd334f2db737e680e1bd15103e9e694c150df031..c21789ce568a2629054eb653b2623227c6246c9b 100644 (file)
@@ -9,8 +9,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zoneinfo
-PKG_VERSION:=2016j
-PKG_VERSION_CODE:=2016j
+PKG_VERSION:=2017a
+PKG_VERSION_CODE:=2017a
 PKG_RELEASE:=1
 
 #As i couldn't find real license used "Public Domain"
@@ -20,14 +20,14 @@ PKG_LICENSE:=Public Domain
 PKG_SOURCE:=tzdata$(PKG_VERSION).tar.gz
 PKG_SOURCE_CODE:=tzcode$(PKG_VERSION_CODE).tar.gz
 PKG_SOURCE_URL:=http://www.iana.org/time-zones/repository/releases
-PKG_MD5SUM:=db361d005ac8b30a2d18c5ca38d3e8ab
+PKG_MD5SUM:=cb8274cd175f8a4d9d1b89895df876dc
 
 include $(INCLUDE_DIR)/package.mk
 
 define Download/tzcode
    FILE=$(PKG_SOURCE_CODE)
    URL=$(PKG_SOURCE_URL)
-   MD5SUM:=0684b98eb184fab250b6ca946862078d
+   MD5SUM:=eef0bfac7a52dce6989a7d8b40d86fe0
 endef
 
 $(eval $(call Download,tzcode))