Merge pull request #4732 from hashashin/bash-4.4.12
authorHannu Nyman <hannu.nyman@iki.fi>
Mon, 16 Oct 2017 07:06:29 +0000 (10:06 +0300)
committerGitHub <noreply@github.com>
Mon, 16 Oct 2017 07:06:29 +0000 (10:06 +0300)
bash: version bump to 4.4.12

164 files changed:
.travis_do.sh
admin/netdata/Makefile
lang/node-arduino-firmata/Makefile
lang/node-cylon/Makefile
lang/node-hid/Makefile
lang/node-serialport/Makefile
lang/php7/Makefile
lang/python/python-cffi/Makefile
lang/python/python-idna/Makefile
lang/python/python-lxml/Makefile
lang/python/python-pyasn1-modules/Makefile
lang/python/python-pyasn1/Makefile
lang/python/python-pyopenssl/Makefile
lang/python/python-six/Makefile
lang/python/python/Makefile
lang/python/python/files/python-package-install.sh
lang/python/python/files/python-package.mk
lang/python/python/files/python-version.mk
lang/python/python/patches/003-do-not-compile-tests-at-build.patch
lang/python/python3/Makefile
lang/python/python3/files/python3-package-install.sh
lang/python/python3/files/python3-package.mk
lang/ruby/Makefile
lang/ruby/patches/010-configure-2.4.2.patch [new file with mode: 0644]
libs/boost/Makefile
libs/boost/patches/010-boost-1.65.0_after_release_patches.patch [deleted file]
libs/boost/patches/010-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch [new file with mode: 0644]
libs/boost/patches/020-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch [deleted file]
libs/file/Makefile
libs/glib2/Makefile
libs/libcoap/Makefile
libs/libevent/Makefile [deleted file]
libs/libglog/Makefile [new file with mode: 0644]
libs/libndpi/Makefile
libs/libnetconf2/Makefile
libs/libredblack/Makefile [new file with mode: 0644]
libs/libxml2/Makefile
libs/libyang/Makefile
libs/sqlite3/Makefile
mail/dovecot/Makefile
mail/postfix/Makefile
multimedia/ffmpeg/Makefile
multimedia/minidlna/Makefile
multimedia/minidlna/patches/001-group-videos-by-directory-for-panasonic-tvs.patch [deleted file]
net/apache/Config.in [new file with mode: 0644]
net/apache/Makefile
net/chrony/Makefile
net/chrony/patches/001-freebind_uclibc.patch
net/ddns-scripts/Makefile
net/ddns-scripts/files/services
net/ddns-scripts/files/services_ipv6
net/freeradius3/Makefile
net/freeradius3/patches/001-fix-cert-expiry.patch
net/freeradius3/patches/002-disable-session-cache-CVE-2017-9148.patch [new file with mode: 0644]
net/git/Makefile
net/gnunet/Makefile
net/gnurl/Makefile
net/haproxy/Makefile
net/haproxy/patches/0001-BUG-MEDIUM-connection-remove-useless-flag-CO_FL_DATA.patch [new file with mode: 0644]
net/haproxy/patches/0001-BUG-MINOR-peers-peer-synchronization-issue-with-seve.patch [deleted file]
net/haproxy/patches/0002-BUG-MINOR-lua-In-error-case-the-safe-mode-is-not-rem.patch [deleted file]
net/haproxy/patches/0003-BUG-MINOR-lua-executes-the-function-destroying-the-L.patch [deleted file]
net/haproxy/patches/0004-BUG-MAJOR-lua-socket-resources-not-detroyed-when-the.patch [deleted file]
net/haproxy/patches/0005-BUG-MEDIUM-lua-bad-memory-access.patch [deleted file]
net/haproxy/patches/0006-DOC-update-CONTRIBUTING-regarding-optional-parts-and.patch [deleted file]
net/haproxy/patches/0007-DOC-update-the-list-of-OpenSSL-versions-in-the-READM.patch [deleted file]
net/haproxy/patches/0008-MINOR-tools-add-a-portable-timegm-alternative.patch [deleted file]
net/haproxy/patches/0009-BUILD-lua-replace-timegm-with-my_timegm-to-fix-build.patch [deleted file]
net/haproxy/patches/0010-DOC-Updated-51Degrees-git-URL-to-point-to-a-stable-v.patch [deleted file]
net/haproxy/patches/0011-BUG-MINOR-http-Set-the-response-error-state-in-http_.patch [deleted file]
net/haproxy/patches/0012-MINOR-http-Reorder-rewrite-checks-in-http_resync_sta.patch [deleted file]
net/haproxy/patches/0013-MINOR-http-Switch-requests-responses-in-TUNNEL-mode-.patch [deleted file]
net/haproxy/patches/0014-BUG-MEDIUM-http-Switch-HTTP-responses-in-TUNNEL-mode.patch [deleted file]
net/haproxy/patches/0015-BUG-MAJOR-http-Fix-possible-infinity-loop-in-http_sy.patch [deleted file]
net/haproxy/patches/0016-BUG-MINOR-lua-Fix-Server.get_addr-port-values.patch [deleted file]
net/haproxy/patches/0017-BUG-MINOR-lua-Correctly-use-INET6_ADDRSTRLEN-in-Serv.patch [deleted file]
net/haproxy/patches/0018-BUG-MINOR-lua-always-detach-the-tcp-http-tasks-befor.patch [deleted file]
net/horst/Makefile
net/horst/horst.config [new file with mode: 0644]
net/horst/horst.init [new file with mode: 0755]
net/horst/patches/0001-Remove-_GNU_SOURCE-from-ccan-config.patch [deleted file]
net/htpdate/Makefile
net/htpdate/files/htpdate.conf [new file with mode: 0644]
net/htpdate/files/htpdate.default [deleted file]
net/htpdate/files/htpdate.init
net/htpdate/patches/101-daemon-run-in-foreground.patch [new file with mode: 0644]
net/inadyn/Makefile
net/iotivity/Makefile
net/knxd/Makefile
net/knxd/files/knxd.config [new file with mode: 0644]
net/knxd/files/knxd.init
net/l7-protocols/Makefile [deleted file]
net/l7-protocols/patches/100-testing_crosscompile.patch [deleted file]
net/l7-protocols/patches/101-testing-timeit.patch [deleted file]
net/l7-protocols/patches/102-testing-doallspeeds.patch [deleted file]
net/lftp/Makefile
net/memcached/Makefile
net/net-snmp/Makefile
net/net-snmp/files/snmpd.conf
net/net-snmp/files/snmptrapd.init [new file with mode: 0644]
net/netopeer2/Config_server.in [deleted file]
net/netopeer2/Makefile
net/netopeer2/files/netopeer2-server.default
net/netopeer2/patches/002-server-BUGFIX-replace-sr_get_iter-with-sr_get_items [new file with mode: 0644]
net/netopeer2/patches/003-BUGFIX-for-missing-eaccess-in-uClibc [new file with mode: 0644]
net/netopeer2/patches/004-BUGFIX-for-missing-mkstemps-in-uClibc [new file with mode: 0644]
net/noddos/Makefile
net/openssh/Makefile
net/rp-pppoe/Makefile
net/rp-pppoe/files/pppoe-relay.init
net/rp-pppoe/files/pppoe-server.init
net/shadowsocks-libev/Makefile
net/shadowsocks-libev/files/ss-rules
net/shadowsocks-libev/patches/0001-decouple-use_syslog-from-pid_flags.patch [deleted file]
net/shadowsocks-libev/patches/0002-syslog-with-daemon-facility-instead-of-kern-0.patch [deleted file]
net/shorewall-core/Makefile
net/shorewall-lite/Makefile
net/shorewall6-lite/Makefile
net/sngrep/Makefile
net/sysrepo/Makefile
net/sysrepo/patches/001-protobuf-remove-protoc-command-from-cmake-file
net/sysrepo/patches/005-fix-struct-ucred-define [new file with mode: 0644]
net/tor/Makefile
net/unbound/Makefile
net/unbound/files/README.md
net/unbound/files/odhcpd.awk
net/unbound/files/unbound.sh
net/unbound/files/unbound.uci
net/unbound/files/unbound_ext.conf
net/unbound/files/unbound_srv.conf
net/unbound/patches/001-conf.patch
net/wireguard/Makefile
sound/pulseaudio/Makefile
utils/acpica-unix/Makefile
utils/acpid/Makefile
utils/bluez/Makefile
utils/bluez/files/audio.conf [new file with mode: 0644]
utils/bluez/patches/001-bcm43xx-Add-bcm43xx-3wire-variant.patch
utils/bluez/patches/003-Increase-firmware-load-timeout-to-30s.patch
utils/bluez/patches/200-uart-speed.patch [deleted file]
utils/bluez/patches/201-readline.patch
utils/btrfs-progs/Makefile
utils/canutils/Makefile
utils/cryptodev-linux/Makefile
utils/domoticz/Makefile
utils/domoticz/files/domoticz.init
utils/domoticz/patches/902_add-scripts-path.patch [deleted file]
utils/domoticz/patches/902_disable-libusb.patch [new file with mode: 0644]
utils/domoticz/patches/903_disable-libusb.patch [deleted file]
utils/domoticz/patches/903_fhs.patch [new file with mode: 0644]
utils/f2fs-tools/Makefile [deleted file]
utils/f2fs-tools/patches/001-compile.patch [deleted file]
utils/f2fs-tools/patches/010-include-byteswap-h.patch [deleted file]
utils/f2fs-tools/patches/020-sload.f2fs-allow-to-build-without-libselinux.patch [deleted file]
utils/less/Makefile
utils/mbtools/Makefile
utils/mmc-utils/Makefile
utils/nano/Makefile
utils/nano/patches/001-backport-post287-fix-for-tiny-compilation.patch [new file with mode: 0644]
utils/netwhere/Makefile [new file with mode: 0644]
utils/pciutils/Makefile
utils/sysstat/Makefile
utils/yara/Config.in [new file with mode: 0644]
utils/yara/Makefile [new file with mode: 0644]

index b70113113db4a1198cec95c5c0afd2ef8bb06b25..2dd1c1c8d771129f9934a24c22c02aba44fbf1e6 100755 (executable)
@@ -92,9 +92,9 @@ EOF
        # enable BUILD_LOG
        sed -i '1s/^/config BUILD_LOG\n\tbool\n\tdefault y\n\n/' Config-build.in
 
-       ./scripts/feeds update -a
-       ./scripts/feeds install -a
-       make defconfig
+       ./scripts/feeds update -a > /dev/null
+       ./scripts/feeds install -a > /dev/null
+       make defconfig > /dev/null
        echo_blue "=== Setting up SDK done"
 
        RET=0
@@ -124,8 +124,8 @@ EOF
 
                echo_blue "=== $pkg_name: begin compile logs"
                for f in $(find logs/package/feeds/packages/$pkg_name/ -type f); do
-                       echo_blue "Printing $f"
-                       cat "$f"
+                       echo_blue "Printing last 200 lines of $f"
+                       tail -n200 "$f"
                done
                echo_blue "=== $pkg_name: end compile logs"
 
index 1b4bbe42ff2154938e7db6dd969f47b8ea7bdbec..e7b81b510c8447b94cc6a5c60fb3c081c74bb290 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=netdata
-PKG_VERSION:=1.7.0
+PKG_VERSION:=1.8.0
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Daniel Engberg <daniel.engberg.lists@pyret.net>
 PKG_LICENSE:=GPL-3.0
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/firehol/netdata/releases/download/v$(PKG_VERSION)
-PKG_HASH:=7fa23ceaccf6548fba165cd4839ce694784b2fcf7f90de0a0162b9c529805fc0
+PKG_HASH:=1624a3b02f07dc8881b8edd5899049d4d3d53e485424ffb2fb65a322e2ff82c3
 
 PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
@@ -36,6 +36,9 @@ define Package/netdata/description
   monitoring for Linux systems, applications and SNMP devices over the web.
 endef
 
+TARGET_CFLAGS += -ffunction-sections -fdata-sections
+TARGET_LDFLAGS += -Wl,--gc-sections
+
 CONFIGURE_ARGS += --with-zlib --with-math --disable-x86-sse --disable-lto
 
 define Package/netdata/conffiles
@@ -58,8 +61,6 @@ define Package/netdata/install
        mkdir -p $(1)/usr/lib/netdata
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/netdata $(1)/usr/lib
        rm $(1)/usr/lib/netdata/python.d/python-modules-installer.sh
-       rm -rf $(1)/usr/lib/netdata/python.d/python_modules/pyyaml2
-       rm -rf $(1)/usr/lib/netdata/python.d/python_modules/pyyaml3
        chmod 4755 $(1)/usr/lib/netdata/plugins.d/apps.plugin
        mkdir -p $(1)/etc/init.d
        $(INSTALL_BIN) ./files/netdata.init $(1)/etc/init.d/netdata
index a9792f3535610751f6c0b4237d59a09f2977265e..9dea3bc42a9826bedefe272a47b79274e0baea18 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NPM_NAME:=arduino-firmata
 PKG_NAME:=node-$(PKG_NPM_NAME)
 PKG_VERSION:=0.3.3
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/shokai/node-arduino-firmata.git
@@ -20,7 +20,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
 PKG_MIRROR_HASH:=b7a498ccf70e466503e72d38ae5b474e91416b6c9842fd167dff249357b0dc37
 
 PKG_BUILD_DEPENDS:=node/host
-PKG_NODE_VERSION:=4.4.5
+PKG_NODE_VERSION:=6.11.2
 
 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
 PKG_LICENSE:=MIT
@@ -29,13 +29,12 @@ PKG_LICENSE_FILES:=LICENSE.txt
 include $(INCLUDE_DIR)/package.mk
 
 define Package/node-arduino-firmata
-  DEPENDS:=+node +node-npm
   SUBMENU:=Node.js
   SECTION:=lang
   CATEGORY:=Languages
-  DEPENDS:=+node +node-serialport
   TITLE:=Node.js package to access serial ports for reading and writing
   URL:=https://www.npmjs.org/package/serialport
+  DEPENDS:=+node +node-npm +node-serialport
 endef
 
 define Package/node-arduino-firmata/description
index 6fd36f14b1918da8f3fe46f183c91788bad5bc16..240dcfcc9314b173a1ab04224f756537194a361f 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NPM_NAME:=cylon
 PKG_NAME:=node-$(PKG_NPM_NAME)
 PKG_VERSION:=0.22.0
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/hybridgroup/cylon-firmata.git
@@ -20,7 +20,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
 PKG_MIRROR_HASH:=e531d3c92965518c60d52bc497bfa9be563ee68c3cf65c77fa55d5e9c2627367
 
 PKG_BUILD_DEPENDS:=node/host
-PKG_NODE_VERSION:=4.4.5
+PKG_NODE_VERSION:=6.11.2
 
 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
 PKG_LICENSE:=Apache-2.0
@@ -29,12 +29,12 @@ PKG_LICENSE_FILES:=LICENSE
 include $(INCLUDE_DIR)/package.mk
 
 define Package/node-cylon/default
-  DEPENDS:=+node +node-npm $(2)
   SUBMENU:=Node.js
   SECTION:=lang
   CATEGORY:=Languages
   TITLE:=CylonJS - $(1)
   URL:=https://www.npmjs.org/package/cylon
+  DEPENDS:=+node +node-npm $(2)
 endef
 
 define Package/node-cylon
index 8fb163f5e69337b0db170b2b65e0a37ca1016d08..38b9878b4d2475a844ebd531a850e81196af01f6 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NPM_NAME:=hid
 PKG_NAME:=node-$(PKG_NPM_NAME)
 PKG_VERSION:=0.5.1
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/node-hid/node-hid.git
@@ -20,7 +20,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 PKG_MIRROR_HASH:=125f752d491ac10d32bab0f0d660f6f150c6a9a168b2b56bfddc2cb1d65166fc
 
 PKG_BUILD_DEPENDS:=node/host
-PKG_NODE_VERSION:=4.4.5
+PKG_NODE_VERSION:=6.11.2
 
 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
 PKG_LICENSE:=Custom
@@ -29,13 +29,12 @@ PKG_LICENSE_FILES:=
 include $(INCLUDE_DIR)/package.mk
 
 define Package/node-hid
-  DEPENDS:=+node +node-npm
   SUBMENU:=Node.js
   SECTION:=lang
   CATEGORY:=Languages
-  DEPENDS:=+libusb-1.0 +hidapi +libstdcpp
   TITLE:=Node.js package to access HID devices
   URL:=https://github.com/node-hid/node-hid
+  DEPENDS:=+node +node-npm +libusb-1.0 +hidapi +libstdcpp
 endef
 
 define Package/node-hid/description
index 2991fc49e54470c8f11b25c334631ca6c65d97cc..1b5f1b88d83c4a707aac3c4d5e076b4e01032ab4 100644 (file)
@@ -10,14 +10,14 @@ include $(TOPDIR)/rules.mk
 PKG_NPM_NAME:=serialport
 PKG_NAME:=node-$(PKG_NPM_NAME)
 PKG_VERSION:=3.0.0
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=http://registry.npmjs.org/$(PKG_NPM_NAME)/-/
 PKG_HASH:=3bc75b4c2742f0efe8495feb28c5da1a4774df75d94836e43409ed352addfec7
 
 PKG_BUILD_DEPENDS:=node/host
-PKG_NODE_VERSION:=4.4.5
+PKG_NODE_VERSION:=6.11.2
 
 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
 PKG_LICENSE:=Custom
@@ -26,12 +26,12 @@ PKG_LICENSE_FILES:=LICENSE
 include $(INCLUDE_DIR)/package.mk
 
 define Package/node-serialport
-  DEPENDS:=+node +node-npm
   SUBMENU:=Node.js
   SECTION:=lang
   CATEGORY:=Languages
   TITLE:=Node.js package to access serial ports for reading and writing
   URL:=https://www.npmjs.org/package/serialport
+  DEPENDS:=+node +node-npm
 endef
 
 define Package/node-serialport/description
index c8f38db9b9fc207bd288ed1dd05aeaef76f9eabc..d9965f1525c24a4f8002bbe2afa322bdf78511b3 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=7.1.9
+PKG_VERSION:=7.1.10
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_HASH:=ec9ca348dd51f19a84dc5d33acfff1fba1f977300604bdac08ed46ae2c281e8c
+PKG_HASH:=2b8efa771a2ead0bb3ae67b530ca505b5b286adc873cca9ce97a6e1d6815c50b
 
 PKG_FIXUP:=libtool autoreconf
 PKG_BUILD_PARALLEL:=1
@@ -133,7 +133,7 @@ endef
 
 define Package/php7-fpm
   $(call Package/php7/Default)
-  DEPENDS+= +php7-cgi
+  DEPENDS+= +PACKAGE_php7-mod-intl:libstdcpp
   TITLE+= (FPM)
 endef
 
index bbad08117eeef65e09335cfac33c573002e6acf5..7e1b2fdabaeb42709c951eef8de8a27fce1f1fd5 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-cffi
-PKG_VERSION:=1.10.0
+PKG_VERSION:=1.11.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=cffi-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/5b/b9/790f8eafcdab455bcd3bd908161f802c9ce5adbf702a83aa7712fcc345b7
-PKG_HASH:=b3b02911eb1f6ada203b0763ba924234629b51586f72a21faacc638269f4ced5
+PKG_SOURCE_URL:=https://pypi.python.org/packages/4e/32/4070bdf32812c89eb635c80880a5caa2e0189aa7999994c265577e5154f3
+PKG_HASH:=5f4ff33371c6969b39b293d9771ee91e81d26f9129be093ca1b7be357fcefd15
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-cffi-$(PKG_VERSION)
 
index e3413a2524fa869b2171d7a4cdcce1285b0f26d1..c2d324282b9974ebae8bb1f806e2d108e6a62543 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-idna
-PKG_VERSION:=2.5
+PKG_VERSION:=2.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=idna-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/d8/82/28a51052215014efc07feac7330ed758702fc0581347098a81699b5281cb
-PKG_HASH:=3cb5ce08046c4e3a560fc02f138d0ac63e00f8ce5901a56b32ec8b7994082aab
+PKG_SOURCE_URL:=https://pypi.python.org/packages/f4/bd/0467d62790828c23c47fc1dfa1b1f052b24efdf5290f071c7a91d0d82fd3
+PKG_HASH:=2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.rst
index 798cf279f8cdb7b831dff99e0f363c5a7f90ce8f..65d43599ab82cefa6b192ee3fdb6be3b4207f1c8 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-lxml
-PKG_VERSION:=3.7.2
+PKG_VERSION:=4.0.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=lxml-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=http://lxml.de/files/
-PKG_HASH:=59d9176360dbc3919e9d4bfca85c1ca64ab4f4ee00e6f119d7150ba887e3410a
+PKG_HASH:=f7bc9f702500e205b1560d620f14015fec76dcd6f9e889a946a2ddcc3c344fd0
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-lxml-$(PKG_VERSION)
 PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
index e51a7cfdb61874a96fa371e0a016d782a5b44660..68713e8777567d2f5a67524a97d61fec41843dad 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyasn1-modules
-PKG_VERSION:=0.0.11
+PKG_VERSION:=0.1.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=pyasn1-modules-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/de/5f/0c6a1a096bfc2831ee8e2e951f79e6ec23c853c17ab5ba655322bfcde20a
-PKG_HASH:=60d5c80bfee9b79b492d5d8a934b3ecfc523f2f83aaab4ffafa2bbb651d3c67a
+PKG_SOURCE_URL:=https://pypi.python.org/packages/66/6b/f5582cbf3b920896ce1b97bde3894599b3dec31301ef79ae7ea0022f5577
+PKG_HASH:=b07c17bdb34d6f64aafea6269f2e8fb306a57473f0f38d9a6ca389d6ab30ac4a
 
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
index 1e2705a412364f6b043230d5e3ed7caf55f5ae5e..eb9ac790328710e65ecc58aa4828141d94b731a5 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyasn1
-PKG_VERSION:=0.3.2
+PKG_VERSION:=0.3.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=pyasn1-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/17/a2/266818077dbd002d53ebe5aaaa05a04786256cea8dba1899ac0b832ef028
-PKG_HASH:=90bd82e0db59d4319eaf01c2549b34c817d645275fce9ad41bac7429aa380690
+PKG_SOURCE_URL:=https://pypi.python.org/packages/bc/85/029f5f4d4fa8a487538ce597932cf3601bba3392c85d74eae148fe6ac5d3
+PKG_HASH:=c7a1186416bcdaf19b56f5b2506200306d7d4cf222d3d7c2d4cb600ccacdaf1b
 
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
index c16bc57dc3c6e687c904da5938ca3708b018cdec..dafc93cd304e59b29aa029642e02fb94e28d4936 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pyOpenSSL
-PKG_VERSION:=17.2.0
+PKG_VERSION:=17.3.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/b0/9e/7088f6165c40c46416aff434eb806c1d64ad6ec6dbc201f5ad4d0484704e
-PKG_HASH:=5d617ce36b07c51f330aa63b83bf7f25c40a0e95958876d54d1982f8c91b4834
+PKG_SOURCE_URL:=https://pypi.python.org/packages/ee/6a/cd78737dd990297205943cc4dcad3d3c502807fd2c5b18c5f33dc90ca214
+PKG_HASH:=29630b9064a82e04d8242ea01d7c93d70ec320f5e3ed48e95fcabc6b1d0f6c76
 
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
index a68792ab6609c8410f1721e8a731f79cd1489b2f..ff91bde1178266edaac9b24cb2035e859cf4cd8c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-six
-PKG_VERSION:=1.10.0
-PKG_RELEASE:=4
+PKG_VERSION:=1.11.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=six-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/s/six
-PKG_HASH:=105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a
+PKG_SOURCE_URL:=https://pypi.python.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe
+PKG_HASH:=70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9
 
 HOST_BUILD_DEPENDS:=python/host
 
index 9b8f0c27a77d50db402590830b02d39cc4108199..03cda5ce984c0343a5d03aa73d668d3073ac372a 100644 (file)
@@ -12,11 +12,13 @@ include ./files/python-version.mk
 
 PKG_NAME:=python
 PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
-PKG_RELEASE:=7
+# XXX: reset PKG_RELEASE to 1 only if Python's pip & setuptools versions have also bumped;
+#      otherwise, keep bumping PKG_RELEASE
+PKG_RELEASE:=2
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION)
-PKG_HASH:=35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731
+PKG_HASH:=71ffb26e09e78650e424929b2b457b9c912ac216576e6bd9e7d204ed03296a66
 
 PKG_LICENSE:=PSF
 PKG_LICENSE_FILES:=LICENSE Modules/_ctypes/libffi_msvc/LICENSE Modules/_ctypes/darwin/LICENSE Modules/_ctypes/libffi/LICENSE Modules/_ctypes/libffi_osx/LICENSE Tools/pybench/LICENSE
@@ -296,6 +298,10 @@ HOST_CONFIGURE_ARGS+= \
        --with-ensurepip=install \
        CONFIG_SITE=
 
+define Host/Compile
+       $(call Host/Compile/Default,python Parser/pgen sharedmods)
+endef
+
 define Host/Install
        $(call Build/InstallMkFiles)
        $(MAKE) -C $(HOST_BUILD_DIR) install
index 94becf2c976927e044677d096e67e1d9b5cb8020..cefbce376a857aedaef5bc464ef99d6c941c3efb 100644 (file)
@@ -47,7 +47,8 @@ process_filespec "$src_dir" "$dst_dir" "$filespec" || {
 }
 
 # delete egg-info directories
-find "$dst_dir" -name "*.egg-info" | xargs rm -rf
+[ "$PYTHON_KEEP_EGGINFO" == "1" ] || \
+       find "$dst_dir" -name "*.egg-info" | xargs rm -rf
 
 if [ "$mode" == "sources" ] ; then
        # Copy only python source files
index 9c231f6ecfa0f8c8edc74ab3baa40fd85e4b634f..7e3cb2ce83698c3f786abaaddd6268ba7dccaf24 100644 (file)
@@ -32,6 +32,8 @@ ifdef CONFIG_USE_MIPS16
   TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16
 endif
 
+PYTHON_KEEP_EGGINFO ?= 0
+
 define PyPackage
 
   define Package/$(1)-src
@@ -68,11 +70,13 @@ define PyPackage
        $(call PyPackage/$(1)/install,$$(1))
        find $(PKG_INSTALL_DIR) -name "*\.exe" | xargs rm -f
        if [ -e files/python-package-install.sh ] ; then \
+               PYTHON_KEEP_EGGINFO="$(PYTHON_KEEP_EGGINFO)" \
                $(SHELL) files/python-package-install.sh \
                        "$(PKG_INSTALL_DIR)" "$$(1)" \
                        "$(HOST_PYTHON_BIN)" "$$(2)" \
                        "$$$$$$$$$$(call shvar,PyPackage/$(1)/filespec)" ; \
        elif [ -e $(STAGING_DIR)/mk/python-package-install.sh ] ; then \
+               PYTHON_KEEP_EGGINFO="$(PYTHON_KEEP_EGGINFO)" \
                $(SHELL) $(STAGING_DIR)/mk/python-package-install.sh \
                        "$(PKG_INSTALL_DIR)" "$$(1)" \
                        "$(HOST_PYTHON_BIN)" "$$(2)" \
index b31a1d5a873bb6fbd5b169fac1c5da866f361fa4..200461d4fa2f51c7c3d358efd84debc1450ccdf5 100644 (file)
@@ -6,7 +6,7 @@
 #
 
 PYTHON_VERSION:=2.7
-PYTHON_VERSION_MICRO:=13
+PYTHON_VERSION_MICRO:=14
 
 PYTHON_SETUPTOOLS_VERSION:=28.8.0
 PYTHON_PIP_VERSION:=9.0.1
index 6543bba796fd96c3bd2fec62aafe3e7afa4caf57..5bd07b122a0522a43514a0bf17ee0dfa59740957 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -1116,6 +1116,7 @@ libinstall:      build_all $(srcdir)/Lib/$(PL
+@@ -1110,6 +1110,7 @@ libinstall:      build_all $(srcdir)/Lib/$(PL
                done; \
        done
        $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
@@ -8,7 +8,7 @@
        if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
                $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
                        $(DESTDIR)$(LIBDEST)/distutils/tests ; \
-@@ -1142,6 +1143,7 @@ libinstall:      build_all $(srcdir)/Lib/$(PL
+@@ -1136,6 +1137,7 @@ libinstall:      build_all $(srcdir)/Lib/$(PL
                $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
        -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
                $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
index 7fdcb92fa7023d64663bf87f65caf4eb49a4802e..4b5311ecce048c31f91fdf0784f21922c18c7965 100644 (file)
@@ -16,7 +16,7 @@ PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
 PKG_NAME:=python3
 # XXX: reset PKG_RELEASE to 1 only if Python's pip & setuptools versions have also bumped;
 #      otherwise, keep bumping PKG_RELEASE
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
index dd1e708fc5e35e9dd4d6e6465bec81632789fffb..0b68dd245c71696799c05692f9a7e2f6e7764c18 100644 (file)
@@ -47,7 +47,8 @@ process_filespec "$src_dir" "$dst_dir" "$filespec" || {
 }
 
 # delete egg-info directories
-find "$dst_dir" -name "*.egg-info" | xargs rm -rf
+[ "$PYTHON3_KEEP_EGGINFO" == "1" ] || \
+       find "$dst_dir" -name "*.egg-info" | xargs rm -rf
 
 if [ "$mode" == "sources" ] ; then
        # Copy only python source files
index 93b14fac23b25ade106bf2ea55ec1a2b0d362278..1d42b6dc3478a3cd5d92d81088f8ffcfae213089 100644 (file)
@@ -32,6 +32,8 @@ ifdef CONFIG_USE_MIPS16
   TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16
 endif
 
+PYTHON3_KEEP_EGGINFO ?= 0
+
 define Py3Package
 
   define Package/$(1)-src
@@ -68,11 +70,13 @@ define Py3Package
        $(call Py3Package/$(1)/install,$$(1))
        find $(PKG_INSTALL_DIR) -name "*\.exe" | xargs rm -f
        if [ -e files/python3-package-install.sh ] ; then \
+               PYTHON3_KEEP_EGGINFO="$(PYTHON3_KEEP_EGGINFO)" \
                $(SHELL) files/python3-package-install.sh \
                        "$(PKG_INSTALL_DIR)" "$$(1)" \
                        "$(HOST_PYTHON3_BIN)" "$$(2)" \
                        "$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" ; \
        elif [ -e $(STAGING_DIR)/mk/python3-package-install.sh ] ; then \
+               PYTHON3_KEEP_EGGINFO="$(PYTHON3_KEEP_EGGINFO)" \
                $(SHELL) $(STAGING_DIR)/mk/python3-package-install.sh \
                        "$(PKG_INSTALL_DIR)" "$$(1)" \
                        "$(HOST_PYTHON3_BIN)" "$$(2)" \
index adca82f64d22d2a63606e305d24cec71a3ec4d92..471127d6ca1a2d20be6071ab4a50436d90f1abeb 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ruby
-PKG_VERSION:=2.4.1
+PKG_VERSION:=2.4.2
 PKG_RELEASE:=1
 
 # First two numbes
 PKG_ABI_VERSION:=$(subst $(space),.,$(wordlist 1, 2, $(subst .,$(space),$(PKG_VERSION))))
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://cache.ruby-lang.org/pub/ruby/$(PKG_ABI_VERSION)/
-PKG_HASH:=4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654
+PKG_SOURCE_URL:=https://cache.ruby-lang.org/pub/ruby/$(PKG_ABI_VERSION)/
+PKG_HASH:=748a8980d30141bd1a4124e11745bb105b436fb1890826e0d2b9ea31af27f735
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=COPYING
diff --git a/lang/ruby/patches/010-configure-2.4.2.patch b/lang/ruby/patches/010-configure-2.4.2.patch
new file mode 100644 (file)
index 0000000..fddd810
--- /dev/null
@@ -0,0 +1,40 @@
+diff -pU3 a/configure b/configure
+--- a/configure        2017-09-14 21:52:19.000000000 +0900
++++ b/configure        2017-09-15 07:03:12.000000000 +0900
+@@ -10614,6 +10614,7 @@ fi
+ ac_res=$ac_cv_search___gmpz_init
+ if test "$ac_res" != no; then :
+   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
++  $as_echo "#define HAVE_LIBGMP 1" >>confdefs.h
+ fi
+@@ -10683,6 +10684,7 @@ fi
+ ac_res=$ac_cv_search_malloc_conf
+ if test "$ac_res" != no; then :
+   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
++  $as_echo "#define HAVE_LIBJEMALLOC 1" >>confdefs.h
+ else
+   with_jemalloc=no
+diff -pU3 a/configure.in b/configure.in
+--- a/configure.in     2017-08-04 23:39:29.000000000 +0900
++++ b/configure.in     2017-09-15 07:20:40.000000000 +0900
+@@ -1403,13 +1403,15 @@ AC_ARG_WITH([gmp],
+ AS_IF([test "x$with_gmp" != xno],
+   [AC_CHECK_HEADERS(gmp.h)
+    AS_IF([test "x$ac_cv_header_gmp_h" != xno],
+-     AC_SEARCH_LIBS([__gmpz_init], [gmp]))])
++     AC_SEARCH_LIBS([__gmpz_init], [gmp],
++       [AC_DEFINE(HAVE_LIBGMP, 1)]))])
+ AC_ARG_WITH([jemalloc],
+   [AS_HELP_STRING([--with-jemalloc],[use jemalloc allocator])],
+   [with_jemalloc=$withval], [with_jemalloc=no])
+ AS_IF([test "x$with_jemalloc" = xyes],[
+-  AC_SEARCH_LIBS([malloc_conf], [jemalloc], [], [with_jemalloc=no])
++  AC_SEARCH_LIBS([malloc_conf], [jemalloc],
++    [AC_DEFINE(HAVE_LIBJEMALLOC, 1)], [with_jemalloc=no])
+   AC_CHECK_HEADER(jemalloc/jemalloc.h, [
+     AC_DEFINE(RUBY_ALTERNATIVE_MALLOC_HEADER, [<jemalloc/jemalloc.h>])
+   ])
index ddc3160c7dec121a9fea0f55b2c41e704b68ac6a..b449dee45b7969a6b19186ad4d21c2f2f70953e8 100644 (file)
@@ -16,15 +16,15 @@ include $(INCLUDE_DIR)/nls.mk
 include $(INCLUDE_DIR)/target.mk 
 
 PKG_NAME:=boost
-PKG_VERSION:=1.65.0
-PKG_SOURCE_VERSION:=1_65_0
+PKG_VERSION:=1.65.1
+PKG_SOURCE_VERSION:=1_65_1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceforge.net/projects/boost/files/boost/$(PKG_VERSION)
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)_$(PKG_SOURCE_VERSION)
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)_$(PKG_SOURCE_VERSION)
-PKG_HASH:=ea26712742e2fb079c2a566a31f3266973b76e38222b9f88b387e3c8b2f9902c
+PKG_HASH:=9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81
 PKG_LICENSE:=Boost Software License <http://www.boost.org/users/license.html>
 PKG_MAINTAINER:=Carlos M. Ferreira <carlosmf.pt@gmail.com>
 
@@ -44,7 +44,7 @@ define Package/boost/Default
 endef
 
 define Package/boost/description
-This package provides the Boost v1.65 libraries.
+This package provides the Boost v1.65.1 libraries.
 Boost is a set of free, peer-reviewed, portable C++ source libraries.
 
 -----------------------------------------------------------------------------
@@ -90,7 +90,7 @@ This package provides the following run-time libraries:
  - wave
 
 There are many more header-only libraries supported by Boost.
-See more at http://www.boost.org/doc/libs/1_65_0/
+See more at http://www.boost.org/doc/libs/1_65_1/
 endef
 
 PKG_BUILD_DEPENDS:=boost/host PACKAGE_python:python PACKAGE_python3:python3
diff --git a/libs/boost/patches/010-boost-1.65.0_after_release_patches.patch b/libs/boost/patches/010-boost-1.65.0_after_release_patches.patch
deleted file mode 100644 (file)
index 761008f..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-Index: boost_1_65_0/boost/context/continuation_fcontext.hpp
-===================================================================
---- boost_1_65_0.orig/boost/context/continuation_fcontext.hpp
-+++ boost_1_65_0/boost/context/continuation_fcontext.hpp
-@@ -95,7 +95,7 @@ transfer_t context_ontop( transfer_t t)
-     t.data = nullptr;
-     Ctx c{ t.fctx };
-     // execute function, pass continuation via reference
--    fn( std::move( c) );
-+    c = fn( std::move( c) );
- #if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-     return { exchange( c.fctx_, nullptr), nullptr };
- #else
-Index: boost_1_65_0/boost/context/continuation_ucontext.hpp
-===================================================================
---- boost_1_65_0.orig/boost/context/continuation_ucontext.hpp
-+++ boost_1_65_0/boost/context/continuation_ucontext.hpp
-@@ -84,18 +84,18 @@ static void entry_func( void * data) noe
- struct BOOST_CONTEXT_DECL activation_record {
-     thread_local static activation_record   *   current_rec;
--    ucontext_t                                  uctx{};
--    stack_context                               sctx{};
--    bool                                        main_ctx{ true };
--      activation_record                       *       from{ nullptr };
--    std::function< void(activation_record*&) >  ontop{};
--    bool                                        terminated{ false };
--    bool                                        force_unwind{ false };
-+    ucontext_t                                                  uctx{};
-+    stack_context                                               sctx{};
-+    bool                                                        main_ctx{ true };
-+      activation_record                                       *       from{ nullptr };
-+    std::function< activation_record*(activation_record*&) >    ontop{};
-+    bool                                                        terminated{ false };
-+    bool                                                        force_unwind{ false };
- #if defined(BOOST_USE_ASAN)
--    void                                    *   fake_stack{ nullptr };
--    void                                    *   stack_bottom{ nullptr };
--    std::size_t                                 stack_size{ 0 };
--    bool                                        started{ false };
-+    void                                                    *   fake_stack{ nullptr };
-+    void                                                    *   stack_bottom{ nullptr };
-+    std::size_t                                                 stack_size{ 0 };
-+    bool                                                        started{ false };
- #endif
-     static activation_record *& current() noexcept;
-@@ -168,20 +168,30 @@ struct BOOST_CONTEXT_DECL activation_rec
-         current()->ontop = std::bind(
-                 [](typename std::decay< Fn >::type & fn, activation_record *& ptr){
-                     Ctx c{ ptr };
--                    fn( std::move( c) );
-+                    c = fn( std::move( c) );
-                     if ( ! c) {
-                         ptr = nullptr;
-                     }
-+#if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-+                    return exchange( c.ptr_, nullptr);
-+#else
-+                    return std::exchange( c.ptr_, nullptr);
-+#endif
-                 },
-                 std::forward< Fn >( fn),
-                 std::placeholders::_1);
- #else
-         current()->ontop = [fn=std::forward<Fn>(fn)](activation_record *& ptr){
-             Ctx c{ ptr };
--            fn( std::move( c) );
-+            c = fn( std::move( c) );
-             if ( ! c) {
-                 ptr = nullptr;
-             }
-+#if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-+            return exchange( c.ptr_, nullptr);
-+#else
-+            return std::exchange( c.ptr_, nullptr);
-+#endif
-         };
- #endif
- #if defined(BOOST_USE_SEGMENTED_STACKS)
-@@ -408,7 +418,7 @@ public:
-         if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) {
-             throw detail::forced_unwind{ ptr};
-         } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) {
--            detail::activation_record::current()->ontop( ptr);
-+            ptr = detail::activation_record::current()->ontop( ptr);
-             detail::activation_record::current()->ontop = nullptr;
-         }
-         return continuation{ ptr };
-@@ -426,7 +436,7 @@ public:
-         if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) {
-             throw detail::forced_unwind{ ptr};
-         } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) {
--            detail::activation_record::current()->ontop( ptr);
-+            ptr = detail::activation_record::current()->ontop( ptr);
-             detail::activation_record::current()->ontop = nullptr;
-         }
-         return continuation{ ptr };
-Index: boost_1_65_0/boost/context/continuation_winfib.hpp
-===================================================================
---- boost_1_65_0.orig/boost/context/continuation_winfib.hpp
-+++ boost_1_65_0/boost/context/continuation_winfib.hpp
-@@ -65,13 +65,13 @@ static VOID WINAPI entry_func( LPVOID da
- struct BOOST_CONTEXT_DECL activation_record {
-     thread_local static activation_record   *   current_rec;
--    LPVOID                                      fiber{ nullptr };
--    stack_context                               sctx{};
--    bool                                        main_ctx{ true };
--    activation_record                       *   from{ nullptr };
--    std::function< void(activation_record*&) >  ontop{};
--    bool                                        terminated{ false };
--    bool                                        force_unwind{ false };
-+    LPVOID                                                      fiber{ nullptr };
-+    stack_context                                               sctx{};
-+    bool                                                        main_ctx{ true };
-+    activation_record                                       *   from{ nullptr };
-+    std::function< activation_record*(activation_record*&) >    ontop{};
-+    bool                                                        terminated{ false };
-+    bool                                                        force_unwind{ false };
-     static activation_record *& current() noexcept;
-@@ -142,20 +142,30 @@ struct BOOST_CONTEXT_DECL activation_rec
-         current()->ontop = std::bind(
-                 [](typename std::decay< Fn >::type & fn, activation_record *& ptr){
-                     Ctx c{ ptr };
--                    fn( std::move( c) );
-+                    c = fn( std::move( c) );
-                     if ( ! c) {
-                         ptr = nullptr;
-                     }
-+#if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-+                    return exchange( c.ptr_, nullptr);
-+#else
-+                    return std::exchange( c.ptr_, nullptr);
-+#endif
-                 },
-                 std::forward< Fn >( fn),
-                 std::placeholders::_1);
- #else
-         current()->ontop = [fn=std::forward<Fn>(fn)](activation_record *& ptr){
-             Ctx c{ ptr };
--            fn( std::move( c) );
-+            c = fn( std::move( c) );
-             if ( ! c) {
-                 ptr = nullptr;
-             }
-+#if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-+            return exchange( c.ptr_, nullptr);
-+#else
-+            return std::exchange( c.ptr_, nullptr);
-+#endif
-         };
- #endif
-         // context switch
-@@ -336,7 +346,7 @@ public:
-         if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) {
-             throw detail::forced_unwind{ ptr};
-         } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) {
--            detail::activation_record::current()->ontop( ptr);
-+            ptr = detail::activation_record::current()->ontop( ptr);
-             detail::activation_record::current()->ontop = nullptr;
-         }
-         return continuation{ ptr };
-@@ -354,7 +364,7 @@ public:
-         if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) {
-             throw detail::forced_unwind{ ptr};
-         } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) {
--            detail::activation_record::current()->ontop( ptr);
-+            ptr = detail::activation_record::current()->ontop( ptr);
-             detail::activation_record::current()->ontop = nullptr;
-         }
-         return continuation{ ptr };
-Index: boost_1_65_0/boost/thread/win32/condition_variable.hpp
-===================================================================
---- boost_1_65_0.orig/boost/thread/win32/condition_variable.hpp
-+++ boost_1_65_0/boost/thread/win32/condition_variable.hpp
-@@ -211,7 +211,7 @@ namespace boost
-                 {}
- #endif
--                void remove_waiter()
-+                void remove_waiter_and_reset()
-                 {
-                   if (entry) {
-                     boost::lock_guard<boost::mutex> internal_lock(internal_mutex);
-@@ -221,7 +221,7 @@ namespace boost
-                 }
-                 ~entry_manager() BOOST_NOEXCEPT_IF(false)
-                 {
--                    remove_waiter();
-+                  remove_waiter_and_reset();
-                 }
-                 list_entry* operator->()
-@@ -250,7 +250,7 @@ namespace boost
-                   woken=entry->woken();
-               }
-               // do it here to avoid throwing on the destructor
--              entry->remove_waiter();
-+              entry.remove_waiter_and_reset();
-               locker.lock();
-               return woken;
-             }
-Index: boost_1_65_0/libs/context/doc/callcc.qbk
-===================================================================
---- boost_1_65_0.orig/libs/context/doc/callcc.qbk
-+++ boost_1_65_0/libs/context/doc/callcc.qbk
-@@ -176,6 +176,7 @@ return `void`.
-     c=c.resume_with([&data](ctx::continuation && c){
-                         std::cout << "f2: entered: " << data << std::endl;
-                         data=-1;
-+                        return std::move( c);
-                     });
-     std::cout << "f1: returned third time" << std::endl;
-@@ -221,6 +222,7 @@ an exception.
-     c = c.resume_with(
-            [](ctx::continuation && c){
-                throw my_exception(std::move(c),"abc");
-+               return std::move( c);
-            });
-     output:
-@@ -527,11 +529,11 @@ e.g. ['continuation::operator bool()] re
- [variablelist
- [[Effects:] [Captures current continuation and resumes `*this`.
--The function `resume_with`, is used to execute function `fn` in continuation
-+The function `resume_with`, is used to execute function `fn` in the execution context of
- `*this` (e.g. the stack frame of `fn` is allocated on stack of `*this`).]]
- [[Returns:] [The continuation representing the continuation that has been
- suspended.]]
--[[Note:] [Function `fn` needs to return void.]]
-+[[Note:] [Function `fn` needs to return `continuation`.]]
- [[Note:] [The returned continuation indicates if the suspended continuation has
- terminated (return from context-function) via `bool operator()`.]]
- ]
-Index: boost_1_65_0/libs/context/example/ontop.cpp
-===================================================================
---- boost_1_65_0.orig/libs/context/example/ontop.cpp
-+++ boost_1_65_0/libs/context/example/ontop.cpp
-@@ -32,6 +32,7 @@ int main() {
-     c = c.resume_with( [&data](ctx::continuation && c){
-                             std::cout << "f2: entered: " << data << std::endl;
-                             data = -1;
-+                            return std::move( c);
-                         });
-     std::cout << "f1: returned third time" << std::endl;
-     std::cout << "main: done" << std::endl;
-Index: boost_1_65_0/libs/context/example/ontop_void.cpp
-===================================================================
---- boost_1_65_0.orig/libs/context/example/ontop_void.cpp
-+++ boost_1_65_0/libs/context/example/ontop_void.cpp
-@@ -21,8 +21,9 @@ ctx::continuation f1( ctx::continuation
-     return std::move( c);
- }
--void f2( ctx::continuation && c) {
-+ctx::continuation f2( ctx::continuation && c) {
-     std::cout << "f2: entered" << std::endl;
-+    return std::move( c);
- }
- int main() {
-Index: boost_1_65_0/libs/context/example/throw.cpp
-===================================================================
---- boost_1_65_0.orig/libs/context/example/throw.cpp
-+++ boost_1_65_0/libs/context/example/throw.cpp
-@@ -38,6 +38,7 @@ int main() {
-     c = c.resume_with(
-            [](ctx::continuation && c){
-                throw my_exception(std::move( c), "abc");
-+               return std::move( c);
-            });
-     std::cout << "main: done" << std::endl;
-Index: boost_1_65_0/libs/context/test/test_callcc.cpp
-===================================================================
---- boost_1_65_0.orig/libs/context/test/test_callcc.cpp
-+++ boost_1_65_0/libs/context/test/test_callcc.cpp
-@@ -252,6 +252,7 @@ void test_ontop() {
-         c = c.resume_with(
-                [&i](ctx::continuation && c){
-                    i -= 10;
-+                   return std::move( c);
-                });
-         BOOST_CHECK( c);
-         BOOST_CHECK_EQUAL( i, 200);
-@@ -266,6 +267,7 @@ void test_ontop() {
-         c = c.resume_with(
-                [&c1](ctx::continuation && c){
-                    c1 = std::move( c);
-+                   return std::move( c);
-                });
-     }
- }
-@@ -290,7 +292,8 @@ void test_ontop_exception() {
-     const char * what = "hello world";
-     c.resume_with(
-        [what](ctx::continuation && c){
--           throw my_exception( std::move( c), what);
-+            throw my_exception( std::move( c), what);
-+            return std::move( c);
-        });
-     BOOST_CHECK_EQUAL( 3, value1);
-     BOOST_CHECK_EQUAL( std::string( what), value2);
-Index: boost_1_65_0/libs/fiber/src/context.cpp
-===================================================================
---- boost_1_65_0.orig/libs/fiber/src/context.cpp
-+++ boost_1_65_0/libs/fiber/src/context.cpp
-@@ -145,6 +145,7 @@ context::resume() noexcept {
-     // pass pointer to the context that resumes `this`
-     c_.resume_with([prev](boost::context::continuation && c){
-                 prev->c_ = std::move( c);
-+                return boost::context::continuation{};
-             });
- }
-@@ -158,6 +159,7 @@ context::resume( detail::spinlock_lock &
-     c_.resume_with([prev,&lk](boost::context::continuation && c){
-                 prev->c_ = std::move( c);
-                 lk.unlock();
-+                return boost::context::continuation{};
-             });
- }
-@@ -171,6 +173,7 @@ context::resume( context * ready_ctx) no
-     c_.resume_with([prev,ready_ctx](boost::context::continuation && c){
-                 prev->c_ = std::move( c);
-                 context::active()->schedule( ready_ctx);
-+                return boost::context::continuation{};
-             });
- }
-@@ -218,6 +221,7 @@ context::suspend_with_cc() noexcept {
-     // pass pointer to the context that resumes `this`
-     return c_.resume_with([prev](boost::context::continuation && c){
-                 prev->c_ = std::move( c);
-+                return boost::context::continuation{};
-             });
- }
diff --git a/libs/boost/patches/010-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch b/libs/boost/patches/010-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch
new file mode 100644 (file)
index 0000000..bcb2bad
--- /dev/null
@@ -0,0 +1,12 @@
+Index: boost_1_65_1/libs/fiber/src/numa/linux/pin_thread.cpp
+===================================================================
+--- boost_1_65_1.orig/libs/fiber/src/numa/linux/pin_thread.cpp
++++ boost_1_65_1/libs/fiber/src/numa/linux/pin_thread.cpp
+@@ -9,6 +9,7 @@
+ extern "C" {
+ #include <pthread.h>
+ #include <sched.h>
++#include <string.h>
+ }
+ #include <system_error>
diff --git a/libs/boost/patches/020-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch b/libs/boost/patches/020-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch
deleted file mode 100644 (file)
index 245afab..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: boost_1_65_0/libs/fiber/src/numa/linux/pin_thread.cpp
-===================================================================
---- boost_1_65_0.orig/libs/fiber/src/numa/linux/pin_thread.cpp
-+++ boost_1_65_0/libs/fiber/src/numa/linux/pin_thread.cpp
-@@ -9,6 +9,7 @@
- extern "C" {
- #include <pthread.h>
- #include <sched.h>
-+#include <string.h>
- }
- #include <system_error>
index 8c138e926f39e6f2dfb330a3eec6f9371009d0f5..e35b98b3894b3524791d330ac571b235e95a29c2 100644 (file)
@@ -9,10 +9,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=file
 PKG_VERSION:=5.25
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=ftp://ftp.astron.com/pub/file/
+PKG_SOURCE_URL:=https://sources.lede-project.org/ \
+       http://pkgs.fedoraproject.org/lookaside/pkgs/file/ \
+       http://download.openpkg.org/components/cache/file/ \
+       ftp://ftp.astron.com/pub/file/
 PKG_HASH:=3735381563f69fb4239470b8c51b876a80425348b8285a7cded8b61d6b890eca
 
 PKG_LICENSE:=BSD-2c
@@ -27,7 +30,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/file/Default
   TITLE:=File type determination
   URL:=ftp://ftp.astron.com/pub/file/
-  MAINTAINER:=Luka Perkov <luka@openwrt.org>
+  MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
 endef
 
 define Package/file
@@ -90,7 +93,7 @@ endef
 
 define Package/libmagic/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libmagic.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmagic.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,file))
index 1e37ee21976097d1c129a313f3a5db7c66d23d4f..eb86460dd17b7a46326cc9d8a8fe0e4021a72bac 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=glib2
-PKG_VERSION:=2.53.7
+PKG_VERSION:=2.54.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=glib-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(BUILD_DIR)/glib-$(PKG_VERSION)
-PKG_SOURCE_URL:=@GNOME/glib/2.53
-PKG_HASH:=028efbf6df4d88d7725314456524b923169f4d4f8503347194b2baf2222f3e33
+PKG_SOURCE_URL:=@GNOME/glib/2.54
+PKG_HASH:=50c01b1419324f10fbf9b9709ec2164b18586968bdce7540583bf32302cf47a3
 
 PKG_BUILD_PARALLEL:=1
 HOST_BUILD_PARALLEL:=1
index ae0130ad445d392bf837595602447c1abcaab1e8..4f49adccf01346f64369d4521a1e4aaefd157924 100644 (file)
@@ -8,14 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libcoap
-PKG_RELEASE:=3
+PKG_VERSION:=v4.1.2
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/obgm/libcoap
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)
-PKG_SOURCE_VERSION:=2da31de732c0e51a9bc9e1d4aea21e25da89cf87
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
-PKG_MIRROR_HASH:=b61fe3245a329dfcf198187149d2072509b18ca6e348d0b423c0f44d11e930e4
+PKG_SOURCE_VERSION:=fa5248603049ddf95cc84608aad569120763bf2b
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MIRROR_HASH:=0ab4bc9569a78904743cc3074fd1c0fc9c78c85fd510fef5145dd872523619e6
 
 PKG_MAINTAINER:=Anton Glukhov <anton.a.glukhov@gmail.com>
 PKG_LICENSE:=GPL-2.0+ BSD-2-Clause
@@ -39,10 +40,32 @@ define Package/libcoap/description
   Constrained Application Protocol (RFC 7252) library
 endef
 
+define Package/coap-client
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=+libcoap
+  TITLE:=CoAP (RFC 7252) client tool
+endef
+
+define Package/coap-client/description
+  Constrained Application Protocol (RFC7252) client tool
+endef
+
+define Package/coap-server
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libcoap
+  TITLE:=CoAP (RFC 7252) server programs
+endef
+
+define Package/coap-server/description
+  Constrained Application Protocol (RFC 7252) server and resource directory server
+endef
+
 TARGET_CFLAGS += $(FPIC)
 
 CONFIGURE_ARGS += \
-       --disable-examples \
+       --enable-examples \
        --disable-documentation
 
 ifeq ($(CONFIG_BIG_ENDIAN),y)
@@ -62,4 +85,17 @@ define Package/libcoap/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcoap-1.so* $(1)/usr/lib/
 endef
 
+define Package/coap-client/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/coap-client $(1)/usr/bin/
+endef
+
+define Package/coap-server/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/coap-server $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/coap-rd $(1)/usr/bin/
+endef
+
 $(eval $(call BuildPackage,libcoap))
+$(eval $(call BuildPackage,coap-client))
+$(eval $(call BuildPackage,coap-server))
diff --git a/libs/libevent/Makefile b/libs/libevent/Makefile
deleted file mode 100644 (file)
index b645cc3..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# Copyright (C) 2006-2015 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=libevent
-PKG_VERSION:=1.4.15
-PKG_RELEASE:=1
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-release-$(PKG_VERSION)-stable
-PKG_SOURCE:=release-$(PKG_VERSION)-stable.tar.gz
-PKG_SOURCE_URL:=https://github.com/libevent/libevent/archive/
-PKG_HASH:=e9a32238a98954081d7ed9918d8f799eb4c743fd570749c0721585140dd5de21
-PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
-
-PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/libevent
-  SECTION:=libs
-  CATEGORY:=Libraries
-  TITLE:=Event notification library (legacy)
-  DEPENDS:=+librt
-  URL:=http://www.libevent.org
-endef
-
-define Package/libevent/description
-       The libevent API provides a mechanism to execute a callback function
-       when a specific event occurs on a file descriptor or after a timeout
-       has been reached. Furthermore, libevent also support callbacks due
-       to signals or regular timeouts.
-
-       libevent is meant to replace the event loop found in event driven
-       network servers. An application just needs to call event_dispatch()
-       and then add or remove events dynamically without having to change
-       the event loop.
-endef
-
-TARGET_CFLAGS += $(FPIC)
-
-CONFIGURE_ARGS += \
-       --enable-shared \
-       --enable-static \
-
-MAKE_FLAGS += \
-       CFLAGS="$(TARGET_CFLAGS)" \
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include/libevent
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/libevent/
-       $(INSTALL_DIR) $(1)/usr/lib/libevent
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{a,so} $(1)/usr/lib/libevent/
-endef
-
-define Package/libevent/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,libevent))
diff --git a/libs/libglog/Makefile b/libs/libglog/Makefile
new file mode 100644 (file)
index 0000000..2ab3263
--- /dev/null
@@ -0,0 +1,52 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=glog
+PKG_RELEASE:=1
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/google/glog.git
+PKG_SOURCE_VERSION:=v0.3.5
+PKG_MIRROR_HASH:=4677fba927e2d9cdcbc518c34c88465260d506d88072ea16217a8171310b9a1c
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+PKG_LICENSE_FILE:=COPYING
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/glog
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=C++ implementation of the Google logging module
+  DEPENDS:= +libstdcpp +libpthread
+  URL:=https://github.com/google/glog
+  MAINTAINER:=Amir Sabbaghi <amir@pichak.co>
+endef
+
+define Package/glog/description
+  This repository contains a C++ implementation of the Google logging
+  module.  Documentation for the implementation is in doc/.
+endef
+
+TARGET_CXXFLAGS+=-std=c++11
+TARGET_LDFLAGS+=-lpthread
+
+define Build/Configure
+       $(call Build/Configure/Default,)
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/glog
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/glog/*.h $(1)/usr/include/glog
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libglog.{a,so*} $(1)/usr/lib
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libglog.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/glog/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libglog.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,glog))
index 6aa0492278e9e0c46d09ecfef9ead16477c44a85..35518935bb2311d366a3cb0531e9f9027fd3d023 100644 (file)
@@ -8,17 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libndpi
-PKG_VERSION:=1.8
+PKG_VERSION:=2.0
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Banglang Huang <banglang.huang@foxmail.com>
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/ntop/nDPI.git
-PKG_SOURCE_VERSION:=6450ae256cfd7a6006d39df4a29de32f2f6fb7eb
+PKG_SOURCE_VERSION:=6607c33cb8d0d942e97fe28b1a3a51da06b7426a
 
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MIRROR_HASH:=4e8fe352bd739c76c980f52904a4a2eefbc17ad68e55603c6c19598d7ccfba3c
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MIRROR_HASH:=800554afbb7c742786c554ca553c4d866bc4dcf61154858ce6b40511e7d7be39
 PKG_LICENSE:=LGPLv3
 
 PKG_INSTALL:=1
@@ -47,7 +47,7 @@ endef
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include/
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/include/libndpi-1.8.0/libndpi \
+               $(PKG_INSTALL_DIR)/usr/include/libndpi-$(PKG_VERSION).0/libndpi \
                $(1)/usr/include/
 
        $(INSTALL_DIR) $(1)/usr/lib
index 59644ee84ed83d53bcd17673a47cd91a0d84ddc6..12e4bf11f3c38d0c873239f6f786f6e402ea7aef 100644 (file)
@@ -12,14 +12,14 @@ PKG_NAME:=libnetconf2
 PKG_LICENSE:=BSD-3-Clause
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
-PKG_VERSION:=0.8.56
+PKG_VERSION:=0.9.15
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=4d13eca938085298edbad6a731d77dfd55c8d514
-PKG_MIRROR_HASH:=88d1ab14a945c8c8c9fadfb248568294ac5f62dea3b8d99e60dbb8262f7107bc
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_VERSION:=cea46db1edb72231c9e009d7e6d6799256676eb8
+PKG_MIRROR_HASH:=a686754cef2ef29a511b8ea06d121f0ce562b570d6cea6c6a7562ff47b91d2a2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/cesnet/libnetconf2/
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
 
 PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
 PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
diff --git a/libs/libredblack/Makefile b/libs/libredblack/Makefile
new file mode 100644 (file)
index 0000000..75a616a
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# Copyright (C) 2017 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libredblack
+PKG_VERSION:=0.2.3
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_LICENSE:=GPL-2.0+
+PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=a399310d99b61eec4d3c0677573ab5dddcf9395d
+PKG_MIRROR_HASH:=71b05e70988b97865f734c698dd5564e349680556ccb8634a5bddf344012f22a
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/sysrepo/libredblack.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
+
+PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+
+define Package/libredblack
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=RedBlack tree library
+  URL:=$(PKG_SOURCE_URL)
+endef
+
+define Package/libredblack/description
+ RedBlack Balanced Tree Searching and Sorting Library.
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libredblack.{so*,a,la} $(1)/usr/lib/
+
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/redblack.h $(1)/usr/include/
+endef
+
+define Package/libredblack/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libredblack.{so*,a,la} $(1)/usr/lib/
+
+       $(INSTALL_DIR) $(1)/usr/include
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/include/redblack.h $(1)/usr/include
+endef
+
+$(eval $(call BuildPackage,libredblack))
index 5033099743f001243d248b03a186a3363e7181fc..f33309643f739a3d5a8cd669a5e50d8bdd104524 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libxml2
-PKG_VERSION:=2.9.5
+PKG_VERSION:=2.9.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://gd.tuwien.ac.at/languages/libxml/ \
        http://xmlsoft.org/sources/ \
        ftp://fr.rpmfind.net/pub/libxml/
-PKG_HASH:=4031c1ecee9ce7ba4f313e91ef6284164885cdb69937a123f6a83bb6a72dcd38
+PKG_HASH:=8b9038cca7240e881d462ea391882092dfdc6d4f483f72683e817be08df5ebbc
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
index ab32e25e1fd6cdc1e0a3cf2bb72253b06e51e9d8..29c416b0a16c7e941191f4ac91f00dc339ef2488 100644 (file)
@@ -8,18 +8,21 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libyang
-PKG_VERSION:=0.12.174
+PKG_VERSION:=0.13.46
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_LICENSE:=GPL-2.0+
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
 PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=d1556e0ae3872d676dfd63bd6073fe7e72d0130f
+PKG_MIRROR_HASH:=4a23a3854ceca147e113ab65ecdce3371e30b59436680e7d981b0bab6dbe751d
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/CESNET/libyang.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=7e811613b335afc8e1b2c0ee77e7b3f371bc9175
-PKG_MIRROR_HASH:=860865b294c628ad66ca5ef6848aae8df93e46325302914dbfb14264866f1678
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
+
+PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -32,7 +35,7 @@ define Package/libyang
   CATEGORY:=Libraries
   TITLE:=YANG data modeling language library
   URL:=$(PKG_SOURCE_URL)
-  DEPENDS:=+libpcre
+  DEPENDS:=+libpcre +libpthread
 endef
 
 define Package/yanglint
index 8d21809022c0ef07e53cd3e72ee91e3d2e66de03..f67f658ff6b9b3fd84b45a96700172ab429c7d3f 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqlite
-PKG_VERSION:=3190300
+PKG_VERSION:=3200100
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-autoconf-$(PKG_VERSION).tar.gz
-PKG_HASH:=06129c03dced9f87733a8cba408871bd60673b8f93b920ba8d815efab0a06301
+PKG_HASH:=ec66595b29bc0798b023a5122021ea646ab4fa9e2f735937c5426feeba950742
 PKG_SOURCE_URL:=http://www.sqlite.org/2017/
 
 PKG_LICENSE:=PUBLICDOMAIN
index cb3e988509a17c7b924386e1e6fe62bed99c0ad7..254db36e2e70ce77a9be747b479e1c189a29f00a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dovecot
 PKG_VERSION:=2.2.32
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.dovecot.org/releases/2.2
@@ -27,7 +27,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/dovecot
   SECTION:=mail
   CATEGORY:=Mail
-  DEPENDS:=+DOVECOT_LDAP:libopenldap +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap
+  DEPENDS:=+DOVECOT_LDAP:libopenldap +DOVECOT_MYSQL:libmysqlclient +DOVECOT_PGSQL:libpq +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap
   TITLE:=An IMAP and POP3 daemon
   MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
   URL:=http://www.dovecot.org/
@@ -46,6 +46,16 @@ define Package/dovecot/config
                         default n
                         help
                           Implements LDAP support in dovecot.
+                config DOVECOT_MYSQL
+                        bool "MYSQL support"
+                        default n
+                        help
+                          Implements MYSQL support in dovecot.
+                config DOVECOT_PGSQL
+                        bool "PostgreSQL support"
+                        default n
+                        help
+                          Implements PostgreSQL support in dovecot.
                 config DOVECOT_SQLITE
                         bool "SQLite support"
                         default n
@@ -63,6 +73,8 @@ CONFIGURE_ARGS += \
        --without-lz4 \
        --with-icu=no \
        $(if $(CONFIG_DOVECOT_LDAP),--with-ldap=yes,--with-ldap=no) \
+       $(if $(CONFIG_DOVECOT_MYSQL),--with-mysql=yes,--with-mysql=no) \
+       $(if $(CONFIG_DOVECOT_PGSQL),--with-pgsql=yes,--with-pgsql=no) \
        $(if $(CONFIG_DOVECOT_SQLITE),--with-sqlite=yes,--with-sqlite=no)
 
 CONFIGURE_VARS += \
index 2f7e8ace16759303be5e4c9d3e6cada4a3ab41f1..0039802c404a654165a6f1826ad877e02e6930f5 100644 (file)
@@ -8,10 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=postfix
-PKG_RELEASE:=3
-PKG_SOURCE_URL:=ftp://ftp.porcupine.org/mirrors/postfix-release/official/
-PKG_VERSION:=3.2.2
-PKG_HASH:=d06849418d119d09366997b2b481bb23f737629769b4e4a52da42fb3ad8b0576
+PKG_RELEASE:=1
+PKG_VERSION:=3.2.3
+PKG_SOURCE_URL:= \
+       https://cdn.postfix.johnriley.me/mirrors/postfix-release/official/ \
+       ftp://ftp.porcupine.org/mirrors/postfix-release/official/
+
+PKG_HASH:=5b0b975d075ea7561028d4109c581549b794aa92d733429ea6d9fa57751140bf
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_MAINTAINER:=Denis Shulyaka <Shulyaka@gmail.com>
 PKG_LICENSE:=IPL-1.0
index 058c8ddaada5bf740d0ebc89ddf2bf1b2376cbd7..f260642a8814ac4cfce32e336fc4f765b41fc2c0 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ffmpeg
-PKG_VERSION:=3.2.7
-PKG_RELEASE:=3
+PKG_VERSION:=3.2.8
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://ffmpeg.org/releases/
-PKG_HASH:=28e75fc32485a88035a7ebf0a956a1e5c7e93b440dd4bbd6bc30c7268cf34fe9
+PKG_HASH:=42e7362692318afc666f14378dd445effa9a1b09787504a6ab5811fe442674cd
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
                Ian Leonard <antonlacon@gmail.com>
 
@@ -420,7 +420,6 @@ ifneq ($(findstring arm,$(CONFIG_ARCH)),)
        else
                FFMPEG_CONFIGURE+= --disable-neon
        endif
-
 endif
 
 ifeq ($(ARCH),x86_64)
@@ -550,8 +549,7 @@ ifeq ($(BUILD_VARIANT),audio-dec)
        $(call FFMPEG_ENABLE,decoder,$(FFMPEG_AUDIO_DECODERS)) \
        $(call FFMPEG_ENABLE,demuxer,$(FFMPEG_AUDIO_DEMUXERS)) \
        $(call FFMPEG_ENABLE,protocol,$(FFMPEG_AUDIO_PROTOCOLS)) \
-       --disable-decoder=pcm_bluray,pcm_dvd \
-
+       --disable-decoder=pcm_bluray,pcm_dvd
 endif
 
 ifeq ($(BUILD_VARIANT),mini)
index e2c79e8458be40fb3839e207b5e3e5d6121cb29e..9243919327d68c0705da623380c491d6280e209b 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=minidlna
-PKG_VERSION:=1.2.0
+PKG_VERSION:=1.2.1
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@SF/minidlna
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=8d34436580c4c44be25976d5e46bc5b71af69bf441c4492774eac001164c4433
+PKG_HASH:=67388ba23ab0c7033557a32084804f796aa2a796db7bb2b770fb76ac2a742eec
 
 PKG_LICENSE:=GPL-2.0 BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING LICENCE.miniupnpd
diff --git a/multimedia/minidlna/patches/001-group-videos-by-directory-for-panasonic-tvs.patch b/multimedia/minidlna/patches/001-group-videos-by-directory-for-panasonic-tvs.patch
deleted file mode 100644 (file)
index f36edde..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-From c8245740c3a8699cfe7d7e5aa0d427b931018ad5 Mon Sep 17 00:00:00 2001
-From: Yusuke Yanbe <y.yanbe@gmail.com>
-Date: Mon, 4 Jul 2016 08:20:46 +0900
-Subject: [PATCH] Add support for grouping videos by directory for Panasonic
- TVs
-
----
- upnpsoap.c | 24 +++++++++++++++++++-----
- upnpsoap.h |  5 ++++-
- 2 files changed, 23 insertions(+), 6 deletions(-)
-
---- a/upnpsoap.c
-+++ b/upnpsoap.c
-@@ -1095,6 +1095,15 @@ callback(void *args, int argc, char **ar
-                                               add_res(size, duration, bitrate, sampleFrequency, nrAudioChannels,
-                                                       resolution, dlna_buf, mime, detailID, ext, passed_args);
-                                       }
-+
-+                                      DPRINTF(E_DEBUG, L_HTTP, "Title: %s -  %d Returned / %d childCount\n",
-+                                                              title, passed_args->returned, passed_args->childCount);
-+
-+                                      ret = strcatf(str, "&lt;pxn:groupTopFlag&gt;%d&lt;/pxn:groupTopFlag&gt;"
-+                                                         "&lt;pxn:groupID&gt;%s&lt;/pxn:groupID&gt;"
-+                                                         "&lt;pxn:groupTitle&gt;%s&lt;/pxn:groupTitle&gt;"
-+                                                         "&lt;pxn:groupMemberNum&gt;%d&lt;/pxn:groupMemberNum&gt;",
-+                                                         passed_args->returned == passed_args->childCount, parent, passed_args->parentTitle, passed_args->childCount);
-                                       break;
-                               case ESamsungSeriesCDE:
-                               case ELGDevice:
-@@ -1357,8 +1366,11 @@ BrowseContentDirectory(struct upnphttp *
-               if (!where[0])
-                       sqlite3_snprintf(sizeof(where), where, "PARENT_ID = '%q'", ObjectID);
--              if (!totalMatches)
-+              if (!totalMatches) {
-                       totalMatches = get_child_count(ObjectID, magic);
-+                      args.childCount = totalMatches;
-+                      args.parentTitle = sql_get_text_field(db, "SELECT d.TITLE FROM OBJECTS o LEFT JOIN DETAILS d ON (d.ID = o.DETAIL_ID) WHERE OBJECT_ID='%q'", ObjectID);
-+              }
-               ret = 0;
-               if (SortCriteria && !orderBy)
-               {
-@@ -1397,14 +1409,16 @@ BrowseContentDirectory(struct upnphttp *
-                       SoapError(h, 709, "Unsupported or invalid sort criteria");
-                       goto browse_error;
-               }
--
-               sql = sqlite3_mprintf("SELECT %s, %s, %s, " COLUMNS
-                                     "from OBJECTS o left join DETAILS d on (d.ID = o.DETAIL_ID)"
--                                    " where %s %s limit %d, %d;",
-+                                    " where %s order by d.date limit %d, %d;",
-                                     objectid_sql, parentid_sql, refid_sql,
--                                    where, THISORNUL(orderBy), StartingIndex, RequestedCount);
-+                                    where, StartingIndex, RequestedCount);
-               DPRINTF(E_DEBUG, L_HTTP, "Browse SQL: %s\n", sql);
-               ret = sqlite3_exec(db, sql, callback, (void *) &args, &zErrMsg);
-+              if (args.parentTitle) {
-+                      sqlite3_free(args.parentTitle);
-+              }
-       }
-       if( (ret != SQLITE_OK) && (zErrMsg != NULL) )
-       {
-@@ -1838,7 +1852,7 @@ SearchContentDirectory(struct upnphttp *
-                             (*ContainerID == '*') ? NULL :
-                             sqlite3_mprintf("UNION ALL " SELECT_COLUMNS
-                                             "from OBJECTS o left join DETAILS d on (d.ID = o.DETAIL_ID)"
--                                            " where OBJECT_ID = '%q' and (%s) ", ContainerID, where),
-+                                            " where OBJECT_ID = '%q' and (%s) ORDER BY d.date", ContainerID, where),
-                             orderBy, StartingIndex, RequestedCount);
-       DPRINTF(E_DEBUG, L_HTTP, "Search SQL: %s\n", sql);
-       ret = sqlite3_exec(db, sql, callback, (void *) &args, &zErrMsg);
---- a/upnpsoap.h
-+++ b/upnpsoap.h
-@@ -27,7 +27,8 @@
- #define CONTENT_DIRECTORY_SCHEMAS \
-       " xmlns:dc=\"http://purl.org/dc/elements/1.1/\"" \
-       " xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\"" \
--      " xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\""
-+      " xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"" \
-+      " xmlns:pxn=\"urn:schemas-panasonic-com:pxn\""
- #define DLNA_NAMESPACE \
-       " xmlns:dlna=\"urn:schemas-dlna-org:metadata-1-0/\""
- #define PV_NAMESPACE \
-@@ -39,6 +40,8 @@ struct Response
-       int start;
-       int returned;
-       int requested;
-+      int childCount;
-+      char *parentTitle;
-       int iface;
-       uint32_t filter;
-       uint32_t flags;
diff --git a/net/apache/Config.in b/net/apache/Config.in
new file mode 100644 (file)
index 0000000..5eb42b3
--- /dev/null
@@ -0,0 +1,11 @@
+menu "Configuration"
+        depends on PACKAGE_apache
+
+config APACHE_HTTP2
+        bool
+        prompt "Enable HTTP2"
+        help
+                Enable HTTPS2 support.
+        default n
+
+endmenu
index 098e2befbf6eba6eeac89ae1bf1b4b1a6c496f89..6763c4a0e9b0348dfe4ad2fe3a0b0457273357e9 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apache
-PKG_VERSION:=2.4.27
+PKG_VERSION:=2.4.28
 PKG_RELEASE:=1
 PKG_SOURCE_NAME:=httpd
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
@@ -16,12 +16,23 @@ PKG_LICENSE:=Apache License
 
 PKG_SOURCE:=$(PKG_SOURCE_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@APACHE/httpd/
-PKG_HASH:=71fcc128238a690515bd8174d5330a5309161ef314a326ae45c7c15ed139c13a
+PKG_HASH:=c1197a3a62a4ab5c584ab89b249af38cf28b4adee9c0106b62999fd29f920666
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_NAME)-$(PKG_VERSION)
 
 PKG_INSTALL:=1
 
+PKG_CONFIG_DEPENDS := \
+       CONFIG_APACHE_HTTP2
+
+ADDITIONAL_MODULES:=
+ifeq ($(CONFIG_APACHE_HTTP2),y)
+  ADDITIONAL_MODULES += --enable-http2
+endif
+ifneq ($(CONFIG_APACHE_HTTP2),y)
+  ADDITIONAL_MODULES += --enable-http2=no
+endif
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/apache/Default
@@ -38,9 +49,13 @@ define Package/apache/Default/description
  Server, it has grown to be the most popular web server on the Internet.
 endef
 
+define Package/apache/config
+  source "$(SOURCE)/Config.in"
+endef
+
 define Package/apache
 $(call Package/apache/Default)
-  DEPENDS:=+libapr +libaprutil +libpcre +libopenssl +unixodbc +zlib
+  DEPENDS:=+libapr +libaprutil +libpcre +libopenssl +unixodbc +zlib +APACHE_HTTP2:libnghttp2
 endef
 
 define Package/apache/description
@@ -90,13 +105,14 @@ endef
 
 TARGET_CFLAGS += $(FPIC)
 TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
-TARGET_LDFLAGS += -lpthread 
+TARGET_LDFLAGS += -lpthread
 
 define Build/Configure
        $(call Build/Configure/Default, \
                --with-apr="$(STAGING_DIR)/usr/bin/apr-1-config" \
                --with-apr-util="$(STAGING_DIR)/usr/bin/apu-1-config" \
                --with-pcre="$(STAGING_DIR)/usr/bin/pcre-config" \
+               $(ADDITIONAL_MODULES) \
                --enable-http \
                --with-crypto \
                --with-sqlit3="$(STAGING_DIR)/usr" \
index 0d367c6fb48cb9b183da1a282e36570f3a5541c4..81fe8267d7653fc7669b3fe0f3aaabeccb923be0 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=chrony
-PKG_VERSION:=3.1
-PKG_RELEASE:=2
+PKG_VERSION:=3.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://download.tuxfamily.org/chrony/
-PKG_HASH:=9d9107dcdb7768a03dc129d33b2a7a25f1eea2f5620bc85eb00cfea07c1b6075
+PKG_HASH:=329f6718dd8c3ece3eee78be1f4821cbbeb62608e7d23f25da293cfa433c4116
 
 PKG_MAINTAINER:=Miroslav Lichvar <mlichvar0@gmail.com>
 PKG_LICENSE:=GPL-2.0
index e18d07e923ca1bb3caf6239dca5fedb426c18d83..7a3dd826969a2d35d4442fde6cb181af0a0e1f6e 100644 (file)
@@ -1,9 +1,9 @@
 diff --git a/sysincl.h b/sysincl.h
-index 30e9b48..8fe16c0 100644
+index a9e4da0..e2a6e78 100644
 --- a/sysincl.h
 +++ b/sysincl.h
-@@ -70,4 +70,8 @@
- #include <arpa/inet.h>
+@@ -80,4 +80,8 @@
+ #include <sys/random.h>
  #endif
  
 +#if defined(LINUX) && !defined(IP_FREEBIND)
index f1e084904db3e9493a1852cc5e91fcf0c89710df..2d544e94722a1a6935b9de75e103fc1dc975936d 100755 (executable)
@@ -12,7 +12,7 @@ PKG_NAME:=ddns-scripts
 PKG_VERSION:=2.7.6
 # Release == build
 # increase on changes of services files or tld_names.dat
-PKG_RELEASE:=17
+PKG_RELEASE:=18
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
index acaa9ad8f7fab882e034473e54106a6371372cc0..1140261fef0fffe7aa13a3c383c7cf5a556556c9 100644 (file)
@@ -60,7 +60,7 @@
 
 "ddo.jp"               "http://free.ddo.jp/dnsupdate.php?dn=[DOMAIN]&pw=[PASSWORD]&ip=[IP]"
 
-"desec.io"             "http://[USERNAME]:[PASSWORD]@update.dedyn.io/?hostname=[DOMAIN]&myipv4=[IP]"   "good|nochg"
+"desec.io"             "http://update.dedyn.io/?username=[USERNAME]&password=[PASSWORD]&hostname=[DOMAIN]&myipv4=[IP]" "good|nochg"
 
 "dhis.org"             "http://[USERNAME]:[PASSWORD]@is.dhis.org/"
 
index 611107d2c82db1714e2aaf1673b88814dd7caf8e..c593aef6487a3999f803a98574234b89598a0d2f 100644 (file)
@@ -50,7 +50,7 @@
 # "ddnss.de"           "http://[USERNAME]:[PASSWORD]@ip6.ddnss.de/upd.php?host=[DOMAIN]&ip6=[IP]"      "good|nochg"
 "ddnss.de"             "http://ip6.ddnss.de/upd.php?user=[USERNAME]&pwd=[PASSWORD]&host=[DOMAIN]&ip6=[IP]"     "good|nochg"
 
-"desec.io"             "http://[USERNAME]:[PASSWORD]@update.dedyn.io/?hostname=[DOMAIN]&myipv6=[IP]"   "good|nochg"
+"desec.io"             "http://update.dedyn.io/?username=[USERNAME]&password=[PASSWORD]&hostname=[DOMAIN]&myipv6=[IP]" "good|nochg"
 
 "dhis.org"             "http://[USERNAME]:[PASSWORD]@is.dhis.org/"
 
index 48c083536f51fc02a70488e4ddf65707d0612b18..20d1dc5e2e7d8cccbcc3b288eaed7412f51f5419 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freeradius3
 PKG_VERSION:=release_3_0_11
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/FreeRADIUS/freeradius-server/archive
index b30b01279a2f4e4fc3c495e109c6158c3d18e47a..578bbbc0eb1e93392ac315834897c549b90d8668 100644 (file)
@@ -22,7 +22,7 @@
  preserve              = no
 --- a/raddb/certs/server.cnf
 +++ b/raddb/certs/server.cnf
-@@ -14,7 +14,7 @@ private_key          = $dir/ca.key
+@@ -14,7 +14,7 @@ private_key          = $dir/server.key
  RANDFILE              = $dir/.rand
  name_opt              = ca_default
  cert_opt              = ca_default
diff --git a/net/freeradius3/patches/002-disable-session-cache-CVE-2017-9148.patch b/net/freeradius3/patches/002-disable-session-cache-CVE-2017-9148.patch
new file mode 100644 (file)
index 0000000..458eeba
--- /dev/null
@@ -0,0 +1,47 @@
+Description: disable session caching in the server (as opposed to in the
+ config, which would be way harder to get right) to address
+ https://security-tracker.debian.org/tracker/CVE-2017-9148
+Author: Michael Stapelberg <stapelberg@debian.org>
+Forwarded: not-needed
+Last-Update: 2017-05-30
+
+---
+
+--- a/src/main/tls.c
++++ b/src/main/tls.c
+@@ -369,7 +369,7 @@ tls_session_t *tls_new_session(TALLOC_CT
+        *
+        *      FIXME: Also do it every N sessions?
+        */
+-      if (conf->session_cache_enable &&
++      if (/*conf->session_cache_enable*/0 &&
+           ((conf->session_last_flushed + ((int)conf->session_timeout * 1800)) <= request->timestamp)){
+               RDEBUG2("Flushing SSL sessions (of #%ld)", SSL_CTX_sess_number(conf->ctx));
+@@ -463,7 +463,7 @@ tls_session_t *tls_new_session(TALLOC_CT
+               state->mtu = vp->vp_integer;
+       }
+-      if (conf->session_cache_enable) state->allow_session_resumption = true; /* otherwise it's false */
++      if (/*conf->session_cache_enable*/0) state->allow_session_resumption = true; /* otherwise it's false */
+       return state;
+ }
+@@ -2675,7 +2675,7 @@ post_ca:
+       /*
+        *      Callbacks, etc. for session resumption.
+        */
+-      if (conf->session_cache_enable) {
++      if (/*conf->session_cache_enable*/0) {
+               /*
+                *      Cache sessions on disk if requested.
+                */
+@@ -2745,7 +2745,7 @@ post_ca:
+       /*
+        *      Setup session caching
+        */
+-      if (conf->session_cache_enable) {
++      if (/*conf->session_cache_enable*/0) {
+               /*
+                *      Create a unique context Id per EAP-TLS configuration.
+                */
index 5b126b2fe48a54cbaaca198cc34bfbfbee99addf..ec7c66a230b157227a6912c9441907884d28b638 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=git
-PKG_VERSION:=2.14.1
+PKG_VERSION:=2.14.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/scm/git/
-PKG_HASH:=6f724c6d0e9e13114ab35db6f67e1b2c1934b641e89366e6a0e37618231f2cc6
+PKG_HASH:=50e9723996114ad1eec4dda89960d9fe34461749ae42031008a261fedd03c7a1
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
index a73ee666b069d6a3fd975cd9818a7205e7a547da..56f694c2af21a1c4073ef570b59ad1ee14e4d807 100644 (file)
@@ -1,10 +1,10 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnunet
-PKG_SOURCE_VERSION:=556ccd6d483b3678867c3829e6979c307df04450
-PKG_MIRROR_HASH:=5ecf15575eccc30135b2dc9871d88de0b32b593dc79cf5b0632a4fe2ffd711df
+PKG_SOURCE_VERSION:=664aca2d29b15dd75967d2bb0298caf750993b6f
+PKG_MIRROR_HASH:=d3fd9f9275e3173b392ea3d151130fae9fb507986c5bd6a369303e0e1e0ab6d6
 
-PKG_VERSION:=0.10.2-git-20170626-$(PKG_SOURCE_VERSION)
+PKG_VERSION:=0.10.2-git-20171004-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
@@ -30,7 +30,7 @@ CONFIGURE_ARGS+= \
        $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mysql),--with-mysql="$(STAGING_DIR)/usr",--without-mysql) \
        $(if $(CONFIG_PACKAGE_$(PKG_NAME)-pgsql),--with-postgresql="$(STAGING_DIR)/usr/bin/pg_config",--without-postgresql) \
        $(if $(CONFIG_PACKAGE_libsqlite3),--with-sqlite="$(STAGING_DIR)/usr",--without-sqlite) \
-       --disable-testing \
+       --enable-testing \
        --disable-testruns \
        --enable-experimental \
        --with-extractor=$(STAGING_DIR)/usr \
index 5f9a30c06347e40aaa692a2f965be4a1d6f17032..a1b44f4a5b764d629a1d5373764b9db56430c6de 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnurl
-PKG_VERSION:=7.55.0
+PKG_VERSION:=7.55.1-4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://gnunet.org/sites/default/files
 
-PKG_HASH:=761b3ddb32946965c62676ca4acf2ebaab38d09068aebeea78caaf6cce8c2b45
+PKG_HASH:=d4758822f84fe961d9253d3d7ff742c9cd0d39d5340d441b8014771eb95b8125
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
@@ -98,7 +98,7 @@ endef
 define Build/InstallDev
        $(INSTALL_DIR) $(2)/bin $(1)/usr/bin $(1)/usr/include/gnurl $(1)/usr/lib $(1)/usr/lib/pkgconfig
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnurl-config $(1)/usr/bin/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/curl/*.h $(1)/usr/include/gnurl
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/gnurl/*.h $(1)/usr/include/gnurl
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnurl.{a,so*} $(1)/usr/lib/
        $(CP) $(PKG_BUILD_DIR)/libgnurl.pc $(1)/usr/lib/pkgconfig/
        $(SED) 's,-L$$$${exec_prefix}/lib,,g' $(1)/usr/bin/gnurl-config
index 74334cc5da877d67b02fd94baf12f5b722a7f684..9618fdc3ce2f9e69b79251ddfd4dc910bd9aa18a 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haproxy
-PKG_VERSION:=1.7.8
-PKG_RELEASE:=18
+PKG_VERSION:=1.7.9
+PKG_RELEASE:=02
 
 PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.haproxy.org/download/1.7/src/
-PKG_HASH:=ec90153ccedd20ad4015d3eaf76b502ff1f61b431d54c22b8457b5784a9ae142
+PKG_HASH:=1072337e54fa188dc6e0cfe3ba4c2200b07082e321cbfe5a0882d85d54db068e
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_LICENSE:=GPL-2.0
@@ -30,16 +30,18 @@ define Package/haproxy/Default
   URL:=http://haproxy.1wt.eu/
 endef
 
-define Download/lua533
-       FILE:=lua-5.3.3.tar.gz
+define Download/lua534
+       FILE:=lua-5.3.4.tar.gz
        URL:=http://www.lua.org/ftp/
-       HASH:=5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2
+       HASH:=f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c
 endef
 
 define Build/Prepare
        $(call Build/Prepare/Default)
-       tar -zxvf $(DL_DIR)/lua-5.3.3.tar.gz -C $(PKG_BUILD_DIR)
-       ln -s $(PKG_BUILD_DIR)/lua-5.3.3 $(PKG_BUILD_DIR)/lua
+ifeq ($(ENABLE_LUA),y)
+       tar -zxvf $(DL_DIR)/lua-5.3.4.tar.gz -C $(PKG_BUILD_DIR)
+       ln -s $(PKG_BUILD_DIR)/lua-5.3.4 $(PKG_BUILD_DIR)/lua
+endif
 endef
 
 define Package/haproxy/Default/conffiles
@@ -89,6 +91,11 @@ $(call Package/haproxy/Default/description)
  This package is built without SSL support.
 endef
 
+ENABLE_LUA:=y
+ifeq ($(CONFIG_mips),y)
+  ENABLE_LUA:=n
+endif
+
 ifeq ($(CONFIG_avr32),y)
   LINUX_TARGET:=linux26
 else
@@ -97,27 +104,32 @@ endif
 
 ifeq ($(BUILD_VARIANT),ssl)
        ADDON+=USE_OPENSSL=1
+       ADDON+=ADDLIB="-lcrypto -lm "
+else ifeq ($(CONFIG_mips),n)
        ADDON+=USE_LUA=1
-       ADDON+=LUA_LIB_NAME="lua533"
-       ADDON+=LUA_INC="$(STAGING_DIR)/lua-5.3.3/include"
-       ADDON+=LUA_LIB="$(STAGING_DIR)/lua-5.3.3/lib"
-       ADDON+=ADDLIB="-lcrypto -lm "   
+       ADDON+=LUA_LIB_NAME="lua534"
+       ADDON+=LUA_INC="$(STAGING_DIR)/lua-5.3.4/include"
+       ADDON+=LUA_LIB="$(STAGING_DIR)/lua-5.3.4/lib"
 else
        ADDON+=ADDLIB="-lm"
 endif
 
-
-define Build/Compile
+ifeq ($(ENABLE_LUA),y)
+define Build/Compile/lua
        $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR)/lua \
-               INSTALL_TOP="$(STAGING_DIR)/lua-5.3.3/" \
+               INSTALL_TOP="$(STAGING_DIR)/lua-5.3.4/" \
                CC="$(TARGET_CC)" \
                CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
                LDFLAGS="$(TARGET_LDFLAGS) -lncurses -lreadline" \
                LD="$(TARGET_LD)" \
                linux install
 
-       mv $(STAGING_DIR)/lua-5.3.3/lib/liblua.a $(STAGING_DIR)/lua-5.3.3/lib/liblua533.a
+       mv $(STAGING_DIR)/lua-5.3.4/lib/liblua.a $(STAGING_DIR)/lua-5.3.4/lib/liblua534.a
+endef
+endif
 
+define Build/Compile
+       $(call Build/Compile/lua)
        $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR) \
                DESTDIR="$(PKG_INSTALL_DIR)" \
                CC="$(TARGET_CC)" \
@@ -160,7 +172,6 @@ endef
 
 Package/haproxy-nossl/install = $(Package/haproxy/install)
 
-
 define Package/halog
        MENU:=1
        $(call Package/haproxy)
@@ -177,8 +188,7 @@ define Package/halog/install
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/halog/halog $(1)/usr/bin/
 endef
 
-$(eval $(call Download,lua533))
+$(eval $(call Download,lua534))
 $(eval $(call BuildPackage,haproxy))
 $(eval $(call BuildPackage,halog))
 $(eval $(call BuildPackage,haproxy-nossl))
-
diff --git a/net/haproxy/patches/0001-BUG-MEDIUM-connection-remove-useless-flag-CO_FL_DATA.patch b/net/haproxy/patches/0001-BUG-MEDIUM-connection-remove-useless-flag-CO_FL_DATA.patch
new file mode 100644 (file)
index 0000000..dcbef61
--- /dev/null
@@ -0,0 +1,158 @@
+From 912e8f18ef274fdda0a522b2aa8255bddd00fb7b Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Wed, 30 Aug 2017 07:35:35 +0200
+Subject: [PATCH] BUG/MEDIUM: connection: remove useless flag CO_FL_DATA_RD_SH
+
+This flag is both confusing and wrong. It is supposed to report the
+fact that the data layer has received a shutdown, but in fact this is
+reported by CO_FL_SOCK_RD_SH which is set by the transport layer after
+this condition is detected. The only case where the flag above is set
+is in the stream interface where CF_SHUTR is also set on the receiving
+channel.
+
+In addition, it was checked in the health checks code (while never set)
+and was always test jointly with CO_FL_SOCK_RD_SH everywhere, except in
+conn_data_read0_pending() which incorrectly doesn't match the second
+time it's called and is fortunately protected by an extra check on
+(ic->flags & CF_SHUTR).
+
+This patch gets rid of the flag completely. Now conn_data_read0_pending()
+accurately reports the fact that the transport layer has detected the end
+of the stream, regardless of the fact that this state was already consumed,
+and the stream interface watches ic->flags&CF_SHUTR to know if the channel
+was already closed by the upper layer (which it already used to do).
+
+The now unused conn_data_read0() function was removed.
+(cherry picked from commit 54e917cfa1e7b0539550ae32c48c76da2f169041)
+
+[wt: this happens to fix a real bug which occasionally strikes when
+     using http-reuse in the rare case where a server shuts down after
+     providing its response but before the connection is put back into
+     the idle pool, and it gets immediately recycled for another request,
+     without first passing through the idle handler, and the already
+     reported shutdown is never reported to the second transaction,
+     causing a loop to last for as long as the server timeout]
+---
+ contrib/debug/flags.c      |  1 -
+ include/proto/connection.h |  8 +-------
+ include/types/connection.h |  2 +-
+ src/checks.c               |  4 ++--
+ src/stream_interface.c     | 11 +++++------
+ 5 files changed, 9 insertions(+), 17 deletions(-)
+
+diff --git a/contrib/debug/flags.c b/contrib/debug/flags.c
+index bc71bde9..19327f34 100644
+--- a/contrib/debug/flags.c
++++ b/contrib/debug/flags.c
+@@ -117,7 +117,6 @@ void show_conn_flags(unsigned int f)
+       SHOW_FLAG(f, CO_FL_SOCK_WR_SH);
+       SHOW_FLAG(f, CO_FL_SOCK_RD_SH);
+       SHOW_FLAG(f, CO_FL_DATA_WR_SH);
+-      SHOW_FLAG(f, CO_FL_DATA_RD_SH);
+       SHOW_FLAG(f, CO_FL_WAKE_DATA);
+       SHOW_FLAG(f, CO_FL_INIT_DATA);
+       SHOW_FLAG(f, CO_FL_ADDR_TO_SET);
+diff --git a/include/proto/connection.h b/include/proto/connection.h
+index fce60259..eb68322a 100644
+--- a/include/proto/connection.h
++++ b/include/proto/connection.h
+@@ -413,12 +413,6 @@ static inline void conn_sock_read0(struct connection *c)
+               fdtab[c->t.sock.fd].linger_risk = 0;
+ }
+-static inline void conn_data_read0(struct connection *c)
+-{
+-      c->flags |= CO_FL_DATA_RD_SH;
+-      __conn_data_stop_recv(c);
+-}
+-
+ static inline void conn_sock_shutw(struct connection *c)
+ {
+       c->flags |= CO_FL_SOCK_WR_SH;
+@@ -450,7 +444,7 @@ static inline void conn_data_shutw_hard(struct connection *c)
+ /* detect sock->data read0 transition */
+ static inline int conn_data_read0_pending(struct connection *c)
+ {
+-      return (c->flags & (CO_FL_DATA_RD_SH | CO_FL_SOCK_RD_SH)) == CO_FL_SOCK_RD_SH;
++      return (c->flags & CO_FL_SOCK_RD_SH) != 0;
+ }
+ /* detect data->sock shutw transition */
+diff --git a/include/types/connection.h b/include/types/connection.h
+index 02eac932..90e8e073 100644
+--- a/include/types/connection.h
++++ b/include/types/connection.h
+@@ -90,7 +90,7 @@ enum {
+       CO_FL_WAKE_DATA     = 0x00008000,  /* wake-up data layer upon activity at the transport layer */
+       /* flags used to remember what shutdown have been performed/reported */
+-      CO_FL_DATA_RD_SH    = 0x00010000,  /* DATA layer was notified about shutr/read0 */
++      /* unused : 0x00010000 */
+       CO_FL_DATA_WR_SH    = 0x00020000,  /* DATA layer asked for shutw */
+       CO_FL_SOCK_RD_SH    = 0x00040000,  /* SOCK layer was notified about shutr/read0 */
+       CO_FL_SOCK_WR_SH    = 0x00080000,  /* SOCK layer asked for shutw */
+diff --git a/src/checks.c b/src/checks.c
+index ca3881a5..6c5e3cbc 100644
+--- a/src/checks.c
++++ b/src/checks.c
+@@ -839,7 +839,7 @@ static void event_srv_chk_r(struct connection *conn)
+       done = 0;
+       conn->xprt->rcv_buf(conn, check->bi, check->bi->size);
+-      if (conn->flags & (CO_FL_ERROR | CO_FL_SOCK_RD_SH | CO_FL_DATA_RD_SH)) {
++      if (conn->flags & (CO_FL_ERROR | CO_FL_SOCK_RD_SH)) {
+               done = 1;
+               if ((conn->flags & CO_FL_ERROR) && !check->bi->i) {
+                       /* Report network errors only if we got no other data. Otherwise
+@@ -2892,7 +2892,7 @@ static void tcpcheck_main(struct connection *conn)
+                               goto out_end_tcpcheck;
+                       if (conn->xprt->rcv_buf(conn, check->bi, check->bi->size) <= 0) {
+-                              if (conn->flags & (CO_FL_ERROR | CO_FL_SOCK_RD_SH | CO_FL_DATA_RD_SH)) {
++                              if (conn->flags & (CO_FL_ERROR | CO_FL_SOCK_RD_SH)) {
+                                       done = 1;
+                                       if ((conn->flags & CO_FL_ERROR) && !check->bi->i) {
+                                               /* Report network errors only if we got no other data. Otherwise
+diff --git a/src/stream_interface.c b/src/stream_interface.c
+index 836487bd..aba49c94 100644
+--- a/src/stream_interface.c
++++ b/src/stream_interface.c
+@@ -1060,14 +1060,14 @@ static void si_conn_recv_cb(struct connection *conn)
+       if (conn->flags & CO_FL_ERROR)
+               return;
+-      /* stop here if we reached the end of data */
+-      if (conn_data_read0_pending(conn))
+-              goto out_shutdown_r;
+-
+       /* maybe we were called immediately after an asynchronous shutr */
+       if (ic->flags & CF_SHUTR)
+               return;
++      /* stop here if we reached the end of data */
++      if (conn_data_read0_pending(conn))
++              goto out_shutdown_r;
++
+       cur_read = 0;
+       if ((ic->flags & (CF_STREAMER | CF_STREAMER_FAST)) && !ic->buf->o &&
+@@ -1153,7 +1153,7 @@ static void si_conn_recv_cb(struct connection *conn)
+        * that if such an event is not handled above in splice, it will be handled here by
+        * recv().
+        */
+-      while (!(conn->flags & (CO_FL_ERROR | CO_FL_SOCK_RD_SH | CO_FL_DATA_RD_SH | CO_FL_WAIT_ROOM | CO_FL_HANDSHAKE))) {
++      while (!(conn->flags & (CO_FL_ERROR | CO_FL_SOCK_RD_SH | CO_FL_WAIT_ROOM | CO_FL_HANDSHAKE)) && !(ic->flags & CF_SHUTR)) {
+               max = channel_recv_max(ic);
+               if (!max) {
+@@ -1267,7 +1267,6 @@ static void si_conn_recv_cb(struct connection *conn)
+       if (ic->flags & CF_AUTO_CLOSE)
+               channel_shutw_now(ic);
+       stream_sock_read0(si);
+-      conn_data_read0(conn);
+       return;
+ }
+-- 
+2.13.5
+
diff --git a/net/haproxy/patches/0001-BUG-MINOR-peers-peer-synchronization-issue-with-seve.patch b/net/haproxy/patches/0001-BUG-MINOR-peers-peer-synchronization-issue-with-seve.patch
deleted file mode 100644 (file)
index a24c967..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-From fa73e6b0d5f64eb8a6fd8a1706d7ec03293a943e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= <flecaille@haproxy.com>
-Date: Thu, 13 Jul 2017 09:07:09 +0200
-Subject: [PATCH 01/18] BUG/MINOR: peers: peer synchronization issue (with
- several peers sections).
-
-When several stick-tables were configured with several peers sections,
-only a part of them could be synchronized: the ones attached to the last
-parsed 'peers' section. This was due to the fact that, at least, the peer I/O handler
-refered to the wrong peer section list, in fact always the same: the last one parsed.
-
-The fact that the global peer section list was named "struct peers *peers"
-lead to this issue. This variable name is dangerous ;).
-
-So this patch renames global 'peers' variable to 'cfg_peers' to ensure that
-no such wrong references are still in use, then all the functions wich used
-old 'peers' variable have been modified to refer to the correct peer list.
-
-Must be backported to 1.6 and 1.7.
-(cherry picked from commit ed2b4a6b793d062000518e51ed71e014c649c313)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- include/types/peers.h |  2 +-
- src/cfgparse.c        | 18 +++++++++---------
- src/haproxy.c         | 10 +++++-----
- src/peers.c           | 40 ++++++++++++++++++++--------------------
- src/proxy.c           |  6 +++---
- 5 files changed, 38 insertions(+), 38 deletions(-)
-
-diff --git a/include/types/peers.h b/include/types/peers.h
-index 105dffb0..a77a0942 100644
---- a/include/types/peers.h
-+++ b/include/types/peers.h
-@@ -91,7 +91,7 @@ struct peers {
- };
--extern struct peers *peers;
-+extern struct peers *cfg_peers;
- #endif /* _TYPES_PEERS_H */
-diff --git a/src/cfgparse.c b/src/cfgparse.c
-index 8c0906bf..1b53006b 100644
---- a/src/cfgparse.c
-+++ b/src/cfgparse.c
-@@ -2124,7 +2124,7 @@ int cfg_parse_peers(const char *file, int linenum, char **args, int kwm)
-                       goto out;
-               }
--              for (curpeers = peers; curpeers != NULL; curpeers = curpeers->next) {
-+              for (curpeers = cfg_peers; curpeers != NULL; curpeers = curpeers->next) {
-                       /*
-                        * If there are two proxies with the same name only following
-                        * combinations are allowed:
-@@ -2142,8 +2142,8 @@ int cfg_parse_peers(const char *file, int linenum, char **args, int kwm)
-                       goto out;
-               }
--              curpeers->next = peers;
--              peers = curpeers;
-+              curpeers->next = cfg_peers;
-+              cfg_peers = curpeers;
-               curpeers->conf.file = strdup(file);
-               curpeers->conf.line = linenum;
-               curpeers->last_change = now.tv_sec;
-@@ -2223,7 +2223,7 @@ int cfg_parse_peers(const char *file, int linenum, char **args, int kwm)
-               if (strcmp(newpeer->id, localpeer) == 0) {
-                       /* Current is local peer, it define a frontend */
-                       newpeer->local = 1;
--                      peers->local = newpeer;
-+                      cfg_peers->local = newpeer;
-                       if (!curpeers->peers_fe) {
-                               if ((curpeers->peers_fe  = calloc(1, sizeof(struct proxy))) == NULL) {
-@@ -8189,9 +8189,9 @@ int check_config_validity()
-               }
-               if (curproxy->table.peers.name) {
--                      struct peers *curpeers = peers;
-+                      struct peers *curpeers;
--                      for (curpeers = peers; curpeers; curpeers = curpeers->next) {
-+                      for (curpeers = cfg_peers; curpeers; curpeers = curpeers->next) {
-                               if (strcmp(curpeers->id, curproxy->table.peers.name) == 0) {
-                                       free((void *)curproxy->table.peers.name);
-                                       curproxy->table.peers.p = curpeers;
-@@ -9279,15 +9279,15 @@ out_uri_auth_compat:
-               if (curproxy->table.peers.p)
-                       curproxy->table.peers.p->peers_fe->bind_proc |= curproxy->bind_proc;
--      if (peers) {
--              struct peers *curpeers = peers, **last;
-+      if (cfg_peers) {
-+              struct peers *curpeers = cfg_peers, **last;
-               struct peer *p, *pb;
-               /* Remove all peers sections which don't have a valid listener,
-                * which are not used by any table, or which are bound to more
-                * than one process.
-                */
--              last = &peers;
-+              last = &cfg_peers;
-               while (*last) {
-                       curpeers = *last;
-diff --git a/src/haproxy.c b/src/haproxy.c
-index 6d09aed4..25cea0cd 100644
---- a/src/haproxy.c
-+++ b/src/haproxy.c
-@@ -988,7 +988,7 @@ void init(int argc, char **argv)
-               struct peers *pr;
-               struct proxy *px;
--              for (pr = peers; pr; pr = pr->next)
-+              for (pr = cfg_peers; pr; pr = pr->next)
-                       if (pr->peers_fe)
-                               break;
-@@ -1217,11 +1217,11 @@ void init(int argc, char **argv)
-       if (global.stats_fe)
-               global.maxsock += global.stats_fe->maxconn;
--      if (peers) {
-+      if (cfg_peers) {
-               /* peers also need to bypass global maxconn */
--              struct peers *p = peers;
-+              struct peers *p = cfg_peers;
--              for (p = peers; p; p = p->next)
-+              for (p = cfg_peers; p; p = p->next)
-                       if (p->peers_fe)
-                               global.maxsock += p->peers_fe->maxconn;
-       }
-@@ -2067,7 +2067,7 @@ int main(int argc, char **argv)
-               }
-               /* we might have to unbind some peers sections from some processes */
--              for (curpeers = peers; curpeers; curpeers = curpeers->next) {
-+              for (curpeers = cfg_peers; curpeers; curpeers = curpeers->next) {
-                       if (!curpeers->peers_fe)
-                               continue;
-diff --git a/src/peers.c b/src/peers.c
-index 543c84c1..5b8a287a 100644
---- a/src/peers.c
-+++ b/src/peers.c
-@@ -171,7 +171,7 @@ enum {
- #define PEER_MINOR_VER        1
- #define PEER_DWNGRD_MINOR_VER 0
--struct peers *peers = NULL;
-+struct peers *cfg_peers = NULL;
- static void peer_session_forceshutdown(struct appctx *appctx);
- /* This function encode an uint64 to 'dynamic' length format.
-@@ -727,19 +727,19 @@ switchstate:
-                               /* if current peer is local */
-                                 if (curpeer->local) {
-                                         /* if current host need resyncfrom local and no process assined  */
--                                        if ((peers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMLOCAL &&
--                                            !(peers->flags & PEERS_F_RESYNC_ASSIGN)) {
-+                                        if ((curpeers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMLOCAL &&
-+                                            !(curpeers->flags & PEERS_F_RESYNC_ASSIGN)) {
-                                                 /* assign local peer for a lesson, consider lesson already requested */
-                                                 curpeer->flags |= PEER_F_LEARN_ASSIGN;
--                                                peers->flags |= (PEERS_F_RESYNC_ASSIGN|PEERS_F_RESYNC_PROCESS);
-+                                                curpeers->flags |= (PEERS_F_RESYNC_ASSIGN|PEERS_F_RESYNC_PROCESS);
-                                         }
-                                 }
--                                else if ((peers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMREMOTE &&
--                                         !(peers->flags & PEERS_F_RESYNC_ASSIGN)) {
-+                                else if ((curpeers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMREMOTE &&
-+                                         !(curpeers->flags & PEERS_F_RESYNC_ASSIGN)) {
-                                         /* assign peer for a lesson  */
-                                         curpeer->flags |= PEER_F_LEARN_ASSIGN;
--                                        peers->flags |= PEERS_F_RESYNC_ASSIGN;
-+                                        curpeers->flags |= PEERS_F_RESYNC_ASSIGN;
-                                 }
-@@ -807,7 +807,7 @@ switchstate:
-                               curpeer->statuscode = atoi(trash.str);
-                               /* Awake main task */
--                              task_wakeup(peers->sync_task, TASK_WOKEN_MSG);
-+                              task_wakeup(curpeers->sync_task, TASK_WOKEN_MSG);
-                               /* If status code is success */
-                               if (curpeer->statuscode == PEER_SESS_SC_SUCCESSCODE) {
-@@ -830,14 +830,14 @@ switchstate:
-                                                 curpeer->flags |= PEER_F_TEACH_PROCESS;
-                                         }
--                                        else if ((peers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMREMOTE &&
--                                                    !(peers->flags & PEERS_F_RESYNC_ASSIGN)) {
-+                                        else if ((curpeers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMREMOTE &&
-+                                                    !(curpeers->flags & PEERS_F_RESYNC_ASSIGN)) {
-                                                 /* If peer is remote and resync from remote is needed,
-                                                    and no peer currently assigned */
-                                                 /* assign peer for a lesson */
-                                                 curpeer->flags |= PEER_F_LEARN_ASSIGN;
--                                              peers->flags |= PEERS_F_RESYNC_ASSIGN;
-+                                              curpeers->flags |= PEERS_F_RESYNC_ASSIGN;
-                                       }
-                               }
-@@ -950,8 +950,8 @@ switchstate:
-                                               if (curpeer->flags & PEER_F_LEARN_ASSIGN) {
-                                                       curpeer->flags &= ~PEER_F_LEARN_ASSIGN;
--                                                      peers->flags &= ~(PEERS_F_RESYNC_ASSIGN|PEERS_F_RESYNC_PROCESS);
--                                                      peers->flags |= (PEERS_F_RESYNC_LOCAL|PEERS_F_RESYNC_REMOTE);
-+                                                      curpeers->flags &= ~(PEERS_F_RESYNC_ASSIGN|PEERS_F_RESYNC_PROCESS);
-+                                                      curpeers->flags |= (PEERS_F_RESYNC_LOCAL|PEERS_F_RESYNC_REMOTE);
-                                               }
-                                               curpeer->confirm++;
-                                       }
-@@ -959,11 +959,11 @@ switchstate:
-                                               if (curpeer->flags & PEER_F_LEARN_ASSIGN) {
-                                                       curpeer->flags &= ~PEER_F_LEARN_ASSIGN;
--                                                      peers->flags &= ~(PEERS_F_RESYNC_ASSIGN|PEERS_F_RESYNC_PROCESS);
-+                                                      curpeers->flags &= ~(PEERS_F_RESYNC_ASSIGN|PEERS_F_RESYNC_PROCESS);
-                                                       curpeer->flags |= PEER_F_LEARN_NOTUP2DATE;
--                                                      peers->resync_timeout = tick_add(now_ms, MS_TO_TICKS(5000));
--                                                      task_wakeup(peers->sync_task, TASK_WOKEN_MSG);
-+                                                      curpeers->resync_timeout = tick_add(now_ms, MS_TO_TICKS(5000));
-+                                                      task_wakeup(curpeers->sync_task, TASK_WOKEN_MSG);
-                                               }
-                                               curpeer->confirm++;
-                                       }
-@@ -1334,8 +1334,8 @@ incomplete:
-                               /* Need to request a resync */
-                                 if ((curpeer->flags & PEER_F_LEARN_ASSIGN) &&
--                                        (peers->flags & PEERS_F_RESYNC_ASSIGN) &&
--                                        !(peers->flags & PEERS_F_RESYNC_PROCESS)) {
-+                                        (curpeers->flags & PEERS_F_RESYNC_ASSIGN) &&
-+                                        !(curpeers->flags & PEERS_F_RESYNC_PROCESS)) {
-                                       unsigned char msg[2];
-                                         /* Current peer was elected to request a resync */
-@@ -1351,7 +1351,7 @@ incomplete:
-                                                 appctx->st0 = PEER_SESS_ST_END;
-                                                 goto switchstate;
-                                         }
--                                        peers->flags |= PEERS_F_RESYNC_PROCESS;
-+                                        curpeers->flags |= PEERS_F_RESYNC_PROCESS;
-                                 }
-                               /* Nothing to read, now we start to write */
-@@ -1624,7 +1624,7 @@ incomplete:
-                                         /* Current peer was elected to request a resync */
-                                       msg[0] = PEER_MSG_CLASS_CONTROL;
--                                      msg[1] = ((peers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FINISHED) ? PEER_MSG_CTRL_RESYNCFINISHED : PEER_MSG_CTRL_RESYNCPARTIAL;
-+                                      msg[1] = ((curpeers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FINISHED) ? PEER_MSG_CTRL_RESYNCFINISHED : PEER_MSG_CTRL_RESYNCPARTIAL;
-                                       /* process final lesson message */
-                                       repl = bi_putblk(si_ic(si), (char *)msg, sizeof(msg));
-                                       if (repl <= 0) {
-diff --git a/src/proxy.c b/src/proxy.c
-index 78120d9b..bedc7ae0 100644
---- a/src/proxy.c
-+++ b/src/proxy.c
-@@ -1007,7 +1007,7 @@ void soft_stop(void)
-               p = p->next;
-       }
--      prs = peers;
-+      prs = cfg_peers;
-       while (prs) {
-               if (prs->peers_fe)
-                       stop_proxy(prs->peers_fe);
-@@ -1142,7 +1142,7 @@ void pause_proxies(void)
-               p = p->next;
-       }
--      prs = peers;
-+      prs = cfg_peers;
-       while (prs) {
-               if (prs->peers_fe)
-                       err |= !pause_proxy(prs->peers_fe);
-@@ -1176,7 +1176,7 @@ void resume_proxies(void)
-               p = p->next;
-       }
--      prs = peers;
-+      prs = cfg_peers;
-       while (prs) {
-               if (prs->peers_fe)
-                       err |= !resume_proxy(prs->peers_fe);
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0002-BUG-MINOR-lua-In-error-case-the-safe-mode-is-not-rem.patch b/net/haproxy/patches/0002-BUG-MINOR-lua-In-error-case-the-safe-mode-is-not-rem.patch
deleted file mode 100644 (file)
index ea4651d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From bcc483a9edfeb8ab69d1af83886d9e1323cffd06 Mon Sep 17 00:00:00 2001
-From: Thierry FOURNIER <thierry.fournier@ozon.io>
-Date: Wed, 12 Jul 2017 11:18:00 +0200
-Subject: [PATCH 02/18] BUG/MINOR: lua: In error case, the safe mode is not
- removed
-
-Just forgot of reset the safe mode. This have not consequences
-the safe mode just set a pointer on fucntion which is called only
-and initialises a longjmp.
-
-Out of lua execution, this longjmp is never executed and the
-function is never called.
-
-This patch should be backported in 1.6 and 1.7
-(cherry picked from commit 0a97620c080232a21ad7fce2c859a2edc9d7147e)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/hlua.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/hlua.c b/src/hlua.c
-index c862102d..4c1c2d21 100644
---- a/src/hlua.c
-+++ b/src/hlua.c
-@@ -854,6 +854,7 @@ int hlua_ctx_init(struct hlua *lua, struct task *task)
-       lua->T = lua_newthread(gL.T);
-       if (!lua->T) {
-               lua->Tref = LUA_REFNIL;
-+              RESET_SAFE_LJMP(gL.T);
-               return 0;
-       }
-       hlua_sethlua(lua);
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0003-BUG-MINOR-lua-executes-the-function-destroying-the-L.patch b/net/haproxy/patches/0003-BUG-MINOR-lua-executes-the-function-destroying-the-L.patch
deleted file mode 100644 (file)
index 2b200ee..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From 49d319a677432b69c6a69ef5331ae2ed592075c9 Mon Sep 17 00:00:00 2001
-From: Thierry FOURNIER <thierry.fournier@ozon.io>
-Date: Wed, 12 Jul 2017 13:41:33 +0200
-Subject: [PATCH 03/18] BUG/MINOR: lua: executes the function destroying the
- Lua session in safe mode
-
-When we destroy the Lua session, we manipulates Lua stack,
-so errors can raises. It will be better to catch these errors.
-
-This patch should be backported in 1.6 and 1.7
-(cherry picked from commit 75d0208009c3189b5d10793e08f27dd62a76c3ae)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/hlua.c | 17 +++++++++++++++--
- 1 file changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/src/hlua.c b/src/hlua.c
-index 4c1c2d21..2d312804 100644
---- a/src/hlua.c
-+++ b/src/hlua.c
-@@ -876,9 +876,15 @@ void hlua_ctx_destroy(struct hlua *lua)
-       /* Purge all the pending signals. */
-       hlua_com_purge(lua);
-+      if (!SET_SAFE_LJMP(lua->T))
-+              return;
-       luaL_unref(lua->T, LUA_REGISTRYINDEX, lua->Mref);
--      luaL_unref(gL.T, LUA_REGISTRYINDEX, lua->Tref);
-+      RESET_SAFE_LJMP(lua->T);
-+      if (!SET_SAFE_LJMP(gL.T))
-+              return;
-+      luaL_unref(gL.T, LUA_REGISTRYINDEX, lua->Tref);
-+      RESET_SAFE_LJMP(gL.T);
-       /* Forces a garbage collecting process. If the Lua program is finished
-        * without error, we run the GC on the thread pointer. Its freed all
-        * the unused memory.
-@@ -889,9 +895,16 @@ void hlua_ctx_destroy(struct hlua *lua)
-        * the garbage collection.
-        */
-       if (lua->flags & HLUA_MUST_GC) {
-+              if (!SET_SAFE_LJMP(lua->T))
-+                      return;
-               lua_gc(lua->T, LUA_GCCOLLECT, 0);
--              if (lua_status(lua->T) != LUA_OK)
-+              RESET_SAFE_LJMP(lua->T);
-+              if (lua_status(lua->T) != LUA_OK) {
-+                      if (!SET_SAFE_LJMP(gL.T))
-+                              return;
-                       lua_gc(gL.T, LUA_GCCOLLECT, 0);
-+                      RESET_SAFE_LJMP(gL.T);
-+              }
-       }
-       lua->T = NULL;
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0004-BUG-MAJOR-lua-socket-resources-not-detroyed-when-the.patch b/net/haproxy/patches/0004-BUG-MAJOR-lua-socket-resources-not-detroyed-when-the.patch
deleted file mode 100644 (file)
index ced02f5..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From 2823f54f706f56304970313cb14a98a4ce20d5ab Mon Sep 17 00:00:00 2001
-From: Thierry FOURNIER <thierry.fournier@ozon.io>
-Date: Sun, 16 Jul 2017 20:48:54 +0200
-Subject: [PATCH 04/18] BUG/MAJOR: lua/socket: resources not detroyed when the
- socket is aborted
-
-In some cases, the socket is misused. The user can open socket and never
-close it, or open the socket and close it without sending data. This
-causes resources leak on all resources associated to the stream (buffer,
-spoe, ...)
-
-This is caused by the stream_shutdown function which is called outside
-of the stream execution process. Sometimes, the shtudown is required
-while the stream is not started, so the cleanup is ignored.
-
-This patch change the shutdown mode of the session. Now if the session is
-no longer used and the Lua want to destroy it, it just set a destroy flag
-and the session kill itself.
-
-This patch should be backported in 1.6 and 1.7
-
-(cherry picked from cmomit b13b20a19aacb039a33f886e38a181b00c9a6d41)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- include/types/applet.h |  1 +
- src/hlua.c             | 16 ++++++++++++++--
- 2 files changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/include/types/applet.h b/include/types/applet.h
-index 46b2bc10..aee9167e 100644
---- a/include/types/applet.h
-+++ b/include/types/applet.h
-@@ -122,6 +122,7 @@ struct appctx {
-                       struct hlua_socket *socket;
-                       struct list wake_on_read;
-                       struct list wake_on_write;
-+                      int die;
-               } hlua;
-               struct {
-                       struct hlua hlua;
-diff --git a/src/hlua.c b/src/hlua.c
-index 2d312804..eb003558 100644
---- a/src/hlua.c
-+++ b/src/hlua.c
-@@ -1544,6 +1544,15 @@ static void hlua_socket_handler(struct appctx *appctx)
-       struct stream_interface *si = appctx->owner;
-       struct connection *c = objt_conn(si_opposite(si)->end);
-+      if (appctx->ctx.hlua.die) {
-+              si_shutw(si);
-+              si_shutr(si);
-+              si_ic(si)->flags |= CF_READ_NULL;
-+              hlua_com_wake(&appctx->ctx.hlua.wake_on_read);
-+              hlua_com_wake(&appctx->ctx.hlua.wake_on_write);
-+              stream_shutdown(si_strm(si), SF_ERR_KILLED);
-+      }
-+
-       /* If the connection object is not avalaible, close all the
-        * streams and wakeup everithing waiting for.
-        */
-@@ -1619,9 +1628,10 @@ __LJMP static int hlua_socket_gc(lua_State *L)
-       /* Remove all reference between the Lua stack and the coroutine stream. */
-       appctx = objt_appctx(socket->s->si[0].end);
--      stream_shutdown(socket->s, SF_ERR_KILLED);
-       socket->s = NULL;
-       appctx->ctx.hlua.socket = NULL;
-+      appctx->ctx.hlua.die = 1;
-+      appctx_wakeup(appctx);
-       return 0;
- }
-@@ -1641,10 +1651,11 @@ __LJMP static int hlua_socket_close(lua_State *L)
-               return 0;
-       /* Close the stream and remove the associated stop task. */
--      stream_shutdown(socket->s, SF_ERR_KILLED);
-       appctx = objt_appctx(socket->s->si[0].end);
-       appctx->ctx.hlua.socket = NULL;
-       socket->s = NULL;
-+      appctx->ctx.hlua.die = 1;
-+      appctx_wakeup(appctx);
-       return 0;
- }
-@@ -2316,6 +2327,7 @@ __LJMP static int hlua_socket_new(lua_State *L)
-       appctx->ctx.hlua.socket = socket;
-       appctx->ctx.hlua.connected = 0;
-+      appctx->ctx.hlua.die = 0;
-       LIST_INIT(&appctx->ctx.hlua.wake_on_write);
-       LIST_INIT(&appctx->ctx.hlua.wake_on_read);
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0005-BUG-MEDIUM-lua-bad-memory-access.patch b/net/haproxy/patches/0005-BUG-MEDIUM-lua-bad-memory-access.patch
deleted file mode 100644 (file)
index 97e4d9e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From ea3b479be6cacb399a6541a00b1bdce17b0179d0 Mon Sep 17 00:00:00 2001
-From: Thierry FOURNIER <thierry.fournier@ozon.io>
-Date: Mon, 17 Jul 2017 00:44:40 +0200
-Subject: [PATCH 05/18] BUG/MEDIUM: lua: bad memory access
-
-We cannot perform garbage collection on unreferenced thread.
-This memory is now free and another Lua process can use it for
-other things.
-
-HAProxy is monothread, so this bug doesn't cause crash.
-
-This patch must be backported in 1.6 and 1.7
-(cherry picked from commit 7bd10d58d3aecf7cf1e5ee7df01193e07128a52d)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/hlua.c | 12 +++---------
- 1 file changed, 3 insertions(+), 9 deletions(-)
-
-diff --git a/src/hlua.c b/src/hlua.c
-index eb003558..a998860e 100644
---- a/src/hlua.c
-+++ b/src/hlua.c
-@@ -895,16 +895,10 @@ void hlua_ctx_destroy(struct hlua *lua)
-        * the garbage collection.
-        */
-       if (lua->flags & HLUA_MUST_GC) {
--              if (!SET_SAFE_LJMP(lua->T))
-+              if (!SET_SAFE_LJMP(gL.T))
-                       return;
--              lua_gc(lua->T, LUA_GCCOLLECT, 0);
--              RESET_SAFE_LJMP(lua->T);
--              if (lua_status(lua->T) != LUA_OK) {
--                      if (!SET_SAFE_LJMP(gL.T))
--                              return;
--                      lua_gc(gL.T, LUA_GCCOLLECT, 0);
--                      RESET_SAFE_LJMP(gL.T);
--              }
-+              lua_gc(gL.T, LUA_GCCOLLECT, 0);
-+              RESET_SAFE_LJMP(gL.T);
-       }
-       lua->T = NULL;
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0006-DOC-update-CONTRIBUTING-regarding-optional-parts-and.patch b/net/haproxy/patches/0006-DOC-update-CONTRIBUTING-regarding-optional-parts-and.patch
deleted file mode 100644 (file)
index 7fb83b1..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From 20850d19250eb530cab889bb9059a630b3f805a3 Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Tue, 18 Jul 2017 06:56:40 +0200
-Subject: [PATCH 06/18] DOC: update CONTRIBUTING regarding optional parts and
- message format
-
-Make it clear that optional components must not break when disabled,
-that openssl is the only officially supported library and its support
-must not be broken, and that bug fixes must always be detailed.
-(cherry picked from commit 9d84cd602f4adb3954209eb14c94eea9254d1b5b)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- CONTRIBUTING | 21 ++++++++++++++++++++-
- 1 file changed, 20 insertions(+), 1 deletion(-)
-
-diff --git a/CONTRIBUTING b/CONTRIBUTING
-index 74a099bc..b2c2b493 100644
---- a/CONTRIBUTING
-+++ b/CONTRIBUTING
-@@ -69,6 +69,16 @@ code :
- Since most of these restrictions are just a matter of coding style, it is
- normally not a problem to comply.
-+When modifying some optional subsystem (SSL, Lua, compression, device detection
-+engines), please make sure the code continues to build (and to work) when these
-+features are disabled. Similarly, when modifying the SSL stack, please always
-+ensure that supported OpenSSL versions continue to build and to work, especially
-+if you modify support for alternate libraries. Clean support for the legacy
-+OpenSSL libraries is mandatory, support for its derivatives is a bonus and may
-+occasionally break eventhough a great care is taken. In other words, if you
-+provide a patch for OpenSSL you don't need to test its derivatives, but if you
-+provide a patch for a derivative you also need to test with OpenSSL.
-+
- If your work is very confidential and you can't publicly discuss it, you can
- also mail willy@haproxy.org directly about it, but your mail may be waiting
- several days in the queue before you get a response, if you get a response at
-@@ -441,13 +451,22 @@ do not think about them anymore after a few patches.
-    way the subject is built. Please see the section below for more information
-    regarding this formatting.
--   As a rule of thumb, your patch must never be made only of a subject line,
-+   As a rule of thumb, your patch MUST NEVER be made only of a subject line,
-    it *must* contain a description. Even one or two lines, or indicating
-    whether a backport is desired or not. It turns out that single-line commits
-    are so rare in the Git world that they require special manual (hence
-    painful) handling when they are backported, and at least for this reason
-    it's important to keep this in mind.
-+   Each patch fixing a bug MUST be tagged with "BUG", a severity level, an
-+   indication of the affected subsystem and a brief description of the nature
-+   of the issue in the subject line, and a detailed analysis in the message
-+   body. The explanation of the user-visible impact and the need for
-+   backporting to stable branches or not are MANDATORY. Bug fixes with no
-+   indication will simply be rejected as they are very likely to cause more
-+   harm when nobody is able to tell whether or not the patch needs to be
-+   backported or can be reverted in case of regression.
-+
- 12) Discuss on the mailing list
-    When submitting changes, please always CC the mailing list address so that
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0007-DOC-update-the-list-of-OpenSSL-versions-in-the-READM.patch b/net/haproxy/patches/0007-DOC-update-the-list-of-OpenSSL-versions-in-the-READM.patch
deleted file mode 100644 (file)
index 7be8bc0..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From 8d99949c4c51d95c14fb2b09d18e1cff058f0c17 Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Tue, 18 Jul 2017 06:58:16 +0200
-Subject: [PATCH 07/18] DOC: update the list of OpenSSL versions in the README
-
-1.1.0 is also supported nowadays. Also mention the best effort support
-for derivatives.
-(cherry picked from commit 7ab16868bc6e9d5ef879e1046effa035789835cc)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- README | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/README b/README
-index 839d06ec..8ad70e66 100644
---- a/README
-+++ b/README
-@@ -113,8 +113,12 @@ build fails due to missing symbols such as deflateInit(), then try again with
- Your are strongly encouraged to always use an up-to-date version of OpenSSL, as
- found on https://www.openssl.org/ as vulnerabilities are occasionally found and
- you don't want them on your systems. HAProxy is known to build correctly on all
--currently supported branches (0.9.8, 1.0.0, 1.0.1 and 1.0.2 at the time of
--writing). Branch 1.0.2 is recommended for the richest features.
-+currently supported branches (0.9.8, 1.0.0, 1.0.1, 1.0.2 and 1.1.0 at the time
-+of writing). Branch 1.0.2 is currently recommended for the best combination of
-+features and stability. Asynchronous engines require OpenSSL 1.1.0 though. It's
-+worth mentionning that some OpenSSL derivatives are also reported to work but
-+may occasionally break. Patches to fix them are welcome but please read the
-+CONTRIBUTING file first.
- To link OpenSSL statically against haproxy, build OpenSSL with the no-shared
- keyword and install it to a local directory, so your system is not affected :
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0008-MINOR-tools-add-a-portable-timegm-alternative.patch b/net/haproxy/patches/0008-MINOR-tools-add-a-portable-timegm-alternative.patch
deleted file mode 100644 (file)
index 4546258..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From 3e21b8d25ad148ef4e6544f28a8b2305f9484a7b Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Wed, 19 Jul 2017 19:05:29 +0200
-Subject: [PATCH 08/18] MINOR: tools: add a portable timegm() alternative
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-timegm() is not provided everywhere and the documentation on how to
-replace it is bogus as it proposes an inefficient and non-thread safe
-alternative.
-
-Here we reimplement everything needed to compute the number of seconds
-since Epoch based on the broken down fields in struct tm. It is only
-guaranteed to return correct values for correct inputs. It was successfully
-tested with all possible 32-bit values of time_t converted to struct tm
-using gmtime() and back to time_t using the legacy timegm() and this
-function, and both functions always produced the same result.
-
-Thanks to Benoît Garnier for an instructive discussion and detailed
-explanations of the various time functions, leading to this solution.
-(cherry picked from commit cb1949b8b30b8db7e05546da2939eff2b5973321)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- include/common/standard.h | 21 ++++++++++++++++++
- src/standard.c            | 54 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 75 insertions(+)
-
-diff --git a/include/common/standard.h b/include/common/standard.h
-index 87f90a65..c19c368b 100644
---- a/include/common/standard.h
-+++ b/include/common/standard.h
-@@ -624,6 +624,27 @@ static inline void get_gmtime(const time_t now, struct tm *tm)
-       gmtime_r(&now, tm);
- }
-+/* Counts a number of elapsed days since 01/01/0000 based solely on elapsed
-+ * years and assuming the regular rule for leap years applies. It's fake but
-+ * serves as a temporary origin. It's worth remembering that it's the first
-+ * year of each period that is leap and not the last one, so for instance year
-+ * 1 sees 366 days since year 0 was leap. For this reason we have to apply
-+ * modular arithmetics which is why we offset the year by 399 before
-+ * subtracting the excess at the end. No overflow here before ~11.7 million
-+ * years.
-+ */
-+static inline unsigned int days_since_zero(unsigned int y)
-+{
-+      return y * 365 + (y + 399) / 4 - (y + 399) / 100 + (y + 399) / 400
-+             - 399 / 4 + 399 / 100;
-+}
-+
-+/* Returns the number of seconds since 01/01/1970 0:0:0 GMT for GMT date <tm>.
-+ * It is meant as a portable replacement for timegm() for use with valid inputs.
-+ * Returns undefined results for invalid dates (eg: months out of range 0..11).
-+ */
-+extern time_t my_timegm(const struct tm *tm);
-+
- /* This function parses a time value optionally followed by a unit suffix among
-  * "d", "h", "m", "s", "ms" or "us". It converts the value into the unit
-  * expected by the caller. The computation does its best to avoid overflows.
-diff --git a/src/standard.c b/src/standard.c
-index 8df1da6c..e1d414f3 100644
---- a/src/standard.c
-+++ b/src/standard.c
-@@ -2841,6 +2841,60 @@ char *localdate2str_log(char *dst, time_t t, struct tm *tm, size_t size)
-       return dst;
- }
-+/* Returns the number of seconds since 01/01/1970 0:0:0 GMT for GMT date <tm>.
-+ * It is meant as a portable replacement for timegm() for use with valid inputs.
-+ * Returns undefined results for invalid dates (eg: months out of range 0..11).
-+ */
-+time_t my_timegm(const struct tm *tm)
-+{
-+      /* Each month has 28, 29, 30 or 31 days, or 28+N. The date in the year
-+       * is thus (current month - 1)*28 + cumulated_N[month] to count the
-+       * sum of the extra N days for elapsed months. The sum of all these N
-+       * days doesn't exceed 30 for a complete year (366-12*28) so it fits
-+       * in a 5-bit word. This means that with 60 bits we can represent a
-+       * matrix of all these values at once, which is fast and efficient to
-+       * access. The extra February day for leap years is not counted here.
-+       *
-+       * Jan : none      =  0 (0)
-+       * Feb : Jan       =  3 (3)
-+       * Mar : Jan..Feb  =  3 (3 + 0)
-+       * Apr : Jan..Mar  =  6 (3 + 0 + 3)
-+       * May : Jan..Apr  =  8 (3 + 0 + 3 + 2)
-+       * Jun : Jan..May  = 11 (3 + 0 + 3 + 2 + 3)
-+       * Jul : Jan..Jun  = 13 (3 + 0 + 3 + 2 + 3 + 2)
-+       * Aug : Jan..Jul  = 16 (3 + 0 + 3 + 2 + 3 + 2 + 3)
-+       * Sep : Jan..Aug  = 19 (3 + 0 + 3 + 2 + 3 + 2 + 3 + 3)
-+       * Oct : Jan..Sep  = 21 (3 + 0 + 3 + 2 + 3 + 2 + 3 + 3 + 2)
-+       * Nov : Jan..Oct  = 24 (3 + 0 + 3 + 2 + 3 + 2 + 3 + 3 + 2 + 3)
-+       * Dec : Jan..Nov  = 26 (3 + 0 + 3 + 2 + 3 + 2 + 3 + 3 + 2 + 3 + 2)
-+       */
-+      uint64_t extra =
-+              ( 0ULL <<  0*5) + ( 3ULL <<  1*5) + ( 3ULL <<  2*5) + /* Jan, Feb, Mar, */
-+              ( 6ULL <<  3*5) + ( 8ULL <<  4*5) + (11ULL <<  5*5) + /* Apr, May, Jun, */
-+              (13ULL <<  6*5) + (16ULL <<  7*5) + (19ULL <<  8*5) + /* Jul, Aug, Sep, */
-+              (21ULL <<  9*5) + (24ULL << 10*5) + (26ULL << 11*5);  /* Oct, Nov, Dec, */
-+
-+      unsigned int y = tm->tm_year + 1900;
-+      unsigned int m = tm->tm_mon;
-+      unsigned long days = 0;
-+
-+      /* days since 1/1/1970 for full years */
-+      days += days_since_zero(y) - days_since_zero(1970);
-+
-+      /* days for full months in the current year */
-+      days += 28 * m + ((extra >> (m * 5)) & 0x1f);
-+
-+      /* count + 1 after March for leap years. A leap year is a year multiple
-+       * of 4, unless it's multiple of 100 without being multiple of 400. 2000
-+       * is leap, 1900 isn't, 1904 is.
-+       */
-+      if ((m > 1) && !(y & 3) && ((y % 100) || !(y % 400)))
-+              days++;
-+
-+      days += tm->tm_mday - 1;
-+      return days * 86400ULL + tm->tm_hour * 3600 + tm->tm_min * 60 + tm->tm_sec;
-+}
-+
- /* This function check a char. It returns true and updates
-  * <date> and <len> pointer to the new position if the
-  * character is found.
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0009-BUILD-lua-replace-timegm-with-my_timegm-to-fix-build.patch b/net/haproxy/patches/0009-BUILD-lua-replace-timegm-with-my_timegm-to-fix-build.patch
deleted file mode 100644 (file)
index 623ce95..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From df1655a6c0e4431317cc66c67693281092a952b0 Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Wed, 19 Jul 2017 19:08:48 +0200
-Subject: [PATCH 09/18] BUILD: lua: replace timegm() with my_timegm() to fix
- build on Solaris 10
-
-Akhnin Nikita reported that Lua doesn't build on Solaris 10 because
-the code uses timegm() to parse a date, which is not provided there.
-The recommended way to implement timegm() is broken in the man page,
-as it is based on a change of the TZ environment variable at run time
-before calling the function (which is obviously not thread safe, and
-terribly inefficient).
-
-Here instead we rely on the new my_timegm() function, it should be
-sufficient for all known use cases.
-(cherry picked from commit abd9bb20b76818c9f461a82b72b10818736ff8b3)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/hlua_fcn.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c
-index 58905d7d..fe899a4a 100644
---- a/src/hlua_fcn.c
-+++ b/src/hlua_fcn.c
-@@ -287,7 +287,7 @@ static int hlua_parse_date(lua_State *L, int (*fcn)(const char *, int, struct tm
-        * the timezone from the broken-down time, it must be fixed
-        * after the conversion.
-        */
--      time = timegm(&tm);
-+      time = my_timegm(&tm);
-       if (time == -1) {
-               lua_pushnil(L);
-               return 1;
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0010-DOC-Updated-51Degrees-git-URL-to-point-to-a-stable-v.patch b/net/haproxy/patches/0010-DOC-Updated-51Degrees-git-URL-to-point-to-a-stable-v.patch
deleted file mode 100644 (file)
index 2deb9a3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From e14ec1d816de60b648dd7cb6c55b665f5163156b Mon Sep 17 00:00:00 2001
-From: ben51degrees <ben@51degrees.com>
-Date: Wed, 19 Jul 2017 16:22:04 +0100
-Subject: [PATCH 10/18] DOC: Updated 51Degrees git URL to point to a stable
- version.
-
-The previously documented location doesn't work anymore and must not be
-used. Warning for backports, different branches are in use depending on
-the version (v3.2.10 for 1.7, v3.2.5 for 1.6).
-(cherry picked from commit ac752ff68cd3ac88a7a27ce17daa5c3f0c839694)
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- doc/51Degrees-device-detection.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/doc/51Degrees-device-detection.txt b/doc/51Degrees-device-detection.txt
-index 1ee912d9..71b2eb76 100644
---- a/doc/51Degrees-device-detection.txt
-+++ b/doc/51Degrees-device-detection.txt
-@@ -14,7 +14,7 @@ headers as configurable parameters.
- In order to enable 51Degrees download the 51Degrees source code from the
- official github repository :
--    git clone https://github.com/51Degrees/Device-Detection
-+    git clone https://git.51Degrees.com/Device-Detection.git -b v3.2.10
- then run 'make' with USE_51DEGREES and 51DEGREES_SRC set. Both 51DEGREES_INC
- and 51DEGREES_LIB may additionally be used to force specific different paths
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0011-BUG-MINOR-http-Set-the-response-error-state-in-http_.patch b/net/haproxy/patches/0011-BUG-MINOR-http-Set-the-response-error-state-in-http_.patch
deleted file mode 100644 (file)
index 435a457..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9304b76fb37a36f6249ec963093d74210bd237f6 Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Tue, 18 Jul 2017 10:35:55 +0200
-Subject: [PATCH 11/18] BUG/MINOR: http: Set the response error state in
- http_sync_res_state
-
-This is just typo. It may only report a wrong response message state in
-"show errors" on the CLI.
-
-This patch must be backported in 1.7.
-
-(cherry picked from commit a3992e06a6e74142d9784d18d8cb3527fadb64d6)
-Signed-off-by: William Lallemand <wlallemand@haproxy.org>
----
- src/proto_http.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/proto_http.c b/src/proto_http.c
-index 94c8d639..796955f5 100644
---- a/src/proto_http.c
-+++ b/src/proto_http.c
-@@ -5530,7 +5530,7 @@ int http_sync_res_state(struct stream *s)
-                       goto http_msg_closed;
-               }
-               else if (chn->flags & CF_SHUTW) {
--                      txn->req.err_state = txn->req.msg_state;
-+                      txn->rsp.err_state = txn->rsp.msg_state;
-                       txn->rsp.msg_state = HTTP_MSG_ERROR;
-                       s->be->be_counters.cli_aborts++;
-                       if (objt_server(s->target))
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0012-MINOR-http-Reorder-rewrite-checks-in-http_resync_sta.patch b/net/haproxy/patches/0012-MINOR-http-Reorder-rewrite-checks-in-http_resync_sta.patch
deleted file mode 100644 (file)
index c26e080..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-From a49007a187ab7fddfcec58e1d9fc8a707e4531c9 Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Tue, 18 Jul 2017 11:18:46 +0200
-Subject: [PATCH 12/18] MINOR: http: Reorder/rewrite checks in
- http_resync_states
-
-The previous patch removed the forced symmetry of the TUNNEL mode during the
-state synchronization. Here, we take care to remove body analyzer only on the
-channel in TUNNEL mode. In fact, today, this change has no effect because both
-sides are switched in same time. But this way, with some changes, it will be
-possible to keep body analyzer on a side (to finish the states synchronization)
-with the other one in TUNNEL mode.
-
-WARNING: This patch will be used to fix a bug. The fix will be commited in a
-very next commit. So if the fix is backported, this one must be backported too.
-
-(cherry picked from commit f77bb539d4846ab278269b99a3165a5608ca0cf4)
-Signed-off-by: William Lallemand <wlallemand@haproxy.org>
----
- src/proto_http.c | 48 +++++++++++++++++++++++++++++-------------------
- 1 file changed, 29 insertions(+), 19 deletions(-)
-
-diff --git a/src/proto_http.c b/src/proto_http.c
-index 796955f5..aaf9f648 100644
---- a/src/proto_http.c
-+++ b/src/proto_http.c
-@@ -5577,34 +5577,27 @@ int http_resync_states(struct stream *s)
-       /* OK, both state machines agree on a compatible state.
-        * There are a few cases we're interested in :
--       *  - HTTP_MSG_TUNNEL on either means we have to disable both analysers
-        *  - HTTP_MSG_CLOSED on both sides means we've reached the end in both
-        *    directions, so let's simply disable both analysers.
--       *  - HTTP_MSG_CLOSED on the response only means we must abort the
--       *    request.
--       *  - HTTP_MSG_CLOSED on the request and HTTP_MSG_DONE on the response
--       *    with server-close mode means we've completed one request and we
--       *    must re-initialize the server connection.
-+       *  - HTTP_MSG_CLOSED on the response only or HTTP_MSG_ERROR on either
-+       *    means we must abort the request.
-+       *  - HTTP_MSG_TUNNEL on either means we have to disable analyser on
-+       *    corresponding channel.
-+       *  - HTTP_MSG_DONE or HTTP_MSG_CLOSED on the request and HTTP_MSG_DONE
-+       *    on the response with server-close mode means we've completed one
-+       *    request and we must re-initialize the server connection.
-        */
--
--      if (txn->req.msg_state == HTTP_MSG_TUNNEL ||
--          txn->rsp.msg_state == HTTP_MSG_TUNNEL ||
--          (txn->req.msg_state == HTTP_MSG_CLOSED &&
--           txn->rsp.msg_state == HTTP_MSG_CLOSED)) {
-+      if (txn->req.msg_state == HTTP_MSG_CLOSED &&
-+          txn->rsp.msg_state == HTTP_MSG_CLOSED) {
-               s->req.analysers &= AN_REQ_FLT_END;
-               channel_auto_close(&s->req);
-               channel_auto_read(&s->req);
-               s->res.analysers &= AN_RES_FLT_END;
-               channel_auto_close(&s->res);
-               channel_auto_read(&s->res);
--              if (txn->req.msg_state == HTTP_MSG_TUNNEL && HAS_REQ_DATA_FILTERS(s))
--                      s->req.analysers |= AN_REQ_FLT_XFER_DATA;
--              if (txn->rsp.msg_state == HTTP_MSG_TUNNEL && HAS_RSP_DATA_FILTERS(s))
--                      s->res.analysers |= AN_RES_FLT_XFER_DATA;
--      }
--      else if ((txn->req.msg_state >= HTTP_MSG_DONE &&
--                (txn->rsp.msg_state == HTTP_MSG_CLOSED || (s->res.flags & CF_SHUTW))) ||
--               txn->rsp.msg_state == HTTP_MSG_ERROR ||
-+      }
-+      else if (txn->rsp.msg_state == HTTP_MSG_CLOSED ||
-+               txn->rsp.msg_state == HTTP_MSG_ERROR  ||
-                txn->req.msg_state == HTTP_MSG_ERROR) {
-               s->res.analysers &= AN_RES_FLT_END;
-               channel_auto_close(&s->res);
-@@ -5615,6 +5608,23 @@ int http_resync_states(struct stream *s)
-               channel_auto_read(&s->req);
-               channel_truncate(&s->req);
-       }
-+      else if (txn->req.msg_state == HTTP_MSG_TUNNEL ||
-+               txn->rsp.msg_state == HTTP_MSG_TUNNEL) {
-+              if (txn->req.msg_state == HTTP_MSG_TUNNEL) {
-+                      s->req.analysers &= AN_REQ_FLT_END;
-+                      if (HAS_REQ_DATA_FILTERS(s))
-+                              s->req.analysers |= AN_REQ_FLT_XFER_DATA;
-+              }
-+              if (txn->rsp.msg_state == HTTP_MSG_TUNNEL) {
-+                      s->res.analysers &= AN_RES_FLT_END;
-+                      if (HAS_RSP_DATA_FILTERS(s))
-+                              s->res.analysers |= AN_RES_FLT_XFER_DATA;
-+              }
-+              channel_auto_close(&s->req);
-+              channel_auto_read(&s->req);
-+              channel_auto_close(&s->res);
-+              channel_auto_read(&s->res);
-+      }
-       else if ((txn->req.msg_state == HTTP_MSG_DONE ||
-                 txn->req.msg_state == HTTP_MSG_CLOSED) &&
-                txn->rsp.msg_state == HTTP_MSG_DONE &&
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0013-MINOR-http-Switch-requests-responses-in-TUNNEL-mode-.patch b/net/haproxy/patches/0013-MINOR-http-Switch-requests-responses-in-TUNNEL-mode-.patch
deleted file mode 100644 (file)
index ea2923d..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-From 1430a0c0f62fcff4303706f5baf2b544e00fcda3 Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Tue, 18 Jul 2017 10:48:24 +0200
-Subject: [PATCH 13/18] MINOR: http: Switch requests/responses in TUNNEL mode
- only by checking txn flags
-
-Today, the only way to have a request or a response in HTTP_MSG_TUNNEL state is
-to have the flag TX_CON_WANT_TUN set on the transaction. So this is a symmetric
-state. Both the request and the response are switch in same time in this
-state. This can be done only by checking transaction flags instead of relying on
-the other side state. This is the purpose of this patch.
-
-This way, if for any reason we need to switch only one side in TUNNEL mode, it
-will be possible. And to prepare asymmetric cases, we check channel flags in
-DONE _AND_ TUNNEL states.
-
-WARNING: This patch will be used to fix a bug. The fix will be commited in a
-very next commit. So if the fix is backported, this one must be backported too.
-
-(cherry picked from commit 4be9803914ae7156109c915659aad216e4a3c6c1)
-Signed-off-by: William Lallemand <wlallemand@haproxy.org>
----
- src/proto_http.c | 65 +++++++++++++++++++-------------------------------------
- 1 file changed, 22 insertions(+), 43 deletions(-)
-
-diff --git a/src/proto_http.c b/src/proto_http.c
-index aaf9f648..00a92cdb 100644
---- a/src/proto_http.c
-+++ b/src/proto_http.c
-@@ -5294,7 +5294,7 @@ int http_sync_req_state(struct stream *s)
-       unsigned int old_flags = chn->flags;
-       unsigned int old_state = txn->req.msg_state;
--      if (unlikely(txn->req.msg_state < HTTP_MSG_BODY))
-+      if (unlikely(txn->req.msg_state < HTTP_MSG_DONE))
-               return 0;
-       if (txn->req.msg_state == HTTP_MSG_DONE) {
-@@ -5338,13 +5338,6 @@ int http_sync_req_state(struct stream *s)
-                       goto wait_other_side;
-               }
--              if (txn->rsp.msg_state == HTTP_MSG_TUNNEL) {
--                      /* if any side switches to tunnel mode, the other one does too */
--                      channel_auto_read(chn);
--                      txn->req.msg_state = HTTP_MSG_TUNNEL;
--                      goto wait_other_side;
--              }
--
-               /* When we get here, it means that both the request and the
-                * response have finished receiving. Depending on the connection
-                * mode, we'll have to wait for the last bytes to leave in either
-@@ -5377,20 +5370,7 @@ int http_sync_req_state(struct stream *s)
-                       }
-               }
--              if (chn->flags & (CF_SHUTW|CF_SHUTW_NOW)) {
--                      /* if we've just closed an output, let's switch */
--                      s->si[1].flags |= SI_FL_NOLINGER;  /* we want to close ASAP */
--
--                      if (!channel_is_empty(chn)) {
--                              txn->req.msg_state = HTTP_MSG_CLOSING;
--                              goto http_msg_closing;
--                      }
--                      else {
--                              txn->req.msg_state = HTTP_MSG_CLOSED;
--                              goto http_msg_closed;
--                      }
--              }
--              goto wait_other_side;
-+              goto check_channel_flags;
-       }
-       if (txn->req.msg_state == HTTP_MSG_CLOSING) {
-@@ -5419,6 +5399,16 @@ int http_sync_req_state(struct stream *s)
-               goto wait_other_side;
-       }
-+ check_channel_flags:
-+      /* Here, we are in HTTP_MSG_DONE or HTTP_MSG_TUNNEL */
-+      if (chn->flags & (CF_SHUTW|CF_SHUTW_NOW)) {
-+              /* if we've just closed an output, let's switch */
-+              s->si[1].flags |= SI_FL_NOLINGER;  /* we want to close ASAP */
-+              txn->req.msg_state = HTTP_MSG_CLOSING;
-+              goto http_msg_closing;
-+      }
-+
-+
-  wait_other_side:
-       return txn->req.msg_state != old_state || chn->flags != old_flags;
- }
-@@ -5438,7 +5428,7 @@ int http_sync_res_state(struct stream *s)
-       unsigned int old_flags = chn->flags;
-       unsigned int old_state = txn->rsp.msg_state;
--      if (unlikely(txn->rsp.msg_state < HTTP_MSG_BODY))
-+      if (unlikely(txn->rsp.msg_state < HTTP_MSG_DONE))
-               return 0;
-       if (txn->rsp.msg_state == HTTP_MSG_DONE) {
-@@ -5461,14 +5451,6 @@ int http_sync_res_state(struct stream *s)
-                       goto wait_other_side;
-               }
--              if (txn->req.msg_state == HTTP_MSG_TUNNEL) {
--                      /* if any side switches to tunnel mode, the other one does too */
--                      channel_auto_read(chn);
--                      txn->rsp.msg_state = HTTP_MSG_TUNNEL;
--                      chn->flags |= CF_NEVER_WAIT;
--                      goto wait_other_side;
--              }
--
-               /* When we get here, it means that both the request and the
-                * response have finished receiving. Depending on the connection
-                * mode, we'll have to wait for the last bytes to leave in either
-@@ -5506,18 +5488,7 @@ int http_sync_res_state(struct stream *s)
-                               txn->rsp.msg_state = HTTP_MSG_TUNNEL;
-               }
--              if (chn->flags & (CF_SHUTW|CF_SHUTW_NOW)) {
--                      /* if we've just closed an output, let's switch */
--                      if (!channel_is_empty(chn)) {
--                              txn->rsp.msg_state = HTTP_MSG_CLOSING;
--                              goto http_msg_closing;
--                      }
--                      else {
--                              txn->rsp.msg_state = HTTP_MSG_CLOSED;
--                              goto http_msg_closed;
--                      }
--              }
--              goto wait_other_side;
-+              goto check_channel_flags;
-       }
-       if (txn->rsp.msg_state == HTTP_MSG_CLOSING) {
-@@ -5548,6 +5519,14 @@ int http_sync_res_state(struct stream *s)
-               goto wait_other_side;
-       }
-+ check_channel_flags:
-+      /* Here, we are in HTTP_MSG_DONE or HTTP_MSG_TUNNEL */
-+      if (chn->flags & (CF_SHUTW|CF_SHUTW_NOW)) {
-+              /* if we've just closed an output, let's switch */
-+              txn->rsp.msg_state = HTTP_MSG_CLOSING;
-+              goto http_msg_closing;
-+      }
-+
-  wait_other_side:
-       /* We force the response to leave immediately if we're waiting for the
-        * other side, since there is no pending shutdown to push it out.
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0014-BUG-MEDIUM-http-Switch-HTTP-responses-in-TUNNEL-mode.patch b/net/haproxy/patches/0014-BUG-MEDIUM-http-Switch-HTTP-responses-in-TUNNEL-mode.patch
deleted file mode 100644 (file)
index aca24c1..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From f82344c1cf20afcf77e8c3df8f9d341d659da93b Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Tue, 18 Jul 2017 11:42:08 +0200
-Subject: [PATCH 14/18] BUG/MEDIUM: http: Switch HTTP responses in TUNNEL mode
- when body length is undefined
-
-When the body length of a HTTP response is undefined, the HTTP parser is blocked
-in the body parsing. Before HAProxy 1.7, in this case, because
-AN_RES_HTTP_XFER_BODY is never set, there is no visible effect. When the server
-closes its connection to terminate the response, HAProxy catches it as a normal
-closure. Since 1.7, we always set this analyzer to enter at least once in
-http_response_forward_body. But, in the present case, when the server connection
-is closed, http_response_forward_body is called one time too many. The response
-is correctly sent to the client, but an error is catched and logged with "SD--"
-flags.
-
-To reproduce the bug, you can use the configuration "tests/test-fsm.cfg". The
-tests 3 and 21 hit the bug.
-
-Idea to fix the bug is to switch the response in TUNNEL mode without switching
-the request. This is possible because of previous patches.
-
-First, we need to detect responses with undefined body length during states
-synchronization. Excluding tunnelled transactions, when the response length is
-undefined, TX_CON_WANT_CLO is always set on the transaction. So, when states are
-synchronized, if TX_CON_WANT_CLO is set, the response is switched in TUNNEL mode
-and the request remains unchanged.
-
-Then, in http_msg_forward_body, we add a specific check to switch the response
-in DONE mode if the body length is undefined and if there is no data filter.
-
-This patch depends on following previous commits:
-
-  * MINOR: http: Switch requests/responses in TUNNEL mode only by checking txn flags
-  * MINOR: http: Reorder/rewrite checks in http_resync_states
-
-This patch must be backported in 1.7 with 2 previous ones.
-
-(cherry picked from commit 1486b0ab6de744e14ae684af105951345534f9ec)
-Signed-off-by: William Lallemand <wlallemand@haproxy.org>
----
- src/proto_http.c | 37 +++++++++++++++++++++++++------------
- 1 file changed, 25 insertions(+), 12 deletions(-)
-
-diff --git a/src/proto_http.c b/src/proto_http.c
-index 00a92cdb..e776e4d5 100644
---- a/src/proto_http.c
-+++ b/src/proto_http.c
-@@ -5354,7 +5354,16 @@ int http_sync_req_state(struct stream *s)
-                        * let's enforce it now that we're not expecting any new
-                        * data to come. The caller knows the stream is complete
-                        * once both states are CLOSED.
-+                       *
-+                       *  However, there is an exception if the response
-+                       *  length is undefined. In this case, we need to wait
-+                       *  the close from the server. The response will be
-+                       *  switched in TUNNEL mode until the end.
-                        */
-+                      if (!(txn->rsp.flags & HTTP_MSGF_XFER_LEN) &&
-+                          txn->rsp.msg_state != HTTP_MSG_CLOSED)
-+                              goto check_channel_flags;
-+
-                       if (!(chn->flags & (CF_SHUTW|CF_SHUTW_NOW))) {
-                               channel_shutr_now(chn);
-                               channel_shutw_now(chn);
-@@ -5471,8 +5480,16 @@ int http_sync_res_state(struct stream *s)
-                        * let's enforce it now that we're not expecting any new
-                        * data to come. The caller knows the stream is complete
-                        * once both states are CLOSED.
-+                       *
-+                       * However, there is an exception if the response length
-+                       * is undefined. In this case, we switch in TUNNEL mode.
-                        */
--                      if (!(chn->flags & (CF_SHUTW|CF_SHUTW_NOW))) {
-+                      if (!(txn->rsp.flags & HTTP_MSGF_XFER_LEN)) {
-+                              channel_auto_read(chn);
-+                              txn->rsp.msg_state = HTTP_MSG_TUNNEL;
-+                              chn->flags |= CF_NEVER_WAIT;
-+                      }
-+                      else if (!(chn->flags & (CF_SHUTW|CF_SHUTW_NOW))) {
-                               channel_shutr_now(chn);
-                               channel_shutw_now(chn);
-                       }
-@@ -6952,14 +6969,6 @@ int http_response_forward_body(struct stream *s, struct channel *res, int an_bit
-       if ((msg->flags & HTTP_MSGF_TE_CHNK) || (msg->flags & HTTP_MSGF_COMPRESSING))
-               res->flags |= CF_EXPECT_MORE;
--      /* If there is neither content-length, nor transfer-encoding header
--       * _AND_ there is no data filtering, we can safely forward all data
--       * indefinitely. */
--      if (!(msg->flags & HTTP_MSGF_XFER_LEN) && !HAS_DATA_FILTERS(s, res)) {
--              buffer_flush(res->buf);
--              channel_forward_forever(res);
--      }
--
-       /* the stream handler will take care of timeouts and errors */
-       return 0;
-@@ -7036,9 +7045,13 @@ http_msg_forward_body(struct stream *s, struct http_msg *msg)
-               goto missing_data_or_waiting;
-       }
--      /* The server still sending data that should be filtered */
--      if (!(msg->flags & HTTP_MSGF_XFER_LEN) && !(chn->flags & CF_SHUTR))
--              goto missing_data_or_waiting;
-+      /* This check can only be true for a response. HTTP_MSGF_XFER_LEN is
-+       * always set for a request. */
-+      if (!(msg->flags & HTTP_MSGF_XFER_LEN)) {
-+              /* The server still sending data that should be filtered */
-+              if (!(chn->flags & CF_SHUTR) && HAS_DATA_FILTERS(s, chn))
-+                      goto missing_data_or_waiting;
-+      }
-       msg->msg_state = HTTP_MSG_ENDING;
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0015-BUG-MAJOR-http-Fix-possible-infinity-loop-in-http_sy.patch b/net/haproxy/patches/0015-BUG-MAJOR-http-Fix-possible-infinity-loop-in-http_sy.patch
deleted file mode 100644 (file)
index 1552dfc..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From af9b52e92be8ca6a07f9156dcb0b08dd2ad8db75 Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Thu, 20 Jul 2017 11:05:10 +0200
-Subject: [PATCH 15/18] BUG/MAJOR: http: Fix possible infinity loop in
- http_sync_(req|res)_state
-
-In commit "MINOR: http: Switch requests/responses in TUNNEL mode only by
-checking txn flags", it is possible to have an infinite loop on HTTP_MSG_CLOSING
-state.
-
-(cherry picked from commit 56d260916f61e48c8b2f1fd2f9431afac776d160)
-Signed-off-by: William Lallemand <wlallemand@haproxy.org>
----
- src/proto_http.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/proto_http.c b/src/proto_http.c
-index e776e4d5..4a030013 100644
---- a/src/proto_http.c
-+++ b/src/proto_http.c
-@@ -5394,8 +5394,8 @@ int http_sync_req_state(struct stream *s)
-               else if (chn->flags & CF_SHUTW) {
-                       txn->req.err_state = txn->req.msg_state;
-                       txn->req.msg_state = HTTP_MSG_ERROR;
--                      goto wait_other_side;
-               }
-+              goto wait_other_side;
-       }
-       if (txn->req.msg_state == HTTP_MSG_CLOSED) {
-@@ -5523,8 +5523,8 @@ int http_sync_res_state(struct stream *s)
-                       s->be->be_counters.cli_aborts++;
-                       if (objt_server(s->target))
-                               objt_server(s->target)->counters.cli_aborts++;
--                      goto wait_other_side;
-               }
-+              goto wait_other_side;
-       }
-       if (txn->rsp.msg_state == HTTP_MSG_CLOSED) {
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0016-BUG-MINOR-lua-Fix-Server.get_addr-port-values.patch b/net/haproxy/patches/0016-BUG-MINOR-lua-Fix-Server.get_addr-port-values.patch
deleted file mode 100644 (file)
index 0e1d9ab..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From c00347899e9f0c3420f98c53eab1469644e28e06 Mon Sep 17 00:00:00 2001
-From: Nenad Merdanovic <nmerdan@haproxy.com>
-Date: Sun, 23 Jul 2017 22:04:58 -0400
-Subject: [PATCH 16/18] BUG/MINOR: lua: Fix Server.get_addr() port values
-
-The get_addr() method of the Lua Server class was using the
-'sockaddr_storage addr' member to get the port value. HAProxy does not
-store ports in this member as it uses a separate member, called
-'svc_port'.
-
-This fix should be backported to 1.7.
-
-(cherry picked from commit 3849473828f319829aff422d2fbbce0823e65d64)
-Signed-off-by: William Lallemand <wlallemand@haproxy.org>
----
- src/hlua_fcn.c | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c
-index fe899a4a..0752220e 100644
---- a/src/hlua_fcn.c
-+++ b/src/hlua_fcn.c
-@@ -545,8 +545,7 @@ int hlua_server_get_addr(lua_State *L)
-                         addr, INET_ADDRSTRLEN);
-               luaL_addstring(&b, addr);
-               luaL_addstring(&b, ":");
--              snprintf(addr, INET_ADDRSTRLEN, "%d",
--                       ntohs(((struct sockaddr_in *)&srv->addr)->sin_port));
-+              snprintf(addr, INET_ADDRSTRLEN, "%d", srv->svc_port);
-               luaL_addstring(&b, addr);
-               break;
-       case AF_INET6:
-@@ -554,8 +553,7 @@ int hlua_server_get_addr(lua_State *L)
-                         addr, INET_ADDRSTRLEN);
-               luaL_addstring(&b, addr);
-               luaL_addstring(&b, ":");
--              snprintf(addr, INET_ADDRSTRLEN, "%d",
--                       ntohs(((struct sockaddr_in6 *)&srv->addr)->sin6_port));
-+              snprintf(addr, INET_ADDRSTRLEN, "%d", srv->svc_port);
-               luaL_addstring(&b, addr);
-               break;
-       case AF_UNIX:
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0017-BUG-MINOR-lua-Correctly-use-INET6_ADDRSTRLEN-in-Serv.patch b/net/haproxy/patches/0017-BUG-MINOR-lua-Correctly-use-INET6_ADDRSTRLEN-in-Serv.patch
deleted file mode 100644 (file)
index 408b42d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From e79fe9bc0ae363e91555f1ba64889e2ddf475b8e Mon Sep 17 00:00:00 2001
-From: Nenad Merdanovic <nmerdan@haproxy.com>
-Date: Sun, 23 Jul 2017 22:04:59 -0400
-Subject: [PATCH 17/18] BUG/MINOR: lua: Correctly use INET6_ADDRSTRLEN in
- Server.get_addr()
-
-The get_addr() method of the Lua Server class incorrectly used
-INET_ADDRSTRLEN for IPv6 addresses resulting in failing to convert
-longer IPv6 addresses to strings.
-
-This fix should be backported to 1.7.
-
-(cherry picked from commit a9f040453acc09e888c3f2dc983f15dcf3fa66e3)
-Signed-off-by: William Lallemand <wlallemand@haproxy.org>
----
- src/hlua_fcn.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c
-index 0752220e..f8b9b5ec 100644
---- a/src/hlua_fcn.c
-+++ b/src/hlua_fcn.c
-@@ -550,7 +550,7 @@ int hlua_server_get_addr(lua_State *L)
-               break;
-       case AF_INET6:
-               inet_ntop(AF_INET6, &((struct sockaddr_in6 *)&srv->addr)->sin6_addr,
--                        addr, INET_ADDRSTRLEN);
-+                        addr, INET6_ADDRSTRLEN);
-               luaL_addstring(&b, addr);
-               luaL_addstring(&b, ":");
-               snprintf(addr, INET_ADDRSTRLEN, "%d", srv->svc_port);
--- 
-2.13.0
-
diff --git a/net/haproxy/patches/0018-BUG-MINOR-lua-always-detach-the-tcp-http-tasks-befor.patch b/net/haproxy/patches/0018-BUG-MINOR-lua-always-detach-the-tcp-http-tasks-befor.patch
deleted file mode 100644 (file)
index c1f2310..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From dd18f945c26fc30872a52c66b06b5a0a86b10060 Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Mon, 24 Jul 2017 17:35:27 +0200
-Subject: [PATCH 18/18] BUG/MINOR: lua: always detach the tcp/http tasks before
- freeing them
-
-In hlua_{http,tcp}_applet_release(), a call to task_free() is performed
-to release the task, but no task_delete() is made on these tasks. Till
-now it wasn't much of a problem because this was normally not done with
-the task in the run queue, and the task was never put into the wait queue
-since it doesn't have any timer. But with threading it will become an
-issue. And not having this already prevents another bug from being fixed.
-
-Thanks to Christopher for spotting this one. A backport to 1.7 and 1.6 is
-preferred for safety.
-
-(cherry picked from commit bd7fc95edbce821f1d7b745a7b75deef4d6b1e27)
-Signed-off-by: William Lallemand <wlallemand@haproxy.org>
----
- src/hlua.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/hlua.c b/src/hlua.c
-index a998860e..67b9458c 100644
---- a/src/hlua.c
-+++ b/src/hlua.c
-@@ -5948,6 +5948,7 @@ error:
- static void hlua_applet_tcp_release(struct appctx *ctx)
- {
-+      task_delete(ctx->ctx.hlua_apptcp.task);
-       task_free(ctx->ctx.hlua_apptcp.task);
-       ctx->ctx.hlua_apptcp.task = NULL;
-       hlua_ctx_destroy(&ctx->ctx.hlua_apptcp.hlua);
-@@ -6226,6 +6227,7 @@ error:
- static void hlua_applet_http_release(struct appctx *ctx)
- {
-+      task_delete(ctx->ctx.hlua_apphttp.task);
-       task_free(ctx->ctx.hlua_apphttp.task);
-       ctx->ctx.hlua_apphttp.task = NULL;
-       hlua_ctx_destroy(&ctx->ctx.hlua_apphttp.hlua);
--- 
-2.13.0
-
index 381878c384dc64a5aaec68b8d4256483b4406013..c18e7454e2b45d5a39c90a200977f67f14717d6d 100644 (file)
@@ -8,15 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=horst
-PKG_VERSION:=5.0
+PKG_VERSION:=5.1
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-git.tar.gz
-PKG_MIRROR_HASH:=3a677e504e8a1f27c899dfbf39da8c94412b24b08bb2eab0de7807cef07d078b
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=git://github.com/br101/horst.git
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=version-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/br101/horst/archive/v$(PKG_VERSION)/
+PKG_HASH:=74b4cb1143d93c73c3b4bbbe0c36f89a790401bde9e894e94e2a27339ca384d9
 
 PKG_MAINTAINER:=Bruno Randolf <br1@einfach.org>
 PKG_LICENSE:=GPL-2.0+
@@ -43,10 +40,18 @@ define Package/horst/description
        and especially IBSS (ad-hoc) mode and mesh networks (OLSR).
 endef
 
+define Package/horst/conffiles
+/etc/config/horst
+endef
+
 define Package/horst/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/horst $(1)/usr/sbin/
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/horst.sh $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./horst.init $(1)/etc/init.d/horst
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./horst.config $(1)/etc/config/horst
 endef
 
 $(eval $(call BuildPackage,horst))
diff --git a/net/horst/horst.config b/net/horst/horst.config
new file mode 100644 (file)
index 0000000..17c0097
--- /dev/null
@@ -0,0 +1,4 @@
+config init 'init'
+       option disabled 1
+       option interface 'mon0'
+       option scan 1
diff --git a/net/horst/horst.init b/net/horst/horst.init
new file mode 100755 (executable)
index 0000000..bba67a2
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh /etc/rc.common
+
+START=94
+
+USE_PROCD=1
+PROG=/usr/sbin/horst
+
+start_service() {
+       config_load horst
+       config_get dis "init" 'disabled' '0'
+       [ "$dis" == "0" ] || exit
+
+       config_get intf "init" 'interface' 'wlan0'
+       config_get scan "init" 'scan' '0'
+       [ "$scan" == "0" ] && scan='' || scan="-s"
+
+       procd_open_instance
+       procd_set_param command $PROG -q -i $intf $scan -N
+       procd_set_param netdev $intf
+       procd_set_param respawn
+       procd_close_instance
+}
diff --git a/net/horst/patches/0001-Remove-_GNU_SOURCE-from-ccan-config.patch b/net/horst/patches/0001-Remove-_GNU_SOURCE-from-ccan-config.patch
deleted file mode 100644 (file)
index eeab738..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From c91e2f6d72823938052044eef858c3c675617ae4 Mon Sep 17 00:00:00 2001
-From: Bruno Randolf <br1@einfach.org>
-Date: Wed, 15 Mar 2017 21:22:48 +0000
-Subject: [PATCH] Remove _GNU_SOURCE from ccan config
-
-It creates problems with LEDEs FORTIFY and is not needed
----
- config.h | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/config.h b/config.h
-index 5c398c4..7e1027a 100644
---- a/config.h
-+++ b/config.h
-@@ -1,8 +1,5 @@
- /* Generated by CCAN configurator */
- #ifndef CCAN_CONFIG_H
- #define CCAN_CONFIG_H
--#ifndef _GNU_SOURCE
--#define _GNU_SOURCE /* Always use GNU extensions. */
--#endif
- #define HAVE_TYPEOF 1
- #endif /* CCAN_CONFIG_H */
--- 
-2.7.4
-
index 64b635c630fb237fd4f5d2ab737d0081857ac690..2650597e87e0b9a2d79f68ae9061fa3b464f914e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=htpdate
 PKG_VERSION:=1.1.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.vervest.org/htp/archive/c/
@@ -26,7 +26,8 @@ define Package/htpdate
   CATEGORY:=Network
   TITLE:=an HTP (Hypertext Time Protocol) implementation
   URL:=http://www.vervest.com/htp/
-  MAINTAINER:=Tijs Van Buggenhout <tvbuggen@netzerk.be>
+  MAINTAINER:=Tijs Van Buggenhout <tvbuggen@netzerk.be>, \
+              Marcin Jurkowski <marcin1j@gmail.com>
 endef
 
 define Package/htpdate/description
@@ -38,7 +39,7 @@ define Package/htpdate/description
 endef
 
 define Package/htpdate/conffiles
-/etc/default/htpdate
+/etc/config/htpdate
 endef
 
 define Build/Compile
@@ -50,8 +51,8 @@ endef
 define Package/htpdate/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/htpdate $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/etc/default/
-       $(INSTALL_CONF) ./files/htpdate.default $(1)/etc/default/htpdate
+       $(INSTALL_DIR) $(1)/etc/config/
+       $(INSTALL_CONF) ./files/htpdate.conf $(1)/etc/config/htpdate
        $(INSTALL_DIR) $(1)/etc/init.d/
        $(INSTALL_BIN) ./files/htpdate.init $(1)/etc/init.d/htpdate
 endef
diff --git a/net/htpdate/files/htpdate.conf b/net/htpdate/files/htpdate.conf
new file mode 100644 (file)
index 0000000..46bdf44
--- /dev/null
@@ -0,0 +1,11 @@
+config htpdate 'htpdate'
+       option enabled 1
+       list server 'www.google.com'
+       list server 'www.yahoo.com'
+       list server 'www.linux.com'
+       list server 'www.freebsd.org'
+       option proxy_host ''
+       option proxy_port '8080'
+       option debug 0
+       option sanity_check 1
+       #list option '-4'
diff --git a/net/htpdate/files/htpdate.default b/net/htpdate/files/htpdate.default
deleted file mode 100644 (file)
index 94674fd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-OPTIONS="www.google.com www.yahoo.com www.linux.org www.freebsd.org"
index 1409321df9c56f6707b04701a2cc5cc5b436fb6c..88176c84cc7c3be2d3fee74a388b993f8670b05a 100644 (file)
@@ -2,18 +2,53 @@
 # Copyright (C) 2006 OpenWrt.org
 
 START=49
-BIN=htpdate
-DEFAULT=/etc/default/$BIN
-RUN_D=/var/run
-PID_F=$RUN_D/$BIN.pid
-
-start() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       mkdir -p $RUN_D
-       $BIN -l -s -t $OPTIONS && $BIN -D $OPTIONS
+USE_PROCD=1
+PROG=/usr/sbin/htpdate
+
+
+
+
+validate_htpdate_section() {
+       uci_validate_section htpdate htpdate "${1}" \
+               'server:list(host)' \
+               'proxy_host:host' \
+               'proxy_port:port:8080' \
+               'debug:bool:0' \
+               'sanity_check:bool:1' \
+               'option:list(string)' \
+               'enabled:bool:1'
 }
 
-stop() {
-       [ -f $PID_F ] && kill $(cat $PID_F)
+
+start_service() {
+       local server proxy debug sanity_check option enabled
+
+        validate_htpdate_section htpdate || {
+               echo "validation failed"
+               return 1
+       }
+
+       [ "$enabled" = 0 ] && return
+
+
+       procd_open_instance
+       procd_set_param command "$PROG" -f
+
+       [ -n "$proxy" ] && procd_append_param command -P $proxy:$proxy_port
+       [ "$debug" = "1" ] && procd_append_param command -d
+       [ "$sanity_check" = "0" ] && procd_append_param command -t
+       [ -n "$option" ] && procd_append_param command $option
+       for peer in $server; do
+               procd_append_param command $peer
+       done
+
+       procd_set_param stdout 1
+       procd_set_param stderr 1
+       procd_set_param respawn
+       procd_close_instance
 }
 
+service_triggers() {
+       procd_add_reload_trigger "htpdate"
+       procd_add_validation validate_htpdate_section
+}
diff --git a/net/htpdate/patches/101-daemon-run-in-foreground.patch b/net/htpdate/patches/101-daemon-run-in-foreground.patch
new file mode 100644 (file)
index 0000000..a68365a
--- /dev/null
@@ -0,0 +1,40 @@
+--- a/htpdate.c
++++ b/htpdate.c
+@@ -395,6 +395,7 @@ Usage: htpdate [-046abdhlqstxD] [-i pid
+   -b    burst mode\n\
+   -d    debug mode\n\
+   -D    daemon mode\n\
++  -f    run in foreground\n\
+   -h    help\n\
+   -i    pid file\n\
+   -l    use syslog for output\n\
+@@ -510,7 +511,7 @@ int main( int argc, char *argv[] ) {
+       /* Parse the command line switches and arguments */
+-      while ( (param = getopt(argc, argv, "046abdhi:lm:p:qstu:xDM:P:") ) != -1)
++      while ( (param = getopt(argc, argv, "046abdhi:lm:p:qstu:xDfM:P:") ) != -1)
+       switch( param ) {
+               case '0':                       /* HTTP/1.0 */
+@@ -593,6 +594,9 @@ int main( int argc, char *argv[] ) {
+                       daemonize = 1;
+                       logmode = 1;
+                       break;
++              case 'f':                       /* run in foreground */
++                      daemonize = 2;
++                      break;
+               case 'M':                       /* maximum poll interval */
+                       if ( ( maxsleep = atoi(optarg) ) <= 0 ) {
+                               fputs( "Invalid sleep time\n", stderr );
+@@ -631,7 +635,9 @@ int main( int argc, char *argv[] ) {
+       /* Run as a daemonize when -D is set */
+       if ( daemonize ) {
+-              runasdaemon( pidfile );
++              if ( daemonize == 1 ) {
++                      runasdaemon( pidfile );
++              }
+               /* Query only mode doesn't exist in daemon mode */
+               if ( !setmode )
+                       setmode = 1;
index 100a3d105cab93c3f3b1585ceeb28d5b76b3738d..f95fc14c8c030d2c89f2d29b848e529cd19b55f1 100644 (file)
@@ -8,18 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=inadyn
-PKG_VERSION=2017-02-02
+PKG_VERSION=2.2
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Daniel Engberg <daniel.engberg.lists@pyret.net>
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/troglobit/inadyn
-PKG_SOURCE_SUBDIR=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=3b9ae1c22f96194232cc86ded33af9e0a1602af2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=9db6cd8d2b421d8bc61d4ae60c8215a86d73657746a1b06d79f4fbfd79734f6e
+PKG_SOURCE_URL:=https://github.com/troglobit/inadyn/releases/download/v$(PKG_VERSION)
+PKG_HASH:=27aed84a3d04591540b01ef91a5af4b02cbd0e0c20db36a2660453780bd645f6
 
 PKG_FIXUP:=autoreconf
 
@@ -46,7 +43,6 @@ CONFIGURE_ARGS += --enable-shared --disable-static --enable-openssl
 
 define Package/inadyn/install
        $(INSTALL_DIR) $(1)/etc
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/examples/dyndns.conf $(1)/etc/inadyn.conf
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/inadyn $(1)/usr/sbin/
 endef
index 2961181a53d0ab8ed4a354e9e2929a44d617a273..f31adbd9c3bb93381bbf68af211cfb9aac12f5d2 100644 (file)
@@ -163,6 +163,7 @@ PKG_TINYCBOR_NAME:=tinycbor
 PKG_TINYCBOR_PROTO:=git
 PKG_TINYCBOR_VERSION:=0.4
 PKG_TINYCBOR_SOURCE_VERSION:=a088996aa5f59b4f27f20fadad053d88bee357d4
+PKG_TINYCBOR_MIRROR_HASH:=77c600bd7362df8291148fa3d94ca780815ea2b74b817dca7565310ea0abff96
 PKG_TINYCBOR_SOURCE:=$(PKG_TINYCBOR_NAME)-$(PKG_TINYCBOR_VERSION).tar.bz2
 PKG_TINYCBOR_SOURCE_URL:=https://github.com/01org/tinycbor.git
 PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
@@ -170,6 +171,7 @@ PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
 define Download/iotivity-tinycbor
   FILE:=$(PKG_TINYCBOR_SOURCE)
   URL:=$(PKG_TINYCBOR_SOURCE_URL)
+  MIRROR_HASH:=$(PKG_TINYCBOR_MIRROR_HASH)
   PROTO:=$(PKG_TINYCBOR_PROTO)
   VERSION:=$(PKG_TINYCBOR_SOURCE_VERSION)
   SUBDIR:=$(PKG_TINYCBOR_SUBDIR)
index 76711f3f9f5c0358350ce3e1d4206aac2ee84651..b77860dc2f2af79c441e1e481b6847681fc082d0 100644 (file)
@@ -12,7 +12,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knxd
 PKG_VERSION:=0.14.18
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/knxd/knxd.git
@@ -47,7 +47,8 @@ EIB KNX Daemon
 endef
 
 define Package/knxd/conffiles
-/etc/config/knxd.ini
+/etc/knxd.ini
+/etc/config/knxd
 endef
 
 TARGET_CXXFLAGS+= -std=c++0x
@@ -72,7 +73,8 @@ define Package/knxd/install
        $(INSTALL_BIN) ./files/knxd.init $(1)/etc/init.d/knxd
 
        $(INSTALL_DIR) $(1)/etc/config
-       $(INSTALL_DATA) ./files/knxd.ini $(1)/etc/config/knxd.ini
+       $(INSTALL_DATA) ./files/knxd.ini $(1)/etc/knxd.ini
+       $(INSTALL_DATA) ./files/knxd.config $(1)/etc/config/knxd
 endef
 
 $(eval $(call BuildPackage,knxd))
diff --git a/net/knxd/files/knxd.config b/net/knxd/files/knxd.config
new file mode 100644 (file)
index 0000000..81dacaa
--- /dev/null
@@ -0,0 +1,43 @@
+config daemon args
+       # driver:[arg]  a Layer-2 driver to use (knxd supports more than one)
+       #option layer2 ""
+       # enable caching of group communication networkstate
+       option GroupCache 0
+       # FILE start the programm as daemon. Output will be written to FILE if given
+       option daemon "/var/log/knxd.log"
+       #enable the EIBnet/IP server to answer discovery and description requests (SEARCH, DESCRIPTION)
+       option Discovery 1
+       # EIBADDR set our EIB address to EIBADDR (default 0.0.1)
+       option eibaddr "0.0.2"
+       # LEVEL set error level
+       option error 0
+       # PORT listen at TCP port PORT (default 6720)
+       option listen_tcp "6720"
+       # wait for L_Data_ind while sending (for all EMI based backends)
+       option no_emisend_queuing 0
+       # SERVERNAME name of the EIBnet/IP server (default is 'knxd')
+       option Name "KNX2"
+       # do not assume KNXnet/IP Tunneling bus interface can handle parallel cEMI requests
+       option no_tunnel_client_queuing 0
+       # the next Layer2 interface may not enter monitor mode
+       option no_monitor 0
+       # enable EIBnet/IP Routing in the EIBnet/IP server
+       option Routing 1
+       # [ip[:port]] starts an EIBnet/IP multicast server
+       option Server '224.0.23.12'
+       # MASK set trace flags (bitmask)
+       option trace 0
+       # tpuarts backend should generate L2 acks for all group telegrams
+       option tpuarts_ack_all_group 0
+       # tpuarts backend should generate L2 acks for all individual telegrams
+       option tpuarts_ack_all_individual 0
+       # tpuarts backend should should use a full interface reset (for Disch TPUART interfaces)
+       option tpuarts_disch_reset 0
+       # enable EIBnet/IP Tunneling in the EIBnet/IP server
+       option Tunnelling 1
+       # FILE  listen at Unix domain socket FILE (default /tmp/eib)
+       option listen_local "/var/run/knxd"
+       # example with tpuarts interface
+       # option url 'tpuarts:/dev/ttyAMA0'
+       # example with IP interface in tunnel mode
+       option url 'usb:'
index d3f8475554b914d1dd8837c6aef9a3c35552fa29..92a08a12a99fe238716960b976fa682ac52cbb07 100644 (file)
@@ -33,15 +33,14 @@ start_service() {
        local options url
        config_load knxd
        append_parm args eibaddr "eibaddr" "0.0.1"
-       append_parm args client-addrs "client-addrs" "0.0.2:10"
+       append_parm args client_addrs "client-addrs" "0.0.2:10"
        append_parm args layer2 "layer2"
        append_bool args GroupCache "GroupCache" 0
        append_parm args daemon "daemon" "/var/log/knxd.log"
-       append_bool args Discovery "Discovery" 1
        append_parm args error "error" # "5"
        append_parm args listen_tcp "listen-tcp" "6720"
        append_parm args Interface "Interface" # "eth0"
-       append_parm args send-delay "send-delay" # "50"
+       append_parm args send_delay "send-delay" # "50"
        append_parm args Name "Name" "OpenWrt"
        append_bool args no_monitor "no-monitor" 0
        append_bool args Routing "Routing" 0
@@ -50,11 +49,17 @@ start_service() {
        append_bool args tpuarts_ack_all_individual "tpuarts-ack-all-individual" 0
        append_bool args tpuarts_disch_reset "tpuarts-disch-reset" 0
        append_bool args Tunnelling "Tunnelling" 1
-       append_bool args Server "Server" 1
+       append_bool args Discovery "Discovery" 1
+       append_parm args Server "Server" "224.0.23.12"
        append_parm args listen_local "listen-local" "/var/run/knxd"
        config_get url args url
+       if [ "$url" == "usb:" ] ; then
+               url="usb:""$(findknxusb | tail -n1 | sed -e 's/device: \([0-9]:[0-9]:[0-9]\):[0-9].*/\1/')"
+       fi
+       echo "/usr/lib/knxd_args $params $url"
+       /usr/lib/knxd_args $params $url > /tmp/etc/knxd.ini
        procd_open_instance
-       procd_set_param command $PROG $params $url
+       procd_set_param command $PROG "/tmp/etc/knxd.ini"
        procd_set_param respawn
        procd_close_instance
 }
diff --git a/net/l7-protocols/Makefile b/net/l7-protocols/Makefile
deleted file mode 100644 (file)
index b9f0310..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# Copyright (C) 2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=l7-protocols
-PKG_VERSION:=2009-05-28
-PKG_RELEASE:=2
-PKG_LICENSE:=GPL-2.0
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/l7-filter
-PKG_HASH:=d6bf98a69268558543bd32fccea287cb3f14b37521d18c790e2b6f8dcfaa5381
-
-include $(INCLUDE_DIR)/uclibc++.mk
-include $(INCLUDE_DIR)/package.mk
-
-define Package/l7-protocols
-  SECTION:=net
-  CATEGORY:=Network
-  TITLE:=Protocols for layer7 filtering
-  URL:=http://l7-filter.sourceforge.net/
-  SUBMENU:=Firewall
-  MAINTAINER:=Lim Guo Wei <limguowei@gmail.com>
-  DEPENDS:=iptables-mod-filter
-endef
-
-define Package/l7-protocols/description
-       l7-filter classifies packets based on patterns in application
-       layer data. This allows correct classification of P2P traffic that
-       uses unpredictable ports as well as standard protocols running on
-       non-standard ports.
-endef
-
-define Package/l7-protocols-testing
-       $(call Package/l7-protocols)
-       TITLE:=testing utilities for layer7
-       DEPENDS+=l7-protocols $(CXX_DEPENDS)
-endef
-
-define Package/l7-protocols-testing/description
-       testing utilities for layer 7 patterns
-endef
-
-define Build/Configure
-endef
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_l7-protocols-testing),)
-  define Build/Compile
-       cd $(PKG_BUILD_DIR)/testing && $(MAKE) $(CONFIGURE_VARS)
-  endef
-else
-  define Build/Compile
-  endef
-endif
-
-define Package/l7-protocols/install
-       find $(PKG_BUILD_DIR) -name "README" -delete
-       $(INSTALL_DIR) $(1)/etc/l7-protocols
-       $(CP) $(PKG_BUILD_DIR)/extra \
-               $(PKG_BUILD_DIR)/file_types \
-               $(PKG_BUILD_DIR)/groups.sh \
-               $(PKG_BUILD_DIR)/malware \
-               $(PKG_BUILD_DIR)/protocols \
-               $(1)/etc/l7-protocols
-endef
-
-define Package/l7-protocols-testing/install
-       $(INSTALL_DIR) $(1)/etc/l7-protocols/testing
-       $(CP) $(PKG_BUILD_DIR)/testing/data \
-               $(1)/etc/l7-protocols/testing
-       $(INSTALL_BIN) \
-               $(PKG_BUILD_DIR)/testing/rand{chars,printable} \
-               $(PKG_BUILD_DIR)/testing/test_speed-{kernel,userspace} \
-               $(PKG_BUILD_DIR)/testing/match_kernel \
-               $(PKG_BUILD_DIR)/testing/doallspeeds.sh \
-               $(PKG_BUILD_DIR)/testing/test_match.sh \
-               $(PKG_BUILD_DIR)/testing/timeit.sh \
-               $(1)/etc/l7-protocols/testing
-endef
-
-$(eval $(call BuildPackage,l7-protocols))
-$(eval $(call BuildPackage,l7-protocols-testing))
diff --git a/net/l7-protocols/patches/100-testing_crosscompile.patch b/net/l7-protocols/patches/100-testing_crosscompile.patch
deleted file mode 100644 (file)
index b5d3953..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/testing/Makefile
-+++ b/testing/Makefile
-@@ -1,19 +1,19 @@
- all: randchars randprintable test_speed-kernel test_speed-userspace match_kernel
- randchars: randchars.c
--      gcc -O2 -o randchars randchars.c
-+      $(CC) $(CFLAGS) -o randchars randchars.c
- randprintable: randprintable.c
--      gcc -O2 -o randprintable randprintable.c
-+      $(CC) $(CFLAGS) -o randprintable randprintable.c
- test_speed-kernel: test_speed-kernel.c
--      gcc -o test_speed-kernel test_speed-kernel.c
-+      $(CC) $(CFLAGS) -o test_speed-kernel test_speed-kernel.c
- test_speed-userspace: test_speed-userspace.cpp l7-parse-patterns.cpp l7-parse-patterns.h
--      g++ -Wall -o test_speed-userspace test_speed-userspace.cpp l7-parse-patterns.cpp
-+      $(CXX) $(CXXFLAGS) -Wall -o test_speed-userspace test_speed-userspace.cpp l7-parse-patterns.cpp
- match_kernel: match-kernel.c
--      gcc -O2 -o match_kernel match-kernel.c
-+      $(CC) $(CFLAGS) -o match_kernel match-kernel.c
- clean:
-       rm -f randprintable randchars test_speed-kernel test_speed-userspace match_kernel
diff --git a/net/l7-protocols/patches/101-testing-timeit.patch b/net/l7-protocols/patches/101-testing-timeit.patch
deleted file mode 100644 (file)
index 6656889..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
---- a/testing/timeit.sh
-+++ b/testing/timeit.sh
-@@ -1,11 +1,8 @@
- #!/bin/bash
--# "man 1 time" for details
--export TIME="%U seconds"
--
- add()
- {
--      if ! dc -e ""; then
-+      if ! dc p >/dev/null 2>&1; then
-               echo you do not have dc, so I cannot add these numbers...
-               exit 1
-       fi
-@@ -14,7 +11,7 @@ add()
-       tot=0
-       while read n; do
--              tot=`dc -e "$n $tot + pop" 2> /dev/null`
-+              tot=`dc $n $tot + p 2> /dev/null`
-       done
-       echo $tot seconds
-@@ -34,7 +31,7 @@ extract()
- if [ ! $3 ] || [ $2 == "-h" ] || [ $2 == "--help" ]; then
-       echo
--      echo Syntax: ./timeit.sh patternfile kernel\|userspace all\|print\|real [data_files]
-+      echo Syntax: .//usr/bin/timeit.sh patternfile kernel\|userspace all\|print\|real [data_files]
-       echo
-       echo \"kernel\" uses the kernel pattern and library
-       echo \"userspace\" uses userspace pattern and library
-@@ -72,12 +69,12 @@ echo Timing $1
- if [ $3 == "all" ]; then
-       echo Using all characters
-       if [ $2 == "kernel" ]; then
--              if ! ./randchars | time $speedprog "`extract $1`" verbose; then
-+              if ! ./randchars | /usr/bin/time $speedprog "`extract $1`" verbose 2>&1 >/dev/null | grep user | cut -d\  -f2; then
-                       echo $speedprog failed. > /dev/stderr
-                       exit 1
-               fi
-       else
--              if ! ./randchars | time $speedprog -f "$1" -v; then
-+              if ! ./randchars | /usr/bin/time $speedprog -f "$1" -v 2>&1 >/dev/null | grep user | cut -d\  -f2; then
-                       echo $speedprog failed. > /dev/stderr
-                       exit 1
-               fi
-@@ -85,12 +82,12 @@ if [ $3 == "all" ]; then
- elif [ $3 == "print" ]; then
-       echo Using only printable characters
-       if [ $2 == "kernel" ]; then
--              if ! ./randprintable | time $speedprog "`extract $1`" verbose; then
-+              if ! ./randprintable | /usr/bin/time $speedprog "`extract $1`" verbose 2>&1 >/dev/null | grep user | cut -d\  -f2; then
-                       echo $speedprog failed. > /dev/stderr
-                       exit 1
-               fi
-       else
--              if ! ./randprintable | time $speedprog -f "$1" -v; then
-+              if ! ./randprintable | /usr/bin/time $speedprog -f "$1" -v 2>&1 >/dev/null | grep user | cut -d\  -f2; then
-                       echo $speedprog failed. > /dev/stderr
-                       exit 1
-               fi
-@@ -107,12 +104,12 @@ elif [ $3 == "real" ]; then
-                               printf $f\\t
-                               #echo `extract $1`
-                               if [ $2 == "kernel" ]; then
--                                      if ! cat $f | time $speedprog "`extract $1`" 2> /dev/stdout | tee -a tmp.$$; then
-+                                      if ! cat $f | /usr/bin/time $speedprog "`extract $1`" 2>&1 >/dev/null | grep user | cut -d\  -f2 | tee -a tmp.$$; then
-                                               echo $speedprog failed. > /dev/stderr
-                                               exit 1
-                                       fi
-                               else
--                                      if ! cat $f | time $speedprog -f "$1" 2> /dev/stdout | tee -a tmp.$$; then
-+                                      if ! cat $f | /usr/bin/time $speedprog -f "$1" 2>&1 >/dev/null | grep user | cut -d\  -f2 | tee -a tmp.$$; then
-                                               echo $speedprog failed. > /dev/stderr
-                                               exit 1
-                                       fi
-@@ -123,12 +120,12 @@ elif [ $3 == "real" ]; then
-               for f in data/*; do
-                       printf $f\\t
-                       if [ $2 == "kernel" ]; then
--                              if ! cat $f | time $speedprog "`extract $1`" 2> /dev/stdout | tee -a tmp.$$; then
-+                              if ! cat $f | /usr/bin/time $speedprog "`extract $1`" 2>&1 >/dev/null | grep user | cut -d\  -f2 | tee -a tmp.$$; then
-                                       echo $speedprog failed. > /dev/stderr
-                                       exit 1
-                               fi
-                       else
--                              if ! cat $f | time $speedprog -f "$1" 2> /dev/stdout | tee -a tmp.$$; then
-+                              if ! cat $f | /usr/bin/time $speedprog -f "$1" 2>&1 >/dev/null | grep user | cut -d\  -f2 | tee -a tmp.$$; then
-                                       echo $speedprog failed. > /dev/stderr
-                                       exit 1
-                               fi
-@@ -137,7 +134,7 @@ elif [ $3 == "real" ]; then
-       fi
-       printf Total:\ 
--      cat tmp.$$ | cut -d\  -f 2 | add
-+      cat tmp.$$ | cut -ds -f 1| add
-       rm tmp.$$
- else
diff --git a/net/l7-protocols/patches/102-testing-doallspeeds.patch b/net/l7-protocols/patches/102-testing-doallspeeds.patch
deleted file mode 100644 (file)
index 850a1d6..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/testing/doallspeeds.sh
-+++ b/testing/doallspeeds.sh
-@@ -25,11 +25,11 @@ for f in ../*/*.pat; do 
-       printf `basename $f .pat`
-       if [ $userspace ]; then 
--              gtime=`./timeit.sh $f userspace   real | grep Total | cut -d\  -f 2`
-+              gtime=`./timeit.sh $f userspace   real | grep Total | cut -d\  -f 2 | awk '{print $1}'`
-               printf \\t$gtime
-       fi
-       if [ $kernel ]; then 
--              htime=`./timeit.sh $f kernel real | grep Total | cut -d\  -f 2`
-+              htime=`./timeit.sh $f kernel real | grep Total | cut -d\  -f 2 | awk '{print $1}'`
-               printf \\t$htime
-       fi
-       printf \\n
index 02abaae00a74f44294326c3a1b051103b2a13fa2..7a4cd3685dc7829aae18041ca7cad19a73e69933 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lftp
-PKG_VERSION:=4.7.5
-PKG_RELEASE:=1
+PKG_VERSION:=4.8.2
+PKG_RELEASE:=2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://lftp.tech/ftp/ \
-               ftp://ftp.st.ryukoku.ac.jp/pub/network/ftp/lftp/
-PKG_HASH:=53b5c5eba2e38b418bcf451776f2df596050dff4db90ab4ea73d872f8b1fd0d8
-
+               https://mirror.csclub.uwaterloo.ca/gentoo-distfiles/distfiles/
+               
+PKG_HASH:=5c875b8476e05e856ebc8eec458e43317b2bebd6ed5f7725a733d4591548cd9c
 
 
 PKG_LICENSE:=GPL-3.0+
@@ -37,19 +37,9 @@ define Package/lftp/description
 LFTP is a sophisticated file transfer program with command line interface. It supports FTP, HTTP, FISH, SFTP, HTTPS and FTPS protocols. GNU Readline library is used for input.
 Every operation in lftp is reliable, that is any non-fatal error is handled and the operation is retried automatically. So if downloading breaks, it will be restarted from the point automatically. Even if ftp server does not support REST command, lftp will try to retrieve the file from the very beginning until the file is transferred completely. This is useful for dynamic-ip machines which change their IP addresses quite often, and for sites with very bad internet connectivity.
 
-If you exit lftp when some jobs are not finished yet, lftp will move itself to nohup mode in background. The same happens when you have a real modem hangup or when you close an xterm.
-
 lftp has shell-like command syntax allowing you to launch several commands in parallel in background (&). It is also possible to group commands within () and execute them in background. All background jobs are executed in the same single process. You can bring a foreground job to background with ^Z (c-z) and back with command `wait' (or `fg' which is alias to `wait'). To list running jobs, use command `jobs'. Some commands allow redirecting their output (cat, ls, ...) to file or via pipe to external command. Commands can be executed conditionally based on termination status of previous command (&&, ||).
 
 lftp has builtin mirror which can download or update a whole directory tree. There is also reverse mirror (mirror -R) which uploads or updates a directory tree on server.
-
-There is command `at' to launch a job at specified time in current context, command `queue' to queue commands for sequential execution for current server, and much more.
-
-LFTP supports IPv6 for both FTP and HTTP protocols. For FTP protocol it uses method described in RFC2428.
-
-Other low level stuff supported: ftp proxy, http proxy, ftp over http, opie/skey, fxp transfers, socks.
-
-LFTP supports secure versions of the protocols FTP and HTTP: FTPS (explicit and implicit) and HTTPS. LFTP needs to be linked with an SSL library to support them. GNU TLS and OpenSSL are both supported as SSL backend.
 endef
 
 CONFIGURE_ARGS += \
@@ -63,12 +53,7 @@ CONFIGURE_ARGS += \
        --with-zlib="$(STAGING_DIR)/usr" \
        --disable-static
 
-#CONFIGURE_VARS += \
-#      LIBS="-lz -lutil -lcurses -ldl" \
-#      i_cv_posix_fallocate_works=no
-
-#MAKE_VARS += \
-#      LD="$(TARGET_CXX)"
+TARGET_CXXFLAGS+= -std=c++11
 
 define Package/lftp/install
        $(INSTALL_DIR) $(1)/usr/bin
index 59c7554a3e77b53bf3dd23919326a7d242f1530d..ec8869442c1d6f8a66000f7742f5d0e56555aa18 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=memcached
-PKG_VERSION:=1.5.1
+PKG_VERSION:=1.5.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://memcached.org/files
-PKG_HASH:=a87908936b51d1bd3ef10a2347eef5647f003b63407a5d8161fa7928b1cd6b5c
+PKG_HASH:=9ac93113bdb5d037e79c61277386564ac2e5e31d49e594f11e554e4c149b7245
 
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 
index f2cccfba6913b1e2261397435ae36287aedfda7b..0237a54da5f1818213ed397d655874050c7c4596 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=net-snmp
 PKG_VERSION:=5.7.3
-PKG_RELEASE:=7
+PKG_RELEASE:=9
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/net-snmp
@@ -72,7 +72,13 @@ endef
 define Package/snmp-utils/description
 $(call Package/net-snmp/Default/description)
  .
- This package contains SNMP client utilities.
+ This package contains SNMP client utilities:
+   - snmpget
+   - snmpset
+   - snmpstatus
+   - snmptest
+   - snmptrap
+   - snmpwalk
 endef
 
 
@@ -96,6 +102,18 @@ $(call Package/net-snmp/Default)
 endef
 
 
+define Package/snmptrapd
+$(call Package/net-snmp/Default)
+  DEPENDS:=+libnetsnmp
+  TITLE:=Open source SNMP implementation (notification receiver)
+endef
+
+define Package/snmptrapd/description
+$(call Package/net-snmp/Default/description)
+ .
+ This package contains the SNMP notification receiver.
+endef
+
 
 SNMP_MIB_MODULES_INCLUDED = \
        agent/extend \
@@ -183,6 +201,7 @@ CONFIGURE_ARGS += \
        --with-transports="$(SNMP_TRANSPORTS_INCLUDED)" \
        --without-openssl \
        --without-libwrap \
+       --without-mysql \
        --without-rpm \
        --without-zlib \
        --with-nl \
@@ -240,15 +259,25 @@ define Package/snmpd/install
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_DATA) ./files/snmpd.conf $(1)/etc/config/snmpd
        $(INSTALL_DIR) $(1)/etc/snmp
-       ln -sf /var/run/snmpd.conf $(1)/etc/snmp/
+       $(LN) /var/run/snmpd.conf $(1)/etc/snmp/
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/snmpd.init $(1)/etc/init.d/snmpd
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/snmpd $(1)/usr/sbin/snmpd
 endef
 
+define Package/snmptrapd/install
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/snmptrapd.init $(1)/etc/init.d/snmptrapd
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnetsnmptrapd.so.* $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/snmptrapd $(1)/usr/sbin/
+endef
+
 $(eval $(call BuildPackage,libnetsnmp))
 $(eval $(call BuildPackage,snmp-mibs))
 $(eval $(call BuildPackage,snmp-utils))
 $(eval $(call BuildPackage,snmpd))
 $(eval $(call BuildPackage,snmpd-static))
+$(eval $(call BuildPackage,snmptrapd))
index cf3f95cfecce8fc0b9f45c2e31aeb6b2552f7463..e18864d539bef1bb99d306f1f3a355d36f531267 100644 (file)
@@ -1,5 +1,5 @@
 config agent
-       option agentaddress UDP:161
+       option agentaddress UDP:161,UDP6:161
 
 config agentx
        option agentxsocket /var/run/agentx.sock
@@ -14,6 +14,16 @@ config com2sec private
        option source localhost
        option community private
 
+config com2sec6 public6
+       option secname ro
+       option source default
+       option community public
+
+config com2sec6 private6
+       option secname rw
+       option source localhost
+       option community private
+
 config group public_v1
        option group public
        option version v1
diff --git a/net/net-snmp/files/snmptrapd.init b/net/net-snmp/files/snmptrapd.init
new file mode 100644 (file)
index 0000000..43278a2
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh /etc/rc.common
+
+START=50
+
+USE_PROCD=1
+PROG="/usr/sbin/snmptrapd"
+
+start_service() {
+       procd_open_instance
+
+       procd_set_param command $PROG -Lf /dev/null -f
+       procd_set_param respawn
+
+       procd_close_instance
+}
diff --git a/net/netopeer2/Config_server.in b/net/netopeer2/Config_server.in
deleted file mode 100644 (file)
index 112da76..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-if PACKAGE_netopeer2-server
-
-config SSH_SERVER
-       bool "Install the default ssh server (openssh-server)"
-       default y
-
-endif
index 62f4ec5a8cd51b20396a5b7b2c8b873fc5229b6c..fb136cb05009e7b38268186fdf19e76ffaf220c2 100644 (file)
@@ -14,14 +14,14 @@ PKG_NAME:=netopeer2
 PKG_LICENSE:=BSD-3-Clause
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
-PKG_VERSION:=0.3.65
+PKG_VERSION:=0.4.0
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=c204b59f9c2bb7e63eb907f33c44adbf208295ee
-PKG_MIRROR_HASH:=61a2b3e0ee9a3cf2f73715843f059c79292446ad3643f4eeb85d48d1e185c3b9
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_VERSION:=d028c1f931819db4b3e3cb1fd2d349a4fd5c0459
+PKG_MIRROR_HASH:=7f5b3ad49aaf2a8ceea2c17a37e276f5694af570ef904cfc5a6f53d295809cef
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/CESNET/Netopeer2.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
 
 PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
 PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
@@ -34,10 +34,6 @@ CMAKE_INSTALL:=1
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
-define Package/netopeer2-server/config
-  source "$(SOURCE)/Config_server.in"
-endef
-
 define Package/netopeer2-keystored/config
   source "$(SOURCE)/Config_keystored.in"
 endef
@@ -47,7 +43,7 @@ define Package/netopeer2-server
   CATEGORY:=Utilities
   TITLE:=NETCONF server
   URL:=$(PKG_SOURCE_URL)
-  DEPENDS:=+libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepo +SSH_SERVER:openssh-server
+  DEPENDS:=+libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepo
   MENU:=1
 endef
 
index ec6bae0524b73ca6d2e4f774adb8a073afb31988..d2a699bb1389d25cb831ccc6ff59c53192a646bc 100644 (file)
@@ -28,10 +28,6 @@ if [ -x /bin/sysrepoctl ]; then
                sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-server.yang -o root:root -p 600
                sysrepoctl -m ietf-netconf-server -e listen
                sysrepoctl -m ietf-netconf-server -e ssh-listen
-               sysrepoctl -m ietf-netconf-server -e tls-listen
-               sysrepoctl -m ietf-netconf-server -e call-home
-               sysrepoctl -m ietf-netconf-server -e ssh-call-home
-               sysrepoctl -m ietf-netconf-server -e tls-call-home
                if [ -x /bin/sysrepocfg ]; then
                        sysrepocfg -d startup -i /usr/share/netopeer2-server/stock_config.xml ietf-netconf-server
                        rm /usr/share/netopeer2-server/stock_config.xml
diff --git a/net/netopeer2/patches/002-server-BUGFIX-replace-sr_get_iter-with-sr_get_items b/net/netopeer2/patches/002-server-BUGFIX-replace-sr_get_iter-with-sr_get_items
new file mode 100644 (file)
index 0000000..9cd4538
--- /dev/null
@@ -0,0 +1,48 @@
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/server/ietf_netconf_server.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/server/ietf_netconf_server.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/server/ietf_netconf_server.c
+@@ -1161,8 +1161,8 @@ feature_change_ietf_netconf_server(const
+ {
+     int rc, rc2 = 0;
+     const char *path = NULL;
+-    sr_val_iter_t *sr_iter;
+-    sr_val_t *sr_val;
++    sr_val_t *values;
++    size_t value_cnt;
+     assert(feature_name);
+@@ -1180,26 +1180,26 @@ feature_change_ietf_netconf_server(const
+             return EXIT_SUCCESS;
+         }
+-        rc = sr_get_items_iter(np2srv.sr_sess.srs, path, &sr_iter);
++        rc =sr_get_items(np2srv.sr_sess.srs, path, &values, &value_cnt);
+         if (rc != SR_ERR_OK) {
+             ERR("Failed to get \"%s\" values iterator from sysrepo (%s).", sr_strerror(rc));
+             return EXIT_FAILURE;
+         }
+-        while ((rc = sr_get_item_next(np2srv.sr_sess.srs, sr_iter, &sr_val)) == SR_ERR_OK) {
+-            if (sr_val->type == SR_LIST_T) {
++        size_t i;
++        for(i = 0; i < value_cnt; i++) {
++            if (values[i].type == SR_LIST_T) {
+                 /* no semantic meaning */
+                 continue;
+             }
+-            rc2 = module_change_resolve(np2srv.sr_sess.srs, SR_OP_CREATED, NULL, sr_val, NULL, NULL);
+-            sr_free_val(sr_val);
++            rc2 = module_change_resolve(np2srv.sr_sess.srs, SR_OP_CREATED, NULL, &values[i], NULL, NULL);
+             if (rc2) {
+                 ERR("Failed to enable nodes depending on the \"%s\" ietf-netconf-server feature.", feature_name);
+                 break;
+             }
+         }
+-        sr_free_val_iter(sr_iter);
++        sr_free_values(values, value_cnt);
+         if (rc2) {
+             return EXIT_FAILURE;
+         } else if ((rc != SR_ERR_OK) && (rc != SR_ERR_NOT_FOUND)) {
diff --git a/net/netopeer2/patches/003-BUGFIX-for-missing-eaccess-in-uClibc b/net/netopeer2/patches/003-BUGFIX-for-missing-eaccess-in-uClibc
new file mode 100644 (file)
index 0000000..5314cdb
--- /dev/null
@@ -0,0 +1,59 @@
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/CMakeLists.txt
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt
+@@ -67,6 +67,9 @@ if(NOT MAN_INSTALL_DIR)
+     set(MAN_INSTALL_DIR share/man)
+ endif()
++include(CheckFunctionExists)
++check_function_exists(eaccess HAVE_EACCESS)
++
+ # install binary
+ install(TARGETS netopeer2-cli DESTINATION ${BIN_INSTALL_DIR})
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/commands.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/commands.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/commands.c
+@@ -37,6 +37,10 @@
+ #   include <openssl/x509v3.h>
+ #endif
++#ifndef HAVE_EACCESS
++#define eaccess access
++#endif
++
+ #include "commands.h"
+ #include "configuration.h"
+ #include "completion.h"
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/completion.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c
+@@ -27,6 +27,10 @@
+ #include <nc_client.h>
++#ifndef HAVE_EACCESS
++#define eaccess access
++#endif
++
+ #include "commands.h"
+ #include "linenoise/linenoise.h"
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/configuration.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/configuration.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/configuration.c
+@@ -28,6 +28,10 @@
+ #include <libyang/libyang.h>
+ #include <nc_client.h>
++#ifndef HAVE_EACCESS
++#define eaccess access
++#endif
++
+ #include "configuration.h"
+ #include "commands.h"
+ #include "linenoise/linenoise.h"
diff --git a/net/netopeer2/patches/004-BUGFIX-for-missing-mkstemps-in-uClibc b/net/netopeer2/patches/004-BUGFIX-for-missing-mkstemps-in-uClibc
new file mode 100644 (file)
index 0000000..24460a1
--- /dev/null
@@ -0,0 +1,51 @@
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/CMakeLists.txt
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt
+@@ -69,6 +69,10 @@ endif()
+ include(CheckFunctionExists)
+ check_function_exists(eaccess HAVE_EACCESS)
++check_function_exists(mkstemps HAVE_MKSTEMPS)
++if(HAVE_MKSTEMPS)
++    set(CMAKE_C_FLAGS         "${CMAKE_C_FLAGS} -DHAVE_MKSTEMPS")
++endif(HAVE_MKSTEMPS)
+ # install binary
+ install(TARGETS netopeer2-cli DESTINATION ${BIN_INSTALL_DIR})
+Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c
+===================================================================
+--- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/completion.c
++++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c
+@@ -120,6 +120,7 @@ readinput(const char *instruction, const
+     char* tmpname = NULL, *input = NULL, *old_content = NULL, *ptr, *ptr2;
+     /* Create a unique temporary file */
++#ifdef HAVE_MKSTEMPS
+     if (asprintf(&tmpname, "/tmp/tmpXXXXXX.xml") == -1) {
+         ERROR(__func__, "asprintf() failed (%s).", strerror(errno));
+         goto fail;
+@@ -129,6 +130,23 @@ readinput(const char *instruction, const
+         ERROR(__func__, "Failed to create a temporary file (%s).", strerror(errno));
+         goto fail;
+     }
++#else
++    if (asprintf(&tmpname, "/tmp/tmpXXXXXX") == -1) {
++        ERROR(__func__, "asprintf() failed (%s).", strerror(errno));
++        goto fail;
++    }
++    /* cannot fail */
++    mktemp(tmpname);
++    if (asprintf(&tmpname, ".xml") == -1) {
++        ERROR(__func__, "asprintf() failed (%s).", strerror(errno));
++        goto fail;
++    }
++    tmpfd = open(tmpname, O_RDWR | O_CREAT | O_EXCL, 0600);
++    if (tmpfd == -1) {
++        ERROR(__func__, "Failed to create a temporary file (%s).", strerror(errno));
++        goto fail;
++    }
++#endif /* #ifdef HAVE_MKSTEMPS */
+     /* Read the old content, if any */
+     if (old_tmp != NULL) {
index 11b190e47b70ac2630f9f18c0ee0bd0b264248ab..7e05c3a4ef8d12e432e2c8294f54cc31cae4b2d4 100644 (file)
@@ -11,13 +11,12 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=noddos
 PKG_RELEASE:=1
 PKG_LICENSE:=GPLv3
+PKG_MAINTAINER:=Steven Hessing <steven.hessing@gmail.com>
 
-PKG_SOURCE_VERSION:=0.4.1
+PKG_SOURCE_VERSION:=0.5.2
 PKG_SOURCE_URL:=https://github.com/noddos/noddos/releases/download/v$(PKG_SOURCE_VERSION)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.xz
-PKG_HASH:=f676b1c7d9aa6496184b73eacbbfe27b4f54e53c726769ef9ceeeda9c31a7fa3
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_HASH:=63fe85fc4a588da2d71b7b7db68f1c80ba19520467a3800bdb43bc516a6cff72
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
 
@@ -30,7 +29,7 @@ define Package/noddos
        CATEGORY:=Network
        TITLE:=noddos -- device-aware cloud-powered firewall
        URL:=https://www.noddos.io/
-       DEPENDS:=+libstdcpp +libnetfilter-conntrack +libcurl +libopenssl +openssl-util +ca-bundle +ca-certificates +wget +bzip2 +libtins +ipset
+       DEPENDS:=+libstdcpp +libnetfilter-conntrack +libcurl +libopenssl +openssl-util +ca-bundle +ca-certificates +wget +bzip2 +libtins +ipset +libpthread
 endef
 
 define Package/noddos/description
@@ -47,7 +46,6 @@ define Package/noddos/install
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_DIR) $(1)/etc/noddos
-       $(INSTALL_DIR) $(1)/var/lib/noddos
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/noddos $(1)/usr/sbin/
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/getnoddosdeviceprofiles $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/makenoddoscert.sh $(1)/usr/bin
index 1abc1532e7a4b674edaba03e5ecba874d2649924..e2bf01b6f867b0ef2060b2242e97a653b91d223b 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openssh
-PKG_VERSION:=7.5p1
-PKG_RELEASE:=4
+PKG_VERSION:=7.6p1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
                https://ftp.spline.de/pub/OpenBSD/OpenSSH/portable/ \
                https://anorien.csc.warwick.ac.uk/pub/OpenBSD/OpenSSH/portable/
-PKG_HASH:=9846e3c5fab9f0547400b4d2c017992f914222b3fd1f8eee6c7dc6bc5e59f9f0
+PKG_HASH:=a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723
 
 PKG_LICENSE:=BSD ISC
 PKG_LICENSE_FILES:=LICENCE
index 4b80ac00bd0cd34bf732da59e2f2504475acf72d..26b49273747355cfbb2ac4293494f6450a4cb5e1 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rp-pppoe
 PKG_VERSION:=3.12
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 PKG_MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
 PKG_LICENSE:=LGPL-2.0+
 
index 4aeeee8c18483b45d97b9d54f338a0affa96d1a8..1c9b16ec77c8e7d4b942b2bea2ee24b4b9cd67a0 100755 (executable)
@@ -27,7 +27,7 @@ pppoe_relay_instance() {
     config_get server_interfaces "$cfg" server_interface
     config_get client_interfaces "$cfg" client_interface
     config_get both_interfaces "$cfg" both_interfaces
-    config_get maxsessions "$cfg" maxsesssions
+    config_get maxsessions "$cfg" maxsessions
     config_get timeout "$cfg" timeout
     config_get_bool use_non_uci_config "$cfg" use_non_uci_config 0
 
@@ -44,7 +44,7 @@ pppoe_relay_instance() {
        for interface in $both_interfaces; do
            append OPTIONS "-B $interface"
        done
-       [ -n "$maxsesssions" ] && append OPTIONS "-n $maxsesssions"
+       [ -n "$maxsessions" ] && append OPTIONS "-n $maxsessions"
        [ -n "$timeout" ] && append OPTIONS "-i $timeout"
     fi
 
index dd2568ec89863e09bed142584d49472835312d7d..f3a53dfd68f80d3bca3f7dfa6f2b715e68b60bc5 100755 (executable)
@@ -16,7 +16,7 @@ pppoe_instance() {
        config_get interface "$cfg" interface
        config_get ac_name "$cfg" ac_name
        config_get service_names "$cfg" service_name
-       config_get maxsessionsperpeer "$cfg" maxsesssionsperpeer
+       config_get maxsessionsperpeer "$cfg" maxsessionsperpeer
        config_get localip "$cfg" localip
        config_get firstremoteip "$cfg" firstremoteip
        config_get maxsessions "$cfg" maxsessions
@@ -38,7 +38,7 @@ pppoe_instance() {
                append OPTIONS "-S $service_name"
            done
            append OPTIONS "-I $interface"
-           [ -n "$maxsesssionsperpeer" ] && append OPTIONS "-x $maxsesssionsperpeer"
+           [ -n "$maxsessionsperpeer" ] && append OPTIONS "-x $maxsessionsperpeer"
            [ -n "$localip" ] && append OPTIONS "-L $localip"
            [ -n "$firstremoteip" ] && append OPTIONS "-R $firstremoteip"
            [ -n "maxsessions" ] && append OPTIONS "-N $maxsessions"
index 9578dc4e642210f8ff5fac60242ea46479077cba..303475beb5fa4fc69760d0f9158c49011de320ec 100644 (file)
@@ -13,12 +13,12 @@ include $(TOPDIR)/rules.mk
 # - check if default mode has changed from being tcp_only
 #
 PKG_NAME:=shadowsocks-libev
-PKG_VERSION:=3.0.8
-PKG_RELEASE:=15
+PKG_VERSION:=3.1.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)
-PKG_HASH:=3bdf7f8f89050aee896496fd86b6b7ef694754f0b8cd97c4b5a04d1d3e5c2e5b
+PKG_HASH:=3b6493ebdcfff1eb31faf34d164d57049f7253ff5bffafa6ce2263c9ac123f31
 
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 
@@ -56,7 +56,7 @@ define Package/shadowsocks-libev/Default
     SUBMENU:=Web Servers/Proxies
     TITLE:=shadowsocks-libev $(1)
     URL:=https://github.com/shadowsocks/shadowsocks-libev
-    DEPENDS:=+libev +libmbedtls +libpcre +libpthread +libsodium +libudns +shadowsocks-libev-config +zlib
+    DEPENDS:=+libcares +libev +libmbedtls +libpcre +libpthread +libsodium +shadowsocks-libev-config +zlib
   endef
 
   define Package/shadowsocks-libev-$(1)/install
index 29de5953876ddece9c41ba4eea9e5bbee12433f0..b0a30606e1300d57f357d61e44d6e2c9da6c44c2 100755 (executable)
@@ -159,7 +159,6 @@ ss_rules_iptchains_init() {
 }
 
 ss_rules_iptchains_init_tcp() {
-       local ipt="iptables -t nat"
        local local_target
 
        [ -n "$o_redir_tcp_port" ] || return 0
diff --git a/net/shadowsocks-libev/patches/0001-decouple-use_syslog-from-pid_flags.patch b/net/shadowsocks-libev/patches/0001-decouple-use_syslog-from-pid_flags.patch
deleted file mode 100644 (file)
index 174dcdb..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From a91d70dd37e9555d104629538890d44ef355c772 Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <yszhou4tech@gmail.com>
-Date: Mon, 26 Jun 2017 14:49:36 +0800
-Subject: [PATCH 1/2] decouple use_syslog from pid_flags
-
-Sometimes we need processes to run in the foreground to be supervised
-and at the same time use syslog facility instead of logging its stdout,
-stderr output
----
- src/jconf.c   |  6 ++++++
- src/local.c   |  2 +-
- src/manager.c |  2 +-
- src/redir.c   |  2 +-
- src/server.c  |  2 +-
- src/tunnel.c  |  2 +-
- src/utils.h   | 18 +++++++++++-------
- 7 files changed, 22 insertions(+), 12 deletions(-)
-
-diff --git a/src/jconf.c b/src/jconf.c
-index 3c58148..05445c3 100644
---- a/src/jconf.c
-+++ b/src/jconf.c
-@@ -313,6 +313,12 @@ read_jconf(const char *file)
-                 check_json_value_type(value, json_boolean,
-                     "invalid config file: option 'ipv6_first' must be a boolean");
-                 conf.ipv6_first = value->u.boolean;
-+#ifdef HAS_SYSLOG
-+            } else if (strcmp(name, "use_syslog") == 0) {
-+                check_json_value_type(value, json_boolean,
-+                    "invalid config file: option 'use_syslog' must be a boolean");
-+                use_syslog = value->u.boolean;
-+#endif
-             }
-         }
-     } else {
-diff --git a/src/local.c b/src/local.c
-index 78f6d29..e4bd477 100644
---- a/src/local.c
-+++ b/src/local.c
-@@ -1522,8 +1522,8 @@ main(int argc, char **argv)
-         local_addr = "127.0.0.1";
-     }
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/manager.c b/src/manager.c
-index 6e7197c..338ab85 100644
---- a/src/manager.c
-+++ b/src/manager.c
-@@ -1149,8 +1149,8 @@ main(int argc, char **argv)
-         timeout = "60";
-     }
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/redir.c b/src/redir.c
-index 3809411..fae8d54 100644
---- a/src/redir.c
-+++ b/src/redir.c
-@@ -1140,8 +1140,8 @@ main(int argc, char **argv)
- #endif
-     }
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/server.c b/src/server.c
-index 534dbd8..1c25c74 100644
---- a/src/server.c
-+++ b/src/server.c
-@@ -1726,8 +1726,8 @@ main(int argc, char **argv)
-     }
- #endif
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/tunnel.c b/src/tunnel.c
-index 77c7380..2419fa0 100644
---- a/src/tunnel.c
-+++ b/src/tunnel.c
-@@ -1022,8 +1022,8 @@ main(int argc, char **argv)
-         local_addr = "127.0.0.1";
-     }
-+    USE_SYSLOG(argv[0], pid_flags);
-     if (pid_flags) {
--        USE_SYSLOG(argv[0]);
-         daemonize(pid_path);
-     }
-diff --git a/src/utils.h b/src/utils.h
-index 2603e85..53f3983 100644
---- a/src/utils.h
-+++ b/src/utils.h
-@@ -35,7 +35,7 @@
- #include <android/log.h>
- #define USE_TTY()
--#define USE_SYSLOG(ident)
-+#define USE_SYSLOG(ident, _cond)
- #define LOGI(...)                                                \
-     ((void)__android_log_print(ANDROID_LOG_DEBUG, "shadowsocks", \
-                                __VA_ARGS__))
-@@ -53,7 +53,7 @@
- extern FILE *logfile;
- #define TIME_FORMAT "%Y-%m-%d %H:%M:%S"
- #define USE_TTY()
--#define USE_SYSLOG(ident)
-+#define USE_SYSLOG(ident, _cond)
- #define USE_LOGFILE(ident)                                     \
-     do {                                                       \
-         if (ident != NULL) { logfile = fopen(ident, "w+"); } } \
-@@ -99,11 +99,15 @@ extern int use_syslog;
-         use_tty = isatty(STDERR_FILENO); \
-     } while (0)
--#define USE_SYSLOG(ident)                          \
--    do {                                           \
--        use_syslog = 1;                            \
--        openlog((ident), LOG_CONS | LOG_PID, 0); } \
--    while (0)
-+#define USE_SYSLOG(_ident, _cond)                       \
-+    do {                                                \
-+        if (!use_syslog && (_cond)) {                   \
-+            use_syslog = 1;                             \
-+        }                                               \
-+        if (use_syslog) {                               \
-+            openlog((_ident), LOG_CONS | LOG_PID, 0);   \
-+        }                                               \
-+    } while (0)
- #define LOGI(format, ...)                                                        \
-     do {                                                                         \
--- 
-2.12.2
-
diff --git a/net/shadowsocks-libev/patches/0002-syslog-with-daemon-facility-instead-of-kern-0.patch b/net/shadowsocks-libev/patches/0002-syslog-with-daemon-facility-instead-of-kern-0.patch
deleted file mode 100644 (file)
index 6d23ecc..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From afe796ce6e7a4164459009c58d7e60862edb0be3 Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <yszhou4tech@gmail.com>
-Date: Tue, 1 Aug 2017 15:21:38 +0800
-Subject: [PATCH 2/2] syslog with daemon facility instead of kern (0)
-
----
- src/utils.h | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/utils.h b/src/utils.h
-index 53f3983..3b624e8 100644
---- a/src/utils.h
-+++ b/src/utils.h
-@@ -99,14 +99,14 @@ extern int use_syslog;
-         use_tty = isatty(STDERR_FILENO); \
-     } while (0)
--#define USE_SYSLOG(_ident, _cond)                       \
--    do {                                                \
--        if (!use_syslog && (_cond)) {                   \
--            use_syslog = 1;                             \
--        }                                               \
--        if (use_syslog) {                               \
--            openlog((_ident), LOG_CONS | LOG_PID, 0);   \
--        }                                               \
-+#define USE_SYSLOG(_ident, _cond)                               \
-+    do {                                                        \
-+        if (!use_syslog && (_cond)) {                           \
-+            use_syslog = 1;                                     \
-+        }                                                       \
-+        if (use_syslog) {                                       \
-+            openlog((_ident), LOG_CONS | LOG_PID, LOG_DAEMON);  \
-+        }                                                       \
-     } while (0)
- #define LOGI(format, ...)                                                        \
--- 
-2.12.2
-
index 3a60d7aa0029f206ec51e4695cdd84efd9fd5a3e..e3f0c6ed515699b2d957fae76e78b7af147c985e 100644 (file)
@@ -16,7 +16,7 @@ PKG_MAINVERSION:=5.1.4
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=118378698e0fa1216b52ace92fe9eae0f7d32c39becbc50837a895d7367674b2c973b1633c8919045d9d16dd2a5fdbedb9d62ff1513547ee4770a2e9116d8b1e
+PKG_HASH:=3d1446f7e437104c8f8c7257ccdbddfc0dc7df3ea68b80274c11dd94cc1c8629
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index 7cc25b29a3c349d9160299e12251c234b363e1aa..0a08a08907687aa45ee298908390c0b8173bf505 100644 (file)
@@ -16,7 +16,7 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/ 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=c06e365d06c484e7ef673e5a8597d70996f1008a00163aae2d7a53d0d720739a8b0317a093b3e75487ef1c8a02ac4c4c542480757226a974671f82ab08353896
+PKG_HASH:=e90d419ed8a6da615c3a0d6fdcb9481f8e71f89c2bdcff09ab027198ca2ce293
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index b35e77740718e1685808ce0fa648d8d680ac4bde..048b53aa7c99b2363554d00deb97fd2a15927d65 100644 (file)
@@ -16,7 +16,7 @@ PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/ 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=b616c5886b5bc274e88052359ca4c8aa6df60a9706958698eac7fc362f1c893de00ed2272535d61a88cb6a786bae9b7cba64a835833a9f81c991fb2ffed8244b
+PKG_HASH:=29a2f2be295b4f995b38e663b771660ccdc6321134bcfbd0f9378f9bb1237e3c
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0+
index bb7a6d1cbec2d278906efa30a0a8de76d89b9aad..7ebfe5d3aaa185e1742e3a6f6eced4060bc5351e 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sngrep
-PKG_VERSION=1.4.2
+PKG_VERSION=1.4.4-rc2
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Daniel Engberg <daniel.engberg.lists@pyret.net>
 PKG_LICENSE:=GPL-3.0
@@ -17,9 +17,9 @@ PKG_LICENSE_FILES:=COPYING
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/irontec/sngrep
 PKG_SOURCE_SUBDIR=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=da791185cabeea5a6fcc7372157340b2d1369df7
+PKG_SOURCE_VERSION:=cf5e1da49d00bc7ab1afe9d63daa240db2b9b19c
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=2cc640e065f33cae4a3a8e14bdc740e49269cd850eee2ffa9eb821427caaa371
+PKG_MIRROR_HASH:=a6cee2caa108a618134fe87d7c04862e93aa2fdf9647d81dfe4abe91a6c9c19f
 
 PKG_FIXUP:=autoreconf
 
index b1ca349267942de7ed13ea5dc01005b0d426d935..b832162db15b9213ea22a4a23ab2b2790f2ee3eb 100644 (file)
@@ -11,17 +11,18 @@ PKG_LICENSE:=ASL-2.0
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
 PKG_NAME:=sysrepo
-PKG_VERSION:=0.6.0
+PKG_VERSION:=0.7.0
 PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=e4a5705a4c5293ba121048c71899b98243d99edf
-PKG_MIRROR_HASH:=aa0fb5d7c947dd428d9f573c84edf6237c8c1a4db92dcd4d7552a68d25277a39
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_VERSION:=7aa2f18d234267403147df92c0005c871f0aa840
+PKG_MIRROR_HASH:=31125596ae1c4dbf8dd48c639bf78043060ab1b89678c860eb2b10606fe4b686
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/sysrepo/sysrepo.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
 
 CMAKE_INSTALL:=1
 
@@ -36,7 +37,7 @@ define Package/libsysrepo
   CATEGORY:=Utilities
   URL:=$(PKG_SOURCE_URL)
   TITLE:=YANG-based data store library
-  DEPENDS:=+libyang +libprotobuf-c +libev +libavl
+  DEPENDS:=+libyang +libprotobuf-c +libev +libredblack +librt
 endef
 
 define Package/sysrepo
@@ -69,6 +70,7 @@ endef
 
 CMAKE_OPTIONS += \
        -DCMAKE_BUILD_TYPE:STRING=Release \
+       -DUSE_AVL_LIB:BOOL=FALSE \
        -DENABLE_TESTS:BOOL=FALSE \
        -DBUILD_EXAMPLES:BOOL=FALSE \
        -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=TRUE \
index 50c4bceb7d77caea59d950982e6000b7c0d83a39..cb742cec76d830cbc46e2c6504615859f734e82a 100644 (file)
@@ -1,7 +1,7 @@
-Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/CMakeLists.txt
+Index: sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/CMakeLists.txt
 ===================================================================
---- sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf.orig/src/CMakeLists.txt
-+++ sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/CMakeLists.txt
+--- sysrepo-7aa2f18d234267403147df92c0005c871f0aa840.orig/src/CMakeLists.txt
++++ sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/CMakeLists.txt
 @@ -21,14 +21,6 @@ set(GENERATED_PROTO_H "${COMMON_BIN_DIR}
  set(GENERATED_PROTO_C "${COMMON_BIN_DIR}/${PROTO_NAME}.pb-c.c")
  
@@ -17,11 +17,11 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/CMakeLists.txt
  
  configure_file("${COMMON_DIR}/sr_constants.h.in" "${COMMON_BIN_DIR}/sr_constants.h" ESCAPE_QUOTES @ONLY)
  
-Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.c
+Index: sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sysrepo.pb-c.c
 ===================================================================
 --- /dev/null
-+++ sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.c
-@@ -0,0 +1,10517 @@
++++ sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sysrepo.pb-c.c
+@@ -0,0 +1,10537 @@
 +/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
 +/* Generated from: sysrepo.proto */
 +
@@ -6518,9 +6518,29 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +  (ProtobufCMessageInit) sr__copy_config_req__init,
 +  NULL,NULL,NULL    /* reserved[123] */
 +};
-+#define sr__copy_config_resp__field_descriptors NULL
-+#define sr__copy_config_resp__field_indices_by_name NULL
-+#define sr__copy_config_resp__number_ranges NULL
++static const ProtobufCFieldDescriptor sr__copy_config_resp__field_descriptors[1] =
++{
++  {
++    "errors",
++    1,
++    PROTOBUF_C_LABEL_REPEATED,
++    PROTOBUF_C_TYPE_MESSAGE,
++    offsetof(Sr__CopyConfigResp, n_errors),
++    offsetof(Sr__CopyConfigResp, errors),
++    &sr__error__descriptor,
++    NULL,
++    0,             /* flags */
++    0,NULL,NULL    /* reserved1,reserved2, etc */
++  },
++};
++static const unsigned sr__copy_config_resp__field_indices_by_name[] = {
++  0,   /* field[0] = errors */
++};
++static const ProtobufCIntRange sr__copy_config_resp__number_ranges[1 + 1] =
++{
++  { 1, 0 },
++  { 0, 1 }
++};
 +const ProtobufCMessageDescriptor sr__copy_config_resp__descriptor =
 +{
 +  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
@@ -6529,10 +6549,10 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +  "Sr__CopyConfigResp",
 +  "sr",
 +  sizeof(Sr__CopyConfigResp),
-+  0,
++  1,
 +  sr__copy_config_resp__field_descriptors,
 +  sr__copy_config_resp__field_indices_by_name,
-+  0,  sr__copy_config_resp__number_ranges,
++  1,  sr__copy_config_resp__number_ranges,
 +  (ProtobufCMessageInit) sr__copy_config_resp__init,
 +  NULL,NULL,NULL    /* reserved[123] */
 +};
@@ -10539,11 +10559,11 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +  sr__operation__value_ranges,
 +  NULL,NULL,NULL,NULL   /* reserved[1234] */
 +};
-Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.h
+Index: sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sysrepo.pb-c.h
 ===================================================================
 --- /dev/null
-+++ sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.h
-@@ -0,0 +1,4236 @@
++++ sysrepo-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sysrepo.pb-c.h
+@@ -0,0 +1,4238 @@
 +/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
 +/* Generated from: sysrepo.proto */
 +
@@ -10556,7 +10576,7 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +
 +#if PROTOBUF_C_VERSION_NUMBER < 1000000
 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
-+#elif 1001001 < PROTOBUF_C_MIN_COMPILER_VERSION
++#elif 1002001 < PROTOBUF_C_MIN_COMPILER_VERSION
 +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
 +#endif
 +
@@ -11770,10 +11790,12 @@ Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/src/common/sysrepo.pb-c.
 +struct  _Sr__CopyConfigResp
 +{
 +  ProtobufCMessage base;
++  size_t n_errors;
++  Sr__Error **errors;
 +};
 +#define SR__COPY_CONFIG_RESP__INIT \
 + { PROTOBUF_C_MESSAGE_INIT (&sr__copy_config_resp__descriptor) \
-+     }
++    , 0,NULL }
 +
 +
 +/*
diff --git a/net/sysrepo/patches/005-fix-struct-ucred-define b/net/sysrepo/patches/005-fix-struct-ucred-define
new file mode 100644 (file)
index 0000000..1547976
--- /dev/null
@@ -0,0 +1,30 @@
+Index: sysrepo-0.7.0-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sr_utils.c
+===================================================================
+--- sysrepo-0.7.0-7aa2f18d234267403147df92c0005c871f0aa840.orig/src/common/sr_utils.c
++++ sysrepo-0.7.0-7aa2f18d234267403147df92c0005c871f0aa840/src/common/sr_utils.c
+@@ -460,14 +460,24 @@ sr_fd_set_nonblock(int fd)
+ #if defined(SO_PEERCRED)
++#if defined(__GLIBC__)
+ #if !defined(SCM_CREDENTIALS)
+-/* struct ucred is ifdefined behind __USE_GNU, but __USE_GNU is not defined */
+ struct ucred {
+     pid_t pid;    /* process ID of the sending process */
+     uid_t uid;    /* user ID of the sending process */
+     gid_t gid;    /* group ID of the sending process */
+ };
+ #endif /* !defined(SCM_CREDENTIALS) */
++#else
++#if !defined(__USE_GNU)
++struct ucred {
++    pid_t pid;    /* process ID of the sending process */
++    uid_t uid;    /* user ID of the sending process */
++    gid_t gid;    /* group ID of the sending process */
++};
++/* struct ucred is ifdefined behind __USE_GNU, but __USE_GNU is not defined */
++#endif /* !defined(__USE_GNU) */
++#endif /* defined(__GLIBC__) */
+ int
+ sr_get_peer_eid(int fd, uid_t *uid, gid_t *gid)
index b3d701dfb96fbc353b1a24f8e3464e2837c9dd26..9e5098a62bde9052d41bb474944fd17f71bcb6bc 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tor
-PKG_VERSION:=0.2.9.11
+PKG_VERSION:=0.2.9.12
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dist.torproject.org/ \
        https://archive.torproject.org/tor-package-archive
-PKG_HASH:=c1959bebff9a546a54cbedb58c8289a42441991af417d2d16f7b336be8903221
+PKG_HASH:=6e7466625d53812f23c2ad60a873c5855f63f756fde0fc5cbeda8d32cee1086b
 PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
 PKG_LICENSE_FILES:=LICENSE
 
index aec9dc4c1e9e6b9811e9718d1233776eb67c26ab..b3e966c223da69687bd71ddf3110fdf50f1f0d58 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unbound
-PKG_VERSION:=1.6.5
+PKG_VERSION:=1.6.7
 PKG_RELEASE:=1
 
 PKG_LICENSE:=BSD-3-Clause
@@ -17,7 +17,7 @@ PKG_MAINTAINER:=Eric Luehrsen <ericluehrsen@hotmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.unbound.net/downloads
-PKG_HASH:=e297aa1229015f25bf24e4923cb1dadf1f29b84f82a353205006421f82cc104e
+PKG_HASH:=4e7bd43d827004c6d51bef73adf941798e4588bdb40de5e79d89034d69751c9f
 
 PKG_BUILD_DEPENDS:=libexpat
 PKG_BUILD_PARALLEL:=1
index db0f5974f49e8522d4a7de940f79d082efb0b7e8..f8bb320246fb49b966053443d2759e8a851bc351 100644 (file)
@@ -200,6 +200,13 @@ config unbound
     Bytes. Extended DNS is necessary for DNSSEC. However, it can run
     into MTU issues. Use this size in bytes to manage drop outs.
 
+  option extended_luci '0'
+    Boolean. Extends a tab hierarchy in LuCI for advanced congfiguration.
+
+  option extended_stats '0'
+    Boolean. extended statistics are printed from unbound-control.
+    Keeping track of more statistics takes time.
+
   option hide_binddata '1'
     Boolean. If enabled version.server, version.bind, id.server, and
     hostname.bind queries are refused.
@@ -266,8 +273,12 @@ config unbound
     Typical to configure maybe 0~300, but 1800 is the maximum accepted.
 
   option unbound_control '0'
-    Boolean. Enables unbound-control application access ports. Enabling
-    this without the unbound-control package installed is robust.
+    Level. Enables unbound-control application access ports.
+    0 - No unbound-control Access, or add your own in 'unbound_ext.conf'
+    1 - Unencrypted Local Host Access
+    2 - SSL Local Host Access; auto unbound-control-setup if available
+    3 - SSL Network Access; auto unbound-control-setup if available
+    4 - SSL Network Access; static key/pem files must already exist
 
   option validator '0'
     Boolean. Enable DNSSEC. Unbound names this the "validator" module.
index 160950884e39e077946e1cdd0f61abc552b9f8e1..58f28d29a75aba9a8a27c8a09aca0878d385d606 100644 (file)
@@ -68,7 +68,7 @@
       if ( bconf == 1 ) {
         x = ( "local-data: \"" fqdn ". 120 IN A " adr "\"" ) ;
         y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
-        print ( x "\n" y ) > hostfile ;
+        print ( x "\n" y "\n" ) > hostfile ;
       }
 
       else {
             # GA or ULA routed addresses only (not LL or MC)
             sub( /\/.*/, "", adr ) ;
             adr = ( adr slaac ) ;
-            
-            
-            if ( split( adr, tmp0, ":" ) >= 8 ) { 
-              sub( "::", ":", adr ) ; 
+
+
+            if ( split( adr, tmp0, ":" ) >= 8 ) {
+              sub( "::", ":", adr ) ;
             }
 
 
             if ( bconf == 1 ) {
               x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr "\"" ) ;
               y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
-              print ( x "\n" y ) > hostfile ;
+              print ( x "\n" y "\n" ) > hostfile ;
             }
 
             else {
       if ( bconf == 1 ) {
         x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr "\"" ) ;
         y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
-        print ( x "\n" y ) > hostfile ;
+        print ( x "\n" y "\n" ) > hostfile ;
       }
 
       else {
         print ( x "\n" y ) > hostfile ;
       }
     }
-    
+
     if (( cdr2 == 128 ) && ( hst != "-" )) {
       if ( bconf == 1 ) {
         x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr2 "\"" ) ;
         y = ( "local-data-ptr: \"" adr2 " 120 " fqdn "\"" ) ;
-        print ( x "\n" y ) > hostfile ;
+        print ( x "\n" y "\n" ) > hostfile ;
       }
 
       else {
index 7defd8db475ddddb5df017822f4819e27fa74ced..e0a1e52540954a5243521f00e29a223878313903 100644 (file)
 #
 ##############################################################################
 
-UNBOUND_B_CONTROL=0
 UNBOUND_B_SLAAC6_MAC=0
 UNBOUND_B_DNSSEC=0
 UNBOUND_B_DNS64=0
+UNBOUND_B_EXT_STATS=0
 UNBOUND_B_GATE_NAME=0
 UNBOUND_B_HIDE_BIND=1
 UNBOUND_B_LOCL_BLCK=0
@@ -37,6 +37,7 @@ UNBOUND_B_PRIV_BLCK=1
 UNBOUND_B_QUERY_MIN=0
 UNBOUND_B_QRY_MINST=0
 
+UNBOUND_D_CONTROL=0
 UNBOUND_D_DOMAIN_TYPE=static
 UNBOUND_D_DHCP_LINK=none
 UNBOUND_D_EXTRA_DNS=0
@@ -80,6 +81,11 @@ UNBOUND_KEYFILE=$UNBOUND_VARDIR/root.key
 UNBOUND_HINTFILE=$UNBOUND_VARDIR/root.hints
 UNBOUND_TIMEFILE=$UNBOUND_VARDIR/hotplug.time
 
+UNBOUND_CTLKEY_FILE=$UNBOUND_VARDIR/unbound_control.key
+UNBOUND_CTLPEM_FILE=$UNBOUND_VARDIR/unbound_control.pem
+UNBOUND_SRVKEY_FILE=$UNBOUND_VARDIR/unbound_server.key
+UNBOUND_SRVPEM_FILE=$UNBOUND_VARDIR/unbound_server.pem
+
 ##############################################################################
 
 UNBOUND_ANCHOR=/usr/sbin/unbound-anchor
@@ -457,17 +463,54 @@ unbound_mkdir() {
 
   # Ensure access and prepare to jail
   chown -R unbound:unbound $UNBOUND_VARDIR
-  chmod 775 $UNBOUND_VARDIR
-  chmod 664 $UNBOUND_VARDIR/*
+  chmod 755 $UNBOUND_VARDIR
+  chmod 644 $UNBOUND_VARDIR/*
+
+
+  if [ -f $UNBOUND_CTLKEY_FILE -o -f $UNBOUND_CTLPEM_FILE \
+    -o -f $UNBOUND_SRVKEY_FILE -o -f $UNBOUND_SRVPEM_FILE ] ; then
+    # Keys (some) exist already; do not create new ones
+    chmod 640 $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+              $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+  elif [ -x /usr/sbin/unbound-control-setup ] ; then
+    case "$UNBOUND_D_CONTROL" in
+    [2-3])
+      # unbound-control-setup for encrypt opt. 2 and 3, but not 4 "static"
+      /usr/sbin/unbound-control-setup -d $UNBOUND_VARDIR
+
+      chown -R unbound:unbound  $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+                                $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+      chmod 640 $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+                $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+      cp -p $UNBOUND_CTLKEY_FILE /etc/unbound/unbound_control.key
+      cp -p $UNBOUND_CTLPEM_FILE /etc/unbound/unbound_control.pem
+      cp -p $UNBOUND_SRVKEY_FILE /etc/unbound/unbound_server.key
+      cp -p $UNBOUND_SRVPEM_FILE /etc/unbound/unbound_server.pem
+      ;;
+    esac
+  fi
 }
 
 ##############################################################################
 
 unbound_control() {
-  if [ "$UNBOUND_B_CONTROL" -gt 0 ] ; then
+  if [ "$UNBOUND_D_CONTROL" -gt 1 ] ; then
+    if [ ! -f $UNBOUND_CTLKEY_FILE -o ! -f $UNBOUND_CTLPEM_FILE \
+      -o ! -f $UNBOUND_SRVKEY_FILE -o ! -f $UNBOUND_SRVPEM_FILE ] ; then
+      # Key files need to be present; if unbound-control-setup was found, then
+      # they might have been made during unbound_makedir() above.
+      UNBOUND_D_CONTROL=0
+    fi
+  fi
+
+
+  case "$UNBOUND_D_CONTROL" in
+  1)
     {
-      # Enable remote control tool, but only at local host for security
-      # You can hand write fancier encrypted access with /etc/..._ext.conf
+      # Local Host Only Unencrypted Remote Control
       echo "remote-control:"
       echo "  control-enable: yes"
       echo "  control-use-cert: no"
@@ -475,7 +518,42 @@ unbound_control() {
       echo "  control-interface: ::1"
       echo
     } >> $UNBOUND_CONFFILE
-  fi
+    ;;
+
+  2)
+    {
+      # Local Host Only Encrypted Remote Control
+      echo "remote-control:"
+      echo "  control-enable: yes"
+      echo "  control-use-cert: yes"
+      echo "  control-interface: 127.0.0.1"
+      echo "  control-interface: ::1"
+      echo "  server-key-file: \"$UNBOUND_SRVKEY_FILE\""
+      echo "  server-cert-file: \"$UNBOUND_SRVPEM_FILE\""
+      echo "  control-key-file: \"$UNBOUND_CTLKEY_FILE\""
+      echo "  control-cert-file: \"$UNBOUND_CTLPEM_FILE\""
+      echo
+    } >> $UNBOUND_CONFFILE
+    ;;
+
+  [3-4])
+    {
+      # Network Encrypted Remote Control
+      # (3) may auto setup and (4) must have static key/pem files
+      # TODO: add UCI list for interfaces to bind
+      echo "remote-control:"
+      echo "  control-enable: yes"
+      echo "  control-use-cert: yes"
+      echo "  control-interface: 0.0.0.0"
+      echo "  control-interface: ::0"
+      echo "  server-key-file: \"$UNBOUND_SRVKEY_FILE\""
+      echo "  server-cert-file: \"$UNBOUND_SRVPEM_FILE\""
+      echo "  control-key-file: \"$UNBOUND_CTLKEY_FILE\""
+      echo "  control-cert-file: \"$UNBOUND_CTLPEM_FILE\""
+      echo
+    } >> $UNBOUND_CONFFILE
+    ;;
+  esac
 
 
   {
@@ -493,15 +571,14 @@ unbound_conf() {
   local cfg="$1"
   local rt_mem rt_conn modulestring
 
+  # Make fresh conf file
+  echo > $UNBOUND_CONFFILE
+
 
   {
     # Make fresh conf file
     echo "# $UNBOUND_CONFFILE generated by UCI $( date )"
     echo
-  } > $UNBOUND_CONFFILE
-
-
-  {
     # No threading
     echo "server:"
     echo "  username: unbound"
@@ -511,27 +588,33 @@ unbound_conf() {
     echo "  infra-cache-slabs: 1"
     echo "  key-cache-slabs: 1"
     echo
-  } >> $UNBOUND_CONFFILE
-
-
-  {
+    # Interface Wildcard (access contol handled by "option local_service")
+    echo "  interface: 0.0.0.0"
+    echo "  interface: ::0"
+    echo "  outgoing-interface: 0.0.0.0"
+    echo "  outgoing-interface: ::0"
+    echo
     # Logging
     echo "  verbosity: 1"
     echo "  statistics-interval: 0"
     echo "  statistics-cumulative: no"
-    echo "  extended-statistics: no"
-    echo
   } >> $UNBOUND_CONFFILE
 
 
-  {
-    # Interfaces (access contol "option local_service")
-    echo "  interface: 0.0.0.0"
-    echo "  interface: ::0"
-    echo "  outgoing-interface: 0.0.0.0"
-    echo "  outgoing-interface: ::0"
-    echo
-  } >> $UNBOUND_CONFFILE
+  if [ "$UNBOUND_B_EXT_STATS" -gt 0 ] ; then
+    {
+      # Log More
+      echo "  extended-statistics: yes"
+      echo
+    } >> $UNBOUND_CONFFILE
+
+  else
+    {
+      # Log Less
+      echo "  extended-statistics: no"
+      echo
+    } >> $UNBOUND_CONFFILE
+  fi
 
 
   case "$UNBOUND_D_PROTOCOL" in
@@ -930,6 +1013,7 @@ unbound_uci() {
 
   config_get_bool UNBOUND_B_SLAAC6_MAC "$cfg" dhcp4_slaac6 0
   config_get_bool UNBOUND_B_DNS64      "$cfg" dns64 0
+  config_get_bool UNBOUND_B_EXT_STATS  "$cfg" extended_stats 0
   config_get_bool UNBOUND_B_HIDE_BIND  "$cfg" hide_binddata 1
   config_get_bool UNBOUND_B_LOCL_SERV  "$cfg" localservice 1
   config_get_bool UNBOUND_B_MAN_CONF   "$cfg" manual_conf 0
@@ -937,7 +1021,6 @@ unbound_uci() {
   config_get_bool UNBOUND_B_QRY_MINST  "$cfg" query_min_strict 0
   config_get_bool UNBOUND_B_PRIV_BLCK  "$cfg" rebind_protection 1
   config_get_bool UNBOUND_B_LOCL_BLCK  "$cfg" rebind_localhost 0
-  config_get_bool UNBOUND_B_CONTROL    "$cfg" unbound_control 0
   config_get_bool UNBOUND_B_DNSSEC     "$cfg" validator 0
   config_get_bool UNBOUND_B_NTP_BOOT   "$cfg" validator_ntp 1
 
@@ -947,6 +1030,7 @@ unbound_uci() {
   config_get UNBOUND_N_RX_PORT   "$cfg" listen_port 53
   config_get UNBOUND_N_ROOT_AGE  "$cfg" root_age 9
 
+  config_get UNBOUND_D_CONTROL     "$cfg" unbound_control 0
   config_get UNBOUND_D_DOMAIN_TYPE "$cfg" domain_type static
   config_get UNBOUND_D_DHCP_LINK   "$cfg" dhcp_link none
   config_get UNBOUND_D_EXTRA_DNS   "$cfg" add_extra_dns 0
index 45022f4080037853934868c1f03ce25c24a95ee5..aef5c1378fc0b50c6a5c7291d14b3ecd522a2eb6 100644 (file)
@@ -9,6 +9,8 @@ config unbound
        option domain 'lan'
        option domain_type 'static'
        option edns_size '1280'
+       option extended_luci '0'
+       option extended_stats '0'
        option hide_binddata '1'
        option listen_port '53'
        option localservice '1'
index 5a4398bf0e479c914928b0ad6ff414e4c2f008a4..a44213b6a11ac02d1b209a7562ef54081709c714 100644 (file)
@@ -1,8 +1,9 @@
 ##############################################################################
-# UNBOUND UCI USER ADDED CLAUSES
+# Extended user clauses added to the end of the UCI generated 'unbound.conf'
 #
-# Put your own forward:, view:, stub:, and control: clauses here. This file is
-# appended to the end of UCI auto generated 'unbound.conf'. This is done with
-# include: statement. Notice, it is outside of the server: clause.
+# Put your own forward:, view:, stub:, or remote-control: clauses here. This
+# file is appended to the end of 'unbound.conf' with an include: statement.
+# Notice that it is not part of the server: clause. Use 'unbound_srv.conf' to
+# place custom option statements in the server: clause.
 ##############################################################################
 
index 01ba54414dc3ca868eb262063c0451ad3e6fe5d4..03eb48abcd8c5a7df2a57f3d8a26b457f2f25d5b 100644 (file)
@@ -1,8 +1,9 @@
 ##############################################################################
-# UNBOUND UCI USER ADDED SERVER OPTIONS
+# User custom options added in the server: clause part of UCI 'unbound.conf'
 #
-# Put your own choice options here when not covered by UCI. These are all part
-# of the server: clause only. Most likely are hardening options or local-zone:
-# This is in an include: statement towards the end of the server: cluase. 
+# Add your own option statements here when they are not covered by UCI. This
+# file is placed _inside_ the server: clause with an include: statement. Do
+# not start other clauses here, because that would brake the server: clause.
+# Use 'unbound_ext.conf' to start new clauses at the end of 'unbound.conf'.
 ##############################################################################
 
index b6da07374b785dbac7291ba928806ae816177dcd..01d6bb839d3f1a454896e2ccb375fd0536bb387c 100644 (file)
@@ -6,7 +6,7 @@ index 5396029..cbb51ec 100644
 -#
 -# Example configuration file.
 -#
--# See unbound.conf(5) man page, version 1.6.5.
+-# See unbound.conf(5) man page, version 1.6.7.
 -#
 -# this is a comment.
 +##############################################################################
index 90e65180a8435d6aae2bf4e68bd91ee5ca0c47dc..4679ff3ee3dd4617b7b08ffa8093d0a20454031d 100644 (file)
@@ -11,12 +11,12 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=wireguard
 
-PKG_VERSION:=0.0.20170907
+PKG_VERSION:=0.0.20171005
 PKG_RELEASE:=1
 
 PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/
-PKG_HASH:=a1ee12d60662607e4c5a19f84b5115e56f083e2600053882e161537f12d963fd
+PKG_HASH:=832a3b7cbb510f6986fd0c3a6b2d86bc75fc9f23b6754d8f46bc58ea8e02d608
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
@@ -34,9 +34,9 @@ define Package/wireguard/Default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=VPN
-  URL:=https://www.wireguard.io
+  URL:=https://www.wireguard.com
   MAINTAINER:=Baptiste Jonglez <openwrt@bitsofnetworks.org>, \
-              Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> \
+              Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>, \
               Dan Luedtke <mail@danrl.com>, \
               Jason A. Donenfeld <Jason@zx2c4.com>
 endef
@@ -47,8 +47,7 @@ define Package/wireguard/Default/description
   more useful than IPSec, while avoiding the massive headache. It intends to
   be considerably more performant than OpenVPN.  WireGuard is designed as a
   general purpose VPN for running on embedded interfaces and super computers
-  alike, fit for many different circumstances.
-  It runs over UDP.
+  alike, fit for many different circumstances. It uses UDP.
 endef
 
 define Package/wireguard
index 0b79b9936c6a9afc15c230499dbd24dc62e6094e..4b3487faa0158b44b8a112f0570c277349202faa 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pulseaudio
-PKG_VERSION:=11.0
-PKG_RELEASE:=2
+PKG_VERSION:=11.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://freedesktop.org/software/pulseaudio/releases/
-PKG_HASH:=072305d4018fc5e75bb1b45ee6b938fa52fc9fd27493bf327415ef89ed14c969
+PKG_SOURCE_URL:=https://freedesktop.org/software/pulseaudio/releases/
+PKG_HASH:=f2521c525a77166189e3cb9169f75c2ee2b82fa3fcf9476024fbc2c3a6c9cd9e
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=GPL LICENSE
 
index 8593f76995719a1a8386cb9d7edd25cbe0a961e6..f78c59f210455df5f7bfc9b1148566a09029cb75 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acpica-unix
-PKG_VERSION:=20170831
+PKG_VERSION:=20170929
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://acpica.org/sites/$(subst -unix,,$(PKG_NAME))/files/$(PKG_SOURCE_URL)
-PKG_HASH:=c918a422f6c72e27b08c841158b52d870b92730fb6406b33d20ef50b1d2b4113
+PKG_HASH:=c786868ae6c7a4c7bca19a5ca66bfb16740cad5c1c01b21642932f2f0dea9cc8
 PKG_MAINTAINER:=Philip Prindeville <philipp@redfish-solutions.com>
 
 PKG_LICENSE:=GPL-2.0
@@ -37,7 +37,7 @@ define Package/acpica-unix/description
        (AML) interpreter, a simulator, test suites, and a compiler to
        translate ACPI Source Language (ASL) into AML.
 
-       At this time, only acpidump is bundledr; more might be added later.
+       At this time, only acpidump is bundled; more might be added later.
 endef
 
 define Build/Configure
index 38e4f71832d1a11961bd4ba1bc295bbb26acd61d..8f4972a5f7d029dc9b7163c99c8ee05e1ff6d510 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acpid
-PKG_VERSION:=2.0.27
+PKG_VERSION:=2.0.28
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SF/acpid2 
-PKG_HASH:=820c223e53cc11d9d7229fb1ffc2c2205f1054082c80f83f5a4ec4df16d3a616
+PKG_HASH:=980c3a54b0d3f2fd49fd845a0584c5c2abeaab9e9ac09fcbb68686bbb57a7110
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
index 1c1816343e858a1ebb020e111b7d713642292d1c..245e45d5f526278d73a81c35efc72e9cd5a1ef6b 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bluez
-PKG_VERSION:=5.38
+PKG_VERSION:=5.47
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/bluetooth/
-PKG_HASH:=0618c5440be6715805060ab5eea930526f34089c437bf61819447b160254f4df
+PKG_HASH:=cf75bf7cd5d564f21cc4a2bd01d5c39ce425397335fd47d9bbe43af0a58342c8
 
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
@@ -70,7 +70,7 @@ define Package/bluez-daemon/conffiles
 /etc/bluetooth/main.conf
 /etc/bluetooth/network.conf
 /etc/bluetooth/input.conf
-/etc/bluetooth/proximity.conf
+/etc/bluetooth/audio.conf
 /etc/config/bluetooth
 endef
 
@@ -92,6 +92,7 @@ CONFIGURE_ARGS += \
        --disable-systemd \
        --disable-test \
        --disable-udev \
+       --enable-deprecated
 
 TARGET_CPPFLAGS += \
        -D_GNU_SOURCE
@@ -148,7 +149,7 @@ define Package/bluez-daemon/install
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/src/main.conf $(1)/etc/bluetooth/main.conf
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/profiles/network/network.conf $(1)/etc/bluetooth/network.conf
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/profiles/input/input.conf $(1)/etc/bluetooth/input.conf
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/profiles/proximity/proximity.conf $(1)/etc/bluetooth/proximity.conf
+       $(INSTALL_DATA) ./files/audio.conf $(1)/etc/bluetooth/audio.conf
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/bluetoothd.init $(1)/etc/init.d/bluetoothd
 endef
diff --git a/utils/bluez/files/audio.conf b/utils/bluez/files/audio.conf
new file mode 100644 (file)
index 0000000..0455c6c
--- /dev/null
@@ -0,0 +1 @@
+Enable=Source,Sink,Media,Socket
index 96e8a26c59dd8e089cfd66bf05c52c7f16fbe60d..15eb6e1da8b7b70ce6dac3e585014a3b6a3319a2 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH 1/4] bcm43xx: Add bcm43xx-3wire variant
 
 --- a/tools/hciattach.c
 +++ b/tools/hciattach.c
-@@ -1144,6 +1144,9 @@ struct uart_t uart[] = {
+@@ -1090,6 +1090,9 @@ struct uart_t uart[] = {
        { "bcm43xx",    0x0000, 0x0000, HCI_UART_H4,   115200, 3000000,
                                FLOW_CTL, DISABLE_PM, NULL, bcm43xx, NULL  },
  
index fa0948d9210a973a4865857a7028008557fb790f..74911d3caba8ed8df4d2f0fad8ae70fa2a6176ee 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH 3/4] Increase firmware load timeout to 30s
 
 --- a/tools/hciattach.c
 +++ b/tools/hciattach.c
-@@ -1293,7 +1293,7 @@ int main(int argc, char *argv[])
+@@ -1239,7 +1239,7 @@ int main(int argc, char *argv[])
  {
        struct uart_t *u = NULL;
        int detach, printpid, raw, opt, i, n, ld, err;
diff --git a/utils/bluez/patches/200-uart-speed.patch b/utils/bluez/patches/200-uart-speed.patch
deleted file mode 100644 (file)
index ebe0153..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
---- a/tools/hciattach.c
-+++ b/tools/hciattach.c
-@@ -101,20 +101,37 @@ int uart_speed(int s)
-               return B230400;
-       case 460800:
-               return B460800;
-+/* FIX: Not all platform support this high serial speed
-+   claudyus84 @gamil.com
-+*/
-+#ifdef B500000
-       case 500000:
-               return B500000;
-+#endif
-+#ifdef B576000
-       case 576000:
-               return B576000;
-+#endif
-+#ifdef B921600
-       case 921600:
-               return B921600;
-+#endif
-+#ifdef B1000000
-       case 1000000:
-               return B1000000;
-+#endif
-+#ifdef B1152000
-       case 1152000:
-               return B1152000;
-+#endif
-+#ifdef B1500000
-       case 1500000:
-               return B1500000;
-+#endif
-+#ifdef B2000000
-       case 2000000:
-               return B2000000;
-+#endif
- #ifdef B2500000
-       case 2500000:
-               return B2500000;
index 45e155325c76f4d49047514a51c19f44fe0bbf83..5794371620bb587ae8493a364d9384a41cbadd87 100644 (file)
@@ -1,22 +1,24 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -2441,7 +2441,7 @@ unit_tests = $(am__append_35) unit/test-
+--- a/Makefile.in      2017-09-14 11:47:06.000000000 +0200
++++ b/Makefile.in      2017-09-15 02:52:39.315926972 +0200
+@@ -2447,7 +2447,7 @@
  @CLIENT_TRUE@                                 monitor/uuid.h monitor/uuid.c
  
- @CLIENT_TRUE@client_bluetoothctl_LDADD = gdbus/libgdbus-internal.la @GLIB_LIBS@ @DBUS_LIBS@ \
--@CLIENT_TRUE@                         -lreadline
-+@CLIENT_TRUE@                         -lreadline -lncurses
+ @CLIENT_TRUE@client_bluetoothctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
+-@CLIENT_TRUE@                         @GLIB_LIBS@ @DBUS_LIBS@ -lreadline
++@CLIENT_TRUE@                         @GLIB_LIBS@ @DBUS_LIBS@ -lreadline -lncurses
  
- @MONITOR_TRUE@monitor_btmon_SOURCES = monitor/main.c monitor/bt.h \
- @MONITOR_TRUE@                                monitor/display.h monitor/display.c \
-@@ -2691,13 +2691,13 @@ unit_tests = $(am__append_35) unit/test-
- @READLINE_TRUE@                               client/display.h
+ @MESH_TRUE@mesh_meshctl_SOURCES = mesh/main.c \
+ @MESH_TRUE@                           mesh/mesh-net.h \
+@@ -2468,7 +2468,7 @@
  
- @READLINE_TRUE@attrib_gatttool_LDADD = lib/libbluetooth-internal.la \
--@READLINE_TRUE@                       src/libshared-glib.la @GLIB_LIBS@ -lreadline
-+@READLINE_TRUE@                       src/libshared-glib.la @GLIB_LIBS@ -lreadline -lncurses
+ @MESH_TRUE@mesh_meshctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
+ @MESH_TRUE@                           lib/libbluetooth-internal.la \
+-@MESH_TRUE@                           @GLIB_LIBS@ @DBUS_LIBS@ -ljson-c -lreadline
++@MESH_TRUE@                           @GLIB_LIBS@ @DBUS_LIBS@ -ljson-c -lreadline -lncurses
  
- @READLINE_TRUE@tools_obex_client_tool_SOURCES = $(gobex_sources) $(btio_sources) \
+ @MONITOR_TRUE@monitor_btmon_SOURCES = monitor/main.c monitor/bt.h \
+ @MONITOR_TRUE@                                monitor/display.h monitor/display.c \
+@@ -2724,7 +2724,7 @@
  @READLINE_TRUE@                                               tools/obex-client-tool.c
  
  @READLINE_TRUE@tools_obex_client_tool_LDADD = lib/libbluetooth-internal.la \
@@ -25,7 +27,7 @@
  
  @READLINE_TRUE@tools_obex_server_tool_SOURCES = $(gobex_sources) $(btio_sources) \
  @READLINE_TRUE@                                               tools/obex-server-tool.c
-@@ -2707,17 +2707,17 @@ unit_tests = $(am__append_35) unit/test-
+@@ -2734,17 +2734,17 @@
  @READLINE_TRUE@                               client/display.h client/display.c
  
  @READLINE_TRUE@tools_bluetooth_player_LDADD = gdbus/libgdbus-internal.la \
 -@READLINE_TRUE@                               -lreadline
 +@READLINE_TRUE@                               -lreadline -lncurses
  
- @EXPERIMENTAL_TRUE@tools_gatt_service_SOURCES = tools/gatt-service.c
- @EXPERIMENTAL_TRUE@tools_gatt_service_LDADD = @GLIB_LIBS@ @DBUS_LIBS@ gdbus/libgdbus-internal.la
+ @DEPRECATED_TRUE@@READLINE_TRUE@attrib_gatttool_SOURCES = attrib/gatttool.c attrib/att.c attrib/gatt.c \
+ @DEPRECATED_TRUE@@READLINE_TRUE@                              attrib/gattrib.c btio/btio.c \
+@@ -2753,7 +2753,7 @@
+ @DEPRECATED_TRUE@@READLINE_TRUE@                              client/display.h
+ @DEPRECATED_TRUE@@READLINE_TRUE@attrib_gatttool_LDADD = lib/libbluetooth-internal.la \
+-@DEPRECATED_TRUE@@READLINE_TRUE@                      src/libshared-glib.la @GLIB_LIBS@ -lreadline
++@DEPRECATED_TRUE@@READLINE_TRUE@                      src/libshared-glib.la @GLIB_LIBS@ -lreadline -lncurses
+ @CUPS_TRUE@cupsdir = $(libdir)/cups/backend
+ @CUPS_TRUE@profiles_cups_bluetooth_SOURCES = profiles/cups/main.c \
index 845452a4e997f7e0123970776a9ff8b0d2727d41..ec3f88d6eed42cfcc95d307407d994f9e3d9e14e 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=btrfs-progs
-PKG_VERSION:=4.11
-PKG_RELEASE:=2
+PKG_VERSION:=4.13.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/kdave/btrfs-progs/
-PKG_HASH:=e17a68cc52a27d905b715445e91ddbaa4d42de4847d54836d6ed21e012dabf0e
+PKG_HASH:=75c7331f1306495dfffabe542ef6c5539808f0cdaebdf14fa8b7ab09c59448bd
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION)
 
 PKG_LICENSE:=GPL-2.0
index b35b8ddfe2a6b0cf335a2234d4d9973483f4a7bf..7781fd390870d7cfde5336dfeea4396977546030 100644 (file)
@@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/linux-can/can-utils
 PKG_SOURCE_DATE:=2017-02-16
 PKG_SOURCE_VERSION:=cb33a55720716cbe01e6025a2bda74a1b7e492d3
-PKG_MIRROR_HASH:=cb6a615bc7d62923d5bc0130891e824e9964de8a31920004b74872a07d8743ef
+PKG_MIRROR_HASH:=d9c01eeff3d81a28161ca5c3937ec005a1f49ca3eb97bee0164d53cc66365786
 
 PKG_MAINTAINER:=Anton Glukhov <anton.a.glukhov@gmail.com>
 PKG_LICENSE:=GPL-2.0+
index 896b001d578ea845ef664adc3ac751848e49b843..ddf481b970c005736536f203b02e92ba9e8665de 100644 (file)
@@ -16,7 +16,7 @@ PKG_RELEASE:=1
 PKG_SOURCE_URL:=https://github.com/cryptodev-linux/cryptodev-linux
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=a705360197260d28535746ae98c461ba2cfb7a9e
-PKG_MIRROR_HASH:=553069ecf1f3d5d5652404aaf438610f555c94db4369c7c1db85210c4e3cdfee
+PKG_MIRROR_HASH:=334a8f4df18e36e97459b4c6669c9873c13c4f5dae25243cf41ff70c2ce661d8
 
 PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
 
index 8a330be17339a7b2e367dd6c7a1c119abea7dba2..d8dee81390ead2b9b0eb650d643873312d10fa9f 100644 (file)
@@ -11,7 +11,7 @@ PKG_NAME:=domoticz
 PKG_VERSION_MAJOR:=3
 PKG_VERSION_PATCH:=8153
 PKG_VERSION:=$(PKG_VERSION_MAJOR).$(PKG_VERSION_PATCH)
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_VERSION)/$(PKG_SOURCE)
@@ -62,6 +62,8 @@ CMAKE_OPTIONS += \
        -DUSE_STATIC_OPENZWAVE=no \
        -DUSE_PYTHON=no
 
+TARGET_CXXFLAGS+=-DWITH_GPIO
+
 define Build/Prepare
        $(call Build/Prepare/Default)
        # Fix APPVERSION to suppress update popup
@@ -72,7 +74,7 @@ define Build/Prepare
                buienradar_rain_example.pl \
                _domoticz_main* \
                download_update.sh \
-               dzVents/{.gitignore,documentation,examples} \
+               dzVents/{.gitignore,documentation,examples,generated_scripts} \
                dzVents/runtime/{integration-tests,misc/smoothing.xlsx,tests} \
                logrotate/ \
                lua_parsers/example* \
index d714b97388c772af21f1122ae2d4555b66bd70d7..26e0c42d4215ebdb2c28222c01d63da85e4a4ce3 100644 (file)
@@ -20,9 +20,9 @@ start_domoticz() {
        [ -n "$loglevel" ] && procd_append_param command -loglevel "$loglevel"
        [ -n "$syslog" ] && procd_append_param command -syslog "$syslog"
        [ -n "$userdata" ] && {
-               mkdir -p "$userdata"
-               chmod 0770 "$userdata"
-               chown domoticz:domoticz "$userdata"
+               mkdir -p "${userdata}/generated_scripts"
+               chmod -R 0770 "$userdata"
+               chown -R domoticz:domoticz "$userdata"
                procd_append_param command -userdata "$userdata"
        }
        [ -n "$sslcert" -a "${sslwww:-0}" -gt 0 ] && {
diff --git a/utils/domoticz/patches/902_add-scripts-path.patch b/utils/domoticz/patches/902_add-scripts-path.patch
deleted file mode 100644 (file)
index 031321e..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
---- a/hardware/OpenZWave.cpp
-+++ b/hardware/OpenZWave.cpp
-@@ -948,7 +948,7 @@ bool COpenZWave::OpenSerialConnector()
-       m_nodes.clear();
-       m_bNeedSave = false;
--      std::string ConfigPath = szStartupFolder + "Config/";
-+      std::string ConfigPath = "/usr/share/domoticz/openzwave/";
-       std::string UserPath = ConfigPath;
-       if (szStartupFolder != szUserDataFolder)
-       {
---- a/main/EventSystem.cpp
-+++ b/main/EventSystem.cpp
-@@ -33,7 +33,7 @@ extern "C" {
- #endif
- }
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- extern http::server::CWebServerHelper m_webservers;
- static std::string m_printprefix;
-@@ -149,7 +149,7 @@ void CEventSystem::StartEventSystem()
-       GetCurrentScenesGroups();
-       GetCurrentUserVariables();
- #ifdef ENABLE_PYTHON
--    Plugins::PythonEventsInitialize(szUserDataFolder);
-+    Plugins::PythonEventsInitialize(szScriptsFolder);
- #endif
-       m_thread = boost::shared_ptr<boost::thread>(new boost::thread(boost::bind(&CEventSystem::Do_Work, this)));
-@@ -181,9 +181,9 @@ void CEventSystem::LoadEvents()
- {
-       std::string dzv_Dir,s;
- #ifdef WIN32
--      dzv_Dir = szUserDataFolder + "scripts\\dzVents\\generated_scripts\\";
-+      dzv_Dir = szScriptsFolder + "dzVents\\generated_scripts\\";
- #else
--      dzv_Dir = szUserDataFolder + "scripts/dzVents/generated_scripts/";
-+      dzv_Dir = szScriptsFolder + "dzVents/generated_scripts/";
- #endif
-       boost::unique_lock<boost::shared_mutex> eventsMutexLock(m_eventsMutex);
-       _log.Log(LOG_STATUS, "EventSystem: reset all events...");
-@@ -274,18 +274,18 @@ void CEventSystem::LoadEvents()
- void CEventSystem::Do_Work()
- {
- #ifdef WIN32
--      m_lua_Dir = szUserDataFolder + "scripts\\lua\\";
--      m_dzv_Dir = szUserDataFolder + "scripts\\dzVents\\runtime\\";
-+      m_lua_Dir = szScriptsFolder + "lua\\";
-+      m_dzv_Dir = szScriptsFolder + "dzVents\\runtime\\";
- #else
--      m_lua_Dir = szUserDataFolder + "scripts/lua/";
--      m_dzv_Dir = szUserDataFolder + "scripts/dzVents/runtime/";
-+      m_lua_Dir = szScriptsFolder + "lua/";
-+      m_dzv_Dir = szScriptsFolder + "dzVents/runtime/";
- #endif
- #ifdef ENABLE_PYTHON
- #ifdef WIN32
--      m_python_Dir = szUserDataFolder + "scripts\\python\\";
-+      m_python_Dir = szScriptsFolder + "python\\";
- #else
--      m_python_Dir = szUserDataFolder + "scripts/python/";
-+      m_python_Dir = szScriptsFolder + "python/";
- #endif
- #endif
-       m_stoprequested = false;
-@@ -1426,9 +1426,9 @@ void CEventSystem::EvaluateEvent(const s
-               {
-                       std::string dzv_scripts;
- #ifdef WIN32
--                      dzv_scripts = szUserDataFolder + "scripts\\dzVents\\scripts\\";
-+                      dzv_scripts = szScriptsFolder + "dzVents\\scripts\\";
- #else
--                      dzv_scripts = szUserDataFolder + "scripts/dzVents/scripts/";
-+                      dzv_scripts = szScriptsFolder + "dzVents/scripts/";
- #endif
-                       DirectoryListing(FileEntries, dzv_scripts, false, true);
-                       for (itt = FileEntries.begin(); itt != FileEntries.end(); ++itt)
-@@ -2404,7 +2404,7 @@ bool CEventSystem::parseBlocklyActions(c
-                       }
- #if !defined WIN32
-                       if (sPath.find("/") != 0)
--                              sPath = szUserDataFolder + "scripts/" + sPath;
-+                              sPath = szScriptsFolder + sPath;
- #endif
-                       m_sql.AddTaskItem(_tTaskItem::ExecuteScript(0.2f, sPath, sParam));
-@@ -3508,11 +3508,11 @@ void CEventSystem::EvaluateLua(const std
-               {
-                       std::stringstream lua_DirT;
--                      lua_DirT << szUserDataFolder <<
-+                      lua_DirT << szScriptsFolder <<
- #ifdef WIN32
--                      "scripts\\dzVents\\";
-+                      "dzVents\\";
- #else
--                      "scripts/dzVents/";
-+                      "dzVents/";
- #endif
-                       lua_pushstring(lua_state, "script_path");
-@@ -4695,9 +4695,9 @@ namespace http {
-                               std::stringstream template_file;
- #ifdef WIN32
--                              template_file << szUserDataFolder << "scripts\\templates\\" << eventType << "." << interpreter;
-+                              template_file << szScriptsFolder << "templates\\" << eventType << "." << interpreter;
- #else
--                              template_file << szUserDataFolder << "scripts/templates/" << eventType << "." << interpreter;
-+                              template_file << szScriptsFolder << "templates/" << eventType << "." << interpreter;
- #endif
-                               std::ifstream file;
-                               std::stringstream template_content;
---- a/main/LuaHandler.cpp
-+++ b/main/LuaHandler.cpp
-@@ -22,7 +22,7 @@ extern "C" {
- #include "mainworker.h"
- #include "../hardware/hardwaretypes.h"
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- int CLuaHandler::l_domoticz_updateDevice(lua_State* lua_state)
- {
-@@ -155,9 +155,9 @@ bool CLuaHandler::executeLuaScript(const
- {
-       std::stringstream lua_DirT;
- #ifdef WIN32
--      lua_DirT << szUserDataFolder << "scripts\\lua_parsers\\";
-+      lua_DirT << szScriptsFolder << "lua_parsers\\";
- #else
--      lua_DirT << szUserDataFolder << "scripts/lua_parsers/";
-+      lua_DirT << szScriptsFolder << "lua_parsers/";
- #endif
-       std::string lua_Dir = lua_DirT.str();
---- a/main/SQLHelper.cpp
-+++ b/main/SQLHelper.cpp
-@@ -633,6 +633,7 @@ const char *sqlCreateMobileDevices =
- "[LastUpdate] DATETIME DEFAULT(datetime('now', 'localtime'))"
- ");";
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- CSQLHelper::CSQLHelper(void)
-@@ -3683,9 +3684,9 @@ uint64_t CSQLHelper::UpdateValueInt(cons
-                               //Execute possible script
-                               std::string scriptname;
- #ifdef WIN32
--                              scriptname = szUserDataFolder + "scripts\\domoticz_main.bat";
-+                              scriptname = szScriptsFolder + "domoticz_main.bat";
- #else
--                              scriptname = szUserDataFolder + "scripts/domoticz_main";
-+                              scriptname = szScriptsFolder + "domoticz_main";
- #endif
-                               if (file_exist(scriptname.c_str()))
-                               {
-@@ -6641,7 +6642,7 @@ bool CSQLHelper::HandleOnOffAction(const
-                       std::string scriptname = OnAction.substr(9);
- #if !defined WIN32
-                       if (scriptname.find("/") != 0)
--                              scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                              scriptname = szScriptsFolder + scriptname;
- #endif
-                       std::string scriptparams="";
-                       //Add parameters
-@@ -6675,7 +6676,7 @@ bool CSQLHelper::HandleOnOffAction(const
-               std::string scriptname = OffAction.substr(9);
- #if !defined WIN32
-               if (scriptname.find("/") != 0)
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-               std::string scriptparams = "";
-               int pindex = scriptname.find(' ');
---- a/main/WebServer.cpp
-+++ b/main/WebServer.cpp
-@@ -59,6 +59,7 @@
- #define round(a) ( int ) ( a + .5 )
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- extern std::string szWWWFolder;
-@@ -2987,9 +2988,9 @@ namespace http {
-                       if (scriptname.find("..") != std::string::npos)
-                               return;
- #ifdef WIN32
--                      scriptname = szUserDataFolder + "scripts\\" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #else
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-                       if (!file_exist(scriptname.c_str()))
-                               return;
---- a/main/domoticz.cpp
-+++ b/main/domoticz.cpp
-@@ -136,6 +136,7 @@ static const _facilities facilities[] =
- }; 
- std::string logfacname = "user";
- #endif
-+std::string szScriptsFolder;
- std::string szStartupFolder;
- std::string szUserDataFolder;
- std::string szWWWFolder;
-@@ -696,6 +697,19 @@ int main(int argc, char**argv)
-                       szUserDataFolder = szroot;
-       }
-+      szScriptsFolder=szStartupFolder;
-+      if (cmdLine.HasSwitch("-scripts"))
-+      {
-+              if (cmdLine.GetArgumentCount("-scripts") != 1)
-+              {
-+                      _log.Log(LOG_ERROR, "Please specify a path for scripts directory");
-+                      return 1;
-+              }
-+              std::string szroot = cmdLine.GetSafeArgument("-scripts", 0, "");
-+              if (szroot.size() != 0)
-+                      szScriptsFolder = szroot;
-+      }
-+
-       if (cmdLine.HasSwitch("-startupdelay"))
-       {
-               if (cmdLine.GetArgumentCount("-startupdelay") != 1)
---- a/main/mainworker.cpp
-+++ b/main/mainworker.cpp
-@@ -159,6 +159,7 @@
- #define round(a) ( int ) ( a + .5 )
-+extern std::string szScriptsFolder;
- extern std::string szStartupFolder;
- extern std::string szUserDataFolder;
- extern std::string szWWWFolder;
-@@ -1473,8 +1474,8 @@ void MainWorker::Do_Work()
-                       m_sql.GetPreferencesVar("ReleaseChannel", nValue);
-                       bool bIsBetaChannel = (nValue != 0);
--                      std::string scriptname = szUserDataFolder + "scripts/download_update.sh";
--                      std::string strparm = szUserDataFolder;
-+                      std::string scriptname = szScriptsFolder + "download_update.sh";
-+                      std::string strparm = szScriptsFolder;
-                       if (bIsBetaChannel)
-                               strparm += " /beta";
---- a/notifications/NotificationHTTP.cpp
-+++ b/notifications/NotificationHTTP.cpp
-@@ -6,7 +6,7 @@
- #include "../main/SQLHelper.h"
- #include "../main/Logger.h"
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- CNotificationHTTP::CNotificationHTTP() : CNotificationBase(std::string("http"), OPTIONS_NONE)
- {
-@@ -105,7 +105,7 @@ bool CNotificationHTTP::SendMessageImple
-               std::string scriptparams = "";
- #if !defined WIN32
-               if (scriptname.find("/") != 0)
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-               //Add parameters
-               uPos = scriptname.find(" ");
---- a/push/GooglePubSubPush.cpp
-+++ b/push/GooglePubSubPush.cpp
-@@ -22,7 +22,7 @@ extern "C" {
- using namespace boost::python;
- #endif
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- // this should be filled in by the preprocessor
- extern const char * Python_exe;
-@@ -231,11 +231,11 @@ void CGooglePubSubPush::DoGooglePubSubPu
- #ifdef ENABLE_PYTHON_DECAP
- #ifdef WIN32
--                              python_DirT << szUserDataFolder << "scripts\\python\\";
--                              std::string filename = szUserDataFolder + "scripts\\python\\" + "googlepubsub.py";
-+                              python_DirT << szScriptsFolder << "python\\";
-+                              std::string filename = szScriptsFolder + "python\\" + "googlepubsub.py";
- #else
--                              python_DirT << szUserDataFolder << "scripts/python/";
--                              std::string filename = szUserDataFolder + "scripts/python/" + "googlepubsub.py";
-+                              python_DirT << szScriptsFolder << "python/";
-+                              std::string filename = szScriptsFolder + "python/" + "googlepubsub.py";
- #endif
-                               wchar_t * argv[1];
---- a/hardware/EvohomeScript.cpp
-+++ b/hardware/EvohomeScript.cpp
-@@ -30,7 +30,7 @@
- #include <string>
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- CEvohomeScript::CEvohomeScript(const int ID)
-@@ -143,7 +143,7 @@ void CEvohomeScript::RunScript(const cha
-                       std::string scriptname = OnAction.substr(9);
- #if !defined WIN32
-                       if (scriptname.find("/") != 0)
--                              scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                              scriptname = szScriptsFolder + "scripts/" + scriptname;
- #endif
-                       std::string scriptparams="";
-                       //Add parameters
---- a/main/EventsPythonModule.cpp
-+++ b/main/EventsPythonModule.cpp
-@@ -108,7 +108,7 @@
-         
-         int PythonEventsInitalized = 0;
--        bool PythonEventsInitialize(std::string szUserDataFolder) {
-+        bool PythonEventsInitialize(std::string szScriptsFolder) {
-             
-             if (!Plugins::Py_LoadLibrary())
-             {
-@@ -131,9 +131,9 @@
-             
-             std::string ssPath;
- #ifdef WIN32
--            ssPath  = szUserDataFolder + "scripts\\python\\;";
-+            ssPath  = szScriptsFolder + "python\\;";
- #else
--            ssPath  = szUserDataFolder + "scripts/python/:";
-+            ssPath  = szScriptsFolder + "python/:";
- #endif
-             
-             std::wstring sPath = std::wstring(ssPath.begin(), ssPath.end());
diff --git a/utils/domoticz/patches/902_disable-libusb.patch b/utils/domoticz/patches/902_disable-libusb.patch
new file mode 100644 (file)
index 0000000..f4f03c3
--- /dev/null
@@ -0,0 +1,39 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -521,20 +521,23 @@ else()
+   MESSAGE(FATAL_ERROR "cURL not found on your system, see install.txt how to get them installed. (for example 'sudo apt-get install curl libcurl4-openssl-dev')")
+ ENDIF(CURL_FOUND)
+-find_path(LIBUSB_INCLUDE_DIR usb.h
+-   HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
+-find_library(LIBUSB_LIBRARY NAMES usb
+-   HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
+-set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
++option(WITH_LIBUSB "Enable libusb support" NO)
++  if(WITH_LIBUSB)
++  find_path(LIBUSB_INCLUDE_DIR usb.h
++     HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
++  find_library(LIBUSB_LIBRARY NAMES usb
++     HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
++  set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
+-find_package_handle_standard_args(LIBUSB  DEFAULT_MSG  LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
+-IF(LIBUSB_FOUND)
+-  MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
+-  add_definitions(-DWITH_LIBUSB)
+-  target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
+-else()
+-  MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
+-ENDIF(LIBUSB_FOUND)
++  find_package_handle_standard_args(LIBUSB  DEFAULT_MSG  LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
++  IF(LIBUSB_FOUND)
++    MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
++    add_definitions(-DWITH_LIBUSB)
++    target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
++  else()
++    MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
++  ENDIF(LIBUSB_FOUND)
++endif(WITH_LIBUSB)
+ #
+ # Find MD5/RMD160/SHA library
diff --git a/utils/domoticz/patches/903_disable-libusb.patch b/utils/domoticz/patches/903_disable-libusb.patch
deleted file mode 100644 (file)
index f4f03c3..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -521,20 +521,23 @@ else()
-   MESSAGE(FATAL_ERROR "cURL not found on your system, see install.txt how to get them installed. (for example 'sudo apt-get install curl libcurl4-openssl-dev')")
- ENDIF(CURL_FOUND)
--find_path(LIBUSB_INCLUDE_DIR usb.h
--   HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
--find_library(LIBUSB_LIBRARY NAMES usb
--   HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
--set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
-+option(WITH_LIBUSB "Enable libusb support" NO)
-+  if(WITH_LIBUSB)
-+  find_path(LIBUSB_INCLUDE_DIR usb.h
-+     HINTS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
-+  find_library(LIBUSB_LIBRARY NAMES usb
-+     HINTS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
-+  set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
--find_package_handle_standard_args(LIBUSB  DEFAULT_MSG  LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
--IF(LIBUSB_FOUND)
--  MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
--  add_definitions(-DWITH_LIBUSB)
--  target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
--else()
--  MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
--ENDIF(LIBUSB_FOUND)
-+  find_package_handle_standard_args(LIBUSB  DEFAULT_MSG  LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
-+  IF(LIBUSB_FOUND)
-+    MESSAGE(STATUS "LIBUSB found at: ${LIBUSB_LIBRARIES}")
-+    add_definitions(-DWITH_LIBUSB)
-+    target_link_libraries(domoticz ${LIBUSB_LIBRARIES})
-+  else()
-+    MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
-+  ENDIF(LIBUSB_FOUND)
-+endif(WITH_LIBUSB)
- #
- # Find MD5/RMD160/SHA library
diff --git a/utils/domoticz/patches/903_fhs.patch b/utils/domoticz/patches/903_fhs.patch
new file mode 100644 (file)
index 0000000..11e531a
--- /dev/null
@@ -0,0 +1,407 @@
+diff --git a/hardware/EvohomeScript.cpp b/hardware/EvohomeScript.cpp
+index 5258fc55..0a44e97c 100644
+--- a/hardware/EvohomeScript.cpp
++++ b/hardware/EvohomeScript.cpp
+@@ -30,7 +30,7 @@
+ #include <string>
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ CEvohomeScript::CEvohomeScript(const int ID)
+@@ -143,7 +143,7 @@ void CEvohomeScript::RunScript(const char *pdata, const unsigned char length)
+                       std::string scriptname = OnAction.substr(9);
+ #if !defined WIN32
+                       if (scriptname.find("/") != 0)
+-                              scriptname = szUserDataFolder + "scripts/" + scriptname;
++                              scriptname = szScriptsFolder + "scripts/" + scriptname;
+ #endif
+                       std::string scriptparams="";
+                       //Add parameters
+diff --git a/hardware/OpenZWave.cpp b/hardware/OpenZWave.cpp
+index 1f5c341c..24db61c9 100644
+--- a/hardware/OpenZWave.cpp
++++ b/hardware/OpenZWave.cpp
+@@ -948,7 +948,7 @@ bool COpenZWave::OpenSerialConnector()
+       m_nodes.clear();
+       m_bNeedSave = false;
+-      std::string ConfigPath = szStartupFolder + "Config/";
++      std::string ConfigPath = "/usr/share/domoticz/openzwave/";
+       std::string UserPath = ConfigPath;
+       if (szStartupFolder != szUserDataFolder)
+       {
+diff --git a/main/EventSystem.cpp b/main/EventSystem.cpp
+index 4eff02fd..f2b17b97 100644
+--- a/main/EventSystem.cpp
++++ b/main/EventSystem.cpp
+@@ -33,9 +33,11 @@ extern "C" {
+ #endif
+ }
++extern std::string szScriptsFolder;
+ extern std::string szUserDataFolder;
+ extern http::server::CWebServerHelper m_webservers;
++static std::string dzv_Dir;
+ static std::string m_printprefix;
+ #ifdef ENABLE_PYTHON
+@@ -115,7 +117,6 @@ static const _tJsonMap JsonMap[] =
+       { NULL,                                 NULL,                                           tString         }
+ };
+-
+ CEventSystem::CEventSystem(void)
+ {
+       m_stoprequested = false;
+@@ -149,7 +150,7 @@ void CEventSystem::StartEventSystem()
+       GetCurrentScenesGroups();
+       GetCurrentUserVariables();
+ #ifdef ENABLE_PYTHON
+-    Plugins::PythonEventsInitialize(szUserDataFolder);
++    Plugins::PythonEventsInitialize(szScriptsFolder);
+ #endif
+       m_thread = boost::shared_ptr<boost::thread>(new boost::thread(boost::bind(&CEventSystem::Do_Work, this)));
+@@ -179,11 +180,11 @@ void CEventSystem::SetEnabled(const bool bEnabled)
+ void CEventSystem::LoadEvents()
+ {
+-      std::string dzv_Dir,s;
++      std::string s;
+ #ifdef WIN32
+-      dzv_Dir = szUserDataFolder + "scripts\\dzVents\\generated_scripts\\";
++      dzv_Dir = szUserDataFolder + "generated_scripts\\";
+ #else
+-      dzv_Dir = szUserDataFolder + "scripts/dzVents/generated_scripts/";
++      dzv_Dir = szUserDataFolder + "generated_scripts/";
+ #endif
+       boost::unique_lock<boost::shared_mutex> eventsMutexLock(m_eventsMutex);
+       _log.Log(LOG_STATUS, "EventSystem: reset all events...");
+@@ -274,18 +275,18 @@ void CEventSystem::LoadEvents()
+ void CEventSystem::Do_Work()
+ {
+ #ifdef WIN32
+-      m_lua_Dir = szUserDataFolder + "scripts\\lua\\";
+-      m_dzv_Dir = szUserDataFolder + "scripts\\dzVents\\runtime\\";
++      m_lua_Dir = szScriptsFolder + "lua\\";
++      m_dzv_Dir = szScriptsFolder + "dzVents\\runtime\\";
+ #else
+-      m_lua_Dir = szUserDataFolder + "scripts/lua/";
+-      m_dzv_Dir = szUserDataFolder + "scripts/dzVents/runtime/";
++      m_lua_Dir = szScriptsFolder + "lua/";
++      m_dzv_Dir = szScriptsFolder + "dzVents/runtime/";
+ #endif
+ #ifdef ENABLE_PYTHON
+ #ifdef WIN32
+-      m_python_Dir = szUserDataFolder + "scripts\\python\\";
++      m_python_Dir = szScriptsFolder + "python\\";
+ #else
+-      m_python_Dir = szUserDataFolder + "scripts/python/";
++      m_python_Dir = szScriptsFolder + "python/";
+ #endif
+ #endif
+       m_stoprequested = false;
+@@ -1426,9 +1427,9 @@ void CEventSystem::EvaluateEvent(const std::string &reason, const uint64_t Devic
+               {
+                       std::string dzv_scripts;
+ #ifdef WIN32
+-                      dzv_scripts = szUserDataFolder + "scripts\\dzVents\\scripts\\";
++                      dzv_scripts = szScriptsFolder + "dzVents\\scripts\\";
+ #else
+-                      dzv_scripts = szUserDataFolder + "scripts/dzVents/scripts/";
++                      dzv_scripts = szScriptsFolder + "dzVents/scripts/";
+ #endif
+                       DirectoryListing(FileEntries, dzv_scripts, false, true);
+                       for (itt = FileEntries.begin(); itt != FileEntries.end(); ++itt)
+@@ -2404,7 +2405,7 @@ bool CEventSystem::parseBlocklyActions(const std::string &Actions, const std::st
+                       }
+ #if !defined WIN32
+                       if (sPath.find("/") != 0)
+-                              sPath = szUserDataFolder + "scripts/" + sPath;
++                              sPath = szScriptsFolder + sPath;
+ #endif
+                       m_sql.AddTaskItem(_tTaskItem::ExecuteScript(0.2f, sPath, sParam));
+@@ -3508,13 +3509,16 @@ void CEventSystem::EvaluateLua(const std::string &reason, const std::string &fil
+               {
+                       std::stringstream lua_DirT;
+-                      lua_DirT << szUserDataFolder <<
++                      lua_DirT << szScriptsFolder <<
+ #ifdef WIN32
+-                      "scripts\\dzVents\\";
++                      "dzVents\\";
+ #else
+-                      "scripts/dzVents/";
++                      "dzVents/";
+ #endif
++                      lua_pushstring(lua_state, "generated_script_path");
++                      lua_pushstring(lua_state, dzv_Dir.c_str());
++                      lua_rawset(lua_state, -3);
+                       lua_pushstring(lua_state, "script_path");
+                       lua_pushstring(lua_state, lua_DirT.str().c_str());
+                       lua_rawset(lua_state, -3);
+@@ -4695,9 +4699,9 @@ namespace http {
+                               std::stringstream template_file;
+ #ifdef WIN32
+-                              template_file << szUserDataFolder << "scripts\\templates\\" << eventType << "." << interpreter;
++                              template_file << szScriptsFolder << "templates\\" << eventType << "." << interpreter;
+ #else
+-                              template_file << szUserDataFolder << "scripts/templates/" << eventType << "." << interpreter;
++                              template_file << szScriptsFolder << "templates/" << eventType << "." << interpreter;
+ #endif
+                               std::ifstream file;
+                               std::stringstream template_content;
+diff --git a/main/EventsPythonModule.cpp b/main/EventsPythonModule.cpp
+index f69e7219..2d97562e 100644
+--- a/main/EventsPythonModule.cpp
++++ b/main/EventsPythonModule.cpp
+@@ -108,7 +108,7 @@
+         
+         int PythonEventsInitalized = 0;
+-        bool PythonEventsInitialize(std::string szUserDataFolder) {
++        bool PythonEventsInitialize(std::string szScriptsFolder) {
+             
+             if (!Plugins::Py_LoadLibrary())
+             {
+@@ -131,9 +131,9 @@
+             
+             std::string ssPath;
+ #ifdef WIN32
+-            ssPath  = szUserDataFolder + "scripts\\python\\;";
++            ssPath  = szScriptsFolder + "python\\;";
+ #else
+-            ssPath  = szUserDataFolder + "scripts/python/:";
++            ssPath  = szScriptsFolder + "python/:";
+ #endif
+             
+             std::wstring sPath = std::wstring(ssPath.begin(), ssPath.end());
+diff --git a/main/LuaHandler.cpp b/main/LuaHandler.cpp
+index 8fdcb278..c2ad98ff 100644
+--- a/main/LuaHandler.cpp
++++ b/main/LuaHandler.cpp
+@@ -22,7 +22,7 @@ extern "C" {
+ #include "mainworker.h"
+ #include "../hardware/hardwaretypes.h"
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ int CLuaHandler::l_domoticz_updateDevice(lua_State* lua_state)
+ {
+@@ -155,9 +155,9 @@ bool CLuaHandler::executeLuaScript(const std::string &script, const std::string
+ {
+       std::stringstream lua_DirT;
+ #ifdef WIN32
+-      lua_DirT << szUserDataFolder << "scripts\\lua_parsers\\";
++      lua_DirT << szScriptsFolder << "lua_parsers\\";
+ #else
+-      lua_DirT << szUserDataFolder << "scripts/lua_parsers/";
++      lua_DirT << szScriptsFolder << "lua_parsers/";
+ #endif
+       std::string lua_Dir = lua_DirT.str();
+diff --git a/main/SQLHelper.cpp b/main/SQLHelper.cpp
+index 491aa5a2..d529243a 100644
+--- a/main/SQLHelper.cpp
++++ b/main/SQLHelper.cpp
+@@ -633,6 +633,7 @@ const char *sqlCreateMobileDevices =
+ "[LastUpdate] DATETIME DEFAULT(datetime('now', 'localtime'))"
+ ");";
++extern std::string szScriptsFolder;
+ extern std::string szUserDataFolder;
+ CSQLHelper::CSQLHelper(void)
+@@ -3683,9 +3684,9 @@ uint64_t CSQLHelper::UpdateValueInt(const int HardwareID, const char* ID, const
+                               //Execute possible script
+                               std::string scriptname;
+ #ifdef WIN32
+-                              scriptname = szUserDataFolder + "scripts\\domoticz_main.bat";
++                              scriptname = szScriptsFolder + "domoticz_main.bat";
+ #else
+-                              scriptname = szUserDataFolder + "scripts/domoticz_main";
++                              scriptname = szScriptsFolder + "domoticz_main";
+ #endif
+                               if (file_exist(scriptname.c_str()))
+                               {
+@@ -6641,7 +6642,7 @@ bool CSQLHelper::HandleOnOffAction(const bool bIsOn, const std::string &OnAction
+                       std::string scriptname = OnAction.substr(9);
+ #if !defined WIN32
+                       if (scriptname.find("/") != 0)
+-                              scriptname = szUserDataFolder + "scripts/" + scriptname;
++                              scriptname = szScriptsFolder + scriptname;
+ #endif
+                       std::string scriptparams="";
+                       //Add parameters
+@@ -6675,7 +6676,7 @@ bool CSQLHelper::HandleOnOffAction(const bool bIsOn, const std::string &OnAction
+               std::string scriptname = OffAction.substr(9);
+ #if !defined WIN32
+               if (scriptname.find("/") != 0)
+-                      scriptname = szUserDataFolder + "scripts/" + scriptname;
++                      scriptname = szScriptsFolder + scriptname;
+ #endif
+               std::string scriptparams = "";
+               int pindex = scriptname.find(' ');
+diff --git a/main/WebServer.cpp b/main/WebServer.cpp
+index f8471791..d2cf10b2 100644
+--- a/main/WebServer.cpp
++++ b/main/WebServer.cpp
+@@ -59,6 +59,7 @@
+ #define round(a) ( int ) ( a + .5 )
++extern std::string szScriptsFolder;
+ extern std::string szUserDataFolder;
+ extern std::string szWWWFolder;
+@@ -2987,9 +2988,9 @@ namespace http {
+                       if (scriptname.find("..") != std::string::npos)
+                               return;
+ #ifdef WIN32
+-                      scriptname = szUserDataFolder + "scripts\\" + scriptname;
++                      scriptname = szScriptsFolder + scriptname;
+ #else
+-                      scriptname = szUserDataFolder + "scripts/" + scriptname;
++                      scriptname = szScriptsFolder + scriptname;
+ #endif
+                       if (!file_exist(scriptname.c_str()))
+                               return;
+diff --git a/main/domoticz.cpp b/main/domoticz.cpp
+index 5ef96f68..52599b14 100644
+--- a/main/domoticz.cpp
++++ b/main/domoticz.cpp
+@@ -136,6 +136,7 @@ static const _facilities facilities[] =
+ }; 
+ std::string logfacname = "user";
+ #endif
++std::string szScriptsFolder;
+ std::string szStartupFolder;
+ std::string szUserDataFolder;
+ std::string szWWWFolder;
+@@ -696,6 +697,19 @@ int main(int argc, char**argv)
+                       szUserDataFolder = szroot;
+       }
++      szScriptsFolder=szStartupFolder;
++      if (cmdLine.HasSwitch("-scripts"))
++      {
++              if (cmdLine.GetArgumentCount("-scripts") != 1)
++              {
++                      _log.Log(LOG_ERROR, "Please specify a path for scripts directory");
++                      return 1;
++              }
++              std::string szroot = cmdLine.GetSafeArgument("-scripts", 0, "");
++              if (szroot.size() != 0)
++                      szScriptsFolder = szroot;
++      }
++
+       if (cmdLine.HasSwitch("-startupdelay"))
+       {
+               if (cmdLine.GetArgumentCount("-startupdelay") != 1)
+diff --git a/main/mainworker.cpp b/main/mainworker.cpp
+index 803690e1..e89a783b 100644
+--- a/main/mainworker.cpp
++++ b/main/mainworker.cpp
+@@ -159,6 +159,7 @@
+ #define round(a) ( int ) ( a + .5 )
++extern std::string szScriptsFolder;
+ extern std::string szStartupFolder;
+ extern std::string szUserDataFolder;
+ extern std::string szWWWFolder;
+@@ -1473,8 +1474,8 @@ void MainWorker::Do_Work()
+                       m_sql.GetPreferencesVar("ReleaseChannel", nValue);
+                       bool bIsBetaChannel = (nValue != 0);
+-                      std::string scriptname = szUserDataFolder + "scripts/download_update.sh";
+-                      std::string strparm = szUserDataFolder;
++                      std::string scriptname = szScriptsFolder + "download_update.sh";
++                      std::string strparm = szScriptsFolder;
+                       if (bIsBetaChannel)
+                               strparm += " /beta";
+diff --git a/notifications/NotificationHTTP.cpp b/notifications/NotificationHTTP.cpp
+index decff3b4..632e4e66 100644
+--- a/notifications/NotificationHTTP.cpp
++++ b/notifications/NotificationHTTP.cpp
+@@ -6,7 +6,7 @@
+ #include "../main/SQLHelper.h"
+ #include "../main/Logger.h"
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ CNotificationHTTP::CNotificationHTTP() : CNotificationBase(std::string("http"), OPTIONS_NONE)
+ {
+@@ -105,7 +105,7 @@ bool CNotificationHTTP::SendMessageImplementation(
+               std::string scriptparams = "";
+ #if !defined WIN32
+               if (scriptname.find("/") != 0)
+-                      scriptname = szUserDataFolder + "scripts/" + scriptname;
++                      scriptname = szScriptsFolder + scriptname;
+ #endif
+               //Add parameters
+               uPos = scriptname.find(" ");
+diff --git a/push/GooglePubSubPush.cpp b/push/GooglePubSubPush.cpp
+index 359a7d7c..46e489f6 100644
+--- a/push/GooglePubSubPush.cpp
++++ b/push/GooglePubSubPush.cpp
+@@ -22,7 +22,7 @@ extern "C" {
+ using namespace boost::python;
+ #endif
+-extern std::string szUserDataFolder;
++extern std::string szScriptsFolder;
+ // this should be filled in by the preprocessor
+ extern const char * Python_exe;
+@@ -231,11 +231,11 @@ void CGooglePubSubPush::DoGooglePubSubPush()
+ #ifdef ENABLE_PYTHON_DECAP
+ #ifdef WIN32
+-                              python_DirT << szUserDataFolder << "scripts\\python\\";
+-                              std::string filename = szUserDataFolder + "scripts\\python\\" + "googlepubsub.py";
++                              python_DirT << szScriptsFolder << "python\\";
++                              std::string filename = szScriptsFolder + "python\\" + "googlepubsub.py";
+ #else
+-                              python_DirT << szUserDataFolder << "scripts/python/";
+-                              std::string filename = szUserDataFolder + "scripts/python/" + "googlepubsub.py";
++                              python_DirT << szScriptsFolder << "python/";
++                              std::string filename = szScriptsFolder + "python/" + "googlepubsub.py";
+ #endif
+                               wchar_t * argv[1];
+diff --git a/scripts/dzVents/runtime/dzVents.lua b/scripts/dzVents/runtime/dzVents.lua
+index d0dfa869..8370d6a9 100644
+--- a/scripts/dzVents/runtime/dzVents.lua
++++ b/scripts/dzVents/runtime/dzVents.lua
+@@ -1,8 +1,9 @@
+ local currentPath = globalvariables['script_path']
++local generatedScriptPath = globalvariables['generated_script_path']
+ local triggerReason = globalvariables['script_reason']
+ _G.scriptsFolderPath = currentPath .. 'scripts' -- global
+-_G.generatedScriptsFolderPath = currentPath .. 'generated_scripts' -- global
++_G.generatedScriptsFolderPath = generatedScriptPath -- global
+ _G.dataFolderPath = currentPath .. 'data' -- global
+ package.path = package.path .. ';' .. currentPath .. '?.lua'
+@@ -10,7 +11,7 @@ package.path = package.path .. ';' .. currentPath .. 'runtime/?.lua'
+ package.path = package.path .. ';' .. currentPath .. 'runtime/device-adapters/?.lua'
+ package.path = package.path .. ';' .. currentPath .. 'dzVents/?.lua'
+ package.path = package.path .. ';' .. currentPath .. 'scripts/?.lua'
+-package.path = package.path .. ';' .. currentPath .. 'generated_scripts/?.lua'
++package.path = package.path .. ';' .. generatedScriptPath .. '?.lua'
+ package.path = package.path .. ';' .. currentPath .. 'data/?.lua'
+ local EventHelpers = require('EventHelpers')
diff --git a/utils/f2fs-tools/Makefile b/utils/f2fs-tools/Makefile
deleted file mode 100644 (file)
index 6a39bc7..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# Copyright (C) 2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=f2fs-tools
-PKG_VERSION:=1.7.0
-PKG_RELEASE:=1
-
-PKG_LICENSE:=GPLv2
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/
-PKG_MD5SUM:=9db22274264f0c88dbee012f257917b1
-
-PKG_FIXUP:=autoreconf
-PKG_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
-
-PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/f2fs-tools/Default
-  SECTION:=utils
-  CATEGORY:=Utilities
-  SUBMENU:=Filesystem
-  DEPENDS:=+libf2fs
-  URL:=http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git
-endef
-
-define Package/mkf2fs
-  $(Package/f2fs-tools/Default)
-  TITLE:=Utility for creating a Flash-Friendly File System (F2FS)
-endef
-
-define Package/f2fsck
-  $(Package/f2fs-tools/Default)
-  TITLE:=Utility for checking/repairing a Flash-Friendly File System (F2FS)
-endef
-
-define Package/f2fs-tools
-  $(Package/f2fs-tools/Default)
-  TITLE:=Tools for Flash-Friendly File System (F2FS)
-  DEPENDS += +mkf2fs +f2fsck
-endef
-
-define Package/libf2fs
-  SECTION:=libs
-  CATEGORY:=Libraries
-  TITLE:=Library for Flash-Friendly File System (F2FS) tools
-  DEPENDS:=+libuuid
-endef
-
-define Package/libf2fs/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libf2fs.so* $(1)/usr/lib/
-endef
-
-define Package/mkf2fs/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/mkfs.f2fs $(1)/usr/sbin
-endef
-
-define Package/f2fsck/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fsck.f2fs $(1)/usr/sbin
-       ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/defrag.f2fs
-       ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/dump.f2fs
-       ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/sload.f2fs
-       ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/resize.f2fs
-endef
-
-define Package/f2fs-tools/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/f2fstat $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fibmap.f2fs $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/parse.f2fs $(1)/usr/sbin
-endef
-
-$(eval $(call BuildPackage,libf2fs))
-$(eval $(call BuildPackage,mkf2fs))
-$(eval $(call BuildPackage,f2fsck))
-$(eval $(call BuildPackage,f2fs-tools))
diff --git a/utils/f2fs-tools/patches/001-compile.patch b/utils/f2fs-tools/patches/001-compile.patch
deleted file mode 100644 (file)
index 2ff6ee8..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -20,14 +20,9 @@ AC_DEFINE([F2FS_MINOR_VERSION], m4_bpats
-                               [\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]),
-                               [Minor version for f2fs-tools])
--AC_CHECK_FILE(.git,
--      AC_DEFINE([F2FS_TOOLS_DATE],
--              "m4_bpatsubst(f2fs_tools_gitdate,
--              [\([0-9-]*\)\(\w\|\W\)*], [\1])",
--              [f2fs-tools date based on Git commits]),
--      AC_DEFINE([F2FS_TOOLS_DATE],
-+AC_DEFINE([F2FS_TOOLS_DATE],
-               "f2fs_tools_date",
--              [f2fs-tools date based on Source releases]))
-+              [f2fs-tools date based on Source releases])
- AC_CONFIG_SRCDIR([config.h.in])
- AC_CONFIG_HEADER([config.h])
diff --git a/utils/f2fs-tools/patches/010-include-byteswap-h.patch b/utils/f2fs-tools/patches/010-include-byteswap-h.patch
deleted file mode 100644 (file)
index b8c9ff3..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/include/f2fs_fs.h
-+++ b/include/f2fs_fs.h
-@@ -12,6 +12,7 @@
- #include <inttypes.h>
- #include <linux/types.h>
- #include <sys/types.h>
-+#include <byteswap.h>
- #ifdef HAVE_CONFIG_H
- #include <config.h>
diff --git a/utils/f2fs-tools/patches/020-sload.f2fs-allow-to-build-without-libselinux.patch b/utils/f2fs-tools/patches/020-sload.f2fs-allow-to-build-without-libselinux.patch
deleted file mode 100644 (file)
index eac06c9..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-From b0a2386089fd6efade6b89094325ed8a9f8c6fff Mon Sep 17 00:00:00 2001
-From: Christian Hesse <mail@eworm.de>
-Date: Sat, 22 Oct 2016 22:06:54 +0200
-Subject: [PATCH] sload.f2fs: allow to build without libselinux
-
-Some systems do not have libselinux. Allow to build sload.f2fs without
-support for selinux.
-
-Signed-off-by: Christian Hesse <mail@eworm.de>
-Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
----
- configure.ac |  4 +++-
- fsck/sload.c | 12 +++++++++++-
- 2 files changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f519790..7a62328 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -54,7 +54,9 @@ AC_PATH_PROG([LDCONFIG], [ldconfig],
- # Checks for libraries.
- PKG_CHECK_MODULES([libuuid], [uuid])
--PKG_CHECK_MODULES([libselinux], [libselinux])
-+PKG_CHECK_MODULES([libselinux], [libselinux],
-+      [AC_DEFINE([HAVE_LIBSELINUX], [1], [Use libselinux])],
-+      [AC_MSG_NOTICE([libselinux not found])])
- # Checks for header files.
- AC_CHECK_HEADERS([linux/fs.h fcntl.h mntent.h stdlib.h string.h \
-diff --git a/fsck/sload.c b/fsck/sload.c
-index ea072d1..68799c1 100644
---- a/fsck/sload.c
-+++ b/fsck/sload.c
-@@ -16,8 +16,11 @@
- #include <libgen.h>
- #include <dirent.h>
- #include <mntent.h>
-+
-+#ifdef HAVE_LIBSELINUX
- #include <selinux/selinux.h>
- #include <selinux/label.h>
-+#endif
- #ifdef WITH_ANDROID
- #include <selinux/label.h>
-@@ -110,10 +113,12 @@ static int build_directory(struct f2fs_sb_info *sbi, const char *full_path,
-               handle_selabel(dentries + i, S_ISDIR(stat.st_mode),
-                                                       target_out_dir);
-+#ifdef HAVE_LIBSELINUX
-               if (sehnd && selabel_lookup(sehnd, &dentries[i].secon,
-                                       dentries[i].path, stat.st_mode) < 0)
-                       ERR_MSG("Cannot lookup security context for %s\n",
-                                               dentries[i].path);
-+#endif
-               dentries[i].pino = dir_ino;
-@@ -174,6 +179,7 @@ static int build_directory(struct f2fs_sb_info *sbi, const char *full_path,
-                       MSG(1, "Error unknown file type\n");
-               }
-+#ifdef HAVE_LIBSELINUX
-               if (dentries[i].secon) {
-                       inode_set_selinux(sbi, dentries[i].ino, dentries[i].secon);
-                       MSG(1, "File = %s \n----->SELinux context = %s\n",
-@@ -184,10 +190,12 @@ static int build_directory(struct f2fs_sb_info *sbi, const char *full_path,
-                                       dentries[i].gid, dentries[i].capabilities);
-               }
-+              free(dentries[i].secon);
-+#endif
-+
-               free(dentries[i].path);
-               free(dentries[i].full_path);
-               free((void *)dentries[i].name);
--              free(dentries[i].secon);
-       }
-       free(dentries);
-@@ -218,6 +226,7 @@ int f2fs_sload(struct f2fs_sb_info *sbi, const char *from_dir,
-               return ret;
-       }
-+#ifdef HAVE_LIBSELINUX
-       if (sehnd) {
-               char *secontext = NULL;
-@@ -233,6 +242,7 @@ int f2fs_sload(struct f2fs_sb_info *sbi, const char *from_dir,
-               }
-               free(secontext);
-       }
-+#endif
-       /* update curseg info; can update sit->types */
-       move_curseg_info(sbi, SM_I(sbi)->main_blkaddr);
--- 
-2.10.0
-
index 2b600cd8ef94dd1ab1abaa729f2db7b69c52f675..5db0de7470c395f0e4cb29917218af29c5ed3edb 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=less
-PKG_VERSION:=481
+PKG_VERSION:=487
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.greenwoodsoftware.com/less
-PKG_HASH:=3fa38f2cf5e9e040bb44fffaa6c76a84506e379e47f5a04686ab78102090dda5
+PKG_HASH:=f3dc8455cb0b2b66e0c6b816c00197a71bf6d1787078adeee0bcf2aea4b12706
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
index 9fa171905da109c2d2a9c337cc60dbadb98d8a42..d55a795565626f1134908a68f0caeed49c9ddb8e 100644 (file)
@@ -16,7 +16,7 @@ PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/webstack/mbtools.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=149e9c69cec180f18cf8781cf5285b97352bf719
-PKG_MIRROR_HASH:=1e6e2f0e40b1c596bb55279bcedfac5a8deb86ef56978dce01a78877151c9352
+PKG_MIRROR_HASH:=3aed4146e06bd9f9bcc271824c6b1d75d1fc2a0bd980f2b729c3b4755c6f70a8
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 
 PKG_FIXUP:=autoreconf
index 4913f06e5d03ab8a2df18a35de1e51982f0b4a1b..3f37d9336c860daea96b0297341b93751268ef30 100644 (file)
@@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
 PKG_SOURCE_DATE:=2017-03-20
 PKG_SOURCE_VERSION:=37c86e60c0442fef570b75cd81aeb1db4d0cbafd
-PKG_MIRROR_HASH:=fc49fce4f592ffdc2a9c8f453ea96b28eb3ece0c6303ed73462cc61fb5b63318
+PKG_MIRROR_HASH:=652958e818d984804be6846ba504961f31c6e98414d0d34ec7a0d76d0844584a
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=
index 29a9ab5480b6b73481a92a04cf6154c4470d6994..a08a540361531b438dd08c080f14b01b0c868a3c 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nano
-PKG_VERSION:=2.8.6
+PKG_VERSION:=2.8.7
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/nano
-PKG_HASH:=9a46962a3ae59db922467a095217ed23280b42d80640f932f3a59ba2a6a85776
+PKG_HASH:=fbe31746958698d73c6726ee48ad8b0612697157961a2e9aaa83b4aa53d1165a
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
diff --git a/utils/nano/patches/001-backport-post287-fix-for-tiny-compilation.patch b/utils/nano/patches/001-backport-post287-fix-for-tiny-compilation.patch
new file mode 100644 (file)
index 0000000..ef8d749
--- /dev/null
@@ -0,0 +1,38 @@
+From 28cfab7580c42a6d6c9c5d787ce736094fd51a0c Mon Sep 17 00:00:00 2001
+From: Benno Schulenberg <bensberg@telfort.nl>
+Date: Tue, 29 Aug 2017 19:28:44 +0200
+Subject: tweaks: fix compilation when configured with --enable-tiny
+
+When moving the cursor to the top-left corner, it is not necessary
+to compute leftedge because firstcolumn IS the relevant leftedge.
+
+Reported-by: Jordi Mallach <jordi@debian.org>
+---
+ src/move.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/move.c b/src/move.c
+index d138356..ce276e4 100644
+--- a/src/move.c
++++ b/src/move.c
+@@ -121,7 +121,7 @@ void do_page_up(void)
+       openfile->current = openfile->edittop;
+       openfile->current_y = 0;
+-      leftedge = leftedge_for(openfile->firstcolumn, openfile->edittop);
++      leftedge = openfile->firstcolumn;
+       target_column = 0;
+     } else
+       get_edge_and_target(&leftedge, &target_column);
+@@ -152,7 +152,7 @@ void do_page_down(void)
+       openfile->current = openfile->edittop;
+       openfile->current_y = 0;
+-      leftedge = leftedge_for(openfile->firstcolumn, openfile->edittop);
++      leftedge = openfile->firstcolumn;
+       target_column = 0;
+     } else
+       get_edge_and_target(&leftedge, &target_column);
+-- 
+cgit v1.0-41-gc330
+
diff --git a/utils/netwhere/Makefile b/utils/netwhere/Makefile
new file mode 100644 (file)
index 0000000..6a7d5d9
--- /dev/null
@@ -0,0 +1,41 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=netwhere
+PKG_VERSION:=0.6
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=netwhere-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/benhsmith/netwhere/archive/$(PKG_VERSION)/
+PKG_HASH:=0820cf5e59bf6b635c09a6282c664d6966b4d2887736b0f20937c86a8a03f563
+
+PKG_BUILD_DEPENDS:=boost
+
+PKG_MAINTAINER:=Ben Smith <le.ben.smith@gmail.com>
+
+CMAKE_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/netwhere
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Netwhere
+  MAINTAINER:=Ben Smith
+  DEPENDS:=+libtins +libmicrohttpd
+endef
+
+define Package/netwhere/description
+  Network monitor
+endef
+
+define Package/netwhere/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/netwhere $(1)/usr/bin/netwhere
+       $(INSTALL_DIR) $(1)/www/netwhere
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/html/index.html $(1)/www/netwhere/
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/html/netwhere.js $(1)/www/netwhere/
+endef
+
+$(eval $(call BuildPackage,netwhere))
index 1d82213fb024dae7b825791fd9f66e227d39f970..c0b0c4e7ce4d474aa6f1512b91e7d8786f6b0fb3 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pciutils
 PKG_VERSION:=3.5.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/utils/pciutils
@@ -37,11 +37,20 @@ define Package/pciutils/description
  of PCI devices
 endef
 
-define Package/pciutils/postinst
-#!/bin/sh
-[ -z "$${IPKG_INSTROOT}" ] || \
-(cd $${PKG_ROOT}/usr/share; $${PKG_ROOT}/usr/sbin/update-pciids; rm pci.ids.gz.old)
-exit 0
+PCI_IDS_REV:=91cfa8a0c994634ba9a4a8639aa2ac6dff8453b9
+PCI_IDS_FILE:=pci.ids.$(PCI_IDS_REV)
+define Download/pci_ids
+  FILE:=$(PCI_IDS_FILE)
+  URL_FILE:=pci.ids
+  URL:=@GITHUB/pciutils/pciids/$(PCI_IDS_REV)
+  HASH:=798528092d1c58eeac99c6505033ec4ce8fe3e19d7e0c41b06790d58753a89b6
+endef
+$(eval $(call Download,pci_ids))
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       $(RM) $(PKG_BUILD_DIR)/pci.ids
+       $(CP) $(DL_DIR)/$(PCI_IDS_FILE) $(PKG_BUILD_DIR)/pci.ids
 endef
 
 MAKE_FLAGS += \
index 993be713863f8ca9d09d1ef862dfbe787d7ab05e..71751968ab5a49bba579218b2d6e0a89d4dc84c8 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sysstat
-PKG_VERSION:=11.0.4
-PKG_RELEASE:=2
+PKG_VERSION:=11.6.0
+PKG_RELEASE:=1
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://perso.orange.fr/sebastien.godard/
-PKG_HASH:=9a721992e70883c1b9a09d9977501662587b909a014ac0eaa397d30a963acc53
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://pagesperso-orange.fr/sebastien.godard/
+PKG_HASH:=14bb696545cba0d99e3492092c9ed15fe9b6da79df349695251b41d345e969a7
 
 PKG_INSTALL:=1
 
diff --git a/utils/yara/Config.in b/utils/yara/Config.in
new file mode 100644 (file)
index 0000000..76e83db
--- /dev/null
@@ -0,0 +1,16 @@
+if PACKAGE_yara
+       comment "Optional modules"
+
+       config YARA_module_magic
+               bool "Magic module"
+               default y
+               help
+                 Identify the type of the file based on the output of file command
+
+       config YARA_module_cuckoo
+               bool "Cuckoo module"
+               default n
+               help
+                 Create rules based on behavioral info generated by a Cuckoo sandbox
+endif
+
diff --git a/utils/yara/Makefile b/utils/yara/Makefile
new file mode 100644 (file)
index 0000000..6849a59
--- /dev/null
@@ -0,0 +1,71 @@
+#
+# Copyright (C) 2017 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=yara
+PKG_VERSION:=3.6.3
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/VirusTotal/yara/archive/v$(PKG_VERSION)/
+PKG_HASH:=ad2c0e788b4d8b2f3e9078f448754313249a302b749b9a24e932bfc5e141a5e8
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/yara
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Pattern matching swiss knife for malware researchers
+  URL:=http://virustotal.github.io/yara/
+  MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
+  DEPENDS:= +libopenssl
+  DEPENDS+= +YARA_module_magic:libmagic
+  DEPENDS+= +YARA_module_cuckoo:jansson
+  MENU:=1
+endef
+
+define Package/yara/description
+  YARA is a tool aimed at (but not limited to) helping malware researchers
+  to identify and classify malware samples. With YARA you can create
+  descriptions of malware families based on textual or binary patterns.
+endef
+
+CONFIGURE_ARGS += \
+       --disable-dotnet \
+       $(if $(YARA_module_magic),--enable,--disable)-magic \
+       $(if $(YARA_module_cuckoo),--enable,--disable)-cuckoo
+
+define Package/yara/config
+       source "$(SOURCE)/Config.in"
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/yara.h $(1)/usr/include
+       $(INSTALL_DIR) $(1)/usr/include/yara
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/yara/* $(1)/usr/include/yara
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libyara.{a,la,so*} $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/yara.pc $(1)/usr/lib/pkgconfig
+endef
+
+define Package/yara/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/yara $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/yarac $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libyara.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,yara))