Merge pull request #6165 from Rixerx/master
authorchamptar <champetier.etienne@gmail.com>
Mon, 9 Jul 2018 19:34:40 +0000 (22:34 +0300)
committerGitHub <noreply@github.com>
Mon, 9 Jul 2018 19:34:40 +0000 (22:34 +0300)
zabbix: Bump to latest version

412 files changed:
.travis.yml
admin/atop/Makefile [new file with mode: 0644]
admin/ipmitool/Makefile
admin/ipmitool/patches/0001-ID-461-OpenSSL-1.1-compatibility-error-storage-size-.patch [new file with mode: 0644]
admin/ipmitool/patches/0002-ID-461-Make-compiler-happier-about-changes-related-t.patch [new file with mode: 0644]
admin/ipmitool/patches/0003-ID-480-ipmitool-coredumps-in-EVP_CIPHER_CTX_init.patch [new file with mode: 0644]
admin/ipmitool/patches/0004-ID-480-Call-EVP_CIPHER_CTX_free-instead-of-EVP_CIPHE.patch [new file with mode: 0644]
admin/netatop/Makefile [new file with mode: 0644]
admin/netatop/patches/010-daemon-makefile-ldflags.patch [new file with mode: 0644]
devel/diffutils/Makefile
devel/gcc/Makefile
lang/erlang/Makefile
lang/erlang/patches/101-emulator_includes.patch [deleted file]
lang/erlang/patches/102-musl_compat.patch [deleted file]
lang/erlang/patches/103-disable_emacs.patch [deleted file]
lang/golang/golang-package.mk
lang/golang/golang-version.mk
lang/golang/golang/Makefile
lang/lua-openssl/Makefile
lang/lua-openssl/patches/0001-Revise-Makefile.patch
lang/lua-openssl/patches/0020-support-OPENSSL_NO_SSL3_METHOD.patch [deleted file]
lang/lua-openssl/patches/0020-use-X509_REQ_to_X509-in-openssl-1.1.patch [new file with mode: 0644]
lang/lua-openssl/patches/0030-support-OPENSSL_NO_COMP.patch [deleted file]
lang/luai2c/Makefile [deleted file]
lang/luasec/Makefile
lang/luasec/patches/010-openssl-1.1-compatibility.patch [new file with mode: 0644]
lang/luasql/Makefile
lang/luasql/patches/01-mariadb-compat.patch [new file with mode: 0644]
lang/luv/Makefile
lang/lzmq/Makefile
lang/node/Makefile
lang/node/patches/004-node_crypto_include_cmath.patch
lang/perl-text-csv_xs/Makefile
lang/php7/Makefile
lang/python/django-formtools/Makefile [new file with mode: 0644]
lang/python/django-ranged-response/Makefile [new file with mode: 0644]
lang/python/django-simple-captcha/Makefile [new file with mode: 0644]
lang/python/django-webpack-loader/Makefile [new file with mode: 0644]
lang/python/pyjwt/Makefile [new file with mode: 0644]
lang/python/python-asn1crypto/Makefile
lang/python/python-attrs/Makefile
lang/python/python-automat/Makefile
lang/python/python-automat/patches/001-do-not-use-setuptools-scm-m2r.patch
lang/python/python-automat/patches/002-omit-visualize.patch
lang/python/python-automat/patches/003-omit-tests.patch
lang/python/python-certifi/Makefile [new file with mode: 0644]
lang/python/python-cffi/Makefile
lang/python/python-cryptography/Makefile
lang/python/python-cryptography/patches/002-remove-undefined-dtls-methods.patch
lang/python/python-curl/Makefile
lang/python/python-hyperlink/Makefile
lang/python/python-idna/Makefile
lang/python/python-ipaddress/Makefile
lang/python/python-lxml/Makefile
lang/python/python-mysql/Makefile
lang/python/python-mysql/patches/010-threadsafe.patch [deleted file]
lang/python/python-oauthlib/Makefile [new file with mode: 0644]
lang/python/python-ply/Makefile
lang/python/python-pyasn1/Makefile
lang/python/python-pyopenssl/Makefile
lang/python/python-pyserial/Makefile
lang/python/python-qrcode/Makefile [new file with mode: 0644]
lang/python/python-requests-oauthlib/Makefile [new file with mode: 0644]
lang/python/python-requests/Makefile [new file with mode: 0644]
lang/python/python-zope-interface/Makefile
lang/python/python-zope-interface/patches/001-omit-tests.patch [new file with mode: 0644]
lang/python/twisted/Makefile
lang/python/twisted/patches/001-omit-tkconch-patch [deleted file]
lang/python/twisted/patches/001-omit-tkconch.patch [new file with mode: 0644]
lang/python/twisted/patches/002-omit-tests.patch
libs/apr-util/Makefile
libs/apr/Makefile
libs/avahi/Makefile
libs/avahi/patches/010-step_back_autotools-no-gettext.patch
libs/avahi/patches/011-fix-poll-h-warnings-on-musl.patch [deleted file]
libs/avahi/patches/020-revert-runtime-dir-systemd-change.patch [new file with mode: 0644]
libs/faad2/Makefile
libs/fftw3/Makefile
libs/fftw3/patches/001-makefile.patch [deleted file]
libs/file/Makefile
libs/freetype/Makefile
libs/giflib/Makefile
libs/glpk/Makefile
libs/ibrcommon/Makefile
libs/ibrcommon/patches/010-build-with-openssl-1.1.patch [new file with mode: 0644]
libs/icu/Makefile
libs/jansson/Makefile
libs/ldns/Makefile
libs/ldns/patches/001-fix-cross-compile-on-darwin.patch [new file with mode: 0644]
libs/ldns/patches/001-perl5-defined-array.patch [deleted file]
libs/libantlr3c/Makefile
libs/libdmapsharing/Makefile
libs/libfmt/Makefile
libs/libgee/Makefile
libs/libhttp-parser/Makefile
libs/libidn2/Makefile
libs/liblo/Makefile
libs/libmraa/Makefile
libs/libmraa/patches/0001-base.patch
libs/libnet-1.2.x/Makefile
libs/libnetconf2/Makefile
libs/libnetfilter-acct/Makefile
libs/libnopoll/Makefile
libs/libnopoll/patches/001-param_h_rename.patch [deleted file]
libs/libogg/Makefile
libs/libsamplerate/Makefile
libs/libsearpc/Makefile
libs/libsoc/Makefile
libs/libssh/Makefile
libs/libssh/patches/005-openssl-1.1.patch [new file with mode: 0644]
libs/libstrophe/Makefile
libs/libtalloc/Makefile
libs/libtasn1/Makefile
libs/libtorrent/Makefile
libs/libtorrent/patches/110-openssl-1.1.patch [new file with mode: 0644]
libs/libuv/Makefile
libs/libuwsc/Makefile
libs/libwebsockets/Makefile
libs/libwebsockets/patches/001-CMakeLists-build-reproducible-by-default.patch [deleted file]
libs/libwebsockets/patches/020-fix-travis.patch [new file with mode: 0644]
libs/libx264/Makefile
libs/libyang/Makefile
libs/libyang/patches/001-fix-musl-issue.patch [deleted file]
libs/libzdb/Makefile
libs/libzdb/patches/010-cross-compile-fixes.patch
libs/mxml/Makefile
libs/mxml/patches/001-targets.patch [deleted file]
libs/openldap/Makefile
libs/p11-kit/Makefile
libs/p11-kit/patches/010-build-Ease-issetugid-check-when-cross-compiling.patch [new file with mode: 0644]
libs/pcre/Makefile
libs/pcre2/Makefile
libs/protobuf-c/Makefile
libs/tdb/Makefile
libs/xmlrpc-c/Makefile
libs/yaml/Makefile
libs/zmq/Makefile
libs/zmq/patches/010-disable_pedantic_on_linux_with_ulibc++.patch
libs/zmq/patches/020-map_with_const_string_with_ublic++.patch
mail/alpine/Makefile
mail/alpine/patches/100-no-openssl-check-cross-compile.patch [deleted file]
mail/dovecot/Makefile
mail/dovecot/patches/001-configure_in.patch
mail/fdm/Makefile
mail/fdm/patches/001-base64-fix.patch [deleted file]
mail/fdm/patches/002-base64-fix.patch [deleted file]
mail/fdm/patches/003-base64-fix.patch [deleted file]
mail/fdm/patches/010-Compat-fixes-from-Rosen-Penev.patch [new file with mode: 0644]
mail/fdm/patches/010-musl_WAIT_ANY.patch [deleted file]
mail/fdm/patches/020-Fix-compile-with-OpenSSL-1.1.0.patch [new file with mode: 0644]
mail/fdm/patches/020-musl_GLOB_BRACE.patch [deleted file]
mail/fdm/patches/030-musl_ACCESSPERMS.patch [deleted file]
mail/fdm/patches/040-openssl-1.1.patch [new file with mode: 0644]
mail/fdm/src/compat/b64_ntop.c [deleted file]
mail/fdm/src/compat/b64_pton.c [deleted file]
mail/msmtp-scripts/Makefile
mail/nail/Makefile
mail/nail/patches/100-handle-openssl-without-sslv2-sslv3.patch
mail/nail/patches/200-handle-openssl-no-egd.patch [new file with mode: 0644]
mail/opendkim/Makefile
mail/opendkim/patches/010-openssl_1.1.0_compat.patch [new file with mode: 0644]
mail/pigeonhole/Makefile
multimedia/ffmpeg/Makefile
multimedia/gst1-libav/Makefile
multimedia/gst1-plugins-bad/Makefile
multimedia/gst1-plugins-bad/patches/002-no-tests.patch
multimedia/gst1-plugins-base/Makefile
multimedia/gst1-plugins-base/patches/002-no-tests.patch
multimedia/gst1-plugins-good/Makefile
multimedia/gst1-plugins-good/patches/002-no-tests.patch
multimedia/gst1-plugins-ugly/Makefile
multimedia/gstreamer1/Makefile
multimedia/v4l2rtspserver/Makefile
multimedia/v4l2rtspserver/files/config.openwrt
multimedia/xupnpd/Makefile
multimedia/youtube-dl/Makefile
net/acme/Makefile
net/acme/files/acme-cbi.lua
net/adblock/Makefile
net/adblock/files/adblock.conf
net/adblock/files/adblock.sh
net/addrwatch/Makefile
net/addrwatch/patches/001-fix-sys_siglist.patch
net/addrwatch/patches/002-fix-uclibc-sysconf.patch
net/addrwatch/patches/003-fix-pkt-hash.patch [new file with mode: 0644]
net/aircrack-ng/Makefile
net/aircrack-ng/patches/100-fix-openssl-1.1-compatibility.patch [new file with mode: 0644]
net/ariang/Makefile
net/autossh/Makefile
net/bind/Config.in
net/bind/Makefile
net/bitlbee/Makefile
net/bitlbee/patches/010-openssl-1.1-compatibility.patch [new file with mode: 0644]
net/chaosvpn/Makefile
net/chaosvpn/patches/0001-OpenSSL-1.1.0-compile-fix.patch [new file with mode: 0644]
net/ddns-scripts/Makefile
net/ddns-scripts/files/ddns.defaults
net/ddns-scripts/files/dynamic_dns_functions.sh
net/ddns-scripts/files/services
net/ddns-scripts/files/update_cloudflare_com_v4.sh
net/ddns-scripts/files/update_freedns_42_pl.sh [new file with mode: 0755]
net/ddns-scripts/files/update_godaddy_com_v1.sh
net/dhcpcd/Makefile
net/dmapd/Makefile
net/dmapd/files/dmapd.init
net/dmapd/patches/001-dmapd_conf.patch [deleted file]
net/dmapd/patches/001-make_unit_test_optional.patch [new file with mode: 0644]
net/dmapd/patches/002-make_unit_test_optionnal.patch [deleted file]
net/e2guardian/Makefile
net/esniper/Makefile
net/freeradius3/Makefile
net/freeradius3/patches/002-disable-session-cache-CVE-2017-9148.patch
net/freeradius3/patches/003-freeradius-fix-error-for-expansion-of-macro.patch [new file with mode: 0644]
net/git/Makefile
net/git/patches/100-configure_for_crosscompiling.patch
net/git/patches/200-imapsend_without_curl.patch
net/gitolite/Makefile
net/gnunet/Makefile
net/haproxy/Makefile
net/haproxy/get-latest-patches.sh [new file with mode: 0755]
net/haproxy/patches/0001-BUG-MEDIUM-ssl-Dont-always-treat-SSL_ERROR_SYSCALL-as-unrecovarable.patch [deleted file]
net/haproxy/patches/0002-BUG-MEDIUM-ssl-Shutdown-the-connection-for-reading-on-SSL_ERROR_SYSCALL.patch [deleted file]
net/haproxy/patches/0003-BUG-MEDIUM-http-Switch-the-HTTP-response-in-tunnel-mode-as-earlier-as-possible.patch [deleted file]
net/haproxy/patches/0004-BUG-MEDIUM-ssl-sample-ssl_bc_-fetch-keywords-are-broken.patch [deleted file]
net/i2pd/Makefile
net/i2pd/files/i2pd.init
net/ibrdtnd/Makefile
net/ibrdtnd/patches/0001-ibrdtnd-added-openssl-compatibility.patch [new file with mode: 0644]
net/isc-dhcp/Makefile
net/isc-dhcp/files/dhcpd.init
net/krb5/Makefile
net/lighttpd/Makefile
net/miniupnpd/Makefile
net/mwan3/Makefile
net/mwan3/files/lib/mwan3/mwan3.sh
net/net-snmp/files/snmpd.init
net/netopeer2/Makefile
net/netopeer2/files/netopeer2-server.default
net/netopeer2/patches/001-fix-for-cmake-build [new file with mode: 0644]
net/netopeer2/patches/001-remove-sysrepoctl-commands-from-cmake [deleted file]
net/netopeer2/patches/002-fix-for-cmake-build [deleted file]
net/nginx/Config.in
net/nginx/Config_ssl.in [new file with mode: 0644]
net/nginx/Makefile
net/nginx/files-luci-support/60_nginx-luci-support [new file with mode: 0644]
net/nginx/files-luci-support/70_nginx-luci-support-ssl [new file with mode: 0644]
net/nginx/files-luci-support/luci_nginx.conf [new file with mode: 0644]
net/nginx/files-luci-support/luci_nginx_ssl.conf [new file with mode: 0644]
net/nginx/files-luci-support/luci_uwsgi.conf [new file with mode: 0644]
net/nginx/patches-lua-nginx/100-no_by_lua_block.patch
net/nginx/patches/101-feature_test_fix.patch
net/nginx/patches/102-sizeof_test_fix.patch
net/nginx/patches/201-ignore-invalid-options.patch [new file with mode: 0644]
net/noddos/Makefile
net/noddos/patches/010-openssl-1.1-fixes.patch [new file with mode: 0644]
net/nut/Makefile
net/nut/patches/0001-Add-compatibility-with-openssl-1.1.0.patch [new file with mode: 0644]
net/nut/patches/0002-Fix-check-for-empty-string.patch [new file with mode: 0644]
net/ola/Makefile
net/ola/patches/050-always-force-gnu++11.patch [new file with mode: 0644]
net/openssh/Makefile
net/openvswitch/Makefile
net/openvswitch/README.md [new file with mode: 0644]
net/openvswitch/files/etc/init.d/openvswitch.init [deleted file]
net/openvswitch/files/openvswitch.config [new file with mode: 0644]
net/openvswitch/files/openvswitch.init [new file with mode: 0755]
net/openvswitch/files/ovs-ctl-wrapper [new file with mode: 0755]
net/openvswitch/patches/0001-musl-compatibility.patch
net/openvswitch/patches/0100-netdev-linux-Use-unsigned-int-for-ifi_flags.patch
net/openvswitch/patches/0101-netdev-linux-Let-interface-flag-survive-internal-por.patch
net/openvswitch/patches/0102-python-separate-host-target-python-for-cross-compile.patch
net/openvswitch/patches/0103-ovs-ctl-fix-setting-hostname.patch
net/openvswitch/patches/0104-ovs-lib-fix-install_dir.patch
net/openvswitch/patches/0105-removed-calls-to-API-deprecated-in-openssl-1.1.patch [new file with mode: 0644]
net/openvswitch/patches/0106-include-pre-generated-dhparams-c.patch [new file with mode: 0644]
net/pagekitec/Makefile
net/pen/Makefile
net/pingcheck/Makefile
net/radsecproxy/Makefile
net/radsecproxy/patches/100-fix-debug-tid.patch [new file with mode: 0644]
net/radsecproxy/patches/100-missing-return.patch [deleted file]
net/radsecproxy/patches/200-logdest-on-foreground.patch
net/reaver/Makefile
net/rp-pppoe/Makefile
net/rp-pppoe/patches/140-glibc-avoid-include-linux_in.h.patch [new file with mode: 0644]
net/rsync/Makefile
net/seafile-ccnet/Makefile
net/seafile-ccnet/patches/020-Remove-API-deprecated-in-openssl-1.1.patch [new file with mode: 0644]
net/seafile-seahub/Makefile
net/seafile-seahub/patches/010-default-config.patch
net/seafile-seahub/patches/020-Makefile-fixes.patch
net/seafile-server/Makefile
net/seafile-server/patches/020-script-patches.patch
net/seafile-server/patches/060-timestamps-as-int64.patch
net/seafile-server/patches/080-Remove-API-deprecated-in-openssl-1.1.patch [new file with mode: 0644]
net/seafile-server/patches/090-Fix-that-table-SystemInfo-cant-be-created-in-sqlite-db.patch [new file with mode: 0644]
net/seafile-server/patches/100-seafile-admin-Make-sure-ccnet-is-running.patch [new file with mode: 0644]
net/shadowsocks-libev/Makefile
net/sqm-scripts/Makefile
net/squid/Config.in [new file with mode: 0644]
net/squid/Makefile
net/squid/files/squid.conf
net/squid/files/squid.init
net/squid/patches/001-cross_compile.patch
net/squid/patches/002-glibc-compile.patch [new file with mode: 0644]
net/sysrepo/Makefile
net/sysrepo/files/libsysrepo.default
net/tcpreplay/Makefile
net/tinc/Makefile
net/tor/Makefile
net/tor/patches/001-torrc.patch
net/u2pnpd/Makefile
net/uanytun/Makefile
net/uanytun/patches/100-reproducible-builds.patch [deleted file]
net/ulogd/Makefile
net/ulogd/patches/100-musl-compat.patch [deleted file]
net/ulogd/patches/101-ulogd-use-strncpy-instead-of-memcpy.patch [deleted file]
net/umurmur/Makefile
net/umurmur/patches/0001-Update-openssl-1.1-deprecated-API.patch [new file with mode: 0644]
net/umurmur/patches/010-mbedtls_fix_includes.patch [deleted file]
net/unbound/Makefile
net/unbound/files/README.md
net/unbound/files/iptools.sh
net/unbound/files/odhcpd.sh
net/unbound/files/unbound.init
net/unbound/files/unbound.sh
net/unbound/patches/001-conf.patch
net/usbip/Makefile
net/usbip/patches-2.0/100-musl-compat.patch [deleted file]
net/usbip/patches/001-upstream_svn_r99.diff [deleted file]
net/usbip/patches/002-upstream_svn_r152.patch [deleted file]
net/uwsgi-cgi/LICENSE [new file with mode: 0644]
net/uwsgi-cgi/Makefile [new file with mode: 0644]
net/uwsgi-cgi/files-luci-support/uwsgi.conf [new file with mode: 0644]
net/uwsgi-cgi/files-luci-support/uwsgi.init [new file with mode: 0644]
net/wavemon/Makefile
net/webui-aria2/Makefile
net/yaaw/Makefile
sound/fdk-aac/Makefile
sound/fdk-aac/patches/001-fix-overflow.patch [new file with mode: 0644]
sound/forked-daapd/Makefile
sound/forked-daapd/patches/010-use_a_wrapper_for_dmap_find_field.patch [deleted file]
sound/pulseaudio/Makefile
utils/acpid/Makefile
utils/bandwidthd/Makefile
utils/bluez/Makefile
utils/bluez/patches/204-no-printing-subsystem.patch [new file with mode: 0644]
utils/collectd/Makefile
utils/collectd/files/collectd.init
utils/crconf/Makefile
utils/cryptsetup/Makefile
utils/dbus/Makefile
utils/dbus/files/dbus.init
utils/dbus/patches/100-fix-poll-select.patch [deleted file]
utils/domoticz/Makefile
utils/domoticz/files/domoticz.config
utils/domoticz/files/domoticz.hotplug
utils/domoticz/files/domoticz.init
utils/domoticz/patches/001-Make-compatible-with-boost-1.66.patch [deleted file]
utils/domoticz/patches/900_fix-build.patch [deleted file]
utils/domoticz/patches/901_no-udev.patch [deleted file]
utils/domoticz/patches/902_disable-libusb.patch [deleted file]
utils/domoticz/patches/903_fhs.patch [deleted file]
utils/dump1090/Makefile
utils/findutils/Makefile
utils/fio/Makefile [new file with mode: 0644]
utils/gammu/Makefile
utils/gawk/Makefile
utils/gnupg/Makefile
utils/gptfdisk/Makefile [new file with mode: 0644]
utils/hdparm/Makefile
utils/i2c-tools/Makefile
utils/lvm2/Makefile
utils/mariadb/Makefile
utils/mariadb/conf/my.cnf
utils/mariadb/conf/mysqld.default [new file with mode: 0644]
utils/mariadb/files/mysqld.init
utils/mariadb/patches/100-fix_hostname.patch
utils/mariadb/patches/120-fix-ucontext-check.patch
utils/mariadb/patches/130-c11_atomics.patch
utils/mariadb/patches/150-mips-innobase-atomic.patch [deleted file]
utils/mariadb/patches/170-ppc-remove-glibc-dep.patch
utils/mc/Makefile
utils/nano/Makefile
utils/opensc/Makefile
utils/prometheus-node-exporter-lua/Makefile
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/cpu.lua
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/meminfo.lua
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/netdev.lua
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/netstat.lua
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/openwrt.lua
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/time.lua
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi.lua
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi_stations.lua
utils/qemu/Makefile
utils/rtl-sdr/Makefile
utils/rtl-sdr/patches/101-fix-inlines.patch [new file with mode: 0644]
utils/rtty/Makefile
utils/sane-backends/Makefile
utils/sispmctl/Makefile
utils/sispmctl/patches/001-fix-includes.patch [deleted file]
utils/stm32flash/Makefile
utils/sysstat/Makefile
utils/sysstat/patches/100-musl-compat.patch
utils/sysstat/patches/110-remove-sccsid.patch [deleted file]
utils/tmux/Makefile
utils/unrar/Makefile
utils/vim/Makefile
utils/yara/Config.in
utils/yara/Makefile
utils/yunbridge/Makefile
utils/zsh/Makefile

index 773a3511267e653964753b670e8d52e120f2f7a1..e6668f93ca6651707c6d7f5c2ba9c0361a159a20 100644 (file)
@@ -1,5 +1,7 @@
 git:
   depth: 10
+  quiet: true
+
 language: c
 dist: trusty
 sudo: false
diff --git a/admin/atop/Makefile b/admin/atop/Makefile
new file mode 100644 (file)
index 0000000..2d7af09
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=atop
+PKG_RELEASE:=1
+PKG_VERSION:=2.3.0
+PKG_LICENSE:=GPL-2.0
+PKG_SOURCE_URL:=https://www.atoptool.nl/download/
+PKG_HASH:=73e4725de0bafac8c63b032e8479e2305e3962afbe977ec1abd45f9e104eb264
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/atop
+  SECTION:=admin
+  CATEGORY:=Administration
+  TITLE:=System and process monitor for Linux
+  DEPENDS:=+zlib +libncurses
+  URL:=https://www.atoptool.nl/
+  MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
+endef
+
+define Package/atop/description
+  Atop is an ASCII full-screen performance monitor for
+  Linux that is capable of reporting the activity of all
+  processes (even if processes have finished during the
+  interval), daily logging of system and process activity
+  for long-term analysis, highlighting overloaded system
+  resources by using colors, etcetera. At regular
+  intervals, it shows system-level activity related to the
+  CPU, memory, swap, disks (including LVM) and network
+  layers, and for every process (and thread) it shows e.g.
+  the CPU utilization, memory growth, disk utilization,
+  priority, username, state, and exit code. In combination
+  with the optional kernel module netatop, it even shows
+  network activity per process/thread.
+endef
+
+MAKE_FLAGS += \
+       CFLAGS+="-Wno-misleading-indentation -Wno-unused-const-variable -Wno-format-truncation"
+
+define Package/atop/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/atop $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,atop))
index 6c7ead7e9d680676274743e587e6880d2f5c94b1..28957df14ce5b97b92628564b152d7bae470e55f 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ipmitool
 PKG_VERSION:=1.8.18
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
diff --git a/admin/ipmitool/patches/0001-ID-461-OpenSSL-1.1-compatibility-error-storage-size-.patch b/admin/ipmitool/patches/0001-ID-461-OpenSSL-1.1-compatibility-error-storage-size-.patch
new file mode 100644 (file)
index 0000000..3094877
--- /dev/null
@@ -0,0 +1,104 @@
+From b57487e360916ab3eaa50aa6d021c73b6337a4a0 Mon Sep 17 00:00:00 2001
+From: Dennis Schridde <dennis.schridde@uni-heidelberg.de>
+Date: Wed, 30 Nov 2016 17:33:00 +0100
+Subject: [PATCH 1/4] ID:461 - OpenSSL 1.1 compatibility - "error: storage size
+ of 'ctx' isn't known"
+
+In OpenSSL 1.1 EVP_CIPHER_CTX became opaque, cf. `man 3ssl EVP_EncryptInit`
+
+Fixes: ID:461
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index d5fac37..3c0df23 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -164,10 +164,10 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+                                                       uint8_t       * output,
+                                                       uint32_t        * bytes_written)
+ {
+-      EVP_CIPHER_CTX ctx;
+-      EVP_CIPHER_CTX_init(&ctx);
+-      EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
+-      EVP_CIPHER_CTX_set_padding(&ctx, 0);
++      EVP_CIPHER_CTX* ctx;
++      EVP_CIPHER_CTX_init(ctx);
++      EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++      EVP_CIPHER_CTX_set_padding(ctx, 0);
+       
+       *bytes_written = 0;
+@@ -191,7 +191,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+       assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
+-      if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
++      if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
+       {
+               /* Error */
+               *bytes_written = 0;
+@@ -201,7 +201,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+       {
+               uint32_t tmplen;
+-              if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
++              if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+               {
+                       *bytes_written = 0;
+                       return; /* Error */
+@@ -210,7 +210,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+               {
+                       /* Success */
+                       *bytes_written += tmplen;
+-                      EVP_CIPHER_CTX_cleanup(&ctx);
++                      EVP_CIPHER_CTX_cleanup(ctx);
+               }
+       }
+ }
+@@ -239,10 +239,10 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+                                                       uint8_t       * output,
+                                                       uint32_t        * bytes_written)
+ {
+-      EVP_CIPHER_CTX ctx;
+-      EVP_CIPHER_CTX_init(&ctx);
+-      EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
+-      EVP_CIPHER_CTX_set_padding(&ctx, 0);
++      EVP_CIPHER_CTX* ctx;
++      EVP_CIPHER_CTX_init(ctx);
++      EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++      EVP_CIPHER_CTX_set_padding(ctx, 0);
+       if (verbose >= 5)
+@@ -266,7 +266,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+       assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
+-      if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
++      if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
+       {
+               /* Error */
+               lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
+@@ -277,7 +277,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+       {
+               uint32_t tmplen;
+-              if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
++              if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+               {
+                       char buffer[1000];
+                       ERR_error_string(ERR_get_error(), buffer);
+@@ -290,7 +290,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+               {
+                       /* Success */
+                       *bytes_written += tmplen;
+-                      EVP_CIPHER_CTX_cleanup(&ctx);
++                      EVP_CIPHER_CTX_cleanup(ctx);
+               }
+       }
+-- 
+2.16.1
+
diff --git a/admin/ipmitool/patches/0002-ID-461-Make-compiler-happier-about-changes-related-t.patch b/admin/ipmitool/patches/0002-ID-461-Make-compiler-happier-about-changes-related-t.patch
new file mode 100644 (file)
index 0000000..cd4f730
--- /dev/null
@@ -0,0 +1,36 @@
+From 77fe5635037ebaf411cae46cf5045ca819b5c145 Mon Sep 17 00:00:00 2001
+From: Zdenek Styblik <stybla@turnovfree.net>
+Date: Sun, 15 Jan 2017 15:11:25 +0100
+Subject: [PATCH 2/4] ID:461 - Make compiler happier about changes related to
+ OpenSSL 1.1
+
+Complaint was that ctx isn't initialized.
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index 3c0df23..d12d0e3 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -164,7 +164,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+                                                       uint8_t       * output,
+                                                       uint32_t        * bytes_written)
+ {
+-      EVP_CIPHER_CTX* ctx;
++      EVP_CIPHER_CTX *ctx = NULL;
+       EVP_CIPHER_CTX_init(ctx);
+       EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+       EVP_CIPHER_CTX_set_padding(ctx, 0);
+@@ -239,7 +239,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+                                                       uint8_t       * output,
+                                                       uint32_t        * bytes_written)
+ {
+-      EVP_CIPHER_CTX* ctx;
++      EVP_CIPHER_CTX *ctx = NULL;
+       EVP_CIPHER_CTX_init(ctx);
+       EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+       EVP_CIPHER_CTX_set_padding(ctx, 0);
+-- 
+2.16.1
+
diff --git a/admin/ipmitool/patches/0003-ID-480-ipmitool-coredumps-in-EVP_CIPHER_CTX_init.patch b/admin/ipmitool/patches/0003-ID-480-ipmitool-coredumps-in-EVP_CIPHER_CTX_init.patch
new file mode 100644 (file)
index 0000000..91aed82
--- /dev/null
@@ -0,0 +1,53 @@
+From f004b4b7197fc83e7d47ec8cbcaefffa9a922717 Mon Sep 17 00:00:00 2001
+From: Zdenek Styblik <stybla@turnovfree.net>
+Date: Sun, 12 Mar 2017 14:00:35 +0100
+Subject: [PATCH 3/4] ID:480 - ipmitool coredumps in EVP_CIPHER_CTX_init
+
+IPMI tool coredumps due to changes introduced in ID:461. This shouldn't be
+surprise as a NULL pointer is passed to init. Commit addresses this issue by
+calling EVP_CIPHER_CTX_new() instead of EVP_CIPHER_CTX_init(), which is
+deprecated, and by checking return value of call to former function.
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index d12d0e3..0e330c1 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -165,10 +165,13 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+                                                       uint32_t        * bytes_written)
+ {
+       EVP_CIPHER_CTX *ctx = NULL;
+-      EVP_CIPHER_CTX_init(ctx);
++      ctx = EVP_CIPHER_CTX_new();
++      if (ctx == NULL) {
++              *bytes_written = 0;
++              return;
++      }
+       EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+       EVP_CIPHER_CTX_set_padding(ctx, 0);
+-      
+       *bytes_written = 0;
+@@ -240,11 +243,14 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+                                                       uint32_t        * bytes_written)
+ {
+       EVP_CIPHER_CTX *ctx = NULL;
+-      EVP_CIPHER_CTX_init(ctx);
++      ctx = EVP_CIPHER_CTX_new();
++      if (ctx == NULL) {
++              *bytes_written = 0;
++              return;
++      }
+       EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+       EVP_CIPHER_CTX_set_padding(ctx, 0);
+-
+       if (verbose >= 5)
+       {
+               printbuf(iv,  16, "decrypting with this IV");
+-- 
+2.16.1
+
diff --git a/admin/ipmitool/patches/0004-ID-480-Call-EVP_CIPHER_CTX_free-instead-of-EVP_CIPHE.patch b/admin/ipmitool/patches/0004-ID-480-Call-EVP_CIPHER_CTX_free-instead-of-EVP_CIPHE.patch
new file mode 100644 (file)
index 0000000..65a40b0
--- /dev/null
@@ -0,0 +1,144 @@
+From 1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1 Mon Sep 17 00:00:00 2001
+From: Holger Liebig <holger.liebig@ts.fujitsu.com>
+Date: Tue, 4 Apr 2017 20:43:05 +0200
+Subject: [PATCH 4/4] ID:480 - Call EVP_CIPHER_CTX_free() instead of
+ EVP_CIPHER_CTX_cleanup()
+
+Call EVP_CIPHER_CTX_free() instead of EVP_CIPHER_CTX_cleanup() to fix memory
+leak.
+---
+ src/plugins/lanplus/lanplus_crypt_impl.c | 44 +++++++++++++++++---------------
+ 1 file changed, 23 insertions(+), 21 deletions(-)
+
+diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
+index 0e330c1..9652a5e 100644
+--- a/src/plugins/lanplus/lanplus_crypt_impl.c
++++ b/src/plugins/lanplus/lanplus_crypt_impl.c
+@@ -165,13 +165,6 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+                                                       uint32_t        * bytes_written)
+ {
+       EVP_CIPHER_CTX *ctx = NULL;
+-      ctx = EVP_CIPHER_CTX_new();
+-      if (ctx == NULL) {
+-              *bytes_written = 0;
+-              return;
+-      }
+-      EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+-      EVP_CIPHER_CTX_set_padding(ctx, 0);
+       *bytes_written = 0;
+@@ -185,6 +178,14 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+               printbuf(input, input_length, "encrypting this data");
+       }
++      ctx = EVP_CIPHER_CTX_new();
++      if (ctx == NULL) {
++              lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
++              return;
++      }
++      EVP_CIPHER_CTX_init(ctx);
++      EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++      EVP_CIPHER_CTX_set_padding(ctx, 0);
+       /*
+        * The default implementation adds a whole block of padding if the input
+@@ -198,7 +199,6 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+       {
+               /* Error */
+               *bytes_written = 0;
+-              return;
+       }
+       else
+       {
+@@ -206,16 +206,17 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
+               if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+               {
++                      /* Error */
+                       *bytes_written = 0;
+-                      return; /* Error */
+               }
+               else
+               {
+                       /* Success */
+                       *bytes_written += tmplen;
+-                      EVP_CIPHER_CTX_cleanup(ctx);
+               }
+       }
++      /* performs cleanup and free */
++      EVP_CIPHER_CTX_free(ctx);
+ }
+@@ -243,13 +244,6 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+                                                       uint32_t        * bytes_written)
+ {
+       EVP_CIPHER_CTX *ctx = NULL;
+-      ctx = EVP_CIPHER_CTX_new();
+-      if (ctx == NULL) {
+-              *bytes_written = 0;
+-              return;
+-      }
+-      EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
+-      EVP_CIPHER_CTX_set_padding(ctx, 0);
+       if (verbose >= 5)
+       {
+@@ -258,12 +252,20 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+               printbuf(input, input_length, "decrypting this data");
+       }
+-
+       *bytes_written = 0;
+       if (input_length == 0)
+               return;
++      ctx = EVP_CIPHER_CTX_new();
++      if (ctx == NULL) {
++              lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
++              return;
++      }
++      EVP_CIPHER_CTX_init(ctx);
++      EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
++      EVP_CIPHER_CTX_set_padding(ctx, 0);
++
+       /*
+        * The default implementation adds a whole block of padding if the input
+        * data is perfectly aligned.  We would like to keep that from happening.
+@@ -277,7 +279,6 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+               /* Error */
+               lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
+               *bytes_written = 0;
+-              return;
+       }
+       else
+       {
+@@ -285,20 +286,21 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
+               if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
+               {
++                      /* Error */
+                       char buffer[1000];
+                       ERR_error_string(ERR_get_error(), buffer);
+                       lprintf(LOG_DEBUG, "the ERR error %s", buffer);
+                       lprintf(LOG_DEBUG, "ERROR: decrypt final failed");
+                       *bytes_written = 0;
+-                      return; /* Error */
+               }
+               else
+               {
+                       /* Success */
+                       *bytes_written += tmplen;
+-                      EVP_CIPHER_CTX_cleanup(ctx);
+               }
+       }
++      /* performs cleanup and free */
++      EVP_CIPHER_CTX_free(ctx);
+       if (verbose >= 5)
+       {
+-- 
+2.16.1
+
diff --git a/admin/netatop/Makefile b/admin/netatop/Makefile
new file mode 100644 (file)
index 0000000..f872d40
--- /dev/null
@@ -0,0 +1,86 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=netatop
+PKG_RELEASE:=1
+PKG_VERSION:=2.0
+PKG_LICENSE:=GPL-2.0
+PKG_SOURCE_URL:=https://www.atoptool.nl/download/
+PKG_HASH:=c66d7ca094d667428924f2faff2afb816b17565e8c3628e43bfa0e1a2e22c20e
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+define KernelPackage/netatop
+  URL:=https://www.atoptool.nl/
+  CATEGORY:=Kernel modules
+  SUBMENU:=Netfilter Extensions
+  TITLE:=netatop netfilter module
+  FILES:= \
+               $(PKG_BUILD_DIR)/module/netatop.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoProbe,netatop)
+endef
+
+define KernelPackage/netatop/description
+  The optional kernel module netatop can be loaded to gather statistics about
+  the TCP and UDP packets that have been transmitted/received per process and
+  per thread. As soon as atop discovers that this module is active, it shows
+  the columns SNET and RNET in the generic screen for the number of transmitted
+  and received packets per process. When the 'n' key is pressed, it shows
+  detailed counters about the number packets transmitted/received via TCP and
+  UDP, the average sizes of these packets, and the total bandwidth consumed
+  for input and output per process/thread.
+endef
+
+define Package/netatop
+  SECTION:=admin
+  CATEGORY:=Administration
+  TITLE:=network counter for atop
+  DEPENDS:=+zlib +kmod-netatop
+  URL:=https://www.atoptool.nl/
+endef
+
+define Package/netatop/description
+  The daemon netatopd is packaged with the netatop kernel module. This
+  daemon takes care that information is gathered about processes that are
+  finished. For every finished process that has transferred network packets,
+  a binary record is written to a dedicated logfile. The added records in the
+  logfile are read by atop with every sample to show information about the
+  network activity of finished processes as well.
+endef
+
+NETATOP_KMOD_MAKEOPTS= \
+       ARCH="$(LINUX_KARCH)" \
+       CROSS_COMPILE="$(TARGET_CROSS)" \
+       KERNDIR="$(LINUX_DIR)"
+NETATOP_DAEMON_MAKEOPTS= \
+       CC="$(TARGET_CC)" \
+       CFLAGS="$(TARGET_CFLAGS)" \
+       LDFLAGS="$(TARGET_LDFLAGS)"
+
+define Build/Compile/netatop
+       $(MAKE) -C $(PKG_BUILD_DIR)/module \
+               $(NETATOP_KMOD_MAKEOPTS) \
+               netatop.$(LINUX_KMOD_SUFFIX)
+       $(MAKE) -C $(PKG_BUILD_DIR)/daemon \
+               $(NETATOP_DAEMON_MAKEOPTS) \
+               all
+endef
+
+define Build/Compile
+       $(call Build/Compile/netatop)
+endef
+
+define Package/netatop/install
+       $(INSTALL_DIR) $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/daemon/netatopd $(1)/usr/sbin/
+endef
+
+$(eval $(call KernelPackage,netatop))
+$(eval $(call BuildPackage,netatop))
diff --git a/admin/netatop/patches/010-daemon-makefile-ldflags.patch b/admin/netatop/patches/010-daemon-makefile-ldflags.patch
new file mode 100644 (file)
index 0000000..8601da8
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/daemon/Makefile b/daemon/Makefile
+index e028e95..1233855 100644
+--- a/daemon/Makefile
++++ b/daemon/Makefile
+@@ -6,7 +6,7 @@ THISDIR  = $(shell pwd)
+ all:          netatopd
+ netatopd:     netatopd.o Makefile
+-              $(CC) netatopd.o -o netatopd -lz
++              $(CC) $(LDFLAGS) netatopd.o -o netatopd -lz
+ clean:
+               rm -f *.o netatopd
index 643eaf9a1f026b7e666b479e94413b34373f2254..8465d86657e952834e90da2cac22cbc7eaca8462 100644 (file)
@@ -35,6 +35,7 @@ define Package/diffutils/description
 endef
 
 CONFIGURE_VARS += \
+       gl_cv_func_getopt_gnu=yes \
        ac_cv_func_mempcpy=n
 TARGET_CFLAGS += --std=gnu99
 
index 9d6a46f46a5c22e759563deddeb9b342728138dc..716f593d4d067d1b7fdd41775826fe570a2b41d5 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gcc
 PKG_VERSION:=5.4.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_SOURCE_URL:=@GNU/gcc/gcc-$(PKG_VERSION)
 PKG_HASH:=608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
@@ -22,6 +22,7 @@ include $(INCLUDE_DIR)/package.mk
 TARGET_LANGUAGES:="c,c++"
 BUGURL=https://dev.openwrt.org/
 PKGVERSION=OpenWrt GCC $(PKG_VERSION)
+TARGET_CPPFLAGS += -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS
 
 # not using sstrip here as this fucks up the .so's somehow
 STRIP:=$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)strip
@@ -92,6 +93,8 @@ define Build/Prepare
        cp $(PKG_BUILD_DIR)/config.sub $(PKG_BUILD_DIR)/mpc/
 endef
 
+TARGET_CXX += -std=gnu++03
+CONFIGURE_ARGS += CXX_FOR_TARGET="$(TARGET_CXX)" CXXFLAGS_FOR_TARGET="-g -O2 -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS"
 
 define Build/Configure
        (cd $(PKG_BUILD_DIR); rm -f config.cache; \
index ed569aa7b634b00cc44708f4691e03bf0ca9eaef..8b2a423460f5c7ea6fff7f338e0c0440db4175e2 100644 (file)
@@ -8,17 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=erlang
-PKG_VERSION:=17.5
-PKG_RELEASE:=3
+PKG_VERSION:=19.3
+PKG_RELEASE:=6
 
 PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:= http://www.erlang.org/download/ \
-       http://erlang.mirror.su.se/
-PKG_HASH:=3c28820c981b30c50df8ac2a4a238e5813454fa3ed2ad530bc7948a282846474
+PKG_SOURCE_URL:= http://www.erlang.org/download/
+PKG_HASH:=fe4a00651db39b8542b04530a48d24b2f2e7e0b77cbe93d728c9f05325bdfe83
 
 PKG_LICENSE:=ErlPL-1.1
 PKG_LICENSE_FILES:=EPLICENCE
-PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org>
+PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org> \
+                Arnaud Sautaux <arnaud.sautaux@infoteam.ch>
 
 PKG_BUILD_DEPENDS:=erlang/host openssl
 PKG_USE_MIPS16:=0
@@ -46,7 +46,7 @@ endef
 define Package/erlang
 $(call Package/erlang/Default)
   DEPENDS+= +libncurses +librt +zlib
-  PROVIDES:= erlang-erts=6.4 erlang-kernel=3.2 erlang-sasl=2.4.1 erlang-stdlib=2.4
+  PROVIDES:= erlang-erts=8.3 erlang-kernel=5.2 erlang-sasl=3.0.3 erlang-stdlib=3.3
 endef
 
 define Package/erlang/description
@@ -60,7 +60,7 @@ endef
 define Package/erlang-asn1
 $(call Package/erlang/Default)
   TITLE:=Abstract Syntax Notation One (ASN.1) support
-  VERSION:=3.0.4
+  VERSION:=4.0.4
   DEPENDS+= +erlang +erlang-syntax-tools
 endef
 
@@ -75,7 +75,7 @@ endef
 define Package/erlang-compiler
 $(call Package/erlang/Default)
   TITLE:=Byte code compiler
-  VERSION:=5.0.4
+  VERSION:=7.0.4
   DEPENDS+= +erlang +erlang-hipe
 endef
 
@@ -90,7 +90,7 @@ endef
 define Package/erlang-crypto
 $(call Package/erlang/Default)
   TITLE:=Cryptography support
-  VERSION:=3.5
+  VERSION:=3.7.3
   DEPENDS+= +erlang +libopenssl
 endef
 
@@ -105,7 +105,7 @@ endef
 define Package/erlang-hipe
 $(call Package/erlang/Default)
   TITLE:=High Performance Erlang
-  VERSION:=3.11.3
+  VERSION:=3.15.4
   DEPENDS+= +erlang
 endef
 
@@ -120,7 +120,7 @@ endef
 define Package/erlang-inets
 $(call Package/erlang/Default)
   TITLE:=Internet clients and servers
-  VERSION:=5.10.6
+  VERSION:=6.3.6
   DEPENDS+= +erlang
 endef
 
@@ -136,7 +136,7 @@ endef
 define Package/erlang-mnesia
 $(call Package/erlang/Default)
   TITLE:=Distributed database
-  VERSION:=4.12.5
+  VERSION:=4.14.3
   DEPENDS+= +erlang
 endef
 
@@ -153,7 +153,7 @@ endef
 define Package/erlang-runtime-tools
 $(call Package/erlang/Default)
   TITLE:=Low-profile debugging/tracing tools
-  VERSION:=1.8.16
+  VERSION:=1.11.1
   DEPENDS+= +erlang
 endef
 
@@ -168,7 +168,7 @@ endef
 define Package/erlang-snmp
 $(call Package/erlang/Default)
   TITLE:=Simple Network Management Protocol (SNMP) support
-  VERSION:=5.1.1
+  VERSION:=5.2.5
   DEPENDS+= +erlang +erlang-asn1
 endef
 
@@ -181,10 +181,24 @@ $(call Package/erlang/Default/description)
 endef
 
 
+define Package/erlang-public-key
+$(call Package/erlang/Default)
+  TITLE:=Public Key support
+  VERSION:=1.4
+  DEPENDS+= +erlang +erlang-crypto +erlang-asn1
+endef
+
+define Package/erlang-public-key/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides functions to handle public-key infrastructure.
+endef
+
+
 define Package/erlang-ssh
 $(call Package/erlang/Default)
   TITLE:=Secure Shell (SSH) support
-  VERSION:=3.2
+  VERSION:=4.4.1
   DEPENDS+= +erlang +erlang-crypto
 endef
 
@@ -199,7 +213,7 @@ endef
 define Package/erlang-ssl
 $(call Package/erlang/Default)
   TITLE:=Secure Sockets Layer (SSL) support
-  VERSION:=6.0
+  VERSION:=8.1.1
   DEPENDS+= +erlang +erlang-crypto
 endef
 
@@ -214,7 +228,7 @@ endef
 define Package/erlang-syntax-tools
 $(call Package/erlang/Default)
   TITLE:=Abstract Erlang syntax trees handling support
-  VERSION:=1.6.18
+  VERSION:=2.1.1
   DEPENDS+= +erlang
 endef
 
@@ -226,6 +240,76 @@ $(call Package/erlang/Default/description)
 endef
 
 
+define Package/erlang-tools
+$(call Package/erlang/Default)
+  TITLE:=Erlang tools support
+  VERSION:=2.9.1
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-tools/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides support for misc tools.
+endef
+
+
+define Package/erlang-reltool
+$(call Package/erlang/Default)
+  TITLE:=Erlang reltool support
+  VERSION:=0.7.3
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-reltool/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides support for release management.
+endef
+
+
+define Package/erlang-erl-interface
+$(call Package/erlang/Default)
+  TITLE:=Erlang erl_interface support
+  VERSION:=3.9.3
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-erl-interface/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides support for erlang interoperability with other languages.
+endef
+
+define Package/erlang-os_mon
+$(call Package/erlang/Default)
+  TITLE:=Erlang OS Monitoring Application
+  VERSION:=2.4.2
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-os_mon/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides the following services:
+  cpu_sup CPU load and utilization supervision
+  disksup Disk supervision
+  memsup Memory supervision
+endef
+
+define Package/erlang-xmerl
+$(call Package/erlang/Default)
+  TITLE:=Erlang XML export
+  VERSION:=1.3.13
+  DEPENDS+= +erlang
+endef
+
+define Package/erlang-xmerl/description
+$(call Package/erlang/Default/description)
+ .
+ This Erlang/OTP package provides functions for exporting XML data to an external format
+endef
+
 # Host
 
 HOST_CONFIGURE_ARGS += \
@@ -334,6 +418,13 @@ $(eval $(call BuildModule,inets,inets))
 $(eval $(call BuildModule,mnesia,mnesia))
 $(eval $(call BuildModule,runtime-tools,runtime_tools))
 $(eval $(call BuildModule,snmp,snmp))
+$(eval $(call BuildModule,public-key,public_key))
 $(eval $(call BuildModule,ssh,ssh))
 $(eval $(call BuildModule,ssl,ssl))
 $(eval $(call BuildModule,syntax-tools,syntax_tools))
+$(eval $(call BuildModule,tools,tools))
+$(eval $(call BuildModule,reltool,reltool))
+$(eval $(call BuildModule,erl-interface,erl_interface))
+$(eval $(call BuildModule,os_mon,os_mon))
+$(eval $(call BuildModule,xmerl,xmerl))
+
diff --git a/lang/erlang/patches/101-emulator_includes.patch b/lang/erlang/patches/101-emulator_includes.patch
deleted file mode 100644 (file)
index 5a413af..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/erts/emulator/Makefile.in
-+++ b/erts/emulator/Makefile.in
-@@ -682,7 +682,7 @@ $(OBJDIR)/beam_emu.o: beam/beam_emu.c
- endif
- $(OBJDIR)/%.o: beam/%.c
--      $(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@
-+      $(V_CC) $(INCLUDES) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) -c $< -o $@
- $(OBJDIR)/%.o: $(TARGET)/%.c
-       $(V_CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@
diff --git a/lang/erlang/patches/102-musl_compat.patch b/lang/erlang/patches/102-musl_compat.patch
deleted file mode 100644 (file)
index d23900e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib/erl_interface/src/connect/ei_resolve.c
-+++ b/lib/erl_interface/src/connect/ei_resolve.c
-@@ -642,7 +642,7 @@ struct hostent *ei_gethostbyname_r(const
- #ifndef HAVE_GETHOSTBYNAME_R
-   return my_gethostbyname_r(name,hostp,buffer,buflen,h_errnop);
- #else
--#if (defined(__GLIBC__) || (__FreeBSD_version >= 602000) || defined(__DragonFly__) || defined(__ANDROID__))
-+#if (defined(_GNU_SOURCE) || (__FreeBSD_version >= 602000) || defined(__DragonFly__) || defined(__ANDROID__))
-   struct hostent *result;
-   gethostbyname_r(name, hostp, buffer, buflen, &result, h_errnop);
diff --git a/lang/erlang/patches/103-disable_emacs.patch b/lang/erlang/patches/103-disable_emacs.patch
deleted file mode 100644 (file)
index 9412195..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib/tools/Makefile
-+++ b/lib/tools/Makefile
-@@ -23,7 +23,7 @@ include $(ERL_TOP)/make/$(TARGET)/otp.mk
- # Macros
- # ----------------------------------------------------
--SUB_DIRECTORIES = c_src src doc/src examples priv emacs
-+SUB_DIRECTORIES = c_src src doc/src examples priv
- include vsn.mk
- VSN = $(TOOLS_VSN)
index a42bc64179650f17e032c0f5dcd47fe9006b388b..3c4aeab14f9b1b9dc5d26a13592d746f0764118d 100644 (file)
@@ -211,6 +211,7 @@ define GoPackage/Build/Configure
        )
 endef
 
+# $(1) additional arguments for go command line (optional)
 define GoPackage/Build/Compile
        ( \
                cd $(GO_PKG_BUILD_DIR) ; \
@@ -228,7 +229,7 @@ define GoPackage/Build/Compile
                done ; \
                \
                if [ "$(GO_PKG_GO_GENERATE)" = 1 ]; then \
-                       go generate -v $$$$targets ; \
+                       go generate -v $(1) $$$$targets ; \
                fi ; \
                \
                if [ "$(GO_PKG_SOURCE_ONLY)" != 1 ]; then \
@@ -238,7 +239,14 @@ define GoPackage/Build/Compile
                        esac ; \
                        trimpath="all=-trimpath=$(GO_PKG_BUILD_DIR)" ; \
                        ldflags="all=-linkmode external -extldflags '$(TARGET_LDFLAGS)'" ; \
-                       go install $$$$installsuffix -gcflags "$$$$trimpath" -asmflags "$$$$trimpath" -ldflags "$$$$ldflags" -v $$$$targets ; \
+                       go install \
+                               $$$$installsuffix \
+                               -gcflags "$$$$trimpath" \
+                               -asmflags "$$$$trimpath" \
+                               -ldflags "$$$$ldflags" \
+                               -v \
+                               $(1) \
+                               $$$$targets ; \
                        retval=$$$$? ; \
                        \
                        if [ "$$$$retval" -eq 0 ] && [ -z "$(call GoPackage/has_binaries)" ]; then \
index 01b429508e50ecf80b55a1e5daf56e88281f0b6c..27184b7d9a319c2daca23c122ce1551266553026 100644 (file)
@@ -11,4 +11,4 @@ endif
 
 
 GO_VERSION_MAJOR_MINOR:=1.10
-GO_VERSION_PATCH:=
+GO_VERSION_PATCH:=3
index 08170126753a53c1d0244b0b38faa57f045abe7f..898b1db9a23bcb2b9d5e1bd05c1d28d99c6b3498 100644 (file)
@@ -10,11 +10,15 @@ include ../golang-version.mk
 
 PKG_NAME:=golang
 PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
-PKG_RELEASE:=1
+PKG_RELEASE:=2
+
+GO_SOURCE_URLS:=https://dl.google.com/go/ \
+                https://mirrors.ustc.edu.cn/golang/ \
+                https://mirrors.nju.edu.cn/golang/
 
 PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
-PKG_SOURCE_URL:=https://golang.org/dl/
-PKG_HASH:=f3de49289405fda5fd1483a8fe6bd2fa5469e005fd567df64485c4fa000c7f24
+PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
+PKG_HASH:=567b1cc66c9704d1c019c50bef946272e911ec6baf244310f87f4e678be155f2
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
@@ -51,15 +55,9 @@ HOST_GO_VALID_OS_ARCH:= \
   \
   linux_ppc64 linux_ppc64le linux_mips linux_mipsle linux_mips64 linux_mips64le
 
-BOOTSTRAP_SOURCE_PROTO:=git
-BOOTSTRAP_SOURCE_URL:=https://go.googlesource.com/go
-BOOTSTRAP_SOURCE_VERSION:=4d5426a570c2820c5894a61b52e3dc147e4e7925
-BOOTSTRAP_SOURCE_DATE:=20170926
-BOOTSTRAP_MIRROR_HASH:=a3e26ee7c96486c841d29cbea3bf548ce2d999b9235275091cbe60ae6efa4cb1
-
-BOOTSTRAP_VERSION:=$(BOOTSTRAP_SOURCE_DATE)-$(call version_abbrev,$(BOOTSTRAP_SOURCE_VERSION))
-BOOTSTRAP_SOURCE_SUBDIR:=golang-bootstrap-$(BOOTSTRAP_VERSION)
-BOOTSTRAP_SOURCE:=$(BOOTSTRAP_SOURCE_SUBDIR).tar.xz
+BOOTSTRAP_SOURCE:=go1.4-bootstrap-20171003.tar.gz
+BOOTSTRAP_SOURCE_URL:=$(GO_SOURCE_URLS)
+BOOTSTRAP_HASH:=f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52
 
 BOOTSTRAP_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap
 
@@ -81,7 +79,7 @@ include ../golang-package.mk
 
 PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
 HOST_UNPACK:=$(HOST_TAR) -C $(HOST_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
-BOOTSTRAP_UNPACK:=$(HOST_TAR) -C $(BOOTSTRAP_BUILD_DIR) --strip-components=1 -xJf $(DL_DIR)/$(BOOTSTRAP_SOURCE)
+BOOTSTRAP_UNPACK:=$(HOST_TAR) -C $(BOOTSTRAP_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(BOOTSTRAP_SOURCE)
 
 # don't strip ELF executables in test data (and go itself)
 RSTRIP:=:
@@ -148,10 +146,7 @@ endef
 define Download/golang-bootstrap
   FILE:=$(BOOTSTRAP_SOURCE)
   URL:=$(BOOTSTRAP_SOURCE_URL)
-  SUBDIR:=$(BOOTSTRAP_SOURCE_SUBDIR)
-  PROTO:=$(BOOTSTRAP_SOURCE_PROTO)
-  MIRROR_HASH:=$(BOOTSTRAP_MIRROR_HASH)
-  VERSION:=$(BOOTSTRAP_SOURCE_VERSION)
+  HASH:=$(BOOTSTRAP_HASH)
 endef
 $(eval $(call Download,golang-bootstrap))
 
index fc0629cf3f0719f967e84c79f6ffb85b03048f51..1fcd57065cb453527538a49b950ebcd355a3cd79 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lua-openssl
-PKG_VERSION:=0.6.0
+PKG_VERSION:=0.7.1
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Amnon Paz <pazamnon@gmail.com>
 PKG_LICENSE:=MIT
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=33de8fa469f66bbf6df09c4ba4e3386c0613cc061f5adff0928d532af6905773
+PKG_MIRROR_HASH:=225e3fe09226ff72968a7f36a33e207d27332107456a754abbaa59f99a3038f3
 PKG_SOURCE_URL:=https://github.com/zhaozg/lua-openssl.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=1b950e6ff8617205cda1a1b612637ef21b9daf96
+PKG_SOURCE_VERSION:=b104bbe914d279276560f188854036075b99f724
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
index e084c0bb214f0cf449ca389df64a9159f6b29e7f..1a1ef9d038830dafcc8ada04ddceac3157f844be 100644 (file)
@@ -1,13 +1,13 @@
-diff --git a/Makefile b/Makefile
-index 6cb1176..6605879 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -1,85 +1,45 @@
--T=openssl\r
--\r
+@@ -1,58 +1,36 @@
+ T=openssl\r
++.PHONY: install clean\r
\r
 -PREFIX                ?=/usr/local\r
 -LIB_OPTION    ?= -shared \r
--\r
++PKGC ?= pkg-config\r
\r
 -#Lua auto detect\r
 -LUA_VERSION ?= $(shell pkg-config luajit --print-provides)\r
 -ifeq ($(LUA_VERSION),)                         ############ Not use luajit\r
@@ -21,10 +21,15 @@ index 6cb1176..6605879 100644
 -LUA_LIBS      ?= $(shell pkg-config luajit --libs)\r
 -LUA_LIBDIR    ?= $(PREFIX)/lib/lua/$(LUAV)\r
 -endif\r
--\r
++LIB_OPTION    = -shared \r
\r
 -#OS auto detect\r
 -SYS := $(shell gcc -dumpmachine)\r
--\r
++# lua's package config can be under various names\r
++LUAPKGC := $(shell for pc in lua lua5.1 lua5.2 lua5.3; do \\r
++              $(PKGC) --exists $$pc && echo $$pc && break; \\r
++      done)\r
\r
 -ifneq (, $(findstring linux, $(SYS)))\r
 -# Do linux things\r
 -LDFLAGS                   = -fPIC -lrt -ldl\r
@@ -35,8 +40,19 @@ index 6cb1176..6605879 100644
 -ifneq (, $(findstring apple, $(SYS)))\r
 -# Do darwin things\r
 -LDFLAGS                   = -fPIC -lrt -ldl\r
--OPENSSL_LIBS  ?= $(shell pkg-config openssl --libs) \r
--OPENSSL_CFLAGS        ?= $(shell pkg-config openssl --cflags)\r
++BUILD_DIR = $(shell pwd)\r
++\r
++# LUA include/libraries build flags\r
++#LUAV         ?= $(shell lua -e "_,_,v=string.find(_VERSION,'Lua (.+)');print(v)")\r
++LUA_LIBDIR := $(shell $(PKGC) --variable=libdir $(LUAPKGC))\r
++LUA_CFLAGS := $(shell $(PKGC) --cflags $(LUAPKGC))\r
++LUA_LIBS := $(shell $(PKGC) --libs-only-L $(LUAPKGC))\r
++#LUA_LIBDIR   ?= $(PREFIX)/lib/lua/$(LUAV)\r
++\r
++# openssl include/libraries build flags\r
++LDFLAGS                  += -lrt -ldl $(OPENSSL_LIBS) $(LUA_LIBS)\r
+ OPENSSL_LIBS  ?= $(shell pkg-config openssl --libs) \r
+ OPENSSL_CFLAGS        ?= $(shell pkg-config openssl --cflags)\r
 -CFLAGS                    = -fPIC $(OPENSSL_CFLAGS) $(LUA_CFLAGS)\r
 -endif\r
 -ifneq (, $(findstring mingw, $(SYS)))\r
@@ -53,83 +69,30 @@ index 6cb1176..6605879 100644
 -CFLAGS                = -fPIC $(OPENSSL_CFLAGS) $(LUA_CFLAGS)\r
 -endif\r
 -#custome config\r
--ifeq (.config, $(wildcard .config))\r
--include .config\r
--endif\r
--\r
++# openssl include/libraries build flags\r
++LOCAL_INCLUDE = -I$(BUILD_DIR)/deps\r
++CFLAGS                   += -fPIC -DPTHREADS $(LOCAL_INCLUDE) $(OPENSSL_CFLAGS) $(LUA_CFLAGS) \r
+ ifeq (.config, $(wildcard .config))\r
+ include .config\r
+ endif\r
\r
 -LIBNAME= $T.so.$V\r
--\r
--#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X\r
--\r
--# Compilation directives\r
--WARN_MOST     = -Wall -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic\r
--WARN          = -Wall -Wno-unused-value\r
--WARN_MIN      = \r
--CFLAGS                += $(WARN_MIN) -DPTHREADS \r
--CC= gcc -g $(CFLAGS) -Ideps\r
--\r
--\r
--OBJS=src/asn1.o src/auxiliar.o src/bio.o src/cipher.o src/cms.o src/compat.o src/crl.o src/csr.o src/dh.o src/digest.o src/dsa.o \\r
--src/ec.o src/engine.o src/hmac.o src/lbn.o src/lhash.o src/misc.o src/ocsp.o src/openssl.o src/ots.o src/pkcs12.o src/pkcs7.o    \\r
--src/pkey.o src/rsa.o src/ssl.o src/th-lock.o src/util.o src/x509.o src/xattrs.o src/xexts.o src/xname.o src/xstore.o src/xalgor.o src/callback.o \r
--\r
++LIBNAME= $T.so\r
\r
+ #LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X\r
\r
+@@ -68,11 +46,12 @@ OBJS=src/asn1.o src/auxiliar.o src/bio.o
+ src/ec.o src/engine.o src/hmac.o src/lbn.o src/lhash.o src/misc.o src/ocsp.o src/openssl.o src/ots.o src/pkcs12.o src/pkcs7.o    \\r
+ src/pkey.o src/rsa.o src/ssl.o src/th-lock.o src/util.o src/x509.o src/xattrs.o src/xexts.o src/xname.o src/xstore.o src/xalgor.o src/callback.o \r
\r
 -.c.o:\r
 -      $(CC) -c -o $@ $?\r
--\r
--all: $T.so\r
--      echo $(SYS)\r
--\r
--$T.so: $(OBJS)\r
--      MACOSX_DEPLOYMENT_TARGET="10.3"; export MACOSX_DEPLOYMENT_TARGET; $(CC) $(CFLAGS) $(LIB_OPTION) -o $T.so $(OBJS) $(OPENSSL_LIBS) $(LUA_LIBS) $(LDFLAGS)\r
--\r
--install: all\r
--      mkdir -p $(LUA_LIBDIR)\r
--      cp $T.so $(LUA_LIBDIR)\r
--\r
--clean:\r
--      rm -f $T.so $(OBJS) \r
-+.PHONY: install clean
-+
-+PKGC ?= pkg-config
-+
-+LIBNAME = openssl.so
-+LIB_OPTION = -shared
-+
-+# lua's package config can be under various names
-+LUAPKGC := $(shell for pc in lua lua5.1 lua5.2 lua5.3; do \
-+              $(PKGC) --exists $$pc && echo $$pc && break; \
-+      done)
-+
-+BUILD_DIR = $(shell pwd)
-+
-+# LUA include/libraries build flags
-+LUA_LIBDIR := $(shell $(PKGC) --variable=libdir $(LUAPKGC))
-+LUA_CFLAGS := $(shell $(PKGC) --cflags $(LUAPKGC))
-+LUA_LIBS := $(shell $(PKGC) --libs-only-L $(LUAPKGC))
-+
-+# openssl include/libraries build flags
-+OPENSSL_LIBS  = $(shell $(PKGC) openssl --libs)
-+OPENSSL_CFLAGS        = $(shell $(PKGC) openssl --cflags)
-+
-+# openssl include/libraries build flags
-+LOCAL_INCLUDE = -I$(BUILD_DIR)/deps
-+
-+CFLAGS        += -fPIC -DPTHREADS -g $(LOCAL_INCLUDE) $(OPENSSL_CFLAGS) $(LUA_CFLAGS)
-+LDFLAGS += -lrt -ldl $(OPENSSL_LIBS) $(LUA_LIBS)
-+
-+OBJS = src/asn1.o src/auxiliar.o src/bio.o src/cipher.o src/cms.o src/compat.o src/crl.o src/csr.o src/dh.o src/digest.o src/dsa.o src/ec.o src/engine.o src/hmac.o src/lbn.o src/lhash.o src/misc.o src/ocsp.o src/openssl.o src/ots.o src/pkcs12.o src/pkcs7.o src/pkey.o src/rsa.o src/ssl.o src/th-lock.o src/util.o src/x509.o src/xattrs.o src/xexts.o src/xname.o src/xstore.o src/xalgor.o src/callback.o
-+
-+all: clean $(LIBNAME)
-+
-+$(LIBNAME): $(OBJS)
-+      $(CC) $(LDFLAGS) $(LIB_OPTION) $(OBJS) -o $@
-+
-+%.o: %.c
-+      $(CC) $(CFLAGS) -c $< -o $@
-+
-+install: all
-+      mkdir -p $(LUA_LIBDIR)
-+      cp $(LIBNAME) $(LUA_LIBDIR)
-+
-+clean:
-+      rm -f $(LIBNAME) $(OBJS)
++%.o: %.c\r
++      $(CC) $(CFLAGS) -c $< -o $@\r
\r
+ all: $T.so\r
+       echo $(SYS)\r
++      $(CC) $(LDFLAGS) $(LIB_OPTION) $(OBJS) -o $@\r
\r
+ $T.so: $(OBJS)\r
+       MACOSX_DEPLOYMENT_TARGET="10.3"; export MACOSX_DEPLOYMENT_TARGET; $(CC) $(CFLAGS) $(LIB_OPTION) -o $T.so $(OBJS) $(OPENSSL_LIBS) $(LUA_LIBS) $(LDFLAGS)\r
diff --git a/lang/lua-openssl/patches/0020-support-OPENSSL_NO_SSL3_METHOD.patch b/lang/lua-openssl/patches/0020-support-OPENSSL_NO_SSL3_METHOD.patch
deleted file mode 100644 (file)
index 2f29680..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
---- lua-openssl-0.6.0.old/src/ssl.c    2016-09-19 08:30:43.735075695 +0200
-+++ lua-openssl-0.6.0/src/ssl.c        2016-09-19 09:02:45.733813437 +0200
-@@ -24,12 +24,17 @@
-   SSL_METHOD* method = NULL;
-   const char* ciphers;
-   SSL_CTX* ctx;
--  if (strcmp(meth, "SSLv3") == 0)
-+  if (0);
-+
-+#ifndef OPENSSL_NO_SSL3
-+  else if (strcmp(meth, "SSLv3") == 0)
-     method = SSLv3_method();    /* SSLv3 */
-   else if (strcmp(meth, "SSLv3_server") == 0)
-     method = SSLv3_server_method(); /* SSLv3 */
-   else if (strcmp(meth, "SSLv3_client") == 0)
-     method = SSLv3_client_method(); /* SSLv3 */
-+#endif
-+
-   else if (strcmp(meth, "SSLv23") == 0)
-     method = SSLv23_method();   /* SSLv3 but can rollback to v2 */
-   else if (strcmp(meth, "SSLv23_server") == 0)
-@@ -79,15 +84,15 @@
- #endif
-   else
-     luaL_error(L, "#1:%s not supported\n"
--               "Maybe SSLv3 SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server\n",
--               "default is SSLv3",
-+               "Maybe [SSLv3] SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server\n",
-+               "default is TLSv1",
-                meth);
-   ciphers = luaL_optstring(L, 2, SSL_DEFAULT_CIPHER_LIST);
-   ctx = SSL_CTX_new(method);
-   if (!ctx)
-     luaL_error(L, "#1:%s not supported\n"
--               "Maybe SSLv3 SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server\n",
--               "default is SSLv3",
-+               "Maybe [SSLv3] SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server\n",
-+               "default is TLSv1",
-                meth);
-   openssl_newvalue(L, ctx);
-   SSL_CTX_set_cipher_list(ctx, ciphers);
diff --git a/lang/lua-openssl/patches/0020-use-X509_REQ_to_X509-in-openssl-1.1.patch b/lang/lua-openssl/patches/0020-use-X509_REQ_to_X509-in-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..930b37e
--- /dev/null
@@ -0,0 +1,31 @@
+--- a/src/csr.c
++++ b/src/csr.c
+@@ -38,7 +38,7 @@ static LUA_FUNCTION(openssl_csr_read)
+   return openssl_pushresult(L, 0);
+ }
\r
+-\r
++#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
+ static X509 *X509_REQ_to_X509_ex(X509_REQ *r, int days, EVP_PKEY *pkey, const EVP_MD* md)\r
+ {\r
+   X509 *ret = NULL;\r
+@@ -91,14 +91,19 @@ static X509 *X509_REQ_to_X509_ex(X509_RE
+   }\r
+   return (ret);\r
+ }\r
++#endif\r
+ static LUA_FUNCTION(openssl_csr_to_x509)
+ {
+   X509_REQ * csr  = CHECK_OBJECT(1, X509_REQ, "openssl.x509_req");
+   EVP_PKEY * pkey = CHECK_OBJECT(2, EVP_PKEY, "openssl.evp_pkey");
+   int days = luaL_optint(L, 3, 365);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+   const EVP_MD* md = get_digest(L, 4, "sha256");
+   X509* cert = X509_REQ_to_X509_ex(csr, days, pkey, md);
++#else
++  X509* cert = X509_REQ_to_X509(csr, days, pkey);
++#endif
+   if (cert)
+   {
+     PUSH_OBJECT(cert, "openssl.x509");
diff --git a/lang/lua-openssl/patches/0030-support-OPENSSL_NO_COMP.patch b/lang/lua-openssl/patches/0030-support-OPENSSL_NO_COMP.patch
deleted file mode 100644 (file)
index 44e5330..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- lua-openssl-0.6.0.old/src/ssl.c    2016-09-19 08:30:43.735075695 +0200
-+++ lua-openssl-0.6.0/src/ssl.c        2016-09-19 08:48:37.393737125 +0200
-@@ -1245,7 +1250,7 @@
-   lua_pushinteger(L, st);
-   return 2;
- }
--#ifndef LIBRESSL_VERSION_NUMBER
-+#if !defined(OPENSSL_NO_COMP) && !defined(LIBRESSL_VERSION_NUMBER)
- static int openssl_ssl_current_compression(lua_State *L)
- {
-   SSL* s = CHECK_OBJECT(1, SSL, "openssl.ssl");
-@@ -1803,7 +1808,7 @@
-   {"getfd",     openssl_ssl_getfd},
-
-   {"current_cipher",        openssl_ssl_current_cipher},
--#ifndef LIBRESSL_VERSION_NUMBER
-+#if !defined(OPENSSL_NO_COMP) && !defined(LIBRESSL_VERSION_NUMBER)
-   {"current_compression",   openssl_ssl_current_compression},
- #endif
-   {"getpeerverification",   openssl_ssl_getpeerverification},
diff --git a/lang/luai2c/Makefile b/lang/luai2c/Makefile
deleted file mode 100644 (file)
index 08525d9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# 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:=luai2c
-PKG_VERSION:=1.1.2
-PKG_RELEASE:=4
-PKG_MAINTAINER:=Frank Edelhaeuser <mrpace2@gmail.com>
-PKG_LICENSE:=MIT
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=1c25062e95064cda4866243ff6797ef597dd57260da559ca68129aa7a72a9cda
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/mrpace2/lua-i2c.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/luai2c
-       SUBMENU:=Lua
-       SECTION:=lang
-       CATEGORY:=Languages
-       TITLE:=Lua I2C binding
-       URL:=https://github.com/mrpace2/lua-i2c/
-       DEPENDS:=+liblua +kmod-i2c-core
-       MAINTAINER:=Frank Edelhaeuser <mrpace2@gmail.com>
-endef
-
-define Package/luai2c/description
-       This is the Lua binding for I2C. It provides access to I2C slaves supported by the kernel.
-endef
-
-define Package/luai2c/install
-       $(INSTALL_DIR) $(1)/usr/lib/lua
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/i2c.so $(1)/usr/lib/lua
-       $(INSTALL_DIR) $(1)/usr/lib/lua/i2c
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/examples/* $(1)/usr/lib/lua/i2c
-endef
-
-$(eval $(call BuildPackage,luai2c))
index 4bf05acc9f4557fff40a8de90f47438879ef197c..307624d6924b627908e081845a64b44c08c6e774 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=luasec
 PKG_VERSION:=0.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/brunoos/luasec/archive/
diff --git a/lang/luasec/patches/010-openssl-1.1-compatibility.patch b/lang/luasec/patches/010-openssl-1.1-compatibility.patch
new file mode 100644 (file)
index 0000000..39681dd
--- /dev/null
@@ -0,0 +1,180 @@
+--- a/src/context.c
++++ b/src/context.c
+@@ -24,7 +24,7 @@
+ #include "context.h"
+ #include "options.h"
+-#ifndef OPENSSL_NO_ECDH
++#ifndef OPENSSL_NO_EC
+ #include <openssl/ec.h>
+ #include "ec.h"
+ #endif
+@@ -35,10 +35,6 @@ typedef const SSL_METHOD LSEC_SSL_METHOD
+ typedef       SSL_METHOD LSEC_SSL_METHOD;
+ #endif
+-#if OPENSSL_VERSION_NUMBER>=0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+-#define SSLv23_method() TLS_method()
+-#endif
+-
+ /*-- Compat - Lua 5.1 --------------------------------------------------------*/
+ #if (LUA_VERSION_NUM == 501)
+@@ -304,7 +300,7 @@ static int verify_cb(int preverify_ok, X
+   return (verify & LSEC_VERIFY_CONTINUE ? 1 : preverify_ok);
+ }
+-#ifndef OPENSSL_NO_ECDH
++#ifndef OPENSSL_NO_EC
+ static EC_KEY *find_ec_key(const char *str)
+ {
+   p_ec ptr;
+@@ -565,7 +561,7 @@ static int set_dhparam(lua_State *L)
+ /**
+  * Set elliptic curve.
+  */
+-#ifdef OPENSSL_NO_ECDH
++#ifdef OPENSSL_NO_EC
+ static int set_curve(lua_State *L)
+ {
+   lua_pushboolean(L, 0);
+--- a/src/ssl.c
++++ b/src/ssl.c
+@@ -31,6 +31,13 @@
+ #include "context.h"
+ #include "ssl.h"
++
++#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER<0x10100000L
++#define SSL_is_server(s) (s->server)
++#define X509_up_ref(c)   CRYPTO_add(&c->references, 1, CRYPTO_LOCK_X509)
++#endif
++
++
+ /**
+  * Underline socket error.
+  */
+@@ -406,7 +413,9 @@ static int meth_want(lua_State *L)
+  */
+ static int meth_compression(lua_State *L)
+ {
+-#if !defined(OPENSSL_NO_COMP)
++#ifdef OPENSSL_NO_COMP
++  const void *comp;
++#else
+   const COMP_METHOD *comp;
+ #endif
+   p_ssl ssl = (p_ssl)luaL_checkudata(L, 1, "SSL:Connection");
+@@ -415,15 +424,11 @@ static int meth_compression(lua_State *L
+     lua_pushstring(L, "closed");
+     return 2;
+   }
+-#if !defined(OPENSSL_NO_COMP)
+   comp = SSL_get_current_compression(ssl->ssl);
+   if (comp)
+     lua_pushstring(L, SSL_COMP_get_name(comp));
+   else
+     lua_pushnil(L);
+-#else
+-  lua_pushnil(L);
+-#endif
+   return 1;
+ }
+@@ -461,7 +466,7 @@ static int meth_getpeercertificate(lua_S
+   /* In a server-context, the stack doesn't contain the peer cert,
+    * so adjust accordingly.
+    */
+-  if (ssl->ssl->server)
++  if (SSL_is_server(ssl->ssl))
+     --n;
+   certs = SSL_get_peer_cert_chain(ssl->ssl);
+   if (n >= sk_X509_num(certs)) {
+@@ -471,7 +476,7 @@ static int meth_getpeercertificate(lua_S
+   cert = sk_X509_value(certs, n);
+   /* Increment the reference counting of the object. */
+   /* See SSL_get_peer_certificate() source code.     */
+-  CRYPTO_add(&cert->references, 1, CRYPTO_LOCK_X509);
++  X509_up_ref(cert);
+   lsec_pushx509(L, cert);
+   return 1;
+ }
+@@ -493,7 +498,7 @@ static int meth_getpeerchain(lua_State *
+     return 2;
+   }
+   lua_newtable(L);
+-  if (ssl->ssl->server) {
++  if (SSL_is_server(ssl->ssl)) {
+     lsec_pushx509(L, SSL_get_peer_certificate(ssl->ssl));
+     lua_rawseti(L, -2, idx++);
+   }
+@@ -503,7 +508,7 @@ static int meth_getpeerchain(lua_State *
+     cert = sk_X509_value(certs, i);
+     /* Increment the reference counting of the object. */
+     /* See SSL_get_peer_certificate() source code.     */
+-    CRYPTO_add(&cert->references, 1, CRYPTO_LOCK_X509);
++    X509_up_ref(cert);
+     lsec_pushx509(L, cert);
+     lua_rawseti(L, -2, idx++);
+   }
+--- a/src/x509.c
++++ b/src/x509.c
+@@ -32,6 +32,17 @@
+ #include "x509.h"
++
++/*
++ * ASN1_STRING_data is deprecated in OpenSSL 1.1.0
++ */
++#if OPENSSL_VERSION_NUMBER>=0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)
++#define LSEC_ASN1_STRING_data(x) ASN1_STRING_get0_data(x)
++#else
++#define LSEC_ASN1_STRING_data(x) ASN1_STRING_data(x)
++#endif
++
++
+ static const char* hex_tab = "0123456789abcdef";
+ /**
+@@ -146,7 +157,7 @@ static void push_asn1_string(lua_State*
+   }
+   switch (encode) {
+   case LSEC_AI5_STRING:
+-    lua_pushlstring(L, (char*)ASN1_STRING_data(string),
++    lua_pushlstring(L, (char*)LSEC_ASN1_STRING_data(string),
+                        ASN1_STRING_length(string));
+     break;
+   case LSEC_UTF8_STRING:
+@@ -182,7 +193,7 @@ static void push_asn1_ip(lua_State *L, A
+ {
+   int af;
+   char dst[INET6_ADDRSTRLEN];
+-  unsigned char *ip = ASN1_STRING_data(string);
++  unsigned char *ip = (unsigned char*)LSEC_ASN1_STRING_data(string);
+   switch(ASN1_STRING_length(string)) {
+   case 4:
+     af = AF_INET;
+@@ -293,11 +304,11 @@ int meth_extensions(lua_State* L)
+       break;
+     /* Push ret[oid] */
+-    push_asn1_objname(L, extension->object, 1);
++    push_asn1_objname(L, X509_EXTENSION_get_object(extension), 1);
+     push_subtable(L, -2);
+     /* Set ret[oid].name = name */
+-    push_asn1_objname(L, extension->object, 0);
++    push_asn1_objname(L, X509_EXTENSION_get_object(extension), 0);
+     lua_setfield(L, -2, "name");
+     n_general_names = sk_GENERAL_NAME_num(values);
+@@ -404,7 +415,7 @@ static int meth_pubkey(lua_State* L)
+     bytes = BIO_get_mem_data(bio, &data);
+     if (bytes > 0) {
+       lua_pushlstring(L, data, bytes);
+-      switch(EVP_PKEY_type(pkey->type)) {
++      switch(EVP_PKEY_base_id(pkey)) {
+         case EVP_PKEY_RSA:
+           lua_pushstring(L, "RSA");
+           break;
index 3f904f8c36813b63d1cf5bf8cda8487ffdf84be7..1a43fdbcbe4708637cf3efd11f828f714586998c 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=luasql
 PKG_VERSION:=2.3.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_MIRROR_HASH:=b6251065656bf3e066d90d492dd06eec2c2cc76ab4b94187ce3ed9620d41f741
diff --git a/lang/luasql/patches/01-mariadb-compat.patch b/lang/luasql/patches/01-mariadb-compat.patch
new file mode 100644 (file)
index 0000000..ceab728
--- /dev/null
@@ -0,0 +1,20 @@
+commit 6df3f672313f8dbca219199c8ec8d20c0247347f
+Author: Tomás Guisasola <tomasguisasola@gmail.com>
+Date:   Mon Jul 31 09:41:49 2017 -0300
+
+    Add support for building with MariaDB (thanks to Florian Weimer).
+
+--- a/src/ls_mysql.c
++++ b/src/ls_mysql.c
+@@ -602,7 +602,11 @@ LUASQL_API int luaopen_luasql_mysql (lua
+       luaL_setfuncs(L, driver, 0);
+       luasql_set_info (L);
+     lua_pushliteral (L, "_MYSQLVERSION");
++#ifdef MARIADB_CLIENT_VERSION_STR
++    lua_pushliteral (L, MARIADB_CLIENT_VERSION_STR);
++#else
+     lua_pushliteral (L, MYSQL_SERVER_VERSION);
++#endif
+     lua_settable (L, -3);
+       return 1;
+ }
index a0057f1c264c78f82d1c2403745a0547102d88d4..1c54f29bb3ad5c0b6c18d0ba949d308549136951 100644 (file)
@@ -5,6 +5,7 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/luvit/luv.git
+PKG_MIRROR_HASH:=28a4e5f115dacd3b293522bea211576d6bf0519c79971a3dee56632d04a13cb3
 PKG_SOURCE_VERSION:=1.9.1-1
 PKG_SOURCE_DATE:=2016-12-16
 
index 8ac4453a27e5840e804b3785484f4c7625c59e24..560a22e6366e00bfb85a62592291f9ead54f92a5 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lzmq
-PKG_VERSION:=0.4.3
+PKG_VERSION:=0.4.4
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
 PKG_LICENSE:=MIT
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/zeromq/lzmq/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=51ec00117b0570db82b1eba7b62e95d7e98c880a028584b195a98b433dd8edd1
+PKG_HASH:=cf70200045b8bcb0e929c338ad421b6a291cf1038053532888dc201af3224d8b
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
index 40fa2a3ce25adee55292b6e63e0b69cee4c46c9d..15d160c0871e3543d4013847bdd4e8dbd16c3c98 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=node
-PKG_VERSION:=v8.10.0
-PKG_RELEASE:=2
+PKG_VERSION:=v8.11.3
+PKG_RELEASE:=1
 PKG_SOURCE:=node-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://nodejs.org/dist/${PKG_VERSION}
-PKG_HASH:=b72d4e71618d6bcbd039b487b51fa7543631a4ac3331d7caf69bdf55b5b2901a
+PKG_HASH:=577c751fdca91c46c60ffd8352e5b465881373bfdde212c17c3a3c1bd2616ee0
 
 HOST_BUILD_DEPENDS:=python/host
 PKG_BUILD_DEPENDS:=python/host
@@ -73,56 +73,27 @@ NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst
 MAKE_VARS+= \
        DESTCPU=$(NODEJS_CPU)
 
+CONFIGURE_VARS:= \
+       CC="$(TARGET_CC) $(TARGET_OPTIMIZATION)" \
+       CXX="$(TARGET_CXX) $(TARGET_OPTIMIZATION)" \
+       CC_host="$(HOSTCC)" \
+       CXX_host="$(HOSTCXX)"
+
 CONFIGURE_ARGS:= \
        --dest-cpu=$(NODEJS_CPU) \
        --dest-os=linux \
        --without-snapshot \
        --shared-zlib \
        --shared-openssl \
+       --with-intl=$(if $(CONFIG_NODEJS_ICU),system-icu,none) \
+       $(if $(findstring mips,$(NODEJS_CPU)), \
+               $(if $(CONFIG_SOFT_FLOAT),--with-mips-float-abi=soft)) \
+       $(if $(findstring +neon,$(CONFIG_CPU_TYPE)),--with-arm-fpu=neon) \
+       $(if $(findstring +vfp",$(CONFIG_CPU_TYPE)),--with-arm-fpu=vfp) \
+       $(if $(findstring +vfpv3",$(CONFIG_CPU_TYPE)),--with-arm-fpu=vfpv3-d16) \
+       $(if $(findstring +vfpv4",$(CONFIG_CPU_TYPE)),--with-arm-fpu=vfpv3) \
        --prefix=/usr
 
-ifneq ($(findstring arm,$(NODEJS_CPU)),)
-ifeq ($(CONFIG_SOFT_FLOAT),y)
-CONFIGURE_ARGS+= --with-arm-float-abi=softfp
-else
-
-CONFIGURE_ARGS+= --with-arm-float-abi=hard
-
-ifneq ($(findstring vfp,$(CONFIG_CPU_TYPE)),)
-ARM_FPU=vfp
-endif
-
-ifneq ($(findstring vfpv3,$(CONFIG_CPU_TYPE)),)
-ARM_FPU=vfpv3
-endif
-
-ifneq ($(findstring vfpv3-d16,$(CONFIG_CPU_TYPE)),)
-ARM_FPU=vfpv3-d16
-endif
-
-ifneq ($(findstring neon,$(CONFIG_CPU_TYPE)),)
-ARM_FPU=neon
-endif
-
-CONFIGURE_ARGS+= --with-arm-fpu=$(ARM_FPU)
-endif
-endif
-
-ifneq ($(findstring mips,$(NODEJS_CPU)),)
-ifeq ($(CONFIG_SOFT_FLOAT),y)
-CONFIGURE_ARGS+= \
-       --with-mips-float-abi=soft
-endif
-endif
-
-ifeq ($(CONFIG_NODEJS_ICU),y)
-CONFIGURE_ARGS+= \
-       --with-intl=system-icu
-else
-CONFIGURE_ARGS+= \
-       --with-intl=none
-endif
-
 HOST_CONFIGURE_VARS:=
 
 HOST_CONFIGURE_ARGS:= \
index 77b309f6c1115a4187a467ff73326ab706922290..4144f9175c66f050d900e03d8ac1f9e65ff35a9c 100644 (file)
@@ -12,8 +12,8 @@ diff --git a/src/node_crypto.cc b/src/node_crypto.cc
 index 7c0f65a5735..0aa4adbd467 100644
 --- a/src/node_crypto.cc
 +++ b/src/node_crypto.cc
-@@ -44,9 +44,9 @@
- #include "StartComAndWoSignData.inc"
+@@ -36,9 +36,9 @@
+ #include "v8.h"
  
  #include <algorithm>
 +#include <cmath>
index 158cb0ecf8a64d5f5a4f8e0a0cd4fb53be345de2..cd3dcca4467c28637faebaaf03f4029925fe036f 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=perl-text-csv_xs
-PKG_VERSION:=1.35
+PKG_VERSION:=1.36
 PKG_RELEASE:=1
 
-PKG_SOURCE_URL:=http://www.cpan.org/authors/id/H/HM/HMBRAND/
+PKG_SOURCE_URL:=https://www.cpan.org/authors/id/H/HM/HMBRAND/
 PKG_SOURCE:=Text-CSV_XS-$(PKG_VERSION).tgz
-PKG_HASH:=2b4f111e9486b230b02bfabbbf50c453f959d18ec17351a930e41f0959b358b7
+PKG_HASH:=c321b09ad98a332138f25f55afb83befd7c045134085c7cb280fc325e688942c
 
 PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
 PKG_MAINTAINER:=Philip Prindeville <philipp@redfish-solutions.com>
index aa860a9571e6f874635f3d76144c79aa33861ea4..24eb74e05067ca6c2ce619d8e1cb3309fe803604 100644 (file)
@@ -6,8 +6,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=7.2.6
-PKG_RELEASE:=1
+PKG_VERSION:=7.2.7
+PKG_RELEASE:=2
 
 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:=1f004e049788a3effc89ef417f06a6cf704c95ae2a718b2175185f2983381ae7
+PKG_HASH:=eb01c0153b3baf1f64b8b044013ce414b52fede222df3f509e8ff209478f31f0
 
 PKG_FIXUP:=libtool autoreconf
 PKG_BUILD_PARALLEL:=1
@@ -33,7 +33,7 @@ PHP7_MODULES = \
        iconv imap intl \
        json \
        ldap \
-       mbstring mysqli \
+       mbstring mysqli mysqlnd \
        opcache openssl \
        pcntl pdo pdo-mysql pdo-pgsql pdo-sqlite pgsql phar \
        session shmop simplexml snmp soap sockets sqlite3 sysvmsg sysvsem sysvshm \
@@ -74,7 +74,6 @@ define Package/php7/config
        config PHP7_SYSTEMTZDATA
                bool "Use system timezone data instead of php's built-in database"
                depends on PACKAGE_php7-cli || PACKAGE_php7-cgi
-               select PACKAGE_zoneinfo-core
                default y
                help
                        Enabling this feature automatically selects the zoneinfo-core package
@@ -86,7 +85,8 @@ define Package/php7
   $(call Package/php7/Default)
 
   DEPENDS:=+libpcre +zlib \
-           +PHP7_LIBXML:libxml2
+           +PHP7_LIBXML:libxml2 \
+           +PHP7_SYSTEMTZDATA:zoneinfo-core
 endef
 
 define Package/php7/description
@@ -292,11 +292,17 @@ else
 endif
 
 ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-mysqli),)
-  CONFIGURE_ARGS+= --with-mysqli=shared,"$(STAGING_DIR)/usr/bin/mysql_config"
+  CONFIGURE_ARGS+= --with-mysqli=shared
 else
   CONFIGURE_ARGS+= --without-mysqli
 endif
 
+ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-mysqlnd),)
+  CONFIGURE_ARGS+= --enable-mysqlnd=shared
+else
+  CONFIGURE_ARGS+= --disable-mysqlnd
+endif
+
 ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-opcache),)
   CONFIGURE_ARGS+= --enable-opcache=shared
 else
@@ -321,7 +327,7 @@ endif
 ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-pdo),)
   CONFIGURE_ARGS+= --enable-pdo=shared
   ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-pdo-mysql),)
-    CONFIGURE_ARGS+= --with-pdo-mysql=shared,"$(STAGING_DIR)/usr"
+    CONFIGURE_ARGS+= --with-pdo-mysql=shared
   else
     CONFIGURE_ARGS+= --without-pdo-mysql
   endif
@@ -601,12 +607,13 @@ $(eval $(call BuildModule,intl,Internationalization Functions,+PACKAGE_php7-mod-
 $(eval $(call BuildModule,json,JSON))
 $(eval $(call BuildModule,ldap,LDAP,+PACKAGE_php7-mod-ldap:libopenldap +PACKAGE_php7-mod-ldap:libsasl2))
 $(eval $(call BuildModule,mbstring,MBString))
-$(eval $(call BuildModule,mysqli,MySQL Improved Extension,+PACKAGE_php7-mod-mysqli:libmariadbclient))
+$(eval $(call BuildModule,mysqli,MySQL Improved Extension,+PACKAGE_php7-mod-mysqli:php7-mod-mysqlnd,30))
+$(eval $(call BuildModule,mysqlnd,MySQL Native Driver))
 $(eval $(call BuildModule,opcache,OPcache,,,zend))
 $(eval $(call BuildModule,openssl,OpenSSL,+PACKAGE_php7-mod-openssl:libopenssl))
 $(eval $(call BuildModule,pcntl,PCNTL))
 $(eval $(call BuildModule,pdo,PHP Data Objects))
-$(eval $(call BuildModule,pdo-mysql,PDO driver for MySQL,+php7-mod-pdo +PACKAGE_php7-mod-pdo-mysql:libmariadbclient))
+$(eval $(call BuildModule,pdo-mysql,PDO driver for MySQL,+php7-mod-pdo +PACKAGE_php7-mod-pdo-mysql:php7-mod-mysqlnd))
 $(eval $(call BuildModule,pdo-pgsql,PDO driver for PostgreSQL,+php7-mod-pdo +PACKAGE_php7-mod-pdo-pgsql:libpq))
 $(eval $(call BuildModule,pdo-sqlite,PDO driver for SQLite 3.x,+php7-mod-pdo +PACKAGE_php7-mod-pdo-sqlite:libsqlite3 +PACKAGE_php7-mod-pdo-sqlite:librt))
 $(eval $(call BuildModule,pgsql,PostgreSQL,+PACKAGE_php7-mod-pgsql:libpq))
diff --git a/lang/python/django-formtools/Makefile b/lang/python/django-formtools/Makefile
new file mode 100644 (file)
index 0000000..d6bcc25
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=django-formtools
+PKG_VERSION:=2.1
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/4a/86/ccbb8225dec0621f99f7e19f3dea0a629f1e41bd99fd58ac3e2f388e028f
+PKG_HASH:=7703793f1675aa6e871f9fed147e8563816d7a5b9affdc5e3459899596217f7c
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/django-formtools
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=A set of high-level abstractions for Django forms
+  URL:=https://django-formtools.readthedocs.io/en/latest/
+  DEPENDS:=+python +django
+endef
+
+define Package/django-formtools/description
+  Django "formtools" is a set of high-level abstractions for Django forms.
+  Currently for form previews and multi-step forms.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-formtools/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-formtools))
diff --git a/lang/python/django-ranged-response/Makefile b/lang/python/django-ranged-response/Makefile
new file mode 100644 (file)
index 0000000..34c32ae
--- /dev/null
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=django-ranged-response
+PKG_VERSION:=0.2.0
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/70/e3/9372fcdca8e9c3205e7979528ccd1a14354a9a24d38efff11c1846ff8bf1
+PKG_HASH:=f71fff352a37316b9bead717fc76e4ddd6c9b99c4680cdf4783b9755af1cf985
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/django-ranged-response
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=Modified Django FileResponse that adds Content-Range headers.
+  URL:=https://github.com/wearespindle/django-ranged-fileresponse
+  DEPENDS:=+python +django
+endef
+
+define Package/django-ranged-response/description
+  Modified Django FileResponse that adds Content-Range headers.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-ranged-response/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-ranged-response))
diff --git a/lang/python/django-simple-captcha/Makefile b/lang/python/django-simple-captcha/Makefile
new file mode 100644 (file)
index 0000000..f9b0452
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=django-simple-captcha
+PKG_VERSION:=0.5.9
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/d7/f4/ea95b04ed3abc7bf225716f17e35c5a185f6100db4d7541a46696ce40351
+PKG_HASH:=0c30a14f02502119fd1a4d308dd5d2b899d0f4284825a396bbb010afd904754a
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/django-simple-captcha
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=A very simple, yet powerful, Django captcha application
+  URL:=https://github.com/mbi/django-simple-captcha
+  DEPENDS:=+python +python-six +django +pillow +django-ranged-response
+endef
+
+define Package/django-simple-captcha/description
+  Django Simple Captcha is an extremely simple, yet highly customizable Django
+  application to add captcha images to any Django form.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-simple-captcha/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-simple-captcha))
diff --git a/lang/python/django-webpack-loader/Makefile b/lang/python/django-webpack-loader/Makefile
new file mode 100644 (file)
index 0000000..0b15ccf
--- /dev/null
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=django-webpack-loader
+PKG_VERSION:=0.6.0
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/ff/0f/e812908c5dcc7c8cac5beba2cddd14bbfe045496117b3d306a71b19fc828
+PKG_HASH:=60bab6b9a037a5346fad12d2a70a6bc046afb33154cf75ed640b93d3ebd5f520
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/django-webpack-loader
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=Transparently use webpack with django
+  URL:=https://github.com/owais/django-webpack-loader
+  DEPENDS:=+python +django
+endef
+
+define Package/django-webpack-loader/description
+  Use webpack to generate your static bundles without django’s staticfiles or opaque wrappers.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/django-webpack-loader/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,django-webpack-loader))
diff --git a/lang/python/pyjwt/Makefile b/lang/python/pyjwt/Makefile
new file mode 100644 (file)
index 0000000..d2f7f41
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=pyjwt
+PKG_VERSION:=1.6.4
+PKG_RELEASE:=1
+PKG_LICENSE:=MIT
+
+PKG_SOURCE:=PyJWT-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/00/5e/b358c9bb24421e6155799d995b4aa3aa3307ffc7ecae4ad9d29fd7e07a73
+PKG_HASH:=4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176
+PKG_BUILD_DIR:=$(BUILD_DIR)/PyJWT-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/pyjwt
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=JSON Web Token implementation in Python
+  URL:=http://github.com/jpadilla/pyjwt
+  DEPENDS:=+python
+endef
+
+define Package/pyjwt/description
+  A Python implementation of RFC 7519.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/pyjwt/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,pyjwt))
index 73e2f630597ff053f7956bcbbe5eacec00b5b6fb..21d443e931b04460440607defeb956c35c6f96be 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-asn1crypto
-PKG_VERSION:=0.23.0
+PKG_VERSION:=0.24.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=asn1crypto-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/31/53/8bca924b30cb79d6d70dbab6a99e8731d1e4dd3b090b7f3d8412a8d8ffbc
-PKG_HASH:=0874981329cfebb366d6584c3d16e913f2a0eb026c9463efcc4aaf42a9d94d70
+PKG_SOURCE_URL:=https://pypi.io/packages/source/a/asn1crypto
+PKG_HASH:=9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49
 
 PKG_LICENSE:=MIT
 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
index 8430eeeb41a2ef80d3bb77b18e1a8a10a1fb7f2e..d76a78347b685e51be4369f7f0544d03bb81a126 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-attrs
-PKG_VERSION:=17.4.0
-PKG_RELEASE:=2
+PKG_VERSION:=18.1.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=attrs-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/8b/0b/a06cfcb69d0cb004fde8bc6f0fd192d96d565d1b8aa2829f0f20adb796e5
-PKG_HASH:=1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/a/attrs
+PKG_HASH:=e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-attrs-$(PKG_VERSION)
 
@@ -31,19 +31,19 @@ define Package/python-attrs/Default
   SECTION:=lang
   CATEGORY:=Languages
   SUBMENU:=Python
-  URL:=https://attrs.readthedocs.org/
+  URL:=http://www.attrs.org/
 endef
 
 define Package/python-attrs
 $(call Package/python-attrs/Default)
-  TITLE:=python-attrs
+  TITLE:=Classes Without Boilerplate
   DEPENDS:=+PACKAGE_python-attrs:python-light
   VARIANT:=python
 endef
 
 define Package/python3-attrs
 $(call Package/python-attrs/Default)
-  TITLE:=python3-attrs
+  TITLE:=Classes Without Boilerplate
   DEPENDS:=+PACKAGE_python3-attrs:python3-light
   VARIANT:=python3
 endef
index 8ddaad0874c494240d4efdd9e372e31a345e737b..0c0ae594767f21e80463c58eade7c198b985b6d4 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-automat
-PKG_VERSION:=0.6.0
+PKG_VERSION:=0.7.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=Automat-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/A/Automat
-PKG_HASH:=3c1fd04ecf08ac87b4dd3feae409542e9bf7827257097b2b6ed5692f69d6f6a8
+PKG_HASH:=cbd78b83fa2d81fe2a4d23d258e1661dd7493c9a50ee2f1a5b2cac61c1793b0e
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-automat-$(PKG_VERSION)
 
index 46fd241566d3a38d127021e61fed231f03beaeef..babcda4b1f4d501abe68a3af167b63afa7926532 100644 (file)
@@ -26,5 +26,5 @@
 -        'm2r',
 -    ],
      install_requires=[
-         "attrs",
+         "attrs>=16.1.0",
          "six",
index bea12d37a9e8e203c1c0d947a9e0c65734162483..0d68d891feb7a7605be0f8ff6160e10b2b52253b 100644 (file)
@@ -1,7 +1,7 @@
 --- a/setup.py
 +++ b/setup.py
 @@ -27,15 +27,6 @@ setup(
-         "attrs",
+         "attrs>=16.1.0",
          "six",
      ],
 -    extras_require={
index 8742aa3efbfe20a747a0793c8a854ce8cc436fc5..774b683d89a4e74695a7297c81c7c7f64be037fa 100644 (file)
@@ -8,7 +8,7 @@
 +    packages=find_packages(exclude=["*._test", "*._test.*"]),
      package_dir={'automat': 'automat'},
      install_requires=[
-         "attrs",
+         "attrs>=16.1.0",
 @@ -30,6 +30,7 @@ setup(
      author='Glyph',
      author_email='glyph@twistedmatrix.com',
@@ -16,4 +16,4 @@
 +    exclude_package_data={'':['_test/*']},
      license="MIT",
      keywords='fsm finite state machine automata',
- )
+     classifiers=[
diff --git a/lang/python/python-certifi/Makefile b/lang/python/python-certifi/Makefile
new file mode 100644 (file)
index 0000000..28d2bd0
--- /dev/null
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-certifi
+PKG_VERSION:=2018.4.16
+PKG_RELEASE:=1
+PKG_LICENSE:=MPL-2.0
+
+PKG_SOURCE:=certifi-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/4d/9c/46e950a6f4d6b4be571ddcae21e7bc846fcbb88f1de3eff0f6dd0a6be55d
+PKG_HASH:=13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7
+PKG_BUILD_DIR:=$(BUILD_DIR)/certifi-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-certifi
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=Python package for providing Mozilla's CA Bundle.
+  URL:=http://certifi.io/
+  DEPENDS:=+python
+endef
+
+define Package/python-certifi/description
+  Certifi is a carefully curated collection of Root Certificates for validating the
+  trustworthiness of SSL certificates while verifying the identity of TLS hosts.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-certifi/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-certifi))
index 5e27adb1335fef2c7d4e86642aa32665613dd0f4..6f6fbcfc6d3503eb03bf51cc990dc3ee9c3eb540 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-cffi
-PKG_VERSION:=1.11.4
+PKG_VERSION:=1.11.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=cffi-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/10/f7/3b302ff34045f25065091d40e074479d6893882faef135c96f181a57ed06
-PKG_HASH:=df9083a992b17a28cd4251a3f5c879e0198bb26c9e808c4647e0a18739f1d11d
+PKG_SOURCE_URL:=https://pypi.io/packages/source/c/cffi
+PKG_HASH:=e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-cffi-$(PKG_VERSION)
 
index 02e95dabcfe2eb9d9ea0544e57d8ee93ffc5b4c0..fb8022b71c32385b56062f31d9ff2b89a2935bf5 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-cryptography
-PKG_VERSION:=2.1.4
-PKG_RELEASE:=2
+PKG_VERSION:=2.2.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=cryptography-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/78/c5/7188f15a92413096c93053d5304718e1f6ba88b818357d05d19250ebff85
-PKG_HASH:=e4d967371c5b6b2e67855066471d844c5d52d210c36c28d49a8507b96e2c5291
+PKG_SOURCE_URL:=https://pypi.io/packages/source/c/cryptography
+PKG_HASH:=9fc295bf69130a342e7a19a39d7bbeb15c0bcaabc7382ec33ef3b2b7d18d2f63
 
 PKG_LICENSE:=Apache-2.0 BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.APACHE LICENSE.BSD
index 25ad27d7c9f4ed55142bd884cffaacc0074b80b8..ef58ed5f8af0a0de90bd0a71ebb760b463c7a89c 100644 (file)
@@ -1,12 +1,16 @@
 --- a/src/_cffi_src/openssl/ssl.py
 +++ b/src/_cffi_src/openssl/ssl.py
-@@ -597,9 +597,6 @@ static const long TLS_ST_OK = 0;
+@@ -646,13 +646,6 @@ static const long TLS_ST_OK = 0;
  
  #if defined(OPENSSL_NO_DTLS) || CRYPTOGRAPHY_OPENSSL_LESS_THAN_102
  static const long Cryptography_HAS_GENERIC_DTLS_METHOD = 0;
 -const SSL_METHOD *(*DTLS_method)(void) = NULL;
 -const SSL_METHOD *(*DTLS_server_method)(void) = NULL;
 -const SSL_METHOD *(*DTLS_client_method)(void) = NULL;
+-static const long SSL_OP_NO_DTLSv1 = NULL;
+-static const long SSL_OP_NO_DTLSv1_2 = NULL;
+-long *(*DTLS_set_link_mtu)(SSL *, long) = NULL;
+-long *(*DTLS_get_link_min_mtu)(SSL *) = NULL;
  #else
  static const long Cryptography_HAS_GENERIC_DTLS_METHOD = 1;
  #endif
index 12bff8fd49c71c3b3857bb90692c20e2d5e00118..3986b14abbad0ebd5237d69d6248762f486b4dd2 100644 (file)
@@ -5,7 +5,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pycurl
-PKG_VERSION:=7.43.0.1
+PKG_VERSION:=7.43.0.2
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Waldemar Konik <informatyk74@interia.pl>
 PKG_LICENSE:=LGPL-2.1
@@ -13,7 +13,7 @@ PKG_LICENSE_FILE=COPYING-LGPL
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dl.bintray.com/pycurl/pycurl/
-PKG_HASH:=43231bf2bafde923a6d9bb79e2407342a5f3382c1ef0a3b2e491c6a4e50b91aa
+PKG_HASH:=0f0cdfc7a92d4f2a5c44226162434e34f7d6967d3af416a6f1448649c09a25a4
 
 include $(INCLUDE_DIR)/package.mk
 include ../python-package.mk
@@ -32,7 +32,7 @@ Python module interface to the cURL library.
 endef
 
 define Build/Compile
-       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+       $(call Build/Compile/PyMod,,install --with-openssl --prefix=/usr --root=$(PKG_INSTALL_DIR))
 endef
 
 define Package/python-curl/install
index 7f1d24138b030a9dccfd1dbe551cb74ea841b619..36613abc1d467c6105e9548f472026da6ecd047e 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-hyperlink
-PKG_VERSION:=17.3.1
+PKG_VERSION:=18.0.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=hyperlink-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/h/hyperlink
-PKG_HASH:=bc4ffdbde9bdad204d507bd8f554f16bba82dd356f6130cb16f41422909c33bc
+PKG_HASH:=f01b4ff744f14bc5d0a22a6b9f1525ab7d6312cb0ff967f59414bbac52f0a306
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-hyperlink-$(PKG_VERSION)
 
@@ -37,14 +37,18 @@ endef
 define Package/python-hyperlink
 $(call Package/python-hyperlink/Default)
   TITLE:=Pure-Python immutable URLs
-  DEPENDS:=+PACKAGE_python-hyperlink:python-light
+  DEPENDS:= \
+      +PACKAGE_python-hyperlink:python-light \
+      +PACKAGE_python-hyperlink:python-idna
   VARIANT:=python
 endef
 
 define Package/python3-hyperlink
 $(call Package/python-hyperlink/Default)
   TITLE:=Pure-Python immutable URLs
-  DEPENDS:=+PACKAGE_python3-hyperlink:python3-light
+  DEPENDS:= \
+      +PACKAGE_python3-hyperlink:python3-light \
+      +PACKAGE_python3-hyperlink:python3-idna
   VARIANT:=python3
 endef
 
index 47f4b9668624bb19fde34cca1a3427d6820f4912..dae0366b7a7a73132c9def2d113cd2bcad3ede95 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-idna
-PKG_VERSION:=2.6
-PKG_RELEASE:=2
+PKG_VERSION:=2.7
+PKG_RELEASE:=1
 
 PKG_SOURCE:=idna-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/f4/bd/0467d62790828c23c47fc1dfa1b1f052b24efdf5290f071c7a91d0d82fd3
-PKG_HASH:=2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f
+PKG_SOURCE_URL:=https://pypi.io/packages/source/i/idna
+PKG_HASH:=684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.rst
index 3cafd5e3c231e79ac55ad045c0e0e2c7623a71a3..333ea3ee32759db35bbdf9956ded99581e585d59 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-ipaddress
-PKG_VERSION:=1.0.19
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.22
+PKG_RELEASE:=1
 
 PKG_SOURCE:=ipaddress-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/f0/ba/860a4a3e283456d6b7e2ab39ce5cf11a3490ee1a363652ac50abf9f0f5df
-PKG_HASH:=200d8686011d470b5e4de207d803445deee427455cd0cb7c982b68cf82524f81
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/i/ipaddress
+PKG_HASH:=b146c751ea45cad6188dd6cf2d9b757f6f4f8d6ffb96a023e6f2e26eea02a72c
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-ipaddress-$(PKG_VERSION)
 
@@ -34,7 +34,7 @@ endef
 
 define Package/python-ipaddress
 $(call Package/python-ipaddress/Default)
-  TITLE:=python-ipaddress
+  TITLE:=Python 3.3+'s ipaddress
   DEPENDS:=+PACKAGE_python-ipaddress:python-light
   VARIANT:=python
 endef
index 0c543fce446ce1f5d39a5626afe070cf4ced0a01..d564039b28c1aa5793158c2d7293ca784e8342fe 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-lxml
-PKG_VERSION:=4.1.1
+PKG_VERSION:=4.2.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=lxml-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=http://lxml.de/files/
-PKG_HASH:=940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e
+PKG_HASH:=e2629cdbcad82b83922a3488937632a4983ecc0fed3e5cfbf430d069382eeb9b
 
 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 f776b74bbaaad583ef9aee00470464f61b86ad09..09fd2420c1770797e3db6d203d6848b4eb94d8f3 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2014 OpenWrt.org
+# Copyright (C) 2007-2018 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -7,26 +7,51 @@
 
 include $(TOPDIR)/rules.mk
 
-PKG_NAME:=MySQL-python
-PKG_VERSION:=1.2.5
-PKG_RELEASE:=1
+PKG_NAME:=python-mysql
+PKG_VERSION:=1.3.12
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-2.0
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/M/MySQL-python/
-PKG_HASH:=811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e140c74
+PKG_SOURCE:=mysqlclient-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/m/mysqlclient
+PKG_HASH:=2d9ec33de39f4d9c64ad7322ede0521d85829ce36a76f9dd3d6ab76a9c8648e5
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-mysql-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 include ../python-package.mk
+include ../python3-package.mk
 
-define Package/python-mysql
+PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
+
+# Help python-mysql find libiconv.so when using uClibc.
+ifneq ($(CONFIG_USE_UCLIBC),)
+TARGET_CPPFLAGS+= \
+       -I$(STAGING_DIR)/usr/lib/libiconv-full/include
+TARGET_LDFLAGS += \
+       -L$(STAGING_DIR)/usr/lib/libiconv-full/lib
+endif
+
+define Package/python-mysql/Default
   SUBMENU:=Python
   SECTION:=lang
   CATEGORY:=Languages
-  TITLE:=MySQL database adapter for Python
-  URL:=https://pypi.python.org/pypi/MySQL-python
+  URL:=https://pypi.python.org/project/mysqlclient
   MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
-  DEPENDS:=+python +libmysqlclient
+endef
+
+define Package/python-mysql
+  $(call Package/python-mysql/Default)
+  TITLE:=MySQL database adapter for Python
+  DEPENDS:=+PACKAGE_python-mysql:python +libmysqlclient
+  VARIANT:=python
+endef
+
+define Package/python3-mysql
+  $(call Package/python-mysql/Default)
+  TITLE:=MySQL database adapter for Python3
+  DEPENDS:=+PACKAGE_python3-mysql:python3 +libmysqlclient
+  VARIANT:=python3
 endef
 
 define Package/python-mysql/description
@@ -34,15 +59,14 @@ define Package/python-mysql/description
  server that provides the Python database API.
 endef
 
-define Build/Compile
-       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
-endef
-
-define Package/python-mysql/install
-       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
-       $(CP) \
-           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
-           $(1)$(PYTHON_PKG_DIR)
+define Package/python3-mysql/description
+$(call Package/python-mysql/description)
+.
+(Variant for Python3)
 endef
 
+$(eval $(call PyPackage,python-mysql))
 $(eval $(call BuildPackage,python-mysql))
+
+$(eval $(call Py3Package,python3-mysql))
+$(eval $(call BuildPackage,python3-mysql))
diff --git a/lang/python/python-mysql/patches/010-threadsafe.patch b/lang/python/python-mysql/patches/010-threadsafe.patch
deleted file mode 100644 (file)
index bcd9af8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- MySQL-python-1.2.2/site_orig.cfg   2007-08-15 12:58:40.000000000 +0200
-+++ MySQL-python-1.2.2/site.cfg        2007-08-15 12:58:49.000000000 +0200
-@@ -4,7 +4,7 @@
- # static: link against a static library (probably required for embedded)
- embedded = False
--threadsafe = True
-+threadsafe = False
- static = False
- # The path to mysql_config.
diff --git a/lang/python/python-oauthlib/Makefile b/lang/python/python-oauthlib/Makefile
new file mode 100644 (file)
index 0000000..ac5ef5a
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-oauthlib
+PKG_VERSION:=2.1.0
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=oauthlib-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/df/5f/3f4aae7b28db87ddef18afed3b71921e531ca288dc604eb981e9ec9f8853
+PKG_HASH:=ac35665a61c1685c56336bda97d5eefa246f1202618a1d6f34fccb1bdd404162
+PKG_BUILD_DIR:=$(BUILD_DIR)/oauthlib-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-oauthlib
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
+  URL:=https://github.com/oauthlib/oauthlib
+  DEPENDS:=+python
+endef
+
+define Package/python-oauthlib/description
+  A generic, spec-compliant, thorough implementation of the OAuth request-signing logic for Python
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-oauthlib/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-oauthlib))
index 697020402633c9a42dd46dcb878c25ac8530b08f..85aa740a305e654af1dee303a01a750b7633fd13 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-ply
-PKG_VERSION:=3.10
-PKG_RELEASE:=2
+PKG_VERSION:=3.11
+PKG_RELEASE:=1
 
 PKG_SOURCE:=ply-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.dabeaz.com/ply
-PKG_HASH:=96e94af7dd7031d8d6dd6e2a8e0de593b511c211a86e28a9c9621c275ac8bacb
+PKG_SOURCE_URL:=http://www.dabeaz.com/ply \
+                https://files.pythonhosted.org/packages/source/p/ply
+PKG_HASH:=00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-ply-$(PKG_VERSION)
 
@@ -36,14 +37,14 @@ endef
 
 define Package/python-ply
 $(call Package/python-ply/Default)
-  TITLE:=python-ply
+  TITLE:=lex and yacc for Python
   DEPENDS:=+PACKAGE_python-ply:python-light
   VARIANT:=python
 endef
 
 define Package/python3-ply
 $(call Package/python-ply/Default)
-  TITLE:=python3-ply
+  TITLE:=lex and yacc for Python
   DEPENDS:=+PACKAGE_python3-ply:python3-light
   VARIANT:=python3
 endef
index 6129f3d43a2aaa3c8838f5fcf84168bdf262eaf8..cb97aabfea895b6eb27e70495a787c9e723a85a9 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyasn1
-PKG_VERSION:=0.4.2
-PKG_RELEASE:=2
+PKG_VERSION:=0.4.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=pyasn1-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/eb/3d/b7d0fdf4a882e26674c68c20f40682491377c4db1439870f5b6f862f76ed
-PKG_HASH:=d258b0a71994f7770599835249cece1caef3c70def868c4915e6e5ca49b67d15
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/p/pyasn1
+PKG_HASH:=fb81622d8f3509f0026b0683fe90fea27be7284d3826a5f2edf97f69151ab0fc
 
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
@@ -31,19 +31,19 @@ define Package/python-pyasn1/Default
   SECTION:=lang
   CATEGORY:=Languages
   SUBMENU:=Python
-  URL:=http://pyasn1.sourceforge.net/
+  URL:=https://github.com/etingof/pyasn1
 endef
 
 define Package/python-pyasn1
 $(call Package/python-pyasn1/Default)
-  TITLE:=python-pyasn1
+  TITLE:=ASN.1 library for Python
   DEPENDS:=+PACKAGE_python-pyasn1:python-light
   VARIANT:=python
 endef
 
 define Package/python3-pyasn1
 $(call Package/python-pyasn1/Default)
-  TITLE:=python3-pyasn1
+  TITLE:=ASN.1 library for Python
   DEPENDS:=+PACKAGE_python3-pyasn1:python3-light
   VARIANT:=python3
 endef
index 3f8fc9058ff5cf942e1553d0896655c3cd4468d9..9beefbae36ccbaf79bc5736933b96b491292dba1 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyopenssl
-PKG_VERSION:=17.5.0
-PKG_RELEASE:=2
+PKG_VERSION:=18.0.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=pyOpenSSL-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/3b/15/a5d90ab1a41075e8f0fae334f13452549528f82142b3b9d0c9d86ab7178c
-PKG_HASH:=2c10cfba46a52c0b0950118981d61e72c1e5b1aac451ca1bc77de1a679456773
+
+PKG_SOURCE_URL:=https://pypi.io/packages/source/p/pyOpenSSL
+PKG_HASH:=6488f1423b00f73b7ad5167885312bb0ce410d3312eb212393795b53c8caa580
 
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
index 2342b02430dd29e481b29c57ed49213b7c76049c..00b6410f91b0495a553b0d75257b84c79ef4c7e8 100644 (file)
@@ -8,43 +8,62 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyserial
-PKG_VERSION:=3.1.1
+PKG_VERSION:=3.4
 PKG_RELEASE:=1
-PKG_MAINTAINER:=Micke Prag <micke.prag@telldus.se>
-PKG_LICENSE:=Python-2.0
 
 PKG_SOURCE:=pyserial-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://pypi.python.org/packages/3c/d8/a9fa247ca60b02b3bebbd61766b4f321393b57b13c53b18f6f62cf172c08/
-PKG_HASH:=d657051249ce3cbd0446bcfb2be07a435e1029da4d63f53ed9b4cdde7373364c
+PKG_SOURCE_URL:=https://pypi.python.org/packages/cc/74/11b04703ec416717b247d789103277269d567db575d2fd88f25d9767fe3d/
+PKG_HASH:=6e2d401fdee0eab996cf734e67773a0143b932772ca8b42451440cfed942c627
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-pyserial-$(PKG_VERSION)
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/pyserial-$(PKG_VERSION)
-PKG_BUILD_DEPENDS:=python
+PKG_LICENSE:=BSD
+PKG_MAINTAINER:=Micke Prag <micke.prag@telldus.se>
 
 include $(INCLUDE_DIR)/package.mk
 include ../python-package.mk
+include ../python3-package.mk
 
-define Package/python-pyserial
-  SUBMENU:=Python
-  SECTION:=lang
+PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
+
+define Package/python-pyserial/Default
+  SECTION:=lang-python
   CATEGORY:=Languages
+  SUBMENU:=Python
+  URL:=https://github.com/pyserial/pyserial
+endef
+
+define Package/python-pyserial
+$(call Package/python-pyserial/Default)
   TITLE:=python-pyserial
-  URL:=http://pyserial.sourceforge.net
   DEPENDS:=+python-light
+  VARIANT:=python
 endef
 
-define Package/python-pyserial/description
-       serial port python bindings
+define Package/python3-pyserial
+$(call Package/python-pyserial/Default)
+  TITLE:=python3-pyserial
+  DEPENDS:=+python3-light
+  VARIANT:=python3
 endef
 
-define Build/Compile
-       $(call Build/Compile/PyMod,,install --prefix=/usr --root="$(PKG_INSTALL_DIR)")
+define Package/python-pyserial/description
+This module encapsulates the access for the serial port. It provides backends
+for Python running on Windows, OSX, Linux, BSD (possibly any POSIX compliant
+system) and IronPython. The module named "serial" automatically selects the
+appropriate backend.
 endef
 
-define Package/python-pyserial/install
-       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
-       $(CP) \
-           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
-           $(1)$(PYTHON_PKG_DIR)
+define Package/python3-pyserial/description
+$(call Package/python-pyserial/description)
+.
+(Variant for Python3)
 endef
 
+$(eval $(call PyPackage,python-pyserial))
 $(eval $(call BuildPackage,python-pyserial))
+$(eval $(call BuildPackage,python-pyserial-src))
+
+$(eval $(call Py3Package,python3-pyserial))
+$(eval $(call BuildPackage,python3-pyserial))
+$(eval $(call BuildPackage,python3-pyserial-src))
diff --git a/lang/python/python-qrcode/Makefile b/lang/python/python-qrcode/Makefile
new file mode 100644 (file)
index 0000000..cb026a7
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-qrcode
+PKG_VERSION:=6.0
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=qrcode-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/8d/b6/beed3d50e1047a2aa6437d3a653e5f31feb7f4de8bc054299dc205682e41
+PKG_HASH:=037b0db4c93f44586e37f84c3da3f763874fcac85b2974a69a98e399ac78e1bf
+PKG_BUILD_DIR:=$(BUILD_DIR)/qrcode-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-qrcode
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=QR Code image generator
+  URL:=https://github.com/lincolnloop/python-qrcode
+  DEPENDS:=+python +python-six
+endef
+
+define Package/python-qrcode/description
+  Pure python QR Code generator
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-qrcode/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-qrcode))
diff --git a/lang/python/python-requests-oauthlib/Makefile b/lang/python/python-requests-oauthlib/Makefile
new file mode 100644 (file)
index 0000000..618925f
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-requests-oauthlib
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=1
+PKG_LICENSE:=ISC
+
+PKG_SOURCE:=requests-oauthlib-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/95/be/072464f05b70e4142cb37151e215a2037b08b1400f8a56f2538b76ca6205
+PKG_HASH:=8886bfec5ad7afb391ed5443b1f697c6f4ae98d0e5620839d8b4499c032ada3f
+PKG_BUILD_DIR:=$(BUILD_DIR)/requests-oauthlib-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-requests-oauthlib
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=OAuthlib authentication support for Requests.
+  URL:=https://github.com/requests/requests-oauthlib
+  DEPENDS:=+python +python-requests +python-oauthlib +python-cryptography +pyjwt
+endef
+
+define Package/python-requests-oauthlib/description
+  This project provides first-class OAuth library support for Requests.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-requests-oauthlib/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-requests-oauthlib))
diff --git a/lang/python/python-requests/Makefile b/lang/python/python-requests/Makefile
new file mode 100644 (file)
index 0000000..e48271d
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2007-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-requests
+PKG_VERSION:=2.19.1
+PKG_RELEASE:=1
+PKG_LICENSE:=Apache-2.0
+
+PKG_SOURCE:=requests-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/54/1f/782a5734931ddf2e1494e4cd615a51ff98e1879cbe9eecbdfeaf09aa75e9
+PKG_HASH:=ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a
+PKG_BUILD_DIR:=$(BUILD_DIR)/requests-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../python-package.mk
+
+define Package/python-requests
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  MAINTAINER:=Eneas U de Queiroz <cote2004-github@yahoo.com>
+  TITLE:=HTTP library for Python
+  URL:=http://python-requests.org/
+  DEPENDS:=+python +chardet +python-idna +python-urllib3 +python-certifi
+endef
+
+define Package/python-requests/description
+  Requests is the only Non-GMO HTTP library for Python, safe for human consumption.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Package/python-requests/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+           $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+           $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call BuildPackage,python-requests))
index 42e248ae54bb5f588245dd06c64f4bbd9ac19a54..178f57805f3eafd4b5e8fefaa98a66027052d1ff 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-zope-interface
-PKG_VERSION:=4.4.3
-PKG_RELEASE:=2
+PKG_VERSION:=4.5.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=zope.interface-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/bd/d2/25349ed41f9dcff7b3baf87bd88a4c82396cf6e02f1f42bb68657a3132af
-PKG_HASH:=d6d26d5dfbfd60c65152938fcb82f949e8dada37c041f72916fef6621ba5c5ce
+PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/z/zope.interface
+PKG_HASH:=57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-zope-interface-$(PKG_VERSION)
 
@@ -36,14 +36,14 @@ endef
 
 define Package/python-zope-interface
 $(call Package/python-zope-interface/Default)
-  TITLE:=python-zope-interface
+  TITLE:=Interfaces for Python
   DEPENDS:=+PACKAGE_python-zope-interface:python-light
   VARIANT:=python
 endef
 
 define Package/python3-zope-interface
 $(call Package/python-zope-interface/Default)
-  TITLE:=python3-zope-interface
+  TITLE:=Interfaces for Python
   DEPENDS:=+PACKAGE_python3-zope-interface:python3-light
   VARIANT:=python3
 endef
@@ -61,18 +61,6 @@ $(call Package/python-zope-interface/description)
 (Variant for Python3)
 endef
 
-define PyPackage/python-zope-interface/filespec
-+|$(PYTHON_PKG_DIR)
--|$(PYTHON_PKG_DIR)/zope/interface/common/tests
--|$(PYTHON_PKG_DIR)/zope/interface/tests
-endef
-
-define Py3Package/python3-zope-interface/filespec
-+|$(PYTHON3_PKG_DIR)
--|$(PYTHON3_PKG_DIR)/zope/interface/common/tests
--|$(PYTHON3_PKG_DIR)/zope/interface/tests
-endef
-
 $(eval $(call PyPackage,python-zope-interface))
 $(eval $(call BuildPackage,python-zope-interface))
 $(eval $(call BuildPackage,python-zope-interface-src))
diff --git a/lang/python/python-zope-interface/patches/001-omit-tests.patch b/lang/python/python-zope-interface/patches/001-omit-tests.patch
new file mode 100644 (file)
index 0000000..95ff7be
--- /dev/null
@@ -0,0 +1,21 @@
+diff --git a/setup.py b/setup.py
+index 0eb36ea..2e64aae 100644
+--- a/setup.py
++++ b/setup.py
+@@ -121,7 +121,7 @@ setup(name='zope.interface',
+         "Framework :: Zope3",
+         "Topic :: Software Development :: Libraries :: Python Modules",
+       ],
+-      packages=find_packages('src'),
++      packages=find_packages('src', exclude=["*.tests", "*.tests.*"]),
+       package_dir={'': 'src'},
+       namespace_packages=["zope"],
+       cmdclass={
+@@ -129,6 +129,7 @@ setup(name='zope.interface',
+       },
+       test_suite='zope.interface.tests',
+       include_package_data=True,
++      exclude_package_data={'':['tests/*']},
+       zip_safe=False,
+       tests_require=tests_require,
+       install_requires=['setuptools'],
index 36c1a779df935d8bc0a568df435de4fe29717680..35b78172bf1192facee481a7dee4fc82f7370228 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=twisted
-PKG_VERSION:=17.9.0
+PKG_VERSION:=18.4.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=Twisted-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/T/Twisted
-PKG_HASH:=0da1a7e35d5fcae37bc9c7978970b5feb3bc82822155b8654ec63925c05af75c
+PKG_HASH:=a4cc164a781859c74de47f17f0e85f4bce8a3321a9d0892c015c8f80c4158ad9
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-twisted-$(PKG_VERSION)
 PKG_BUILD_DEPENDS:=USE_MUSL:librpc
diff --git a/lang/python/twisted/patches/001-omit-tkconch-patch b/lang/python/twisted/patches/001-omit-tkconch-patch
deleted file mode 100644 (file)
index 05ad4c8..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/twisted/python/_setup.py b/src/twisted/python/_setup.py
-index 3b5f69d4b..c69c5d13c 100644
---- a/src/twisted/python/_setup.py
-+++ b/src/twisted/python/_setup.py
-@@ -142,7 +142,6 @@ _CONSOLE_SCRIPTS = [
-     "cftp = twisted.conch.scripts.cftp:run",
-     "conch = twisted.conch.scripts.conch:run",
-     "pyhtmlizer = twisted.scripts.htmlizer:run",
--    "tkconch = twisted.conch.scripts.tkconch:run",
-     "trial = twisted.scripts.trial:run",
-     "twist = twisted.application.twist._twist:Twist.main",
-     "twistd = twisted.scripts.twistd:run",
-diff --git a/src/twisted/python/twisted-completion.zsh b/src/twisted/python/twisted-completion.zsh
-index 4d97aa5d3..9a8d4d82e 100644
---- a/src/twisted/python/twisted-completion.zsh
-+++ b/src/twisted/python/twisted-completion.zsh
-@@ -1,4 +1,4 @@
--#compdef twistd trial conch cftp ckeygen pyhtmlizer tkconch
-+#compdef twistd trial conch cftp ckeygen pyhtmlizer
- #
- # This is the ZSH completion file for Twisted commands. It calls the current
- # command-line with the special "--_shell-completion" option which is handled
diff --git a/lang/python/twisted/patches/001-omit-tkconch.patch b/lang/python/twisted/patches/001-omit-tkconch.patch
new file mode 100644 (file)
index 0000000..2e5e401
--- /dev/null
@@ -0,0 +1,18 @@
+--- a/src/twisted/python/_setup.py
++++ b/src/twisted/python/_setup.py
+@@ -143,7 +143,6 @@ _CONSOLE_SCRIPTS = [
+     "conch = twisted.conch.scripts.conch:run",
+     "mailmail = twisted.mail.scripts.mailmail:run",
+     "pyhtmlizer = twisted.scripts.htmlizer:run",
+-    "tkconch = twisted.conch.scripts.tkconch:run",
+     "trial = twisted.scripts.trial:run",
+     "twist = twisted.application.twist._twist:Twist.main",
+     "twistd = twisted.scripts.twistd:run",
+--- a/src/twisted/python/twisted-completion.zsh
++++ b/src/twisted/python/twisted-completion.zsh
+@@ -1,4 +1,4 @@
+-#compdef twist twistd trial conch cftp ckeygen pyhtmlizer tkconch
++#compdef twist twistd trial conch cftp ckeygen pyhtmlizer
+ #
+ # This is the ZSH completion file for Twisted commands. It calls the current
+ # command-line with the special "--_shell-completion" option which is handled
index 46496201076b8f6dd60ede76092425d1514b6c1c..7e8109807771e7bad45f537ca9ab8a2d9875427b 100644 (file)
@@ -1,21 +1,19 @@
-diff --git a/src/twisted/python/_setup.py b/src/twisted/python/_setup.py
-index 3b5f69d4b..2dca47aa5 100644
 --- a/src/twisted/python/_setup.py
 +++ b/src/twisted/python/_setup.py
-@@ -175,11 +175,6 @@ class ConditionalExtension(Extension, object):
+@@ -169,11 +169,6 @@ class ConditionalExtension(Extension, ob
  # The C extensions used for Twisted.
  _EXTENSIONS = [
--    ConditionalExtension(
+     ConditionalExtension(
 -        "twisted.test.raiser",
 -        sources=["src/twisted/test/raiser.c"],
 -        condition=lambda _: _isCPython),
 -
-     ConditionalExtension(
+-    ConditionalExtension(
          "twisted.internet.iocpreactor.iocpsupport",
          sources=[
-@@ -232,7 +227,7 @@ def getSetupArgs(extensions=_EXTENSIONS):
-     requirements.append("hyperlink >= 17.1.1")
+             "src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c",
+@@ -240,7 +235,7 @@ def getSetupArgs(extensions=_EXTENSIONS)
+     ]
  
      arguments.update(dict(
 -        packages=find_packages("src"),
@@ -23,7 +21,7 @@ index 3b5f69d4b..2dca47aa5 100644
          use_incremental=True,
          setup_requires=["incremental >= 16.10.1"],
          install_requires=requirements,
-@@ -241,6 +236,7 @@ def getSetupArgs(extensions=_EXTENSIONS):
+@@ -249,6 +244,7 @@ def getSetupArgs(extensions=_EXTENSIONS)
          },
          cmdclass=command_classes,
          include_package_data=True,
index e9af160d5af8b0156bc8c9888c26fd8cd9ed09b4..2a4cd2a05ce9384e659a850b80133b9839e0ba70 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apr-util
-PKG_VERSION:=1.6.0
+PKG_VERSION:=1.6.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@APACHE/apr/
-PKG_HASH:=8474c93fa74b56ac6ca87449abe3e155723d5f534727f3f33283f6631a48ca4c
+PKG_HASH:=d3e12f7b6ad12687572a3a39475545a072608f4ba03a6ce8a3778f607dd0035b
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=Apache License
 
index 9d2c076c801de517355adf5e00d5c8e7feb39796..805427afbac7cb062a2b3e82a0219fcc8aae1706 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apr
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.6.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@APACHE/apr/
-PKG_HASH:=09109cea377bab0028bba19a92b5b0e89603df9eab05c0f7dbd4dd83d48dcebd
+PKG_HASH:=131f06d16d7aabd097fa992a33eec2b6af3962f93e6d570a9bd4d85e95993172
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=Apache License
 
index ee327f5588a422b235db31f66ede1cb633a21fe4..a4955e318b9ca953b33eb5e4b9cdd423510dbf97 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=avahi
-PKG_VERSION:=0.6.32
-PKG_RELEASE:=3
+PKG_VERSION:=0.7
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/lathiat/avahi/releases/download/v$(PKG_VERSION)
-PKG_HASH:=d54991185d514a0aba54ebeb408d7575b60f5818a772e28fa0e18b98bc1db454
+PKG_SOURCE_URL:=https://github.com/lathiat/avahi/releases/download/v$(PKG_VERSION) \
+               https://avahi.org/download
+PKG_HASH:=57a99b5dfe7fdae794e3d1ee7a62973a368e91e414bd0dfa5d84434de5b14804
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
 PKG_BUILD_DEPENDS:=intltool/host
index fab87aaef55dc93a6b502e67944add85da455f3c..667a8c45bbf6df062acda4596dffc5766cc7622a 100644 (file)
@@ -1,3 +1,5 @@
+diff --git a/Makefile.am b/Makefile.am
+index 8234d69..156d4c4 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -75,8 +75,7 @@ SUBDIRS = \
@@ -10,6 +12,8 @@
  
  DX_INPUT = \
        $(srcdir)/avahi-common/address.h \
+diff --git a/avahi-python/avahi-discover/Makefile.am b/avahi-python/avahi-discover/Makefile.am
+index 5fc4b25..4c39d3d 100644
 --- a/avahi-python/avahi-discover/Makefile.am
 +++ b/avahi-python/avahi-discover/Makefile.am
 @@ -38,7 +38,6 @@ if HAVE_GDBM
  avahi_discover_PYTHON += __init__.py
  endif
  
+diff --git a/avahi-ui/Makefile.am b/avahi-ui/Makefile.am
+index 238d43a..65a147a 100644
 --- a/avahi-ui/Makefile.am
 +++ b/avahi-ui/Makefile.am
-@@ -78,7 +78,6 @@ endif
+@@ -80,7 +80,6 @@ endif
  
  bin_PROGRAMS = bssh
  desktop_DATA += bssh.desktop bvnc.desktop
  
  bssh_SOURCES = bssh.c
  
-@@ -106,6 +105,4 @@ endif # HAVE_GLIB
+@@ -108,6 +107,4 @@ endif # HAVE_GLIB
  endif
  endif
  
 -@INTLTOOL_DESKTOP_RULE@
 -
  CLEANFILES = $(desktop_DATA) $(desktop_DATA_in)
+diff --git a/configure.ac b/configure.ac
+index 6678971..00dac6e 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -23,7 +23,7 @@ AC_INIT([avahi],[0.6.29],[avahi (at) lis
+@@ -23,7 +23,7 @@ AC_INIT([avahi],[0.7],[avahi (at) lists (dot) freedesktop (dot) org])
  AC_CONFIG_SRCDIR([avahi-core/server.c])
  AC_CONFIG_MACRO_DIR([common])
  AC_CONFIG_HEADERS([config.h])
@@ -65,7 +73,7 @@
  AC_CHECK_PROG([STOW], [stow], [yes], [no])
  
  AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
-@@ -412,12 +410,6 @@ if test "x$have_kqueue" = "xyes" ; then
+@@ -413,12 +411,6 @@ if test "x$have_kqueue" = "xyes" ; then
      AC_DEFINE([HAVE_KQUEUE], 1, [Enable BSD kqueue() usage])
  fi
  
diff --git a/libs/avahi/patches/011-fix-poll-h-warnings-on-musl.patch b/libs/avahi/patches/011-fix-poll-h-warnings-on-musl.patch
deleted file mode 100644 (file)
index a331e64..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-diff --git a/avahi-common/simple-watch.c b/avahi-common/simple-watch.c
-index 8df18dd..08d8090 100644
---- a/avahi-common/simple-watch.c
-+++ b/avahi-common/simple-watch.c
-@@ -21,7 +21,7 @@
- #include <config.h>
- #endif
--#include <sys/poll.h>
-+#include <poll.h>
- #include <assert.h>
- #include <string.h>
- #include <errno.h>
-diff --git a/avahi-common/simple-watch.h b/avahi-common/simple-watch.h
-index 72c1905..db87122 100644
---- a/avahi-common/simple-watch.h
-+++ b/avahi-common/simple-watch.h
-@@ -22,7 +22,7 @@
- /** \file simple-watch.h Simple poll() based main loop implementation */
--#include <sys/poll.h>
-+#include <poll.h>
- #include <avahi-common/cdecl.h>
- #include <avahi-common/watch.h>
-diff --git a/avahi-common/thread-watch.c b/avahi-common/thread-watch.c
-index c0cadeb..ecb202b 100644
---- a/avahi-common/thread-watch.c
-+++ b/avahi-common/thread-watch.c
-@@ -21,7 +21,7 @@
- #include <config.h>
- #endif
--#include <sys/poll.h>
-+#include <poll.h>
- #include <assert.h>
- #include <string.h>
- #include <errno.h>
-diff --git a/avahi-common/thread-watch.h b/avahi-common/thread-watch.h
-index dec0cf3..1b44ccb 100644
---- a/avahi-common/thread-watch.h
-+++ b/avahi-common/thread-watch.h
-@@ -22,7 +22,7 @@
- /** \file thread-watch.h Threaded poll() based main loop implementation */
--#include <sys/poll.h>
-+#include <poll.h>
- #include <avahi-common/cdecl.h>
- #include <avahi-common/watch.h>
-diff --git a/avahi-common/watch.h b/avahi-common/watch.h
-index 86e63d3..eea12ec 100644
---- a/avahi-common/watch.h
-+++ b/avahi-common/watch.h
-@@ -22,7 +22,7 @@
- /** \file watch.h Simplistic main loop abstraction */
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/time.h>
- #include <avahi-common/cdecl.h>
diff --git a/libs/avahi/patches/020-revert-runtime-dir-systemd-change.patch b/libs/avahi/patches/020-revert-runtime-dir-systemd-change.patch
new file mode 100644 (file)
index 0000000..a3b3cc6
--- /dev/null
@@ -0,0 +1,26 @@
+From ef0ea001f6dd13d6a2e0bc17d13f595d2829f8a8 Mon Sep 17 00:00:00 2001
+From: Jeremiah McConnell <miah@miah.com>
+Date: Fri, 15 Jun 2018 11:31:10 -0600
+Subject: [PATCH] move runtime_dir to /var/run
+
+Upstream transitioned to using /run as runtime_dir for 0.7.  Revert
+that change for procd compatibility.
+
+Signed-off-by: Jeremiah McConnell <miah@miah.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 72d61478..8f6e9768 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -984,7 +984,7 @@ AC_DEFINE_UNQUOTED(AVAHI_AUTOIPD_GROUP,"$AVAHI_AUTOIPD_GROUP", [Group for runnin
+ #
+ # Avahi runtime dir
+ #
+-avahi_runtime_dir="/run"
++avahi_runtime_dir="${localstatedir}/run"
+ avahi_socket="${avahi_runtime_dir}/avahi-daemon/socket"
+ AC_SUBST(avahi_runtime_dir)
+ AC_SUBST(avahi_socket)
index f2df769c73bce00e519d29ab1795bb679d8bbef1..9e75283ea4a10834469e5ba9740b53ffca1b7dab 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=faad2
-PKG_VERSION:=2.8.6
+PKG_VERSION:=2.8.8
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/faac/faad2-src/$(PKG_NAME)-2.8.0
-PKG_HASH:=654977adbf62eb81f4fca00152aca58ce3b6dd157181b9edd7bed687a7c73f21
+PKG_HASH:=985c3fadb9789d2815e50f4ff714511c79c2710ac27a4aaaf5c0c2662141426d
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
 PKG_FIXUP:=autoreconf
index 492b1165ab5faa1d10ae416bd526f9c7eb9b6ae0..a05e2d27854abeabd39d3b92177245182b321687 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2017 OpenWrt.org
+# Copyright (C) 2007-2018 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fftw3
-PKG_VERSION:=3.3.7
+PKG_VERSION:=3.3.8
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0+
 
 PKG_SOURCE:=fftw-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.fftw.org
-PKG_HASH:=3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573
+PKG_HASH:=6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/fftw-$(PKG_VERSION)
 PKG_FIXUP:=autoreconf
@@ -39,7 +39,6 @@ endef
 
 define Package/fftw3l
   $(call Package/fftw3)
-  DEPENDS:=@BROKEN
   VARIANT:=long-double
   TITLE+= (long-double precision)
 endef
diff --git a/libs/fftw3/patches/001-makefile.patch b/libs/fftw3/patches/001-makefile.patch
deleted file mode 100644 (file)
index 6f56fa6..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -241,7 +241,7 @@
- CTAGS = ctags
- CSCOPE = cscope
- DIST_SUBDIRS = support genfft kernel simd-support dft rdft reodft api \
--      libbench2 . threads tests mpi doc tools m4
-+      libbench2 . threads mpi doc tools m4
- am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
-       $(srcdir)/fftw.pc.in AUTHORS COPYING ChangeLog INSTALL NEWS \
-       README TODO compile config.guess config.sub install-sh \
-@@ -470,7 +470,7 @@
- # tools are available, such as fig2dev in maintainer mode)
- @BUILD_DOC_TRUE@DOCDIR = doc
- SUBDIRS = support $(GENFFT) kernel simd-support dft rdft reodft api   \
--libbench2 $(CHICKEN_EGG) tests mpi $(DOCDIR) tools m4
-+libbench2 $(CHICKEN_EGG) mpi m4
- EXTRA_DIST = COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in
- SIMD_LIBS = \
index e35b98b3894b3524791d330ac571b235e95a29c2..d7f1f2582217f4e4e2da999bf1f8927f0b38d8cf 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=file
-PKG_VERSION:=5.25
+PKG_VERSION:=5.33
 PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -16,7 +16,7 @@ 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_HASH:=1c52c8c3d271cd898d5511c36a68059cda94036111ab293f01f83c3525b737c6
 
 PKG_LICENSE:=BSD-2c
 PKG_LICENSE_FILES:=COPYING
@@ -52,6 +52,7 @@ endef
 CONFIGURE_ARGS += \
        --enable-shared \
        --enable-static \
+       --disable-libseccomp
 
 MAKE_PATH := src
 
@@ -86,9 +87,6 @@ define Package/file/install
        $(SED) "/^#/d" $(PKG_INSTALL_DIR)/usr/share/file/magic
        $(SED) "/^$$$$/d" $(PKG_INSTALL_DIR)/usr/share/file/magic
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/file/magic $(1)/usr/share/misc/
-
-       # For some reason both "magic" and "magic.mgc" MUST exist
-       ln -sf magic $(1)/usr/share/misc/magic.mgc
 endef
 
 define Package/libmagic/install
index 1c777a50cbcbc46f93b4be6c48b9dd03fc56c78f..6cac5a7b3ca7e5a70885ac5154079bef382c784a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freetype
-PKG_VERSION:=2.9
+PKG_VERSION:=2.9.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/freetype
-PKG_HASH:=e6ffba3c8cef93f557d1f767d7bc3dee860ac7a3aaff588a521e081bc36f4c8a
+PKG_HASH:=db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d
 
 PKG_LICENSE:=FTL GPL-2.0 MIT ZLIB
 PKG_LICENSE_FILES:=docs/LICENSE.TXT docs/FTL.TXT docs/GPLv2.TXT src/bdf/README src/pcf/README src/gzip/zlib.h
@@ -30,7 +30,7 @@ define Package/libfreetype
   CATEGORY:=Libraries
   TITLE:=A free, high-quality and portable font engine
   URL:=http://www.freetype.org/
-  DEPENDS:=+zlib +libbz2 +libpng
+  DEPENDS:=+zlib +libpng
 endef
 
 define Package/libfreetype/description
@@ -43,9 +43,10 @@ endef
 TARGET_CFLAGS += $(FPIC)
 
 CONFIGURE_ARGS += \
+       --enable-freetype-config \
        --enable-shared \
        --enable-static \
-       --with-bzip2=yes \
+       --with-bzip2=no \
        --with-zlib=yes \
        --with-png=yes
 
index 4e0f7759c4cc0c3a66e7d976e6e3434ecdfab95a..9305fe420c25ca58ddb18ebc299c12352ae14b85 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=giflib
-PKG_VERSION:=5.1.2
+PKG_VERSION:=5.1.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/giflib
-PKG_HASH:=76c0a084c3b02f9315ff937b8be6096186002fea26f33e2123081ba2be6e2a7c
+PKG_HASH:=df27ec3ff24671f80b29e6ab1c4971059c14ac3db95406884fc26574631ba8d5
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
index d4531357c1d29366eb98f06de3ce3d2248611aec..4933d19500c416c1bf06dd41898afb67e0b924c3 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=glpk
-PKG_VERSION:=4.63
+PKG_VERSION:=4.65
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=914d27f1a51c2bf4a51f1bd4a507f875fcca99db7b219380b836a25b29b3e7f6
+PKG_HASH:=4281e29b628864dfe48d393a7bedd781e5b475387c20d8b0158f329994721a10
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
@@ -27,7 +27,7 @@ define Package/libglpk
        SECTION:=libs
        CATEGORY:=Libraries
        TITLE:=The GNU Linear Programming Kit
-       URL:=http://www.gnu.org/software/glpk/
+       URL:=https://www.gnu.org/software/glpk/
 endef
 
 define Package/libglpk/description
@@ -41,7 +41,7 @@ define Package/glpsol
        SECTION:=libs
        CATEGORY:=Libraries
        TITLE:=The GNU Linear Programming Kit (glpsol)
-       URL:=http://www.gnu.org/software/glpk/
+       URL:=https://www.gnu.org/software/glpk/
        DEPENDS:=libglpk
 endef
 
index 54fb7a6a52837f6433e9ecbde66b04d84cfdaf0d..23bb37e4593553791d1362d49cc1496ce787cd43 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ibrcommon
 PKG_VERSION:=1.0.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
diff --git a/libs/ibrcommon/patches/010-build-with-openssl-1.1.patch b/libs/ibrcommon/patches/010-build-with-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..c987e19
--- /dev/null
@@ -0,0 +1,353 @@
+From fe7ae129b8be052e5178b07e76e19ede21b13261 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Tue, 22 May 2018 16:40:20 -0300
+Subject: [PATCH] ibrcommon: added openssl 1.1 compatibility
+
+This patch adds compatibility to openssl 1.1.0.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ ibrcommon/ssl/HMacStream.cpp      | 11 ++++----
+ ibrcommon/ssl/HMacStream.h        |  2 +-
+ ibrcommon/ssl/RSASHA256Stream.cpp | 28 +++++++++---------
+ ibrcommon/ssl/RSASHA256Stream.h   |  2 +-
+ ibrcommon/ssl/iostreamBIO.cpp     | 44 ++++++++++++++++++++++-------
+ ibrcommon/ssl/openssl_compat.h    | 38 +++++++++++++++++++++++++
+ 6 files changed, 95 insertions(+), 30 deletions(-)
+ create mode 100644 ibrcommon/ssl/openssl_compat.h
+
+diff --git a/ibrcommon/ssl/HMacStream.cpp b/ibrcommon/ssl/HMacStream.cpp
+index e5d317e3..66d8ce42 100644
+--- a/ibrcommon/ssl/HMacStream.cpp
++++ b/ibrcommon/ssl/HMacStream.cpp
+@@ -20,29 +20,30 @@
+  */
+ #include "ibrcommon/ssl/HMacStream.h"
++#include "openssl_compat.h"
+ namespace ibrcommon
+ {
+       HMacStream::HMacStream(const unsigned char * const key, const int key_size)
+        : HashStream(EVP_MAX_MD_SIZE, BUFF_SIZE), key_(key), key_size_(key_size)
+       {
+-              HMAC_CTX_init(&ctx_);
+-              HMAC_Init_ex(&ctx_, key_, key_size_, EVP_sha1(), NULL);
++              ctx_ = HMAC_CTX_new();
++              HMAC_Init_ex(ctx_, key_, key_size_, EVP_sha1(), NULL);
+       }
+       HMacStream::~HMacStream()
+       {
+-              HMAC_CTX_cleanup(&ctx_);
++              HMAC_CTX_free(ctx_);
+       }
+       void HMacStream::update(char *buf, const size_t size)
+       {
+               // hashing
+-              HMAC_Update(&ctx_, (unsigned char*)buf, size);
++              HMAC_Update(ctx_, (unsigned char*)buf, size);
+       }
+       void HMacStream::finalize(char * hash, unsigned int &size)
+       {
+-              HMAC_Final(&ctx_, (unsigned char*)hash, &size);
++              HMAC_Final(ctx_, (unsigned char*)hash, &size);
+       }
+ }
+diff --git a/ibrcommon/ssl/HMacStream.h b/ibrcommon/ssl/HMacStream.h
+index 7dcea168..d04bceb8 100644
+--- a/ibrcommon/ssl/HMacStream.h
++++ b/ibrcommon/ssl/HMacStream.h
+@@ -44,7 +44,7 @@ namespace ibrcommon
+               const unsigned char * const key_;
+               const int key_size_;
+-              HMAC_CTX ctx_;
++              HMAC_CTX* ctx_;
+       };
+ }
+diff --git a/ibrcommon/ssl/RSASHA256Stream.cpp b/ibrcommon/ssl/RSASHA256Stream.cpp
+index d94430ed..d25c5d2f 100644
+--- a/ibrcommon/ssl/RSASHA256Stream.cpp
++++ b/ibrcommon/ssl/RSASHA256Stream.cpp
+@@ -21,6 +21,7 @@
+ #include "ibrcommon/ssl/RSASHA256Stream.h"
+ #include "ibrcommon/Logger.h"
++#include "openssl_compat.h"
+ #include <openssl/err.h>
+ namespace ibrcommon
+@@ -30,11 +31,11 @@ namespace ibrcommon
+       {
+               // Initialize get pointer.  This should be zero so that underflow is called upon first read.
+               setp(&out_buf_[0], &out_buf_[BUFF_SIZE - 1]);
+-              EVP_MD_CTX_init(&_ctx);
++              _ctx = EVP_MD_CTX_new();
+               if (!_verify)
+               {
+-                      if (!EVP_SignInit_ex(&_ctx, EVP_sha256(), NULL))
++                      if (!EVP_SignInit_ex(_ctx, EVP_sha256(), NULL))
+                       {
+                               IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the signature function" << IBRCOMMON_LOGGER_ENDL;
+                               ERR_print_errors_fp(stderr);
+@@ -42,7 +43,7 @@ namespace ibrcommon
+               }
+               else
+               {
+-                      if (!EVP_VerifyInit_ex(&_ctx, EVP_sha256(), NULL))
++                      if (!EVP_VerifyInit_ex(_ctx, EVP_sha256(), NULL))
+                       {
+                               IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the verification function" << IBRCOMMON_LOGGER_ENDL;
+                               ERR_print_errors_fp(stderr);
+@@ -52,18 +53,19 @@ namespace ibrcommon
+       RSASHA256Stream::~RSASHA256Stream()
+       {
+-              EVP_MD_CTX_cleanup(&_ctx);
++              EVP_MD_CTX_free(_ctx);
+       }
+       void RSASHA256Stream::reset()
+       {
+-              EVP_MD_CTX_cleanup(&_ctx);
+-
+-              EVP_MD_CTX_init(&_ctx);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++              EVP_MD_CTX_cleanup(_ctx);
++#endif
++              EVP_MD_CTX_init(_ctx);
+               if (!_verify)
+               {
+-                      if (!EVP_SignInit_ex(&_ctx, EVP_sha256(), NULL))
++                      if (!EVP_SignInit_ex(_ctx, EVP_sha256(), NULL))
+                       {
+                               IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the signature function" << IBRCOMMON_LOGGER_ENDL;
+                               ERR_print_errors_fp(stderr);
+@@ -71,7 +73,7 @@ namespace ibrcommon
+               }
+               else
+               {
+-                      if (!EVP_VerifyInit_ex(&_ctx, EVP_sha256(), NULL))
++                      if (!EVP_VerifyInit_ex(_ctx, EVP_sha256(), NULL))
+                       {
+                               IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to initialize the verfication function" << IBRCOMMON_LOGGER_ENDL;
+                               ERR_print_errors_fp(stderr);
+@@ -91,7 +93,7 @@ namespace ibrcommon
+                       std::vector<unsigned char> sign(EVP_PKEY_size(_pkey));
+                       unsigned int size = EVP_PKEY_size(_pkey);
+-                      _return_code = EVP_SignFinal(&_ctx, &sign[0], &size, _pkey);
++                      _return_code = EVP_SignFinal(_ctx, &sign[0], &size, _pkey);
+                       _sign = std::string((const char*)&sign[0], size);
+@@ -107,7 +109,7 @@ namespace ibrcommon
+               if (!_sign_valid)
+               {
+                       sync();
+-                      _return_code = EVP_VerifyFinal(&_ctx, reinterpret_cast<const unsigned char *>(their_sign.c_str()), static_cast<unsigned int>(their_sign.size()), _pkey);
++                      _return_code = EVP_VerifyFinal(_ctx, reinterpret_cast<const unsigned char *>(their_sign.c_str()), static_cast<unsigned int>(their_sign.size()), _pkey);
+                       _sign_valid = true;
+               }
+               return _return_code;
+@@ -145,7 +147,7 @@ namespace ibrcommon
+               if (!_verify)
+                       // hashing
+               {
+-                      if (!EVP_SignUpdate(&_ctx, &out_buf_[0], iend - ibegin))
++                      if (!EVP_SignUpdate(_ctx, &out_buf_[0], iend - ibegin))
+                       {
+                               IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to feed data into the signature function" << IBRCOMMON_LOGGER_ENDL;
+                               ERR_print_errors_fp(stderr);
+@@ -153,7 +155,7 @@ namespace ibrcommon
+               }
+               else
+               {
+-                      if (!EVP_VerifyUpdate(&_ctx, &out_buf_[0], iend - ibegin))
++                      if (!EVP_VerifyUpdate(_ctx, &out_buf_[0], iend - ibegin))
+                       {
+                               IBRCOMMON_LOGGER_TAG("RSASHA256Stream", critical) << "failed to feed data into the verification function" << IBRCOMMON_LOGGER_ENDL;
+                               ERR_print_errors_fp(stderr);
+diff --git a/ibrcommon/ssl/RSASHA256Stream.h b/ibrcommon/ssl/RSASHA256Stream.h
+index 344f8e10..6f3a1168 100644
+--- a/ibrcommon/ssl/RSASHA256Stream.h
++++ b/ibrcommon/ssl/RSASHA256Stream.h
+@@ -106,7 +106,7 @@ namespace ibrcommon
+               /** the context in which the streamed data will be feed into for
+               calculation of the hash/signature */
+-              EVP_MD_CTX _ctx;
++              EVP_MD_CTX * _ctx;
+               /** tells if the context needs to be finalized to get a valid signature or
+               verification */
+diff --git a/ibrcommon/ssl/iostreamBIO.cpp b/ibrcommon/ssl/iostreamBIO.cpp
+index 18c1b55c..ea6c63eb 100644
+--- a/ibrcommon/ssl/iostreamBIO.cpp
++++ b/ibrcommon/ssl/iostreamBIO.cpp
+@@ -23,6 +23,7 @@
+ #include "ibrcommon/Logger.h"
++#include "openssl_compat.h"
+ #include <openssl/err.h>
+ namespace ibrcommon
+@@ -42,7 +43,20 @@ static int create(BIO *bio);
+ //static int destroy(BIO *bio);
+ //static long (*callback_ctrl)(BIO *, int, bio_info_cb *);
+-
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++BIO_METHOD * BIO_iostream_method()
++{
++      static BIO_METHOD *iostream_method = NULL;
++      if (iostream_method) {
++              iostream_method = BIO_meth_new(iostreamBIO::type, iostreamBIO::name);
++              BIO_meth_set_write(iostream_method, bwrite);
++              BIO_meth_set_read(iostream_method, bread);
++              BIO_meth_set_ctrl(iostream_method, ctrl);
++              BIO_meth_set_create(iostream_method, create);
++      }
++      return iostream_method;
++}
++#else
+ static BIO_METHOD iostream_method =
+ {
+               iostreamBIO::type,
+@@ -56,12 +70,17 @@ static BIO_METHOD iostream_method =
+               NULL,//destroy,
+               NULL//callback_ctrl
+ };
++BIO_METHOD * BIO_iostream_method()
++{
++      return &iostream_method;
++}
++#endif
+ iostreamBIO::iostreamBIO(iostream *stream)
+       :       _stream(stream)
+ {
+       /* create BIO */
+-      _bio = BIO_new(&iostream_method);
++      _bio = BIO_new(BIO_iostream_method());
+       if(!_bio){
+               /* creation failed, throw exception */
+               char err_buf[ERR_BUF_SIZE];
+@@ -72,7 +91,7 @@ iostreamBIO::iostreamBIO(iostream *stream)
+       }
+       /* save the iostream in the bio object */
+-      _bio->ptr = stream;
++      BIO_set_data(_bio, (void *) stream);
+ }
+ BIO * iostreamBIO::getBIO(){
+@@ -81,10 +100,10 @@ BIO * iostreamBIO::getBIO(){
+ static int create(BIO *bio)
+ {
+-      bio->ptr = NULL;
+-      /* (from openssl memory bio) */
+-      bio->shutdown=1;
+-      bio->init=1;
++      BIO_set_data(bio, NULL);
++      BIO_set_shutdown(bio, 1);
++      BIO_set_init(bio, 1);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       /* from bss_mem.c (openssl):
+        * bio->num is used to hold the value to return on 'empty', if it is
+        * 0, should_retry is not set
+@@ -93,6 +112,7 @@ static int create(BIO *bio)
+        * it is set to 0 since the underlying stream is blocking
+        */
+       bio->num= 0;
++#endif
+       return 1;
+ }
+@@ -102,7 +122,7 @@ static int create(BIO *bio)
+ static long ctrl(BIO *bio, int cmd, long  num, void *)
+ {
+       long ret;
+-      iostream *stream = reinterpret_cast<iostream*>(bio->ptr);
++      iostream *stream = reinterpret_cast<iostream*>(BIO_get_data(bio));
+       IBRCOMMON_LOGGER_DEBUG_TAG("iostreamBIO", 90) << "ctrl called, cmd: " << cmd << ", num: " << num << "." << IBRCOMMON_LOGGER_ENDL;
+@@ -147,8 +167,12 @@ static long ctrl(BIO *bio, int cmd, long  num, void *)
+ static int bread(BIO *bio, char *buf, int len)
+ {
+-      iostream *stream = reinterpret_cast<iostream*>(bio->ptr);
++      iostream *stream = reinterpret_cast<iostream*>(BIO_get_data(bio));
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++      int num_bytes = 0;
++#else
+       int num_bytes = bio->num;
++#endif
+       try{
+               /* make sure to read at least 1 byte and then read as much as we can */
+@@ -170,7 +194,7 @@ static int bwrite(BIO *bio, const char *buf, int len)
+       if(len == 0){
+               return 0;
+       }
+-      iostream *stream = reinterpret_cast<iostream*>(bio->ptr);
++      iostream *stream = reinterpret_cast<iostream*>(BIO_get_data(bio));
+       /* write the data */
+       try{
+diff --git a/ibrcommon/ssl/openssl_compat.h b/ibrcommon/ssl/openssl_compat.h
+new file mode 100644
+index 00000000..e491677f
+--- /dev/null
++++ b/ibrcommon/ssl/openssl_compat.h
+@@ -0,0 +1,38 @@
++#ifndef OPENSSL_COMPAT_H
++#define OPENSSL_COMPAT_H
++
++#include <openssl/crypto.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <openssl/evp.h>
++#include <openssl/hmac.h>
++
++static inline EVP_MD_CTX * EVP_MD_CTX_new()
++{
++      EVP_MD_CTX *ctx;
++
++      ctx = (EVP_MD_CTX *) OPENSSL_malloc(sizeof(EVP_MD_CTX));
++      EVP_MD_CTX_init(ctx);
++        return ctx;
++}
++#define EVP_MD_CTX_free(c) if (c != NULL) OPENSSL_free(c)
++
++static inline HMAC_CTX * HMAC_CTX_new()
++{
++        HMAC_CTX *ctx;
++
++        ctx = (HMAC_CTX *) OPENSSL_malloc(sizeof(HMAC_CTX));
++        HMAC_CTX_init(ctx);
++        return ctx;
++}
++#define HMAC_CTX_free(c) if (c != NULL) OPENSSL_free(c)
++
++#define BIO_get_data(b) b->ptr
++#define BIO_set_data(b, v) b->ptr=v
++#define BIO_set_shutdown(b, v) b->shutdown=v
++#define BIO_set_init(b, v) b->init=v
++
++#endif /* OPENSSL_VERSION_NUMBER */
++
++#endif /* OPENSSL_COMPAT_H */
++
+-- 
+2.16.1
+
index 2d9a97dac840c496d2790a632699e1aedb41e6be..6cfd23b6cf4089b3996bf4c81261f87f07edb7cb 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=icu4c
-PKG_VERSION:=61.1
+PKG_VERSION:=62.1
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-61_1-src.tgz
+PKG_SOURCE:=$(PKG_NAME)-62_1-src.tgz
 PKG_SOURCE_URL:=http://download.icu-project.org/files/$(PKG_NAME)/$(PKG_VERSION)
-PKG_HASH:=d007f89ae8a2543a53525c74359b65b36412fa84b3349f1400be6dcf409fafef
+PKG_HASH:=3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3
 
 PKG_LICENSE:=ICU-1.8.1+
 PKG_LICENSE_FILES:=LICENSE
index fdc013fcf828100414a6fd96541692c7fc19a47c..99ab4789c7f407b59f5d48ffc813553d98cb9ff6 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=jansson
-PKG_VERSION:=2.10
+PKG_VERSION:=2.11
 PKG_RELEASE:=1
 PKG_LICENSE:=MIT
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.digip.org/jansson/releases/
-PKG_HASH:=241125a55f739cd713808c4e0089986b8c3da746da8b384952912ad659fa2f5a
+PKG_HASH:=783132e2fc970feefc2fa54199ef65ee020bd8e0e991a78ea44b8586353a0947
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
index 8d78f2cf28a71b511b2d6c4be0959d669a9969c0..d2751c0d3b0e07bb2629785a04897d6e5057ec2d 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ldns
-PKG_VERSION:=1.6.17
-PKG_RELEASE:=2
+PKG_VERSION:=1.7.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.nlnetlabs.nl/downloads/ldns
-PKG_HASH:=8b88e059452118e8949a2752a55ce59bc71fa5bc414103e17f5b6b06f9bcc8cd
+PKG_HASH:=c19f5b1b4fb374cfe34f4845ea11b1e0551ddc67803bd6ddd5d2a20f0997a6cc
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
@@ -58,6 +58,7 @@ define Package/drill/description
 endef
 
 CONFIGURE_ARGS += \
+       --disable-dane-ta-usage \
        --disable-ecdsa \
        --disable-gost \
        --with-drill \
diff --git a/libs/ldns/patches/001-fix-cross-compile-on-darwin.patch b/libs/ldns/patches/001-fix-cross-compile-on-darwin.patch
new file mode 100644 (file)
index 0000000..ddc2691
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -842,7 +842,7 @@ ACX_CHECK_FORMAT_ATTRIBUTE
+ ACX_CHECK_UNUSED_ATTRIBUTE
+ # check OSX deployment target, if needed
+-if echo $build_os | grep darwin > /dev/null; then
++if echo $target_os | grep darwin > /dev/null; then
+   sdk_p=`xcode-select -print-path`;
+   sdk_v="$( /usr/bin/xcrun --show-sdk-version )";
+   case $sdk_v in
diff --git a/libs/ldns/patches/001-perl5-defined-array.patch b/libs/ldns/patches/001-perl5-defined-array.patch
deleted file mode 100644 (file)
index 5e193d9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/doc/doxyparse.pl
-+++ b/doc/doxyparse.pl
-@@ -273,7 +273,7 @@ foreach (keys %manpages) {
-       print MAN $MAN_MIDDLE;
--      if (defined(@$also)) {
-+      if (@$also) {
-               print MAN "\n.SH SEE ALSO\n\\fI";
-               print MAN join "\\fR, \\fI", @$also;
-               print MAN "\\fR.\nAnd ";
index 5c2d7cf68bd1daaf0b631632f29fbede3eb34b7c..c7a52e7065f5d0642ad70d9a7c3b6668f5d317a4 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libantlr3c
-PKG_VERSION:=3.2
+PKG_VERSION:=3.4
 PKG_RELEASE:=1
-PKG_HASH:=2ccfb8a8bdd3d6c1d60742ff3a5a954af6d5a8d7f8901c87229fc6fa540ac99a
+PKG_HASH:=ca914a97f1a2d2f2c8e1fca12d3df65310ff0286d35c48b7ae5f11dcc8b2eb52
 
-PKG_SOURCE_URL:=http://www.antlr3.org/download/C
+PKG_SOURCE_URL:=https://www.antlr3.org/download/C
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 PKG_MAINTAINER:=Espen Jürgensen <espenjurgensen+openwrt@gmail.com>
@@ -26,7 +27,7 @@ define Package/libantlr3c
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=libantlr3c
-  URL:=http://www.antlr3.org/
+  URL:=https://www.antlr3.org/
 endef
 
 define Package/libantlr3c/description
index 3c61d3df1b51096b2ecb9cc974417e5b954ce3fb..724f9150faff05b1f9618a03100afd063f64b82a 100644 (file)
@@ -10,7 +10,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libdmapsharing
-PKG_VERSION:=2.9.39
+PKG_VERSION:=3.9.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -19,8 +19,8 @@ PKG_LICENSE:=LGPLv2.1
 PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=libdmapsharing-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.flyn.org/projects/libdmapsharing/
-PKG_HASH:=a90dc0681ae81700e46efc539f70edb6edd936b782a9a695434bea660a43a5ef
+PKG_SOURCE_URL:=https://www.flyn.org/projects/libdmapsharing/
+PKG_HASH:=7567888f588d0ee0a017385c09c68ceec0383b3e9b47f0df061a4386a69b1610
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
@@ -34,7 +34,7 @@ TARGET_LDFLAGS+= \
 define Package/libdmapsharing
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=+libsoup +mdnsresponder +gstreamer1 +gst1-plugins-base +libgst1app
+  DEPENDS:=+libsoup +mdnsresponder +gstreamer1-libs +gstreamer1-plugins-base +gst1-mod-app
   TITLE:=libdmapsharing
   URL:=http://www.flyn.org/projects/libdmapsharing/
 endef
@@ -51,7 +51,7 @@ CONFIGURE_ARGS += \
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include/
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/include/libdmapsharing-3.0/ \
+               $(PKG_INSTALL_DIR)/usr/include/libdmapsharing-4.0/ \
                $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib/
        $(CP) \
index d3c07e638c87110c02e9f804aef7ebce3e641322..7e151a84072c0e63aafc962e7a8e6e64a2ba231f 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libfmt
-PKG_VERSION:=4.1.0
+PKG_VERSION:=5.1.0
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
@@ -16,7 +16,7 @@ PKG_SOURCE_URL:=https://github.com/fmtlib/fmt.git
 PKG_SOURCE_VERSION:=$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_MIRROR_HASH:=112c964c1537fbc2f3a993f405547fc57b0f3d1524c808006920c53fab42c233
+PKG_MIRROR_HASH:=458debd5a0fbfdc36715ce63a0c1b1be84140ee9fbe28232a27c90448630469c
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
 PKG_LICENSE:=BSD-2-Clause
index 645bf307a31363dae7a86bebd0b87745f635a553..5cd6a3166c726e70d8907b6ccb8d66e1489b03ff 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libgee
-PKG_VERSION:=0.20.0
+PKG_VERSION:=0.20.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNOME/libgee/0.20/
-PKG_HASH:=21308ba3ed77646dda2e724c0e8d5a2f8d101fb05e078975a532d7887223c2bb
+PKG_HASH:=bb2802d29a518e8c6d2992884691f06ccfcc25792a5686178575c7111fea4630
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
index 94cf8a1d16d339e5d3a98831a2cf09fbe9577ad0..f719974c8784d6db99798f8af23b95fbdd16e78a 100644 (file)
@@ -15,7 +15,7 @@ PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE-MIT
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=83acea397da4cdb9192c27abbd53a9eb8e5a9e1bcea2873b499f7ccc0d68f518
+PKG_MIRROR_HASH:=cf154fc12666dfa404f2537bb54e32196841e0f9d32312bf1e4daaf43f97f9a5
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=git://github.com/nodejs/http-parser.git
 PKG_SOURCE_PROTO:=git
index c023b5298d9b5d70edc3e81a92c9197c910dfb4f..05c26a8b79dd6c4fd562b6971f1afe0a7f727b84 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libidn2
-PKG_VERSION:=2.0.4
+PKG_VERSION:=2.0.5
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
 PKG_LICENSE:=GPL-2.0-or-later LGPL-3.0-or-later
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=COPYING COPYINGv2 COPYING.LESSERv3
 
 PKG_SOURCE_URL:=@GNU/libidn
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=644b6b03b285fb0ace02d241d59483d98bc462729d8bb3608d5cad5532f3d2f0
+PKG_HASH:=53f69170886f1fa6fa5b332439c7a77a7d22626a82ef17e2c1224858bb4ca2b8
 
 PKG_INSTALL:=1
 
index 95a083932778aab3e66cbe62c9e47b3172c95ce1..fbeb06f2fe976b92bfa6ff820b53dde98cf73406 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=liblo
-PKG_VERSION:=0.28
+PKG_VERSION:=0.29
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/liblo
-PKG_HASH:=da94a9b67b93625354dd89ff7fe31e5297fc9400b6eaf7378c82ee1caf7db909
+PKG_HASH:=ace1b4e234091425c150261d1ca7070cece48ee3c228a5612d048116d864c06a
 
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING
index 6d980b25211e2ab837959fab2b8164846a561a8a..633dc9effd486d2ff1eddeab21129030b7f351c4 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libmraa
-PKG_VERSION:=0.8.0
+PKG_VERSION:=0.9.0
 
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/intel-iot-devkit/mraa.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=70600dece4138b0c0dbaff42f57828f1559cd840
+PKG_SOURCE_VERSION:=049ba5fa9f2d18ac0ec6729c46916b34998d3c5f
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=9cbda58e7c7790db3d62cee62f399975effcdc2d9688d3d6bb2b4a86748faff9
+PKG_MIRROR_HASH:=0c81cff6dcfe401ead0d8976c6f9a6a86b75ab38413a45a40b7eb20b639d78e4
 PKG_BUILD_DEPENDS:=node python/host swig/host node/host
 CMAKE_INSTALL:=1
 
index 5094389f487a74140e480f48ad31f667b84cf222..9b36ea3c65b5939e28ded7cbb35f573aa667d0a6 100644 (file)
@@ -1,9 +1,3 @@
-From 6fecad819376442d057bdd35a0909cfac9df02f5 Mon Sep 17 00:00:00 2001
-From: John Crispin <blogic@openwrt.org>
-Date: Thu, 23 Jul 2015 12:18:39 +0200
-Subject: [PATCH 1/4] base
-
----
  CMakeLists.txt          |   10 ++++------
  api/mraa/types.h        |    1 +
  include/mraa_internal.h |    7 +++++++
@@ -21,11 +15,11 @@ Subject: [PATCH 1/4] base
  # Make a version file containing the current version from git.
 -include (GetGitRevisionDescription)
 -git_describe (VERSION "--tags")
--if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND" OR "x_${VERSION}" STREQUAL "x_HEAD-HASH-NOTFOUND")
+-if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND" OR "x_${VERSION}" STREQUAL "x_HEAD-HASH-NOTFOUND" OR "x_${VERSION}" STREQUAL "x_-128-NOTFOUND")
 -  message (WARNING " - Install git to compile a production libmraa!")
--  set (VERSION "v0.8.0-dirty")
+-  set (VERSION "v0.8.1-dirty")
 -endif ()
-+set (VERSION "v0.8.0")
++set (VERSION "v0.9.0")
  
  message (INFO " - libmraa Version ${VERSION}")
  
index b9391bb4396135d3ce126a09d193f395fed7e2b9..8417dc51d95c9c7f30651288f6f4dafc40a6c525 100644 (file)
@@ -12,7 +12,7 @@ PKG_VERSION:=1.2-rc3
 PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://sourceforge.net/projects/libnet-dev/files/
+PKG_SOURCE_URL:=@SF/libnet-dev
 PKG_HASH:=72c380785ad44183005e654b47cc12485ee0228d7fa6b0a87109ff7614be4a63
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 PKG_LICENSE:=GPL-2.0
index 96b59c0b48adf1f13284542c5745fa6ba7c27c04..3160d9c0108dfd605e8da640ff4122734e2695a7 100644 (file)
@@ -12,11 +12,11 @@ PKG_NAME:=libnetconf2
 PKG_LICENSE:=BSD-3-Clause
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
-PKG_VERSION:=0.10.17
+PKG_VERSION:=0.11.37
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=bd93b091d6e4414283c6c764dc451aee61e09997
-PKG_MIRROR_HASH:=499847be79d202cb0c933aad8133a38ebca7099344a1194404e488aa4d10ff08
+PKG_SOURCE_VERSION:=46d56e08b161eb60f37410dae4d5e1a8a1bedd58
+PKG_MIRROR_HASH:=e12007b69eee42d1eb9925a93bcac7a71139583a76a59c78039b48cc20fc431f
 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_VERSION)-$(PKG_SOURCE_VERSION)
index cd261d958b924c97251cbeb75ce41a1ff7a2e3e1..ad29c1c99d93e64b449049d0209689432463b3a8 100644 (file)
@@ -8,15 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnetfilter_acct
-PKG_VERSION:=1.0.2
+PKG_VERSION:=1.0.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:= \
-       http://www.netfilter.org/projects/libnetfilter_acct/files/ \
-       ftp://ftp.netfilter.org/pub/libnetfilter_acct/ \
-       http://mirrors.evolva.ro/netfilter.org/libnetfilter_acct/
-PKG_HASH:=0128f19c3419fbd84f7e6d46b13a33ef7bda9b9f5e493bc5ae1882d087514b71
+PKG_SOURCE_URL:=https://netfilter.org/projects/libnetfilter_acct/files
+PKG_HASH:=4250ceef3efe2034f4ac05906c3ee427db31b9b0a2df41b2744f4bf79a959a1a
 
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING
index 8f5f5840c8041aec07e7d2833706761feac4aab6..339be8890dbe7b9dc3f2d32cd1c97368ddf89a2e 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nopoll
-PKG_VERSION:=0.4.2
-PKG_RELEASE:=2
+PKG_VERSION:=0.4.6
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/ASPLes/nopoll.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=60a81fbd199551ac5dd017b9a44fb46e8530680b
+PKG_SOURCE_VERSION:=5cf7c10c3b0b758ad254504bf0ae7e600b118528
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
-PKG_MIRROR_HASH:=ce67b91ea54dda6678321e05a3e584648032a31323409a76df5dd60e7bfd17de
+PKG_MIRROR_HASH:=fae82c7c711520be07ed4e9828724d0a8ee5de7d7b4395e4ac9f72da25fcc524
 
 PKG_MAINTAINER:=John Clark <inindev@gmail.com>
 
diff --git a/libs/libnopoll/patches/001-param_h_rename.patch b/libs/libnopoll/patches/001-param_h_rename.patch
deleted file mode 100644 (file)
index 2eb0340..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-From 675ac7b4b64d398de8a61e9c713383b8c0d9071f Mon Sep 17 00:00:00 2001
-From: Florian Fainelli <f.fainelli@gmail.com>
-Date: Tue, 20 Jun 2017 20:06:36 -0700
-Subject: [PATCH] nopoll: * [fix] Avoid clashes with isset() from sys/param.h
-
----
- src/nopoll_io.c      | 4 ++--
- src/nopoll_loop.c    | 4 ++--
- src/nopoll_private.h | 4 ++--
- 3 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/nopoll_io.c b/src/nopoll_io.c
-index 036aa2c1c685..b3e48c2385d0 100644
---- a/src/nopoll_io.c
-+++ b/src/nopoll_io.c
-@@ -204,8 +204,8 @@ noPollIoEngine * nopoll_io_get_engine (noPollCtx * ctx, noPollIoEngineType engin
-       engine->destroy = nopoll_io_wait_select_destroy;
-       engine->clear   = nopoll_io_wait_select_clear;
-       engine->wait    = nopoll_io_wait_select_wait;
--      engine->addto   = nopoll_io_wait_select_add_to;
--      engine->isset   = nopoll_io_wait_select_is_set;
-+      engine->add_to  = nopoll_io_wait_select_add_to;
-+      engine->is_set  = nopoll_io_wait_select_is_set;
-       /* call to create the object */
-       engine->ctx       = ctx;
-diff --git a/src/nopoll_loop.c b/src/nopoll_loop.c
-index f58b8133b79a..60112f8dbf58 100644
---- a/src/nopoll_loop.c
-+++ b/src/nopoll_loop.c
-@@ -64,7 +64,7 @@ nopoll_bool nopoll_loop_register (noPollCtx * ctx, noPollConn * conn, noPollPtr
-       /* register the connection socket */
-       /* nopoll_log (ctx, NOPOLL_LEVEL_DEBUG, "Adding socket id: %d", conn->session);*/
--      if (! ctx->io_engine->addto (conn->session, ctx, conn, ctx->io_engine->io_object)) {
-+      if (! ctx->io_engine->add_to (conn->session, ctx, conn, ctx->io_engine->io_object)) {
-               /* remove this connection from registry */
-               nopoll_ctx_unregister_conn (ctx, conn);
-@@ -109,7 +109,7 @@ nopoll_bool nopoll_loop_process (noPollCtx * ctx, noPollConn * conn, noPollPtr u
-       int        * conn_changed = (int *) user_data;
-       /* check if the connection have something to notify */
--      if (ctx->io_engine->isset (ctx, conn->session, ctx->io_engine->io_object)) {
-+      if (ctx->io_engine->is_set (ctx, conn->session, ctx->io_engine->io_object)) {
-               /* call to notify action according to role */
-               switch (conn->role) {
-diff --git a/src/nopoll_private.h b/src/nopoll_private.h
-index 82fd27bb7fba..cd895d1e3ffd 100644
---- a/src/nopoll_private.h
-+++ b/src/nopoll_private.h
-@@ -340,8 +340,8 @@ struct _noPollIoEngine {
-       noPollIoMechDestroy    destroy;
-       noPollIoMechClear      clear;
-       noPollIoMechWait       wait;
--      noPollIoMechAddTo      addto;
--      noPollIoMechIsSet      isset;
-+      noPollIoMechAddTo      add_to;
-+      noPollIoMechIsSet      is_set;
- };
- struct _noPollMsg {
--- 
-2.11.0
-
index 0d55d8e04895e3051dda0ef5af6bc02ea7369ba0..cc363e0515389fe1de949fb6c0ae8554dee4f2f5 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libogg
-PKG_VERSION:=1.3.2
-PKG_RELEASE:=2
+PKG_VERSION:=1.3.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://downloads.xiph.org/releases/ogg/
-PKG_HASH:=3f687ccdd5ac8b52d76328fbbfebc70c459a40ea891dbf3dccb74a210826e79b
+PKG_SOURCE_URL:=https://downloads.xiph.org/releases/ogg/
+PKG_HASH:=4f3fc6178a533d392064f14776b23c397ed4b9f48f5de297aba73b643f955c08
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
 PKG_LICENSE:=BSD-3-Clause
index c01c89b65ecbd8da5f9c4bceb8e8d94f4310fe46..c83f0e997befc28df340986b7779b30ac044a4fe 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsamplerate
-PKG_VERSION:=0.1.8
+PKG_VERSION:=0.1.9
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.mega-nerd.com/SRC/
-PKG_HASH:=93b54bdf46d5e6d2354b7034395fe329c222a966790de34520702bb9642f1c06
+PKG_HASH:=0a7eb168e2f21353fb6d84da152e4512126f7dc48ccb0be80578c565413444c1
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
index b6cba662451d32d416ffae96bebe2e23fec4af36..e2ed5806afe5302068ffe9b7b20e8c0008d590a7 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsearpc
-PKG_VERSION:=6.2.2
+PKG_VERSION:=3.0.8
 PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
 PKG_LICENSE:=GPL-3.0
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/haiwen/libsearpc.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=8998e7b2c5587f0b94c48db24e2952d08def5add
+PKG_SOURCE_VERSION:=12a01268825e9c7e17794c58c367e3b4db912ad9
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=207baa1fc63a60c117cf4985b60a18212b151fa070f208621633c3b53ab679bf
+PKG_MIRROR_HASH:=8ca4785c4d276afeac212a26a143b22e45b85cf196c1218e4630f6072a33f430
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
index 8209960b93cc9ebb506a245b771802cbe47bc976..ce73d237d26d864eec70d441965e4501e9a8cc74 100644 (file)
@@ -8,10 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsoc
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/jackmitch/libsoc.git
+PKG_MIRROR_HASH:=bdfaace3d59da30c4aa5ef78b5e235b5e9c41cd56867e04cb0acefc4dcd62d33
 PKG_SOURCE_DATE:=2016-12-22
 PKG_SOURCE_VERSION:=5b788d4d558a78c52e6cfe97325e4564b307a3a0
 
@@ -43,11 +44,6 @@ CONFIGURE_ARGS += \
        --enable-static \
        --disable-cxx
 
-MAKE_FLAGS += \
-       CFLAGS="$(TARGET_CFLAGS)" \
-       DESTDIR="$(PKG_INSTALL_DIR)" \
-       all install
-
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/libsoc_board.h $(1)/usr/include/
index 17dd3ba40093688b40afc60403c89dc318c0fc62..cc410c058d39e43766a883dad9b7974d7824e9fd 100644 (file)
@@ -12,7 +12,7 @@ PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
 PKG_NAME:=libssh
 PKG_VERSION:=0.7.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://red.libssh.org/attachments/download/218/
diff --git a/libs/libssh/patches/005-openssl-1.1.patch b/libs/libssh/patches/005-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..a5916a5
--- /dev/null
@@ -0,0 +1,1159 @@
+--- a/src/libcrypto.c
++++ b/src/libcrypto.c
+@@ -43,10 +43,12 @@
+ #include <openssl/hmac.h>
+ #include <openssl/opensslv.h>
+ #include <openssl/rand.h>
++#include "libcrypto-compat.h"
+ #ifdef HAVE_OPENSSL_AES_H
+ #define HAS_AES
+ #include <openssl/aes.h>
++#include <openssl/modes.h>
+ #endif
+ #ifdef HAVE_OPENSSL_BLOWFISH_H
+ #define HAS_BLOWFISH
+@@ -133,18 +135,20 @@ static const EVP_MD *nid_to_evpmd(int ni
+ void evp(int nid, unsigned char *digest, int len, unsigned char *hash, unsigned int *hlen)
+ {
+     const EVP_MD *evp_md = nid_to_evpmd(nid);
+-    EVP_MD_CTX md;
++    EVP_MD_CTX *md;
+-    EVP_DigestInit(&md, evp_md);
+-    EVP_DigestUpdate(&md, digest, len);
+-    EVP_DigestFinal(&md, hash, hlen);
++    md = EVP_MD_CTX_new();
++    EVP_DigestInit(md, evp_md);
++    EVP_DigestUpdate(md, digest, len);
++    EVP_DigestFinal(md, hash, hlen);
++    EVP_MD_CTX_free(md);
+ }
+ EVPCTX evp_init(int nid)
+ {
+     const EVP_MD *evp_md = nid_to_evpmd(nid);
+-    EVPCTX ctx = malloc(sizeof(EVP_MD_CTX));
++    EVPCTX ctx = EVP_MD_CTX_new();
+     if (ctx == NULL) {
+         return NULL;
+     }
+@@ -322,32 +326,33 @@ void ssh_mac_final(unsigned char *md, ss
+ HMACCTX hmac_init(const void *key, int len, enum ssh_hmac_e type) {
+   HMACCTX ctx = NULL;
+-  ctx = malloc(sizeof(*ctx));
++  ctx = HMAC_CTX_new();
+   if (ctx == NULL) {
+     return NULL;
+   }
+ #ifndef OLD_CRYPTO
+-  HMAC_CTX_init(ctx); // openssl 0.9.7 requires it.
++  HMAC_CTX_reset(ctx); // openssl 0.9.7 requires it.
+ #endif
+   switch(type) {
+     case SSH_HMAC_SHA1:
+-      HMAC_Init(ctx, key, len, EVP_sha1());
++      HMAC_Init_ex(ctx, key, len, EVP_sha1(), NULL);
+       break;
+     case SSH_HMAC_SHA256:
+-      HMAC_Init(ctx, key, len, EVP_sha256());
++      HMAC_Init_ex(ctx, key, len, EVP_sha256(), NULL);
+       break;
+     case SSH_HMAC_SHA384:
+-      HMAC_Init(ctx, key, len, EVP_sha384());
++      HMAC_Init_ex(ctx, key, len, EVP_sha384(), NULL);
+       break;
+     case SSH_HMAC_SHA512:
+-      HMAC_Init(ctx, key, len, EVP_sha512());
++      HMAC_Init_ex(ctx, key, len, EVP_sha512(), NULL);
+       break;
+     case SSH_HMAC_MD5:
+-      HMAC_Init(ctx, key, len, EVP_md5());
++      HMAC_Init_ex(ctx, key, len, EVP_md5(), NULL);
+       break;
+     default:
++      HMAC_CTX_free(ctx);
+       SAFE_FREE(ctx);
+       ctx = NULL;
+   }
+@@ -363,7 +368,8 @@ void hmac_final(HMACCTX ctx, unsigned ch
+   HMAC_Final(ctx,hashmacbuf,len);
+ #ifndef OLD_CRYPTO
+-  HMAC_CTX_cleanup(ctx);
++  HMAC_CTX_free(ctx);
++  ctx = NULL;
+ #else
+   HMAC_cleanup(ctx);
+ #endif
+@@ -455,7 +461,11 @@ static void aes_ctr128_encrypt(struct ss
+    * Same for num, which is being used to store the current offset in blocksize in CTR
+    * function.
+    */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+   AES_ctr128_encrypt(in, out, len, cipher->key, cipher->IV, tmp_buffer, &num);
++#else
++  CRYPTO_ctr128_encrypt(in, out, len, cipher->key, cipher->IV, tmp_buffer, &num, (block128_f)AES_encrypt);
++#endif
+ }
+ #endif /* BROKEN_AES_CTR */
+ #endif /* HAS_AES */
+--- a/src/pki_crypto.c
++++ b/src/pki_crypto.c
+@@ -31,6 +31,7 @@
+ #include <openssl/dsa.h>
+ #include <openssl/err.h>
+ #include <openssl/rsa.h>
++#include "libcrypto-compat.h"
+ #ifdef HAVE_OPENSSL_EC_H
+ #include <openssl/ec.h>
+@@ -230,7 +231,10 @@ ssh_key pki_key_dup(const ssh_key key, i
+     }
+     switch (key->type) {
+-    case SSH_KEYTYPE_DSS:
++    case SSH_KEYTYPE_DSS: {
++        const BIGNUM *p = NULL, *q = NULL, *g = NULL,
++          *pub_key = NULL, *priv_key = NULL;
++        BIGNUM *np, *nq, *ng, *npub_key, *npriv_key;
+         new->dsa = DSA_new();
+         if (new->dsa == NULL) {
+             goto fail;
+@@ -243,36 +247,54 @@ ssh_key pki_key_dup(const ssh_key key, i
+          * pub_key  = public key y = g^x
+          * priv_key = private key x
+          */
+-        new->dsa->p = BN_dup(key->dsa->p);
+-        if (new->dsa->p == NULL) {
++        DSA_get0_pqg(key->dsa, &p, &q, &g);
++        np = BN_dup(p);
++        nq = BN_dup(q);
++        ng = BN_dup(g);
++        if (np == NULL || nq == NULL || ng == NULL) {
++            BN_free(np);
++            BN_free(nq);
++            BN_free(ng);
+             goto fail;
+         }
+-        new->dsa->q = BN_dup(key->dsa->q);
+-        if (new->dsa->q == NULL) {
++        rc = DSA_set0_pqg(new->dsa, np, nq, ng);
++        if (rc == 0) {
++            BN_free(np);
++            BN_free(nq);
++            BN_free(ng);
+             goto fail;
+         }
+-        new->dsa->g = BN_dup(key->dsa->g);
+-        if (new->dsa->g == NULL) {
++        DSA_get0_key(key->dsa, &pub_key, &priv_key);
++        npub_key = BN_dup(pub_key);
++        if (npub_key == NULL) {
+             goto fail;
+         }
+-        new->dsa->pub_key = BN_dup(key->dsa->pub_key);
+-        if (new->dsa->pub_key == NULL) {
++        rc = DSA_set0_key(new->dsa, npub_key, NULL);
++        if (rc == 0) {
+             goto fail;
+         }
+         if (!demote && (key->flags & SSH_KEY_FLAG_PRIVATE)) {
+-            new->dsa->priv_key = BN_dup(key->dsa->priv_key);
+-            if (new->dsa->priv_key == NULL) {
++            npriv_key = BN_dup(priv_key);
++            if (npriv_key == NULL) {
++                goto fail;
++            }
++
++            rc = DSA_set0_key(new->dsa, NULL, npriv_key);
++            if (rc == 0) {
+                 goto fail;
+             }
+         }
+         break;
++    }
+     case SSH_KEYTYPE_RSA:
+-    case SSH_KEYTYPE_RSA1:
++    case SSH_KEYTYPE_RSA1: {
++        const BIGNUM *n = NULL, *e = NULL, *d = NULL;
++        BIGNUM *nn, *ne, *nd;
+         new->rsa = RSA_new();
+         if (new->rsa == NULL) {
+             goto fail;
+@@ -288,62 +310,82 @@ ssh_key pki_key_dup(const ssh_key key, i
+          * dmq1 = d mod (q-1)
+          * iqmp = q^-1 mod p
+          */
+-        new->rsa->n = BN_dup(key->rsa->n);
+-        if (new->rsa->n == NULL) {
++        RSA_get0_key(key->rsa, &n, &e, &d);
++        nn = BN_dup(n);
++        ne = BN_dup(e);
++        if (nn == NULL || ne == NULL) {
++            BN_free(nn);
++            BN_free(ne);
+             goto fail;
+         }
+-        new->rsa->e = BN_dup(key->rsa->e);
+-        if (new->rsa->e == NULL) {
++        rc = RSA_set0_key(new->rsa, nn, ne, NULL);
++        if (rc == 0) {
++            BN_free(nn);
++            BN_free(ne);
+             goto fail;
+         }
+         if (!demote && (key->flags & SSH_KEY_FLAG_PRIVATE)) {
+-            new->rsa->d = BN_dup(key->rsa->d);
+-            if (new->rsa->d == NULL) {
++            const BIGNUM *p = NULL, *q = NULL, *dmp1 = NULL,
++              *dmq1 = NULL, *iqmp = NULL;
++            BIGNUM *np, *nq, *ndmp1, *ndmq1, *niqmp;
++
++            nd = BN_dup(d);
++            if (nd == NULL) {
++                goto fail;
++            }
++
++            rc = RSA_set0_key(new->rsa, NULL, NULL, nd);
++            if (rc == 0) {
+                 goto fail;
+             }
+             /* p, q, dmp1, dmq1 and iqmp may be NULL in private keys, but the
+              * RSA operations are much faster when these values are available.
+              */
+-            if (key->rsa->p != NULL) {
+-                new->rsa->p = BN_dup(key->rsa->p);
+-                if (new->rsa->p == NULL) {
++            RSA_get0_factors(key->rsa, &p, &q);
++            if (p != NULL && q != NULL) { /* need to set both of them */
++                np = BN_dup(p);
++                nq = BN_dup(q);
++                if (np == NULL || nq == NULL) {
++                    BN_free(np);
++                    BN_free(nq);
+                     goto fail;
+                 }
+-            }
+-            if (key->rsa->q != NULL) {
+-                new->rsa->q = BN_dup(key->rsa->q);
+-                if (new->rsa->q == NULL) {
++                rc = RSA_set0_factors(new->rsa, np, nq);
++                if (rc == 0) {
++                    BN_free(np);
++                    BN_free(nq);
+                     goto fail;
+                 }
+             }
+-            if (key->rsa->dmp1 != NULL) {
+-                new->rsa->dmp1 = BN_dup(key->rsa->dmp1);
+-                if (new->rsa->dmp1 == NULL) {
++            RSA_get0_crt_params(key->rsa, &dmp1, &dmq1, &iqmp);
++            if (dmp1 != NULL || dmq1 != NULL || iqmp != NULL) {
++                ndmp1 = BN_dup(dmp1);
++                ndmq1 = BN_dup(dmq1);
++                niqmp = BN_dup(iqmp);
++                if (ndmp1 == NULL || ndmq1 == NULL || niqmp == NULL) {
++                    BN_free(ndmp1);
++                    BN_free(ndmq1);
++                    BN_free(niqmp);
+                     goto fail;
+                 }
+-            }
+-            if (key->rsa->dmq1 != NULL) {
+-                new->rsa->dmq1 = BN_dup(key->rsa->dmq1);
+-                if (new->rsa->dmq1 == NULL) {
+-                    goto fail;
+-                }
+-            }
+-
+-            if (key->rsa->iqmp != NULL) {
+-                new->rsa->iqmp = BN_dup(key->rsa->iqmp);
+-                if (new->rsa->iqmp == NULL) {
++                rc =  RSA_set0_crt_params(new->rsa, ndmp1, ndmq1, niqmp);
++                if (rc == 0) {
++                    BN_free(ndmp1);
++                    BN_free(ndmq1);
++                    BN_free(niqmp);
+                     goto fail;
+                 }
+             }
+         }
+         break;
++    }
+     case SSH_KEYTYPE_ECDSA:
+ #ifdef HAVE_OPENSSL_ECC
+         new->ecdsa_nid = key->ecdsa_nid;
+@@ -409,11 +451,30 @@ int pki_key_generate_rsa(ssh_key key, in
+ int pki_key_generate_dss(ssh_key key, int parameter){
+     int rc;
++#if OPENSSL_VERSION_NUMBER > 0x10100000L
++    key->dsa = DSA_new();
++    if (key->dsa == NULL) {
++        return SSH_ERROR;
++    }
++    rc = DSA_generate_parameters_ex(key->dsa,
++                                    parameter,
++                                    NULL,  /* seed */
++                                    0,     /* seed_len */
++                                    NULL,  /* counter_ret */
++                                    NULL,  /* h_ret */
++                                    NULL); /* cb */
++    if (rc != 1) {
++        DSA_free(key->dsa);
++        key->dsa = NULL;
++        return SSH_ERROR;
++    }
++#else
+     key->dsa = DSA_generate_parameters(parameter, NULL, 0, NULL, NULL,
+             NULL, NULL);
+     if(key->dsa == NULL){
+         return SSH_ERROR;
+     }
++#endif
+     rc = DSA_generate_key(key->dsa);
+     if (rc != 1){
+         DSA_free(key->dsa);
+@@ -466,51 +527,64 @@ int pki_key_compare(const ssh_key k1,
+                     enum ssh_keycmp_e what)
+ {
+     switch (k1->type) {
+-        case SSH_KEYTYPE_DSS:
++        case SSH_KEYTYPE_DSS: {
++            const BIGNUM *p1, *p2, *q1, *q2, *g1, *g2,
++                *pub_key1, *pub_key2, *priv_key1, *priv_key2;
+             if (DSA_size(k1->dsa) != DSA_size(k2->dsa)) {
+                 return 1;
+             }
+-            if (bignum_cmp(k1->dsa->p, k2->dsa->p) != 0) {
++            DSA_get0_pqg(k1->dsa, &p1, &q1, &g1);
++            DSA_get0_pqg(k2->dsa, &p2, &q2, &g2);
++            if (bignum_cmp(p1, p2) != 0) {
+                 return 1;
+             }
+-            if (bignum_cmp(k1->dsa->q, k2->dsa->q) != 0) {
++            if (bignum_cmp(q1, q2) != 0) {
+                 return 1;
+             }
+-            if (bignum_cmp(k1->dsa->g, k2->dsa->g) != 0) {
++            if (bignum_cmp(g1, g2) != 0) {
+                 return 1;
+             }
+-            if (bignum_cmp(k1->dsa->pub_key, k2->dsa->pub_key) != 0) {
++            DSA_get0_key(k1->dsa, &pub_key1, &priv_key1);
++            DSA_get0_key(k2->dsa, &pub_key2, &priv_key2);
++            if (bignum_cmp(pub_key1, pub_key2) != 0) {
+                 return 1;
+             }
+             if (what == SSH_KEY_CMP_PRIVATE) {
+-                if (bignum_cmp(k1->dsa->priv_key, k2->dsa->priv_key) != 0) {
++                if (bignum_cmp(priv_key1, priv_key2) != 0) {
+                     return 1;
+                 }
+             }
+             break;
++        }
+         case SSH_KEYTYPE_RSA:
+-        case SSH_KEYTYPE_RSA1:
++        case SSH_KEYTYPE_RSA1: {
++            const BIGNUM *e1, *e2, *n1, *n2, *p1, *p2, *q1, *q2;
+             if (RSA_size(k1->rsa) != RSA_size(k2->rsa)) {
+                 return 1;
+             }
+-            if (bignum_cmp(k1->rsa->e, k2->rsa->e) != 0) {
++            RSA_get0_key(k1->rsa, &n1, &e1, NULL);
++            RSA_get0_key(k2->rsa, &n2, &e2, NULL);
++            if (bignum_cmp(e1, e2) != 0) {
+                 return 1;
+             }
+-            if (bignum_cmp(k1->rsa->n, k2->rsa->n) != 0) {
++            if (bignum_cmp(n1, n2) != 0) {
+                 return 1;
+             }
+             if (what == SSH_KEY_CMP_PRIVATE) {
+-                if (bignum_cmp(k1->rsa->p, k2->rsa->p) != 0) {
++                RSA_get0_factors(k1->rsa, &p1, &q1);
++                RSA_get0_factors(k2->rsa, &p2, &q2);
++                if (bignum_cmp(p1, p2) != 0) {
+                     return 1;
+                 }
+-                if (bignum_cmp(k1->rsa->q, k2->rsa->q) != 0) {
++                if (bignum_cmp(q1, q2) != 0) {
+                     return 1;
+                 }
+             }
+             break;
++        }
+         case SSH_KEYTYPE_ECDSA:
+ #ifdef HAVE_OPENSSL_ECC
+             {
+@@ -586,7 +660,7 @@ ssh_string pki_private_key_to_pem(const
+             } else {
+                 rc = PEM_write_bio_DSAPrivateKey(mem,
+                                                  key->dsa,
+-                                                 NULL, /* cipher */
++                                                 EVP_aes_128_cbc(),
+                                                  NULL, /* kstr */
+                                                  0, /* klen */
+                                                  NULL, /* auth_fn */
+@@ -611,7 +685,7 @@ ssh_string pki_private_key_to_pem(const
+             } else {
+                 rc = PEM_write_bio_RSAPrivateKey(mem,
+                                                  key->rsa,
+-                                                 NULL, /* cipher */
++                                                 EVP_aes_128_cbc(),
+                                                  NULL, /* kstr */
+                                                  0, /* klen */
+                                                  NULL, /* auth_fn */
+@@ -621,8 +695,8 @@ ssh_string pki_private_key_to_pem(const
+                 goto err;
+             }
+             break;
+-        case SSH_KEYTYPE_ECDSA:
+ #ifdef HAVE_ECC
++        case SSH_KEYTYPE_ECDSA:
+             if (passphrase == NULL) {
+                 struct pem_get_password_struct pgp = { auth_fn, auth_data };
+@@ -636,7 +710,7 @@ ssh_string pki_private_key_to_pem(const
+             } else {
+                 rc = PEM_write_bio_ECPrivateKey(mem,
+                                                 key->ecdsa,
+-                                                NULL, /* cipher */
++                                                EVP_aes_128_cbc(),
+                                                 NULL, /* kstr */
+                                                 0, /* klen */
+                                                 NULL, /* auth_fn */
+@@ -819,43 +893,65 @@ int pki_pubkey_build_dss(ssh_key key,
+                          ssh_string q,
+                          ssh_string g,
+                          ssh_string pubkey) {
++    int rc;
++    BIGNUM *bp, *bq, *bg, *bpub_key;
++
+     key->dsa = DSA_new();
+     if (key->dsa == NULL) {
+         return SSH_ERROR;
+     }
+-    key->dsa->p = make_string_bn(p);
+-    key->dsa->q = make_string_bn(q);
+-    key->dsa->g = make_string_bn(g);
+-    key->dsa->pub_key = make_string_bn(pubkey);
+-    if (key->dsa->p == NULL ||
+-        key->dsa->q == NULL ||
+-        key->dsa->g == NULL ||
+-        key->dsa->pub_key == NULL) {
+-        DSA_free(key->dsa);
+-        return SSH_ERROR;
++    bp = make_string_bn(p);
++    bq = make_string_bn(q);
++    bg = make_string_bn(g);
++    bpub_key = make_string_bn(pubkey);
++    if (bp == NULL || bq == NULL ||
++        bg == NULL || bpub_key == NULL) {
++        goto fail;
++    }
++
++    rc = DSA_set0_pqg(key->dsa, bp, bq, bg);
++    if (rc == 0) {
++        goto fail;
++    }
++
++    rc = DSA_set0_key(key->dsa, bpub_key, NULL);
++    if (rc == 0) {
++        goto fail;
+     }
+     return SSH_OK;
++fail:
++    DSA_free(key->dsa);
++    return SSH_ERROR;
+ }
+ int pki_pubkey_build_rsa(ssh_key key,
+                          ssh_string e,
+                          ssh_string n) {
++    int rc;
++    BIGNUM *be, *bn;
++
+     key->rsa = RSA_new();
+     if (key->rsa == NULL) {
+         return SSH_ERROR;
+     }
+-    key->rsa->e = make_string_bn(e);
+-    key->rsa->n = make_string_bn(n);
+-    if (key->rsa->e == NULL ||
+-        key->rsa->n == NULL) {
+-        RSA_free(key->rsa);
+-        return SSH_ERROR;
++    be = make_string_bn(e);
++    bn = make_string_bn(n);
++    if (be == NULL || bn == NULL) {
++        goto fail;
++    }
++
++    rc = RSA_set0_key(key->rsa, bn, be, NULL);
++    if (rc == 0) {
++        goto fail;
+     }
+     return SSH_OK;
++fail:
++    RSA_free(key->rsa);
++    return SSH_ERROR;
+ }
+ ssh_string pki_publickey_to_blob(const ssh_key key)
+@@ -889,23 +985,26 @@ ssh_string pki_publickey_to_blob(const s
+     }
+     switch (key->type) {
+-        case SSH_KEYTYPE_DSS:
+-            p = make_bignum_string(key->dsa->p);
++        case SSH_KEYTYPE_DSS: {
++            const BIGNUM *bp, *bq, *bg, *bpub_key;
++            DSA_get0_pqg(key->dsa, &bp, &bq, &bg);
++            p = make_bignum_string((BIGNUM *)bp);
+             if (p == NULL) {
+                 goto fail;
+             }
+-            q = make_bignum_string(key->dsa->q);
++            q = make_bignum_string((BIGNUM *)bq);
+             if (q == NULL) {
+                 goto fail;
+             }
+-            g = make_bignum_string(key->dsa->g);
++            g = make_bignum_string((BIGNUM *)bg);
+             if (g == NULL) {
+                 goto fail;
+             }
+-            n = make_bignum_string(key->dsa->pub_key);
++            DSA_get0_key(key->dsa, &bpub_key, NULL);
++            n = make_bignum_string((BIGNUM *)bpub_key);
+             if (n == NULL) {
+                 goto fail;
+             }
+@@ -937,14 +1036,17 @@ ssh_string pki_publickey_to_blob(const s
+             n = NULL;
+             break;
++        }
+         case SSH_KEYTYPE_RSA:
+-        case SSH_KEYTYPE_RSA1:
+-            e = make_bignum_string(key->rsa->e);
++        case SSH_KEYTYPE_RSA1: {
++            const BIGNUM *be, *bn;
++            RSA_get0_key(key->rsa, &bn, &be, NULL);
++            e = make_bignum_string((BIGNUM *)be);
+             if (e == NULL) {
+                 goto fail;
+             }
+-            n = make_bignum_string(key->rsa->n);
++            n = make_bignum_string((BIGNUM *)bn);
+             if (n == NULL) {
+                 goto fail;
+             }
+@@ -964,6 +1066,7 @@ ssh_string pki_publickey_to_blob(const s
+             n = NULL;
+             break;
++        }
+         case SSH_KEYTYPE_ECDSA:
+ #ifdef HAVE_OPENSSL_ECC
+             rc = ssh_buffer_reinit(buffer);
+@@ -1065,13 +1168,15 @@ int pki_export_pubkey_rsa1(const ssh_key
+     char *e;
+     char *n;
+     int rsa_size = RSA_size(key->rsa);
++    const BIGNUM *be, *bn;
+-    e = bignum_bn2dec(key->rsa->e);
++    RSA_get0_key(key->rsa, &bn, &be, NULL);
++    e = bignum_bn2dec(be);
+     if (e == NULL) {
+         return SSH_ERROR;
+     }
+-    n = bignum_bn2dec(key->rsa->n);
++    n = bignum_bn2dec(bn);
+     if (n == NULL) {
+         OPENSSL_free(e);
+         return SSH_ERROR;
+@@ -1136,6 +1241,7 @@ static ssh_string pki_dsa_signature_to_b
+ {
+     char buffer[40] = { 0 };
+     ssh_string sig_blob = NULL;
++    const BIGNUM *pr, *ps;
+     ssh_string r;
+     int r_len, r_offset_in, r_offset_out;
+@@ -1143,12 +1249,13 @@ static ssh_string pki_dsa_signature_to_b
+     ssh_string s;
+     int s_len, s_offset_in, s_offset_out;
+-    r = make_bignum_string(sig->dsa_sig->r);
++    DSA_SIG_get0(sig->dsa_sig, &pr, &ps);
++    r = make_bignum_string((BIGNUM *)pr);
+     if (r == NULL) {
+         return NULL;
+     }
+-    s = make_bignum_string(sig->dsa_sig->s);
++    s = make_bignum_string((BIGNUM *)ps);
+     if (s == NULL) {
+         ssh_string_free(r);
+         return NULL;
+@@ -1201,13 +1308,15 @@ ssh_string pki_signature_to_blob(const s
+             ssh_string s;
+             ssh_buffer b;
+             int rc;
++            const BIGNUM *pr, *ps;
+             b = ssh_buffer_new();
+             if (b == NULL) {
+                 return NULL;
+             }
+-            r = make_bignum_string(sig->ecdsa_sig->r);
++            ECDSA_SIG_get0(sig->ecdsa_sig, &pr, &ps);
++            r = make_bignum_string((BIGNUM *)pr);
+             if (r == NULL) {
+                 ssh_buffer_free(b);
+                 return NULL;
+@@ -1219,7 +1328,7 @@ ssh_string pki_signature_to_blob(const s
+                 return NULL;
+             }
+-            s = make_bignum_string(sig->ecdsa_sig->s);
++            s = make_bignum_string((BIGNUM *)ps);
+             if (s == NULL) {
+                 ssh_buffer_free(b);
+                 return NULL;
+@@ -1324,6 +1433,7 @@ ssh_signature pki_signature_from_blob(co
+     ssh_string s;
+     size_t len;
+     int rc;
++    BIGNUM *pr = NULL, *ps = NULL;
+     sig = ssh_signature_new();
+     if (sig == NULL) {
+@@ -1363,9 +1473,9 @@ ssh_signature pki_signature_from_blob(co
+             }
+             ssh_string_fill(r, ssh_string_data(sig_blob), 20);
+-            sig->dsa_sig->r = make_string_bn(r);
++            pr = make_string_bn(r);
+             ssh_string_free(r);
+-            if (sig->dsa_sig->r == NULL) {
++            if (pr == NULL) {
+                 ssh_signature_free(sig);
+                 return NULL;
+             }
+@@ -1377,9 +1487,15 @@ ssh_signature pki_signature_from_blob(co
+             }
+             ssh_string_fill(s, (char *)ssh_string_data(sig_blob) + 20, 20);
+-            sig->dsa_sig->s = make_string_bn(s);
++            ps = make_string_bn(s);
+             ssh_string_free(s);
+-            if (sig->dsa_sig->s == NULL) {
++            if (ps == NULL) {
++                ssh_signature_free(sig);
++                return NULL;
++            }
++
++            rc = DSA_SIG_set0(sig->dsa_sig, pr, ps);
++            if (rc == 0) {
+                 ssh_signature_free(sig);
+                 return NULL;
+             }
+@@ -1427,17 +1543,17 @@ ssh_signature pki_signature_from_blob(co
+                 ssh_print_hexa("r", ssh_string_data(r), ssh_string_len(r));
+ #endif
+-                make_string_bn_inplace(r, sig->ecdsa_sig->r);
++                pr = make_string_bn(r);
+                 ssh_string_burn(r);
+                 ssh_string_free(r);
+-                if (sig->ecdsa_sig->r == NULL) {
++                if (pr == NULL) {
+                     ssh_buffer_free(b);
+                     ssh_signature_free(sig);
+                     return NULL;
+                 }
+                 s = buffer_get_ssh_string(b);
+-                rlen = buffer_get_rest_len(b);
++                rlen = buffer_get_len(b);
+                 ssh_buffer_free(b);
+                 if (s == NULL) {
+                     ssh_signature_free(sig);
+@@ -1448,10 +1564,16 @@ ssh_signature pki_signature_from_blob(co
+                 ssh_print_hexa("s", ssh_string_data(s), ssh_string_len(s));
+ #endif
+-                make_string_bn_inplace(s, sig->ecdsa_sig->s);
++                ps = make_string_bn(s);
+                 ssh_string_burn(s);
+                 ssh_string_free(s);
+-                if (sig->ecdsa_sig->s == NULL) {
++                if (ps == NULL) {
++                    ssh_signature_free(sig);
++                    return NULL;
++                }
++
++                rc = ECDSA_SIG_set0(sig->ecdsa_sig, pr, ps);
++                if (rc == 0) {
+                     ssh_signature_free(sig);
+                     return NULL;
+                 }
+@@ -1578,8 +1700,12 @@ ssh_signature pki_do_sign(const ssh_key
+             }
+ #ifdef DEBUG_CRYPTO
+-            ssh_print_bignum("r", sig->dsa_sig->r);
+-            ssh_print_bignum("s", sig->dsa_sig->s);
++            {
++                const BIGNUM *pr, *ps;
++                DSA_SIG_get0(sig->dsa_sig, &pr, &ps);
++                ssh_print_bignum("r", (BIGNUM *) pr);
++                ssh_print_bignum("s", (BIGNUM *) ps);
++            }
+ #endif
+             break;
+@@ -1601,8 +1727,12 @@ ssh_signature pki_do_sign(const ssh_key
+             }
+ # ifdef DEBUG_CRYPTO
+-            ssh_print_bignum("r", sig->ecdsa_sig->r);
+-            ssh_print_bignum("s", sig->ecdsa_sig->s);
++            {
++                const BIGNUM *pr, *ps;
++                ECDSA_SIG_get0(sig->ecdsa_sig, &pr, &ps);
++                ssh_print_bignum("r", (BIGNUM *) pr);
++                ssh_print_bignum("s", (BIGNUM *) ps);
++            }
+ # endif /* DEBUG_CRYPTO */
+             break;
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -164,6 +164,9 @@ else (WITH_GCRYPT)
+         ${libssh_SRCS}
+         pki_crypto.c
+        )
++    if(OPENSSL_VERSION VERSION_LESS "1.1.0")
++        set(libssh_SRCS ${libssh_SRCS} libcrypto-compat.c)
++    endif()
+ endif (WITH_GCRYPT)
+ if (WITH_SFTP)
+--- /dev/null
++++ b/src/libcrypto-compat.c
+@@ -0,0 +1,334 @@
++/*
++ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
++ *
++ * Licensed under the OpenSSL license (the "License").  You may not use
++ * this file except in compliance with the License.  You can obtain a copy
++ * in the file LICENSE in the source distribution or at
++ * https://www.openssl.org/source/license.html
++ */
++
++#include "config.h"
++
++#include <string.h>
++#include <openssl/engine.h>
++#include "libcrypto-compat.h"
++
++static void *OPENSSL_zalloc(size_t num)
++{
++    void *ret = OPENSSL_malloc(num);
++
++    if (ret != NULL)
++        memset(ret, 0, num);
++    return ret;
++}
++
++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
++{
++    /* If the fields n and e in r are NULL, the corresponding input
++     * parameters MUST be non-NULL for n and e.  d may be
++     * left NULL (in case only the public key is used).
++     */
++    if ((r->n == NULL && n == NULL)
++        || (r->e == NULL && e == NULL))
++        return 0;
++
++    if (n != NULL) {
++        BN_free(r->n);
++        r->n = n;
++    }
++    if (e != NULL) {
++        BN_free(r->e);
++        r->e = e;
++    }
++    if (d != NULL) {
++        BN_free(r->d);
++        r->d = d;
++    }
++
++    return 1;
++}
++
++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
++{
++    /* If the fields p and q in r are NULL, the corresponding input
++     * parameters MUST be non-NULL.
++     */
++    if ((r->p == NULL && p == NULL)
++        || (r->q == NULL && q == NULL))
++        return 0;
++
++    if (p != NULL) {
++        BN_free(r->p);
++        r->p = p;
++    }
++    if (q != NULL) {
++        BN_free(r->q);
++        r->q = q;
++    }
++
++    return 1;
++}
++
++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
++{
++    /* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input
++     * parameters MUST be non-NULL.
++     */
++    if ((r->dmp1 == NULL && dmp1 == NULL)
++        || (r->dmq1 == NULL && dmq1 == NULL)
++        || (r->iqmp == NULL && iqmp == NULL))
++        return 0;
++
++    if (dmp1 != NULL) {
++        BN_free(r->dmp1);
++        r->dmp1 = dmp1;
++    }
++    if (dmq1 != NULL) {
++        BN_free(r->dmq1);
++        r->dmq1 = dmq1;
++    }
++    if (iqmp != NULL) {
++        BN_free(r->iqmp);
++        r->iqmp = iqmp;
++    }
++
++    return 1;
++}
++
++void RSA_get0_key(const RSA *r,
++                  const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
++{
++    if (n != NULL)
++        *n = r->n;
++    if (e != NULL)
++        *e = r->e;
++    if (d != NULL)
++        *d = r->d;
++}
++
++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
++{
++    if (p != NULL)
++        *p = r->p;
++    if (q != NULL)
++        *q = r->q;
++}
++
++void RSA_get0_crt_params(const RSA *r,
++                         const BIGNUM **dmp1, const BIGNUM **dmq1,
++                         const BIGNUM **iqmp)
++{
++    if (dmp1 != NULL)
++        *dmp1 = r->dmp1;
++    if (dmq1 != NULL)
++        *dmq1 = r->dmq1;
++    if (iqmp != NULL)
++        *iqmp = r->iqmp;
++}
++
++void DSA_get0_pqg(const DSA *d,
++                  const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
++{
++    if (p != NULL)
++        *p = d->p;
++    if (q != NULL)
++        *q = d->q;
++    if (g != NULL)
++        *g = d->g;
++}
++
++int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
++{
++    /* If the fields p, q and g in d are NULL, the corresponding input
++     * parameters MUST be non-NULL.
++     */
++    if ((d->p == NULL && p == NULL)
++        || (d->q == NULL && q == NULL)
++        || (d->g == NULL && g == NULL))
++        return 0;
++
++    if (p != NULL) {
++        BN_free(d->p);
++        d->p = p;
++    }
++    if (q != NULL) {
++        BN_free(d->q);
++        d->q = q;
++    }
++    if (g != NULL) {
++        BN_free(d->g);
++        d->g = g;
++    }
++
++    return 1;
++}
++
++void DSA_get0_key(const DSA *d,
++                  const BIGNUM **pub_key, const BIGNUM **priv_key)
++{
++    if (pub_key != NULL)
++        *pub_key = d->pub_key;
++    if (priv_key != NULL)
++        *priv_key = d->priv_key;
++}
++
++int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
++{
++    /* If the field pub_key in d is NULL, the corresponding input
++     * parameters MUST be non-NULL.  The priv_key field may
++     * be left NULL.
++     */
++    if (d->pub_key == NULL && pub_key == NULL)
++        return 0;
++
++    if (pub_key != NULL) {
++        BN_free(d->pub_key);
++        d->pub_key = pub_key;
++    }
++    if (priv_key != NULL) {
++        BN_free(d->priv_key);
++        d->priv_key = priv_key;
++    }
++
++    return 1;
++}
++
++void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
++{
++    if (pr != NULL)
++        *pr = sig->r;
++    if (ps != NULL)
++        *ps = sig->s;
++}
++
++int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
++{
++    if (r == NULL || s == NULL)
++        return 0;
++    BN_clear_free(sig->r);
++    BN_clear_free(sig->s);
++    sig->r = r;
++    sig->s = s;
++    return 1;
++}
++
++void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
++{
++    if (pr != NULL)
++        *pr = sig->r;
++    if (ps != NULL)
++        *ps = sig->s;
++}
++
++int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
++{
++    if (r == NULL || s == NULL)
++        return 0;
++    BN_clear_free(sig->r);
++    BN_clear_free(sig->s);
++    sig->r = r;
++    sig->s = s;
++    return 1;
++}
++
++EVP_MD_CTX *EVP_MD_CTX_new(void)
++{
++    return OPENSSL_zalloc(sizeof(EVP_MD_CTX));
++}
++
++static void OPENSSL_clear_free(void *str, size_t num)
++{
++    if (str == NULL)
++        return;
++    if (num)
++        OPENSSL_cleanse(str, num);
++    OPENSSL_free(str);
++}
++
++/* This call frees resources associated with the context */
++int EVP_MD_CTX_reset(EVP_MD_CTX *ctx)
++{
++    if (ctx == NULL)
++        return 1;
++
++    /*
++     * Don't assume ctx->md_data was cleaned in EVP_Digest_Final, because
++     * sometimes only copies of the context are ever finalised.
++     */
++    if (ctx->digest && ctx->digest->cleanup
++        && !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_CLEANED))
++        ctx->digest->cleanup(ctx);
++    if (ctx->digest && ctx->digest->ctx_size && ctx->md_data
++        && !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE)) {
++        OPENSSL_clear_free(ctx->md_data, ctx->digest->ctx_size);
++    }
++    EVP_PKEY_CTX_free(ctx->pctx);
++#ifndef OPENSSL_NO_ENGINE
++    ENGINE_finish(ctx->engine);
++#endif
++    OPENSSL_cleanse(ctx, sizeof(*ctx));
++
++    return 1;
++}
++
++void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
++{
++    EVP_MD_CTX_reset(ctx);
++    OPENSSL_free(ctx);
++}
++
++HMAC_CTX *HMAC_CTX_new(void)
++{
++    HMAC_CTX *ctx = OPENSSL_zalloc(sizeof(HMAC_CTX));
++
++    if (ctx != NULL) {
++        if (!HMAC_CTX_reset(ctx)) {
++            HMAC_CTX_free(ctx);
++            return NULL;
++        }
++    }
++    return ctx;
++}
++
++static void hmac_ctx_cleanup(HMAC_CTX *ctx)
++{
++    EVP_MD_CTX_reset(&ctx->i_ctx);
++    EVP_MD_CTX_reset(&ctx->o_ctx);
++    EVP_MD_CTX_reset(&ctx->md_ctx);
++    ctx->md = NULL;
++    ctx->key_length = 0;
++    OPENSSL_cleanse(ctx->key, sizeof(ctx->key));
++}
++
++void HMAC_CTX_free(HMAC_CTX *ctx)
++{
++    if (ctx != NULL) {
++        hmac_ctx_cleanup(ctx);
++#if OPENSSL_VERSION_NUMBER > 0x10100000L
++        EVP_MD_CTX_free(&ctx->i_ctx);
++        EVP_MD_CTX_free(&ctx->o_ctx);
++        EVP_MD_CTX_free(&ctx->md_ctx);
++#endif
++        OPENSSL_free(ctx);
++    }
++}
++
++int HMAC_CTX_reset(HMAC_CTX *ctx)
++{
++    HMAC_CTX_init(ctx);
++    return 1;
++}
++
++#ifndef HAVE_OPENSSL_EVP_CIPHER_CTX_NEW
++EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void)
++{
++    return OPENSSL_zalloc(sizeof(EVP_CIPHER_CTX));
++}
++
++void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
++{
++    /* EVP_CIPHER_CTX_reset(ctx); alias */
++    EVP_CIPHER_CTX_init(ctx);
++    OPENSSL_free(ctx);
++}
++#endif
+--- /dev/null
++++ b/src/libcrypto-compat.h
+@@ -0,0 +1,42 @@
++#ifndef LIBCRYPTO_COMPAT_H
++#define LIBCRYPTO_COMPAT_H
++
++#include <openssl/opensslv.h>
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++#include <openssl/rsa.h>
++#include <openssl/dsa.h>
++#include <openssl/ecdsa.h>
++#include <openssl/dh.h>
++#include <openssl/evp.h>
++#include <openssl/hmac.h>
++
++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp);
++void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d);
++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q);
++void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp);
++
++void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
++int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g);
++void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key);
++int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key);
++
++void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps);
++int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s);
++
++void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps);
++int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s);
++
++int EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
++EVP_MD_CTX *EVP_MD_CTX_new(void);
++void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
++
++HMAC_CTX *HMAC_CTX_new(void);
++int HMAC_CTX_reset(HMAC_CTX *ctx);
++void HMAC_CTX_free(HMAC_CTX *ctx);
++
++#endif /* OPENSSL_VERSION_NUMBER */
++
++#endif /* LIBCRYPTO_COMPAT_H */
index ed2c03be5d8cbd6c2f1db093a96c25240c313836..091835f33b998d444328d60c48c361db265de3fa 100644 (file)
@@ -8,19 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libstrophe
-PKG_VERSION:=0.9.1
+PKG_VERSION:=0.9.2
 PKG_RELEASE=1
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Chih-Wei Chen <changeway@gmail.com>
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=https://github.com/strophe/libstrophe
-PKG_SOURCE_SUBDIR=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=https://codeload.github.com/strophe/libstrophe/tar.gz/$(PKG_VERSION)?
 PKG_SOURCE_VERSION:=9931ad4fa2aa7f204c608010eb2ebf84bcf7d542
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=6a499bcfc7c52db6765957ff38f48a344ad121ac0b665fd3d4adb7d8deadc427
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=158145bc1565a5fd0bbd7f57e3e15d768e58b8a460897ab5918a5a689d67ae6f
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
index 1908b55eaf8110845720617d01e9ecd5832cd7a5..ab4a0eb88ddf639e8dca4f60fd92131cf619386f 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=talloc
-PKG_VERSION:=2.1.11
+PKG_VERSION:=2.1.13
 MAJOR_VERSION:=2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://www.samba.org/ftp/talloc/
-PKG_HASH:=639eb35556a0af999123c4d883e79be05ff9f00ab4f9e4ac2e5775f9c5eeeed3
+PKG_SOURCE_URL:=https://www.samba.org/ftp/talloc
+PKG_HASH:=84f399dbf0ad97006a2b4953ea99452d033faac15aabfddd4ba61734764c6047
 
 PKG_MAINTAINER:=Lucile Quirion <lucile.quirion@savoirfairelinux.com>
 PKG_LICENSE:=LGPL-3.0+
index 672807155c7bdaf4dc35068b164c0e6bac46d860..8d0152166eb951e5baa23a4b4853991c8f75f4c1 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtasn1
-PKG_VERSION:=4.12
+PKG_VERSION:=4.13
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=6753da2e621257f33f5b051cc114d417e5206a0818fe0b1ecfd6153f70934753
+PKG_HASH:=7e528e8c317ddd156230c4e31d082cd13e7ddeb7a54824be82632209550c8cca
 PKG_LICENSE:=LGPLv2.1+
 PKG_LICENSE_FILES:=COPYING.LIB
 
index ae0444c528ccf8b065eda6f6b5e52a487ead8567..3f14101ddc734f5b108a5ac2b808d5f2ba5f55b4 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtorrent
 PKG_VERSION:=0.13.6-git-1
-PKG_RELEASE=$(PKG_SOURCE_VERSION)
+PKG_RELEASE=$(PKG_SOURCE_VERSION).1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/rakshasa/libtorrent.git
diff --git a/libs/libtorrent/patches/110-openssl-1.1.patch b/libs/libtorrent/patches/110-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..55d0cb9
--- /dev/null
@@ -0,0 +1,105 @@
+From 4607bbf78040789dee29266878ce109136b984ef Mon Sep 17 00:00:00 2001
+From: rakshasa <sundell.software@gmail.com>
+Date: Tue, 20 Dec 2016 19:51:02 +0900
+Subject: [PATCH] Added support for openssl 1.1.
+
+---
+ configure.ac                |  4 ++++
+ src/utils/diffie_hellman.cc | 36 ++++++++++++++++++++++++++++++++++--
+ 2 files changed, 38 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 65e34872..27e33570 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -69,12 +69,15 @@ AC_ARG_ENABLE(openssl,
+   [  --disable-openssl       Don't use OpenSSL's SHA1 implementation.],
+   [
+     if test "$enableval" = "yes"; then
++dnl move to scripts.
+       PKG_CHECK_MODULES(OPENSSL, libcrypto,
+         CXXFLAGS="$CXXFLAGS $OPENSSL_CFLAGS";
+         LIBS="$LIBS $OPENSSL_LIBS")
+       AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
+       AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
++      AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
++
+     else
+       AC_DEFINE(USE_NSS_SHA, 1, Using Mozilla's SHA1 implementation.)
+     fi
+@@ -85,6 +88,7 @@ AC_ARG_ENABLE(openssl,
+     AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
+     AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
++    AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
+   ]
+ )
+diff --git a/src/utils/diffie_hellman.cc b/src/utils/diffie_hellman.cc
+index aa653d45..7ec13165 100644
+--- a/src/utils/diffie_hellman.cc
++++ b/src/utils/diffie_hellman.cc
+@@ -54,11 +54,23 @@ DiffieHellman::DiffieHellman(const unsigned char *prime, int primeLength,
+   m_secret(NULL), m_size(0) {
+ #ifdef USE_OPENSSL
++
+   m_dh = DH_new();
++
++#ifdef USE_OPENSSL_1_1
++  BIGNUM * const dh_p = BN_bin2bn(prime, primeLength, NULL);
++  BIGNUM * const dh_g = BN_bin2bn(generator, generatorLength, NULL);
++
++  if (dh_p == NULL || dh_g == NULL ||
++      !DH_set0_pqg(m_dh, dh_p, NULL, dh_g))
++        throw internal_error("Could not generate Diffie-Hellman parameters");
++#else
+   m_dh->p = BN_bin2bn(prime, primeLength, NULL);
+   m_dh->g = BN_bin2bn(generator, generatorLength, NULL);
++#endif
+   DH_generate_key(m_dh);
++
+ #else
+   throw internal_error("Compiled without encryption support.");
+ #endif
+@@ -74,7 +86,19 @@ DiffieHellman::~DiffieHellman() {
+ bool
+ DiffieHellman::is_valid() const {
+ #ifdef USE_OPENSSL
++  if (m_dh == NULL)
++    return false;
++
++#ifdef USE_OPENSSL_1_1
++  const BIGNUM *pub_key;
++
++  DH_get0_key(m_dh, &pub_key, NULL);
++
++  return pub_key != NULL;
++#else
+   return m_dh != NULL && m_dh->pub_key != NULL;
++#endif
++
+ #else
+   return false;
+ #endif
+@@ -103,8 +127,16 @@ DiffieHellman::store_pub_key(unsigned char* dest, unsigned int length) {
+ #ifdef USE_OPENSSL
+   std::memset(dest, 0, length);
+-  if ((int)length >= BN_num_bytes(m_dh->pub_key))
+-    BN_bn2bin(m_dh->pub_key, dest + length - BN_num_bytes(m_dh->pub_key));
++  const BIGNUM *pub_key;
++
++#ifdef USE_OPENSSL_1_1
++  DH_get0_key(m_dh, &pub_key, NULL);
++#else
++  pub_key = m_dh->pub_key;
++#endif
++
++  if ((int)length >= BN_num_bytes(pub_key))
++    BN_bn2bin(pub_key, dest + length - BN_num_bytes(pub_key));
+ #endif
+ }
index 6a7555116454225af862a40a997bceb48b1d33ae..3958ac43b59130c067561eced876e94a08934036 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libuv
-PKG_VERSION:=1.19.2
+PKG_VERSION:=1.20.3
 PKG_RELEASE:=1
 
 PKG_LICENSE_FILES:=LICENSE
@@ -17,7 +17,7 @@ PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
 
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://dist.libuv.org/dist/v$(PKG_VERSION)/
-PKG_HASH:=7cbcf2017e7116cf9da8ec1c6a146d578536b1e479458438873c991f984a53d7
+PKG_HASH:=3bb7aad916c7a5fd0053dcb6adee49905360a2a160f4a59bc62dbe4370328579
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION)
 PKG_BUILD_PARALLEL:=1
index 4bb1b50ad7e1e706b30e32b491db2fb48817b36a..ebf2cf0eeeda113d1266be38d578f0753db5a55a 100755 (executable)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libuwsc
-PKG_VERSION:=2.0.2
+PKG_VERSION:=2.0.4
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_SOURCE_URL=https://github.com/zhaojh329/libuwsc.git
-PKG_MIRROR_HASH:=8f384a41aa9adf50fefa933a01b695d1bb6505af03d6c0cb3506283fc0229b34
+PKG_MIRROR_HASH:=91c5964088d6df591e10c40deffef0be47f5c06896fcf27a7afe83c8e49b1a74
 CMAKE_INSTALL:=1
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
index fcafa90df12fc71f5bfc0bbee719be2622943cac..b7025681f14de3708468ee50b1ad04e5e5e8f854 100644 (file)
@@ -8,14 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libwebsockets
-PKG_VERSION:=2.4.1
-PKG_RELEASE:=2
+PKG_VERSION:=3.0.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://codeload.github.com/warmcat/libwebsockets/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=29414be4f79f6abc0e6aadccd09a4da0f0c431e3b5691f496acd081ae6a8240c
-
+PKG_HASH:=a6b611c212c52f161f70556339fdaa199b7e9b6a167c4638e086d19db75d6290
 
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 
diff --git a/libs/libwebsockets/patches/001-CMakeLists-build-reproducible-by-default.patch b/libs/libwebsockets/patches/001-CMakeLists-build-reproducible-by-default.patch
deleted file mode 100644 (file)
index c36a81d..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-From d7b6c04aaf416344332e73f49fe457013e3ccf36 Mon Sep 17 00:00:00 2001
-From: Alexander Couzens <lynxis@fe80.eu>
-Date: Sun, 10 Dec 2017 00:54:06 +0100
-Subject: [PATCH] CMakeLists: build reproducible by default
-Merged-upstream: yes
-
-Using the build user and build hostname as part of the git hash breaks
-reproducible builds. Make this part optional, but build reproducible by
-default.
----
- CMakeLists.txt | 47 +++++++++++++++++++++++++++--------------------
- 1 file changed, 27 insertions(+), 20 deletions(-)
-
-Index: libwebsockets-2.4.0/CMakeLists.txt
-===================================================================
---- libwebsockets-2.4.0.orig/CMakeLists.txt
-+++ libwebsockets-2.4.0/CMakeLists.txt
-@@ -39,26 +39,32 @@ message(STATUS "CMAKE_TOOLCHAIN_FILE='${
- find_package(Git)
- if(GIT_EXECUTABLE)
-       execute_process(
--    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
--    COMMAND "${GIT_EXECUTABLE}" describe
--    OUTPUT_VARIABLE GIT_HASH
--    OUTPUT_STRIP_TRAILING_WHITESPACE
--    )
--      execute_process(
--    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
--    COMMAND "whoami"
--    OUTPUT_VARIABLE GIT_USER
--    OUTPUT_STRIP_TRAILING_WHITESPACE
--    )
--      execute_process(
--    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
--    COMMAND "hostname"
--    OUTPUT_VARIABLE GIT_HOST
--    OUTPUT_STRIP_TRAILING_WHITESPACE
--    )
--      string(REGEX REPLACE "([^\\])[\\]([^\\])" "\\1\\\\\\\\\\2" GIT_USER ${GIT_USER})
--    set(LWS_BUILD_HASH ${GIT_USER}@${GIT_HOST}-${GIT_HASH})
--    message("Git commit hash: ${LWS_BUILD_HASH}")
-+              WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-+              COMMAND "${GIT_EXECUTABLE}" describe
-+              OUTPUT_VARIABLE GIT_HASH
-+              OUTPUT_STRIP_TRAILING_WHITESPACE
-+              )
-+      set(LWS_BUILD_HASH ${GIT_HASH})
-+
-+      # appen the build user and hostname
-+      if(NOT LWS_REPRODUCIBLE)
-+              execute_process(
-+                      WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-+                      COMMAND "whoami"
-+                      OUTPUT_VARIABLE GIT_USER
-+                      OUTPUT_STRIP_TRAILING_WHITESPACE
-+                      )
-+              execute_process(
-+                      WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-+                      COMMAND "hostname"
-+                      OUTPUT_VARIABLE GIT_HOST
-+                      OUTPUT_STRIP_TRAILING_WHITESPACE
-+                      )
-+              string(REGEX REPLACE "([^\\])[\\]([^\\])" "\\1\\\\\\\\\\2" GIT_USER ${GIT_USER})
-+              set(LWS_BUILD_HASH ${GIT_USER}@${GIT_HOST}-${GIT_HASH})
-+      endif()
-+
-+      message("Git commit hash: ${LWS_BUILD_HASH}")
- endif()
- set(LWS_WITH_BUNDLED_ZLIB_DEFAULT OFF)
-@@ -121,6 +127,7 @@ option(LWS_AVOID_SIGPIPE_IGN "Android 7+
- option(LWS_WITH_STATS "Keep statistics of lws internal operations" OFF)
- option(LWS_WITH_SOCKS5 "Allow use of SOCKS5 proxy on client connections" OFF)
- option(LWS_WITH_PEER_LIMITS "Track peers and restrict resources a single peer can allocate" OFF)
-+option(LWS_REPRODUCIBLE "Build libwebsockets reproducible. It removes the build user and hostname from the build" ON)
- macro(confirm_command CMD NOCMD)
-       find_program (HAVE_CMD_${CMD} ${CMD} )
diff --git a/libs/libwebsockets/patches/020-fix-travis.patch b/libs/libwebsockets/patches/020-fix-travis.patch
new file mode 100644 (file)
index 0000000..b6e2875
--- /dev/null
@@ -0,0 +1,16 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b260969..ece281d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1050,9 +1050,9 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_C_COMPILER_ID
+     endif()
+     if (UNIX AND NOT LWS_WITH_ESP32)
+-          set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized -Werror ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
++          set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
+     else()
+-          set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized -Werror ${VISIBILITY_FLAG} ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
++          set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized ${VISIBILITY_FLAG} ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
+     endif()
+ endif ()
index ff28cd84d650787aa73a2986124e0a49772a4de8..4bbab5f95343c57da82a69b80c6f31dc6d87f7d2 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=x264
 PKG_VERSION:=snapshot-20180401-2245
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://download.videolan.org/x264/snapshots/
@@ -38,9 +38,9 @@ ifneq ($(CONFIG_SOFT_FLOAT)$(findstring $(call qstrip,$(CONFIG_CPU_TYPE)),$(CPU_
   CONFIGURE_ARGS += --disable-asm
 else
 ifneq ($(CONFIG_TARGET_x86),)
-ifeq ($(CONFIG_YASM),y)
-  CONFIGURE_VARS+= AS=yasm
-  MAKE_FLAGS+= AS=yasm
+ifeq ($(CONFIG_NASM),y)
+  CONFIGURE_VARS+= AS=nasm
+  MAKE_FLAGS+= AS=nasm
 else
   CONFIGURE_VARS+= AS= 
   MAKE_FLAGS+= AS= 
index 902951967def2d44f9743661b171c1ab630400ad..c0f8aad1a8dfc1fe3a67e855a85505dcac0d983a 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libyang
-PKG_VERSION:=0.14.53
+PKG_VERSION:=0.15.130
 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:=2698bd6484526facbf82b1263810b938b82a2f23
-PKG_MIRROR_HASH:=3bfe4fd8236f0d1903d275aa76e039645d1093ef4204ab3b9bef46aecbe68f72
+PKG_SOURCE_VERSION:=d6baaf90e24af3b07649e9dda6fc0d9b272b2ebc
+PKG_MIRROR_HASH:=eace667ae787ac27b7c717a52f672d05e55608c47d9e54d39d60f8ab5e47f0c9
 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)
@@ -73,7 +73,10 @@ define Package/libyang/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libyang.so* $(1)/usr/lib/
 
        $(INSTALL_DIR) $(1)/usr/lib/libyang
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang/* $(1)/usr/lib/libyang/
+       $(INSTALL_DIR) $(1)/usr/lib/libyang/extensions
+       $(INSTALL_DIR) $(1)/usr/lib/libyang/user_types
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang/extensions/* $(1)/usr/lib/libyang/extensions
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang/user_types/* $(1)/usr/lib/libyang/user_types
 endef
 
 define Package/yanglint/install
diff --git a/libs/libyang/patches/001-fix-musl-issue.patch b/libs/libyang/patches/001-fix-musl-issue.patch
deleted file mode 100644 (file)
index b497c9d..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-Index: libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23/src/extensions.c
-===================================================================
---- libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23.orig/src/extensions.c
-+++ libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23/src/extensions.c
-@@ -123,11 +123,14 @@ lyext_load_plugins(void)
-         /* and construct the filepath */
-         asprintf(&str, "%s/%s", pluginsdir, file->d_name);
--
--        /* load the plugin - first, try if it is already loaded... */
--        dlhandler = dlopen(str, RTLD_NOW | RTLD_NOLOAD);
--        dlerror();    /* Clear any existing error */
--        if (dlhandler) {
-+        /* load the plugin */
-+        dlhandler = dlopen(str, RTLD_NOW);
-+        if (!dlhandler) {
-+            LOGERR(LY_ESYS, "Loading \"%s\" as a plugin failed (%s).", str, dlerror());
-+            free(str);
-+            continue;
-+        }
-+        if (ly_set_contains(&dlhandlers, dlhandler) != -1) {
-             /* the plugin is already loaded */
-             LOGVRB("Extension plugin \"%s\" already loaded.", str);
-             free(str);
-@@ -137,14 +140,6 @@ lyext_load_plugins(void)
-             continue;
-         }
--        /* ... and if not, load it */
--        dlhandler = dlopen(str, RTLD_NOW);
--        if (!dlhandler) {
--            LOGERR(LY_ESYS, "Loading \"%s\" as an extension plugin failed (%s).", str, dlerror());
--            free(str);
--            continue;
--        }
--        LOGVRB("Extension plugin \"%s\" successfully loaded.", str);
-         free(str);
-         dlerror();    /* Clear any existing error */
-@@ -156,6 +151,7 @@ lyext_load_plugins(void)
-             dlclose(dlhandler);
-             continue;
-         }
-+        LOGVRB("Plugin \"%s\" successfully loaded.", str)
-         for(u = 0; plugin[u].name; u++) {
-             /* check extension implementations for collisions */
index 1034d041d58f650f8d9f9fbcbf18223541b6591d..8c0f9c5a2dc642d7eeef055839c757d9ed826b6a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libzdb
 PKG_VERSION:=3.1
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 PKG_LICENSE:=GPL-3.0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -23,6 +23,14 @@ PKG_BUILD_DEPENDS:=libzdb/host
 
 include $(INCLUDE_DIR)/package.mk
 
+# Help libzdb find libiconv.so when using uClibc.
+ifneq ($(CONFIG_USE_UCLIBC),)
+TARGET_CPPFLAGS+= \
+       -I$(STAGING_DIR)/usr/lib/libiconv-full/include
+TARGET_LDFLAGS += \
+       -L$(STAGING_DIR)/usr/lib/libiconv-full/lib
+endif
+
 define Package/libzdb
     SECTION:=libs
     CATEGORY:=Libraries
index e765da80ec60d06bb49455e6f50c030af8e5a4f7..6b6b7d3f040cb6f14d342ef28ff7802aca8e8a1c 100644 (file)
@@ -40,7 +40,7 @@ diff -rupN libzdb-3.1.orig/configure.ac libzdb-3.1/configure.ac
 -                DBCPPFLAGS="$DBCPPFLAGS `$MYSQLCONFIG --include`"
 -                DBLDFLAGS="$DBLDFLAGS `$MYSQLCONFIG --libs`"
 +                DBCPPFLAGS="$DBCPPFLAGS -I$STAGING_DIR/usr/include/mysql"
-+                DBLDFLAGS="$DBLDFLAGS -L$STAGING_DIR/usr/lib/mysql -L$STAGING_DIR/usr/lib -lmysqlclient -lz -lcrypt -lm"
++                DBLDFLAGS="$DBLDFLAGS -L$STAGING_DIR/usr/lib/mysql -L$STAGING_DIR/usr/lib -lmysqlclient -liconv -lz -lcrypt -lm"
                  AC_DEFINE([HAVE_LIBMYSQLCLIENT], 1, [Define to 1 to enable mysql])
          else
                  CPPFLAGS=$svd_CPPFLAGS
index cc90ef7236d09fa9a9ed7955da064e2847a25990..18afbf27fada9711f8ee8d2c23ad8c991c96dc34 100644 (file)
@@ -8,12 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mxml
-PKG_VERSION:=2.10
+PKG_VERSION:=2.11
 PKG_RELEASE:=1
-PKG_HASH:=267ff58b64ddc767170d71dab0c729c06f45e1df9a9b6f75180b564f09767891
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/michaelrsweet/mxml/releases/download/release-$(PKG_VERSION)/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/michaelrsweet/mxml.git
+PKG_SOURCE_VERSION:=7b0bb60e51d39b2aaa8e8ca5bf9f3c38e63d643b
+PKG_MIRROR_HASH:=e6f38a91f420c0bc64f892163049c37c5cc7744bffbcb05ad1fddec7b34ea438
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
 PKG_FIXUP:=autoreconf
 
 PKG_MAINTAINER:=Espen Jürgensen <espenjurgensen+openwrt@gmail.com>
diff --git a/libs/mxml/patches/001-targets.patch b/libs/mxml/patches/001-targets.patch
deleted file mode 100644 (file)
index 86379f0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -88,7 +88,7 @@ PUBLIBOBJS   =       mxml-attr.o mxml-entity.o m
-                       mxml-index.o mxml-node.o mxml-search.o mxml-set.o
- LIBOBJS               =       $(PUBLIBOBJS) mxml-private.o mxml-string.o
- OBJS          =       mxmldoc.o testmxml.o $(LIBOBJS)
--TARGETS               =       $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man
-+TARGETS               =       $(LIBMXML)
- #
index 7269cf67a1815cbb59588474119dc6884f05c8f9..6b3d5773f3616922a4bd3c558c46fb8df06704cd 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openldap
-PKG_VERSION:=2.4.45
-PKG_RELEASE:=2
+PKG_VERSION:=2.4.46
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/ \
-       ftp://sunsite.cnlab-switch.ch/mirror/OpenLDAP/openldap-release/ \
-       ftp://ftp.nl.uu.net/pub/unix/db/openldap/openldap-release/ \
-       ftp://ftp.plig.org/pub/OpenLDAP/openldap-release/
-PKG_HASH:=cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824
+PKG_SOURCE_URL:=https://gpl.savoirfairelinux.net/pub/mirrors/openldap/openldap-release/ \
+       http://mirror.eu.oneandone.net/software/openldap/openldap-release/ \
+       http://mirror.switch.ch/ftp/software/mirror/OpenLDAP/openldap-release/ \
+       https://www.openldap.org/software/download/OpenLDAP/openldap-release/
+PKG_HASH:=9a90dcb86b99ae790ccab93b7585a31fbcbeec8c94bf0f7ab0ca0a87ea0c4b2d
 PKG_LICENSE:=OLDAP-2.8
 PKG_LICENSE_FILES:=LICENSE
 
@@ -82,7 +82,8 @@ define Package/openldap-server/conffiles
 /etc/openldap/slapd.conf
 endef
 
-TARGET_CFLAGS += $(FPIC) -lpthread
+TARGET_CFLAGS += $(FPIC) -lpthread \
+       -DURANDOM_DEVICE=\\\"/dev/urandom\\\"
 
 CONFIGURE_ARGS += \
        --enable-shared \
index c281c41f028f675ec0ad3f7459a12fb97d944cf2..e434dc2199f250007a183185b6702778fad29ebe 100644 (file)
@@ -8,14 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=p11-kit
-PKG_VERSION:=0.23.10
+PKG_VERSION:=0.23.12
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=f9212a3f225ef543e13fae9945527d66c0cbb67246320035dd94fab2bce5ae43
+PKG_HASH:=58bae22f19db1de1a1103e7ca4149eed6e303e727878c2cd5ea9e6fe445fd403
 PKG_SOURCE_URL:=https://github.com/p11-glue/$(PKG_NAME)/releases/download/$(PKG_VERSION)
 
+PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
diff --git a/libs/p11-kit/patches/010-build-Ease-issetugid-check-when-cross-compiling.patch b/libs/p11-kit/patches/010-build-Ease-issetugid-check-when-cross-compiling.patch
new file mode 100644 (file)
index 0000000..e697960
--- /dev/null
@@ -0,0 +1,47 @@
+From dec5f888a457e36d81065ebc69f7d8d966be527d Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <dueno@redhat.com>
+Date: Thu, 31 May 2018 11:02:51 +0200
+Subject: [PATCH] build: Ease issetugid() check when cross-compiling
+
+When cross-compiling, the configure check for issetugid() aborts,
+because of the pessimistic default of AC_RUN_IFELSE.  This patch
+provides the non-pessimistic default to AC_RUN_IFELSE and wrap the
+macro invocation with AC_CACHE_CHECK so that the user can override the
+check by setting ac_cv_issetugid_openbsd=yes, as suggested in:
+https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Runtime.html#Runtime
+---
+ configure.ac | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e99a3c7..bd6ece0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -115,15 +115,17 @@ if test "$os_unix" = "yes"; then
+       # Check if issetugid() is available and has compatible behavior with OpenBSD
+       AC_CHECK_FUNCS([issetugid], [
+-              AC_MSG_CHECKING([whether issetugid() can detect setuid/setgid])
+-              issetugid_openbsd=no
+-              AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]],
+-                      [[return issetugid ();]])],
+-                      [chmod 02777 ./conftest$EXEEXT; ./conftest$EXEEXT || issetugid_openbsd=yes])
+-              if test "$issetugid_openbsd" = yes; then
++              AC_CACHE_CHECK([whether issetugid() can detect setuid/setgid],
++                      [ac_cv_issetugid_openbsd],
++                      [ac_cv_issetugid_openbsd=no
++                      AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]],
++                              [[return issetugid ();]])],
++                              [chmod 02777 ./conftest$EXEEXT; ./conftest$EXEEXT || ac_cv_issetugid_openbsd=yes],
++                              [ac_cv_issetugid_openbsd=no],
++                              [ac_cv_issetugid_openbsd="guessing no"])])
++              if test "$ac_cv_issetugid_openbsd" = yes; then
+                       AC_DEFINE([HAVE_ISSETUGID_OPENBSD], [1], [Whether issetugid() has compatible behavior with OpenBSD])
+               fi
+-              AC_MSG_RESULT([$issetugid_openbsd])
+       ])
+       # Required functions
+-- 
+2.17.1
+
index a30dadf377529be3ecda90eed5ed4b5c4b8aace7..caa669d509f526af3674bc59cd4862d301a99b92 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcre
-PKG_VERSION:=8.41
-PKG_RELEASE:=2
+PKG_VERSION:=8.42
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=e62c7eac5ae7c0e7286db61ff82912e1c0b7a0c13706616e94a7dd729321b530
+PKG_HASH:=2cd04b7c887808be030254e8d77de11d3fe9d4505c39d4b15d2664ffe8bf9301
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 
 PKG_LICENSE:=BSD-3-Clause
index a6b079d36d1a4eac56dae3154b4178557fd4c71d..23cc26df2e9cf427fda10ddea8316df6b663060a 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcre2
-PKG_VERSION:=10.30
+PKG_VERSION:=10.31
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=90bd41c605d30e3745771eb81928d779f158081a51b2f314bbcc1f73de5773db
+PKG_SOURCE_URL:=@SF/$(PKG_NAME) \
+               ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre
+PKG_HASH:=e07d538704aa65e477b6a392b32ff9fc5edf75ab9a40ddfc876186c4ff4d68ac
 PKG_MAINTAINER:=Shane Peelar <lookatyouhacker@gmail.com>
 
 PKG_LICENSE:=BSD-3-Clause
index 71a0b04967e4ecc3a73a79dc9230c56f1537c4d6..3b3b25c5881b31b7847fb1335cda4f39180e7bbf 100644 (file)
@@ -8,17 +8,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libprotobuf-c
-PKG_VERSION:=v1.2.1
-PKG_RELEASE:=$(PKG_SOURCE_VERSION)
+PKG_VERSION:=v1.3.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_MIRROR_HASH:=2ebe48454fe454d118cf952655a24477c4bed892cee7ae085dc56d05ac711a8a
+PKG_MIRROR_HASH:=596b8cfa47d66cf4278229b780125e199bc0df08defe849654b1ffb5e52b0c03
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=git://github.com/protobuf-c/protobuf-c.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=$(PKG_VERSION)
 
 PKG_BUILD_DEPENDS:=protobuf-c/host
+HOST_BUILD_DEPENDS:=protobuf/host
 
 PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
index db6cd056fb53f4933ccfda9122fc42ce9b208120..48a88009ce6fb70a87c00640bb3a8a1e5077dc3c 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tdb
 PKG_VERSION:=1.3.15
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-2.0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -83,7 +83,7 @@ endef
 
 define Package/tdb/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
 endef
index 780efb004e384201de8617ce8e634896c26b46c0..fd1839181683ab20406c6b1a4a0bbb12f9f51343 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xmlrpc-c
-PKG_VERSION:=1.39.12
+PKG_VERSION:=1.39.13
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=@SF/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(PKG_VERSION)
-PKG_HASH:=d830f3264a832dfe09f629cc64036acfd08121692526d0fabe090f7ff881ce08
+PKG_HASH:=491e44cae3763d285fc2a75fe6574882964f16451adbb7e6f3293916e120fca9
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=VARIOUS
index 22f98ee07938d0e5aaa70e1c839019ada5af3727..e94368b2b0dc2bab8c43fe838b7d98d894820754 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=yaml
-PKG_VERSION:=0.1.6
+PKG_VERSION:=0.1.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://pyyaml.org/download/libyaml/
-PKG_HASH:=7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749
+PKG_SOURCE_URL:=https://pyyaml.org/download/libyaml/
+PKG_HASH:=8088e457264a98ba451a90b8661fcb4f9d6f478f7265d48322a196cec2480729
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
index a82a70eecea493b83828e26e49591843616feb3c..290eef50d21a15e8067d2e08516b04f355bb0bf9 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zeromq
-PKG_VERSION:=4.1.4
+PKG_VERSION:=4.1.6
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=LICENCE.txt
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:= https://github.com/zeromq/zeromq4-1/releases/download/v$(PKG_VERSION)/
-PKG_HASH:=e99f44fde25c2e4cb84ce440f87ca7d3fe3271c2b8cfbc67d55e4de25e6fe378
+PKG_SOURCE_URL:=https://github.com/zeromq/zeromq4-1/releases/download/v$(PKG_VERSION)
+PKG_HASH:=02ebf60a43011e770799336365bcbce2eb85569e9b5f52aa0d8cc04672438a0a
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
@@ -48,7 +48,7 @@ define Package/libzmq-curve
   $(call Package/libzmq/default)
   VARIANT:=curve
   TITLE+= (CurveZMQ)
-  DEPENDS+=+libsodium 
+  DEPENDS+=+libsodium
 endef
 
 define Package/libzmq-nc/description
index f7ecc489ef6becfe0cf9629222fb0dea0f2d4b95..391941fb57de546868c4f1ed324b569baeeb1c83 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -148,8 +148,10 @@ case "${host_os}" in
+@@ -150,8 +150,10 @@ case "${host_os}" in
      *linux*)
          # Define on Linux to enable all library features. Define if using a gnu compiler
          if test "x$GXX" = "xyes"; then
index 3e13e272f233642e8f3549b5aaee6940794cc2fa..d97a3eb46566717a9eaec5d3cbc5ec2040713103 100644 (file)
@@ -21,7 +21,7 @@
  
 --- a/src/stream_engine.cpp
 +++ b/src/stream_engine.cpp
-@@ -208,7 +208,7 @@ void zmq::stream_engine_t::plug (io_thre
+@@ -208,7 +208,7 @@ void zmq::stream_engine_t::plug (io_thread_t *io_thread_,
              //  Compile metadata.
              typedef metadata_t::dict_t properties_t;
              properties_t properties;
@@ -30,7 +30,7 @@
              zmq_assert (metadata == NULL);
              metadata = new (std::nothrow) metadata_t (properties);
          }
-@@ -815,7 +815,7 @@ void zmq::stream_engine_t::mechanism_rea
+@@ -815,7 +815,7 @@ void zmq::stream_engine_t::mechanism_ready ()
  
      //  If we have a peer_address, add it to metadata
      if (!peer_address.empty()) {
index 8f8050868f7b5c25dcb6f320848a0dcdad605191..faac8f77eca207f1935ced49120de44f6b0bead9 100644 (file)
@@ -8,17 +8,21 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=alpine
-PKG_VERSION:=2.20
-PKG_RELEASE:=2
+PKG_VERSION:=2.21.999
+PKG_RELEASE:=1
 
-PKG_SOURCE_URL:=http://patches.freeiz.com/alpine/release/src/
+PKG_SOURCE_PROTO:=git
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=ed639b6e5bb97e6b0645c85262ca6a784316195d461ce8d8411999bf80449227
+PKG_SOURCE_URL:=http://repo.or.cz/alpine.git
+PKG_SOURCE_VERSION:=349642a84039a4b026513c32a3b4f8594acd50df
+PKG_MIRROR_HASH:=8db14c4ae14329a7cffc8ea5099b7fa5c7adf79ca03893b23b1a8c45b847e5af
 
 PKG_MAINTAINER:=Antti Seppälä <a.seppala@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
+PKG_FIXUP:=autoreconf
+
 PKG_INSTALL:=1
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
diff --git a/mail/alpine/patches/100-no-openssl-check-cross-compile.patch b/mail/alpine/patches/100-no-openssl-check-cross-compile.patch
deleted file mode 100644 (file)
index 4043098..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -Nru alpine-2.20-orig/configure alpine-2.20/configure
---- alpine-2.20-orig/configure 2015-01-18 09:00:42.100645053 +0200
-+++ alpine-2.20/configure      2015-01-25 12:01:11.831015443 +0200
-@@ -17643,10 +17643,8 @@
-   { $as_echo "$as_me:${as_lineno-$LINENO}: checking Openssl library version >= 1.0.1c" >&5
- $as_echo_n "checking Openssl library version >= 1.0.1c... " >&6; }
-   if test "$cross_compiling" = yes; then :
--  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
-+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cross compiling: not checking" >&5
-+$as_echo "$as_me: WARNING: cross compiling: not checking" >&2;}
- else
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
-diff -Nru alpine-2.20-orig/configure.ac alpine-2.20/configure.ac
---- alpine-2.20-orig/configure.ac      2015-01-18 08:38:08.893495949 +0200
-+++ alpine-2.20/configure.ac   2015-01-25 12:01:02.773015236 +0200
-@@ -1370,7 +1370,8 @@
- }
-       ]])],
-       [ AC_MSG_RESULT(yes) ],
--      [ alpine_SSLTYPE="none" ])
-+      [ alpine_SSLTYPE="none" ],
-+      [ AC_MSG_WARN([cross compiling: not checking])])
-     if test "x$alpine_SSLTYPE" = "xnone" ; then
-       AC_MSG_ERROR(Install openssl version >= 1.0.1c)
index 458345089decc51b5158504621489a0da100005d..4aa68b8039d7adab21b974d33de9c9cd8157ccdd 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dovecot
-PKG_VERSION:=2.2.35
+PKG_VERSION:=2.3.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.dovecot.org/releases/2.2
-PKG_HASH:=cce15db2fc5233386b63a3cf21c465c09e6e55014ed66c4f184b7d221a47180c
+PKG_SOURCE_URL:=https://www.dovecot.org/releases/2.3
+PKG_HASH:=6e48f0fa60768427f03035b0a3e93d1ae29b972bb2bd9ca998ccc6a0f6dae393
 PKG_LICENSE:=LGPL-2.1 MIT BSD-3-Clause Unique
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL COPYING.MIT
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
@@ -37,7 +37,7 @@ define Package/dovecot
   CATEGORY:=Mail
   DEPENDS:=+DOVECOT_GSSAPI:krb5-libs +DOVECOT_LDAP:libopenldap +DOVECOT_MYSQL:libmysqlclient +DOVECOT_PGSQL:libpq +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap +DOVECOT_ICU:icu
   TITLE:=An IMAP and POP3 daemon
-  URL:=http://www.dovecot.org/
+  URL:=https://www.dovecot.org/
   USERID:=dovecot=59:dovecot=59
   ABI_VERSION:=$(PKG_VERSION)
 endef
@@ -100,6 +100,7 @@ CONFIGURE_ARGS += \
        --with-notify=dnotify \
        --without-lzma \
        --without-lz4 \
+       --without-sodium \
        $(if $(CONFIG_DOVECOT_GSSAPI),--with-gssapi=yes,--with-gssapi=no) \
        $(if $(CONFIG_DOVECOT_LDAP),--with-ldap=yes,--with-ldap=no) \
        $(if $(CONFIG_DOVECOT_MYSQL),--with-mysql=yes,--with-mysql=no) \
index a2869d12608dcff850346d5ef0028c5129518a8b..650c5c6258b39e4ad5a9331ca16f4c2438ee12a2 100644 (file)
@@ -1,49 +1,96 @@
-diff -u --recursive dovecot-2.2.35-vanilla/configure.ac dovecot-2.2.35/configure.ac
---- dovecot-2.2.35-vanilla/configure.ac        2018-03-19 08:22:42.000000000 -0400
-+++ dovecot-2.2.35/configure.ac        2018-05-25 10:41:36.122503480 -0400
-@@ -490,9 +490,10 @@
- if test "$ioloop" = "best" || test "$ioloop" = "epoll"; then
-   AC_CACHE_CHECK([whether we can use epoll],i_cv_epoll_works,[
+diff -u --recursive dovecot-2.3.1-vanilla/m4/fd_passing.m4 dovecot-2.3.1/m4/fd_passing.m4
+--- dovecot-2.3.1-vanilla/m4/fd_passing.m4     2018-06-08 20:02:15.849850956 -0400
++++ dovecot-2.3.1/m4/fd_passing.m4     2018-06-08 20:04:28.947016370 -0400
+@@ -8,7 +8,7 @@
+         CFLAGS="$CFLAGS -DBUGGY_CMSG_MACROS"
+       fi
+     
+-      AC_TRY_RUN([
++      AC_TRY_LINK([
+         #include <sys/types.h>
+         #include <sys/socket.h>
+         #include <sys/wait.h>
+@@ -16,7 +16,7 @@
+         #include <unistd.h>
+         #include <fcntl.h>
+         #include "fdpass.h"
+-        
++      ], [
+       static
+         int nopen(void)
+         {
+diff -u --recursive dovecot-2.3.1-vanilla/m4/glibc.m4 dovecot-2.3.1/m4/glibc.m4
+--- dovecot-2.3.1-vanilla/m4/glibc.m4  2018-06-08 20:02:15.850850957 -0400
++++ dovecot-2.3.1/m4/glibc.m4  2018-06-08 20:04:00.780981363 -0400
+@@ -17,7 +17,7 @@
+   dnl * Old glibcs have broken posix_fallocate(). Make sure not to use it.
+   dnl * It may also be broken in AIX.
+   AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
 -    AC_TRY_RUN([
 +    AC_TRY_LINK([
-       #include <sys/epoll.h>
+       #define _XOPEN_SOURCE 600
+       #include <stdio.h>
+       #include <stdlib.h>
+@@ -26,6 +26,7 @@
+       #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7)
+         possibly broken posix_fallocate
+       #endif
++    ], [
+       int main() {
+         int fd = creat("conftest.temp", 0600);
+         int ret;
+diff -u --recursive dovecot-2.3.1-vanilla/m4/ioloop.m4 dovecot-2.3.1/m4/ioloop.m4
+--- dovecot-2.3.1-vanilla/m4/ioloop.m4 2018-06-08 20:02:15.850850957 -0400
++++ dovecot-2.3.1/m4/ioloop.m4 2018-06-08 20:03:31.666945181 -0400
+@@ -4,9 +4,9 @@
    
+   if test "$ioloop" = "best" || test "$ioloop" = "epoll"; then
+     AC_CACHE_CHECK([whether we can use epoll],i_cv_epoll_works,[
+-      AC_TRY_RUN([
++      AC_TRY_LINK([
+         #include <sys/epoll.h>
+-    
++      ], [
+         int main()
+         {
+       return epoll_create(5) < 1;
+diff -u --recursive dovecot-2.3.1-vanilla/m4/mmap_write.m4 dovecot-2.3.1/m4/mmap_write.m4
+--- dovecot-2.3.1-vanilla/m4/mmap_write.m4     2018-06-08 20:02:15.850850957 -0400
++++ dovecot-2.3.1/m4/mmap_write.m4     2018-06-08 20:03:27.369939841 -0400
+@@ -1,7 +1,7 @@
+ dnl * If mmap() plays nicely with write()
+ AC_DEFUN([DOVECOT_MMAP_WRITE], [
+   AC_CACHE_CHECK([whether shared mmaps get updated by write()s],i_cv_mmap_plays_with_write,[
+-    AC_TRY_RUN([
++    AC_TRY_LINK([
+       #include <stdio.h>
+       #include <sys/types.h>
+       #include <sys/stat.h>
+@@ -9,6 +9,7 @@
+       #include <fcntl.h>
+       #include <sys/mman.h>
+       #include <string.h>
 +    ], [
-       int main()
-       {
-       return epoll_create(5) < 1;
-@@ -596,7 +597,7 @@
- dnl * Old glibcs have broken posix_fallocate(). Make sure not to use it.
- dnl * It may also be broken in AIX.
- AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
--  AC_TRY_RUN([
-+  AC_TRY_LINK([
-     #define _XOPEN_SOURCE 600
-     #include <stdio.h>
-     #include <stdlib.h>
-@@ -605,6 +606,7 @@
-     #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7)
-       possibly broken posix_fallocate
-     #endif
-+  ], [
-     int main() {
-       int fd = creat("conftest.temp", 0600);
-       int ret;
-@@ -2059,7 +2061,7 @@
-                               # does the kerberos library support SPNEGO?
-                               AC_CACHE_CHECK([whether GSSAPI supports SPNEGO],i_cv_gssapi_spnego,[
--                                AC_TRY_RUN([
-+                                AC_TRY_LINK([
-                                   #ifdef HAVE_GSSAPI_H
-                                   #  include <gssapi.h>
-                                   #else
-@@ -2067,6 +2069,7 @@
-                                   #endif
-                                   #include <krb5.h>
-                                   #include <string.h>
-+                                  ], [
-                                   int main(void) {
-                                     OM_uint32 minor_status;
-                                     gss_OID_set mech_set;
+       int main() {
+         /* return 0 if we're signed */
+         int f = open("conftest.mmap", O_RDWR|O_CREAT|O_TRUNC, 0600);
+diff -u --recursive dovecot-2.3.1-vanilla/m4/want_gssapi.m4 dovecot-2.3.1/m4/want_gssapi.m4
+--- dovecot-2.3.1-vanilla/m4/want_gssapi.m4    2018-06-08 20:02:15.850850957 -0400
++++ dovecot-2.3.1/m4/want_gssapi.m4    2018-06-08 20:04:13.204996804 -0400
+@@ -54,7 +54,7 @@
+   
+                               # does the kerberos library support SPNEGO?
+                               AC_CACHE_CHECK([whether GSSAPI supports SPNEGO],i_cv_gssapi_spnego,[
+-                                AC_TRY_RUN([
++                                AC_TRY_LINK([
+                                   #ifdef HAVE_GSSAPI_H
+                                   #  include <gssapi.h>
+                                   #else
+@@ -62,6 +62,7 @@
+                                   #endif
+                                   #include <krb5.h>
+                                   #include <string.h>
++                                ], [
+                                   int main(void) {
+                                     OM_uint32 minor_status;
+                                     gss_OID_set mech_set;
index 0006eefde26be01e605e4b866d3dd47ce040d73f..10396db2a0b0cbc11fac34c4cf9c393148720967 100644 (file)
@@ -9,13 +9,16 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fdm
 PKG_VERSION:=1.9
-PKG_RELEASE:=2
+PKG_RELEASE:=4
 PKG_LICENSE:=BSD-2-Clause
 
-PKG_SOURCE:=$(PKG_VERSION).zip
-PKG_SOURCE_URL:=https://github.com/nicm/fdm/archive
-PKG_HASH:=ee08f9133657c8c959b738079c2e4f556cf5cca2daa8343feaf4f07698ad6086
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/nicm/fdm/releases/download/$(PKG_VERSION)
+PKG_HASH:=16416c38a9a7e32d187220cc5ae61a51463d5e4e47419c5c513f422523d39914
 
+PKG_FIXUP:=autoreconf
+
+PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
@@ -24,7 +27,7 @@ define Package/fdm
   SECTION:=mail
   CATEGORY:=Mail
   TITLE:=fetch mail and deliver
-  URL:=http://fdm.sourceforge.net/
+  URL:=https://github.com/nicm/fdm
   MAINTAINER:=Dmitry V. Zimin <pfzim@mail.ru>
   MENU:=1
   DEPENDS:=+tdb +zlib +libopenssl +FDM_WITH_PCRE:libpcre
@@ -47,16 +50,6 @@ MAKE_FLAGS += \
        PREFIX="/usr" \
        $(if $(CONFIG_FDM_WITH_PCRE),PCRE=1)
 
-define Build/Prepare
-       $(call Build/Prepare/Default)
-       $(CP) ./src/compat/* $(PKG_BUILD_DIR)/
-endef
-
-define Build/Configure
-       ( cd $(PKG_BUILD_DIR); ./autogen.sh )
-       $(call Build/Configure/Default)
-endef
-
 define Package/fdm/config
        source "$(SOURCE)/Config.in"
 endef
diff --git a/mail/fdm/patches/001-base64-fix.patch b/mail/fdm/patches/001-base64-fix.patch
deleted file mode 100644 (file)
index ad9239b..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/fdm.h    2011-10-10 17:36:29.000000000 +0400
-+++ b/fdm.h    2014-11-13 12:56:59.217083683 +0300
-@@ -719,6 +719,11 @@
- size_t                 strlcat(char *, const char *, size_t);
- #endif
-+int local_b64_ntop(uint8_t const *src, size_t srclength, char *target,
-+    size_t targsize);
-+
-+int local_b64_pton(char const *src, uint8_t *target, size_t targsize);
-+
- /* shm.c */
- char                  *shm_path(struct shm *);
- void          *shm_create(struct shm *, size_t);
diff --git a/mail/fdm/patches/002-base64-fix.patch b/mail/fdm/patches/002-base64-fix.patch
deleted file mode 100644 (file)
index 7f798a6..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/imap-common.c    2011-12-20 00:19:03.000000000 +0400
-+++ b/imap-common.c    2014-11-13 12:56:06.930418446 +0300
-@@ -206,7 +206,7 @@
-       size = (strlen(in) * 2) + 1;
-       out = xcalloc(1, size);
--      if (b64_ntop(in, strlen(in), out, size) < 0) {
-+      if (local_b64_ntop(in, strlen(in), out, size) < 0) {
-               xfree(out);
-               return (NULL);
-       }
-@@ -222,7 +222,7 @@
-       size = (strlen(in) * 4) + 1;
-       out = xcalloc(1, size);
--      if (b64_pton(in, out, size) < 0) {
-+      if (local_b64_pton(in, out, size) < 0) {
-               xfree(out);
-               return (NULL);
-       }
diff --git a/mail/fdm/patches/003-base64-fix.patch b/mail/fdm/patches/003-base64-fix.patch
deleted file mode 100644 (file)
index 2964568..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: fdm-1.9/Makefile.am
-===================================================================
---- fdm-1.9.orig/Makefile.am
-+++ fdm-1.9/Makefile.am
-@@ -107,7 +107,9 @@ dist_fdm_SOURCES = \
-       xmalloc.c \
-       \
-       parse.y \
--      lex.c
-+      lex.c \
-+      b64_ntop.c \
-+      b64_pton.c
- nodist_fdm_SOURCES =
- if NO_STRLCAT
diff --git a/mail/fdm/patches/010-Compat-fixes-from-Rosen-Penev.patch b/mail/fdm/patches/010-Compat-fixes-from-Rosen-Penev.patch
new file mode 100644 (file)
index 0000000..4a92725
--- /dev/null
@@ -0,0 +1,388 @@
+From eb7461e4ceab14020b3a129d826e4ee86f9da8c6 Mon Sep 17 00:00:00 2001
+From: Nicholas Marriott <nicholas.marriott@gmail.com>
+Date: Tue, 26 Jun 2018 12:19:25 +0100
+Subject: [PATCH] Compat fixes from Rosen Penev.
+
+---
+ Makefile.am     |   6 +
+ compat/base64.c | 317 ++++++++++++++++++++++++++++++++++++++++++++++++
+ fdm.h           |  18 +++
+ 3 files changed, 343 insertions(+), 2 deletions(-)
+ create mode 100644 compat/base64.c
+
+diff --git a/Makefile.am b/Makefile.am
+index a4ebbf3..fb25d33 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -110,6 +110,9 @@ dist_fdm_SOURCES = \
+       lex.c
+ nodist_fdm_SOURCES =
++if NO_B64_NTOP
++nodist_fdm_SOURCES += compat/base64.c
++endif
+ if NO_STRLCAT
+ nodist_fdm_SOURCES += compat/strlcat.c
+ endif
+diff --git a/compat/base64.c b/compat/base64.c
+new file mode 100644
+index 0000000..4e44d6a
+--- /dev/null
++++ b/compat/base64.c
+@@ -0,0 +1,317 @@
++/*    $OpenBSD: base64.c,v 1.8 2015/01/16 16:48:51 deraadt Exp $      */
++
++/*
++ * Copyright (c) 1996 by Internet Software Consortium.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ */
++
++/*
++ * Portions Copyright (c) 1995 by International Business Machines, Inc.
++ *
++ * International Business Machines, Inc. (hereinafter called IBM) grants
++ * permission under its copyrights to use, copy, modify, and distribute this
++ * Software with or without fee, provided that the above copyright notice and
++ * all paragraphs of this notice appear in all copies, and that the name of IBM
++ * not be used in connection with the marketing of any product incorporating
++ * the Software or modifications thereof, without specific, written prior
++ * permission.
++ *
++ * To the extent it has a right to do so, IBM grants an immunity from suit
++ * under its patents, if any, for the use, sale or manufacture of products to
++ * the extent that such products are used for performing Domain Name System
++ * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
++ * granted for any product per se or for any other function of any product.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
++ */
++
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <arpa/nameser.h>
++
++#include <ctype.h>
++#include <resolv.h>
++#include <stdio.h>
++
++#include <stdlib.h>
++#include <string.h>
++
++#include "fdm.h"
++
++static const char Base64[] =
++      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++static const char Pad64 = '=';
++
++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
++   The following encoding technique is taken from RFC 1521 by Borenstein
++   and Freed.  It is reproduced here in a slightly edited form for
++   convenience.
++
++   A 65-character subset of US-ASCII is used, enabling 6 bits to be
++   represented per printable character. (The extra 65th character, "=",
++   is used to signify a special processing function.)
++
++   The encoding process represents 24-bit groups of input bits as output
++   strings of 4 encoded characters. Proceeding from left to right, a
++   24-bit input group is formed by concatenating 3 8-bit input groups.
++   These 24 bits are then treated as 4 concatenated 6-bit groups, each
++   of which is translated into a single digit in the base64 alphabet.
++
++   Each 6-bit group is used as an index into an array of 64 printable
++   characters. The character referenced by the index is placed in the
++   output string.
++
++                         Table 1: The Base64 Alphabet
++
++      Value Encoding  Value Encoding  Value Encoding  Value Encoding
++          0 A            17 R            34 i            51 z
++          1 B            18 S            35 j            52 0
++          2 C            19 T            36 k            53 1
++          3 D            20 U            37 l            54 2
++          4 E            21 V            38 m            55 3
++          5 F            22 W            39 n            56 4
++          6 G            23 X            40 o            57 5
++          7 H            24 Y            41 p            58 6
++          8 I            25 Z            42 q            59 7
++          9 J            26 a            43 r            60 8
++         10 K            27 b            44 s            61 9
++         11 L            28 c            45 t            62 +
++         12 M            29 d            46 u            63 /
++         13 N            30 e            47 v
++         14 O            31 f            48 w         (pad) =
++         15 P            32 g            49 x
++         16 Q            33 h            50 y
++
++   Special processing is performed if fewer than 24 bits are available
++   at the end of the data being encoded.  A full encoding quantum is
++   always completed at the end of a quantity.  When fewer than 24 input
++   bits are available in an input group, zero bits are added (on the
++   right) to form an integral number of 6-bit groups.  Padding at the
++   end of the data is performed using the '=' character.
++
++   Since all base64 input is an integral number of octets, only the
++         -------------------------------------------------                       
++   following cases can arise:
++   
++       (1) the final quantum of encoding input is an integral
++           multiple of 24 bits; here, the final unit of encoded
++         output will be an integral multiple of 4 characters
++         with no "=" padding,
++       (2) the final quantum of encoding input is exactly 8 bits;
++           here, the final unit of encoded output will be two
++         characters followed by two "=" padding characters, or
++       (3) the final quantum of encoding input is exactly 16 bits;
++           here, the final unit of encoded output will be three
++         characters followed by one "=" padding character.
++   */
++
++int
++b64_ntop(src, srclength, target, targsize)
++      u_char const *src;
++      size_t srclength;
++      char *target;
++      size_t targsize;
++{
++      size_t datalength = 0;
++      u_char input[3];
++      u_char output[4];
++      int i;
++
++      while (2 < srclength) {
++              input[0] = *src++;
++              input[1] = *src++;
++              input[2] = *src++;
++              srclength -= 3;
++
++              output[0] = input[0] >> 2;
++              output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++              output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++              output[3] = input[2] & 0x3f;
++
++              if (datalength + 4 > targsize)
++                      return (-1);
++              target[datalength++] = Base64[output[0]];
++              target[datalength++] = Base64[output[1]];
++              target[datalength++] = Base64[output[2]];
++              target[datalength++] = Base64[output[3]];
++      }
++    
++      /* Now we worry about padding. */
++      if (0 != srclength) {
++              /* Get what's left. */
++              input[0] = input[1] = input[2] = '\0';
++              for (i = 0; i < srclength; i++)
++                      input[i] = *src++;
++      
++              output[0] = input[0] >> 2;
++              output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++              output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++
++              if (datalength + 4 > targsize)
++                      return (-1);
++              target[datalength++] = Base64[output[0]];
++              target[datalength++] = Base64[output[1]];
++              if (srclength == 1)
++                      target[datalength++] = Pad64;
++              else
++                      target[datalength++] = Base64[output[2]];
++              target[datalength++] = Pad64;
++      }
++      if (datalength >= targsize)
++              return (-1);
++      target[datalength] = '\0';      /* Returned value doesn't count \0. */
++      return (datalength);
++}
++
++/* skips all whitespace anywhere.
++   converts characters, four at a time, starting at (or after)
++   src from base - 64 numbers into three 8 bit bytes in the target area.
++   it returns the number of data bytes stored at the target, or -1 on error.
++ */
++
++int
++b64_pton(src, target, targsize)
++      char const *src;
++      u_char *target;
++      size_t targsize;
++{
++      int tarindex, state, ch;
++      u_char nextbyte;
++      char *pos;
++
++      state = 0;
++      tarindex = 0;
++
++      while ((ch = (unsigned char)*src++) != '\0') {
++              if (isspace(ch))        /* Skip whitespace anywhere. */
++                      continue;
++
++              if (ch == Pad64)
++                      break;
++
++              pos = strchr(Base64, ch);
++              if (pos == 0)           /* A non-base64 character. */
++                      return (-1);
++
++              switch (state) {
++              case 0:
++                      if (target) {
++                              if (tarindex >= targsize)
++                                      return (-1);
++                              target[tarindex] = (pos - Base64) << 2;
++                      }
++                      state = 1;
++                      break;
++              case 1:
++                      if (target) {
++                              if (tarindex >= targsize)
++                                      return (-1);
++                              target[tarindex]   |=  (pos - Base64) >> 4;
++                              nextbyte = ((pos - Base64) & 0x0f) << 4;
++                              if (tarindex + 1 < targsize)
++                                      target[tarindex+1] = nextbyte;
++                              else if (nextbyte)
++                                      return (-1);
++                      }
++                      tarindex++;
++                      state = 2;
++                      break;
++              case 2:
++                      if (target) {
++                              if (tarindex >= targsize)
++                                      return (-1);
++                              target[tarindex]   |=  (pos - Base64) >> 2;
++                              nextbyte = ((pos - Base64) & 0x03) << 6;
++                              if (tarindex + 1 < targsize)
++                                      target[tarindex+1] = nextbyte;
++                              else if (nextbyte)
++                                      return (-1);
++                      }
++                      tarindex++;
++                      state = 3;
++                      break;
++              case 3:
++                      if (target) {
++                              if (tarindex >= targsize)
++                                      return (-1);
++                              target[tarindex] |= (pos - Base64);
++                      }
++                      tarindex++;
++                      state = 0;
++                      break;
++              }
++      }
++
++      /*
++       * We are done decoding Base-64 chars.  Let's see if we ended
++       * on a byte boundary, and/or with erroneous trailing characters.
++       */
++
++      if (ch == Pad64) {                      /* We got a pad char. */
++              ch = (unsigned char)*src++;     /* Skip it, get next. */
++              switch (state) {
++              case 0:         /* Invalid = in first position */
++              case 1:         /* Invalid = in second position */
++                      return (-1);
++
++              case 2:         /* Valid, means one byte of info */
++                      /* Skip any number of spaces. */
++                      for (; ch != '\0'; ch = (unsigned char)*src++)
++                              if (!isspace(ch))
++                                      break;
++                      /* Make sure there is another trailing = sign. */
++                      if (ch != Pad64)
++                              return (-1);
++                      ch = (unsigned char)*src++;             /* Skip the = */
++                      /* Fall through to "single trailing =" case. */
++                      /* FALLTHROUGH */
++
++              case 3:         /* Valid, means two bytes of info */
++                      /*
++                       * We know this char is an =.  Is there anything but
++                       * whitespace after it?
++                       */
++                      for (; ch != '\0'; ch = (unsigned char)*src++)
++                              if (!isspace(ch))
++                                      return (-1);
++
++                      /*
++                       * Now make sure for cases 2 and 3 that the "extra"
++                       * bits that slopped past the last full byte were
++                       * zeros.  If we don't check them, they become a
++                       * subliminal channel.
++                       */
++                      if (target && tarindex < targsize &&
++                          target[tarindex] != 0)
++                              return (-1);
++              }
++      } else {
++              /*
++               * We ended by seeing the end of the string.  Make sure we
++               * have no partial bytes lying around.
++               */
++              if (state != 0)
++                      return (-1);
++      }
++
++      return (tarindex);
++}
+diff --git a/fdm.h b/fdm.h
+index 5de799c..abc52e0 100644
+--- a/fdm.h
++++ b/fdm.h
+@@ -84,6 +84,18 @@ extern char *__progname;
+ #define INFTIM -1
+ #endif
++#ifndef WAIT_ANY
++#define WAIT_ANY -1
++#endif
++
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
++#ifndef ACCESSPERMS
++#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
++#endif
++
+ #ifndef __dead
+ #define __dead __attribute__ ((__noreturn__))
+ #endif
+@@ -707,6 +719,12 @@ size_t             strlcpy(char *, const char *, size_t);
+ size_t                 strlcat(char *, const char *, size_t);
+ #endif
++#ifndef HAVE_B64_NTOP
++/* base64.c */
++int b64_ntop(src, srclength, target, targsize);
++int b64_pton(src, target, targsize);
++#endif
++
+ /* shm.c */
+ char          *shm_path(struct shm *);
+ void          *shm_create(struct shm *, size_t);
+-- 
+2.17.1
+
diff --git a/mail/fdm/patches/010-musl_WAIT_ANY.patch b/mail/fdm/patches/010-musl_WAIT_ANY.patch
deleted file mode 100644 (file)
index d37bc7f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/fdm.c
-+++ b/fdm.c
-@@ -22,6 +22,10 @@
- #include <sys/utsname.h>
- #include <sys/wait.h>
-+#ifndef WAIT_ANY
-+#define WAIT_ANY (-1)
-+#endif
-+
- #include <errno.h>
- #include <fcntl.h>
- #include <fnmatch.h>
diff --git a/mail/fdm/patches/020-Fix-compile-with-OpenSSL-1.1.0.patch b/mail/fdm/patches/020-Fix-compile-with-OpenSSL-1.1.0.patch
new file mode 100644 (file)
index 0000000..9ce2364
--- /dev/null
@@ -0,0 +1,32 @@
+From f6c656c5c0368b2fb4284af0484c3bedfc7ae42c Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Tue, 26 Jun 2018 14:14:34 -0700
+Subject: [PATCH] Fix compile with OpenSSL 1.1.0
+
+OpenSSL 1.1.0 deprecared SSL_library_init and SSL_load_error_strings.
+They're part of OPENSSL_init_ssl now.
+---
+ fdm.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/fdm.c b/fdm.c
+index cdf8383..9355b91 100644
+--- a/fdm.c
++++ b/fdm.c
+@@ -717,8 +717,13 @@ retry:
+       }
+       conf.lock_file = lock;
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       SSL_library_init();
+       SSL_load_error_strings();
++#else
++      OPENSSL_init_ssl(0, NULL);
++#endif
+       /* Filter account list. */
+       TAILQ_INIT(&actaq);
+-- 
+2.17.1
+
diff --git a/mail/fdm/patches/020-musl_GLOB_BRACE.patch b/mail/fdm/patches/020-musl_GLOB_BRACE.patch
deleted file mode 100644 (file)
index 2b5683d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/fetch-maildir.c
-+++ b/fetch-maildir.c
-@@ -31,6 +31,8 @@
- #include "fdm.h"
- #include "fetch.h"
-+#define GLOB_BRACE 0
-+
- int   fetch_maildir_commit(struct account *, struct mail *);
- void  fetch_maildir_abort(struct account *);
- u_int fetch_maildir_total(struct account *);
---- a/fetch-mbox.c
-+++ b/fetch-mbox.c
-@@ -32,6 +32,8 @@
- #include "fdm.h"
- #include "fetch.h"
-+#define GLOB_BRACE 0
-+
- int   fetch_mbox_commit(struct account *, struct mail *);
- void  fetch_mbox_abort(struct account *);
- u_int fetch_mbox_total(struct account *);
diff --git a/mail/fdm/patches/030-musl_ACCESSPERMS.patch b/mail/fdm/patches/030-musl_ACCESSPERMS.patch
deleted file mode 100644 (file)
index b781871..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/file.c
-+++ b/file.c
-@@ -26,6 +26,8 @@
- #include "fdm.h"
-+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
-+
- int   mklock(u_int, const char *);
- void  rmlock(u_int, const char *);
- int   lockfd(u_int, int);
diff --git a/mail/fdm/patches/040-openssl-1.1.patch b/mail/fdm/patches/040-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..5df8b28
--- /dev/null
@@ -0,0 +1,31 @@
+From 070cee8d1efba1ca260777a204fba7cdfe676ca5 Mon Sep 17 00:00:00 2001
+From: Nicholas Marriott <nicholas.marriott@gmail.com>
+Date: Tue, 17 Jan 2017 23:14:03 +0000
+Subject: [PATCH] Look for OPENSSL_init_ssl, from Tomasz Miasko.
+
+---
+ configure.ac | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5793c2d..161040c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -93,11 +93,16 @@ if test "x$found_libcrypto" = xno; then
+       AC_MSG_ERROR("libcrypto not found")
+ fi
+ AC_SEARCH_LIBS(
+-      SSL_library_init,
++      OPENSSL_init_ssl,
+       [ssl],
+       found_libssl=yes,
+       found_libssl=no
+ )
++AC_SEARCH_LIBS(
++      SSL_library_init,
++      [ssl],
++      found_libssl=yes
++)
+ if test "x$found_libssl" = xno; then
+       AC_MSG_ERROR("libssl not found")
+ fi
diff --git a/mail/fdm/src/compat/b64_ntop.c b/mail/fdm/src/compat/b64_ntop.c
deleted file mode 100644 (file)
index 0d222cf..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (c) 1996, 1998 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-/*
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
-//#include <config.h>
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "fdm.h"
-
-#define Assert(Cond) if (!(Cond)) abort()
-
-static const char Base64[] =
-       "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const char Pad64 = '=';
-
-/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
-   The following encoding technique is taken from RFC 1521 by Borenstein
-   and Freed.  It is reproduced here in a slightly edited form for
-   convenience.
-
-   A 65-character subset of US-ASCII is used, enabling 6 bits to be
-   represented per printable character. (The extra 65th character, "=",
-   is used to signify a special processing function.)
-
-   The encoding process represents 24-bit groups of input bits as output
-   strings of 4 encoded characters. Proceeding from left to right, a
-   24-bit input group is formed by concatenating 3 8-bit input groups.
-   These 24 bits are then treated as 4 concatenated 6-bit groups, each
-   of which is translated into a single digit in the base64 alphabet.
-
-   Each 6-bit group is used as an index into an array of 64 printable
-   characters. The character referenced by the index is placed in the
-   output string.
-
-                         Table 1: The Base64 Alphabet
-
-      Value Encoding  Value Encoding  Value Encoding  Value Encoding
-          0 A            17 R            34 i            51 z
-          1 B            18 S            35 j            52 0
-          2 C            19 T            36 k            53 1
-          3 D            20 U            37 l            54 2
-          4 E            21 V            38 m            55 3
-          5 F            22 W            39 n            56 4
-          6 G            23 X            40 o            57 5
-          7 H            24 Y            41 p            58 6
-          8 I            25 Z            42 q            59 7
-          9 J            26 a            43 r            60 8
-         10 K            27 b            44 s            61 9
-         11 L            28 c            45 t            62 +
-         12 M            29 d            46 u            63 /
-         13 N            30 e            47 v
-         14 O            31 f            48 w         (pad) =
-         15 P            32 g            49 x
-         16 Q            33 h            50 y
-
-   Special processing is performed if fewer than 24 bits are available
-   at the end of the data being encoded.  A full encoding quantum is
-   always completed at the end of a quantity.  When fewer than 24 input
-   bits are available in an input group, zero bits are added (on the
-   right) to form an integral number of 6-bit groups.  Padding at the
-   end of the data is performed using the '=' character.
-
-   Since all base64 input is an integral number of octets, only the
-   following cases can arise:
-
-       (1) the final quantum of encoding input is an integral
-           multiple of 24 bits; here, the final unit of encoded
-          output will be an integral multiple of 4 characters
-          with no "=" padding,
-       (2) the final quantum of encoding input is exactly 8 bits;
-           here, the final unit of encoded output will be two
-          characters followed by two "=" padding characters, or
-       (3) the final quantum of encoding input is exactly 16 bits;
-           here, the final unit of encoded output will be three
-          characters followed by one "=" padding character.
-   */
-
-int
-local_b64_ntop(uint8_t const *src, size_t srclength, char *target, size_t targsize) {
-       size_t datalength = 0;
-       uint8_t input[3];
-       uint8_t output[4];
-       size_t i;
-
-       while (2 < srclength) {
-               input[0] = *src++;
-               input[1] = *src++;
-               input[2] = *src++;
-               srclength -= 3;
-
-               output[0] = input[0] >> 2;
-               output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-               output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-               output[3] = input[2] & 0x3f;
-               Assert(output[0] < 64);
-               Assert(output[1] < 64);
-               Assert(output[2] < 64);
-               Assert(output[3] < 64);
-
-               if (datalength + 4 > targsize)
-                       return (-1);
-               target[datalength++] = Base64[output[0]];
-               target[datalength++] = Base64[output[1]];
-               target[datalength++] = Base64[output[2]];
-               target[datalength++] = Base64[output[3]];
-       }
-
-       /* Now we worry about padding. */
-       if (0 != srclength) {
-               /* Get what's left. */
-               input[0] = input[1] = input[2] = '\0';
-               for (i = 0; i < srclength; i++)
-                       input[i] = *src++;
-               output[0] = input[0] >> 2;
-               output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-               output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-               Assert(output[0] < 64);
-               Assert(output[1] < 64);
-               Assert(output[2] < 64);
-
-               if (datalength + 4 > targsize)
-                       return (-1);
-               target[datalength++] = Base64[output[0]];
-               target[datalength++] = Base64[output[1]];
-               if (srclength == 1)
-                       target[datalength++] = Pad64;
-               else
-                       target[datalength++] = Base64[output[2]];
-               target[datalength++] = Pad64;
-       }
-       if (datalength >= targsize)
-               return (-1);
-       target[datalength] = '\0'; /* Returned value doesn't count \0. */
-       return (datalength);
-}
diff --git a/mail/fdm/src/compat/b64_pton.c b/mail/fdm/src/compat/b64_pton.c
deleted file mode 100644 (file)
index 0e9363a..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-/*
- * Copyright (c) 1996, 1998 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-/*
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
-//#include <config.h>
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "fdm.h"
-
-#define Assert(Cond) if (!(Cond)) abort()
-
-static const char Base64[] =
-       "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const char Pad64 = '=';
-
-/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
-   The following encoding technique is taken from RFC 1521 by Borenstein
-   and Freed.  It is reproduced here in a slightly edited form for
-   convenience.
-
-   A 65-character subset of US-ASCII is used, enabling 6 bits to be
-   represented per printable character. (The extra 65th character, "=",
-   is used to signify a special processing function.)
-
-   The encoding process represents 24-bit groups of input bits as output
-   strings of 4 encoded characters. Proceeding from left to right, a
-   24-bit input group is formed by concatenating 3 8-bit input groups.
-   These 24 bits are then treated as 4 concatenated 6-bit groups, each
-   of which is translated into a single digit in the base64 alphabet.
-
-   Each 6-bit group is used as an index into an array of 64 printable
-   characters. The character referenced by the index is placed in the
-   output string.
-
-                         Table 1: The Base64 Alphabet
-
-      Value Encoding  Value Encoding  Value Encoding  Value Encoding
-          0 A            17 R            34 i            51 z
-          1 B            18 S            35 j            52 0
-          2 C            19 T            36 k            53 1
-          3 D            20 U            37 l            54 2
-          4 E            21 V            38 m            55 3
-          5 F            22 W            39 n            56 4
-          6 G            23 X            40 o            57 5
-          7 H            24 Y            41 p            58 6
-          8 I            25 Z            42 q            59 7
-          9 J            26 a            43 r            60 8
-         10 K            27 b            44 s            61 9
-         11 L            28 c            45 t            62 +
-         12 M            29 d            46 u            63 /
-         13 N            30 e            47 v
-         14 O            31 f            48 w         (pad) =
-         15 P            32 g            49 x
-         16 Q            33 h            50 y
-
-   Special processing is performed if fewer than 24 bits are available
-   at the end of the data being encoded.  A full encoding quantum is
-   always completed at the end of a quantity.  When fewer than 24 input
-   bits are available in an input group, zero bits are added (on the
-   right) to form an integral number of 6-bit groups.  Padding at the
-   end of the data is performed using the '=' character.
-
-   Since all base64 input is an integral number of octets, only the
-   following cases can arise:
-
-       (1) the final quantum of encoding input is an integral
-           multiple of 24 bits; here, the final unit of encoded
-          output will be an integral multiple of 4 characters
-          with no "=" padding,
-       (2) the final quantum of encoding input is exactly 8 bits;
-           here, the final unit of encoded output will be two
-          characters followed by two "=" padding characters, or
-       (3) the final quantum of encoding input is exactly 16 bits;
-           here, the final unit of encoded output will be three
-          characters followed by one "=" padding character.
-   */
-
-/* skips all whitespace anywhere.
-   converts characters, four at a time, starting at (or after)
-   src from base - 64 numbers into three 8 bit bytes in the target area.
-   it returns the number of data bytes stored at the target, or -1 on error.
- */
-
-static int b64rmap_initialized = 0;
-static uint8_t b64rmap[256];
-
-static const uint8_t b64rmap_special = 0xf0;
-static const uint8_t b64rmap_end = 0xfd;
-static const uint8_t b64rmap_space = 0xfe;
-static const uint8_t b64rmap_invalid = 0xff;
-
-/**
- * Initializing the reverse map is not thread safe.
- * Which is fine for NSD. For now...
- **/
-static void
-b64_initialize_rmap ()
-{
-       int i;
-       char ch;
-
-       /* Null: end of string, stop parsing */
-       b64rmap[0] = b64rmap_end;
-
-       for (i = 1; i < 256; ++i) {
-               ch = (char)i;
-               /* Whitespaces */
-               if (isspace(ch))
-                       b64rmap[i] = b64rmap_space;
-               /* Padding: stop parsing */
-               else if (ch == Pad64)
-                       b64rmap[i] = b64rmap_end;
-               /* Non-base64 char */
-               else
-                       b64rmap[i] = b64rmap_invalid;
-       }
-
-       /* Fill reverse mapping for base64 chars */
-       for (i = 0; Base64[i] != '\0'; ++i)
-               b64rmap[(uint8_t)Base64[i]] = i;
-
-       b64rmap_initialized = 1;
-}
-
-static int
-b64_pton_do(char const *src, uint8_t *target, size_t targsize)
-{
-       int tarindex, state, ch;
-       uint8_t ofs;
-
-       state = 0;
-       tarindex = 0;
-
-       while (1)
-       {
-               ch = *src++;
-               ofs = b64rmap[ch];
-
-               if (ofs >= b64rmap_special) {
-                       /* Ignore whitespaces */
-                       if (ofs == b64rmap_space)
-                               continue;
-                       /* End of base64 characters */
-                       if (ofs == b64rmap_end)
-                               break;
-                       /* A non-base64 character. */
-                       return (-1);
-               }
-
-               switch (state) {
-               case 0:
-                       if ((size_t)tarindex >= targsize)
-                               return (-1);
-                       target[tarindex] = ofs << 2;
-                       state = 1;
-                       break;
-               case 1:
-                       if ((size_t)tarindex + 1 >= targsize)
-                               return (-1);
-                       target[tarindex]   |=  ofs >> 4;
-                       target[tarindex+1]  = (ofs & 0x0f)
-                                               << 4 ;
-                       tarindex++;
-                       state = 2;
-                       break;
-               case 2:
-                       if ((size_t)tarindex + 1 >= targsize)
-                               return (-1);
-                       target[tarindex]   |=  ofs >> 2;
-                       target[tarindex+1]  = (ofs & 0x03)
-                                               << 6;
-                       tarindex++;
-                       state = 3;
-                       break;
-               case 3:
-                       if ((size_t)tarindex >= targsize)
-                               return (-1);
-                       target[tarindex] |= ofs;
-                       tarindex++;
-                       state = 0;
-                       break;
-               default:
-                       abort();
-               }
-       }
-
-       /*
-        * We are done decoding Base-64 chars.  Let's see if we ended
-        * on a byte boundary, and/or with erroneous trailing characters.
-        */
-
-       if (ch == Pad64) {              /* We got a pad char. */
-               ch = *src++;            /* Skip it, get next. */
-               switch (state) {
-               case 0:         /* Invalid = in first position */
-               case 1:         /* Invalid = in second position */
-                       return (-1);
-
-               case 2:         /* Valid, means one byte of info */
-                       /* Skip any number of spaces. */
-                       for ((void)NULL; ch != '\0'; ch = *src++)
-                               if (b64rmap[ch] != b64rmap_space)
-                                       break;
-                       /* Make sure there is another trailing = sign. */
-                       if (ch != Pad64)
-                               return (-1);
-                       ch = *src++;            /* Skip the = */
-                       /* Fall through to "single trailing =" case. */
-                       /* FALLTHROUGH */
-
-               case 3:         /* Valid, means two bytes of info */
-                       /*
-                        * We know this char is an =.  Is there anything but
-                        * whitespace after it?
-                        */
-                       for ((void)NULL; ch != '\0'; ch = *src++)
-                               if (b64rmap[ch] != b64rmap_space)
-                                       return (-1);
-
-                       /*
-                        * Now make sure for cases 2 and 3 that the "extra"
-                        * bits that slopped past the last full byte were
-                        * zeros.  If we don't check them, they become a
-                        * subliminal channel.
-                        */
-                       if (target[tarindex] != 0)
-                               return (-1);
-               }
-       } else {
-               /*
-                * We ended by seeing the end of the string.  Make sure we
-                * have no partial bytes lying around.
-                */
-               if (state != 0)
-                       return (-1);
-       }
-
-       return (tarindex);
-}
-
-
-static int
-b64_pton_len(char const *src)
-{
-       int tarindex, state, ch;
-       uint8_t ofs;
-
-       state = 0;
-       tarindex = 0;
-
-       while (1)
-       {
-               ch = *src++;
-               ofs = b64rmap[ch];
-
-               if (ofs >= b64rmap_special) {
-                       /* Ignore whitespaces */
-                       if (ofs == b64rmap_space)
-                               continue;
-                       /* End of base64 characters */
-                       if (ofs == b64rmap_end)
-                               break;
-                       /* A non-base64 character. */
-                       return (-1);
-               }
-
-               switch (state) {
-               case 0:
-                       state = 1;
-                       break;
-               case 1:
-                       tarindex++;
-                       state = 2;
-                       break;
-               case 2:
-                       tarindex++;
-                       state = 3;
-                       break;
-               case 3:
-                       tarindex++;
-                       state = 0;
-                       break;
-               default:
-                       abort();
-               }
-       }
-
-       /*
-        * We are done decoding Base-64 chars.  Let's see if we ended
-        * on a byte boundary, and/or with erroneous trailing characters.
-        */
-
-       if (ch == Pad64) {              /* We got a pad char. */
-               ch = *src++;            /* Skip it, get next. */
-               switch (state) {
-               case 0:         /* Invalid = in first position */
-               case 1:         /* Invalid = in second position */
-                       return (-1);
-
-               case 2:         /* Valid, means one byte of info */
-                       /* Skip any number of spaces. */
-                       for ((void)NULL; ch != '\0'; ch = *src++)
-                               if (b64rmap[ch] != b64rmap_space)
-                                       break;
-                       /* Make sure there is another trailing = sign. */
-                       if (ch != Pad64)
-                               return (-1);
-                       ch = *src++;            /* Skip the = */
-                       /* Fall through to "single trailing =" case. */
-                       /* FALLTHROUGH */
-
-               case 3:         /* Valid, means two bytes of info */
-                       /*
-                        * We know this char is an =.  Is there anything but
-                        * whitespace after it?
-                        */
-                       for ((void)NULL; ch != '\0'; ch = *src++)
-                               if (b64rmap[ch] != b64rmap_space)
-                                       return (-1);
-
-               }
-       } else {
-               /*
-                * We ended by seeing the end of the string.  Make sure we
-                * have no partial bytes lying around.
-                */
-               if (state != 0)
-                       return (-1);
-       }
-
-       return (tarindex);
-}
-
-
-int
-local_b64_pton(char const *src, uint8_t *target, size_t targsize)
-{
-       if (!b64rmap_initialized)
-               b64_initialize_rmap ();
-
-       if (target)
-               return b64_pton_do (src, target, targsize);
-       else
-               return b64_pton_len (src);
-}
index b1441bb95ce4cd8e90e3f8c0f2dbc57b5fc1b667..a1ae713a2e8a902dba2b134d8be7732505e9fbd4 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Copyright (C) 2009 David Cooper <dave@kupesoft.com>
 # Copyright (C) 2009-2015 OpenWrt.org
-# Copyright (C) 2016 Daniel Dickinson <lede@daniel.thecshore.com>
+# Copyright (C) 2016 Daniel Dickinson <cshored@thecshore.com>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -19,7 +19,7 @@ PKG_HASH:=2aec48d47b02facf2a33cf97a7434e969c1a054224406e6c55320d825c7902b2
 
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
-PKG_MAINTAINER:=Daniel Dickinson <lede@daniel.thecshore.com>
+PKG_MAINTAINER:=Daniel Dickinson <cshoreded@thecshore.com>
 
 include $(INCLUDE_DIR)/package.mk
 
index 433cfc084db3c13087f2e920109ed0d5b5e8a6aa..20c12751360d532aa6f86a082d4595e21337c0a8 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nail
 PKG_VERSION:=12.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_LICENSE:=BSD-2-Clause
 
 PKG_SOURCE:=heirloom-mailx_$(PKG_VERSION).orig.tar.gz
index 793bc3dc09600053ff080cb890d929a331924904..96a51454972552c5c2a69ceed8b776bc97f8eddb 100644 (file)
@@ -4,7 +4,7 @@
  
        cp = ssl_method_string(uhp);
        if (cp != NULL) {
-+#ifndef OPENSSL_NO_SSL2
++#if !defined(OPENSSL_NO_SSL2) && !OPENSSL_VERSION_NUMBER >= 0x10100000L
                if (equal(cp, "ssl2"))
                        method = SSLv2_client_method();
 -              else if (equal(cp, "ssl3"))
diff --git a/mail/nail/patches/200-handle-openssl-no-egd.patch b/mail/nail/patches/200-handle-openssl-no-egd.patch
new file mode 100644 (file)
index 0000000..d14c2d2
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/openssl.c
++++ b/openssl.c
+@@ -137,7 +137,11 @@ ssl_rand_init(void)
+       if ((cp = value("ssl-rand-egd")) != NULL) {
+               cp = expand(cp);
++#ifndef OPENSSL_NO_EGD
+               if (RAND_egd(cp) == -1) {
++#else
++              if (1) {
++#endif
+                       fprintf(stderr, catgets(catd, CATSET, 245,
+                               "entropy daemon at \"%s\" not available\n"),
+                                       cp);
index 9a441e61acf30dc025d4e9534dcf243bbca052fc..6a64e2c634e1137fcea5608f5772abe66965dbce 100644 (file)
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=opendkim
 PKG_VERSION:=2.10.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
@@ -20,6 +20,7 @@ PKG_LICENSE_FILES:=LICENSE LICENSE.Sendmail
 
 PKG_INSTALL:=1
 PKG_BUILD_DEPENDS:=openssl
+PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
 
diff --git a/mail/opendkim/patches/010-openssl_1.1.0_compat.patch b/mail/opendkim/patches/010-openssl_1.1.0_compat.patch
new file mode 100644 (file)
index 0000000..3839908
--- /dev/null
@@ -0,0 +1,90 @@
+Description: Build and work with either openssl 1.0.2 or 1.1.0
+   * Add patch to build with either openssl 1.0.2 or 1.1.0 (Closes: #828466)
+     - Thanks to Sebastian Andrzej Siewior for the patch
+Author: Sebastian Andrzej Siewior
+Bug-Debian: http://bugs.debian.org/828466
+Origin: vendor
+Forwarded: no
+Reviewed-By: Scott Kitterman <scott@kitterman.com>
+Last-Update: <YYYY-MM-DD>
+
+--- opendkim-2.11.0~alpha.orig/configure.ac
++++ opendkim-2.11.0~alpha/configure.ac
+@@ -864,26 +864,28 @@ then
+       AC_SEARCH_LIBS([ERR_peek_error], [crypto], ,
+                      AC_MSG_ERROR([libcrypto not found]))
+-      AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
+-              [
+-                      if test x"$enable_shared" = x"yes"
+-                      then
+-                              AC_MSG_ERROR([Cannot build shared opendkim
+-                                            against static openssl libraries.
+-                                            Configure with --disable-shared
+-                                            to get this working or obtain a
+-                                            shared libssl library for
+-                                            opendkim to use.])
+-                      fi
+-                      # avoid caching issue - last result of SSL_library_init
+-                      # shouldn't be cached for this next check
+-                      unset ac_cv_search_SSL_library_init
+-                      LIBCRYPTO_LIBS="$LIBCRYPTO_LIBS -ldl"
+-                      AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
+-                                     AC_MSG_ERROR([libssl not found]), [-ldl])
+-              ]
+-      )
++      AC_LINK_IFELSE(
++                     [AC_LANG_PROGRAM([[#include <openssl/ssl.h>]],
++                                      [[SSL_library_init();]])],
++                                      [od_have_ossl="yes";],
++                                      [od_have_ossl="no";])
++      if test x"$od_have_ossl" = x"no"
++      then
++              if test x"$enable_shared" = x"yes"
++              then
++                      AC_MSG_ERROR([Cannot build shared opendkim
++                                    against static openssl libraries.
++                                    Configure with --disable-shared
++                                    to get this working or obtain a
++                                    shared libssl library for
++                                    opendkim to use.])
++              fi
++
++              LIBCRYPTO_LIBS="$LIBCRYPTO_LIBS -ldl"
++              AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
++                             AC_MSG_ERROR([libssl not found]), [-ldl])
++      fi
+       AC_CHECK_DECL([SHA256_DIGEST_LENGTH],
+                       AC_DEFINE([HAVE_SHA256], 1,
+--- opendkim-2.11.0~alpha.orig/opendkim/opendkim-crypto.c
++++ opendkim-2.11.0~alpha/opendkim/opendkim-crypto.c
+@@ -222,7 +222,11 @@ dkimf_crypto_free_id(void *ptr)
+       {
+               assert(pthread_setspecific(id_key, ptr) == 0);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000
++              OPENSSL_thread_stop();
++#else
+               ERR_remove_state(0);
++#endif
+               free(ptr);
+@@ -392,11 +396,15 @@ dkimf_crypto_free(void)
+ {
+       if (crypto_init_done)
+       {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000
++              OPENSSL_thread_stop();
++#else
+               CRYPTO_cleanup_all_ex_data();
+               CONF_modules_free();
+               EVP_cleanup();
+               ERR_free_strings();
+               ERR_remove_state(0);
++#endif
+               if (nmutexes > 0)
+               {
index 9add29e7862eab7d3daf89eab3b0fe69a5b981d9..7c05a2eb441229593f2f7e6dfc01cac75e6179cf 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dovecot-pigeonhole
-PKG_VERSION_PLUGIN:=0.4.21
+PKG_VERSION_PLUGIN:=0.5.1
 PKG_VERSION_DOVECOT:=$(shell make --no-print-directory -C ../dovecot/ val.PKG_VERSION V=s)
 PKG_VERSION:=$(PKG_VERSION_DOVECOT)-$(PKG_VERSION_PLUGIN)
 PKG_RELEASE:=2
 
-DOVECOT_VERSION:=2.2
+DOVECOT_VERSION:=2.3
 
 PKG_SOURCE:=dovecot-$(DOVECOT_VERSION)-pigeonhole-$(PKG_VERSION_PLUGIN).tar.gz
 PKG_SOURCE_URL:=https://pigeonhole.dovecot.org/releases/$(DOVECOT_VERSION)
-PKG_HASH:=4ae09cb788c5334d167f5a89ee70b0616c3231e5904ad258ce408e4953cfdd6a
+PKG_HASH:=e3b0aa59261881bcb0d33a6c398f3cb5f9f75e077e67bae175cf33c362577547
 PKG_LICENSE:=LGPL-2.1
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL
 
index 2f862d094c55193a07f40084d8353b9685cd44db..4f29945fc36c99d8f1055142510e0dc5543367a5 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ffmpeg
 PKG_VERSION:=3.2.10
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://ffmpeg.org/releases/
@@ -442,9 +442,12 @@ ifeq ($(ARCH),x86_64)
        FFMPEG_CONFIGURE+= --enable-lto
 endif
 
-ifneq ($(CONFIG_YASM),y)
-FFMPEG_CONFIGURE+= --disable-yasm
-
+ifneq ($(CONFIG_TARGET_x86),)
+ifeq ($(CONFIG_NASM),y)
+  FFMPEG_CONFIGURE += --yasmexe=nasm
+else
+  FFMPEG_CONFIGURE += --disable-yasm
+endif
 endif
 
 ifeq ($(BUILD_VARIANT),full)
@@ -477,7 +480,7 @@ ifeq ($(BUILD_VARIANT),full)
        FFMPEG_CONFIGURE+= $(if $(CONFIG_PACKAGE_lame-lib),--enable-libmp3lame)
        # x264 support and fdk-aac support can't coexist and be distributed.
        # Prioritize x264 over fdk-aac in default builds (maintain status-quo).
-       ifeq ($(CONFIG_PACKAGE_libx264),y)
+       ifneq ($(CONFIG_PACKAGE_libx264),)
                FFMPEG_CONFIGURE+= \
                        --enable-gpl \
                        --enable-libx264
@@ -555,7 +558,7 @@ ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libshine),y)
        --enable-libshine --enable-encoder=libshine
 endif
 
-ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libx264),y)
+ifneq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libx264),)
   FFMPEG_CONFIGURE+= \
        --enable-libx264 --enable-encoder=libx264
 endif
@@ -640,7 +643,7 @@ define Build/InstallDev/full
        $(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale} $(1)/usr/include/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.{a,so*} $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.pc $(1)/usr/lib/pkgconfig/
-ifeq ($(CONFIG_PACKAGE_libx264),y)
+ifneq ($(CONFIG_PACKAGE_libx264),)
        $(CP) $(PKG_INSTALL_DIR)/usr/include/libpostproc $(1)/usr/include/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpostproc.{a,so*} $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpostproc.pc $(1)/usr/lib/pkgconfig/
@@ -706,7 +709,7 @@ endef
 define Package/libffmpeg-full/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.so.* $(1)/usr/lib/
-ifeq ($(CONFIG_PACKAGE_libx264),y)
+ifneq ($(CONFIG_PACKAGE_libx264),)
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpostproc.so.* $(1)/usr/lib/
 endif
 endef
index 84890fb1cac8219534b9dce031a825db3ad1fb87..4c2822a6042211fe75066b0a5d751e6efed698cc 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-libav
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -16,7 +16,7 @@ PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
 
 PKG_SOURCE:=gst-libav-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-libav
-PKG_HASH:=2a56aa5d2d8cd912f2bce17f174713d2c417ca298f1f9c28ee66d4aa1e1d9e62
+PKG_HASH:=eff80a02d2f2fb9f34b67e9a26e9954d3218c7aa18e863f2a47805fa7066029d
 
 PKG_LICENSE:=GPL-2.0 LGPL-2.0
 PKG_LICENSE_FILES:=COPYING COPYING.LIB
index 02486ee215438e816b2f50f25b1a206beeb30496..3e0f7cfcba4a139f4a6e733b76d13a961f6bfb73 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-bad
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=COPYING.LIB COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-bad-$(PKG_VERSION)
 PKG_SOURCE:=gst-plugins-bad-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-bad/
-PKG_HASH:=0c7857be16686d5c1ba6e34bd338664d3d4599d32714a8eca5c8a41a101e2d08
+PKG_HASH:=2a77c6908032aafdf2cd2e5823fec948f16a25c2d1497a953828d762dc20d61a
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
@@ -200,7 +200,6 @@ $(eval $(call GstBuildLibrary,adaptivedemux,adaptivedemux,app uridownloader,))
 $(eval $(call GstBuildLibrary,photography,photography,,))
 $(eval $(call GstBuildLibrary,basecamerabinsrc,basecamerabinsrc,app,))
 $(eval $(call GstBuildLibrary,uridownloader,uridownloader,,))
-$(eval $(call GstBuildLibrary,badbase,badbase,,))
 
 # 1: short name
 # 2: description
@@ -257,7 +256,7 @@ $(eval $(call GstBuildPlugin,mpegpsdemux,mpegpsdemux support,pbutils,,))
 $(eval $(call GstBuildPlugin,mpegpsmux,mpegpsmux support,,,))
 #$(eval $(call GstBuildPlugin,mpegtsdemux,mpegtsdemux support,mpegts pbutils,,))
 #$(eval $(call GstBuildPlugin,mpegtsmux,mpegtsmux support,video,,))
-$(eval $(call GstBuildPlugin,mxf,mxf support,badbase audio video,,))
+$(eval $(call GstBuildPlugin,mxf,mxf support,audio video,,))
 $(eval $(call GstBuildPlugin,opusparse,OPUS streams library,pbutils,,+libopus))
 $(eval $(call GstBuildPlugin,pcapparse,pcapparse support,,,))
 $(eval $(call GstBuildPlugin,pnm,pnm support,video,,))
index fe38b2699ef928f4a3569965dcb9ca43131a1d7b..ca8a9bd7bf5329225b12556f8a924796028ed25a 100644 (file)
@@ -1,7 +1,7 @@
-diff -u --recursive gst-plugins-bad-1.12.4-vanilla/configure.ac gst-plugins-bad-1.12.4/configure.ac
---- gst-plugins-bad-1.12.4-vanilla/configure.ac        2018-02-11 19:46:16.942758605 -0500
-+++ gst-plugins-bad-1.12.4/configure.ac        2018-02-11 19:46:38.356808019 -0500
-@@ -3619,38 +3619,6 @@
+diff -u --recursive gst-plugins-bad-1.14.1-vanilla/configure.ac gst-plugins-bad-1.14.1/configure.ac
+--- gst-plugins-bad-1.14.1-vanilla/configure.ac        2018-07-08 22:17:07.553492088 -0400
++++ gst-plugins-bad-1.14.1/configure.ac        2018-07-08 22:17:38.866597074 -0400
+@@ -2600,24 +2600,6 @@
  sys/wasapi/Makefile
  sys/winks/Makefile
  sys/winscreencap/Makefile
@@ -12,37 +12,23 @@ diff -u --recursive gst-plugins-bad-1.12.4-vanilla/configure.ac gst-plugins-bad-
 -tests/examples/avsamplesink/Makefile
 -tests/examples/camerabin2/Makefile
 -tests/examples/codecparsers/Makefile
+-tests/examples/compositor/Makefile
 -tests/examples/directfb/Makefile
 -tests/examples/audiomixmatrix/Makefile
--tests/examples/gl/Makefile
--tests/examples/gl/cocoa/Makefile
--tests/examples/gl/clutter/Makefile
--tests/examples/gl/generic/Makefile
--tests/examples/gl/generic/cube/Makefile
--tests/examples/gl/generic/cubeyuv/Makefile
--tests/examples/gl/generic/doublecube/Makefile
--tests/examples/gl/generic/recordgraphic/Makefile
--tests/examples/gl/gtk/Makefile
--tests/examples/gl/gtk/3dvideo/Makefile
--tests/examples/gl/gtk/filternovideooverlay/Makefile
--tests/examples/gl/gtk/filtervideooverlay/Makefile
--tests/examples/gl/gtk/fxtest/Makefile
--tests/examples/gl/gtk/switchvideooverlay/Makefile
--tests/examples/gl/qt/Makefile
--tests/examples/gl/sdl/Makefile
--tests/examples/gtk/Makefile
+-tests/examples/ipcpipeline/Makefile
 -tests/examples/mpegts/Makefile
 -tests/examples/mxf/Makefile
 -tests/examples/opencv/Makefile
 -tests/examples/uvch264/Makefile
 -tests/examples/waylandsink/Makefile
+-tests/examples/webrtc/Makefile
 -tests/icles/Makefile
  ext/voamrwbenc/Makefile
  ext/voaacenc/Makefile
  ext/assrender/Makefile
-diff -u --recursive gst-plugins-bad-1.12.4-vanilla/Makefile.am gst-plugins-bad-1.12.4/Makefile.am
---- gst-plugins-bad-1.12.4-vanilla/Makefile.am 2018-02-11 19:46:16.980758692 -0500
-+++ gst-plugins-bad-1.12.4/Makefile.am 2018-02-11 19:46:49.443833603 -0500
+diff -u --recursive gst-plugins-bad-1.14.1-vanilla/Makefile.am gst-plugins-bad-1.14.1/Makefile.am
+--- gst-plugins-bad-1.14.1-vanilla/Makefile.am 2018-07-08 22:17:07.553492088 -0400
++++ gst-plugins-bad-1.14.1/Makefile.am 2018-07-08 22:17:51.278638694 -0400
 @@ -2,11 +2,11 @@
  
  SUBDIRS = \
@@ -55,5 +41,5 @@ diff -u --recursive gst-plugins-bad-1.12.4-vanilla/Makefile.am gst-plugins-bad-1
 -      m4 common docs tests tools
 +      m4 common docs tools
  
- # include before EXTRA_DIST for win32 assignment
- include $(top_srcdir)/common/win32.mak
+ EXTRA_DIST = \
+       depcomp \
index ee5e0c86bb5e7bd202de280f5d15fd02b064a356..7c445995de9707dcf6e717cb1a82a98843c571d1 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-base
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=COPYING.LIB COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-base-$(PKG_VERSION)
 PKG_SOURCE:=gst-plugins-base-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-base/
-PKG_HASH:=4c306b03df0212f1b8903784e29bb3493319ba19ebebf13b0c56a17870292282
+PKG_HASH:=1026c7c3082d825d9b5d034c1a6dd8a4ebab60eb3738b0a0afde4ad2dc0b0db5
 
 PKG_CONFIG_DEPENDS:= \
        CONFIG_PACKAGE_gst1-mod-alsa \
index 926cec0393962d5f3a77536d97d61baa32973ac9..774a2aac67c94479c015883ed1b7cc4e2fe29128 100644 (file)
@@ -1,8 +1,8 @@
-diff -u --recursive gst-plugins-base-1.12.4-vanilla/configure.ac gst-plugins-base-1.12.4/configure.ac
---- gst-plugins-base-1.12.4-vanilla/configure.ac       2018-02-11 09:54:25.065243893 -0500
-+++ gst-plugins-base-1.12.4/configure.ac       2018-02-11 09:55:12.112340832 -0500
-@@ -942,24 +942,6 @@
- pkgconfig/gstreamer-video-uninstalled.pc
+diff -u --recursive gst-plugins-base-1.14.1-vanilla/configure.ac gst-plugins-base-1.14.1/configure.ac
+--- gst-plugins-base-1.14.1-vanilla/configure.ac       2018-07-07 18:10:49.601305039 -0400
++++ gst-plugins-base-1.14.1/configure.ac       2018-07-07 18:11:03.465363471 -0400
+@@ -992,40 +992,6 @@
+ pkgconfig/gstreamer-gl-uninstalled.pc
  pkgconfig/gstreamer-plugins-base.pc
  pkgconfig/gstreamer-plugins-base-uninstalled.pc
 -tests/Makefile
@@ -15,6 +15,22 @@ diff -u --recursive gst-plugins-base-1.12.4-vanilla/configure.ac gst-plugins-bas
 -tests/examples/encoding/Makefile
 -tests/examples/fft/Makefile
 -tests/examples/gio/Makefile
+-tests/examples/gl/Makefile
+-tests/examples/gl/generic/Makefile
+-tests/examples/gl/generic/cube/Makefile
+-tests/examples/gl/generic/doublecube/Makefile
+-tests/examples/gl/generic/recordgraphic/Makefile
+-tests/examples/gl/generic/cubeyuv/Makefile
+-tests/examples/gl/qt/Makefile
+-tests/examples/gl/gtk/Makefile
+-tests/examples/gl/gtk/fxtest/Makefile
+-tests/examples/gl/gtk/3dvideo/Makefile
+-tests/examples/gl/gtk/switchvideooverlay/Makefile
+-tests/examples/gl/gtk/filternovideooverlay/Makefile
+-tests/examples/gl/gtk/filtervideooverlay/Makefile
+-tests/examples/gl/cocoa/Makefile
+-tests/examples/gl/sdl/Makefile
+-tests/examples/gl/clutter/Makefile
 -tests/examples/overlay/Makefile
 -tests/examples/seek/Makefile
 -tests/examples/snapshot/Makefile
@@ -26,9 +42,9 @@ diff -u --recursive gst-plugins-base-1.12.4-vanilla/configure.ac gst-plugins-bas
  docs/Makefile
  docs/libs/Makefile
  docs/plugins/Makefile
-diff -u --recursive gst-plugins-base-1.12.4-vanilla/Makefile.am gst-plugins-base-1.12.4/Makefile.am
---- gst-plugins-base-1.12.4-vanilla/Makefile.am        2018-02-11 09:54:25.091243946 -0500
-+++ gst-plugins-base-1.12.4/Makefile.am        2018-02-11 09:55:19.994357073 -0500
+diff -u --recursive gst-plugins-base-1.14.1-vanilla/Makefile.am gst-plugins-base-1.14.1/Makefile.am
+--- gst-plugins-base-1.14.1-vanilla/Makefile.am        2018-07-07 18:10:49.601305039 -0400
++++ gst-plugins-base-1.14.1/Makefile.am        2018-07-07 18:11:09.186387585 -0400
 @@ -11,7 +11,6 @@
        gst-libs                \
        gst sys $(SUBDIRS_EXT)  \
index 315b56a728afce66ed0cf9055fe73fcd3759b0cc..b3fc2c614e8b77bbaf03f890b7e441f477960f91 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-good
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-good-$(PKG_VERSION)
 PKG_SOURCE:=gst-plugins-good-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-good/
-PKG_HASH:=649f49bec60892d47ee6731b92266974c723554da1c6649f21296097715eb957
+PKG_HASH:=34ec062ddb766a32377532e039781f4a16fbc3e8b449e642605bacab26a99172
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
index 187009fd2bb270c96e6087e276d3f942a7fd79f5..0474d411bf7ca56791c2620743b57ca199bd839d 100644 (file)
@@ -1,7 +1,7 @@
-diff -u --recursive gst-plugins-good-1.12.4-vanilla/configure.ac gst-plugins-good-1.12.4/configure.ac
---- gst-plugins-good-1.12.4-vanilla/configure.ac       2018-02-11 10:36:40.335391048 -0500
-+++ gst-plugins-good-1.12.4/configure.ac       2018-02-11 10:37:22.304475546 -0500
-@@ -1061,20 +1061,6 @@
+diff -u --recursive gst-plugins-good-1.14.1-vanilla/configure.ac gst-plugins-good-1.14.1/configure.ac
+--- gst-plugins-good-1.14.1-vanilla/configure.ac       2018-07-07 18:56:53.008234372 -0400
++++ gst-plugins-good-1.14.1/configure.ac       2018-07-07 18:57:24.886355477 -0400
+@@ -1292,22 +1292,6 @@
  sys/v4l2/Makefile
  sys/waveform/Makefile
  sys/ximage/Makefile
@@ -11,9 +11,11 @@ diff -u --recursive gst-plugins-good-1.12.4-vanilla/configure.ac gst-plugins-goo
 -tests/examples/audiofx/Makefile
 -tests/examples/cairo/Makefile
 -tests/examples/equalizer/Makefile
+-tests/examples/gtk/Makefile
 -tests/examples/jack/Makefile
 -tests/examples/level/Makefile
 -tests/examples/rtp/Makefile
+-tests/examples/rtsp/Makefile
 -tests/examples/shapewipe/Makefile
 -tests/examples/spectrum/Makefile
 -tests/examples/v4l2/Makefile
@@ -22,9 +24,9 @@ diff -u --recursive gst-plugins-good-1.12.4-vanilla/configure.ac gst-plugins-goo
  common/Makefile
  common/m4/Makefile
  m4/Makefile
-diff -u --recursive gst-plugins-good-1.12.4-vanilla/Makefile.am gst-plugins-good-1.12.4/Makefile.am
---- gst-plugins-good-1.12.4-vanilla/Makefile.am        2018-02-11 10:36:40.335391048 -0500
-+++ gst-plugins-good-1.12.4/Makefile.am        2018-02-11 10:37:37.242505621 -0500
+diff -u --recursive gst-plugins-good-1.14.1-vanilla/Makefile.am gst-plugins-good-1.14.1/Makefile.am
+--- gst-plugins-good-1.14.1-vanilla/Makefile.am        2018-07-07 18:56:53.008234372 -0400
++++ gst-plugins-good-1.14.1/Makefile.am        2018-07-07 18:57:30.015374957 -0400
 @@ -2,7 +2,6 @@
  
  ALWAYS_SUBDIRS =              \
index cd2b4251a9778f81d59be0bde1ed1bf505bf9de0..bc89f92e876e31fc8c0c5fe682eb370c9ff4bccd 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-ugly
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,12 +20,10 @@ PKG_LICENSE_FILES:=COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-ugly-$(PKG_VERSION)
 PKG_SOURCE:=gst-plugins-ugly-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-ugly/
-PKG_HASH:=1c165b8d888ed350acd8e6ac9f6fe06508e6fcc0a3afc6ccc9fbeb30df9be522
+PKG_HASH:=cff2430bb13f54ef81409a0b3d65ce409a376d4a7bab57a14a97d602539fe1d3
 
 PKG_CONFIG_DEPENDS:= \
        CONFIG_PACKAGE_gst1-mod-asf \
-       CONFIG_PACKAGE_gst1-mod-lame \
-       CONFIG_PACKAGE_gst1-mod-mpg123 \
        CONFIG_PACKAGE_gst1-mod-mpeg2dec \
 
 PKG_FIXUP:=autoreconf
@@ -108,8 +106,6 @@ CONFIGURE_ARGS += \
        --disable-dvdread \
        --disable-dvdsub \
        --disable-iec958 \
-       $(call GST_COND_SELECT,lame) \
-       $(call GST_COND_SELECT,mpg123) \
        $(call GST_COND_SELECT,mpeg2dec) \
        --disable-mpegaudioparse \
        --disable-mpegstream \
@@ -168,8 +164,6 @@ define GstBuildPlugin
 endef
 
 $(eval $(call GstBuildPlugin,asf,ASF demuxer,audio video riff rtp rtsp sdp tag,,))
-$(eval $(call GstBuildPlugin,lame,MP3 encoder (using LAME),audio,,+lame-lib))
-$(eval $(call GstBuildPlugin,mpg123,MP3 decoder (using mpg123),audio tag,,+libid3tag +mpg123))
 $(eval $(call GstBuildPlugin,mpeg2dec,MPEG decoder,video,,+libmpeg2))
 
 $(eval $(call BuildPackage,gstreamer1-plugins-ugly))
index 3b3032765af3496ba7210d9bab09f4b45b3957fb..61fc98a6f7f8ce0a1f25fe4cdb03cd7e6da248eb 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gstreamer1
-PKG_VERSION:=1.12.4
+PKG_VERSION:=1.14.1
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gstreamer-$(PKG_VERSION)
 PKG_SOURCE:=gstreamer-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gstreamer/
-PKG_HASH:=5a8704aa4c2eeb04da192c4a9942f94f860ac1a585de90d9f914bac26a970674
+PKG_HASH:=28d82b0d261544a9bf85b429399929e4986eb00efcf1ce16cc71d269a4c3186c
 
 PKG_FIXUP:=autoreconf
 PKG_REMOVE_FILES:=autogen.sh aclocal.m4
index 9d442ec2e48926873a220ae3b67ffa6df48d771d..28ca442fad345bf223088cbc822f0d7592058760 100644 (file)
@@ -8,16 +8,17 @@ include $(TOPDIR)/rules.mk
  
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/mpromonet/v4l2rtspserver.git
-PKG_SOURCE_VERSION:=d7e8dd4d35a802219222642a2e3b28f2dc5069c1
-PKG_DATE:=2017-12-20
+PKG_MIRROR_HASH:=ccd2424b94feb7c52e53700b8613e16291463e3717aff598385d8439ad8c81af
+PKG_SOURCE_VERSION:=7ead7613fe6719b6004d229130f7d62aa0a149e7
+PKG_DATE:=2018-05-26
 
 PKG_NAME:=v4l2rtspserver
 PKG_VERSION:=$(PKG_DATE)-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Roger Dammit <rogerdammit@gmail.com>
 
-LIVE555_VERSION:=2017.10.28
-LIVE555_MD5SUM:=a5acd14c4fa7b50f7270304d3b4a70ae
+LIVE555_VERSION:=2018.04.25
+LIVE555_MD5SUM:=9b58a5d62659eb29b9bd85d1b29c3a75
 LIVE555_FILE:=live.$(LIVE555_VERSION).tar.gz
 
 CMAKE_INSTALL:=1 
@@ -38,7 +39,7 @@ define Package/v4l2rtspserver/description
 endef
 
 define Package/v4l2rtspserver/conffiles
-       /etc/config/v4l2rtspserver
+/etc/config/v4l2rtspserver
 endef
 
 define Download/live555
@@ -67,13 +68,21 @@ define Build/Prepare
        $(MAKE) $(MAKE_FLAGS) -C $(PKG_BUILD_DIR)/v4l2wrapper CFLAGS="$(TARGET_CFLAGS) -I $(PKG_BUILD_DIR)/v4l2wrapper/inc"
        $(CP) $(PKG_BUILD_DIR)/v4l2wrapper/libv4l2wrapper.a $(PKG_BUILD_DIR)
 
-       # patch cmake file
-       $(SED) 's/DEBUG/RELEASE/' $(PKG_BUILD_DIR)/CMakeLists.txt
+       # cmake patches (these are very hacky and should be a lot cleaner)
+
+       # prevent root path override 
+       $(SED) 's/SET(CMAKE_FIND_ROOT_PATH/#SET(CMAKE_FIND_ROOT_PATH/' $(PKG_BUILD_DIR)/CMakeLists.txt
+
+       # set search path for v4l2wrapper to current build dir
+       $(SED) 's/V4L2WRAPPER_LIBRARY libv4l2wrapper.a/V4L2WRAPPER_LIBRARY libv4l2wrapper.a PATHS "." NO_CMAKE_FIND_ROOT_PATH/' $(PKG_BUILD_DIR)/CMakeLists.txt
+
+       # disable ALSA
+       $(SED) 's/find_package(ALSA QUIET)//' $(PKG_BUILD_DIR)/CMakeLists.txt
 endef
 
 define Package/v4l2rtspserver/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/v4l2rtspserver-$(PKG_VERSION) $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/v4l2rtspserver-$(PKG_VERSION) $(1)/usr/bin/
        mv $(1)/usr/bin/v4l2rtspserver-$(PKG_VERSION) $(1)/usr/bin/v4l2rtspserver
 
        $(INSTALL_DIR) $(1)/etc/init.d
index 0c879889238bc608c15b72584573e1b92aeff86f..382a11e316c9447fb9d8a4a43cf5788d6c6f1c2c 100644 (file)
@@ -1,4 +1,4 @@
-COMPILE_OPTS =                 $(INCLUDES) -I. -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED -DNO_SSTREAM=1 -DALLOW_RTSP_SERVER_PORT_REUSE=1 
+COMPILE_OPTS =                 $(INCLUDES) -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED -DNO_SSTREAM=1 -DALLOW_RTSP_SERVER_PORT_REUSE=1 
 C =                            c
 C_COMPILER =                   $(GCC)
 CFLAGS +=                      $(COMPILE_OPTS)
index 346494170b7b90dd40d8da4f5685835af6ac6fba..a97173c4d6747a723dcaf47fd0d2c487c700d659 100644 (file)
@@ -17,7 +17,7 @@ PKG_SOURCE_VERSION:=$(PKG_REV)
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/clark15b/xupnpd.git
 PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
-PKG_MIRROR_HASH:=333e9938556c9a02b28732b5512626b991c65eaf0eb60d38e29f72ec513d312f
+PKG_MIRROR_HASH:=bba5aae63bb5c70af831a0f2ecbed3b0e39aa814ae383929b8eaef4ca1a8f421
 
 PKG_LICENSE:=GPLv2
 PKG_LICENSE_FILES:=LICENSE
index 344556402be513278329db993493283123ea193c..8aa1160fcad26e99860df44632ff37bf9766e495 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=youtube-dl
-PKG_VERSION:=2018.03.10
+PKG_VERSION:=2018.06.04
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://yt-dl.org/downloads/$(PKG_VERSION)/
-PKG_HASH:=4bfadccb19e379ce38f5601c72dacf0ac5e03881230afee6df2152ab42fa75c5
+PKG_HASH:=436ef69e59a1acf8091f5c294a563d6859ce6ec42543ea3abb501e2c09131301
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
 
 PKG_LICENSE:=Unlicense
index 205b5f122b97d984f2b00d3163ee7b61a40e031b..a6d618bed9facb2cc7aab8022ae9891493d7904b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acme
 PKG_VERSION:=2.7.8
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 PKG_LICENSE:=GPLv3
 
 PKG_SOURCE_PROTO:=git
index 264d335315f3f1a9f76e9ceb0c0ee7986d6617bf..193699cc398ac3e475118cb8155a8c1d5ddfccf9 100644 (file)
@@ -61,7 +61,7 @@ wr = cs:option(Value, "webroot", translate("Webroot directory"),
                translate("Webserver root directory. Set this to the webserver " ..
                          "document root to run Acme in webroot mode. The web " ..
                          "server must be accessible from the internet on port 80."))
-wr.rmempty = false
+wr.optional = true
 
 dom = cs:option(DynamicList, "domains", translate("Domain names"),
                 translate("Domain names to include in the certificate. " ..
@@ -75,7 +75,7 @@ dns = cs:option(Value, "dns", translate("DNS API"),
                           "In DNS mode, the domain name does not have to resolve to the router IP. " ..
                           "DNS mode is also the only mode that supports wildcard certificates. " ..
                           "Using this mode requires the acme-dnsapi package to be installed."))
-dns.rmempty = false
+dns.optional = true
 
 cred = cs:option(DynamicList, "credentials", translate("DNS API credentials"),
                  translate("The credentials for the DNS API mode selected above. " ..
index 2dd63565eb1432ba2c9332764dfa674a0c745ba9..7e6a460509f0636b60c2c331b3d2305a598842bf 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock
-PKG_VERSION:=3.5.2
+PKG_VERSION:=3.5.3
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
index 6cdae471ae823c304e0d46a5cca42623c1dce3c0..a10d158a91b80acb291a949d038fd1fed857a296 100644 (file)
@@ -151,7 +151,7 @@ config source 'spam404'
        option adb_src_desc 'generic blocklist, infrequent updates, approx. 6.000 entries'
        option enabled '0'
 
-config source 'sysctl' 
+config source 'sysctl'
        option adb_src 'http://sysctl.org/cameleon/hosts'
        option adb_src_rset '/^127\.0\.0\.1[[:space:]]+([^([:space:]|#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$2)}'
        option adb_src_desc 'broad blocklist, weekly updates, approx. 16.500 entries'
@@ -181,7 +181,7 @@ config source 'whocares'
        option enabled '0'
 
 config source 'winspy'
-       option adb_src 'https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/win10/spy.txt'
+       option adb_src 'https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt'
        option adb_src_rset '/^0\.0\.0\.0[[:space:]]+([^([:space:]|#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$2)}'
        option adb_src_desc 'focus on windows spy & telemetry domains, infrequent updates, approx. 300 entries'
        option enabled '0'
@@ -203,3 +203,4 @@ config source 'zeus'
        option adb_src_rset '/^([^([:space:]|#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$1)}'
        option adb_src_desc 'focus on zeus botnet by abuse.ch, daily updates, approx. 400 entries'
        option enabled '0'
+
index d0280b3a0dee7ee7ade00d233f9044b3415911da..69242a197fab785596c3750e5fd182ac8c9aad12 100755 (executable)
@@ -10,7 +10,7 @@
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="3.5.2"
+adb_ver="3.5.3"
 adb_sysver="unknown"
 adb_enabled=0
 adb_debug=0
@@ -35,7 +35,7 @@ adb_rtfile="/tmp/adb_runtime.json"
 adb_hashutil="$(command -v sha256sum)"
 adb_hashold=""
 adb_hashnew=""
-adb_cnt=0
+adb_cnt=""
 adb_rc=0
 adb_action="${1:-"start"}"
 adb_pidfile="/var/run/adblock.pid"
@@ -126,11 +126,8 @@ f_envload()
             adb_dnsdir="${adb_dnsdir:-"/tmp"}"
             adb_dnsheader=""
             adb_dnsdeny="awk '{print \"server=/\"\$0\"/\"}'"
-            if [ ${adb_jail} -eq 1 ]
-            then
-                adb_dnsallow="awk '{print \"server=/\"\$0\"/#\"}'"
-                adb_dnshalt="server=/#/"
-            fi
+            adb_dnsallow="awk '{print \"server=/\"\$0\"/#\"}'"
+            adb_dnshalt="server=/#/"
         ;;
         unbound)
             adb_dnsinstance="${adb_dnsinstance:-"0"}"
@@ -138,11 +135,8 @@ f_envload()
             adb_dnsdir="${adb_dnsdir:-"/var/lib/unbound"}"
             adb_dnsheader=""
             adb_dnsdeny="awk '{print \"local-zone: \042\"\$0\"\042 static\"}'"
-            if [ ${adb_jail} -eq 1 ]
-            then
-                adb_dnsallow="awk '{print \"local-zone: \042\"\$0\"\042 transparent\"}'"
-                adb_dnshalt="local-zone: \".\" static"
-            fi
+            adb_dnsallow="awk '{print \"local-zone: \042\"\$0\"\042 transparent\"}'"
+            adb_dnshalt="local-zone: \".\" static"
         ;;
         named)
             adb_dnsinstance="${adb_dnsinstance:-"0"}"
@@ -150,11 +144,8 @@ f_envload()
             adb_dnsdir="${adb_dnsdir:-"/var/lib/bind"}"
             adb_dnsheader="\$TTL 2h"$'\n'"@ IN SOA localhost. root.localhost. (1 6h 1h 1w 2h)"$'\n'"  IN NS localhost."
             adb_dnsdeny="awk '{print \"\"\$0\" CNAME .\n*.\"\$0\" CNAME .\"}'"
-            if [ ${adb_jail} -eq 1 ]
-            then
-                adb_dnsallow="awk '{print \"\"\$0\" CNAME rpz-passthru.\n*.\"\$0\" CNAME rpz-passthru.\"}'"
-                adb_dnshalt="* CNAME ."
-            fi
+            adb_dnsallow="awk '{print \"\"\$0\" CNAME rpz-passthru.\n*.\"\$0\" CNAME rpz-passthru.\"}'"
+            adb_dnshalt="* CNAME ."
         ;;
         kresd)
             adb_dnsinstance="${adb_dnsinstance:-"0"}"
@@ -162,11 +153,8 @@ f_envload()
             adb_dnsdir="${adb_dnsdir:-"/etc/kresd"}"
             adb_dnsheader="\$TTL 2h"$'\n'"@ IN SOA localhost. root.localhost. (1 6h 1h 1w 2h)"$'\n'"  IN NS  localhost."
             adb_dnsdeny="awk '{print \"\"\$0\" CNAME .\n*.\"\$0\" CNAME .\"}'"
-            if [ ${adb_jail} -eq 1 ]
-            then
-                adb_dnsallow="awk '{print \"\"\$0\" CNAME rpz-passthru.\n*.\"\$0\" CNAME rpz-passthru.\"}'"
-                adb_dnshalt="* CNAME ."
-            fi
+            adb_dnsallow="awk '{print \"\"\$0\" CNAME rpz-passthru.\n*.\"\$0\" CNAME rpz-passthru.\"}'"
+            adb_dnshalt="* CNAME ."
         ;;
         dnscrypt-proxy)
             adb_dnsinstance="${adb_dnsinstance:-"0"}"
@@ -174,6 +162,8 @@ f_envload()
             adb_dnsdir="${adb_dnsdir:-"/tmp"}"
             adb_dnsheader=""
             adb_dnsdeny="awk '{print \$0}'"
+            adb_dnsallow=""
+            adb_dnshalt=""
         ;;
     esac
 
@@ -210,9 +200,12 @@ f_envload()
         cnt=$((cnt+1))
     done
 
-    if [ -z "${adb_dns}" ] || [ -z "${adb_dnsdeny}" ] || [ ! -x "$(command -v ${adb_dns})" ] || [ ! -d "${adb_dnsdir}" ]
+    if [ "${dns_up}" != "true" ] || [ -z "${adb_dns}" ] || [ ! -x "$(command -v ${adb_dns})" ]
     then
-        f_log "err" "'${adb_dns}' not running, DNS backend not found"
+        f_log "err" "'${adb_dns}' not running or not executable"
+    elif [ ! -d "${adb_dnsdir}" ]
+    then
+        f_log "err" "'${adb_dnsdir}' backend directory not found"
     fi
 }
 
@@ -352,15 +345,11 @@ f_count()
     adb_cnt=0
     if [ -s "${adb_dnsdir}/${adb_dnsfile}" ] && ([ -z "${mode}" ] || [ "${mode}" = "final" ])
     then
+        adb_cnt="$(( $(wc -l 2>/dev/null < "${adb_dnsdir}/${adb_dnsfile}") - $(wc -l 2>/dev/null < "${adb_tmpdir}/tmp.add_whitelist") ))"
         if [ "${adb_dns}" = "named" ] || [ "${adb_dns}" = "kresd" ]
         then
-            adb_cnt="$(( ($(wc -l 2>/dev/null < "${adb_dnsdir}/${adb_dnsfile}") - $(printf '%s' "${adb_dnsheader}" | grep -c "^")) / 2 ))"
-        else
-            adb_cnt="$(wc -l 2>/dev/null < "${adb_dnsdir}/${adb_dnsfile}")"
+            adb_cnt="$(( (${adb_cnt} - $(printf '%s' "${adb_dnsheader}" | grep -c "^")) / 2 ))"
         fi
-    elif [ "${mode}" = "whitelist" ] && [ -s "${adb_tmpdir}/tmp.whitelist" ]
-    then
-        adb_cnt="$(wc -l 2>/dev/null < "${adb_tmpdir}/tmp.whitelist")"
     elif [ -s "${adb_tmpfile}" ]
     then
         adb_cnt="$(wc -l 2>/dev/null < "${adb_tmpfile}")"
@@ -408,15 +397,15 @@ f_extconf()
     if [ ${adb_enabled} -eq 1 ] && [ ${adb_forcedns} -eq 1 ] && \
        [ -z "$(uci -q get firewall.adblock_dns)" ] && [ $(/etc/init.d/firewall enabled; printf '%u' ${?}) -eq 0 ]
     then
-               uci -q batch <<-EOF
-                       set firewall.adblock_dns="redirect"
-                       set firewall.adblock_dns.name="Adblock DNS"
-                       set firewall.adblock_dns.src="lan"
-                       set firewall.adblock_dns.proto="tcp udp"
-                       set firewall.adblock_dns.src_dport="53"
-                       set firewall.adblock_dns.dest_port="53"
-                       set firewall.adblock_dns.target="DNAT"
-               EOF
+       uci -q batch <<-EOF
+               set firewall.adblock_dns="redirect"
+               set firewall.adblock_dns.name="Adblock DNS"
+               set firewall.adblock_dns.src="lan"
+               set firewall.adblock_dns.proto="tcp udp"
+               set firewall.adblock_dns.src_dport="53"
+               set firewall.adblock_dns.dest_port="53"
+               set firewall.adblock_dns.target="DNAT"
+       EOF
     elif [ -n "$(uci -q get firewall.adblock_dns)" ] && ([ ${adb_enabled} -eq 0 ] || [ ${adb_forcedns} -eq 0 ])
     then
         uci -q delete firewall.adblock_dns
@@ -545,12 +534,20 @@ f_list()
             adb_tmpfile="${adb_tmpdir}/${adb_dnsfile}"
         ;;
         final)
-            if [ -s "${adb_tmpdir}/tmp.whitelist" ]
+            > "${adb_dnsdir}/${adb_dnsfile}"
+
+            if [ -s "${adb_tmpdir}/tmp.add_whitelist" ]
+            then
+                cat "${adb_tmpdir}/tmp.add_whitelist" >> "${adb_dnsdir}/${adb_dnsfile}"
+            fi
+
+            if [ -s "${adb_tmpdir}/tmp.rem_whitelist" ]
             then
-                grep -vf "${adb_tmpdir}/tmp.whitelist" "${adb_tmpdir}/${adb_dnsfile}" | eval "${adb_dnsdeny}" > "${adb_dnsdir}/${adb_dnsfile}"
+                grep -vf "${adb_tmpdir}/tmp.rem_whitelist" "${adb_tmpdir}/${adb_dnsfile}" | eval "${adb_dnsdeny}" >> "${adb_dnsdir}/${adb_dnsfile}"
             else
-                eval "${adb_dnsdeny}" "${adb_tmpdir}/${adb_dnsfile}" > "${adb_dnsdir}/${adb_dnsfile}"
+                eval "${adb_dnsdeny}" "${adb_tmpdir}/${adb_dnsfile}" >> "${adb_dnsdir}/${adb_dnsfile}"
             fi
+
             if [ ${?} -eq 0 ] && [ -n "${adb_dnsheader}" ]
             then
                 printf '%s\n' "${adb_dnsheader}" | cat - "${adb_dnsdir}/${adb_dnsfile}" > "${adb_tmpdir}/${adb_dnsfile}"
@@ -670,7 +667,7 @@ f_switch()
 #
 f_query()
 {
-    local search result field=1 domain="${1}" tld="${1#*.}"
+    local search result prefix suffix field domain="${1}" tld="${1#*.}"
 
     if [ -z "${domain}" ] || [ "${domain}" = "${tld}" ]
     then
@@ -678,16 +675,35 @@ f_query()
     else
         case "${adb_dns}" in
             dnsmasq)
+                prefix=".*[\/\.]"
+                suffix="(\/)"
                 field=2
             ;;
             unbound)
+                prefix=".*[\"\.]"
+                suffix="(static)"
                 field=3
             ;;
+            named)
+                prefix="[^\*].*[\.]"
+                suffix="( \.)"
+                field=1
+            ;;
+            kresd)
+                prefix="[^\*].*[\.]"
+                suffix="( \.)"
+                field=1
+            ;;
+            dnscrypt-proxy)
+                prefix=".*[\.]"
+                suffix=""
+                field=1
+            ;;
         esac
         while [ "${domain}" != "${tld}" ]
         do
             search="${domain//./\.}"
-            result="$(awk -F '/|\"| ' "/^($search|[^\*].*[\/\"\. ]+${search})/{i++;{printf(\"  + %s\n\",\$${field})};if(i>9){printf(\"  + %s\n\",\"[...]\");exit}}" "${adb_dnsdir}/${adb_dnsfile}")"
+            result="$(awk -F '/|\"| ' "/^($search|${prefix}+${search}.*${suffix}$)/{i++;{printf(\"  + %s\n\",\$${field})};if(i>9){printf(\"  + %s\n\",\"[...]\");exit}}" "${adb_dnsdir}/${adb_dnsfile}")"
             printf '%s\n' "::: results for domain '${domain}'"
             printf '%s\n' "${result:-"  - no match"}"
             domain="${tld}"
@@ -700,16 +716,21 @@ f_query()
 #
 f_jsnup()
 {
-    local bg_pid rundate="$(/bin/date "+%d.%m.%Y %H:%M:%S")" status="${1:-"enabled"}" mode="normal mode" no_mail=0
+    local bg_pid rundate status="${1:-"enabled"}" mode="normal mode" no_mail=0
 
     if [ ${adb_rc} -gt 0 ]
     then
         status="error"
+        rundate="$(/bin/date "+%d.%m.%Y %H:%M:%S")"
     fi
     if [ ${adb_enabled} -eq 0 ]
     then
         status="disabled"
     fi
+    if [ "${status}" = "enabled" ]
+    then
+        rundate="$(/bin/date "+%d.%m.%Y %H:%M:%S")"
+    fi
     if [ "${status}" = "suspend" ]
     then
         status="paused"
@@ -719,28 +740,36 @@ f_jsnup()
         no_mail=1
         status="enabled"
     fi
-    if [ "${status}" = "enabled" ]
-    then
-        f_count
-    fi
-
     if [ ${adb_backup_mode} -eq 1 ]
     then
         mode="backup mode"
     fi
 
-    if [ -z "${adb_fetchinfo}" ] && [ -s "${adb_rtfile}" ]
+    if [ -s "${adb_rtfile}" ]
     then
         json_load "$(cat "${adb_rtfile}" 2>/dev/null)"
         json_select data
-        json_get_var adb_fetchinfo "fetch_utility"
+
+        if [ -z "${adb_fetchinfo}" ] && [ -s "${adb_rtfile}" ]
+        then
+            json_get_var adb_fetchinfo "fetch_utility"
+        fi
+        if [ -z "${rundate}" ]
+        then
+            json_get_var rundate "last_rundate"
+        fi
+        if [ -z "${adb_cnt}" ]
+        then
+            json_get_var adb_cnt "overall_domains"
+            adb_cnt="${adb_cnt%% *}"
+        fi
     fi
 
     json_init
     json_add_object "data"
     json_add_string "adblock_status" "${status}"
     json_add_string "adblock_version" "${adb_ver}"
-    json_add_string "overall_domains" "${adb_cnt} (${mode})"
+    json_add_string "overall_domains" "${adb_cnt:-0} (${mode})"
     json_add_string "fetch_utility" "${adb_fetchinfo:-"-"}"
     json_add_string "dns_backend" "${adb_dns} (${adb_dnsdir})"
     json_add_string "last_rundate" "${rundate:-"-"}"
@@ -770,7 +799,7 @@ f_log()
         then
             f_rmdns
             f_jsnup
-            logger -p "${class}" -t "adblock-[${adb_ver}]" "Please also check 'https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md' (${adb_sysver})"
+            logger -p "${class}" -t "adblock-[${adb_ver}]" "Please also check 'https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md'"
             exit 1
         fi
     fi
@@ -787,29 +816,33 @@ f_main()
     tmp_load="${adb_tmpload}"
     tmp_file="${adb_tmpfile}"
     > "${adb_dnsdir}/.${adb_dnsfile}"
-    > "${adb_tmpdir}/tmp.whitelist"
+    > "${adb_tmpdir}/tmp.raw_whitelist"
+    > "${adb_tmpdir}/tmp.add_whitelist"
+    > "${adb_tmpdir}/tmp.rem_whitelist"
     f_log "debug" "f_main ::: dns: ${adb_dns}, fetch_util: ${adb_fetchinfo}, backup: ${adb_backup}, backup_mode: ${adb_backup_mode}, dns_jail: ${adb_jail}, force_srt: ${adb_forcesrt}, force_dns: ${adb_forcedns}, mem_total: ${mem_total:-0}, mem_free: ${mem_free:-0}, max_queue: ${adb_maxqueue}"
 
     # prepare whitelist entries
     #
     if [ -s "${adb_whitelist}" ]
     then
+        adb_whitelist_rset="/^([^([:space:]|\#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$1)}"
+        awk "${adb_whitelist_rset}" "${adb_whitelist}" > "${adb_tmpdir}/tmp.raw_whitelist"
+        f_tld "${adb_tmpdir}/tmp.raw_whitelist"
+
         adb_whitelist_rset="/^([^([:space:]|\#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{gsub(\"\\\.\",\"\\\.\",\$1);print tolower(\"^\"\$1\"\\\|\\\.\"\$1)}"
-        awk "${adb_whitelist_rset}" "${adb_whitelist}" > "${adb_tmpdir}/tmp.whitelist"
-        f_list whitelist
-        if [ ${adb_jail} -eq 1 ] && [ "${adb_dns}" != "dnscrypt-proxy" ]
+        awk "${adb_whitelist_rset}" "${adb_tmpdir}/tmp.raw_whitelist" > "${adb_tmpdir}/tmp.rem_whitelist"
+
+        if [ -n "${adb_dnsallow}" ]
         then
-            adb_whitelist_rset="/^([^([:space:]|\#|\*|\/).]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$1)}"
-            awk "${adb_whitelist_rset}" "${adb_whitelist}" > "${adb_tmpdir}/tmp.dnsjail"
+            eval "${adb_dnsallow}" "${adb_tmpdir}/tmp.raw_whitelist" > "${adb_tmpdir}/tmp.add_whitelist"
         fi
     fi
 
     # build 'dnsjail' list
     #
-    if [ ${adb_jail} -eq 1 ] && [ "${adb_dns}" != "dnscrypt-proxy" ]
+    if [ ${adb_jail} -eq 1 ]
     then
-        f_tld "${adb_tmpdir}/tmp.dnsjail"
-        eval "${adb_dnsallow}" "${adb_tmpdir}/tmp.dnsjail" > "/tmp/${adb_dnsjail}"
+        cat "${adb_tmpdir}/tmp.add_whitelist" > "/tmp/${adb_dnsjail}"
         printf '%s\n' "${adb_dnshalt}" >> "/tmp/${adb_dnsjail}"
         if [ -n "${adb_dnsheader}" ]
         then
index 8b683eeb353bdd9f9e69d23bd539da9869e349d8..778b33188a6805f971fcaec71e5a79b9ccb891b3 100644 (file)
@@ -8,15 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=addrwatch
-PKG_VERSION:=0.8
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.1
+PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-master.tar.gz
-PKG_SOURCE_URL:=https://github.com/fln/addrwatch/releases/download/$(PKG_VERSION)/
-PKG_HASH:=0455bd8d2e18a793e1182712bf4df3e54a5b7575f82f5b79b60deef19ff93df8
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/fln/addrwatch/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=be70150a357558481de8488665da1d6efdfa5dc37666d9fa68e8e73a8b59ade6
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-master
 PKG_FIXUP:=autoreconf
 PKG_BUILD_DEPENDS:=USE_UCLIBC:argp-standalone USE_MUSL:argp-standalone
 
@@ -32,7 +31,7 @@ define Package/addrwatch
 endef
 
 define Package/addrwatch/description
-  This is a tool similar to arpwatch. It main purpose is to monitor network and 
+  This is a tool similar to arpwatch. It main purpose is to monitor network and
   log discovered ethernet/ip pairings. Addrwatch is extremely useful in networks
   with IPv6 autoconfiguration (RFC4862) enabled. It allows to track IPv6
   addresses of hosts using IPv6 privacy extensions (RFC4941).
index 53032b5f6702d4c07fe5f25b342e1c1a8dccbed0..9271335fbd547c16b33cf9a21332faa8d73375a6 100644 (file)
@@ -1,6 +1,8 @@
+diff --git a/configure.ac b/configure.ac
+index e70edc2..5d8b716 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -56,9 +56,6 @@ AC_CHECK_HEADERS([arpa/inet.h netinet/in
+@@ -58,9 +58,6 @@ AC_CHECK_HEADERS([arpa/inet.h netinet/in.h stdint.h stdlib.h syslog.h unistd.h])
  # Checks for typedefs, structures, and compiler characteristics.
  AC_C_INLINE
  AC_TYPE_PID_T
  AC_TYPE_UINT32_T
  AC_TYPE_UINT16_T
  AC_TYPE_UINT8_T
+diff --git a/src/addrwatch.c b/src/addrwatch.c
+index 7647e02..93e1f61 100644
 --- a/src/addrwatch.c
 +++ b/src/addrwatch.c
-@@ -339,7 +339,7 @@ void reload_cb(evutil_socket_t fd, short
+@@ -327,7 +327,7 @@ void reload_cb(evutil_socket_t fd, short events, void *arg)
  void reload_cb(int fd, short events, void *arg)
  #endif
  {
@@ -21,7 +25,7 @@
        log_msg(LOG_DEBUG, "Reopening output files");
  
        output_flatfile_reload();
-@@ -353,7 +353,7 @@ void stop_cb(evutil_socket_t fd, short e
+@@ -341,7 +341,7 @@ void stop_cb(evutil_socket_t fd, short events, void *arg)
  void stop_cb(int fd, short events, void *arg)
  #endif
  {
index c3c0e2e0d3f2fd68e814d2e33a5f305104e0c3bc..da2ab41bdffa89e86e7c8cfd4cdd0ce511ba09aa 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/addrwatch.c
 +++ b/src/addrwatch.c
-@@ -492,7 +492,7 @@ int main(int argc, char *argv[])
+@@ -485,7 +485,7 @@ int main(int argc, char *argv[])
        argp_parse(&argp, argc, argv, 0, &optind, 0);
  
        if (!cfg.hostname) {
diff --git a/net/addrwatch/patches/003-fix-pkt-hash.patch b/net/addrwatch/patches/003-fix-pkt-hash.patch
new file mode 100644 (file)
index 0000000..caae43b
--- /dev/null
@@ -0,0 +1,25 @@
+From 3852468f402bf9070eb1c9bab16cb1119db52f63 Mon Sep 17 00:00:00 2001
+From: Julius Kriukas <julius@kriukas.lt>
+Date: Sun, 4 Feb 2018 21:35:52 +0200
+Subject: [PATCH] Add experimental meson build support
+
+---
+ src/storage.c   |  2 +-
+ 1 file changed, 1 insertions(+), 1 deletion(-)
+
+diff --git a/src/storage.c b/src/storage.c
+index c162496..8b7a77e 100644
+--- a/src/storage.c
++++ b/src/storage.c
+@@ -76,7 +76,7 @@ struct ip_node *blacklist_match(uint8_t *ip_addr, uint8_t addr_len)
+       return NULL;
+ }
+-inline uint16_t pkt_hash(uint8_t *l2_addr, uint8_t *ip_addr, uint8_t len, uint16_t vlan_tag)
++static inline uint16_t pkt_hash(uint8_t *l2_addr, uint8_t *ip_addr, uint8_t len, uint16_t vlan_tag)
+ {
+       int i;
+       uint16_t sum;
+-- 
+2.17.1
+
index 7e472fb3c5839465f4baee9b1a76853f2ca4a1d3..ad2e0430f3338ae0bc2278968274d141ad5caaa4 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=aircrack-ng
 PKG_VERSION:=1.2-rc1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=LICENSE
 
diff --git a/net/aircrack-ng/patches/100-fix-openssl-1.1-compatibility.patch b/net/aircrack-ng/patches/100-fix-openssl-1.1-compatibility.patch
new file mode 100644 (file)
index 0000000..53b6e02
--- /dev/null
@@ -0,0 +1,59 @@
+From 9a1846507ff043c397257206ff21adae90a122f4 Mon Sep 17 00:00:00 2001
+From: Thomas d'Otreppe <tdotreppe@aircrack-ng.org>
+Date: Wed, 21 Dec 2016 00:18:46 +0000
+Subject: [PATCH] Fixed compilation with OpenSSL 1.1.0 (Closes: #1711).
+
+git-svn-id: http://svn.aircrack-ng.org/trunk@2882 28c6078b-6c39-48e3-add9-af49d547ecab
+---
+ src/crypto.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/src/crypto.c b/src/crypto.c
+index c3318753..46fa9c52 100644
+--- a/src/crypto.c
++++ b/src/crypto.c
+@@ -288,7 +288,15 @@ void calc_pmk( char *key, char *essid_pre, unsigned char pmk[40] )
+ void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80], unsigned char mic[20]) {
+       int i;
+       unsigned char pke[100];
++      #if defined(USE_GCRYPT) || OPENSSL_VERSION_NUMBER < 0x10100000L
++              #define HMAC_USE_NO_PTR
++      #endif
++
++      #ifdef HMAC_USE_NO_PTR
+       HMAC_CTX ctx;
++      #else
++      HMAC_CTX * ctx;
++      #endif
+       memcpy( pke, "Pairwise key expansion", 23 );
+@@ -314,6 +322,7 @@ void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80],
+               memcpy( pke + 67, ap->wpa.snonce, 32 );
+       }
++      #ifdef HMAC_USE_NO_PTR
+       HMAC_CTX_init(&ctx);
+       HMAC_Init_ex(&ctx, pmk, 32, EVP_sha1(), NULL);
+       for(i = 0; i < 4; i++ )
+@@ -325,6 +334,20 @@ void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80],
+               HMAC_Final(&ctx, ptk + i*20, NULL);
+       }
+       HMAC_CTX_cleanup(&ctx);
++      #else
++      ctx = HMAC_CTX_new();
++      HMAC_Init_ex(ctx, pmk, 32, EVP_sha1(), NULL);
++      for(i = 0; i < 4; i++ )
++      {
++              pke[99] = i;
++              //HMAC(EVP_sha1(), values[0], 32, pke, 100, ptk + i * 20, NULL);
++              HMAC_Init_ex(ctx, 0, 0, 0, 0);
++              HMAC_Update(ctx, pke, 100);
++              HMAC_Final(ctx, ptk + i*20, NULL);
++      }
++      HMAC_CTX_free(ctx);
++      #endif
++      #undef HMAC_USE_NO_PTR
+       if( ap->wpa.keyver == 1 )
+       {
index c3ffbf572f8dca635759af7b99e2ec51cac47151..710dffc6119f819ae15509b9af701888f76b860d 100644 (file)
@@ -15,12 +15,12 @@ PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/ariang
+define Package/ariang/default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Download Manager
-  DEPENDS:=+uhttpd +aria2
-  TITLE:=AriaNg is a web frontend making aria2 easier to use.
+  DEPENDS:=+aria2
+  TITLE:=AriaNg webui
   URL:=https://github.com/mayswind/AriaNg
   PKGARCH:=all
 endef
@@ -29,6 +29,20 @@ define Package/ariang/description
        AriaNg is a web frontend making aria2 easier to use. AriaNg is written in pure html & javascript, thus it does not need any compilers or runtime environment.
 endef
 
+Package/ariang-nginx/description = $(Package/ariang/description)
+
+define Package/ariang
+  $(Package/ariang/default)
+  DEPENDS += +uhttpd
+  TITLE += for uhttpd webserver
+endef
+
+define Package/ariang-nginx
+  $(Package/ariang/default)
+  DEPENDS += +nginx
+  TITLE += for nginx webserver
+endef
+
 define Build/Compile
 endef
 
@@ -45,4 +59,7 @@ define Package/ariang/install
                $(1)/www/ariang
 endef
 
+Package/ariang-nginx/install = $(Package/ariang/install)
+
 $(eval $(call BuildPackage,ariang))
+$(eval $(call BuildPackage,ariang-nginx))
index fa4543af703c599cb4c4a9368ff86b373784e5ff..e5ac75839f6712ea3e09d4393827d74b0393000c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=autossh
-PKG_VERSION:=1.4e
-PKG_RELEASE:=2
+PKG_VERSION:=1.4f
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=http://www.harding.motd.ca/autossh/
-PKG_HASH:=9e8e10a59d7619176f4b986e256f776097a364d1be012781ea52e08d04679156
+PKG_HASH:=0172e5e1bea40c642e0ef025334be3aadd4ff3b4d62c0b177ed88a8384e2f8f2
 PKG_LICENSE:=0BSD
 
 include $(INCLUDE_DIR)/package.mk
index ed3734642d7a8bf2ff77064154f70f4e53382183..8973821f8699fcb0173e8c1beda38d6a396693a6 100644 (file)
@@ -34,4 +34,14 @@ config BIND_LIBXML2
                format. Building with libjson support will require the
                libxml2 package to be installed as well.
 
+config BIND_ENABLE_EDDSA
+    bool
+    default n
+    prompt "Include Edwards Curve DNSSEC signature support"
+    help
+        Enable BIND support for Edwards Curve DNSSEC signing algorithms
+        described in RFC 8080.
+
+        Note that this requires OpenSSL 1.1, which is not currently
+        the available in OpenWRT, so it is disabled by default.
 endif
index 1005eae3acea41415f74b110ad8c71434205a95e..356433eae16c5fd6d4f946f94d089ba82b3cf4f5 100644 (file)
@@ -9,18 +9,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bind
-PKG_VERSION:=9.11.2-P1
-PKG_RELEASE:=1
+PKG_VERSION:=9.11.3
+PKG_RELEASE:=2
 USERID:=bind=57:bind=57
 
 PKG_MAINTAINER:=Noah Meyerhans <frodo@morgul.net>
-PKG_LICENSE := BSD-3-Clause
+PKG_LICENSE := MPL-2.0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
        http://www.mirrorservice.org/sites/ftp.isc.org/isc/bind9/$(PKG_VERSION) \
        http://ftp.isc.org/isc/bind9/$(PKG_VERSION)
-PKG_HASH:=cec31548832fca3f85d95178d4019b7d702039e8595d4c93914feba337df1212
+PKG_HASH:=0d9dde14b2ec7f9cdc3b69f19540c7a2e4eee7b6c727965dfae48810965876f5
 
 PKG_FIXUP:=autoreconf
 PKG_REMOVE_FILES:=aclocal.m4 libtool.m4
@@ -125,7 +125,9 @@ CONFIGURE_ARGS += \
        --with-gost=no \
        --with-gssapi=no \
        --with-ecdsa=$(if $(CONFIG_OPENSSL_WITH_EC),yes,no) \
+       --with-eddsa=$(if $(CONFIG_BIND_ENABLE_EDDSA),yes,no) \
        --with-readline=no \
+       --enable-atomic=no \
        --sysconfdir=/etc/bind
 
 ifdef CONFIG_BIND_ENABLE_FILTER_AAAA
index 91d5fcf18a5f5d403b607ff28b3dc1c8a150e4d6..90b852760bb4346f2f6e64a88ab6c510f9f37f46 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bitlbee
 PKG_VERSION:=3.5.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://get.bitlbee.org/src/ \
diff --git a/net/bitlbee/patches/010-openssl-1.1-compatibility.patch b/net/bitlbee/patches/010-openssl-1.1-compatibility.patch
new file mode 100644 (file)
index 0000000..02327e6
--- /dev/null
@@ -0,0 +1,50 @@
+--- a/lib/ssl_openssl.c
++++ b/lib/ssl_openssl.c
+@@ -64,11 +64,17 @@ void ssl_init(void)
+ {
+       const SSL_METHOD *meth;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       SSL_library_init();
+       meth = SSLv23_client_method();
+       ssl_ctx = SSL_CTX_new(meth);
+       SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
++#else
++      meth = TLS_client_method();
++      ssl_ctx = SSL_CTX_new(meth);
++      SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION);
++#endif
+       initialized = TRUE;
+ }
+@@ -300,20 +306,20 @@ size_t ssl_des3_encrypt(const unsigned c
+                         const unsigned char *iv, unsigned char **res)
+ {
+       int output_length = 0;
+-      EVP_CIPHER_CTX ctx;
++      EVP_CIPHER_CTX *ctx;
+       *res = g_new0(unsigned char, 72);
+       /* Don't set key or IV because we will modify the parameters */
+-      EVP_CIPHER_CTX_init(&ctx);
+-      EVP_CipherInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, NULL, NULL, 1);
+-      EVP_CIPHER_CTX_set_key_length(&ctx, key_len);
+-      EVP_CIPHER_CTX_set_padding(&ctx, 0);
++      ctx = EVP_CIPHER_CTX_new();
++      EVP_CipherInit_ex(ctx, EVP_des_ede3_cbc(), NULL, NULL, NULL, 1);
++      EVP_CIPHER_CTX_set_key_length(ctx, key_len);
++      EVP_CIPHER_CTX_set_padding(ctx, 0);
+       /* We finished modifying parameters so now we can set key and IV */
+-      EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, 1);
+-      EVP_CipherUpdate(&ctx, *res, &output_length, input, input_len);
+-      EVP_CipherFinal_ex(&ctx, *res, &output_length);
+-      EVP_CIPHER_CTX_cleanup(&ctx);
++      EVP_CipherInit_ex(ctx, NULL, NULL, key, iv, 1);
++      EVP_CipherUpdate(ctx, *res, &output_length, input, input_len);
++      EVP_CipherFinal_ex(ctx, *res, &output_length);
++      EVP_CIPHER_CTX_free(ctx);
+       //EVP_cleanup();
+       return output_length;
index 9035ade8f303f93f90b6d2ad0699618d24b8b0c9..a985645559b69d6ccd24ff80e3aa9bf728df8197 100644 (file)
@@ -11,7 +11,7 @@ PKG_NAME:=chaosvpn
 
 PKG_REV:=2eb24810b5aa0b2d56f21562e52927020dc3090a
 PKG_VERSION:=2014-01-24
-PKG_RELEASE=1
+PKG_RELEASE=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/ryd/chaosvpn.git
@@ -49,7 +49,6 @@ define Package/chaosvpn/install
                $(INSTALL_BIN) $(PKG_BUILD_DIR)/chaosvpn $(1)/usr/sbin/
                $(INSTALL_BIN) ./files/chaosvpn.init $(1)/etc/init.d/chaosvpn
                $(INSTALL_BIN) ./files/chaosvpn.hotplug $(1)/etc/hotplug.d/iface/40-chaosvpn
-               sed  -i -e 's/"\/sbin\/ip /"\/usr\/sbin\/ip /' $(PKG_BUILD_DIR)/chaosvpn.conf
                $(INSTALL_CONF) $(PKG_BUILD_DIR)/chaosvpn.conf $(1)/etc/tinc/chaosvpn.conf
 endef
 
diff --git a/net/chaosvpn/patches/0001-OpenSSL-1.1.0-compile-fix.patch b/net/chaosvpn/patches/0001-OpenSSL-1.1.0-compile-fix.patch
new file mode 100644 (file)
index 0000000..44a644d
--- /dev/null
@@ -0,0 +1,148 @@
+From c842faae63b562acc7d989a9cdc815def9ee2ed6 Mon Sep 17 00:00:00 2001
+From: Sven-Haegar Koch <haegar@sdinet.de>
+Date: Wed, 2 Nov 2016 23:08:24 +0100
+Subject: [PATCH] OpenSSL 1.1.0 compile fix.
+
+---
+ crypto.c | 53 +++++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 35 insertions(+), 18 deletions(-)
+
+diff --git a/crypto.c b/crypto.c
+index e476611..e8b72d3 100644
+--- a/crypto.c
++++ b/crypto.c
+@@ -46,6 +46,10 @@ openssl dgst \
+ */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#define EVP_PKEY_get0_RSA(a) ((a)->pkey.rsa)
++#endif
++
+ EVP_PKEY *
+ crypto_load_key(const char *key, const bool is_private)
+ {
+@@ -80,7 +84,7 @@ crypto_rsa_verify_signature(struct string *databuffer, struct string *signature,
+ {
+       int err;
+       bool retval;
+-      EVP_MD_CTX md_ctx;
++      EVP_MD_CTX *md_ctx;
+       EVP_PKEY *pkey;
+       /* load public key into openssl structure */
+@@ -89,15 +93,22 @@ crypto_rsa_verify_signature(struct string *databuffer, struct string *signature,
+             log_err("crypto_verify_signature: key loading failed\n");
+             return false;
+         }
+-        
++
++        md_ctx = EVP_MD_CTX_create();
++        if (!md_ctx) {
++            log_err("crypto_verify_signature: md_ctx alloc failed\n");
++            return false;
++        }
++
+         /* Verify the signature */
+-        if (EVP_VerifyInit(&md_ctx, EVP_sha512()) != 1) {
++        if (EVP_VerifyInit(md_ctx, EVP_sha512()) != 1) {
+             log_err("crypto_verify_signature: libcrypto verify init failed\n");
++            EVP_MD_CTX_destroy(md_ctx);
+             EVP_PKEY_free(pkey);
+             return false;
+         }
+-        EVP_VerifyUpdate(&md_ctx, string_get(databuffer), string_length(databuffer));
+-        err = EVP_VerifyFinal(&md_ctx, (unsigned char*)string_get(signature), string_length(signature), pkey);
++        EVP_VerifyUpdate(md_ctx, string_get(databuffer), string_length(databuffer));
++        err = EVP_VerifyFinal(md_ctx, (unsigned char*)string_get(signature), string_length(signature), pkey);
+         EVP_PKEY_free(pkey);
+         
+         if (err != 1) {
+@@ -110,7 +121,7 @@ crypto_rsa_verify_signature(struct string *databuffer, struct string *signature,
+         retval = true;
+ bailout_ctx_cleanup:
+-        EVP_MD_CTX_cleanup(&md_ctx);
++        EVP_MD_CTX_destroy(md_ctx);
+         //log_info("Signature Verified Ok.\n");
+       return retval;
+@@ -146,7 +157,7 @@ crypto_rsa_decrypt(struct string *ciphertext, const char *privkey, struct string
+         len = RSA_private_decrypt(string_length(ciphertext),
+             (unsigned char*)string_get(ciphertext),
+             (unsigned char*)string_get(decrypted),
+-            pkey->pkey.rsa,
++            EVP_PKEY_get0_RSA(pkey),
+             RSA_PKCS1_OAEP_PADDING);
+         if (len >= 0) {
+             /* TODO: need cleaner way: */
+@@ -167,28 +178,33 @@ bool
+ crypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct string *aes_iv, struct string *decrypted)
+ {
+     bool retval = false;
+-    EVP_CIPHER_CTX ctx;
++    EVP_CIPHER_CTX *ctx;
+     int decryptspace;
+     int decryptdone;
+-    EVP_CIPHER_CTX_init(&ctx);
+-    if (!EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL,
++    ctx = EVP_CIPHER_CTX_new();
++    if (!ctx) {
++        log_err("crypto_aes_decrypt: ctx alloc failed\n");
++        goto bail_out;
++    }
++
++    if (!EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL,
+         (unsigned char *)string_get(aes_key),
+         (unsigned char *)string_get(aes_iv))) {
+         log_err("crypto_aes_decrypt: init failed\n");
+         ERR_print_errors_fp(stderr);
+         goto bail_out;
+     }
+-    EVP_CIPHER_CTX_set_padding(&ctx, 1);
++    EVP_CIPHER_CTX_set_padding(ctx, 1);
+     
+-    if (string_length(aes_key) != EVP_CIPHER_CTX_key_length(&ctx)) {
++    if (string_length(aes_key) != EVP_CIPHER_CTX_key_length(ctx)) {
+         log_err("crypto_aes_decrypt: invalid key size (%" PRIuPTR " vs expected %d)\n",
+-                string_length(aes_key), EVP_CIPHER_CTX_key_length(&ctx));
++                string_length(aes_key), EVP_CIPHER_CTX_key_length(ctx));
+         goto bail_out;
+     }
+-    if (string_length(aes_iv) != EVP_CIPHER_CTX_iv_length(&ctx)) {
++    if (string_length(aes_iv) != EVP_CIPHER_CTX_iv_length(ctx)) {
+         log_err("crypto_aes_decrypt: invalid iv size (%" PRIuPTR " vs expected %d)\n",
+-                string_length(aes_iv), EVP_CIPHER_CTX_iv_length(&ctx));
++                string_length(aes_iv), EVP_CIPHER_CTX_iv_length(ctx));
+         goto bail_out;
+     }
+@@ -201,7 +217,7 @@ crypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct str
+         goto bail_out;
+     }
+     
+-    if (EVP_DecryptUpdate(&ctx, (unsigned char*)string_get(decrypted),
++    if (EVP_DecryptUpdate(ctx, (unsigned char*)string_get(decrypted),
+             &decryptdone, (unsigned char*)string_get(ciphertext),
+             string_length(ciphertext))) {
+         /* TODO: need cleaner way: */
+@@ -212,7 +228,7 @@ crypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct str
+         goto bail_out;
+     }
+     
+-    if (EVP_DecryptFinal_ex(&ctx,
++    if (EVP_DecryptFinal_ex(ctx,
+             (unsigned char*)string_get(decrypted)+string_length(decrypted),
+             &decryptdone)) {
+         /* TODO: need cleaner way: */
+@@ -226,7 +242,8 @@ crypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct str
+     retval = true;
+ bail_out:
+-    EVP_CIPHER_CTX_cleanup(&ctx);
++    if (ctx)
++        EVP_CIPHER_CTX_free(ctx);
+     return retval;
+ }
index 792a2ea92dbcb8e0f61a30d20e3c25048f643cfe..2a6bd7429b1b06b2b8323d9185de566921a27f1e 100755 (executable)
@@ -12,7 +12,7 @@ PKG_NAME:=ddns-scripts
 PKG_VERSION:=2.7.7
 # Release == build
 # increase on changes of services files or tld_names.dat
-PKG_RELEASE:=6
+PKG_RELEASE:=8
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
@@ -66,13 +66,23 @@ endef
 ###### *************************************************************************
 define Package/ddns-scripts_cloudflare.com-v4
     $(call Package/ddns-scripts/Default)
-    TITLE:=CloudFlare.com API v4 (require cURL)
+    TITLE:=CloudFlare.com API v4 (requires cURL)
     DEPENDS:=ddns-scripts +curl
 endef
 define Package/ddns-scripts_cloudflare.com-v4/description
     Dynamic DNS Client scripts extension for CloudFlare.com API-v4 (require/install cURL)
 endef
 
+###### *************************************************************************
+define Package/ddns-scripts_freedns_42_pl
+    $(call Package/ddns-scripts/Default)
+    TITLE:=DDNS extension for FreeDNS.42.pl (requires cURL)
+    DEPENDS:=ddns-scripts +curl
+endef
+define Package/ddns-scripts_freedns_42_pl/description
+    Dynamic DNS Client scripts extension for freedns.42.pl
+endef
+
 ###### *************************************************************************
 define Package/ddns-scripts_godaddy.com-v1
     $(call Package/ddns-scripts/Default)
@@ -282,6 +292,44 @@ define Package/ddns-scripts_cloudflare.com-v4/prerm
        exit 0  # suppress errors
 endef
 
+###### *************************************************************************
+define Package/ddns-scripts_freedns_42_pl/preinst
+       #!/bin/sh
+       # if NOT run buildroot then stop service
+       [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
+       exit 0  # suppress errors
+endef
+define Package/ddns-scripts_freedns_42_pl/install
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_freedns_42_pl
+       $(INSTALL_DIR) $(1)/usr/lib/ddns
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_freedns_42_pl.sh $(1)/usr/lib/ddns
+endef
+define Package/ddns-scripts_freedns_42_pl/postinst
+       #!/bin/sh
+       # remove old services file entries
+       /bin/sed -i '/freedns\.42\.pl/d' $${IPKG_INSTROOT}/etc/ddns/services    >/dev/null 2>&1
+       # and create new
+       printf "%s\\t%s\\n" '"freedns.42.pl"' '"update_freedns_42_pl.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
+       # on real system restart service if enabled
+       [ -z "$${IPKG_INSTROOT}" ] && {
+               [ -x /etc/uci-defaults/ddns_freedns_42_pl ] && \
+                       /etc/uci-defaults/ddns_freedns_42_pl && \
+                               rm -f /etc/uci-defaults/ddns_freedns_42_pl >/dev/null 2>&1
+               /etc/init.d/ddns enabled && \
+                       /etc/init.d/ddns start >/dev/null 2>&1
+       }
+       exit 0  # suppress errors
+endef
+define Package/ddns-scripts_freedns_42_pl/prerm
+       #!/bin/sh
+       # if NOT run buildroot then stop service
+       [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop             >/dev/null 2>&1
+       # remove services file entries
+       /bin/sed -i '/freedns\.42\.pl/d' $${IPKG_INSTROOT}/etc/ddns/services    >/dev/null 2>&1
+       exit 0  # suppress errors
+endef
+
 ###### *************************************************************************
 define Package/ddns-scripts_godaddy.com-v1/preinst
        #!/bin/sh
@@ -447,6 +495,7 @@ endef
 $(eval $(call BuildPackage,ddns-scripts))
 $(eval $(call BuildPackage,ddns-scripts_cloudflare))
 $(eval $(call BuildPackage,ddns-scripts_cloudflare.com-v4))
+$(eval $(call BuildPackage,ddns-scripts_freedns_42_pl))
 $(eval $(call BuildPackage,ddns-scripts_godaddy.com-v1))
 $(eval $(call BuildPackage,ddns-scripts_no-ip_com))
 $(eval $(call BuildPackage,ddns-scripts_nsupdate))
index 3908bb4b07909ea50807c59f5b1e2b6954f89bba..aade4c09b6d32e095f21c94c5b7dd539ba4aaf14 100755 (executable)
@@ -178,6 +178,8 @@ update_config() {
                                                                $uc_uci set $g_cfgfile.$uc_name.$uc_var="dyn.com";;
                                                        free\.editdns\.net)
                                                                $uc_uci set $g_cfgfile.$uc_name.$uc_var="editdns.net";;
+                                                       FreeDNS\.42\.pl)
+                                                               $uc_uci set $g_cfgfile.$uc_name.$uc_var="freedns.42.pl";;
                                                        domains\.google\.com)
                                                                $uc_uci set $g_cfgfile.$uc_name.$uc_var="google.com";;
                                                        loopia\.com)
index c944fc2aa347bd35c74898b2a757a90fd053a90f..845cc2b003a5274c02d0573f6ad8722962530d3f 100755 (executable)
@@ -72,21 +72,17 @@ KNOT_HOST=$(which khost)
 DRILL=$(which drill)
 HOSTIP=$(which hostip)
 NSLOOKUP=$(which nslookup)
-NSLOOKUP_MUSL=$($(which nslookup) localhost 2>&1 | grep -F "(null)")   # not empty busybox compiled with musl
 
 # Transfer Programs
 WGET=$(which wget)
 WGET_SSL=$(which wget-ssl)
 
 CURL=$(which curl)
-# CURL_SSL not empty then SSL support available
-CURL_SSL=$($(which curl) -V 2>/dev/null | grep "Protocols:" | grep -F "https")
+
 # CURL_PROXY not empty then Proxy support available
 CURL_PROXY=$(find /lib /usr/lib -name libcurl.so* -exec strings {} 2>/dev/null \; | grep -im1 "all_proxy")
 
 UCLIENT_FETCH=$(which uclient-fetch)
-# UCLIENT_FETCH_SSL not empty then SSL support available
-UCLIENT_FETCH_SSL=$(find /lib /usr/lib -name libustream-ssl.so* 2>/dev/null)
 
 # Global configuration settings
 # allow NON-public IP's
@@ -723,6 +719,8 @@ do_transfer() {
        # 2nd choice is cURL IPv4/IPv6/HTTPS
        # libcurl might be compiled without Proxy or HTTPS Support
        elif [ -n "$CURL" ]; then
+               # CURL_SSL not empty then SSL support available
+               CURL_SSL=$($(which curl) -V 2>/dev/null | grep "Protocols:" | grep -F "https")
                __PROG="$CURL -RsS -o $DATFILE --stderr $ERRFILE"
                # check HTTPS support
                [ -z "$CURL_SSL" -a $use_https -eq 1 ] && \
@@ -765,6 +763,8 @@ do_transfer() {
 
        # uclient-fetch possibly with ssl support if /lib/libustream-ssl.so installed
        elif [ -n "$UCLIENT_FETCH" ]; then
+               # UCLIENT_FETCH_SSL not empty then SSL support available
+               UCLIENT_FETCH_SSL=$(find /lib /usr/lib -name libustream-ssl.so* 2>/dev/null)
                __PROG="$UCLIENT_FETCH -q -O $DATFILE"
                # force network/ip not supported
                [ -n "$__BINDIP" ] && \
@@ -1108,6 +1108,7 @@ get_registered_ip() {
                __RUNPROG="$__PROG $lookup_host >$DATFILE 2>$ERRFILE"
                __PROG="hostip"
        elif [ -n "$NSLOOKUP" ]; then   # last use BusyBox nslookup
+               NSLOOKUP_MUSL=$($(which nslookup) localhost 2>&1 | grep -F "(null)")    # not empty busybox compiled with musl
                [ $force_dnstcp -ne 0 ] && \
                        write_log 14 "Busybox nslookup - no support for 'DNS over TCP'"
                [ -n "$NSLOOKUP_MUSL" -a -n "$dns_server" ] && \
index 58d0cc160da8cf0bf96721b4694adc551396b910..308d569716a3be9c915a16bec27d1ac85eb6a95b 100644 (file)
@@ -35,6 +35,7 @@
 #
 #.cloudflare.com-v1    !!! Please install additional package "ddns-scripts_cloudflare"
 #.cloudflare.com-v4    !!! Please install additional package "ddns-scripts_cloudflare.com-v4"
+#.FreeDNS.42.pl        !!! Please install additional package "ddns-scripts_freedns_42_pl"
 #.godaddy.com-v1       !!! Please install additional package "ddns-scripts_godaddy.com-v1"
 #.no-ip.com / noip.com !!! Please install additional package "ddns-scripts_no-ip_com"
 #.route53-v1           !!! Please install additional package "ddns-scripts_route53-v1"
index 0c77e8b2bba27d0f2ca7e094b0f20acca12147f6..1a800d28602eaddba890185eb45a9524e6fb1d75 100755 (executable)
@@ -20,7 +20,7 @@
 #
 
 # check parameters
-[ -z "$CURL_SSL" ] && write_log 14 "Cloudflare communication require cURL with SSL support. Please install"
+[ -z "$CURL" ] && [ -z "$CURL_SSL" ] && write_log 14 "Cloudflare communication require cURL with SSL support. Please install"
 [ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"
 [ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing secret as 'password'"
 [ $use_https -eq 0 ] && use_https=1    # force HTTPS
diff --git a/net/ddns-scripts/files/update_freedns_42_pl.sh b/net/ddns-scripts/files/update_freedns_42_pl.sh
new file mode 100755 (executable)
index 0000000..5871003
--- /dev/null
@@ -0,0 +1,17 @@
+#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
+#.2018 Michal Lipka <michal at sysadmin dot care>
+local __DUMMY
+local __URL="https://freedns.42.pl/xmlrpc.php"
+[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
+[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
+[ $ip_dynamic -eq 1 ] && __IP='\&lt;dynamic\&gt;'
+PROG="$(which curl) -sk"
+write_log 7 "sending update to freedns.42.pl with ip $__IP"
+XMLDATA="<?xml version='1.0'?><methodCall><methodName>xname.updateArecord</methodName><params><param><value><struct><member><name>name</name><value><string>[RECORDNAME]</string></value></member><member><name>zone</name><value><string>[ZONENAME]</string></value></member><member><name>oldaddress</name><value><string>*</string></value></member><member><name>updatereverse</name><value><string>0</string></value></member><member><name>user</name><value><string>[USERNAME]</string></value></member><member><name>ttl</name><value><string>600</string></value></member><member><name>newaddress</name><value><string>[IP]</string></value></member><member><name>password</name><value><string>[PASSWORD]</string></value></member></struct></value></param></params></methodCall>"
+XMLDATA=$(echo $XMLDATA | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
+-e "s#\[ZONENAME\]#$zone#g" -e "s#\[RECORDNAME\]#$record#g" -e "s#\[IP\]#$__IP#g")
+$PROG -d "$XMLDATA" -o $DATFILE $__URL || return 1
+write_log 7 "'freedns.42.pl' answered:\n$(cat $DATFILE)"
+grep "<fault>" $DATFILE > /dev/null 2>&1 && return 1
+grep '<name>serial</name>' $DATFILE >/dev/null 2>&1
+return $?
index 9845d20a0abbc124ec7f30a3f0ab03357747cd95..b8d527ca671fc92fa810050fc53432e6a4b625d9 100755 (executable)
@@ -18,7 +18,7 @@
 #
 
 # check parameters
-[ -z "$CURL_SSL" ] && write_log 14 "GoDaddy communication require cURL with SSL support. Please install"
+[ -z "$CURL" ] && [ -z "$CURL_SSL" ] && write_log 14 "GoDaddy communication require cURL with SSL support. Please install"
 [ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"
 [ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing secret as 'password'"
 [ $use_https -eq 0 ] && use_https=1    # force HTTPS
index a5119c6da0bb72950091ca651ef0edd7844a9734..6c9733eb395c82c304b965c85c478b8aaabbc027 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dhcpcd
-PKG_VERSION:=6.11.5
+PKG_VERSION:=7.0.5
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=ftp://roy.marples.name/pub/dhcpcd \
     http://roy.marples.name/downloads/dhcpcd
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=6f9674dc7e27e936cc787175404a6171618675ecfb6903ab9887b1b66a87d69e
+PKG_HASH:=aa43fdb990be7c413fa92bdbcfb3775e4cdbff725cbcb68cd2a714ed4f58879d
 
 PKG_LICENSE:=BSD-2c
 PKG_LICENSE_FILES:=
index 91aefe499e18cdc3cef31cbedb0675509d7292dd..0b6f6ed9b2dd3cda3276f43b1a1798eeb4fe2521 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dmapd
-PKG_VERSION:=0.0.73
+PKG_VERSION:=0.0.75
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -17,8 +17,8 @@ PKG_LICENSE:=GPLv2
 PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.flyn.org/projects/dmapd
-PKG_HASH:=5447e8d28cd93739efe479e8ca3e140043b11aca4427676e8990b300618011a1
+PKG_SOURCE_URL:=https://www.flyn.org/projects/dmapd
+PKG_HASH:=f296a5ba02eae36a41381d19d5d08f2b9b7657091db9674f82121cd26c2893a1
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=2
@@ -29,7 +29,7 @@ include $(INCLUDE_DIR)/nls.mk
 define Package/dmapd
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=+libdmapsharing +libdb47 +vips
+  DEPENDS:=+libdmapsharing +libdb47 +vips +libgst1pbutils
   TITLE:= dmapd
   URL:=http://www.flyn.org/projects/dmapd/
   USERID:=dmapd=56:dmapd=56
index 76ecd501fac19364f058d2b9b9836408ef7278b8..33a41f1ebf9688e9ec47355aa2146f92e62c2dab 100644 (file)
@@ -2,8 +2,10 @@
 # Copyright (C) 2009-2012 OpenWrt.org
 
 START=60
+USE_PROCD=1
+PROG=/usr/sbin/dmapd
 
-start() {
+start_service() {
        [ -d /var/run/dmapd ] || {
                mkdir -m 0755 -p /var/run/dmapd
                chown dmapd:dmapd /var/run/dmapd
@@ -20,9 +22,11 @@ start() {
        mkdir -m 0755 -p /var/media/music
        mkdir -m 0755 -p /var/media/pictures
 
-       service_start /usr/sbin/dmapd -u dmapd -g dmapd -m /var/media/music -p /var/media/pictures --vips-disc-threshold 64k
-}
-
-stop() {
-       service_stop /usr/sbin/dmapd
+       procd_open_instance
+       procd_set_param stdout 1
+       procd_set_param stderr 1
+       procd_set_param pidfile /var/run/dmapd.pid
+       procd_set_param user dmapd
+       procd_set_param command $PROG -f
+       procd_close_instance
 }
diff --git a/net/dmapd/patches/001-dmapd_conf.patch b/net/dmapd/patches/001-dmapd_conf.patch
deleted file mode 100644 (file)
index 9c1e60a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/distro/dmapd.conf
-+++ b/distro/dmapd.conf
-@@ -3,7 +3,7 @@
- Database-Dir=/var/db/dmapd
- # Name that will be used to identify share:
--Share-Name=dmapd
-+Share-Name=OpenWrt
- # User that dmapd will run as, current user if undefined:
- User=dmapd
diff --git a/net/dmapd/patches/001-make_unit_test_optional.patch b/net/dmapd/patches/001-make_unit_test_optional.patch
new file mode 100644 (file)
index 0000000..3f42f6b
--- /dev/null
@@ -0,0 +1,17 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -233,7 +233,13 @@ else
+   AM_CONDITIONAL(USE_LIBDB, false)
+ fi
+-PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no)
++dnl Test if --enable-unit-test given
++AC_ARG_ENABLE(unit-test, [AC_HELP_STRING([--enable-unit-test],[enable unit test])])
++if test "x$enable_unit_test" = "xyes" ; then
++  PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no)
++else
++  have_check=no
++fi
+ AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes")
+ AM_CONDITIONAL(FLYN, test "$FLYN")
diff --git a/net/dmapd/patches/002-make_unit_test_optionnal.patch b/net/dmapd/patches/002-make_unit_test_optionnal.patch
deleted file mode 100644 (file)
index 3f42f6b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -233,7 +233,13 @@ else
-   AM_CONDITIONAL(USE_LIBDB, false)
- fi
--PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no)
-+dnl Test if --enable-unit-test given
-+AC_ARG_ENABLE(unit-test, [AC_HELP_STRING([--enable-unit-test],[enable unit test])])
-+if test "x$enable_unit_test" = "xyes" ; then
-+  PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],have_check=yes,have_check=no)
-+else
-+  have_check=no
-+fi
- AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes")
- AM_CONDITIONAL(FLYN, test "$FLYN")
index 14462a460bd0a10ab8a27c27461a5dd1445308b4..2628711ea43601a5757d5cb637a38280a79367e5 100644 (file)
@@ -14,9 +14,11 @@ PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
 
-PKG_SOURCE:=v$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/archive/
-PKG_HASH:=cae011aacf6b250fc021c861fe46e15310349c474bca4553c0f829620e53e3bf
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)
+PKG_SOURCE_VERSION:=35be4a5b40aedc6a800c06389c220a8dbf35f1cc
+PKG_MIRROR_HASH:=2dab9ba63ee8a2c09ac84f5b69dc5a1e9beb3cf3deede55d405b8bc5dc711e97
 
 PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=1
index 87d1f068cb71dcfb8a19cabb96094a8b2c0d3674..82fcb70c32794b50f8a2ef8273415fb0caf854f6 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=esniper
-PKG_VERSION:=2.32.0
+PKG_VERSION:=2.33.0
 PKG_RELEASE:=1
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=COPYING
@@ -19,7 +19,7 @@ VERSION_TRANSFORMED:=$(subst .,-,$(PKG_VERSION))
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(VERSION_TRANSFORMED)
 PKG_SOURCE:=$(PKG_NAME)-$(VERSION_TRANSFORMED).tgz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=5ee3e5237c6a12059ae9d38380505d38448c2c12787f9fcc603cdb0a1a519312
+PKG_HASH:=c9b8b10aefe5c397d7dee4c569f87f227c6710de528b1dc402379e5b4f1793dd
 
 PKG_BUILD_PARALLEL:=1
 
index 20d1dc5e2e7d8cccbcc3b288eaed7412f51f5419..21c97496637a32179a048b8b8d60195fe91d42cf 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freeradius3
-PKG_VERSION:=release_3_0_11
-PKG_RELEASE:=3
+PKG_VERSION:=release_3_0_17
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/FreeRADIUS/freeradius-server/archive
-PKG_HASH:=f0b32edb90368c3b9523e2baa792a1794d8bad662407f0d210a6c460541379b7
+PKG_HASH:=5b2382f08c0d9d064298281c1fb8348fc13df76550ce7a5cfc47ea91361fad91
 
 PKG_MAINTAINER:=Lucile Quirion <lucile.quirion@savoirfairelinux.com>
 PKG_LICENSE:=GPL-2.0
@@ -488,6 +488,13 @@ else
   CONFIGURE_ARGS+= --without-rlm_ldap
 endif
 
+ifeq ($(CONFIG_USE_GLIBC),y)
+  TARGET_CFLAGS+= -DLIBBSD_OVERLAY -I$(STAGING_DIR)/usr/include/bsd \
+       -D_RPC_NETDB_H
+       #^^^^^^^^^^^^^ avoid inclusion of librpc's netdb.h
+  CONFIGURE_LIBS+= -Wl,--push-state,--as-needed -lbsd -Wl,--pop-state
+endif
+
 CONFIGURE_VARS+= \
        LDFLAGS="$$$$LDFLAGS" \
        LIBS="$(CONFIGURE_LIBS)" \
index 458eeba212cef9d459226dad5a67eb859b67a91c..b909e1df4bfb321cf6a4dff8a353954cd51d993e 100644 (file)
@@ -9,7 +9,7 @@ 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
+@@ -594,7 +594,7 @@ tls_session_t *tls_new_session(TALLOC_CT
         *
         *      FIXME: Also do it every N sessions?
         */
@@ -18,7 +18,7 @@ Last-Update: 2017-05-30
            ((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
+@@ -689,7 +689,7 @@ tls_session_t *tls_new_session(TALLOC_CT
                state->mtu = vp->vp_integer;
        }
  
@@ -27,7 +27,7 @@ Last-Update: 2017-05-30
  
        return state;
  }
-@@ -2675,7 +2675,7 @@ post_ca:
+@@ -3151,7 +3151,7 @@ post_ca:
        /*
         *      Callbacks, etc. for session resumption.
         */
@@ -36,7 +36,7 @@ Last-Update: 2017-05-30
                /*
                 *      Cache sessions on disk if requested.
                 */
-@@ -2745,7 +2745,7 @@ post_ca:
+@@ -3221,7 +3221,7 @@ post_ca:
        /*
         *      Setup session caching
         */
diff --git a/net/freeradius3/patches/003-freeradius-fix-error-for-expansion-of-macro.patch b/net/freeradius3/patches/003-freeradius-fix-error-for-expansion-of-macro.patch
new file mode 100644 (file)
index 0000000..10ac890
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/src/include/threads.h
++++ b/src/include/threads.h
+@@ -89,7 +89,7 @@ static _t __fr_thread_local_init_##_n(pt
+ #  define fr_thread_local_get(_n) _n
+ #elif defined(HAVE_PTHREAD_H)
+ #  include <pthread.h>
+-#  define fr_thread_local_setup(_t, _n) \
++#  define fr_thread_local_setup(_t, _n) static __thread _t _n;\
+ static pthread_key_t __fr_thread_local_key_##_n;\
+ static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\
+ static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\
+@@ -100,17 +100,17 @@ static void __fr_thread_local_destroy_##
+ static void __fr_thread_local_key_init_##_n(void)\
+ {\
+       (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\
+-      (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ }\
+ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
+ {\
+       __fr_thread_local_destructor_##_n = func;\
+       if (_n) return _n; \
+       (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\
++      (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+       return _n;\
+ }
+-#  define fr_thread_local_init(_n, _f)                        __fr_thread_local_init_##_n(_f)
+-#  define fr_thread_local_set(_n, _v)                 __fr_thread_local_set_##_n(_v)
+-#  define fr_thread_local_get(_n)                     __fr_thread_local_get_##_n()
++#  define fr_thread_local_init(_n, _f)        __fr_thread_local_init_##_n(_f)
++#  define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1))
++#  define fr_thread_local_get(_n) _n
+ #endif
+ #endif
index e39824702488f9b77fff1bfc507ec4ae733f3b00..32e4121628c8a9088b0607735707e9af01c1d216 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=git
-PKG_VERSION:=2.17.1
+PKG_VERSION:=2.18.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/scm/git/
-PKG_HASH:=79136e7aa83abae4d8a25c8111f113d3c5a63aeb5fd93cc72c26d49c6d5ba65e
+PKG_HASH:=8b40be383a603147ae29337136c00d1c634bdfdc169a30924a024596a7e30e92
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
index eb8d4f7336632a55ee624b7c10b363610ab493d0..07796e6df6cd2165fc9f0476509006402b5357ed 100644 (file)
@@ -1,8 +1,8 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -925,7 +925,8 @@ AC_RUN_IFELSE(
+@@ -929,7 +929,8 @@ AC_RUN_IFELSE(
                FILE *f = fopen(".", "r");
-               return f)]])],
+               return f != NULL;]])],
        [ac_cv_fread_reads_directories=no],
 -      [ac_cv_fread_reads_directories=yes])
 +      [ac_cv_fread_reads_directories=yes],
@@ -10,7 +10,7 @@
  ])
  if test $ac_cv_fread_reads_directories = yes; then
        FREAD_READS_DIRECTORIES=UnfortunatelyYes
-@@ -959,7 +960,8 @@ AC_RUN_IFELSE(
+@@ -963,7 +964,8 @@ AC_RUN_IFELSE(
                  if (snprintf(buf, 3, "%s", "12345") != 5
                      || strcmp(buf, "12")) return 1]])],
        [ac_cv_snprintf_returns_bogus=no],
@@ -20,7 +20,7 @@
  ])
  if test $ac_cv_snprintf_returns_bogus = yes; then
        SNPRINTF_RETURNS_BOGUS=UnfortunatelyYes
-@@ -982,7 +984,8 @@ yippeeyeswehaveit
+@@ -986,7 +988,8 @@ yippeeyeswehaveit
  #endif
  ]),
        [ac_cv_sane_mode_bits=yes],
index 9f6f7a5627d0f851de7080769ac50b62844bbd53..da592202bb81f3a16947980b267fbbf0543c2374 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -1238,7 +1238,7 @@ else
+@@ -1297,7 +1297,7 @@ else
        endif
        curl_check := $(shell (echo 072200; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
        ifeq "$(curl_check)" "072200"
index 52f0acdc63aa7f48286bc775af8a6395f0b4561a..c6fd4a5bb57a87da6bedb3d928ef3908fb21d61e 100644 (file)
@@ -28,7 +28,7 @@ define Package/gitolite
   DEPENDS:=+perlbase-essential +perlbase-sys +perlbase-data +perlbase-digest +perlbase-env +perlbase-time +git +perlbase-findbin +perlbase-storable +perlbase-text +perlbase-getopt +perlbase-utf8 +openssh-keygen +openssh-server +openssh-moduli perl
   TITLE:=Easy administration of git repositories
   URL:=http://gitolite.com/gitlolite
-  MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
+  MAINTAINER:=Daniel Dickinson <cshored@thecshore.com>
   USERID:=git=382:git=382
 endef
 
index f8551fdd147640cd38640541f7f7f24949bb9500..208a990cd3a3f81359f0d0793001d87462eac971 100644 (file)
@@ -1,18 +1,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnunet
-PKG_SOURCE_VERSION:=b673e9c3ed4a211b974bc602b893a427533566d7
-PKG_MIRROR_HASH:=89bc8cb5813bd38e0006d91fcd091b0eef533d6ff8462c800bf37d2e19966beb
+PKG_SOURCE_VERSION:=2b99bddcb6961cfda34087138acdda4b8b9ccb9f
+PKG_MIRROR_HASH:=7b1567d4d4b316ed4b70372bbcfc2039a93d6a7bbf24c2b3036b2c7f3bccc9b4
 
-PKG_VERSION:=0.10.2-git-20180205-$(PKG_SOURCE_VERSION)
-PKG_RELEASE:=1
+PKG_VERSION:=0.10.2-git-20180607-$(PKG_SOURCE_VERSION)
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://gnunet.org/git/gnunet.git
 PKG_SOURCE_PROTO:=git
 
-PKG_LICENSE:=GPL-3.0
+PKG_LICENSE:=AGPL-3.0
 PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 
@@ -72,6 +72,13 @@ define Package/gnunet/description
  well as their helpers.
 endef
 
+define Package/gnunet/config
+config GNUNET_HAS_ICONV_SUPPORT
+       depends on PACKAGE_gnunet && (!USE_UCLIBC || (USE_UCLIBC && BUILD_NLS))
+       bool
+       default y
+endef
+
 define BuildComponent
   PKG_CONFIG_DEPENDS+=CONFIG_PACKAGE_$(PKG_NAME)-$(1)
 
@@ -280,7 +287,7 @@ DEPENDS_fs-heap:=+gnunet-datastore
 PLUGIN_fs-heap:=datastore_heap
 CONFLICTS_fs-heap:=gnunet-fs-mysql gnunet-fs-pgsql gnunet-fs-sqlite
 
-DEPENDS_mysql:=+libmysqlclient
+DEPENDS_mysql:=+libmysqlclient @GNUNET_HAS_ICONV_SUPPORT
 LIB_mysql:=mysql my
 
 DEPENDS_social-mysql:=+gnunet-mysql +gnunet-social
index e5d124b9725a89c5301dce17454ca7cf2742dafa..7c5a714e028d3395e98ba9c42f9e6bd0dd015cfa 100644 (file)
@@ -9,17 +9,21 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haproxy
-PKG_VERSION:=1.8.4
-PKG_RELEASE:=01
+PKG_VERSION:=1.8.12
+PKG_RELEASE:=00
 
 PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.haproxy.org/download/1.8/src/
-PKG_HASH:=e305b0a4e7dec08072841eef6ac6dcd1b5586b1eff09c2d51e152a912e8884a6
+PKG_HASH:=f438a98e657935fa8fad48b98d9029a399e0ad9105cf0e7e8e54365f93d83e9b
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_LICENSE:=GPL-2.0
 MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 
+ifneq ($(PKG_RELEASE),00)
+       BUILD_VERSION:=-patch$(PKG_RELEASE)
+endif
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/haproxy/Default
@@ -94,13 +98,6 @@ endef
 ENABLE_LUA:=y
 ENABLE_REGPARM:=n
 
-ifeq ($(CONFIG_mips),y)
-  ENABLE_LUA:=n
-endif
-ifeq ($(CONFIG_mipsel),y)
-  ENABLE_LUA:=n
-endif
-
 ifeq ($(CONFIG_TARGET_x86),y)
   ENABLE_REGPARM:=y
 endif
@@ -150,8 +147,9 @@ define Build/Compile
                SMALL_OPTS="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530 " \
                USE_LINUX_TPROXY=1 USE_LINUX_SPLICE=1 USE_TFO=1 \
                USE_ZLIB=yes USE_PCRE=1 USE_PCRE_JIT=1 USE_GETADDRINFO=1 \
-               VERSION="$(PKG_VERSION)-patch$(PKG_RELEASE)" \
+               VERSION="$(PKG_VERSION)$(BUILD_VERSION)" \
                $(ADDON) \
+               CFLAGS="$(TARGET_CFLAGS)" \
                LD="$(TARGET_CC)" \
                LDFLAGS="$(TARGET_LDFLAGS) -latomic" \
                IGNOREGIT=1
diff --git a/net/haproxy/get-latest-patches.sh b/net/haproxy/get-latest-patches.sh
new file mode 100755 (executable)
index 0000000..533b97e
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+CLONEURL=http://git.haproxy.org/git/haproxy-1.8.git
+BASE_TAG=v1.8.12
+TMP_REPODIR=tmprepo
+PATCHESDIR=patches
+
+if test -d "${TMP_REPODIR}"; then rm -rf "${TMP_REPODIR}"; fi
+
+git clone "${CLONEURL}" "${TMP_REPODIR}"
+
+printf "Cleaning patches\n"
+find ${PATCHESDIR} -type f -name "*.patch" -exec rm -f "{}" \;
+
+i=0
+for cid in $(git -C "${TMP_REPODIR}" rev-list ${BASE_TAG}..HEAD | tac); do
+       filename="$(printf "%04d" $i)-$(git -C "${TMP_REPODIR}" log --format=%s -n 1 $cid | sed -e"s/[()']//g" -e's/[^_a-zA-Z0-9+-]\+/-/g' -e's/-$//').patch"
+       printf "Creating ${filename}\n"
+       git -C "${TMP_REPODIR}" show $cid > "${PATCHESDIR}/$filename"
+       git add "${PATCHESDIR}/$filename"
+       let i++
+done
+
+rm -rf "${TMP_REPODIR}"
+
+printf "finished\n"
+
diff --git a/net/haproxy/patches/0001-BUG-MEDIUM-ssl-Dont-always-treat-SSL_ERROR_SYSCALL-as-unrecovarable.patch b/net/haproxy/patches/0001-BUG-MEDIUM-ssl-Dont-always-treat-SSL_ERROR_SYSCALL-as-unrecovarable.patch
deleted file mode 100644 (file)
index 93b51dc..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From 2fcd544272a5498ffa49544e9f06b51bc93e55d1 Mon Sep 17 00:00:00 2001
-From: Olivier Houchard <ohouchard@haproxy.com>
-Date: Tue, 13 Feb 2018 15:17:23 +0100
-Subject: [PATCH] BUG/MEDIUM: ssl: Don't always treat SSL_ERROR_SYSCALL as
- unrecovarable.
-
-Bart Geesink reported some random errors appearing under the form of
-termination flags SD in the logs for connections involving SSL traffic
-to reach the servers.
-
-Tomek Gacek and Mateusz Malek finally narrowed down the problem to commit
-c2aae74 ("MEDIUM: ssl: Handle early data with OpenSSL 1.1.1"). It happens
-that the special case of SSL_ERROR_SYSCALL isn't handled anymore since
-this commit.
-
-SSL_read() might return <= 0, and SSL_get_erro() return SSL_ERROR_SYSCALL,
-without meaning the connection is gone. Before flagging the connection
-as in error, check the errno value.
-
-This should be backported to 1.8.
-
-(cherry picked from commit 7e2e505006feb8f3b4a7f9e0ac5e89b5a8c4895e)
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/ssl_sock.c |    9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/src/ssl_sock.c b/src/ssl_sock.c
-index aecf3dd..f118724 100644
---- a/src/ssl_sock.c
-+++ b/src/ssl_sock.c
-@@ -5437,6 +5437,12 @@ static int ssl_sock_to_buf(struct connection *conn, struct buffer *buf, int coun
-                               break;
-                       } else if (ret == SSL_ERROR_ZERO_RETURN)
-                               goto read0;
-+                      /* For SSL_ERROR_SYSCALL, make sure the error is
-+                       * unrecoverable before flagging the connection as
-+                       * in error.
-+                       */
-+                      if (ret == SSL_ERROR_SYSCALL && (!errno || errno == EAGAIN))
-+                              goto clear_ssl_error;
-                       /* otherwise it's a real error */
-                       goto out_error;
-               }
-@@ -5451,11 +5457,12 @@ static int ssl_sock_to_buf(struct connection *conn, struct buffer *buf, int coun
-       conn_sock_read0(conn);
-       goto leave;
-  out_error:
-+      conn->flags |= CO_FL_ERROR;
-+clear_ssl_error:
-       /* Clear openssl global errors stack */
-       ssl_sock_dump_errors(conn);
-       ERR_clear_error();
--      conn->flags |= CO_FL_ERROR;
-       goto leave;
- }
--- 
-1.7.10.4
-
diff --git a/net/haproxy/patches/0002-BUG-MEDIUM-ssl-Shutdown-the-connection-for-reading-on-SSL_ERROR_SYSCALL.patch b/net/haproxy/patches/0002-BUG-MEDIUM-ssl-Shutdown-the-connection-for-reading-on-SSL_ERROR_SYSCALL.patch
deleted file mode 100644 (file)
index 22274d3..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-From f7fa1d461aa71bbc8a6c23fdcfc305f2e52ce5dd Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Mon, 19 Feb 2018 14:25:15 +0100
-Subject: [PATCH] BUG/MEDIUM: ssl: Shutdown the connection for reading on
- SSL_ERROR_SYSCALL
-
-When SSL_read returns SSL_ERROR_SYSCALL and errno is unset or set to EAGAIN, the
-connection must be shut down for reading. Else, the connection loops infinitly,
-consuming all the CPU.
-
-The bug was introduced in the commit 7e2e50500 ("BUG/MEDIUM: ssl: Don't always
-treat SSL_ERROR_SYSCALL as unrecovarable."). This patch must be backported in
-1.8 too.
-
-(cherry picked from commit 4ac77a98cda3d0f9b1d9de7bbbda2c91357f0767)
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/ssl_sock.c |   14 ++++++++------
- 1 file changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/src/ssl_sock.c b/src/ssl_sock.c
-index f118724..a065bbb 100644
---- a/src/ssl_sock.c
-+++ b/src/ssl_sock.c
-@@ -5437,10 +5437,9 @@ static int ssl_sock_to_buf(struct connection *conn, struct buffer *buf, int coun
-                               break;
-                       } else if (ret == SSL_ERROR_ZERO_RETURN)
-                               goto read0;
--                      /* For SSL_ERROR_SYSCALL, make sure the error is
--                       * unrecoverable before flagging the connection as
--                       * in error.
--                       */
-+                      /* For SSL_ERROR_SYSCALL, make sure to clear the error
-+                       * stack before shutting down the connection for
-+                       * reading. */
-                       if (ret == SSL_ERROR_SYSCALL && (!errno || errno == EAGAIN))
-                               goto clear_ssl_error;
-                       /* otherwise it's a real error */
-@@ -5453,16 +5452,19 @@ static int ssl_sock_to_buf(struct connection *conn, struct buffer *buf, int coun
-       conn_cond_update_sock_polling(conn);
-       return done;
-+ clear_ssl_error:
-+      /* Clear openssl global errors stack */
-+      ssl_sock_dump_errors(conn);
-+      ERR_clear_error();
-  read0:
-       conn_sock_read0(conn);
-       goto leave;
-+
-  out_error:
-       conn->flags |= CO_FL_ERROR;
--clear_ssl_error:
-       /* Clear openssl global errors stack */
-       ssl_sock_dump_errors(conn);
-       ERR_clear_error();
--
-       goto leave;
- }
--- 
-1.7.10.4
-
diff --git a/net/haproxy/patches/0003-BUG-MEDIUM-http-Switch-the-HTTP-response-in-tunnel-mode-as-earlier-as-possible.patch b/net/haproxy/patches/0003-BUG-MEDIUM-http-Switch-the-HTTP-response-in-tunnel-mode-as-earlier-as-possible.patch
deleted file mode 100644 (file)
index 446a610..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From 8a5949f2d74c3a3a6c6da25449992c312b183ef3 Mon Sep 17 00:00:00 2001
-From: Christopher Faulet <cfaulet@haproxy.com>
-Date: Fri, 2 Feb 2018 15:54:15 +0100
-Subject: [PATCH] BUG/MEDIUM: http: Switch the HTTP response in tunnel mode as
- earlier as possible
-
-When the body length is undefined (no Content-Length or Transfer-Encoding
-headers), The reponse remains in ending mode, waiting the request is done. So,
-most of time this is not a problem because the resquest is done before the
-response. But when a client sends data to a server that replies without waiting
-all the data, it is really not desirable to wait the end of the request to
-finish the response.
-
-This bug was introduced when the tunneling of the request and the reponse was
-refactored, in commit 4be980391 ("MINOR: http: Switch requests/responses in
-TUNNEL mode only by checking txn flag").
-
-This patch should be backported in 1.8 and 1.7.
-
-(cherry picked from commit fd04fcf5edb0a24cd29ce8f4d4dc2aa3a0e2e82c)
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/proto_http.c |   15 +++++----------
- 1 file changed, 5 insertions(+), 10 deletions(-)
-
-diff --git a/src/proto_http.c b/src/proto_http.c
-index 64bd410..29880ea 100644
---- a/src/proto_http.c
-+++ b/src/proto_http.c
-@@ -4634,16 +4634,8 @@ 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 (!(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))) {
-+                      if (!(chn->flags & (CF_SHUTW|CF_SHUTW_NOW))) {
-                               channel_shutr_now(chn);
-                               channel_shutw_now(chn);
-                       }
-@@ -6241,6 +6233,8 @@ http_msg_forward_body(struct stream *s, struct http_msg *msg)
-               /* 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_TUNNEL;
-+              goto ending;
-       }
-       msg->msg_state = HTTP_MSG_ENDING;
-@@ -6262,7 +6256,8 @@ http_msg_forward_body(struct stream *s, struct http_msg *msg)
-                        /* default_ret */ 1,
-                        /* on_error    */ goto error,
-                        /* on_wait     */ goto waiting);
--      msg->msg_state = HTTP_MSG_DONE;
-+      if (msg->msg_state == HTTP_MSG_ENDING)
-+              msg->msg_state = HTTP_MSG_DONE;
-       return 1;
-   missing_data_or_waiting:
--- 
-1.7.10.4
-
diff --git a/net/haproxy/patches/0004-BUG-MEDIUM-ssl-sample-ssl_bc_-fetch-keywords-are-broken.patch b/net/haproxy/patches/0004-BUG-MEDIUM-ssl-sample-ssl_bc_-fetch-keywords-are-broken.patch
deleted file mode 100644 (file)
index 11d2ef9..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From 7ccf7c9791f2b2329f3940d1347618af3a77bebc Mon Sep 17 00:00:00 2001
-From: Emeric Brun <ebrun@haproxy.com>
-Date: Mon, 19 Feb 2018 15:59:48 +0100
-Subject: [PATCH] BUG/MEDIUM: ssl/sample: ssl_bc_* fetch keywords are broken.
-
-Since the split between connections and conn-stream objects, this
-keywords are broken.
-
-This patch must be backported in 1.8
-
-(cherry picked from commit eb8def9f34c37537d56a69fcd211d4c4c8006bea)
-Signed-off-by: Willy Tarreau <w@1wt.eu>
----
- src/ssl_sock.c |   31 ++++++++++++++-----------------
- 1 file changed, 14 insertions(+), 17 deletions(-)
-
-diff --git a/src/ssl_sock.c b/src/ssl_sock.c
-index 4d0d5db..d832d76 100644
---- a/src/ssl_sock.c
-+++ b/src/ssl_sock.c
-@@ -6580,8 +6580,8 @@ smp_fetch_ssl_x_key_alg(const struct arg *args, struct sample *smp, const char *
- static int
- smp_fetch_ssl_fc(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
--      struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
--                                          smp->strm ? smp->strm->si[1].end : NULL);
-+      struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+                                          smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-       smp->data.type = SMP_T_BOOL;
-       smp->data.u.sint = (conn && conn->xprt == &ssl_sock);
-@@ -6625,8 +6625,8 @@ smp_fetch_ssl_fc_is_resumed(const struct arg *args, struct sample *smp, const ch
- static int
- smp_fetch_ssl_fc_cipher(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
--      struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
--                                          smp->strm ? smp->strm->si[1].end : NULL);
-+      struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+                                          smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-       smp->flags = 0;
-       if (!conn || !conn->xprt_ctx || conn->xprt != &ssl_sock)
-@@ -6651,9 +6651,8 @@ smp_fetch_ssl_fc_cipher(const struct arg *args, struct sample *smp, const char *
- static int
- smp_fetch_ssl_fc_alg_keysize(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
--      struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
--                                          smp->strm ? smp->strm->si[1].end : NULL);
--
-+      struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+                                          smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-       int sint;
-       smp->flags = 0;
-@@ -6676,8 +6675,8 @@ smp_fetch_ssl_fc_alg_keysize(const struct arg *args, struct sample *smp, const c
- static int
- smp_fetch_ssl_fc_use_keysize(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
--      struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
--                                          smp->strm ? smp->strm->si[1].end : NULL);
-+      struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+                                          smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-       smp->flags = 0;
-       if (!conn || !conn->xprt_ctx || conn->xprt != &ssl_sock)
-@@ -6747,8 +6746,8 @@ smp_fetch_ssl_fc_alpn(const struct arg *args, struct sample *smp, const char *kw
- static int
- smp_fetch_ssl_fc_protocol(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
--      struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
--                                          smp->strm ? smp->strm->si[1].end : NULL);
-+      struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+                                          smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-       smp->flags = 0;
-       if (!conn || !conn->xprt_ctx || conn->xprt != &ssl_sock)
-@@ -6773,9 +6772,8 @@ static int
- smp_fetch_ssl_fc_session_id(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
- #if OPENSSL_VERSION_NUMBER > 0x0090800fL
--      struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
--                                          smp->strm ? smp->strm->si[1].end : NULL);
--
-+      struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+                                          smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-       SSL_SESSION *ssl_sess;
-       smp->flags = SMP_F_CONST;
-@@ -6917,9 +6915,8 @@ static int
- smp_fetch_ssl_fc_unique_id(const struct arg *args, struct sample *smp, const char *kw, void *private)
- {
- #if OPENSSL_VERSION_NUMBER > 0x0090800fL
--      struct connection *conn = objt_conn((kw[4] != 'b') ? smp->sess->origin :
--                                          smp->strm ? smp->strm->si[1].end : NULL);
--
-+      struct connection *conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) :
-+                                          smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;
-       int finished_len;
-       struct chunk *finished_trash;
--- 
-1.7.10.4
-
index c15994ed82c8eb6b938aa410f922a1be5ab2fe98..b9fbe3ae6ee8672dab9e00a8995007c1cd113c67 100644 (file)
@@ -9,16 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=i2pd
-PKG_VERSION:=2.18.0
+PKG_VERSION:=2.19.0
 PKG_RELEASE:=1
 PKG_BUILD_PARALLEL:=1
 
-PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://codeload.github.com/PurpleI2P/i2pd/tar.gz/$(PKG_VERSION)?
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MIRROR_HASH:=1a04826b54e649ebb341d3feacdd05c0415335679d1aa787a74ea5995d419378
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=https://github.com/PurpleI2P/i2pd.git
-PKG_SOURCE_VERSION:=$(PKG_VERSION)
+PKG_HASH:=7202497ffc3db632d0f7fed93eafaf39aa75efea199705dae7d022249b069eb9
 PKG_LICENSE:=BSD-3-clause
 
 include $(INCLUDE_DIR)/package.mk
@@ -55,8 +52,6 @@ define Package/i2pd/install
        $(INSTALL_DIR) $(1)/usr/share/i2pd
        $(CP) $(PKG_BUILD_DIR)/contrib/certificates  $(1)/usr/share/i2pd
        $(INSTALL_DIR) $(1)/etc/i2pd
-       $(LN) /usr/share/i2pd/certificates $(1)/etc/i2pd/certificates
-       $(LN) /var/lib/i2pd/peerProfiles $(1)/etc/i2pd/peerProfiles
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/i2pd.conf $(1)/etc/i2pd
        $(SED) ' \
                s/127.0.0.1/192.168.1.1/g; \
index f1c394a0e85e848c8d31267b74e5e478c0606a3b..81e97cdce53eadce7b137152649f8c2efd3a7470 100755 (executable)
@@ -10,24 +10,26 @@ PROG=/usr/sbin/i2pd
 USER="i2pd"
 GROUP="i2pd"
 PIDFILE=/var/run/i2pd.pid
-DATADIR=/etc/i2pd
-PEERDIR=/var/lib/i2pd/peerProfiles
+DATADIR=/var/lib/i2pd
 
 
 start_service() {
        ## RAM
-       if [ ! -d $PEERDIR ]; then
-               mkdir -p $PEERDIR
-               chown $USER:$GROUP $PEERDIR
+       if [ ! -d $DATADIR ]; then
+               mkdir -p $DATADIR
+               ln -s /usr/share/i2pd/certificates  $DATADIR/certificates
+               ln -s /etc/i2pd/tunnels.conf $DATADIR/tunnels.conf
+               # for peoples who not possible to use http reseeding
+               ln -s /etc/i2pd/addressbook $DATADIR/addressbook
        fi
 
        ## We need permissions
-       chown -R $USER:$GROUP $DATADIR
+       chown $USER:$GROUP $DATADIR
        touch $PIDFILE
        chown $USER:adm $PIDFILE
 
        procd_open_instance
-       procd_set_param command $PROG --service --conf=/etc/i2pd/i2pd.conf
+       procd_set_param command $PROG --service --conf=/etc/i2pd/i2pd.conf --pidfile $PIDFILE
        ## Don't know about i2pd user's HOME
        procd_set_param env HOME=$DATADIR
        procd_set_param limits nofile=4096
index daa4d71c4ca86ac15197d7637f6059c267e7776a..f58c1e028402ad40170ebfb6939187a6e43c4603 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ibrdtnd
 PKG_VERSION:=1.0.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
@@ -17,6 +17,7 @@ PKG_HASH:=9bd79636154093ab6bf4fd10d6c62d67c6db45141460847b19def327c93771ed
 PKG_MAINTAINER:=Johannes Morgenroth <jm@m-network.de>
 PKG_LICENSE:=Apache-2.0
 
+PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
@@ -44,6 +45,8 @@ CONFIGURE_ARGS += \
        --without-vmime \
        --disable-libdaemon
 
+TARGET_CXXFLAGS += -std=gnu++03
+
 define Package/ibrdtnd/install
        $(INSTALL_DIR) $(1)/usr/sbin/
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dtnd $(1)/usr/sbin/
diff --git a/net/ibrdtnd/patches/0001-ibrdtnd-added-openssl-compatibility.patch b/net/ibrdtnd/patches/0001-ibrdtnd-added-openssl-compatibility.patch
new file mode 100644 (file)
index 0000000..fd07db5
--- /dev/null
@@ -0,0 +1,202 @@
+From c794bbd16d2f39c656478608eb1314055e877370 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Sat, 26 May 2018 23:44:54 -0300
+Subject: [PATCH] ibrdtnd: added openssl compatibility
+
+This patch adds compatibility with openssl 1.1.0 to ibrdtnd.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ ibrdtn/daemon/src/security/exchange/DHProtocol.cpp | 36 ++++++++++---
+ ibrdtn/daemon/src/security/exchange/Makefile.am    |  2 +
+ .../src/security/exchange/openssl_compat.cpp       | 62 ++++++++++++++++++++++
+ .../daemon/src/security/exchange/openssl_compat.h  | 13 +++++
+ 4 files changed, 107 insertions(+), 6 deletions(-)
+ create mode 100644 ibrdtn/daemon/src/security/exchange/openssl_compat.cpp
+ create mode 100644 ibrdtn/daemon/src/security/exchange/openssl_compat.h
+
+diff --git a/src/security/exchange/DHProtocol.cpp b/src/security/exchange/DHProtocol.cpp
+index e94c5026..3e0ad717 100644
+--- a/src/security/exchange/DHProtocol.cpp
++++ b/src/security/exchange/DHProtocol.cpp
+@@ -30,6 +30,7 @@
+ #include <openssl/rand.h>
+ #include <openssl/pem.h>
++#include "openssl_compat.h"
+ #define DH_KEY_LENGTH 1024
+@@ -132,6 +133,7 @@ namespace dtn
+               void DHProtocol::begin(KeyExchangeSession &session, KeyExchangeData &data)
+               {
++                      const BIGNUM *pub_key, *p, *g;
+                       // get session state
+                       DHState &state = session.getState<DHState>();
+@@ -159,9 +161,12 @@ namespace dtn
+                       // prepare request
+                       KeyExchangeData request(KeyExchangeData::REQUEST, session);
+-                      write(request, state.dh->pub_key);
+-                      write(request, state.dh->p);
+-                      write(request, state.dh->g);
++                      DH_get0_pqg(state.dh, &p, NULL, &g);
++                      DH_get0_key(state.dh, &pub_key, NULL);
++
++                      write(request, pub_key);
++                      write(request, p);
++                      write(request, g);
+                       manager.submit(session, request);
+               }
+@@ -177,6 +182,15 @@ namespace dtn
+                               {
+                                       if (data.getAction() == KeyExchangeData::REQUEST)
+                                       {
++                                              BIGNUM *p = BN_new();
++                                              BIGNUM *g = BN_new();
++                                              if (p == NULL || g == NULL)
++                                              {
++                                                      BN_free(p);
++                                                      BN_free(g);
++                                                      throw ibrcommon::Exception("Error while allocating space for DH parameters");
++                                              }
++
+                                               BIGNUM* pub_key = BN_new();
+                                               read(data, &pub_key);
+@@ -184,8 +198,16 @@ namespace dtn
+                                               state.dh = DH_new();
+                                               // read p and g paramter from message
+-                                              read(data, &state.dh->p);
+-                                              read(data, &state.dh->g);
++                                              read(data, &p);
++                                              read(data, &g);
++
++                                              if (DH_set0_pqg(state.dh, p, NULL, g))
++                                              {
++                                                      BN_free(p);
++                                                      BN_free(g);
++                                                      BN_free(pub_key);
++                                                      throw ibrcommon::Exception("Error while setting DH parameters");
++                                              }
+                                               int codes;
+                                               if (!DH_check(state.dh, &codes))
+@@ -213,7 +235,9 @@ namespace dtn
+                                               state.secret.assign((const char*)secret, length);
+                                               KeyExchangeData response(KeyExchangeData::RESPONSE, session);
+-                                              write(response, state.dh->pub_key);
++                                              const BIGNUM *state_dh_pub_key;
++                                              DH_get0_key(state.dh, &state_dh_pub_key, NULL);
++                                              write(response, state_dh_pub_key);
+                                               manager.submit(session, response);
+diff --git a/src/security/exchange/Makefile.am b/src/security/exchange/Makefile.am
+index a6b2f832..71ed8365 100644
+--- a/src/security/exchange/Makefile.am
++++ b/src/security/exchange/Makefile.am
+@@ -22,6 +22,8 @@ exchange_SOURCES += \
+       NFCProtocol.cpp \
+       NoneProtocol.h \
+       NoneProtocol.cpp \
++      openssl_compat.h \
++      openssl_compat.cpp \
+       QRCodeProtocol.h \
+       QRCodeProtocol.cpp
+       
+diff --git a/src/security/exchange/openssl_compat.cpp b/src/security/exchange/openssl_compat.cpp
+new file mode 100644
+index 00000000..e3baba0f
+--- /dev/null
++++ b/src/security/exchange/openssl_compat.cpp
+@@ -0,0 +1,62 @@
++/*
++ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
++ *
++ * Licensed under the OpenSSL license (the "License").  You may not use
++ * this file except in compliance with the License.  You can obtain a copy
++ * in the file LICENSE in the source distribution or at
++ * https://www.openssl.org/source/license.html
++ */
++
++#include "openssl_compat.h"
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
++void DH_get0_pqg(const DH *dh,
++                 const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
++{
++    if (p != NULL)
++        *p = dh->p;
++    if (q != NULL)
++        *q = dh->q;
++    if (g != NULL)
++        *g = dh->g;
++}
++
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
++{
++    /* If the fields p and g in d are NULL, the corresponding input
++     * parameters MUST be non-NULL.  q may remain NULL.
++     */
++    if ((dh->p == NULL && p == NULL)
++        || (dh->g == NULL && g == NULL))
++        return 0;
++
++    if (p != NULL) {
++        BN_free(dh->p);
++        dh->p = p;
++    }
++    if (q != NULL) {
++        BN_free(dh->q);
++        dh->q = q;
++    }
++    if (g != NULL) {
++        BN_free(dh->g);
++        dh->g = g;
++    }
++
++    if (q != NULL) {
++        dh->length = BN_num_bits(q);
++    }
++
++    return 1;
++}
++
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
++{
++    if (pub_key != NULL)
++        *pub_key = dh->pub_key;
++    if (priv_key != NULL)
++        *priv_key = dh->priv_key;
++}
++
++#endif /* OPENSSL_VERSION_NUMBER */
+diff --git a/src/security/exchange/openssl_compat.h b/src/security/exchange/openssl_compat.h
+new file mode 100644
+index 00000000..29e7d415
+--- /dev/null
++++ b/src/security/exchange/openssl_compat.h
+@@ -0,0 +1,13 @@
++#ifndef LIBCRYPTO_COMPAT_H\r
++#define LIBCRYPTO_COMPAT_H\r
++\r
++#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
++\r
++#include <openssl/dh.h>\r
++\r
++void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);\r
++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);\r
++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key);\r
++\r
++#endif /* OPENSSL_VERSION_NUMBER */\r
++#endif /* LIBCRYPTO_COMPAT_H */\r
+-- 
+2.16.1
+
index 06ae728140b4789bb6e1c80b71ef379eb847cb7a..51541702630d1c460958da844f051dc13992b1fd 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=isc-dhcp
 UPSTREAM_NAME:=dhcp
 PKG_VERSION:=4.4.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
index 70841903e116be3c746f26b427b2f6bdc5363c67..954d332b48bb262f486bded53779ab6b8f8b1746 100644 (file)
@@ -263,6 +263,11 @@ general_config() {
        echo "max-lease-time $max_lease_time;"
 
        [ -n "$domain" ] && echo "option domain-name \"$domain\";"
+
+       rm -f /tmp/resolv.conf
+       echo "# This file is generated by the DHCPD service" > /tmp/resolv.conf
+       [ -n "$domain" ] && echo "domain $domain" >> /tmp/resolv.conf
+       echo "nameserver 127.0.0.1" >> /tmp/resolv.conf
 }
 
 start_service() {
index f63dd21f9be79c0a227951125c8439edad4a5274..5e366e3619413912d5b76dd233eb309a34f80835 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=krb5
-PKG_VERSION:=1.16
-PKG_RELEASE:=2
+PKG_VERSION:=1.16.1
+PKG_RELEASE:=3
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 
@@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=NOTICE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://web.mit.edu/kerberos/dist/krb5/1.16/
-PKG_HASH:=faeb125f83b0fb4cdb2f99f088140631bb47d975982de0956d18c85842969e08
+PKG_HASH:=214ffe394e3ad0c730564074ec44f1da119159d94281bbec541dc29168d21117
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -67,6 +67,7 @@ CONFIGURE_PATH = ./src
 CONFIGURE_VARS += \
        cross_compiling=yes \
        krb5_cv_attr_constructor_destructor=yes,yes \
+       krb5_cv_sys_rcdir=/tmp \
        ac_cv_func_regcomp=yes \
        ac_cv_printf_positional=yes \
        ac_cv_file__etc_environment=no \
index 915adfcf5b75426ecdce6817674faa9d1e0f90fd..92d87b8e052f78854adf5ec633ed9718bc2356f1 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lighttpd
-PKG_VERSION:=1.4.48
-PKG_RELEASE:=2
+PKG_VERSION:=1.4.49
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://download.lighttpd.net/lighttpd/releases-1.4.x
-PKG_HASH:=0f8ad5aac7529d7b948b9d7e8cd0b4a9e177309d85d6bf6516e28e6e40d74f36
+PKG_HASH:=aedf49d7127d9e4c0ea56618e9e945a17674dc46a37ac7990120f87dd939ce09
 
 PKG_LICENSE:=BSD-3c
 PKG_LICENSE_FILES:=COPYING
index 02f95541c1fc57cc26c7dae9f7c7402e503872f3..faba7a2d918c2139c39da7fe435720453b51e802 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=miniupnpd
 PKG_VERSION:=2.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=http://miniupnp.free.fr/files
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -40,7 +40,7 @@ define Build/Prepare
 endef
 
 TARGET_CFLAGS += -flto -ffunction-sections -fdata-sections
-TARGET_LDFLAGS += -flto -Wl,--gc-sections
+TARGET_LDFLAGS += $(FPIC) -flto -Wl,--gc-sections
 MAKE_FLAGS += \
        TARGET_OPENWRT=1 TEST=0 LIBS="" \
        CC="$(TARGET_CC) -DIPTABLES_143 -lip4tc -luuid \
index 83e514be72045b6ac2011111121b725dc180db92..adb54b24ae08cc29ca7b73a52022eac00d057bcc 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mwan3
-PKG_VERSION:=2.6.17
+PKG_VERSION:=2.6.18
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
 PKG_LICENSE:=GPLv2
index 74d5592eb7da22eec0059403ad85074519793d4a..2c5bbf3c126e9a10e5f7122dbc41916b46c30245 100644 (file)
@@ -198,6 +198,14 @@ mwan3_set_general_iptables()
 
                if ! $IPT -S mwan3_hook &> /dev/null; then
                        $IPT -N mwan3_hook
+                       # do not mangle ipv6 ra service
+                       if [ "$IPT" = "$IPT6" ]; then
+                               $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 133 -j RETURN
+                               $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 134 -j RETURN
+                               $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 135 -j RETURN
+                               $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 136 -j RETURN
+                               $IPT6 -A mwan3_hook -p ipv6-icmp -m icmp6 --icmpv6-type 137 -j RETURN
+                       fi
                        $IPT -A mwan3_hook -j CONNMARK --restore-mark --nfmask $MMX_MASK --ctmask $MMX_MASK
                        $IPT -A mwan3_hook -m mark --mark 0x0/$MMX_MASK -j mwan3_ifaces_in
                        $IPT -A mwan3_hook -m mark --mark 0x0/$MMX_MASK -j mwan3_connected
index caffecf6640778f22d6f0742e6f56b73a04c9721..cce00b2deb31db2bf7720a54765c556dfc918217 100644 (file)
@@ -187,6 +187,18 @@ snmpd_exec_add() {
        echo "exec $miboid $name $prog $args" >> $CONFIGFILE
 }
 
+snmpd_extend_add() {
+       local cfg="$1"
+
+       config_get name "$cfg" name
+       [ -n "$name" ] || return 0
+       config_get prog "$cfg" prog
+       [ -n "$prog" ] || return 0
+       config_get args "$cfg" args
+       config_get miboid "$cfg" miboid
+       echo "extend $miboid $name $prog $args" >> $CONFIGFILE
+}
+
 snmpd_disk_add() {
         local cfg="$1"
         local disk='disk'
@@ -294,6 +306,7 @@ start_service() {
        config_foreach snmpd_access_HostIP_add access_HostIP
        config_foreach snmpd_pass_add pass
        config_foreach snmpd_exec_add exec
+       config_foreach snmpd_extend_add extend
        config_foreach snmpd_disk_add disk
        config_foreach snmpd_engineid_add engineid
        append_parm trapcommunity community trapcommunity
index b9f296866996a23bfb74b9602945b3b5e369531b..09668f0f2a15c9ff4c13c62505e3037a5def7b40 100644 (file)
@@ -14,11 +14,11 @@ PKG_NAME:=netopeer2
 PKG_LICENSE:=BSD-3-Clause
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
-PKG_VERSION:=0.4.13
+PKG_VERSION:=0.5.26
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=ae560bef2e70d274f6d028b59e3cb398ea2a621d
-PKG_MIRROR_HASH:=43b7f9c436afc76de539a7426b1462249326318b9b836f1d49282106a730a6b8
+PKG_SOURCE_VERSION:=3b99e99c9d507ddc89d21d7f1cbded494e6aa72e
+PKG_MIRROR_HASH:=d29b501d56bf9a2480759cc55368c842f69b07722afb3a0a70f05d6088f72574
 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_VERSION)-$(PKG_SOURCE_VERSION)
@@ -86,6 +86,8 @@ define Package/netopeer2-server/install
        $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/iana-crypt-hash.yang $(1)/etc/sysrepo/yang/iana-crypt-hash@2014-08-06.yang
        $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-x509-cert-to-name.yang $(1)/etc/sysrepo/yang/ietf-x509-cert-to-name@2014-12-10.yang
        $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/ietf-netconf-server@2016-11-02.yang
+       $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-monitoring.yang $(1)/etc/sysrepo/yang/ietf-netconf-monitoring@2010-10-04.yang
+       $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-with-defaults.yang $(1)/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang
        $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-system.yang $(1)/etc/sysrepo/yang/ietf-system@2014-08-06.yang
 
        $(INSTALL_DIR) $(1)/etc/uci-defaults
index 8a7b7fe7e1215d72b9d93e3b5739cc31e4081d74..a931270361d873d656845403ab77c06313385897 100644 (file)
@@ -34,6 +34,16 @@ if [ -x /bin/sysrepoctl ]; then
                fi
        fi
 
+       match=$(sysrepoctl -l | grep "ietf-netconf-monitoring ")
+       if [ ! "$match" ]; then
+               sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-monitoring@2010-10-04.yang -o root:root -p 600
+       fi
+
+       match=$(sysrepoctl -l | grep "ietf-netconf-with-defaults ")
+       if [ ! "$match" ]; then
+               sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang -o root:root -p 600
+       fi
+
        match=$(sysrepoctl -l | grep "ietf-system ")
        if [ ! "$match" ]; then
                sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-system@2014-08-06.yang -o root:root -p 600
diff --git a/net/netopeer2/patches/001-fix-for-cmake-build b/net/netopeer2/patches/001-fix-for-cmake-build
new file mode 100644 (file)
index 0000000..920086a
--- /dev/null
@@ -0,0 +1,74 @@
+Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/CMakeLists.txt
+===================================================================
+--- /dev/null
++++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/CMakeLists.txt
+@@ -0,0 +1,5 @@
++cmake_minimum_required(VERSION 2.6)
++
++add_subdirectory(server)
++add_subdirectory(cli)
++add_subdirectory(keystored)
+Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/cli/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/cli/CMakeLists.txt
++++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/cli/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ cmake_minimum_required(VERSION 2.6)
+ # include custom Modules
+-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
+ project(netopeer2-cli C)
+ include(GNUInstallDirs)
+@@ -83,7 +83,7 @@ endif()
+ install(FILES ${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+ # clean cmake cache
+-add_custom_target(cleancache
++add_custom_target(cleancache_cli
+                   COMMAND make clean
+                   COMMAND find . -iname '*cmake*' -not -name CMakeLists.txt -exec rm -rf {} +
+                   COMMAND rm -rf Makefile Doxyfile
+Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/keystored/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/keystored/CMakeLists.txt
++++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/keystored/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ cmake_minimum_required(VERSION 2.6)
+ # include custom Modules
+-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
+ project(keystored C)
+ include(GNUInstallDirs)
+@@ -140,7 +140,7 @@ if (SSH_KEY_INSTALL)
+         execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/ssh-key-import.sh)")
+ endif()
+-add_custom_target(install-scripts-ide
++add_custom_target(install-scripts-ide-keystored
+     scripts/model-install.sh
+     scripts/ssh-key-import.sh
+ )
+Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/server/CMakeLists.txt
+===================================================================
+--- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/server/CMakeLists.txt
++++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/server/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ cmake_minimum_required(VERSION 2.8.9)
+ # include custom Modules
+-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
+ project(netopeer2-server C)
+ include(GNUInstallDirs)
+@@ -176,7 +176,7 @@ if (ENABLE_CONFIGURATION)
+         execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/model-install.sh)")
+ endif()
+-add_custom_target(install-scripts-ide
++add_custom_target(install-scripts-ide-server
+     scripts/model-install.sh
diff --git a/net/netopeer2/patches/001-remove-sysrepoctl-commands-from-cmake b/net/netopeer2/patches/001-remove-sysrepoctl-commands-from-cmake
deleted file mode 100644 (file)
index 1d14ee0..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-Index: netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/keystored/CMakeLists.txt
-===================================================================
---- netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee.orig/keystored/CMakeLists.txt
-+++ netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/keystored/CMakeLists.txt
-@@ -105,6 +105,7 @@ endif()
- install(DIRECTORY DESTINATION ${KEYSTORED_KEYS_DIR}
-         DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE)
-+if(FALSE)
- # install all the required modules and enable features
- install(CODE "
-     execute_process(COMMAND ${SYSREPOCTL_EXECUTABLE} -l RESULT_VARIABLE RET OUTPUT_VARIABLE INSTALLED_MODULES ERROR_VARIABLE OUT)
-@@ -154,6 +155,7 @@ install(CODE "
-             message(FATAL_ERROR \"  Command sysrepocfg import failed:\\n  \${OUT}\")
-         endif()
-     endif()")
-+endif()
- # plugins should be installed into sysrepo plugins dir
- install(TARGETS keystored DESTINATION ${SR_PLUGINS_DIR})
-Index: netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/server/CMakeLists.txt
-===================================================================
---- netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee.orig/server/CMakeLists.txt
-+++ netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/server/CMakeLists.txt
-@@ -147,6 +147,7 @@ include_directories(${SYSREPO_INCLUDE_DI
- # install binary
- install(TARGETS netopeer2-server DESTINATION ${CMAKE_INSTALL_BINDIR})
-+if(FALSE)
- # only for configuration
- if (ENABLE_CONFIGURATION)
-     # find sysrepoctl
-@@ -239,6 +240,7 @@ if (ENABLE_CONFIGURATION)
-         endif()")
- endif()
-+endif()
- # clean cmake cache
- add_custom_target(cleancache
diff --git a/net/netopeer2/patches/002-fix-for-cmake-build b/net/netopeer2/patches/002-fix-for-cmake-build
deleted file mode 100644 (file)
index bd29d4d..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/CMakeLists.txt
-===================================================================
---- /dev/null
-+++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/CMakeLists.txt
-@@ -0,0 +1,5 @@
-+cmake_minimum_required(VERSION 2.6)
-+
-+add_subdirectory(server)
-+add_subdirectory(cli)
-+add_subdirectory(keystored)
-Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/cli/CMakeLists.txt
-===================================================================
---- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/cli/CMakeLists.txt
-+++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/cli/CMakeLists.txt
-@@ -1,7 +1,7 @@
- cmake_minimum_required(VERSION 2.6)
- # include custom Modules
--set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
-+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
- project(netopeer2-cli C)
- include(GNUInstallDirs)
-@@ -83,7 +83,7 @@ endif()
- install(FILES ${PROJECT_SOURCE_DIR}/doc/${PROJECT_NAME}.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
- # clean cmake cache
--add_custom_target(cleancache
-+add_custom_target(cleancache_cli
-                   COMMAND make clean
-                   COMMAND find . -iname '*cmake*' -not -name CMakeLists.txt -exec rm -rf {} +
-                   COMMAND rm -rf Makefile Doxyfile
-Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/keystored/CMakeLists.txt
-===================================================================
---- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/keystored/CMakeLists.txt
-+++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/keystored/CMakeLists.txt
-@@ -1,7 +1,7 @@
- cmake_minimum_required(VERSION 2.6)
- # include custom Modules
--set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
-+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
- project(keystored C)
- include(GNUInstallDirs)
-Index: netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/server/CMakeLists.txt
-===================================================================
---- netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d.orig/server/CMakeLists.txt
-+++ netopeer2-0.4.13-ae560bef2e70d274f6d028b59e3cb398ea2a621d/server/CMakeLists.txt
-@@ -1,7 +1,7 @@
- cmake_minimum_required(VERSION 2.8.9)
- # include custom Modules
--set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMakeModules/")
-+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
- project(netopeer2-server C)
- include(GNUInstallDirs)
index 4cec04026e21e756937e16b40e5f41068acc01e0..32e6d245b1ede260f0848337172afd27e59c3dd3 100644 (file)
@@ -201,5 +201,34 @@ config NGINX_HTTP_SECURE_LINK
        bool
        prompt "Enable HTTP secure link module"
        default n
+       
+config NGINX_HEADERS_MORE
+       bool
+       prompt "Enable Headers_more module"
+       help
+               Set and clear input and output headers...more than "add"!
+       default y
+       
+config NGINX_HTTP_BROTLI
+       bool
+       prompt "Enable Brotli compression module"
+       help
+               Add support for brotli compression module.
+       default n
+
+config NGINX_RTMP_MODULE
+       bool
+       prompt "Enable RTMP module"
+       depends on NGINX_SSL
+       help
+               Add support for NGINX-based Media Streaming Server module.
+       default n
+
+config NGINX_TS_MODULE
+       bool
+       prompt "Enable TS module"
+       help
+               Add support for MPEG-TS Live Module module.
+       default n
 
 endmenu
diff --git a/net/nginx/Config_ssl.in b/net/nginx/Config_ssl.in
new file mode 100644 (file)
index 0000000..3b18dbb
--- /dev/null
@@ -0,0 +1,226 @@
+#
+# Copyright (C) 2010-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+menu "Configuration"
+        depends on PACKAGE_nginx-ssl
+
+config NGINX_DAV
+       bool
+       prompt "Enable WebDAV module"
+       help
+               Enable the HTTP and WebDAV methods PUT, DELETE, MKCOL, COPY and MOVE.
+       default n
+
+config NGINX_FLV
+       bool
+       prompt "Enable FLV module"
+       help
+               Provides the ability to seek within FLV (Flash) files using time-based offsets.
+       default n
+
+config NGINX_STUB_STATUS
+       bool
+       prompt "Enable stub status module"
+       help
+               Enable the stub status module which gives some status from the server.
+       default n
+
+config NGINX_HTTP_CHARSET
+       bool
+       prompt "Enable HTTP charset module"
+       default y
+
+config NGINX_HTTP_GZIP
+       bool
+       prompt "Enable HTTP gzip module"
+       default y
+
+config NGINX_HTTP_SSI
+       bool
+       prompt "Enable HTTP ssi module"
+       default y
+
+config NGINX_HTTP_USERID
+       bool
+       prompt "Enable HTTP userid module"
+       default y
+
+config NGINX_HTTP_ACCESS
+       bool
+       prompt "Enable HTTP access module"
+       default y
+
+config NGINX_HTTP_AUTH_BASIC
+       bool
+       prompt "Enable HTTP auth basic"
+       default y
+
+config NGINX_HTTP_AUTH_REQUEST
+       bool
+       prompt "Enable HTTP auth request module"
+       default n
+
+config NGINX_HTTP_AUTOINDEX
+       bool
+       prompt "Enable HTTP autoindex module"
+       default y
+
+config NGINX_HTTP_GEO
+       bool
+       prompt "Enable HTTP geo module"
+       default y
+
+config NGINX_HTTP_MAP
+       bool
+       prompt "Enable HTTP map module"
+       default y
+
+config NGINX_HTTP_SPLIT_CLIENTS
+       bool
+       prompt "Enable HTTP split clients"
+       default y
+
+config NGINX_HTTP_REFERER
+       bool
+       prompt "Enable HTTP referer module"
+       default y
+
+config NGINX_HTTP_REWRITE
+       bool
+       prompt "Enable HTTP rewrite module"
+       select NGINX_PCRE
+       default y
+
+config NGINX_HTTP_PROXY
+       bool
+       prompt "Enable HTTP proxy module"
+       default y
+
+config NGINX_HTTP_FASTCGI
+       bool
+       prompt "Enable HTTP fastcgi module"
+       default y
+
+config NGINX_HTTP_UWSGI
+       bool
+       prompt "Enable HTTP uwsgi module"
+       default y
+
+config NGINX_HTTP_SCGI
+       bool
+       prompt "Enable HTTP scgi module"
+       default y
+
+config NGINX_HTTP_MEMCACHED
+       bool
+       prompt "Enable HTTP memcached module"
+       default y
+
+config NGINX_HTTP_LIMIT_CONN
+       bool
+       prompt "Enable HTTP limit conn"
+       default y
+
+config NGINX_HTTP_LIMIT_REQ
+       bool
+       prompt "Enable HTTP limit req"
+       default y
+
+config NGINX_HTTP_EMPTY_GIF
+       bool
+       prompt "Enable HTTP empty gif"
+       default y
+
+config NGINX_HTTP_BROWSER
+       bool
+       prompt "Enable HTTP browser module"
+       default y
+
+config NGINX_HTTP_UPSTREAM_HASH
+       bool
+       prompt "Enable HTTP hash module"
+       default y
+
+config NGINX_HTTP_UPSTREAM_IP_HASH
+       bool
+       prompt "Enable HTTP IP hash module"
+       default y
+
+config NGINX_HTTP_UPSTREAM_LEAST_CONN
+       bool
+       prompt "Enable HTTP least conn module"
+       default y
+
+config NGINX_HTTP_UPSTREAM_KEEPALIVE
+       bool
+       prompt "Enable HTTP keepalive module"
+       default y
+
+config NGINX_HTTP_CACHE
+       bool
+       prompt "Enable HTTP cache"
+       default y
+
+config NGINX_HTTP_V2
+       bool
+       prompt "Enable HTTP_V2 module"
+       default n
+
+config NGINX_PCRE
+       bool
+       prompt "Enable PCRE library usage"
+       default y
+
+config NGINX_NAXSI
+       bool
+       prompt "Enable NAXSI module"
+       default y
+
+config NGINX_LUA
+       bool
+       prompt "Enable Lua module"
+       default n
+
+config NGINX_HTTP_REAL_IP
+       bool
+       prompt "Enable HTTP real ip module"
+       default n
+
+config NGINX_HTTP_SECURE_LINK
+       bool
+       prompt "Enable HTTP secure link module"
+       default n
+       
+config NGINX_HEADERS_MORE
+       bool
+       prompt "Enable Headers_more module"
+       help
+               Set and clear input and output headers...more than "add"!
+       default y
+       
+config NGINX_HTTP_BROTLI
+       bool
+       prompt "Enable Brotli compression module"
+       help
+               Add support for brotli compression module.
+       default n
+
+config NGINX_RTMP_MODULE
+       bool
+       prompt "Enable RTMP module"
+       help
+               Add support for NGINX-based Media Streaming Server module.
+       default n
+
+config NGINX_TS_MODULE
+       bool
+       prompt "Enable TS module"
+       help
+               Add support for MPEG-TS Live Module module.
+       default n
+
+endmenu
index d018514aa2c9556472bb76f19b5a11c9a15bdff1..be2a857a91d7548778f6b70978819ea7af96569e 100644 (file)
@@ -8,17 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nginx
-PKG_VERSION:=1.12.2
+PKG_VERSION:=1.15.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://nginx.org/download/
-PKG_HASH:=305f379da1d5fb5aefa79e45c829852ca6983c7cd2a79328f8e084a324cf0416
-PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
+PKG_HASH:=c7206858d7f832b8ef73a45c9b8f8e436bcb1ee88db2bc85b8e438ecec9d5460
+
+PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de> \
+                               Ansuel Smith <ansuelsmth@gmail.com>
 PKG_LICENSE:=2-clause BSD-like license
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/nginx-$(PKG_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
+PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
@@ -60,162 +63,267 @@ PKG_CONFIG_DEPENDS := \
        CONFIG_NGINX_NAXSI \
        CONFIG_NGINX_LUA \
        CONFIG_NGINX_HTTP_REAL_IP \
-       CONFIG_NGINX_HTTP_SECURE_LINK
+       CONFIG_NGINX_HTTP_SECURE_LINK \
+       CONFIG_NGINX_HTTP_BROTLI \
+       CONFIG_NGINX_HEADERS_MORE \
+       CONFIG_NGINX_RTMP_MODULE \
+       CONFIG_NGINX_TS_MODULE \
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/nginx
+define Package/nginx/default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Web Servers/Proxies
   TITLE:=Nginx web server
   URL:=http://nginx.org/
-  DEPENDS:=+NGINX_PCRE:libpcre +(NGINX_SSL||NGINX_HTTP_CACHE||NGINX_HTTP_AUTH_BASIC):libopenssl +NGINX_HTTP_GZIP:zlib +NGINX_LUA:liblua +libpthread
-  MENU:=1
+  DEPENDS:=+NGINX_PCRE:libpcre +(NGINX_SSL||NGINX_HTTP_CACHE||NGINX_HTTP_AUTH_BASIC):libopenssl \
+     +NGINX_HTTP_GZIP:zlib +NGINX_LUA:liblua +libpthread
 endef
 
 define Package/nginx/description
- nginx is an HTTP and reverse proxy server, as well as a mail proxy server,
- written by Igor Sysoev.
+ nginx is an HTTP and reverse proxy server, as well as a mail proxy server, \
+ written by Igor Sysoev. (Some module require SSL module enable to show up in \
+ config menu)
+endef
+
+define Package/nginx
+  $(Package/nginx/default)
+  VARIANT:=no-ssl
+endef
+
+define Package/nginx-ssl
+  $(Package/nginx/default)
+  TITLE += with SSL support
+  DEPENDS +=+libopenssl
+  VARIANT:=ssl
 endef
 
+Package/nginx-ssl/description = $(Package/nginx/description) \
+  This varian is compiled with SSL support enabled. To enable additional module \
+  select them in the nginx default configuration menu.
+
+define Package/nginx-all-module
+  $(Package/nginx/default)
+  TITLE += with ALL module selected
+  DEPENDS:=+libpcre +libopenssl +zlib +liblua +libpthread
+  VARIANT:=all-module
+endef
+
+Package/nginx-all-module/description = $(Package/nginx/description) \
+  This varian is compiled with ALL module selected.
+
 define Package/nginx/config
   source "$(SOURCE)/Config.in"
 endef
 
+define Package/nginx-ssl/config
+  source "$(SOURCE)/Config_ssl.in"
+endef
+
 config_files=nginx.conf mime.types
 
 define Package/nginx/conffiles
 /etc/nginx/
 endef
 
+Package/nginx-ssl/conffiles = $(Package/nginx/conffiles)
+Package/nginx-all-module/conffiles = $(Package/nginx/conffiles)
+
+
 ADDITIONAL_MODULES:=
-ifeq ($(CONFIG_NGINX_NAXSI),y)
-  ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src
-endif
-ifeq ($(CONFIG_NGINX_LUA),y)
-  ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/lua-nginx
-endif
-ifeq ($(CONFIG_IPV6),y)
-  ADDITIONAL_MODULES += --with-ipv6
-endif
-ifeq ($(CONFIG_NGINX_STUB_STATUS),y)
-  ADDITIONAL_MODULES += --with-http_stub_status_module
-endif
-ifeq ($(CONFIG_NGINX_FLV),y)
-  ADDITIONAL_MODULES += --with-http_flv_module
-endif
-ifeq ($(CONFIG_NGINX_SSL),y)
-  ADDITIONAL_MODULES += --with-http_ssl_module
-endif
-ifeq ($(CONFIG_NGINX_DAV),y)
-  ADDITIONAL_MODULES += --with-http_dav_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_CACHE),y)
-  ADDITIONAL_MODULES += --without-http-cache
-endif
-ifneq ($(CONFIG_NGINX_PCRE),y)
-  ADDITIONAL_MODULES += --without-pcre
-endif
-ifneq ($(CONFIG_NGINX_HTTP_CHARSET),y)
-  ADDITIONAL_MODULES += --without-http_charset_module
-else
-  config_files += koi-utf koi-win win-utf
-endif
-ifneq ($(CONFIG_NGINX_HTTP_GZIP),y)
-  ADDITIONAL_MODULES += --without-http_gzip_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_SSI),y)
-  ADDITIONAL_MODULES += --without-http_ssi_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_USERID),y)
-  ADDITIONAL_MODULES += --without-http_userid_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_ACCESS),y)
-  ADDITIONAL_MODULES += --without-http_access_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_AUTH_BASIC),y)
-  ADDITIONAL_MODULES += --without-http_auth_basic_module
-endif
-ifeq ($(CONFIG_NGINX_HTTP_AUTH_REQUEST),y)
-  ADDITIONAL_MODULES += --with-http_auth_request_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_AUTOINDEX),y)
-  ADDITIONAL_MODULES += --without-http_autoindex_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_GEO),y)
-  ADDITIONAL_MODULES += --without-http_geo_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_MAP),y)
-  ADDITIONAL_MODULES += --without-http_map_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_SPLIT_CLIENTS),y)
-  ADDITIONAL_MODULES += --without-http_split_clients_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_REFERER),y)
-  ADDITIONAL_MODULES += --without-http_referer_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_REWRITE),y)
-  ADDITIONAL_MODULES += --without-http_rewrite_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_PROXY),y)
-  ADDITIONAL_MODULES += --without-http_proxy_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_FASTCGI),y)
-  ADDITIONAL_MODULES += --without-http_fastcgi_module
+
+ifneq ($(BUILD_VARIANT),all-module)
+  ifneq ($(CONFIG_NGINX_HTTP_CACHE),y)
+    ADDITIONAL_MODULES += --without-http-cache
+  endif
+  ifneq ($(CONFIG_NGINX_PCRE),y)
+    ADDITIONAL_MODULES += --without-pcre
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_CHARSET),y)
+    ADDITIONAL_MODULES += --without-http_charset_module
+  else
+    config_files += koi-utf koi-win win-utf
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_GZIP),y)
+    ADDITIONAL_MODULES += --without-http_gzip_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_SSI),y)
+    ADDITIONAL_MODULES += --without-http_ssi_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_USERID),y)
+    ADDITIONAL_MODULES += --without-http_userid_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_ACCESS),y)
+    ADDITIONAL_MODULES += --without-http_access_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_AUTH_BASIC),y)
+    ADDITIONAL_MODULES += --without-http_auth_basic_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_AUTOINDEX),y)
+    ADDITIONAL_MODULES += --without-http_autoindex_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_GEO),y)
+    ADDITIONAL_MODULES += --without-http_geo_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_MAP),y)
+    ADDITIONAL_MODULES += --without-http_map_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_SPLIT_CLIENTS),y)
+    ADDITIONAL_MODULES += --without-http_split_clients_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_REFERER),y)
+    ADDITIONAL_MODULES += --without-http_referer_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_REWRITE),y)
+    ADDITIONAL_MODULES += --without-http_rewrite_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_PROXY),y)
+    ADDITIONAL_MODULES += --without-http_proxy_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_FASTCGI),y)
+    ADDITIONAL_MODULES += --without-http_fastcgi_module
+  else
+    config_files += fastcgi_params
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_UWSGI),y)
+    ADDITIONAL_MODULES += --without-http_uwsgi_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_SCGI),y)
+    ADDITIONAL_MODULES += --without-http_scgi_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_MEMCACHED),y)
+    ADDITIONAL_MODULES += --without-http_memcached_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_LIMIT_CONN),y)
+    ADDITIONAL_MODULES += --without-http_limit_conn_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_LIMIT_REQ),y)
+    ADDITIONAL_MODULES += --without-http_limit_req_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_EMPTY_GIF),y)
+    ADDITIONAL_MODULES += --without-http_empty_gif_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_BROWSER),y)
+    ADDITIONAL_MODULES += --without-http_browser_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_HASH),y)
+    ADDITIONAL_MODULES += --without-http_upstream_hash_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH),y)
+    ADDITIONAL_MODULES += --without-http_upstream_ip_hash_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN),y)
+    ADDITIONAL_MODULES += --without-http_upstream_least_conn_module
+  endif
+  ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE),y)
+    ADDITIONAL_MODULES += --without-http_upstream_keepalive_module
+  endif
+  
+  ifeq ($(BUILD_VARIANT),ssl)
+    ifneq ($(CONFIG_NGINX_SSL),y)
+      ADDITIONAL_MODULES += --with-http_ssl_module
+    endif
+  endif
+  
+  ifeq ($(CONFIG_NGINX_SSL),y)
+    ADDITIONAL_MODULES += --with-http_ssl_module
+  endif
+  ifeq ($(CONFIG_NGINX_NAXSI),y)
+    ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src
+  endif
+  ifeq ($(CONFIG_NGINX_LUA),y)
+    ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/lua-nginx
+  endif
+  ifeq ($(CONFIG_IPV6),y)
+    ADDITIONAL_MODULES += --with-ipv6
+  endif
+  ifeq ($(CONFIG_NGINX_STUB_STATUS),y)
+    ADDITIONAL_MODULES += --with-http_stub_status_module
+  endif
+  ifeq ($(CONFIG_NGINX_FLV),y)
+    ADDITIONAL_MODULES += --with-http_flv_module
+  endif
+  ifeq ($(CONFIG_NGINX_DAV),y)
+    ADDITIONAL_MODULES += --with-http_dav_module
+  endif
+  ifeq ($(CONFIG_NGINX_HTTP_AUTH_REQUEST),y)
+    ADDITIONAL_MODULES += --with-http_auth_request_module
+  endif
+  ifeq ($(CONFIG_NGINX_HTTP_V2),y)
+    ADDITIONAL_MODULES += --with-http_v2_module
+  endif
+  ifeq ($(CONFIG_NGINX_HTTP_REAL_IP),y)
+    ADDITIONAL_MODULES += --with-http_realip_module
+  endif
+  ifeq ($(CONFIG_NGINX_HTTP_SECURE_LINK),y)
+    ADDITIONAL_MODULES += --with-http_secure_link_module
+  endif
+  ifeq ($(CONFIG_NGINX_HEADERS_MORE),y)
+    ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-headers-more
+  endif
+  ifeq ($(CONFIG_NGINX_HTTP_BROTLI),y)
+    ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-brotli
+  endif
+  ifeq ($(CONFIG_NGINX_RTMP_MODULE),y)
+    ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-rtmp
+  endif
+  ifeq ($(CONFIG_NGINX_TS_MODULE),y)
+    ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-ts
+  endif
 else
-  config_files += fastcgi_params
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UWSGI),y)
-  ADDITIONAL_MODULES += --without-http_uwsgi_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_SCGI),y)
-  ADDITIONAL_MODULES += --without-http_scgi_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_MEMCACHED),y)
-  ADDITIONAL_MODULES += --without-http_memcached_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_LIMIT_CONN),y)
-  ADDITIONAL_MODULES += --without-http_limit_conn_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_LIMIT_REQ),y)
-  ADDITIONAL_MODULES += --without-http_limit_req_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_EMPTY_GIF),y)
-  ADDITIONAL_MODULES += --without-http_empty_gif_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_BROWSER),y)
-  ADDITIONAL_MODULES += --without-http_browser_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_HASH),y)
-  ADDITIONAL_MODULES += --without-http_upstream_hash_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH),y)
-  ADDITIONAL_MODULES += --without-http_upstream_ip_hash_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN),y)
-  ADDITIONAL_MODULES += --without-http_upstream_least_conn_module
-endif
-ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE),y)
-  ADDITIONAL_MODULES += --without-http_upstream_keepalive_module
-endif
-ifeq ($(CONFIG_NGINX_HTTP_V2),y)
-  ADDITIONAL_MODULES += --with-http_v2_module
-endif
-ifeq ($(CONFIG_NGINX_HTTP_REAL_IP),y)
-  ADDITIONAL_MODULES += --with-http_realip_module
-endif
-ifeq ($(CONFIG_NGINX_HTTP_SECURE_LINK),y)
-  ADDITIONAL_MODULES += --with-http_secure_link_module
+  CONFIG_NGINX_HEADERS_MORE:=y
+  CONFIG_NGINX_HTTP_BROTLI:=y
+  CONFIG_NGINX_RTMP_MODULE:=y
+  CONFIG_NGINX_TS_MODULE:=y
+  CONFIG_NGINX_NAXSI:=y
+  CONFIG_NGINX_LUA:=y
+  ADDITIONAL_MODULES += --with-http_ssl_module --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src \
+    --add-module=$(PKG_BUILD_DIR)/lua-nginx --with-ipv6 --with-http_stub_status_module --with-http_flv_module \
+       --with-http_dav_module --with-http_auth_request_module --with-http_v2_module --with-http_realip_module \
+       --with-http_secure_link_module --add-module=$(PKG_BUILD_DIR)/nginx-headers-more \
+       --add-module=$(PKG_BUILD_DIR)/nginx-brotli --add-module=$(PKG_BUILD_DIR)/nginx-rtmp \
+       --add-module=$(PKG_BUILD_DIR)/nginx-ts
+  config_files += koi-utf koi-win win-utf fastcgi_params 
 endif
 
+define Package/nginx-mod-luci/default
+  TITLE:=Nginx on LuCI
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Web Servers/Proxies
+  TITLE:=Support file for Nginx
+  URL:=http://nginx.org/
+  DEPENDS:=+uwsgi-cgi +uwsgi-cgi-luci-support
+endef
+
+define Package/nginx-mod-luci
+  $(Package/nginx-mod-luci/default)
+  DEPENDS += +nginx
+endef
+
+define Package/nginx-mod-luci/description
+ Support file for LuCI in nginx. Include custom nginx configuration, autostart script for uwsgi.
+endef
+
+define Package/nginx-mod-luci-ssl
+  $(Package/nginx-mod-luci/default)
+  TITLE += with HTTPS support
+  DEPENDS += +nginx-ssl
+endef
+
+Package/nginx-mod-luci-ssl/description = $(define Package/nginx-mod-luci/description) \
+  This also include redirect from http to https and cert autogeneration.
+
 TARGET_CFLAGS += -fvisibility=hidden -ffunction-sections -fdata-sections -DNGX_LUA_NO_BY_LUA_BLOCK
 TARGET_LDFLAGS += -Wl,--gc-sections
 
-define Build/Configure
-       ( cd $(PKG_BUILD_DIR) ; \
-               $(if $(CONFIG_NGINX_LUA),LUA_INC=$(STAGING_DIR)/usr/include LUA_LIB=$(STAGING_DIR)/usr/lib) \
-               ./configure \
+ifeq ($(CONFIG_NGINX_LUA),y)
+  CONFIGURE_VARS += LUA_INC=$(STAGING_DIR)/usr/include \
+                                       LUA_LIB=$(STAGING_DIR)/usr/lib
+endif
+
+CONFIGURE_ARGS += \
                        --crossbuild=Linux::$(ARCH) \
                        --prefix=/usr \
                        --conf-path=/etc/nginx/nginx.conf \
@@ -230,8 +338,22 @@ define Build/Configure
                        --with-cc="$(TARGET_CC)" \
                        --with-cc-opt="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
                        --with-ld-opt="$(TARGET_LDFLAGS)" \
-                       --without-http_upstream_zone_module \
-       )
+                       --without-http_upstream_zone_module
+
+define Package/nginx-mod-luci/install
+       $(INSTALL_DIR) $(1)/etc/nginx
+       $(INSTALL_BIN) ./files-luci-support/luci_uwsgi.conf $(1)/etc/nginx/luci_uwsgi.conf
+       $(INSTALL_BIN) ./files-luci-support/luci_nginx.conf $(1)/etc/nginx/luci_nginx.conf
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_BIN) ./files-luci-support/60_nginx-luci-support $(1)/etc/uci-defaults/60_nginx-luci-support
+endef
+
+define Package/nginx-mod-luci-ssl/install
+       $(Package/nginx-mod-luci/install)
+       $(INSTALL_DIR) $(1)/etc/nginx
+       $(INSTALL_BIN) ./files-luci-support/luci_nginx_ssl.conf $(1)/etc/nginx/luci_nginx_ssl.conf
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_BIN) ./files-luci-support/70_nginx-luci-support-ssl $(1)/etc/uci-defaults/70_nginx-luci-support-ssl
 endef
 
 define Package/nginx/install
@@ -250,37 +372,130 @@ endif
        $(if $(CONFIG_NGINX_NAXSI),$(chmod 0640 $(1)/etc/nginx/naxsi_core.rules))
 endef
 
+Package/nginx-ssl/install = $(Package/nginx/install)
+Package/nginx-all-module/install = $(Package/nginx/install)
+
 define Build/Prepare
-       $(call Build/Prepare/Default)
-       $(if $(CONFIG_NGINX_NAXSI),$(call Prepare/nginx-naxsi))
-       $(if $(CONFIG_NGINX_LUA),$(call Prepare/lua-nginx))
+       $(Build/Prepare/Default)
+       $(Prepare/nginx-naxsi)
+       $(Prepare/lua-nginx)
+       $(Prepare/nginx-brotli)
+       $(Prepare/nginx-headers-more)
+       $(Prepare/nginx-rtmp)
+       $(Prepare/nginx-ts)
 endef
 
-define Download/nginx-naxsi
-       VERSION:=cf73f9c8664127252c2a4958d2e169516d3845a1
-       SUBDIR:=nginx-naxsi
-       FILE:=nginx-naxsi-module-$(PKG_VERSION)-$$(VERSION).tar.gz
-       URL:=https://github.com/nbs-system/naxsi.git
-       PROTO:=git
-endef
 
-define  Prepare/nginx-naxsi
-       $(eval $(call Download,nginx-naxsi))
+ifeq ($(CONFIG_NGINX_HEADERS_MORE),y)
+  define Download/nginx-headers-more
+    VERSION:=a9f7c7e86cc7441d04e2f11f01c2e3a9c4b0301d
+    SUBDIR:=nginx-headers-more
+    FILE:=headers-more-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+    URL:=https://github.com/openresty/headers-more-nginx-module.git
+    MIRROR_HASH:=432609015719aaa7241e5166c7cda427acbe004f725887f78ef629d51bd9cb3f
+    PROTO:=git
+  endef
+  $(eval $(call Download,nginx-headers-more))
+
+  define Prepare/nginx-headers-more
+       $(eval $(Download/nginx-headers-more))
        gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
-endef
+  endef
+endif
+
+
+ifeq ($(CONFIG_NGINX_HTTP_BROTLI),y)
+  define Download/nginx-brotli
+    VERSION:=e26248ee361c04e25f581b92b85d95681bdffb39
+    SUBDIR:=nginx-brotli
+    FILE:=ngx-brotli-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+    URL:=https://github.com/eustas/ngx_brotli.git
+    MIRROR_HASH:=76b891ba49f82f0cfbc9cba875646e26ee986b522373e0aa2698a9923a4adcdb
+    PROTO:=git
+  endef
+  $(eval $(call Download,nginx-brotli))
+
+  define Prepare/nginx-brotli
+       $(eval $(Download/nginx-brotli))
+       gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+  endef
+endif
 
-define Download/lua-nginx
-       VERSION:=cdd2ae921f67bf396c743406493127be496e57ce
-       SUBDIR:=lua-nginx
-       FILE:=lua-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz
-       URL:=https://github.com/openresty/lua-nginx-module.git
-       PROTO:=git
-endef
 
-define  Prepare/lua-nginx
-       $(eval $(call Download,lua-nginx))
+ifeq ($(CONFIG_NGINX_RTMP_MODULE),y)
+  define Download/nginx-rtmp
+    VERSION:=791b6136f02bc9613daf178723ac09f4df5a3bbf
+    SUBDIR:=nginx-rtmp
+    FILE:=ngx-rtmp-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+    URL:=https://github.com/arut/nginx-rtmp-module.git
+    MIRROR_HASH:=8db3f7b545ce98f47415e0436e12dfb55ae787afd3cd9515b5642c7b9dc0ef00
+    PROTO:=git
+  endef
+  $(eval $(call Download,nginx-rtmp))
+
+  define  Prepare/nginx-rtmp
+       $(eval $(call Download,nginx-rtmp))
+       gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+  endef
+endif
+
+
+ifeq ($(CONFIG_NGINX_TS_MODULE),y)
+  define Download/nginx-ts
+    VERSION:=ef2f874d95cc75747eb625a292524a702aefb0fd
+    SUBDIR:=nginx-ts
+    FILE:=ngx-ts-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+    URL:=https://github.com/arut/nginx-ts-module.git
+    MIRROR_HASH:=31ecc9968b928886b54884138eafe2fa747648bca5094d4c3132e8ae9509d1d3
+    PROTO:=git
+  endef
+  $(eval $(call Download,nginx-ts))
+
+  define  Prepare/nginx-ts
+       $(eval $(call Download,nginx-ts))
+       gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+  endef
+endif
+
+
+ifeq ($(CONFIG_NGINX_NAXSI),y)
+  define Download/nginx-naxsi
+    VERSION:=951123ad456bdf5ac94e8d8819342fe3d49bc002
+    SUBDIR:=nginx-naxsi
+    FILE:=nginx-naxsi-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+    URL:=https://github.com/nbs-system/naxsi.git
+    MIRROR_HASH:=7ab791f2ff38096f48013141bbfe20ba213d5e04dcac08ca82e0cac07d5c30f0
+    PROTO:=git
+  endef
+  $(eval $(call Download,nginx-naxsi))
+
+  define Prepare/nginx-naxsi
+       $(eval $(Download/nginx-naxsi))
+       gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+  endef
+endif
+
+
+ifeq ($(CONFIG_NGINX_LUA),y)
+  define Download/lua-nginx
+    VERSION:=576a10d246daf81c0ce1b959c50ee807769c01a8
+    SUBDIR:=lua-nginx
+    FILE:=lua-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz
+    URL:=https://github.com/openresty/lua-nginx-module.git
+    MIRROR_HASH:=85ab2fc752d4e09f266209fdec507b30c57bb966c34bbff148cf3459ae5cac80
+    PROTO:=git
+  endef
+  $(eval $(call Download,lua-nginx))
+
+  define Prepare/lua-nginx
+       $(eval $(Download/lua-nginx))
        gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
        $(call PatchDir,$(PKG_BUILD_DIR),./patches-lua-nginx)
-endef
+  endef
+endif
 
 $(eval $(call BuildPackage,nginx))
+$(eval $(call BuildPackage,nginx-ssl))
+$(eval $(call BuildPackage,nginx-all-module))
+$(eval $(call BuildPackage,nginx-mod-luci))
+$(eval $(call BuildPackage,nginx-mod-luci-ssl))
diff --git a/net/nginx/files-luci-support/60_nginx-luci-support b/net/nginx/files-luci-support/60_nginx-luci-support
new file mode 100644 (file)
index 0000000..38a8aa8
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+if [ -f "/etc/nginx/luci_nginx.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then
+       if [ ! "$(cat '/etc/nginx/nginx.conf' | grep -q 'luci_uwsgi.conf')" ]; then
+               mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_old
+               mv /etc/nginx/luci_nginx.conf /etc/nginx/nginx.conf
+               core_number=$(grep -c ^processor /proc/cpuinfo)
+               sed -i "3s/.*/worker_processes  "$core_number";/" /etc/nginx/nginx.conf
+               if [ -n "$(pgrep uhttpd)" ]; then
+                       /etc/init.d/uhttpd stop
+                       /etc/init.d/uhttpd disable
+               fi
+               if [ -n "$(pgrep nginx)" ]; then
+                       /etc/init.d/nginx restart
+               else
+                       /etc/init.d/nginx start
+               fi
+               if [ -n "$(pgrep uwsgi)" ]; then
+                       /etc/init.d/uwsgi restart
+               else
+                       /etc/init.d/uwsgi start
+               fi
+       fi
+fi
+
+exit 0
diff --git a/net/nginx/files-luci-support/70_nginx-luci-support-ssl b/net/nginx/files-luci-support/70_nginx-luci-support-ssl
new file mode 100644 (file)
index 0000000..1cc1a85
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+
+if [ -f "/etc/nginx/luci_nginx_ssl.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then
+       if [ ! "$(cat '/etc/nginx/nginx.conf' | grep -q 'return 301 https://$host$request_uri;')" ]; then
+               if [ -f "/etc/nginx/nginx.conf_old" ]; then
+                       rm /etc/nginx/nginx.conf
+               else
+                       mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_old
+               fi
+               mv /etc/nginx/luci_nginx_ssl.conf /etc/nginx/nginx.conf
+               core_number=$(grep -c ^processor /proc/cpuinfo)
+               sed -i "3s/.*/worker_processes  "$core_number";/" /etc/nginx/nginx.conf
+               if [ -n "$(pgrep nginx)" ]; then
+                       /etc/init.d/nginx restart
+               else
+                       /etc/init.d/nginx start
+               fi
+       fi
+fi
+
+
+if [ ! -f "/etc/nginx/nginx.key" ]; then
+       
+       NGINX_KEY=/etc/nginx/nginx.key
+       NGINX_CER=/etc/nginx/nginx.cer
+       OPENSSL_BIN=/usr/bin/openssl
+       PX5G_BIN=/usr/sbin/px5g
+       
+       # Prefer px5g for certificate generation (existence evaluated last)
+       GENKEY_CMD=""
+       UNIQUEID=$(dd if=/dev/urandom bs=1 count=4 | hexdump -e '1/1 "%02x"')
+       [ -x "$OPENSSL_BIN" ] && GENKEY_CMD="$OPENSSL_BIN req -x509 -nodes"
+       [ -x "$PX5G_BIN" ] && GENKEY_CMD="$PX5G_BIN selfsigned"
+       [ -n "$GENKEY_CMD" ] && {
+               $GENKEY_CMD \
+                       -days 730 -newkey rsa:2048 -keyout "${NGINX_KEY}.new" -out "${NGINX_CER}.new" \
+                       -subj /C="ZZ"/ST="Somewhere"/L="Unknown"/O="OpenWrt""$UNIQUEID"/CN="OpenWrt"
+               sync
+               mv "${NGINX_KEY}.new" "${NGINX_KEY}"
+               mv "${NGINX_CER}.new" "${NGINX_CER}"
+       }
+fi
+
+
+exit 0
diff --git a/net/nginx/files-luci-support/luci_nginx.conf b/net/nginx/files-luci-support/luci_nginx.conf
new file mode 100644 (file)
index 0000000..78f916b
--- /dev/null
@@ -0,0 +1,55 @@
+
+user  root;
+worker_processes  1;
+
+#error_log  logs/error.log;
+#error_log  logs/error.log  notice;
+#error_log  logs/error.log  info;
+
+pid        /var/run/nginx.pid;
+
+
+events {
+    worker_connections  1024;
+}
+
+
+http {
+    include       mime.types;
+    default_type  application/octet-stream;
+
+       sendfile on;
+    keepalive_timeout 0;
+       
+       client_body_buffer_size 10K;
+       client_header_buffer_size 1k;
+       client_max_body_size 1G;
+       large_client_header_buffers 2 1k;
+
+    gzip on;
+    gzip_http_version 1.1;
+    gzip_vary on;
+    gzip_comp_level 1;
+    gzip_proxied any;
+       
+       root /www;
+
+    server {
+        listen 80 default_server;
+               listen [::]:80 default_server;
+        server_name  localhost;
+               
+               location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
+                       expires 365d;
+               }
+
+        location / {
+            index  index.html;
+                       include luci_uwsgi.conf;
+        }
+               
+               location /luci-static {
+                       
+               }
+    }
+}
\ No newline at end of file
diff --git a/net/nginx/files-luci-support/luci_nginx_ssl.conf b/net/nginx/files-luci-support/luci_nginx_ssl.conf
new file mode 100644 (file)
index 0000000..4647fec
--- /dev/null
@@ -0,0 +1,70 @@
+
+user  root;
+worker_processes  1;
+
+#error_log  logs/error.log;
+#error_log  logs/error.log  notice;
+#error_log  logs/error.log  info;
+
+pid        /var/run/nginx.pid;
+
+
+events {
+    worker_connections  1024;
+}
+
+
+http {
+    include       mime.types;
+    default_type  application/octet-stream;
+
+       sendfile on;
+    keepalive_timeout 0;
+       
+       client_body_buffer_size 10K;
+       client_header_buffer_size 1k;
+       client_max_body_size 1G;
+       large_client_header_buffers 2 1k;
+
+    gzip on;
+    gzip_http_version 1.1;
+    gzip_vary on;
+    gzip_comp_level 1;
+    gzip_proxied any;
+       
+       root /www;
+       
+       server {
+               listen 80 default_server;
+               listen [::]:80 default_server;
+               server_name _;
+               return 301 https://$host$request_uri;
+       }
+
+    server {
+        listen 443 ssl default_server;
+               listen [::]:443 ssl default_server;
+        server_name  localhost;
+               
+               ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+        ssl_prefer_server_ciphers on;
+               ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:DHE+AESGCM:DHE:!RSA!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!CAMELLIA:!SEED";
+        ssl_session_tickets off;
+
+               ssl_certificate /etc/nginx/nginx.cer;
+        ssl_certificate_key /etc/nginx/nginx.key;
+               
+               location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
+                       expires 365d;
+               }
+
+        location / {
+            index  index.html;
+                       include luci_uwsgi.conf;
+        }
+               
+               location /luci-static {
+                       
+               }
+    }
+}
\ No newline at end of file
diff --git a/net/nginx/files-luci-support/luci_uwsgi.conf b/net/nginx/files-luci-support/luci_uwsgi.conf
new file mode 100644 (file)
index 0000000..eec66f4
--- /dev/null
@@ -0,0 +1,14 @@
+uwsgi_param QUERY_STRING $query_string;
+uwsgi_param REQUEST_METHOD $request_method;
+uwsgi_param CONTENT_TYPE $content_type;
+uwsgi_param CONTENT_LENGTH $content_length if_not_empty;
+uwsgi_param REQUEST_URI $request_uri;
+uwsgi_param PATH_INFO $document_uri;
+uwsgi_param SERVER_PROTOCOL $server_protocol;
+uwsgi_param REMOTE_ADDR $remote_addr;
+uwsgi_param REMOTE_PORT $remote_port;
+uwsgi_param SERVER_ADDR $server_addr;
+uwsgi_param SERVER_PORT $server_port;
+uwsgi_param SERVER_NAME $server_name;
+uwsgi_modifier1 9;
+uwsgi_pass unix:////var/run/uwsgi.sock;
\ No newline at end of file
index fef983fa7779210cfc523c25b1914cce8b600654..968e12d5844742e72a23b9228e4c9b7c1a41f0ce 100644 (file)
@@ -1,6 +1,6 @@
 --- a/lua-nginx/src/ngx_http_lua_module.c
 +++ b/lua-nginx/src/ngx_http_lua_module.c
-@@ -157,14 +157,14 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -165,14 +165,14 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        offsetof(ngx_http_lua_loc_conf_t, log_socket_errors),
        NULL },
@@ -17,7 +17,7 @@
      { ngx_string("init_by_lua"),
        NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
        ngx_http_lua_init_by_lua,
-@@ -178,14 +178,14 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -186,14 +186,14 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_MAIN_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_init_by_file },
@@ -34,7 +34,7 @@
      { ngx_string("init_worker_by_lua"),
        NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
        ngx_http_lua_init_worker_by_lua,
-@@ -201,6 +201,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -209,6 +209,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        (void *) ngx_http_lua_init_worker_by_file },
  
  #if defined(NDK) && NDK
@@ -42,7 +42,7 @@
      /* set_by_lua $res { inline Lua code } [$arg1 [$arg2 [...]]] */
      { ngx_string("set_by_lua_block"),
        NGX_HTTP_SRV_CONF|NGX_HTTP_SIF_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -209,7 +210,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -217,7 +218,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_filter_set_by_lua_inline },
@@ -51,7 +51,7 @@
      /* set_by_lua $res <inline script> [$arg1 [$arg2 [...]]] */
      { ngx_string("set_by_lua"),
        NGX_HTTP_SRV_CONF|NGX_HTTP_SIF_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -237,7 +238,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -245,7 +246,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_rewrite_handler_inline },
@@ -60,7 +60,7 @@
      /* rewrite_by_lua_block { <inline script> } */
      { ngx_string("rewrite_by_lua_block"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -246,7 +247,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -254,7 +255,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_rewrite_handler_inline },
@@ -69,7 +69,7 @@
      /* access_by_lua "<inline script>" */
      { ngx_string("access_by_lua"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -255,7 +256,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -263,7 +264,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_access_handler_inline },
@@ -78,7 +78,7 @@
      /* access_by_lua_block { <inline script> } */
      { ngx_string("access_by_lua_block"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -264,7 +265,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -272,7 +273,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_access_handler_inline },
@@ -87,7 +87,7 @@
      /* content_by_lua "<inline script>" */
      { ngx_string("content_by_lua"),
        NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF|NGX_CONF_TAKE1,
-@@ -272,7 +273,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -280,7 +281,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_content_handler_inline },
@@ -96,7 +96,7 @@
      /* content_by_lua_block { <inline script> } */
      { ngx_string("content_by_lua_block"),
        NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS,
-@@ -280,7 +281,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -288,7 +289,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_content_handler_inline },
      /* log_by_lua <inline script> */
      { ngx_string("log_by_lua"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -289,7 +290,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -297,7 +298,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_log_handler_inline },
      /* log_by_lua_block { <inline script> } */
      { ngx_string("log_by_lua_block"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -298,7 +299,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -306,7 +307,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_log_handler_inline },
      { ngx_string("rewrite_by_lua_file"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
                          |NGX_CONF_TAKE1,
-@@ -353,7 +354,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -361,7 +362,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_header_filter_inline },
      /* header_filter_by_lua_block { <inline script> } */
      { ngx_string("header_filter_by_lua_block"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -362,7 +363,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -370,7 +371,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_header_filter_inline },
      { ngx_string("header_filter_by_lua_file"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
                          |NGX_CONF_TAKE1,
-@@ -378,7 +379,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -386,7 +387,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_body_filter_inline },
      /* body_filter_by_lua_block { <inline script> } */
      { ngx_string("body_filter_by_lua_block"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-@@ -387,7 +388,7 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -395,7 +396,7 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_body_filter_inline },
      { ngx_string("body_filter_by_lua_file"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
                          |NGX_CONF_TAKE1,
-@@ -395,14 +396,14 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -403,14 +404,14 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        (void *) ngx_http_lua_body_filter_file },
      { ngx_string("balancer_by_lua_file"),
        NGX_HTTP_UPS_CONF|NGX_CONF_TAKE1,
        ngx_http_lua_balancer_by_lua,
-@@ -509,14 +510,14 @@ static ngx_command_t ngx_http_lua_cmds[]
+@@ -517,14 +518,14 @@ static ngx_command_t ngx_http_lua_cmds[]
        NGX_HTTP_LOC_CONF_OFFSET,
        offsetof(ngx_http_lua_loc_conf_t, ssl_ciphers),
        NULL },
index 2c692bc798af7693e1f727c58b84e1ee7fcdf25d..930e7da98c4972a5f46f52440ebaa1e6840d0d79 100644 (file)
@@ -11,7 +11,7 @@
      ngx_feature_libs=
 --- a/auto/cc/conf
 +++ b/auto/cc/conf
-@@ -200,7 +200,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+@@ -204,7 +204,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
      else
          ngx_feature="C99 variadic macros"
          ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
@@ -20,7 +20,7 @@
          ngx_feature_incs="#include <stdio.h>
  #define var(dummy, ...)  sprintf(__VA_ARGS__)"
          ngx_feature_path=
-@@ -214,7 +214,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+@@ -218,7 +218,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
  
      ngx_feature="gcc variadic macros"
      ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
@@ -40,7 +40,7 @@
  ngx_feature_incs="#include <sys/epoll.h>"
  ngx_feature_path=
  ngx_feature_libs=
-@@ -93,7 +93,7 @@ ngx_feature_test="int fd; struct stat sb
+@@ -110,7 +110,7 @@ ngx_feature_test="int fd; struct stat sb
  CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
  ngx_feature="sendfile()"
  ngx_feature_name="NGX_HAVE_SENDFILE"
@@ -49,7 +49,7 @@
  ngx_feature_incs="#include <sys/sendfile.h>
                    #include <errno.h>"
  ngx_feature_path=
-@@ -114,7 +114,7 @@ fi
+@@ -131,7 +131,7 @@ fi
  CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
  ngx_feature="sendfile64()"
  ngx_feature_name="NGX_HAVE_SENDFILE64"
@@ -58,7 +58,7 @@
  ngx_feature_incs="#include <sys/sendfile.h>
                    #include <errno.h>"
  ngx_feature_path=
-@@ -132,7 +132,7 @@ ngx_include="sys/prctl.h"; . auto/includ
+@@ -149,7 +149,7 @@ ngx_include="sys/prctl.h"; . auto/includ
  
  ngx_feature="prctl(PR_SET_DUMPABLE)"
  ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
@@ -69,7 +69,7 @@
  ngx_feature_libs=
 --- a/auto/unix
 +++ b/auto/unix
-@@ -735,7 +735,7 @@ ngx_feature_test="void *p; p = memalign(
+@@ -840,7 +840,7 @@ ngx_feature_test="void *p; p = memalign(
  
  ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
  ngx_feature_name="NGX_HAVE_MAP_ANON"
@@ -78,7 +78,7 @@
  ngx_feature_incs="#include <sys/mman.h>"
  ngx_feature_path=
  ngx_feature_libs=
-@@ -748,7 +748,7 @@ ngx_feature_test="void *p;
+@@ -853,7 +853,7 @@ ngx_feature_test="void *p;
  
  ngx_feature='mmap("/dev/zero", MAP_SHARED)'
  ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
@@ -87,7 +87,7 @@
  ngx_feature_incs="#include <sys/mman.h>
                    #include <sys/stat.h>
                    #include <fcntl.h>"
-@@ -763,7 +763,7 @@ ngx_feature_test='void *p; int  fd;
+@@ -868,7 +868,7 @@ ngx_feature_test='void *p; int  fd;
  
  ngx_feature="System V shared memory"
  ngx_feature_name="NGX_HAVE_SYSVSHM"
@@ -96,7 +96,7 @@
  ngx_feature_incs="#include <sys/ipc.h>
                    #include <sys/shm.h>"
  ngx_feature_path=
-@@ -777,7 +777,7 @@ ngx_feature_test="int  id;
+@@ -882,7 +882,7 @@ ngx_feature_test="int  id;
  
  ngx_feature="POSIX semaphores"
  ngx_feature_name="NGX_HAVE_POSIX_SEM"
index 8a0e88200bf12374dd187ed41a8ca76a961b3fd0..7d2430eab9f927063fa18b3fa32dc5618ea774ad 100644 (file)
@@ -16,7 +16,7 @@
      return 0;
  }
  
-@@ -40,7 +45,7 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&
+@@ -40,7 +46,7 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&
  
  
  if [ -x $NGX_AUTOTEST ]; then
diff --git a/net/nginx/patches/201-ignore-invalid-options.patch b/net/nginx/patches/201-ignore-invalid-options.patch
new file mode 100644 (file)
index 0000000..8218023
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/auto/options
++++ b/auto/options
+@@ -391,8 +391,7 @@
+         --test-build-solaris-sendfilev)  NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;
+         *)
+-            echo "$0: error: invalid option \"$option\""
+-            exit 1
++            echo "$0: error: ignoring invalid option \"$option\""
+         ;;
+     esac
+ done
index a69c9fb2a202a96305d6350cd290344e8756ea4c..b066caee70f69efe05abb7d623fe31935819cbb1 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 # Name and release number of this package
 PKG_NAME:=noddos
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_LICENSE:=GPLv3
 PKG_MAINTAINER:=Steven Hessing <steven.hessing@gmail.com>
 
diff --git a/net/noddos/patches/010-openssl-1.1-fixes.patch b/net/noddos/patches/010-openssl-1.1-fixes.patch
new file mode 100644 (file)
index 0000000..965e2b0
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/src/opensslfingerprint.cxx
++++ b/src/opensslfingerprint.cxx
+@@ -110,7 +110,9 @@ std::string getCertFingerprint(const std
+       snprintf(&fpbuf[57], 3, "%02x", md[19]);
+       if (Debug) {
+-              syslog (LOG_DEBUG, "Cert: %s, fingerprint: %s", x->name, fpbuf);
++              char *namebuf = X509_NAME_oneline(X509_get_subject_name(x),NULL,0);
++              syslog (LOG_DEBUG, "Cert: %s, fingerprint: %s", namebuf, fpbuf);
++              free(namebuf);
+       }
+       std::string fp = fpbuf;
index a7c3e7343ae042064257bb944bfeaa22cb7a5cae..850c4a9fafa6f49f90cef8f6f86cb9107558c1fb 100644 (file)
@@ -9,14 +9,15 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nut
 PKG_VERSION:=2.7.4
-PKG_RELEASE:=4
+PKG_RELEASE:=6
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.networkupstools.org/source/2.7/
 PKG_HASH:=980e82918c52d364605c0703a5dcf01f74ad2ef06e3d365949e43b7d406d25a7
-PKG_MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
+PKG_MAINTAINER:=Daniel Dickinson <cshored@thecshore.com>
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=LICENSE-GPL2
+PKG_FIXUP:=autoreconf
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_INSTALL:=1
diff --git a/net/nut/patches/0001-Add-compatibility-with-openssl-1.1.0.patch b/net/nut/patches/0001-Add-compatibility-with-openssl-1.1.0.patch
new file mode 100644 (file)
index 0000000..f75f132
--- /dev/null
@@ -0,0 +1,73 @@
+From fcbf18c92918ce5e81d0aab62a7aed5c2245ea4d Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Fri, 1 Jun 2018 11:17:28 -0300
+Subject: [PATCH 1/2] Add compatibility with openssl 1.1.0
+
+Minor adjustments were needed:
+* Openssl 1.1 libs do not need to be initialized.
+* TLSv*_method became TLS_*_method.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ clients/upsclient.c        | 5 ++++-
+ m4/nut_check_libopenssl.m4 | 2 +-
+ server/netssl.c            | 7 +++++--
+ 3 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/clients/upsclient.c b/clients/upsclient.c
+index b90587b0..053d60fb 100644
+--- a/clients/upsclient.c
++++ b/clients/upsclient.c
+@@ -316,10 +316,13 @@ int upscli_init(int certverify, const char *certpath,
+       
+ #ifdef WITH_OPENSSL
+       
++# if OPENSSL_VERSION_NUMBER < 0x10100000L
+       SSL_library_init();
+       SSL_load_error_strings();
++#  define TLS_client_method TLSv1_client_method
++# endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+-      ssl_method = TLSv1_client_method();
++      ssl_method = TLS_client_method();
+       if (!ssl_method) {
+               return 0;
+diff --git a/m4/nut_check_libopenssl.m4 b/m4/nut_check_libopenssl.m4
+index 1b875077..7eb401cd 100644
+--- a/m4/nut_check_libopenssl.m4
++++ b/m4/nut_check_libopenssl.m4
+@@ -58,7 +58,7 @@ if test -z "${nut_have_libopenssl_seen}"; then
+       dnl check if openssl is usable
+       AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
+-      AC_CHECK_FUNCS(SSL_library_init, [], [nut_have_openssl=no])
++      AC_CHECK_FUNCS(SSL_CTX_new, [], [nut_have_openssl=no])
+       if test "${nut_have_openssl}" = "yes"; then
+               nut_with_ssl="yes"
+diff --git a/server/netssl.c b/server/netssl.c
+index c2f40989..0289e296 100644
+--- a/server/netssl.c
++++ b/server/netssl.c
+@@ -387,12 +387,15 @@ void ssl_init(void)
+ #ifdef WITH_OPENSSL
++# if OPENSSL_VERSION_NUMBER < 0x10100000L
+       SSL_load_error_strings();
+       SSL_library_init();
++#  define TLS_server_method TLSv1_server_method
++# endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+-      if ((ssl_method = TLSv1_server_method()) == NULL) {
++      if ((ssl_method = TLS_server_method()) == NULL) {
+               ssl_debug();
+-              fatalx(EXIT_FAILURE, "TLSv1_server_method failed");
++              fatalx(EXIT_FAILURE, "TLS_server_method failed");
+       }
+       if ((ssl_ctx = SSL_CTX_new(ssl_method)) == NULL) {
+-- 
+2.16.1
+
diff --git a/net/nut/patches/0002-Fix-check-for-empty-string.patch b/net/nut/patches/0002-Fix-check-for-empty-string.patch
new file mode 100644 (file)
index 0000000..2f4c724
--- /dev/null
@@ -0,0 +1,25 @@
+From 2ef929da38232af63ba53074ca97e95ae4faf912 Mon Sep 17 00:00:00 2001
+From: Arjen de Korte <build+lede@de-korte.org>
+Date: Tue, 28 Nov 2017 22:01:41 +0100
+Subject: [PATCH 2/2] Fix check for empty string
+
+---
+ clients/upssched.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/clients/upssched.c b/clients/upssched.c
+index 97b3ed42..3fdf118e 100644
+--- a/clients/upssched.c
++++ b/clients/upssched.c
+@@ -794,7 +794,7 @@ static void parse_at(const char *ntype, const char *un, const char *cmd,
+       }
+       if (!strcmp(cmd, "EXECUTE")) {
+-              if (ca1 == '\0') {
++              if (ca1[0] == '\0') {
+                       upslogx(LOG_ERR, "Empty EXECUTE command argument");
+                       return;
+               }
+-- 
+2.16.1
+
index eca389d6ba49ea4d27583a8fb32d9fb02259b639..bbe45c26f68edaacf051b91a9e308891148046ef 100644 (file)
@@ -9,15 +9,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ola
-PKG_VERSION:=0.10.5
-PKG_RELEASE:=2
+PKG_VERSION:=0.10.6
+PKG_RELEASE:=3
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/OpenLightingProject/ola.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=32db3c49d435398d017c6b5c0b25e02a7a831f5c
+PKG_SOURCE_VERSION:=6e57342c414a72cdd721e8df5bc7967e17459647
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=11ed6540bd667c1662d91de93a260a9a63a98725851f768647e2b9b2efe1ae34
+PKG_MIRROR_HASH:=c1f36eaedcd9711e42fd362ff84d8e66eb40bc6af97de77129a5074d05fb9936
 PKG_LICENSE:=LGPL-2.1+
 
 PKG_FIXUP:=libtool
@@ -38,7 +38,7 @@ define Package/ola
   TITLE:=Open Lighting Architecture Daemon
   URL:=https://www.openlighting.org/
   MAINTAINER:=Christian Beier <dontmind@freeshell.org>
-  DEPENDS:=+protobuf +libusb-1.0 +libuuid +libstdcpp +libpthread +librt +zlib +libncurses +liblo
+  DEPENDS:=+protobuf +libusb-1.0 +libuuid +libstdcpp +libpthread +librt +zlib +libncurses +liblo +libmicrohttpd
 endef
 
 define Package/ola/description
@@ -52,9 +52,8 @@ CONFIGURE_ARGS += \
        --disable-static \
        --disable-fatal-warnings \
        --disable-unittests \
-       --disable-http \
        --without-dns-sd \
-        --with-ola-protoc-plugin=$(HOST_BUILD_DIR)/protoc/ola_protoc_plugin
+       --with-ola-protoc-plugin=$(STAGING_DIR_HOSTPKG)/bin/ola_protoc_plugin
 
 HOST_CONFIGURE_ARGS += \
        --disable-all-plugins \
@@ -75,8 +74,9 @@ define Host/Compile
                $(MAKE) protoc/ola_protoc_plugin
 endef
 
-# nothing to install for host part
 define Host/Install
+       $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin
+       $(CP) $(HOST_BUILD_DIR)/protoc/ola_protoc_plugin $(STAGING_DIR_HOSTPKG)/bin
 endef
 
 
@@ -101,6 +101,9 @@ define Package/ola/install
 
        $(INSTALL_DIR) $(1)/usr/share/ola/pids
        $(CP) $(PKG_INSTALL_DIR)/usr/share/ola/pids/* $(1)/usr/share/ola/pids
+
+       $(INSTALL_DIR) $(1)/usr/share/olad/www
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/olad/www/* $(1)/usr/share/olad/www
 endef
 
 define Package/ola/postinst
diff --git a/net/ola/patches/050-always-force-gnu++11.patch b/net/ola/patches/050-always-force-gnu++11.patch
new file mode 100644 (file)
index 0000000..2e0f396
--- /dev/null
@@ -0,0 +1,21 @@
+Index: ola-0.10.6/configure.ac
+===================================================================
+--- ola-0.10.6.orig/configure.ac
++++ ola-0.10.6/configure.ac
+@@ -72,8 +72,6 @@ AM_CONDITIONAL([SUPPORTS_GNU_PLUS_PLUS_1
+ require_gnu_plus_plus_11="no"
+ AS_IF([test "x$ac_cv_gnu_plus_plus_11" = xyes],
+       [AS_IF([test "x$ac_cv_gnu_plus_plus_98" = xyes],
+-             [AS_IF([test "x$enable_unittests" = xno],
+-                    [CXXFLAGS="$CXXFLAGS -std=gnu++98"],
+                     [PKG_CHECK_MODULES([CPPUNIT1], [cppunit < 1.14.0],
+                                        [CXXFLAGS="$CXXFLAGS -std=gnu++98"],
+                                        [PKG_CHECK_MODULES([CPPUNIT2], [cppunit >= 1.14.0],
+@@ -81,7 +79,6 @@ AS_IF([test "x$ac_cv_gnu_plus_plus_11" =
+                                                           [AC_MSG_WARN([OLA requires std::auto_ptr support.])])
+                                        ])
+                     ])
+-             ])
+       ])
+ AS_IF([test "x$require_gnu_plus_plus_11" = xyes],
+       [CXXFLAGS="$CXXFLAGS -std=gnu++11"])
index afdd6023e3b55b40dbf1345a404d9e9c274e6c5a..47f2b6059c1ddff3fec58d327d5441c2196ff24e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openssh
 PKG_VERSION:=7.7p1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
@@ -49,6 +49,10 @@ endef
 define Package/openssh-client
        $(call Package/openssh/Default)
        TITLE+= client
+       ALTERNATIVES:=\
+               200:/usr/bin/ssh:/usr/bin/openssh-ssh \
+               200:/usr/bin/scp:/usr/bin/openssh-scp \
+
 endef
 
 define Package/openssh-client/description
@@ -202,24 +206,6 @@ define Build/Compile
                all install
 endef
 
-define Package/openssh-client/preinst
-#!/bin/sh
-if [ -L $${IPKG_INSTROOT}/usr/bin/ssh ] && [ -L $${IPKG_INSTROOT}/usr/bin/scp ]; then
-       rm -f $${IPKG_INSTROOT}/usr/bin/ssh $${IPKG_INSTROOT}/usr/bin/scp;
-fi
-exit 0
-endef
-
-define Package/openssh-client/postrm
-#!/bin/sh
-rm -f $${IPKG_INSTROOT}/usr/bin/ssh $${IPKG_INSTROOT}/usr/bin/scp;
-if [ -x $${IPKG_INSTROOT}/usr/sbin/dropbear ] ; then
-       ln -s /usr/sbin/dropbear $${IPKG_INSTROOT}/usr/bin/ssh;
-       ln -s /usr/sbin/dropbear $${IPKG_INSTROOT}/usr/bin/scp;
-fi
-exit 0
-endef
-
 define Package/openssh-moduli/install
        $(INSTALL_DIR) $(1)/etc/ssh
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/ssh/moduli $(1)/etc/ssh/
@@ -230,8 +216,8 @@ define Package/openssh-client/install
        chmod 0700 $(1)/etc/ssh
        $(CP) $(PKG_INSTALL_DIR)/etc/ssh/ssh_config $(1)/etc/ssh/
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ssh $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/scp $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ssh $(1)/usr/bin/openssh-ssh
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/scp $(1)/usr/bin/openssh-scp
 endef
 
 define Package/openssh-client-utils/install
index eb540472e99698787ab8f47c1ab5147e9594f6c0..cc52c0a99a254c3439f169c4afc4a7264caa37b1 100644 (file)
@@ -1,29 +1,26 @@
 #
 # Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
 # Copyright (C) 2014-2017 OpenWrt.org
+# Copyright (C) 2018 Yousong Zhou <yszhou4tech@gmail.com>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
-# $Id: Makefile $
-
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=openvswitch
-
-PKG_VERSION:=2.8.2
-PKG_RELEASE:=1
-PKG_LICENSE:=Apache-2.0
-PKG_LICENSE_FILES:=COPYING
-PKG_USE_MIPS16:=0
-
+PKG_VERSION:=2.9.2
+PKG_RELEASE:=2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.openvswitch.org/releases/
-PKG_HASH:=87b4a7e7134a44ce1f808d3415a2244b4518c2b0b2a42fa2f8231e592f13103d
+PKG_HASH:=90f084dc282fdb588a2cfff351fea359492f69600f1e4a1286e24e44901de113
 
-PKG_BUILD_DEPENDS:=python/host python-six/host
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
 
+PKG_BUILD_DEPENDS:=python/host python-six/host
+PKG_USE_MIPS16:=0
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
@@ -34,94 +31,22 @@ include $(INCLUDE_DIR)/package.mk
 include ../../lang/python/python-host.mk
 include ../../lang/python/python-package.mk
 
-define Package/openvswitch/Default
-  SECTION:=net
-  SUBMENU:=Open vSwitch
-  CATEGORY:=Network
-  URL:=http://openvswitch.org/
-endef
-
-define Package/openvswitch/Default/description
-  Open vSwitch is a production quality, multilayer, software-based, Ethernet
-  virtual switch. It is designed to enable massive network automation through
-  programmatic extension, while still supporting standard management interfaces
-  and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In
-  addition, it is designed to support distribution across multiple physical
-  servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus
-  1000V.
-endef
-
-define Package/openvswitch-base
-  $(call Package/openvswitch/Default)
-  TITLE:=Open vSwitch Userspace Package (base)
-  DEPENDS:=+libpcap +libopenssl +librt +kmod-openvswitch
-endef
-
-define Package/openvswitch-base/description
-  Provides the main userspace components required for Open vSwitch to function.
-  The main OVS tools (ovs-vsctl, ovs-ofctl, etc) are packaged separately
-  to conserve some room and allow more configurability.
-endef
-
-define Package/openvswitch-ovn-base
-  $(call Package/openvswitch/Default)
-  TITLE:=Open Virtual Networking (base)
-  DEPENDS:=+openvswitch-base
-endef
 
-define Package/openvswitch-ovn-base/description
-  Provides the main userspace components required for Open Virtual Networking
-  over Open vSwitch.
-endef
+CONFIGURE_ARGS+= \
+       --enable-ndebug \
+       --enable-shared \
+       --disable-libcapng \
 
-OVN_BIN_TOOLS:=ovn-controller ovn-controller-vtep ovn-detrace \
-       ovn-nbctl ovn-sbctl ovn-trace
-define Package/openvswitch-ovn
-  $(call Package/openvswitch/Default)
-  TITLE:=Open Virtual Networking (base)
-  DEPENDS:=+openvswitch-ovn-base $(foreach t,$(OVN_BIN_TOOLS),+openvswitch-$(t))
-endef
-
-define Package/openvswitch-ovn/description
-  Provides all the components required for Open Virtual Networking
-  (including the tools)
-endef
-
-define Package/openvswitch-vtep
-  $(call Package/openvswitch/Default)
-  TITLE:=Open vSwitch VXLAN Tunnel End Point
-  DEPENDS:=+openvswitch-base
-endef
-
-define Package/openvswitch-vtep/description
-  This schema specifies relations that a VTEP can use to integrate physi‐
-  cal ports into logical switches maintained by a network  virtualization
-  controller such as NSX.
-endef
-
-define Package/openvswitch-python
-  $(call Package/openvswitch/Default)
-  TITLE:=Open vSwitch Python Support
-  DEPENDS:=+PACKAGE_openvswitch-python:python +PACKAGE_openvswitch-python:python-six
-endef
-
-define Package/openvswitch-python/description
-  Provides bindings and libraries for using Python to manipulate/work with Open vSwitch.
-endef
+CONFIGURE_VARS += \
+       ovs_cv_flake8=no \
+       ovs_cv_python3=no \
+       ovs_cv_sphinx=no \
+       ovs_cv_python=$(PYTHON) \
+       ovs_cv_python_host=$(HOST_PYTHON_BIN) \
 
-OVS_BIN_TOOLS:= \
-       ovsdb-client ovs-l3ping ovs-dpctl-top \
-       ovs-tcpdump ovs-tcpundump ovs-pcap
-define Package/openvswitch
-  $(call Package/openvswitch/Default)
-  TITLE:=Open vSwitch Userspace Package
-  DEPENDS:=+openvswitch-base $(foreach t,$(OVS_BIN_TOOLS),+openvswitch-$(t))
-endef
+TARGET_CFLAGS += -flto -std=gnu99
+MAKE_VARS += PYTHONPATH="$(HOST_PYTHONPATH)"
 
-define Package/openvswitch/description
-  Provides the main userspace components required for Open vSwitch to function.
-  Includes also most of  OVS utilities.
-endef
 
 define KernelPackage/openvswitch
   SECTION:=kernel
@@ -169,129 +94,157 @@ define KernelPackage/openvswitch-geneve
   AUTOLOAD:=$(call AutoProbe,vport-geneve)
 endef
 
-CONFIGURE_ARGS += --enable-ndebug
-CONFIGURE_ARGS += --enable-shared
-
-TARGET_CFLAGS += -flto -std=gnu99
-
-CONFIGURE_VARS += \
-       ovs_cv_flake8=no \
-       ovs_cv_python3=no \
-       ovs_cv_sphinx=no \
-       ovs_cv_python=$(PYTHON) \
-       ovs_cv_python_host=$(HOST_PYTHON_BIN) \
-       KARCH=$(LINUX_KARCH)
-
-MAKE_VARS += PYTHONPATH="$(HOST_PYTHONPATH)"
-MAKE_FLAGS += ARCH="$(LINUX_KARCH)"
 
-define OvsBinUtility
-  define Package/openvswitch-$(2)
-     $(call Package/openvswitch/Default)
-     TITLE:=$(3)
-     DEPENDS:=+$(1) $(4)
+ovs_packages:=
+ovs_package_name=$(if $(filter openvswitch,$(1)),openvswitch,openvswitch-$(1))
+define OvsPackageTemplate
+  define Package/$(call ovs_package_name,$(1))
+     SECTION:=net
+     SUBMENU:=Open vSwitch
+     CATEGORY:=Network
+     URL:=https://www.openvswitch.org
+     TITLE:=$(ovs_$(1)_title)
+     HIDDEN:=$(ovs_$(1)_hidden)
+     DEPENDS:=$(ovs_$(1)_depends)
   endef
 
-  define Package/openvswitch-$(2)/description
-    $(3)
+  define Package/$(call ovs_package_name,$(1))/install
+       $(foreach f,$(ovs_$(1)_files),
+               $(INSTALL_DIR) $$(1)/$(dir $(f))
+               $(CP) $(PKG_INSTALL_DIR)/$(f) $$(1)/$(dir $(f))
+       )
+       $(ovs_$(1)_install)
   endef
 
-  define Package/openvswitch-$(2)/install
-    $(INSTALL_DIR) $$(1)/usr/bin/ ;\
-    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $$(1)/usr/bin/
-  endef
+  ovs_packages+=$(call ovs_package_name,$(1))
 endef
 
-define Package/openvswitch-base/install
-       $(INSTALL_DIR) $(1)/etc/openvswitch
-
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/etc/init.d/openvswitch.init $(1)/etc/init.d/openvswitch
-
-       $(INSTALL_DIR) $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libofproto*.so*  $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopenvswitch*.so*  $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libovsdb*.so*  $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsflow*.so*  $(1)/usr/lib/
-
-       $(INSTALL_DIR) $(1)/usr/bin/
-       $(foreach bin,ovsdb-tool ovs-appctl ovs-ofctl ovs-dpctl ovs-vsctl ovs-pki, \
-               $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(bin) $(1)/usr/bin/ ; )
-
-       $(INSTALL_DIR) $(1)/usr/sbin/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ovs-vswitchd $(1)/usr/sbin/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ovsdb-server $(1)/usr/sbin/
-
-       $(INSTALL_DIR) $(1)/usr/share/openvswitch/scripts
-       $(INSTALL_CONF) \
-               $(PKG_INSTALL_DIR)/usr/share/openvswitch/vswitch.ovsschema \
-               $(1)/usr/share/openvswitch/
-       $(INSTALL_DATA) \
-               $(PKG_INSTALL_DIR)/usr/share/openvswitch/scripts/ovs-lib \
-               $(1)/usr/share/openvswitch/scripts
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/share/openvswitch/scripts/ovs-ctl \
-               $(1)/usr/share/openvswitch/scripts
-endef
+# Dependency review
+#
+#      for f in sbin/*;   do echo $f; readelf -d $f | grep -i shared; done
+#      for f in bin/*;    do echo $f; readelf -d $f | grep -i shared; done
+#      for f in lib/*.so; do echo $f; readelf -d $f | grep -i shared; done
+#
+ovs_libopenvswitch_title:=Open vSwitch (libopenvswitch.so)
+ovs_libopenvswitch_hidden:=1
+ovs_libopenvswitch_depends:=+libopenssl +librt
+ovs_libopenvswitch_files:=usr/lib/libopenvswitch*.so*
+$(eval $(call OvsPackageTemplate,libopenvswitch))
 
-define Package/openvswitch-ovn-base/install
-       $(INSTALL_DIR) $(1)/usr/lib/ $(1)/usr/bin/ $(1)/usr/share/openvswitch/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libovn*.so* $(1)/usr/lib/
 
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ovn-northd $(1)/usr/bin/
+ovs_libofproto_title:=Open vSwitch (libofproto.so libsflow.so)
+ovs_libofproto_hidden:=1
+ovs_libofproto_depends:=+librt
+ovs_libofproto_files:=usr/lib/libofproto*.so* usr/lib/libsflow*.so*
+$(eval $(call OvsPackageTemplate,libofproto))
 
-       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/share/openvswitch/ovn-nb.ovsschema $(1)/usr/share/openvswitch/
-       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/share/openvswitch/ovn-sb.ovsschema $(1)/usr/share/openvswitch/
-endef
 
-define Package/openvswitch-vtep/install
-       $(INSTALL_DIR) $(1)/usr/lib/ $(1)/usr/bin/ $(1)/usr/share/openvswitch/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vtep-ctl $(1)/usr/bin/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libvtep*.so* $(1)/usr/lib/
-       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/share/openvswitch/vtep.ovsschema $(1)/usr/share/openvswitch/
-endef
+ovs_libovsdb_title:=Open vSwitch (libovsdb.so)
+ovs_libovsdb_hidden:=1
+ovs_libovsdb_depends:=+librt
+ovs_libovsdb_files:=usr/lib/libovsdb*.so*
+$(eval $(call OvsPackageTemplate,libovsdb))
 
-define Package/openvswitch-python/install
-       $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/ovs
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/openvswitch/python/ovs/* $(1)/usr/lib/python$(PYTHON_VERSION)/ovs
-endef
 
-define Package/openvswitch-ovn/install
-       :
-endef
+ovs_libovn_title:=Open vSwitch (libovn.so)
+ovs_libovn_hidden:=1
+ovs_libovn_depends:=+librt
+ovs_libovn_files:=usr/lib/libovn*.so*
+$(eval $(call OvsPackageTemplate,libovn))
 
-define Package/openvswitch/install
-       :
+
+ovs_vswitchd_title:=Open vSwitch (ovs-vswitchd)
+ovs_vswitchd_hidden:=1
+ovs_vswitchd_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto
+ovs_vswitchd_files:=usr/sbin/ovs-vswitchd
+$(eval $(call OvsPackageTemplate,vswitchd))
+
+
+ovs_ovsdb_title:=Open vSwitch (ovsdb-server)
+ovs_ovsdb_hidden:=1
+ovs_ovsdb_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libovsdb
+ovs_ovsdb_files:=usr/sbin/ovsdb-server
+$(eval $(call OvsPackageTemplate,ovsdb))
+
+
+ovs_common_title:=Open vSwitch (common files)
+ovs_common_hidden:=1
+ovs_common_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto +openvswitch-libovsdb
+ovs_common_files:= \
+       usr/share/openvswitch/scripts/ovs-lib \
+       usr/share/openvswitch/scripts/ovs-ctl \
+       usr/share/openvswitch/scripts/ovs-save \
+       $(foreach b,ovs-appctl ovs-dpctl ovs-ofctl ovs-vsctl ovsdb-client ovsdb-tool,usr/bin/$(b))
+define ovs_common_install
+       $$(INSTALL_DIR) $$(1)/etc/openvswitch
+       $$(INSTALL_DIR) $$(1)/etc/init.d
+       $$(INSTALL_BIN) ./files/openvswitch.init $$(1)/etc/init.d/openvswitch
+       $$(INSTALL_DIR) $$(1)/etc/config
+       $$(INSTALL_DATA) ./files/openvswitch.config $$(1)/etc/config/openvswitch
+       $$(INSTALL_DIR) $$(1)/usr/share/openvswitch/scripts
+       $$(INSTALL_BIN) ./files/ovs-ctl-wrapper $$(1)/usr/share/openvswitch/scripts/
+       $$(LN) /usr/share/openvswitch/scripts/ovs-ctl-wrapper $$(1)/usr/bin/ovs-ctl
+endef
+define Package/openvswitch-common/conffiles
+/etc/openvswitch
 endef
+$(eval $(call OvsPackageTemplate,common))
 
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-appctl,Open vSwitch app control utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-ofctl,Open vSwitch OpenFlow control utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-dpctl,Open vSwitch datapath management utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-vsctl,Open vSwitch ovs-vswitchd management utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovsdb-client,Open vSwitch database JSON-RPC client))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-l3ping,Check network deployment for L3 tunneling problems))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-dpctl-top,Top like behavior for ovs-dpctl dump-flows))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-pki,OpenFlow public key infrastructure management utility))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-tcpdump,Dump traffic from an Open vSwitch port using tcpdump))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-tcpundump,Convert ``tcpdump -xx`` output to hex strings))
-$(eval $(call OvsBinUtility,openvswitch-base,ovs-pcap,Print packets from a pcap file as hex))
-
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-controller,Open Virtual Network local controller))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-controller-vtep,Open Virtual Network local controller for vtep enabled physical switches,+openvswitch-vtep))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-detrace,Convert ``ovs-appctl ofproto/trace`` output to combine OVN logical flow information))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-nbctl,Open Virtual Network northbound db management utility))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-sbctl,Utility for querying and configuring OVN_Southbound data‐base))
-$(eval $(call OvsBinUtility,openvswitch-ovn-base,ovn-trace,Open Virtual Network logical network tracing utility))
-
-$(foreach t,$(OVS_BIN_TOOLS),$(eval $(call BuildPackage,openvswitch-$(t))))
-$(foreach t,$(OVN_BIN_TOOLS),$(eval $(call BuildPackage,openvswitch-$(t))))
-
-$(eval $(call BuildPackage,openvswitch-base))
-$(eval $(call BuildPackage,openvswitch-ovn-base))
-$(eval $(call BuildPackage,openvswitch-ovn))
-$(eval $(call BuildPackage,openvswitch-vtep))
-$(eval $(call BuildPackage,openvswitch-python))
-$(eval $(call BuildPackage,openvswitch))
+
+# coreutils-sleep is required by ovs-lib for sleeping a fraction of second
+#
+# uuidgen is required for generating system-id
+ovs_openvswitch_title:=Open vSwitch
+ovs_openvswitch_hidden:=
+ovs_openvswitch_depends:=+librt +coreutils +coreutils-sleep +uuidgen \
+       +openvswitch-common +openvswitch-vswitchd +openvswitch-ovsdb +kmod-openvswitch
+ovs_openvswitch_files:= usr/share/openvswitch/vswitch.ovsschema
+$(eval $(call OvsPackageTemplate,openvswitch))
+
+
+ovs_ovn-common_title:=Open Virtual Network (common files)
+ovs_ovn-common_hidden:=1
+ovs_ovn-common_depends:=+librt +openvswitch-common +openvswitch-libopenvswitch +openvswitch-libovn +openvswitch-libovsdb
+ovs_ovn-common_files:= \
+       usr/share/openvswitch/scripts/ovn-ctl \
+       $(foreach b,ovn-nbctl ovn-sbctl ovn-trace ovn-detrace,usr/bin/$(b))
+define ovs_ovn-common_install
+       $$(INSTALL_DIR) $$(1)/usr/share/openvswitch/scripts
+       $$(LN) /usr/share/openvswitch/scripts/ovs-ctl-wrapper $$(1)/usr/bin/ovn-ctl
+endef
+$(eval $(call OvsPackageTemplate,ovn-common))
+
+
+ovs_ovn-north_title:=Open Virtual Network (north package)
+ovs_ovn-north_hidden:=
+ovs_ovn-north_depends:=+openvswitch-ovsdb +openvswitch-ovn-common
+ovs_ovn-north_files:=\
+       usr/share/openvswitch/ovn-nb.ovsschema \
+       usr/share/openvswitch/ovn-sb.ovsschema \
+       usr/bin/ovn-northd
+$(eval $(call OvsPackageTemplate,ovn-north))
+
+
+ovs_ovn-host_title:=Open Virtual Network (chassis package)
+ovs_ovn-host_hidden:=
+ovs_ovn-host_depends:=+openvswitch +openvswitch-ovn-common
+ovs_ovn-host_files:=usr/bin/ovn-controller
+$(eval $(call OvsPackageTemplate,ovn-host))
+
+
+ovs_python_title:=Open vSwitch (Python library)
+ovs_python_hidden:=
+ovs_python_depends:=+PACKAGE_openvswitch-python:python +PACKAGE_openvswitch-python:python-six
+define ovs_python_install
+       $$(INSTALL_DIR) $$(1)$$(PYTHON_PKG_DIR)
+       $$(CP) $$(PKG_INSTALL_DIR)/usr/share/openvswitch/python/ovs $$(1)$$(PYTHON_PKG_DIR)
+endef
+$(eval $(call OvsPackageTemplate,python))
+
+
+$(foreach p,$(ovs_packages),\
+  $(eval $(call BuildPackage,$(p)))\
+)
 
 $(eval $(call KernelPackage,openvswitch))
 $(eval $(call KernelPackage,openvswitch-gre))
diff --git a/net/openvswitch/README.md b/net/openvswitch/README.md
new file mode 100644 (file)
index 0000000..f3b754e
--- /dev/null
@@ -0,0 +1,29 @@
+# Which packages to install
+
+Install `openvswitch` if you need OpenFlow virtual switch function.  It
+contains ovs-vswitchd, ovsdb-server and helper utilities such as ovs-vsctl,
+ovs-ofctl, ovs-ctl etc.
+
+Linux kernel datapath module openvswitch.ko will also be installed along with
+package `openvswitch`.  Tunnel encap support for gre, geneve, vxlan can be
+included by installing `kmod-openvswitch-{gre,geneve,vxlan}` respectively
+
+For OVN deployment
+
+- Install `openvswitch-ovn-north` for ovs-northd, ovsdb-server, ovn helper utitlies
+- Install `openvswitch-ovn-host` for ovn-controller and `openvswitch`
+
+# How to use them
+
+Open vSwitch provides a few very useful helper script in
+`/usr/share/openvswitch/scripts/`.  A simple initscript is provided.  It's
+mainly a wrapper around `ovs-ctl` and `ovn-ctl` with simple knobs from
+`/etc/config/openvswitch`.  Procd is not used here.
+
+       /etc/init.d/openvswitch start
+       /etc/init.d/openvswitch stop
+       /etc/init.d/openvswitch stop north
+       /etc/init.d/openvswitch restart ovs
+       /etc/init.d/openvswitch status
+
+Use `ovs-ctl` and `ovn-ctl` directly for more functionalities
diff --git a/net/openvswitch/files/etc/init.d/openvswitch.init b/net/openvswitch/files/etc/init.d/openvswitch.init
deleted file mode 100644 (file)
index 84655e7..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
-# Copyright (C) 2014-2017 OpenWrt.org
-
-START=15
-
-start() {
-       /usr/share/openvswitch/scripts/ovs-ctl start
-}
-
-stop() {
-       /usr/share/openvswitch/scripts/ovs-ctl stop
-}
-
-restart() {
-       /usr/share/openvswitch/scripts/ovs-ctl restart
-}
-
-status() {
-       /usr/share/openvswitch/scripts/ovs-ctl status
-}
-
diff --git a/net/openvswitch/files/openvswitch.config b/net/openvswitch/files/openvswitch.config
new file mode 100644 (file)
index 0000000..1bd2377
--- /dev/null
@@ -0,0 +1,8 @@
+config ovs ovs
+       option disabled 1
+
+config ovn_northd north
+       option disabled 1
+
+config ovn_controller controller
+       option disabled 1
diff --git a/net/openvswitch/files/openvswitch.init b/net/openvswitch/files/openvswitch.init
new file mode 100755 (executable)
index 0000000..3af1b1e
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
+# Copyright (C) 2014-2017 OpenWrt.org
+# Copyright (C) 2018 Yousong Zhou <yszhou4tech@gmail.com>
+
+START=15
+
+ovs_script_dir=/usr/share/openvswitch/scripts
+ovs_ctl="$ovs_script_dir/ovs-ctl"
+ovn_ctl="$ovs_script_dir/ovn-ctl"
+
+EXTRA_COMMANDS=status
+
+start() {
+       ovs_action start "$@"
+}
+
+stop() {
+       ovs_action stop "$@"
+}
+
+restart() {
+       ovs_action restart "$@"
+}
+
+status() {
+       ovs_action status "$@"
+}
+
+ovs_action_cfgs=
+ovs_action() {
+       local action="$1"; shift
+       local cfgtype
+
+       ovs_action_cfgs="$*"
+       config_load openvswitch
+       for cfgtype in ovs ovn_northd ovn_controller; do
+               config_foreach "ovs_xx" "$cfgtype" "$action" "$cfgtype"
+       done
+}
+
+ovs_xx() {
+       local cfg="$1"
+       local action="$2"
+       local cfgtype="$3"
+       local disabled
+
+       if [ -n "$ovs_action_cfgs" ] && ! list_contains "ovs_action_cfgs" "$cfg"; then
+               return
+       fi
+       case "$action" in
+               status|stop) ;;
+               *)
+                       config_get_bool disabled "$cfg" disabled 0
+                       [ "$disabled" -le 0 ] || return
+                       ;;
+       esac
+
+       case "$cfgtype" in
+               ovs)
+                       "$ovs_ctl" "$action" \
+                               --system-id=random
+                       ;;
+               ovn_*)
+                       "$ovn_ctl" "${action}_${cfgtype#ovn_}"
+                       ;;
+       esac
+}
diff --git a/net/openvswitch/files/ovs-ctl-wrapper b/net/openvswitch/files/ovs-ctl-wrapper
new file mode 100755 (executable)
index 0000000..20f3446
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+s=/usr/share/openvswitch/scripts
+case "$0" in
+       *ovs-ctl) "$s/ovs-ctl" "$@" ;;
+       *ovn-ctl) "$s/ovn-ctl" "$@" ;;
+       *) exit 1;;
+esac
index ddcc5fc61f76cf031b74d828bf9a921bc3ca4d08..b648add308a52c9a7b393ff836ba392c480b13d9 100644 (file)
@@ -1,20 +1,16 @@
-diff --git a/configure.ac b/configure.ac
-index e6a23a6..8a7c6d6 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -118,7 +118,6 @@ OVS_CHECK_XENSERVER_VERSION
+@@ -122,7 +122,6 @@ OVS_CHECK_SOCKET_LIBS
+ OVS_CHECK_XENSERVER_VERSION
  OVS_CHECK_GROFF
- OVS_CHECK_GNU_MAKE
  OVS_CHECK_TLS
 -OVS_CHECK_ATOMIC_LIBS
  OVS_CHECK_GCC4_ATOMICS
  OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(1)
  OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(2)
-diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index 712cb5a..e840f10 100644
 --- a/lib/netdev-linux.c
 +++ b/lib/netdev-linux.c
-@@ -40,7 +40,9 @@
+@@ -39,7 +39,9 @@
  #include <netpacket/packet.h>
  #include <net/if.h>
  #include <net/if_arp.h>
@@ -22,13 +18,11 @@ index 712cb5a..e840f10 100644
  #include <net/if_packet.h>
 +#endif
  #include <net/route.h>
- #include <netinet/in.h>
  #include <poll.h>
-diff --git a/lib/ovs-atomic.h b/lib/ovs-atomic.h
-index 9ead907..0a131d7 100644
+ #include <stdlib.h>
 --- a/lib/ovs-atomic.h
 +++ b/lib/ovs-atomic.h
-@@ -318,7 +318,7 @@
+@@ -320,7 +320,7 @@
  #include "util.h"
  
  #define IN_OVS_ATOMIC_H
index 290e44f7a8af18e119cc664a2e46f1095c71fb3c..9dfcf6a8c269941bc802ad991c2d3d7cd053ca63 100644 (file)
@@ -10,11 +10,9 @@ Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
  lib/netdev-linux.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index c0471be15..0750e5f2c 100644
 --- a/lib/netdev-linux.c
 +++ b/lib/netdev-linux.c
-@@ -2788,7 +2788,7 @@ update_flags(struct netdev_linux *netdev, enum netdev_flags off,
+@@ -2810,7 +2810,7 @@ update_flags(struct netdev_linux *netdev
               enum netdev_flags on, enum netdev_flags *old_flagsp)
      OVS_REQUIRES(netdev->mutex)
  {
@@ -23,6 +21,3 @@ index c0471be15..0750e5f2c 100644
      int error = 0;
  
      old_flags = netdev->ifi_flags;
--- 
-2.16.2
-
index c8bbd31eb17996df728bb7df5326843300c0e29c..a01758e20d323ca02852195ce00991547db15d87 100644 (file)
@@ -17,11 +17,9 @@ Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
  lib/netdev-linux.c | 8 +++++++-
  1 file changed, 7 insertions(+), 1 deletion(-)
 
-diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index 0750e5f2c..59e7b9c96 100644
 --- a/lib/netdev-linux.c
 +++ b/lib/netdev-linux.c
-@@ -2791,7 +2791,13 @@ update_flags(struct netdev_linux *netdev, enum netdev_flags off,
+@@ -2813,7 +2813,13 @@ update_flags(struct netdev_linux *netdev
      unsigned int old_flags, new_flags;
      int error = 0;
  
@@ -36,6 +34,3 @@ index 0750e5f2c..59e7b9c96 100644
      *old_flagsp = iff_to_nd_flags(old_flags);
      new_flags = (old_flags & ~nd_to_iff_flags(off)) | nd_to_iff_flags(on);
      if (new_flags != old_flags) {
--- 
-2.16.2
-
index 4c4f623e4e79773243f40937b49280f5f17d795e..568fd7bd2d1d48276aa47e673dede8e7aab9aaf4 100644 (file)
@@ -12,11 +12,9 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  m4/openvswitch.m4 | 12 ++++--------
  2 files changed, 5 insertions(+), 9 deletions(-)
 
-diff --git a/Makefile.am b/Makefile.am
-index 31d633179..4b9e8d491 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -59,7 +59,7 @@ endif
+@@ -60,7 +60,7 @@ endif
  # foo/__init__.pyc will cause Python to ignore foo.py.
  run_python = \
        PYTHONPATH=$(top_srcdir)/python$(psep)$$PYTHONPATH \
@@ -25,11 +23,9 @@ index 31d633179..4b9e8d491 100644
  
  ALL_LOCAL =
  BUILT_SOURCES =
-diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4
-index 00ffad35f..52f207bda 100644
 --- a/m4/openvswitch.m4
 +++ b/m4/openvswitch.m4
-@@ -347,20 +347,16 @@ else:
+@@ -351,20 +351,16 @@ else:
     if test $ovs_cv_python = no; then
       AC_MSG_ERROR([cannot find python 2.7 or higher.])
     fi
@@ -54,6 +50,3 @@ index 00ffad35f..52f207bda 100644
  
  dnl Checks for Python 3.x, x >= 4.
  AC_DEFUN([OVS_CHECK_PYTHON3],
--- 
-2.16.2
-
index 473f211baa735d56e450c737feabd5b29a9ab433..258b3155cca5ecbed262a7f8d157022340d398f4 100644 (file)
@@ -13,11 +13,9 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  utilities/ovs-ctl.in | 4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)
 
-diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
-index 4ddc450fb..52018e6d3 100755
 --- a/utilities/ovs-ctl.in
 +++ b/utilities/ovs-ctl.in
-@@ -68,9 +68,7 @@ ovs_vsctl () {
+@@ -64,9 +64,7 @@ insert_mod_if_required () {
  }
  
  set_hostname () {
@@ -28,6 +26,3 @@ index 4ddc450fb..52018e6d3 100755
  }
  
  set_system_ids () {
--- 
-2.16.2
-
index f6f6747c7e78495378d1cd284ef494f297ab4c12..ab2ecf541063bad5b530a4fc790ce9aab71b2a10 100644 (file)
@@ -1,4 +1,4 @@
-From d8dd661e1c100a2d2ba0361cf6c91dcdedfeeb70 Mon Sep 17 00:00:00 2001
+From 43b855e201bd25a015ba6444cabce12b8cc181ec Mon Sep 17 00:00:00 2001
 From: Yousong Zhou <yszhou4tech@gmail.com>
 Date: Wed, 14 Mar 2018 16:44:13 +0800
 Subject: [PATCH 104/104] ovs-lib: fix install_dir()
@@ -10,8 +10,6 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  utilities/ovs-lib.in | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)
 
-diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in
-index 1bccea0c5..457297f3f 100644
 --- a/utilities/ovs-lib.in
 +++ b/utilities/ovs-lib.in
 @@ -157,7 +157,10 @@ install_dir () {
@@ -20,12 +18,9 @@ index 1bccea0c5..457297f3f 100644
      if test ! -d "$DIR"; then
 -        install -d -m "$INSTALL_MODE" -o "$INSTALL_USER" -g "$INSTALL_GROUP" "$DIR"
 +        mkdir -p "$DIR"
-+        chmod "$INSTALL_MODE"
++        chmod "$INSTALL_MODE" "$DIR"
 +        chown "$INSTALL_USER" "$DIR"
 +        chgrp "$INSTALL_GROUP" "$DIR"
          restorecon "$DIR" >/dev/null 2>&1
      fi
  }
--- 
-2.16.2
-
diff --git a/net/openvswitch/patches/0105-removed-calls-to-API-deprecated-in-openssl-1.1.patch b/net/openvswitch/patches/0105-removed-calls-to-API-deprecated-in-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..7125eba
--- /dev/null
@@ -0,0 +1,34 @@
+From bca4ff53aef16d38aeb1569edaaca6ac4feac6e8 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Tue, 5 Jun 2018 10:36:51 -0300
+Subject: [PATCH] Removed calls to AP deprecated in openssl 1.1
+
+In openssl 1.1, there is no need to initialize the library.  It is
+automatically done when first used.  This allows to compile openvswitch
+with openssl 1.1.0 with deprecated API disabled.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Signed-off-by: Ben Pfaff <blp@ovn.org>
+---
+ lib/stream-ssl.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/stream-ssl.c b/lib/stream-ssl.c
+index ebb6f3a6c8..c7443470f5 100644
+--- a/lib/stream-ssl.c
++++ b/lib/stream-ssl.c
+@@ -947,12 +947,14 @@ do_ssl_init(void)
+ {
+     SSL_METHOD *method;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
+ #ifdef _WIN32
+     /* The following call is needed if we "#include <openssl/applink.c>". */
+     CRYPTO_malloc_init();
+ #endif
+     SSL_library_init();
+     SSL_load_error_strings();
++#endif
+     if (!RAND_status()) {
+         /* We occasionally see OpenSSL fail to seed its random number generator
diff --git a/net/openvswitch/patches/0106-include-pre-generated-dhparams-c.patch b/net/openvswitch/patches/0106-include-pre-generated-dhparams-c.patch
new file mode 100644 (file)
index 0000000..9a121ef
--- /dev/null
@@ -0,0 +1,305 @@
+From a513cb5fed8c4f63d60b6da12ae9f63a258a9e44 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Wed, 6 Jun 2018 08:20:35 -0300
+Subject: [PATCH] dhparams: Add pregenerated .c file to the repository.
+
+The version of dhparams.c generated by any given version of OpenSSL or
+LibreSSL might work only with that version of the library.  This can be
+inconvenient for cross-compiling if the "openssl" program on the build
+machine has a different version from the library on the host where OVS will
+run, since it could generate code that won't compile.
+
+This commit fixes the problem by generating dhparams.c that works on the
+currently important versions of OpenSSL and LibreSSL.
+
+Submitted-at: https://github.com/openvswitch/ovs/pull/235
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Signed-off-by: Ben Pfaff <blp@ovn.org>
+---
+ build-aux/automake.mk         |   1 +
+ build-aux/generate-dhparams-c |  31 +++++++
+ lib/automake.mk               |  17 ++--
+ lib/dhparams.c                | 192 ++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 233 insertions(+), 9 deletions(-)
+ create mode 100755 build-aux/generate-dhparams-c
+ create mode 100644 lib/dhparams.c
+
+diff --git a/build-aux/automake.mk b/build-aux/automake.mk
+index a1f2f856f..3a3b31ce1 100644
+--- a/build-aux/automake.mk
++++ b/build-aux/automake.mk
+@@ -4,6 +4,7 @@ EXTRA_DIST += \
+       build-aux/cksum-schema-check \
+       build-aux/dist-docs \
+       build-aux/dpdkstrip.py \
++      build-aux/generate-dhparams-c \
+       build-aux/sodepends.py \
+       build-aux/soexpand.py \
+       build-aux/text2c \
+diff --git a/build-aux/generate-dhparams-c b/build-aux/generate-dhparams-c
+new file mode 100755
+index 000000000..a75e1d5a7
+--- /dev/null
++++ b/build-aux/generate-dhparams-c
+@@ -0,0 +1,31 @@
++#! /bin/sh -e
++
++cat <<'EOF'
++/* Generated automatically; do not modify!     -*- buffer-read-only: t -*-
++ *
++ * If you do need to regenerate this file, run "make generate-dhparams-c". */
++
++#include <config.h>
++#include "lib/dhparams.h"
++#include "openvswitch/util.h"
++
++static int
++my_DH_set0_pqg(DH *dh, BIGNUM *p, const BIGNUM **q OVS_UNUSED, BIGNUM *g)
++{
++    ovs_assert(q == NULL);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++    dh->p = p;
++    dh->g = g;
++    return 1;
++#else
++    return DH_set0_pqg(dh, p, NULL, g);
++#endif
++}
++EOF
++(openssl dhparam -C -in lib/dh1024.pem -noout &&
++openssl dhparam -C -in lib/dh2048.pem -noout &&
++openssl dhparam -C -in lib/dh4096.pem -noout) | sed '
++    s/\(get_dh[0-9]*\)()/\1(void)/
++    s/\(DH_set0_pqg\)/my_\1/
++    s/[       ]*$//
++'
+diff --git a/lib/automake.mk b/lib/automake.mk
+index fb781e847..3bec3fd56 100644
+--- a/lib/automake.mk
++++ b/lib/automake.mk
+@@ -450,15 +450,16 @@ lib_libopenvswitch_la_SOURCES += \
+       lib/route-table-bsd.c
+ endif
++.PHONY: generate-dhparams-c
+ if HAVE_OPENSSL
+-lib_libopenvswitch_la_SOURCES += lib/stream-ssl.c
+-nodist_lib_libopenvswitch_la_SOURCES += lib/dhparams.c
+-lib/dhparams.c: lib/dh1024.pem lib/dh2048.pem lib/dh4096.pem
+-      $(AM_V_GEN)(echo '#include "lib/dhparams.h"' &&                 \
+-       openssl dhparam -C -in $(srcdir)/lib/dh1024.pem -noout &&      \
+-       openssl dhparam -C -in $(srcdir)/lib/dh2048.pem -noout &&      \
+-       openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout)        \
+-      | sed 's/\(get_dh[0-9]*\)()/\1(void)/' > lib/dhparams.c.tmp &&  \
++lib_libopenvswitch_la_SOURCES += lib/stream-ssl.c lib/dhparams.c
++
++# Manually regenerates lib/dhparams.c.  Not normally necessary since
++# lib/dhparams.c is part of the repository and doesn't normally need
++# updates.
++generate-dhparams-c:
++      $(AM_V_GEN)cd $(srcdir) && \
++      build-aux/generate-dhparams-c > lib/dhparams.c.tmp && \
+       mv lib/dhparams.c.tmp lib/dhparams.c
+ else
+ lib_libopenvswitch_la_SOURCES += lib/stream-nossl.c
+diff --git a/lib/dhparams.c b/lib/dhparams.c
+new file mode 100644
+index 000000000..c9c338bf1
+--- /dev/null
++++ b/lib/dhparams.c
+@@ -0,0 +1,192 @@
++/* Generated automatically; do not modify!     -*- buffer-read-only: t -*-
++ *
++ * If you do need to regenerate this file, run "make generate-dhparams-c". */
++
++#include <config.h>
++#include "lib/dhparams.h"
++#include "openvswitch/util.h"
++
++static int
++my_DH_set0_pqg(DH *dh, BIGNUM *p, const BIGNUM **q OVS_UNUSED, BIGNUM *g)
++{
++    ovs_assert(q == NULL);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++    dh->p = p;
++    dh->g = g;
++    return 1;
++#else
++    return DH_set0_pqg(dh, p, NULL, g);
++#endif
++}
++#ifndef HEADER_DH_H
++# include <openssl/dh.h>
++#endif
++
++DH *get_dh1024(void)
++{
++    static unsigned char dhp_1024[] = {
++      0xF4, 0x88, 0xFD, 0x58, 0x4E, 0x49, 0xDB, 0xCD, 0x20, 0xB4,
++      0x9D, 0xE4, 0x91, 0x07, 0x36, 0x6B, 0x33, 0x6C, 0x38, 0x0D,
++      0x45, 0x1D, 0x0F, 0x7C, 0x88, 0xB3, 0x1C, 0x7C, 0x5B, 0x2D,
++      0x8E, 0xF6, 0xF3, 0xC9, 0x23, 0xC0, 0x43, 0xF0, 0xA5, 0x5B,
++      0x18, 0x8D, 0x8E, 0xBB, 0x55, 0x8C, 0xB8, 0x5D, 0x38, 0xD3,
++      0x34, 0xFD, 0x7C, 0x17, 0x57, 0x43, 0xA3, 0x1D, 0x18, 0x6C,
++      0xDE, 0x33, 0x21, 0x2C, 0xB5, 0x2A, 0xFF, 0x3C, 0xE1, 0xB1,
++      0x29, 0x40, 0x18, 0x11, 0x8D, 0x7C, 0x84, 0xA7, 0x0A, 0x72,
++      0xD6, 0x86, 0xC4, 0x03, 0x19, 0xC8, 0x07, 0x29, 0x7A, 0xCA,
++      0x95, 0x0C, 0xD9, 0x96, 0x9F, 0xAB, 0xD0, 0x0A, 0x50, 0x9B,
++      0x02, 0x46, 0xD3, 0x08, 0x3D, 0x66, 0xA4, 0x5D, 0x41, 0x9F,
++      0x9C, 0x7C, 0xBD, 0x89, 0x4B, 0x22, 0x19, 0x26, 0xBA, 0xAB,
++      0xA2, 0x5E, 0xC3, 0x55, 0xE9, 0x2F, 0x78, 0xC7
++    };
++    static unsigned char dhg_1024[] = {
++      0x02
++    };
++    DH *dh = DH_new();
++    BIGNUM *dhp_bn, *dhg_bn;
++
++    if (dh == NULL)
++        return NULL;
++    dhp_bn = BN_bin2bn(dhp_1024, sizeof (dhp_1024), NULL);
++    dhg_bn = BN_bin2bn(dhg_1024, sizeof (dhg_1024), NULL);
++    if (dhp_bn == NULL || dhg_bn == NULL
++            || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++        DH_free(dh);
++        BN_free(dhp_bn);
++        BN_free(dhg_bn);
++        return NULL;
++    }
++    return dh;
++}
++#ifndef HEADER_DH_H
++# include <openssl/dh.h>
++#endif
++
++DH *get_dh2048(void)
++{
++    static unsigned char dhp_2048[] = {
++      0xF6, 0x42, 0x57, 0xB7, 0x08, 0x7F, 0x08, 0x17, 0x72, 0xA2,
++      0xBA, 0xD6, 0xA9, 0x42, 0xF3, 0x05, 0xE8, 0xF9, 0x53, 0x11,
++      0x39, 0x4F, 0xB6, 0xF1, 0x6E, 0xB9, 0x4B, 0x38, 0x20, 0xDA,
++      0x01, 0xA7, 0x56, 0xA3, 0x14, 0xE9, 0x8F, 0x40, 0x55, 0xF3,
++      0xD0, 0x07, 0xC6, 0xCB, 0x43, 0xA9, 0x94, 0xAD, 0xF7, 0x4C,
++      0x64, 0x86, 0x49, 0xF8, 0x0C, 0x83, 0xBD, 0x65, 0xE9, 0x17,
++      0xD4, 0xA1, 0xD3, 0x50, 0xF8, 0xF5, 0x59, 0x5F, 0xDC, 0x76,
++      0x52, 0x4F, 0x3D, 0x3D, 0x8D, 0xDB, 0xCE, 0x99, 0xE1, 0x57,
++      0x92, 0x59, 0xCD, 0xFD, 0xB8, 0xAE, 0x74, 0x4F, 0xC5, 0xFC,
++      0x76, 0xBC, 0x83, 0xC5, 0x47, 0x30, 0x61, 0xCE, 0x7C, 0xC9,
++      0x66, 0xFF, 0x15, 0xF9, 0xBB, 0xFD, 0x91, 0x5E, 0xC7, 0x01,
++      0xAA, 0xD3, 0x5B, 0x9E, 0x8D, 0xA0, 0xA5, 0x72, 0x3A, 0xD4,
++      0x1A, 0xF0, 0xBF, 0x46, 0x00, 0x58, 0x2B, 0xE5, 0xF4, 0x88,
++      0xFD, 0x58, 0x4E, 0x49, 0xDB, 0xCD, 0x20, 0xB4, 0x9D, 0xE4,
++      0x91, 0x07, 0x36, 0x6B, 0x33, 0x6C, 0x38, 0x0D, 0x45, 0x1D,
++      0x0F, 0x7C, 0x88, 0xB3, 0x1C, 0x7C, 0x5B, 0x2D, 0x8E, 0xF6,
++      0xF3, 0xC9, 0x23, 0xC0, 0x43, 0xF0, 0xA5, 0x5B, 0x18, 0x8D,
++      0x8E, 0xBB, 0x55, 0x8C, 0xB8, 0x5D, 0x38, 0xD3, 0x34, 0xFD,
++      0x7C, 0x17, 0x57, 0x43, 0xA3, 0x1D, 0x18, 0x6C, 0xDE, 0x33,
++      0x21, 0x2C, 0xB5, 0x2A, 0xFF, 0x3C, 0xE1, 0xB1, 0x29, 0x40,
++      0x18, 0x11, 0x8D, 0x7C, 0x84, 0xA7, 0x0A, 0x72, 0xD6, 0x86,
++      0xC4, 0x03, 0x19, 0xC8, 0x07, 0x29, 0x7A, 0xCA, 0x95, 0x0C,
++      0xD9, 0x96, 0x9F, 0xAB, 0xD0, 0x0A, 0x50, 0x9B, 0x02, 0x46,
++      0xD3, 0x08, 0x3D, 0x66, 0xA4, 0x5D, 0x41, 0x9F, 0x9C, 0x7C,
++      0xBD, 0x89, 0x4B, 0x22, 0x19, 0x26, 0xBA, 0xAB, 0xA2, 0x5E,
++      0xC3, 0x55, 0xE9, 0x32, 0x0B, 0x3B
++    };
++    static unsigned char dhg_2048[] = {
++      0x02
++    };
++    DH *dh = DH_new();
++    BIGNUM *dhp_bn, *dhg_bn;
++
++    if (dh == NULL)
++        return NULL;
++    dhp_bn = BN_bin2bn(dhp_2048, sizeof (dhp_2048), NULL);
++    dhg_bn = BN_bin2bn(dhg_2048, sizeof (dhg_2048), NULL);
++    if (dhp_bn == NULL || dhg_bn == NULL
++            || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++        DH_free(dh);
++        BN_free(dhp_bn);
++        BN_free(dhg_bn);
++        return NULL;
++    }
++    return dh;
++}
++#ifndef HEADER_DH_H
++# include <openssl/dh.h>
++#endif
++
++DH *get_dh4096(void)
++{
++    static unsigned char dhp_4096[] = {
++      0xFA, 0x14, 0x72, 0x52, 0xC1, 0x4D, 0xE1, 0x5A, 0x49, 0xD4,
++      0xEF, 0x09, 0x2D, 0xC0, 0xA8, 0xFD, 0x55, 0xAB, 0xD7, 0xD9,
++      0x37, 0x04, 0x28, 0x09, 0xE2, 0xE9, 0x3E, 0x77, 0xE2, 0xA1,
++      0x7A, 0x18, 0xDD, 0x46, 0xA3, 0x43, 0x37, 0x23, 0x90, 0x97,
++      0xF3, 0x0E, 0xC9, 0x03, 0x50, 0x7D, 0x65, 0xCF, 0x78, 0x62,
++      0xA6, 0x3A, 0x62, 0x22, 0x83, 0xA1, 0x2F, 0xFE, 0x79, 0xBA,
++      0x35, 0xFF, 0x59, 0xD8, 0x1D, 0x61, 0xDD, 0x1E, 0x21, 0x13,
++      0x17, 0xFE, 0xCD, 0x38, 0x87, 0x9E, 0xF5, 0x4F, 0x79, 0x10,
++      0x61, 0x8D, 0xD4, 0x22, 0xF3, 0x5A, 0xED, 0x5D, 0xEA, 0x21,
++      0xE9, 0x33, 0x6B, 0x48, 0x12, 0x0A, 0x20, 0x77, 0xD4, 0x25,
++      0x60, 0x61, 0xDE, 0xF6, 0xB4, 0x4F, 0x1C, 0x63, 0x40, 0x8B,
++      0x3A, 0x21, 0x93, 0x8B, 0x79, 0x53, 0x51, 0x2C, 0xCA, 0xB3,
++      0x7B, 0x29, 0x56, 0xA8, 0xC7, 0xF8, 0xF4, 0x7B, 0x08, 0x5E,
++      0xA6, 0xDC, 0xA2, 0x45, 0x12, 0x56, 0xDD, 0x41, 0x92, 0xF2,
++      0xDD, 0x5B, 0x8F, 0x23, 0xF0, 0xF3, 0xEF, 0xE4, 0x3B, 0x0A,
++      0x44, 0xDD, 0xED, 0x96, 0x84, 0xF1, 0xA8, 0x32, 0x46, 0xA3,
++      0xDB, 0x4A, 0xBE, 0x3D, 0x45, 0xBA, 0x4E, 0xF8, 0x03, 0xE5,
++      0xDD, 0x6B, 0x59, 0x0D, 0x84, 0x1E, 0xCA, 0x16, 0x5A, 0x8C,
++      0xC8, 0xDF, 0x7C, 0x54, 0x44, 0xC4, 0x27, 0xA7, 0x3B, 0x2A,
++      0x97, 0xCE, 0xA3, 0x7D, 0x26, 0x9C, 0xAD, 0xF4, 0xC2, 0xAC,
++      0x37, 0x4B, 0xC3, 0xAD, 0x68, 0x84, 0x7F, 0x99, 0xA6, 0x17,
++      0xEF, 0x6B, 0x46, 0x3A, 0x7A, 0x36, 0x7A, 0x11, 0x43, 0x92,
++      0xAD, 0xE9, 0x9C, 0xFB, 0x44, 0x6C, 0x3D, 0x82, 0x49, 0xCC,
++      0x5C, 0x6A, 0x52, 0x42, 0xF8, 0x42, 0xFB, 0x44, 0xF9, 0x39,
++      0x73, 0xFB, 0x60, 0x79, 0x3B, 0xC2, 0x9E, 0x0B, 0xDC, 0xD4,
++      0xA6, 0x67, 0xF7, 0x66, 0x3F, 0xFC, 0x42, 0x3B, 0x1B, 0xDB,
++      0x4F, 0x66, 0xDC, 0xA5, 0x8F, 0x66, 0xF9, 0xEA, 0xC1, 0xED,
++      0x31, 0xFB, 0x48, 0xA1, 0x82, 0x7D, 0xF8, 0xE0, 0xCC, 0xB1,
++      0xC7, 0x03, 0xE4, 0xF8, 0xB3, 0xFE, 0xB7, 0xA3, 0x13, 0x73,
++      0xA6, 0x7B, 0xC1, 0x0E, 0x39, 0xC7, 0x94, 0x48, 0x26, 0x00,
++      0x85, 0x79, 0xFC, 0x6F, 0x7A, 0xAF, 0xC5, 0x52, 0x35, 0x75,
++      0xD7, 0x75, 0xA4, 0x40, 0xFA, 0x14, 0x74, 0x61, 0x16, 0xF2,
++      0xEB, 0x67, 0x11, 0x6F, 0x04, 0x43, 0x3D, 0x11, 0x14, 0x4C,
++      0xA7, 0x94, 0x2A, 0x39, 0xA1, 0xC9, 0x90, 0xCF, 0x83, 0xC6,
++      0xFF, 0x02, 0x8F, 0xA3, 0x2A, 0xAC, 0x26, 0xDF, 0x0B, 0x8B,
++      0xBE, 0x64, 0x4A, 0xF1, 0xA1, 0xDC, 0xEE, 0xBA, 0xC8, 0x03,
++      0x82, 0xF6, 0x62, 0x2C, 0x5D, 0xB6, 0xBB, 0x13, 0x19, 0x6E,
++      0x86, 0xC5, 0x5B, 0x2B, 0x5E, 0x3A, 0xF3, 0xB3, 0x28, 0x6B,
++      0x70, 0x71, 0x3A, 0x8E, 0xFF, 0x5C, 0x15, 0xE6, 0x02, 0xA4,
++      0xCE, 0xED, 0x59, 0x56, 0xCC, 0x15, 0x51, 0x07, 0x79, 0x1A,
++      0x0F, 0x25, 0x26, 0x27, 0x30, 0xA9, 0x15, 0xB2, 0xC8, 0xD4,
++      0x5C, 0xCC, 0x30, 0xE8, 0x1B, 0xD8, 0xD5, 0x0F, 0x19, 0xA8,
++      0x80, 0xA4, 0xC7, 0x01, 0xAA, 0x8B, 0xBA, 0x53, 0xBB, 0x47,
++      0xC2, 0x1F, 0x6B, 0x54, 0xB0, 0x17, 0x60, 0xED, 0x79, 0x21,
++      0x95, 0xB6, 0x05, 0x84, 0x37, 0xC8, 0x03, 0xA4, 0xDD, 0xD1,
++      0x06, 0x69, 0x8F, 0x4C, 0x39, 0xE0, 0xC8, 0x5D, 0x83, 0x1D,
++      0xBE, 0x6A, 0x9A, 0x99, 0xF3, 0x9F, 0x0B, 0x45, 0x29, 0xD4,
++      0xCB, 0x29, 0x66, 0xEE, 0x1E, 0x7E, 0x3D, 0xD7, 0x13, 0x4E,
++      0xDB, 0x90, 0x90, 0x58, 0xCB, 0x5E, 0x9B, 0xCD, 0x2E, 0x2B,
++      0x0F, 0xA9, 0x4E, 0x78, 0xAC, 0x05, 0x11, 0x7F, 0xE3, 0x9E,
++      0x27, 0xD4, 0x99, 0xE1, 0xB9, 0xBD, 0x78, 0xE1, 0x84, 0x41,
++      0xA0, 0xDF
++    };
++    static unsigned char dhg_4096[] = {
++      0x02
++    };
++    DH *dh = DH_new();
++    BIGNUM *dhp_bn, *dhg_bn;
++
++    if (dh == NULL)
++        return NULL;
++    dhp_bn = BN_bin2bn(dhp_4096, sizeof (dhp_4096), NULL);
++    dhg_bn = BN_bin2bn(dhg_4096, sizeof (dhg_4096), NULL);
++    if (dhp_bn == NULL || dhg_bn == NULL
++            || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++        DH_free(dh);
++        BN_free(dhp_bn);
++        BN_free(dhg_bn);
++        return NULL;
++    }
++    return dh;
++}
+-- 
+2.16.4
+
index 1abed4c704185ad3d8cf97db8767f9da79cc6802..5cb0fcb432221ffaa4b8e06f39a2498caf941bda 100644 (file)
@@ -14,6 +14,7 @@ PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MIRROR_HASH:=9e04b979cff827974ec9e9708daf116867bf1268cdad7dff4ad585172123f6b5
 PKG_SOURCE_URL:=https://github.com/pagekite/libpagekite.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=v$(PKG_REV)
index 48d622c20420780083e39bbececd4aa5c055748d..5e1ab0e52efb8a407edef9a4d710d6267bfa27bf 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pen
-PKG_VERSION:=0.34.0
+PKG_VERSION:=0.34.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://siag.nu/pub/pen/
-PKG_HASH:=a3306bfb02619b103ff431002bb91079048bf2dd24f739bf38e373860558cd27
+PKG_HASH:=2b640795029df9d1672e17202c109cc5d42538f6754a6070dc27da640881e864
 
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
index 7891f0c28146943ef2f500b9c582aae123758546..4f3a711c2d3f65887c08b73db64cf5a0a76a8ed7 100644 (file)
@@ -12,7 +12,7 @@ PKG_VERSION:=2017-10-02
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=511a6bedd65169ffd1aadb38dd470d53d445cffcc3a322ec2dd0dee6009162a6
+PKG_MIRROR_HASH:=8c8d1743b8972ade6c75027346fc652f7a1c0f17e2f9bd2e65aad20013d9870e
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/br101/pingcheck
 PKG_SOURCE_PROTO:=git
index 2a37ad3b605aa6e398267d1f7cc5ab9be3267992..340000067f5a088ed78af8f4a0ac7b6de8f63a12 100644 (file)
@@ -8,16 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=radsecproxy
-PKG_VERSION:=1.6.8
+PKG_VERSION:=1.7.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://software.uninett.no/radsecproxy/
-PKG_HASH:=9923203c3aaf17e31d5bc7a61b99e5a6aa0ef19a8397616f6ef9c0c41948f7d2
+PKG_SOURCE_URL:=https://github.com/radsecproxy/radsecproxy/releases/download/$(PKG_VERSION)/
+PKG_HASH:=49fd644684c6ea502d896d31e29f1acf2ae9b61b02b231a8ffd0cec11857dd07
 
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=LICENSE
 
+PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
@@ -25,9 +26,9 @@ include $(INCLUDE_DIR)/package.mk
 define Package/radsecproxy
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=+libopenssl +libpthread
+  DEPENDS:=+libopenssl +libpthread +libnettle
   TITLE:=radsecproxy
-  URL:=http://software.uninett.no/radsecproxy
+  URL:=https://radsecproxy.github.io/
   MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
 endef
 
diff --git a/net/radsecproxy/patches/100-fix-debug-tid.patch b/net/radsecproxy/patches/100-fix-debug-tid.patch
new file mode 100644 (file)
index 0000000..c170e3f
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/debug.c
++++ b/debug.c
+@@ -153,7 +153,7 @@ void debug_logit(uint8_t level, const ch
+     if (debug_tid) {
+         tidbuf = malloc((3*sizeof(pthread_t)+5)+strlen(format));
+-        sprintf(tidbuf, "(%ld) %s", pthread_self(), format);
++        sprintf(tidbuf, "(%ld) %s", (long int)pthread_self(), format);
+         format = tidbuf;
+     } else
+         tidbuf = NULL;
diff --git a/net/radsecproxy/patches/100-missing-return.patch b/net/radsecproxy/patches/100-missing-return.patch
deleted file mode 100644 (file)
index 871fc6e..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
---- a/dtls.c
-+++ b/dtls.c
-@@ -523,6 +523,7 @@ void *udpdtlsserverrd(void *arg) {
-       free(params);
-       cacheexpire(sessioncache, &lastexpiry);
-     }
-+    return NULL;
- }
- int dtlsconnect(struct server *server, struct timeval *when, int timeout, char *text) {
-@@ -642,6 +643,7 @@ void *udpdtlsclientrd(void *arg) {
-       if (udp2bio(s, conf->servers->rbios, cnt))
-           debug(DBG_DBG, "radudpget: got DTLS in UDP from %s", addr2string((struct sockaddr *)&from));
-     }
-+    return NULL;
- }
- void *dtlsclientrd(void *arg) {
---- a/radsecproxy.c
-+++ b/radsecproxy.c
-@@ -3203,6 +3203,8 @@ void *sighandler(void *arg) {
-             debug(DBG_WARN, "sighandler: ignoring signal %d", sig);
-         }
-     }
-+
-+    return NULL;
- }
- int createpidfile(const char *pidfile) {
-@@ -3289,6 +3291,8 @@ int radsecproxy_main(int argc, char **ar
-     /* just hang around doing nothing, anything to do here? */
-     for (;;)
-       sleep(1000);
-+
-+    return 0;
- }
- /* Local Variables: */
---- a/udp.c
-+++ b/udp.c
-@@ -266,6 +266,8 @@ void *udpclientrd(void *arg) {
-       buf = radudpget(*s, NULL, &server, NULL);
-       replyh(server, buf);
-     }
-+
-+    return NULL;
- }
- void *udpserverrd(void *arg) {
-@@ -310,6 +312,8 @@ void *udpserverwr(void *arg) {
-       debug(DBG_DBG, "udpserverwr: refcount %d", reply->refcount);
-       freerq(reply);
-     }
-+
-+    return NULL;
- }
- void addclientudp(struct client *client) {
index 6678448acf421ab8c35c98082ff9c533c0b12931..9af20b7f3dceb545a26a80b557d167e40c57c5d4 100644 (file)
@@ -1,8 +1,6 @@
-diff --git a/radsecproxy.c b/radsecproxy.c
-index 563c4a8..9fa076d 100644
 --- a/radsecproxy.c
 +++ b/radsecproxy.c
-@@ -3382,18 +3382,16 @@ int radsecproxy_main(int argc, char **argv) {
+@@ -3385,15 +3385,13 @@ int radsecproxy_main(int argc, char **ar
        options.loglevel = loglevel;
      else if (options.loglevel)
        debug_set_level(options.loglevel);
@@ -10,22 +8,18 @@ index 563c4a8..9fa076d 100644
 -      debug_set_destination(options.logdestination
 -                              ? options.logdestination
 -                              : "x-syslog:///", LOG_TYPE_DEBUG);
-+    debug_set_destination(options.logdestination
-+                        ? options.logdestination
-+                        : "x-syslog:///", LOG_TYPE_DEBUG);
- #if defined(WANT_FTICKS)
 -      if (options.ftickssyslogfacility) {
 -            debug_set_destination(options.ftickssyslogfacility,
 -                                  LOG_TYPE_FTICKS);
 -            free(options.ftickssyslogfacility);
 -      }
--#endif
++    debug_set_destination(options.logdestination
++                          ? options.logdestination
++                          : "x-syslog:///", LOG_TYPE_DEBUG);
 +    if (options.ftickssyslogfacility) {
-+      debug_set_destination(options.ftickssyslogfacility,
-+                            LOG_TYPE_FTICKS);
-+      free(options.ftickssyslogfacility);
++        debug_set_destination(options.ftickssyslogfacility,
++                              LOG_TYPE_FTICKS);
++        free(options.ftickssyslogfacility);
      }
-+#endif
      free(options.logdestination);
-     if (!list_first(clconfs))
+     if (options.logtid)
index 79af9f854a829213c8b6d245144d126885278529..8894eac38d1af91472de1ca2a8be699fdc6077c7 100644 (file)
@@ -9,13 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=reaver
-PKG_VERSION:=1.6.4
+PKG_VERSION:=1.6.5
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/t6x/reaver-wps-fork-t6x/releases/download/v$(PKG_VERSION)
-PKG_HASH:=bf63b3d5a5596b0bd292a995f778dc99b0b89af88237cc2cfd7c4abbce942bb2
+PKG_HASH:=342e9d265cf459bd2387205b73a63d1fc7582e268f0e9aec20613f3ec11b6a6b
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=docs/LICENSE
index 49a2c742a39dcc0c1e0496f3bb7f560588eb73f1..8b83698d9a86b04e1f2b9556c0d137989e5aac2a 100644 (file)
@@ -9,8 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rp-pppoe
 PKG_VERSION:=3.12
-PKG_RELEASE:=4
-PKG_MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
+PKG_RELEASE:=6
 PKG_LICENSE:=LGPL-2.0+
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
diff --git a/net/rp-pppoe/patches/140-glibc-avoid-include-linux_in.h.patch b/net/rp-pppoe/patches/140-glibc-avoid-include-linux_in.h.patch
new file mode 100644 (file)
index 0000000..de3244f
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/src/pppoe.h
++++ b/src/pppoe.h
+@@ -132,6 +132,9 @@ typedef unsigned long UINT32_t;
+ #endif
+ #include <netinet/in.h>
++/* avoid redefinitions if <linux/in.h> and <linux/in6.h> get included. */
++#define _LINUX_IN_H
++#define _LINUX_IN6_H
+ #ifdef HAVE_NETINET_IF_ETHER_H
+ #include <sys/types.h>
index f6701f86c59de8835c8d86648526b2355904a126..02ce086359b09a16a6b23cd94763c60ae7e3de4b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rsync
 PKG_VERSION:=3.1.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://download.samba.org/pub/rsync/src
@@ -60,6 +60,12 @@ else
        CONFIGURE_ARGS+= --with-included-zlib=yes
 endif
 
+ifeq ($(CONFIG_IPV6),y)
+    TARGET_CFLAGS+= -DINET6
+else
+    CONFIGURE_ARGS+= --disable-ipv6
+endif
+
 define Package/rsyncd
   SECTION:=net
   CATEGORY:=Network
index 64603ed8fe551dd25a9ca674ec124fc3148342f9..beda0345982ac182c35a94d0be14fcc5a55849a5 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-ccnet
-PKG_VERSION:=6.2.2
+PKG_VERSION:=6.3.0
 PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
 PKG_LICENSE:=GPL-3.0
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/haiwen/ccnet-server.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=6b9d7e2920aa9b807f9efe9038439b57ce949ecc
+PKG_SOURCE_VERSION:=614926b161623b267b4fb77fa1861718da406103
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=8aed6d2283ac7b3148f9b5c82b1d992ed36dc5193000cf727bdcfae7446ce1fe
+PKG_MIRROR_HASH:=843660e05809e6a6e076cf4d5ea3a6aad65b9b03aa1eaa3b4d980a314e7aed61
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
@@ -34,7 +34,7 @@ define Package/seafile-ccnet
     DEPENDS:=+libsearpc +libevent2 +libopenssl \
                +glib2 +python +libzdb +libuuid \
                +libpthread +libsqlite3 +jansson $(ICONV_DEPENDS)
-    EXTRA_DEPENDS:=libsearpc (=6.2.2-8998e7b2c5587f0b94c48db24e2952d08def5add-1)
+    EXTRA_DEPENDS:=libsearpc (=3.0.8-12a01268825e9c7e17794c58c367e3b4db912ad9-1)
 endef
 
 define Package/seafile-ccnet/description
diff --git a/net/seafile-ccnet/patches/020-Remove-API-deprecated-in-openssl-1.1.patch b/net/seafile-ccnet/patches/020-Remove-API-deprecated-in-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..df8e990
--- /dev/null
@@ -0,0 +1,153 @@
+From afeb62f01ad6e610cd19dcde0ceffc018b3247ec Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Wed, 6 Jun 2018 18:05:33 -0300
+Subject: [PATCH] Remove API deprecated in openssl 1.1
+
+With openssl 1.1, we do not call OpenSSL_add_all_algorithms(), as
+library initialization is done automatically.
+Functions RAND_pseudo_bytes and RSA_generate_key were deprecated as
+well.
+Also, we need to #include <openssl/bn.h> for BN_num_bytes().
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ lib/rsa.c                                      | 19 ++++++++++++++-----
+ net/common/processors/keepalive-proc.c         |  4 ++--
+ net/common/processors/keepalive2-proc.c        |  2 +-
+ net/common/processors/sendsessionkey-proc.c    |  2 +-
+ net/common/processors/sendsessionkey-v2-proc.c |  2 +-
+ net/server/user-mgr.c                          |  4 ++++
+ tools/ccnet-init.c                             |  2 ++
+ 7 files changed, 25 insertions(+), 10 deletions(-)
+
+diff --git a/lib/rsa.c b/lib/rsa.c
+index 7cca150..23abb82 100644
+--- a/lib/rsa.c
++++ b/lib/rsa.c
+@@ -4,6 +4,7 @@
+ #include <openssl/rand.h>
+ #include <openssl/rsa.h>
+ #include <openssl/err.h>
++#include <openssl/bn.h>
+ #include <string.h>
+ #include <glib.h>
+@@ -207,9 +208,17 @@ RSA *
+ generate_private_key(u_int bits)
+ {
+       RSA *private = NULL;
+-
+-      private = RSA_generate_key(bits, 35, NULL, NULL);
+-      if (private == NULL)
+-              g_error ("rsa_generate_private_key: key generation failed.");
+-      return private;
++      BIGNUM *e = NULL;
++
++      private = RSA_new();
++      e = BN_new();
++      if (private == NULL || e == NULL || !BN_set_word(e, 35) ||
++              !RSA_generate_key_ex(private, bits, e, NULL)) {
++              RSA_free(private);
++              BN_free(e);
++              g_error ("rsa_generate_private_key: key generation failed.");
++              return NULL;
++      }
++      BN_free(e);
++      return private;
+ }
+diff --git a/net/common/processors/keepalive-proc.c b/net/common/processors/keepalive-proc.c
+index 609d102..42a0c23 100644
+--- a/net/common/processors/keepalive-proc.c
++++ b/net/common/processors/keepalive-proc.c
+@@ -401,7 +401,7 @@ static void send_challenge(CcnetProcessor *processor)
+     unsigned char *buf;
+     int len;
+-    RAND_pseudo_bytes (priv->random_buf, 40);
++    RAND_bytes (priv->random_buf, 40);
+     buf = public_key_encrypt (peer->pubkey, priv->random_buf, 40, &len);
+     ccnet_processor_send_update (processor, "311", NULL, (char *)buf, len);
+@@ -434,7 +434,7 @@ static void send_challenge_user(CcnetProcessor *processor, CcnetUser *user)
+     ccnet_debug ("[Keepalive] Send user challenge to %.8s\n",
+                  processor->peer->id);
+-    RAND_pseudo_bytes (priv->random_buf, 40);
++    RAND_bytes (priv->random_buf, 40);
+     buf = public_key_encrypt (user->pubkey, priv->random_buf, 40, &len);
+     ccnet_processor_send_update (processor, "321", NULL, (char *)buf, len);
+diff --git a/net/common/processors/keepalive2-proc.c b/net/common/processors/keepalive2-proc.c
+index d3e799e..d81c266 100644
+--- a/net/common/processors/keepalive2-proc.c
++++ b/net/common/processors/keepalive2-proc.c
+@@ -306,7 +306,7 @@ static void send_challenge(CcnetProcessor *processor)
+     unsigned char *buf;
+     int len;
+-    RAND_pseudo_bytes (priv->random_buf, 40);
++    RAND_bytes (priv->random_buf, 40);
+     buf = public_key_encrypt (peer->pubkey, priv->random_buf, 40, &len);
+     if (len < 0) {
+         ccnet_debug ("[Keepalive] Failed to encrypt challenge "
+diff --git a/net/common/processors/sendsessionkey-proc.c b/net/common/processors/sendsessionkey-proc.c
+index 3ec2757..10c3340 100644
+--- a/net/common/processors/sendsessionkey-proc.c
++++ b/net/common/processors/sendsessionkey-proc.c
+@@ -124,7 +124,7 @@ generate_session_key (CcnetProcessor *processor, int *len_p)
+     unsigned char random_buf[40];
+     SHA_CTX s;
+-    RAND_pseudo_bytes (random_buf, sizeof(random_buf));
++    RAND_bytes (random_buf, sizeof(random_buf));
+     
+     SHA1_Init (&s);
+     SHA1_Update (&s, random_buf, sizeof(random_buf));
+diff --git a/net/common/processors/sendsessionkey-v2-proc.c b/net/common/processors/sendsessionkey-v2-proc.c
+index c1c6924..4805ba6 100644
+--- a/net/common/processors/sendsessionkey-v2-proc.c
++++ b/net/common/processors/sendsessionkey-v2-proc.c
+@@ -125,7 +125,7 @@ generate_session_key (CcnetProcessor *processor, int *len_p)
+     unsigned char random_buf[40];
+     SHA_CTX s;
+-    RAND_pseudo_bytes (random_buf, sizeof(random_buf));
++    RAND_bytes (random_buf, sizeof(random_buf));
+     
+     SHA1_Init (&s);
+     SHA1_Update (&s, random_buf, sizeof(random_buf));
+diff --git a/net/server/user-mgr.c b/net/server/user-mgr.c
+index 0973959..3f0c3b3 100644
+--- a/net/server/user-mgr.c
++++ b/net/server/user-mgr.c
+@@ -811,9 +811,13 @@ hash_password_pbkdf2_sha256 (const char *passwd,
+     char salt_str[SHA256_DIGEST_LENGTH*2+1];
+     if (!RAND_bytes (salt, sizeof(salt))) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || OPENSSL_API_COMPAT < 0x10100000L
+         ccnet_warning ("Failed to generate salt "
+                        "with RAND_bytes(), use RAND_pseudo_bytes().\n");
+         RAND_pseudo_bytes (salt, sizeof(salt));
++#else
++        ccnet_warning ("Failed to generate salt with RAND_bytes().\n");
++#endif
+     }
+     PKCS5_PBKDF2_HMAC (passwd, strlen(passwd),
+diff --git a/tools/ccnet-init.c b/tools/ccnet-init.c
+index 4748962..28c9995 100644
+--- a/tools/ccnet-init.c
++++ b/tools/ccnet-init.c
+@@ -162,7 +162,9 @@ main(int argc, char **argv)
+     config_dir = ccnet_expand_path (config_dir);
+     /* printf("[conf_dir=%s\n]", config_dir); */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+     OpenSSL_add_all_algorithms();  
++#endif
+     if (RAND_status() != 1) {   /* it should be seeded automatically */
+         fprintf(stderr, "PRNG is not seeded\n");
+-- 
+2.16.4
+
index 2cf27aef1f1cb2fbb724196c0263d9e1e08d8594..b6ad37cd9128f65b1712d0455e76fa734782bb5e 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-seahub
-PKG_VERSION:=6.2.2
+PKG_VERSION:=6.3.0
 PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
 PKG_LICENSE:=Apache-2.0
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/haiwen/seahub.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=120e7a299e77968f1af48ea2dcf4bd9b909c426f
+PKG_SOURCE_VERSION:=d1ab146a936a6ea1e1581bf3f194e86742f0d3cd
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=511500c40dd7b1009f77109c6df810df1cf2c17a84a8f6841d592a9e05d22064
+PKG_MIRROR_HASH:=21c2ed3886d0c87853f9720704b14c0a0dce8215e7346af775e306f80b29fa0d
 
 include $(INCLUDE_DIR)/package.mk
 include ../../lang/python/python-package.mk
@@ -29,9 +29,11 @@ define Package/seafile-seahub
     MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
     URL:=http://seafile.com/
     DEPENDS:=+simplejson +python +pillow +chardet +django +django-appconf \
-               +django-compressor +django-constance +django-jsonfield +django-picklefield \
-               +django-postoffice +django-restframework +django-statici18n +et_xmlfile \
-               +flup +gunicorn +jdcal +openpyxl +python-dateutil +python-mysql +pytz +rcssmin
+               +django-compressor +django-constance +django-formtools +django-jsonfield \
+               +django-picklefield +django-postoffice +django-restframework \
+               +django-simple-captcha +django-statici18n +django-webpack-loader +et_xmlfile \
+               +flup +gunicorn +jdcal +openpyxl +python-dateutil +python-mysql \
+               +python-qrcode +python-requests +python-requests-oauthlib +pytz +rcssmin
 endef
 
 define Build/Configure
index 4168dc15f06c1e202a8e20fa06a16d0c69ae143a..b439495a45b0e86d6252e79607c64a31ac0f40b7 100644 (file)
@@ -1,7 +1,6 @@
-diff -rupN seahub-3.1.7-server.orig/seahub/settings.py seahub-3.1.7-server/seahub/settings.py
---- seahub-3.1.7-server.orig/seahub/settings.py        2014-10-20 09:32:35.000000000 +0200
-+++ seahub-3.1.7-server/seahub/settings.py     2014-12-10 15:47:21.625104606 +0100
-@@ -46,7 +46,7 @@ SITE_ID = 1
+--- a/seahub/settings.py
++++ b/seahub/settings.py
+@@ -47,7 +47,7 @@ SITE_ID = 1
  
  # If you set this to False, Django will make some optimizations so as not
  # to load the internationalization machinery.
@@ -10,8 +9,8 @@ diff -rupN seahub-3.1.7-server.orig/seahub/settings.py seahub-3.1.7-server/seahu
  
  # If you set this to False, Django will not format dates, numbers and
  # calendars according to the current locale.
-@@ -209,7 +209,7 @@ SHOW_REPO_DOWNLOAD_BUTTON = False
- REPO_PASSWORD_MIN_LENGTH = 8
+@@ -310,7 +310,7 @@ SHARE_LINK_EMAIL_LANGUAGE = ''
+ ENABLE_UPLOAD_LINK_VIRUS_CHECK = False
  
  # mininum length for user's password
 -USER_PASSWORD_MIN_LENGTH = 6
@@ -19,12 +18,12 @@ diff -rupN seahub-3.1.7-server.orig/seahub/settings.py seahub-3.1.7-server/seahu
  
  # LEVEL based on four types of input:
  # num, upper letter, lower letter, other symbols
-@@ -218,7 +218,7 @@ USER_PASSWORD_STRENGTH_LEVEL = 3
+@@ -319,7 +319,7 @@ USER_PASSWORD_STRENGTH_LEVEL = 3
  
  # default False, only check USER_PASSWORD_MIN_LENGTH
  # when True, check password strength level, STRONG(or above) is allowed
 -USER_STRONG_PASSWORD_REQUIRED = False
 +USER_STRONG_PASSWORD_REQUIRED = True
  
- # Using server side crypto by default, otherwise, let user choose crypto method.
- FORCE_SERVER_CRYPTO = True
+ # Force user to change password when admin add/reset a user.
+ FORCE_PASSWORD_CHANGE = True
index efae34d131262ceefd22af0847f84c1f55e415e7..35f4f93fef28201a207ae5246138f3834db474e8 100644 (file)
@@ -1,6 +1,5 @@
-diff -rupN seafile-seahub-6.2.2.orig/Makefile seafile-seahub-6.2.2/Makefile
---- seafile-seahub-6.2.2.orig/Makefile 2017-10-22 22:28:22.000000000 +0200
-+++ seafile-seahub-6.2.2/Makefile      2017-10-22 22:46:18.007470936 +0200
+--- a/Makefile
++++ b/Makefile
 @@ -1,3 +1,6 @@
 +include $(TOPDIR)/rules.mk
 +include $(TOPDIR)/feeds/packages/lang/python/python-package.mk
@@ -8,18 +7,16 @@ diff -rupN seafile-seahub-6.2.2.orig/Makefile seafile-seahub-6.2.2/Makefile
  PROJECT=seahub
  
  develop: setup-git
-@@ -9,7 +12,9 @@ dist: locale uglify statici18n collectst
+@@ -9,7 +12,7 @@ dist: locale uglify statici18n collectst
  
  locale:
        @echo "--> Compile locales"
--      django-admin.py compilemessages && cd seahub/two_factor && django-admin.py compilemessages
-+      $(call HostPython,,$(STAGING_DIR)/usr/bin/django-admin.py compilemessages)
-+      cd seahub/two_factor
+-      django-admin.py compilemessages
 +      $(call HostPython,,$(STAGING_DIR)/usr/bin/django-admin.py compilemessages)
        @echo ""
  
  uglify:
-@@ -19,17 +24,17 @@ uglify:
+@@ -19,17 +22,17 @@ uglify:
  
  statici18n:
        @echo "--> Generate JS locale files in static/scripts/i18n"
index 12b2b2c471a0f2249a8dda93bc9aa53a258aab90..69b1d4ca9dca61d79795835a072ecc9ce116b69e 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-server
-PKG_VERSION:=6.2.2
+PKG_VERSION:=6.3.0
 PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
 PKG_LICENSE:=GPL-3.0
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/haiwen/seafile-server.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=6978d2cb2e05cc774370b4d06c9f0a864df71936
+PKG_SOURCE_VERSION:=a8c66e1bc6f6245e48917f39a24167d22a95dbd6
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=99aa9c41641d7c0ffe18bbab75418b1347dd9e156124472bbee5a6dda09a8057
+PKG_MIRROR_HASH:=d63667f8cddcac645fb0d350c71e2a32d0c44f47df46a3a013d2dbecb3574d9a
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
@@ -34,7 +34,7 @@ define Package/seafile-server
     DEPENDS:=+libarchive +libopenssl +glib2 +libsearpc +seafile-ccnet +seafile-seahub +sqlite3-cli +python-mysql +python-urllib3 \
                +jansson +libevent2 +libevent2-openssl +zlib +libzdb +libsqlite3 +libmysqlclient \
                +libpthread +libuuid +bash +procps-ng +procps-ng-pkill +SEAFILE_FUSE_SUPPORT:libfuse $(ICONV_DEPENDS)
-    EXTRA_DEPENDS:=seafile-ccnet (=6.2.2-6b9d7e2920aa9b807f9efe9038439b57ce949ecc-1), seafile-seahub (=6.2.2-120e7a299e77968f1af48ea2dcf4bd9b909c426f-1)
+    EXTRA_DEPENDS:=seafile-ccnet (=6.3.0-614926b161623b267b4fb77fa1861718da406103-1), seafile-seahub (=6.3.0-d1ab146a936a6ea1e1581bf3f194e86742f0d3cd-1)
     MENU:=1
 endef
 
index 585784dd4c1d50dfcc4d5b017f29a3f4f4fce654..dcbf82c0d47ced52307fd46f70f6f2af447327e6 100644 (file)
@@ -1,6 +1,5 @@
-diff -rupN seafile-server-5.1.1.orig/scripts/seaf-fsck.sh seafile-server-5.1.1/scripts/seaf-fsck.sh
---- seafile-server-5.1.1.orig/scripts/seaf-fsck.sh     2016-04-21 11:05:26.000000000 +0200
-+++ seafile-server-5.1.1/scripts/seaf-fsck.sh  2016-04-22 09:10:13.075581325 +0200
+--- a/scripts/seaf-fsck.sh
++++ b/scripts/seaf-fsck.sh
 @@ -7,7 +7,7 @@ INSTALLPATH=$(dirname "${SCRIPT}")
  TOPDIR=$(dirname "${INSTALLPATH}")
  default_ccnet_conf_dir=${TOPDIR}/ccnet
@@ -10,9 +9,8 @@ diff -rupN seafile-server-5.1.1.orig/scripts/seaf-fsck.sh seafile-server-5.1.1/s
  
  export PATH=${INSTALLPATH}/seafile/bin:$PATH
  export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
-diff -rupN seafile-server-5.1.1.orig/scripts/seaf-gc.sh seafile-server-5.1.1/scripts/seaf-gc.sh
---- seafile-server-5.1.1.orig/scripts/seaf-gc.sh       2016-04-21 11:05:26.000000000 +0200
-+++ seafile-server-5.1.1/scripts/seaf-gc.sh    2016-04-22 09:10:27.211581999 +0200
+--- a/scripts/seaf-gc.sh
++++ b/scripts/seaf-gc.sh
 @@ -7,7 +7,7 @@ INSTALLPATH=$(dirname "${SCRIPT}")
  TOPDIR=$(dirname "${INSTALLPATH}")
  default_ccnet_conf_dir=${TOPDIR}/ccnet
@@ -22,9 +20,8 @@ diff -rupN seafile-server-5.1.1.orig/scripts/seaf-gc.sh seafile-server-5.1.1/scr
  seaf_gc_opts=""
  
  export PATH=${INSTALLPATH}/seafile/bin:$PATH
-diff -rupN seafile-server-5.1.1.orig/scripts/setup-seafile-mysql.sh seafile-server-5.1.1/scripts/setup-seafile-mysql.sh
---- seafile-server-5.1.1.orig/scripts/setup-seafile-mysql.sh   2016-04-21 11:05:26.000000000 +0200
-+++ seafile-server-5.1.1/scripts/setup-seafile-mysql.sh        2016-04-22 09:11:50.083585953 +0200
+--- a/scripts/setup-seafile-mysql.sh
++++ b/scripts/setup-seafile-mysql.sh
 @@ -40,15 +40,10 @@ function check_python_executable() {
  function check_python_module () {
      module=$1
@@ -65,10 +62,9 @@ diff -rupN seafile-server-5.1.1.orig/scripts/setup-seafile-mysql.sh seafile-serv
  export PYTHON=$PYTHON
 +export PYTHONPATH="/usr/share/seafile/seafile-server/seahub/thirdpart:$PYTHONPATH"
  
- exec $PYTHON "$python_script"
-diff -rupN seafile-server-5.1.1.orig/scripts/sqlite2mysql.sh seafile-server-5.1.1/scripts/sqlite2mysql.sh
---- seafile-server-5.1.1.orig/scripts/sqlite2mysql.sh  2016-04-21 11:05:26.000000000 +0200
-+++ seafile-server-5.1.1/scripts/sqlite2mysql.sh       2016-04-22 09:02:22.047558854 +0200
+ exec $PYTHON "$python_script" "$@"
+--- a/scripts/sqlite2mysql.sh
++++ b/scripts/sqlite2mysql.sh
 @@ -1,4 +1,4 @@
 -#!/bin/sh
 +#!/bin/bash
index 5e655d839fdb849957706957a535fbb505baaa56..4f51ade6c50fdfae01084245ed7ac96373ededd5 100644 (file)
@@ -1,7 +1,6 @@
-diff -rupN seafile-server-5.1.1.orig/lib/repo.vala seafile-server-5.1.1/lib/repo.vala
---- seafile-server-5.1.1.orig/lib/repo.vala    2016-04-19 15:44:32.000000000 +0200
-+++ seafile-server-5.1.1/lib/repo.vala 2016-04-25 21:29:33.327962235 +0200
-@@ -30,7 +30,7 @@ public class Repo : Object {
+--- a/lib/repo.vala
++++ b/lib/repo.vala
+@@ -34,7 +34,7 @@ public class Repo : Object {
      // data format version
      public int version { get; set; }
  
@@ -9,8 +8,8 @@ diff -rupN seafile-server-5.1.1.orig/lib/repo.vala seafile-server-5.1.1/lib/repo
 +    public int64  last_modify { get; set; }
      public int64  size { get; set; }
      public int64  file_count { get; set; }
-     public string head_cmmt_id { get; set; }
-@@ -40,7 +40,7 @@ public class Repo : Object {
+     public string last_modifier { get; set; }
+@@ -45,7 +45,7 @@ public class Repo : Object {
      public string repo_id { get; set; }
      public string repo_name { get; set; }
      public string repo_desc { get; set; }
@@ -19,7 +18,7 @@ diff -rupN seafile-server-5.1.1.orig/lib/repo.vala seafile-server-5.1.1/lib/repo
  
      // Section 2: Encryption related
      // Members in this section should be set for every Repo object
-@@ -63,7 +63,7 @@ public class Repo : Object {
+@@ -68,7 +68,7 @@ public class Repo : Object {
          get { return _relay_id; }
          set { _relay_id = value; }
      }
@@ -28,7 +27,7 @@ diff -rupN seafile-server-5.1.1.orig/lib/repo.vala seafile-server-5.1.1/lib/repo
      public bool auto_sync { get; set; }
      public bool worktree_invalid { get; set; }
  
-@@ -155,7 +155,7 @@ public class DeletedEntry : Object {
+@@ -162,7 +162,7 @@ public class DeletedEntry : Object {
      public string obj_name { get; set; }
      public string basedir { get; set; }
      public int mode { get; set; }
diff --git a/net/seafile-server/patches/080-Remove-API-deprecated-in-openssl-1.1.patch b/net/seafile-server/patches/080-Remove-API-deprecated-in-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..0e42726
--- /dev/null
@@ -0,0 +1,35 @@
+From 13f95a28ce12216ba51cf0ca8d61c3d89689d02b Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Wed, 6 Jun 2018 18:11:47 -0300
+Subject: [PATCH] Remove API deprecated in openssl 1.1
+
+Openssl 1.1 has deprecated RAND_pseudo_bytes.  It won't compile with
+openssl built witout deprecated API.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ common/seafile-crypt.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/common/seafile-crypt.c b/common/seafile-crypt.c
+index c7d1702..c3cebf5 100644
+--- a/common/seafile-crypt.c
++++ b/common/seafile-crypt.c
+@@ -81,9 +81,14 @@ seafile_generate_random_key (const char *passwd, char *random_key)
+     int rc = RAND_bytes (secret_key, sizeof(secret_key));
+     if (rc != 1) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || OPENSSL_API_COMPAT < 0x10100000L
+         seaf_warning ("Failed to generate secret key for repo encryption "
+                       "with RAND_bytes(), use RAND_pseudo_bytes().\n");
+         RAND_pseudo_bytes (secret_key, sizeof(secret_key));
++#else
++        seaf_warning ("Failed to generate secret key for repo encryption "
++                      "with RAND_bytes().\n");
++#endif
+     }
+     seafile_derive_key (passwd, strlen(passwd), 2, key, iv);
+-- 
+2.16.4
+
diff --git a/net/seafile-server/patches/090-Fix-that-table-SystemInfo-cant-be-created-in-sqlite-db.patch b/net/seafile-server/patches/090-Fix-that-table-SystemInfo-cant-be-created-in-sqlite-db.patch
new file mode 100644 (file)
index 0000000..86a4482
--- /dev/null
@@ -0,0 +1,32 @@
+From 25dcf165f77c94f758383d35632293d69666d0ad Mon Sep 17 00:00:00 2001
+From: cuihaikuo <haikuo.cui@seafile.com>
+Date: Thu, 7 Jun 2018 11:56:44 +0800
+Subject: [PATCH] Fix that table SystemInfo can't be created in sqlite db.
+
+---
+ server/seafile-session.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/server/seafile-session.c b/server/seafile-session.c
+index 76d9c12..2a1fc0c 100644
+--- a/server/seafile-session.c
++++ b/server/seafile-session.c
+@@ -424,9 +424,17 @@ create_system_default_repo (void *data)
+ void
+ schedule_create_system_default_repo (SeafileSession *session)
+ {
+-    char *sql = "CREATE TABLE IF NOT EXISTS SystemInfo "
++    int db_type = seaf_db_type (session->db);
++    char *sql;
++
++    if (db_type == SEAF_DB_TYPE_MYSQL)
++        sql = "CREATE TABLE IF NOT EXISTS SystemInfo "
+         "(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, "
+         "info_key VARCHAR(256), info_value VARCHAR(1024))";
++    else
++        sql = "CREATE TABLE IF NOT EXISTS SystemInfo( "
++        "info_key VARCHAR(256), info_value VARCHAR(1024))";
++
+     if (seaf_db_query (session->db, sql) < 0)
+         return;
diff --git a/net/seafile-server/patches/100-seafile-admin-Make-sure-ccnet-is-running.patch b/net/seafile-server/patches/100-seafile-admin-Make-sure-ccnet-is-running.patch
new file mode 100644 (file)
index 0000000..a665e45
--- /dev/null
@@ -0,0 +1,26 @@
+--- a/tools/seafile-admin
++++ b/tools/seafile-admin
+@@ -831,7 +831,22 @@ def setup_seafile(args):
+     conf[CONF_SEAFILE_CENTRAL_CONF_DIR] = os.path.join(cwd, 'conf')
+     config_ccnet_seafile()
+     init_ccnet_seafile()
+-    init_seahub()
++
++    # make sure ccnet-server is running to avoid an error creating django superuser
++    if not is_running('ccnet-server'):
++        argv = [
++            'ccnet-server',
++            '-F',
++            conf[CONF_SEAFILE_CENTRAL_CONF_DIR],
++          '-c',
++          conf[CONF_CCNET_DIR],
++          '-d'
++        ]
++        run_argv(argv)
++        init_seahub()
++        pkill('ccnet-server')
++    else:
++        init_seahub()
+     print
+     print '-----------------------------------------------------------------'
index e96642f0932515af0e69eb3a2f5567eb1a9d9ca4..9c18a5871586d7b1984f273f68c1a002a0f30f6b 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.1.3
-PKG_RELEASE:=2
+PKG_VERSION:=3.2.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:=58fb438d2cfe33cfa6ac8c50e587e2138c50e59a4b943f88d22883bf2e192a96
+PKG_HASH:=5521cf623a07fd1e393528516a83acd2b66c5d4bb4535a52662806a6a060c606
 
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 
index c48a3fbc1bdc6be0bd2f5e0bac62689cae6f7ce8..fc7719aeb8c6eaf1f792cfdcafc06876ca458d90 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqm-scripts
-PKG_SOURCE_VERSION:=79c3aa11fed485fca1481b077082e561e5dbceec
-PKG_VERSION:=1.2.2
+PKG_SOURCE_VERSION:=a94318a2ecd709403fb8c0d622063d9ce1859615
+PKG_VERSION:=1.2.3
 PKG_RELEASE:=1
 PKG_LICENSE:=GPLv2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.xz
-PKG_MIRROR_HASH:=0bca492ff5da37923b0d6878f4b53af85e59db03b255ff22bd03c2c0a74e4644
+PKG_MIRROR_HASH:=0cabeaf9c9d7ff260d8ed7b4ed518c67ff4640d82a8583e2fb4d695befb79c54
 PKG_SOURCE_URL:=https://github.com/tohojo/sqm-scripts.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)
diff --git a/net/squid/Config.in b/net/squid/Config.in
new file mode 100644 (file)
index 0000000..d0a0db5
--- /dev/null
@@ -0,0 +1,71 @@
+if PACKAGE_squid
+
+       comment "Optional features"
+
+       config SQUID_enable-ipv6
+               bool "Enable support for IP version 6"
+               default y
+
+       config SQUID_enable-snmp
+               bool "Enable SNMP monitoring support"
+               default n
+
+       config SQUID_enable-icmp
+               bool "Enable ICMP pinging and Network Measurement"
+               default n
+
+       config SQUID_enable-icap-client
+               bool "Enable ICAP client support"
+               default n
+
+       config SQUID_enable-dlmalloc
+               bool "Compile & use the malloc package by Doug Lea"
+               default y
+
+       config SQUID_enable-ssl-crtd
+               bool "Enable dynamic SSL certificate generation "
+               depends on !SQUID_use-gnutls
+               default n
+
+       config SQUID_auth-basic
+               bool "Enable the Basic authentication scheme"
+               default n
+
+       config SQUID_auth-digest
+               bool "Enable the Digest authentication scheme"
+               default n
+
+       config SQUID_auth-negotiate
+               bool "Enable the Negotiate authentication scheme"
+               default n
+
+       config SQUID_auth-ntlm
+               bool "Enable the NTLM authentication scheme"
+               default n
+
+       comment "Optional packages"
+
+       config SQUID_use-gnutls
+               bool "Use GnuTLS instead of OpenSSL"
+               default n
+
+       config SQUID_with-libcap
+               bool "Use libcap - Linux capabilities library"
+               default n
+
+       config SQUID_with-nettle
+               bool "Use nettle - GNU crypto library"
+               default n
+
+       config SQUID_with-expat
+               bool "Use expat - XML parsing library"
+               default n
+
+       config SQUID_with-libxml2
+               bool "Use libxml2 - Gnome XML library"
+               default n
+
+       comment "Additional tools"
+
+endif
+
index b9cedd7eaebb6d6d9fdf5cc2b3387c59cdc5e3fc..fcecb114ab6d93aff8ec16f13bd14f5b3b525452 100644 (file)
@@ -8,17 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=squid
-PKG_VERSION:=3.5.27
+PKG_VERSION:=4.0.24
 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://www3.us.squid-cache.org/Versions/v3/3.5/ \
-       http://www2.pl.squid-cache.org/Versions/v3/3.5/ \
-       http://www.squid-cache.org/Versions/v3/3.5/
-PKG_HASH:=5ddb4367f2dc635921f9ca7a59d8b87edb0412fa203d1543393ac3c7f9fef0ec
+PKG_SOURCE_URL:=http://www3.us.squid-cache.org/Versions/v4/ \
+       http://www2.pl.squid-cache.org/Versions/v4/ \
+       http://www.squid-cache.org/Versions/v4/
+PKG_HASH:=091da0d763307dcc0f5c784ab07ea0c5a093f6dfac60f17ff26e2a6d50f76a07
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -30,12 +30,18 @@ define Package/squid/Default
   CATEGORY:=Network
   SUBMENU:=Web Servers/Proxies
   URL:=http://www.squid-cache.org/
-  MENU:=1
 endef
 
 define Package/squid
   $(call Package/squid/Default)
-  DEPENDS:=+libopenssl +libpthread +librt +libltdl +libstdcpp
+  MENU:=1
+  DEPENDS:=+libpthread +librt +libltdl +libstdcpp +libatomic +USE_GLIBC:libbsd
+  DEPENDS+= +SQUID_use-gnutls:libgnutls +!SQUID_use-gnutls:libopenssl
+  DEPENDS+= +SQUID_with-libcap:libcap
+  DEPENDS+= +SQUID_with-nettle:libnettle
+  DEPENDS+= +SQUID_with-expat:libexpat
+  DEPENDS+= +SQUID_with-libxml2:libxml2
+  USERID:=squid=137:squid=137
   TITLE:=full-featured Web proxy cache
 endef
 
@@ -45,6 +51,14 @@ define Package/squid/description
   frequently-requested web pages.
 endef
 
+define Package/squid/config
+  source "$(SOURCE)/Config.in"
+endef
+
+define Package/squid/conffiles
+  /etc/squid/squid.conf
+endef
+
 define Package/squid-mod-cachemgr
   $(call Package/squid/Default)
   DEPENDS:=squid
@@ -58,13 +72,9 @@ CONFIGURE_ARGS += \
        --sysconfdir=/etc/squid \
        --enable-shared \
        --disable-static \
-       --enable-icmp \
        --enable-delay-pools \
-       --enable-icap-client \
        --enable-kill-parent-hack \
-       --disable-snmp \
        --enable-ssl \
-       --enable-ssl-crtd \
        --enable-cache-digests \
        --enable-linux-netfilter \
        --disable-unlinkd \
@@ -73,28 +83,36 @@ CONFIGURE_ARGS += \
        --disable-auto-locale \
        --with-dl \
        --with-pthreads \
-       --without-expat \
-       --without-libxml2 \
-       --without-gnutls \
-       --without-nettle \
-       --with-openssl=$(STAGING_DIR)/usr \
        --enable-epoll \
-       --with-maxfd=4096 \
+       --with-maxfd=2048 \
+       --disable-ecap \
        --disable-external-acl-helpers \
-       --disable-auth-negotiate \
-       --disable-auth-ntlm \
-       --disable-auth-digest \
-       --disable-auth-basic \
        --disable-arch-native \
        --with-krb5-config=no \
        --without-mit-krb5 \
-       --without-libcap \
-       --without-netfilter-conntrack
+       --without-netfilter-conntrack \
+       --disable-ident-lookups \
+       $(if $(CONFIG_SQUID_auth-basic),--enable,--disable)-auth-basic \
+       $(if $(CONFIG_SQUID_auth-digest),--enable,--disable)-auth-digest \
+       $(if $(CONFIG_SQUID_auth-ntlm),--enable,--disable)-auth-ntlm \
+       $(if $(CONFIG_SQUID_auth-negotiate),--enable,--disable)-auth-negotiate \
+       $(if $(CONFIG_SQUID_enable-ipv6),--enable,--disable)-dlmalloc \
+       $(if $(CONFIG_SQUID_enable-ipv6),--enable,--disable)-ipv6 \
+       $(if $(CONFIG_SQUID_enable-ssl-crtd),--enable-ssl-crtd) \
+       $(if $(CONFIG_SQUID_use-gnutls),--with,--without)-gnutls \
+       $(if $(CONFIG_SQUID_use-gnutls),--without-openssl) \
+       $(if $(CONFIG_SQUID_use-gnutls),,--with-openssl="$(STAGING_DIR)/usr") \
+       $(if $(CONFIG_SQUID_enable-icmp),--enable,--disable)-icmp \
+       $(if $(CONFIG_SQUID_enable-icap-client),--enable,--disable)-icap-client \
+       $(if $(CONFIG_SQUID_enable-snmp),--enable,--disable)-snmp \
+       $(if $(CONFIG_SQUID_with-libcap),--with,--without)-libcap \
+       $(if $(CONFIG_SQUID_with-nettle),--with,--without)-nettle \
+       $(if $(CONFIG_SQUID_with-expat),--with,--without)-expat \
+       $(if $(CONFIG_SQUID_with-libxml2),--with,--without)-libxml2
 
 CONFIGURE_VARS += \
        ac_cv_header_linux_netfilter_ipv4_h=yes \
-       ac_cv_epoll_works=yes \
-       squid_cv_gnu_atomics=no
+       ac_cv_epoll_works=yes
 
 define Build/Compile
        +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/lib all
@@ -108,13 +126,13 @@ define Package/squid/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/squid $(1)/usr/sbin/
 
        $(INSTALL_DIR) $(1)/usr/lib/squid
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/squid/ssl_crtd $(1)/usr/lib/squid
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/squid/* $(1)/usr/lib/squid/
 
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/squid.config $(1)/etc/config/squid
 
        $(INSTALL_DIR) $(1)/etc/squid
-       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/squid/mime.conf $(1)/etc/squid/
+       $(CP) $(PKG_INSTALL_DIR)/etc/squid/* $(1)/etc/squid/
        $(INSTALL_CONF) ./files/squid.conf $(1)/etc/squid/
 
        $(INSTALL_DIR) $(1)/etc/init.d/
@@ -122,6 +140,7 @@ define Package/squid/install
 
        $(INSTALL_DIR) $(1)/usr/share/squid/icons/
        $(CP) $(PKG_INSTALL_DIR)/usr/share/squid/icons/* $(1)/usr/share/squid/icons/
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/squid/mib.txt $(1)/usr/share/squid/
 
        $(INSTALL_DIR) $(1)/usr/share/squid/errors/templates/
        $(CP) $(PKG_INSTALL_DIR)/usr/share/squid/errors/templates/* $(1)/usr/share/squid/errors/templates/
index 9535c1d6d24e3437c47604f202c63a670deef55e..81de1da27f8accf352a4d948ccff2c64ad80afaa 100644 (file)
@@ -1,44 +1,80 @@
-acl localnet src 10.0.0.0/8
-acl localnet src 172.16.0.0/12
-acl localnet src 192.168.0.0/16
-acl localnet src fc00::/7
-acl localnet src fe80::/10
-
-acl ssl_ports port 443
-
-acl safe_ports port 80
-acl safe_ports port 21
-acl safe_ports port 443
-acl safe_ports port 70
-acl safe_ports port 210
-acl safe_ports port 1025-65535
-acl safe_ports port 280
-acl safe_ports port 488
-acl safe_ports port 591
-acl safe_ports port 777
-acl connect method connect
-
-http_access deny !safe_ports
-http_access deny connect !ssl_ports
+#
+# Recommended minimum configuration:
+#
 
+# Example rule allowing access from your local networks.
+# Adapt to list your (internal) IP networks from where browsing
+# should be allowed
+acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
+acl localnet src 10.0.0.0/8            # RFC 1918 local private network (LAN)
+acl localnet src 100.64.0.0/10         # RFC 6598 shared address space (CGN)
+acl localhet src 169.254.0.0/16        # RFC 3927 link-local (directly plugged) machines
+acl localnet src 172.16.0.0/12         # RFC 1918 local private network (LAN)
+acl localnet src 192.168.0.0/16                # RFC 1918 local private network (LAN)
+acl localnet src fc00::/7              # RFC 4193 local private network range
+acl localnet src fe80::/10             # RFC 4291 link-local (directly plugged) machines
+
+acl SSL_ports port 443
+acl Safe_ports port 80         # http
+acl Safe_ports port 21         # ftp
+acl Safe_ports port 443                # https
+acl Safe_ports port 70         # gopher
+acl Safe_ports port 210                # wais
+acl Safe_ports port 1025-65535 # unregistered ports
+acl Safe_ports port 280                # http-mgmt
+acl Safe_ports port 488                # gss-http
+acl Safe_ports port 591                # filemaker
+acl Safe_ports port 777                # multiling http
+acl CONNECT method CONNECT
+
+#
+# Recommended minimum Access Permission configuration:
+#
+# Deny requests to certain unsafe ports
+http_access deny !Safe_ports
+
+# Deny CONNECT to other than secure SSL ports
+http_access deny CONNECT !SSL_ports
+
+# Only allow cachemgr access from localhost
 http_access allow localhost manager
 http_access deny manager
 
-http_access deny to_localhost
+# We strongly recommend the following be uncommented to protect innocent
+# web applications running on the proxy server who think the only
+# one who can access services on "localhost" is a local user
+#http_access deny to_localhost
 
+#
+# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
+#
+
+# Example rule allowing access from your local networks.
+# Adapt localnet in the ACL section to list your (internal) IP networks
+# from where browsing should be allowed
 http_access allow localnet
 http_access allow localhost
 
+# And finally deny all other access to this proxy
 http_access deny all
 
-refresh_pattern ^ftp: 1440 20% 10080
-refresh_pattern ^gopher: 1440 0% 1440
-refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
-refresh_pattern . 0 20% 4320
+# Uncomment and adjust the following to add a disk cache directory.
+#cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256
+
+#
+# Add any of your own refresh_pattern entries above these.
+#
+refresh_pattern ^ftp:          1440    20%     10080
+refresh_pattern ^gopher:       1440    0%      1440
+refresh_pattern -i (/cgi-bin/|\?) 0    0%      0
+refresh_pattern .              0       20%     4320
+
+# Squid user
+cache_effective_user squid
 
-access_log none
-cache_log /dev/null
-cache_store_log stdio:/dev/null
-logfile_rotate 0
+#
+# Logs, best to use only for debugging as they can become very large
+#
 
-logfile_daemon /dev/null
+access_log none  # daemon:/tmp/squid_access.log
+cache_log /dev/null  # /tmp/squid_cache.log
index 711347ba5811b5ae63c8d9000cad4ca0de975a45..ed5a096236c204ca968b913b4ef4f6922e64a033 100644 (file)
@@ -22,6 +22,11 @@ validate_squid_section() {
                'mime_table:string:/etc/squid/mime.conf'
 }
 
+create_squid_user() {
+       user_exists squid || user_add squid $USERID
+       group_exists squid || group_add squid $USERID && group_add_user squid squid
+}
+
 start_service() {
        local config_file http_port http_port_options ssldb ssldb_options coredump_dir visible_hostname pinger_enable
 
@@ -33,7 +38,7 @@ start_service() {
        config_dir=$(dirname $CONFIGFILE)
        [ -d $config_dir ] || mkdir -p $config_dir && chown nobody:nogroup $config_dir
        [ -d $coredump_dir ] || mkdir -p $coredump_dir && chown nobody:nogroup $coredump_dir
-       [ "$ssldb" ] && ( [ -f "$ssldb"/size ] || /usr/lib/squid/ssl_crtd -c -s $ssldb && chown -R nobody:nogroup $ssldb )
+       [ "$ssldb" ] && ( [ -f "$ssldb"/size ] || /usr/lib/squid/security_file_certgen -c -s $ssldb $ssldb_options && chown -R nobody:nogroup $ssldb )
 
        cat $config_file > $CONFIGFILE
        echo http_port $http_port $http_port_options >> $CONFIGFILE
@@ -42,7 +47,7 @@ start_service() {
        echo pinger_enable $pinger_enable >> $CONFIGFILE
        cat $mime_table > $MIMETABLE
        echo mime_table $MIMETABLE >> $CONFIGFILE
-       [ "$ssldb" ] && echo sslcrtd_program /usr/lib/squid/ssl_crtd -s $ssldb $ssldb_options >> $CONFIGFILE
+       [ "$ssldb" ] && echo sslcrtd_program /usr/lib/squid/security_file_certgen -s $ssldb $ssldb_options >> $CONFIGFILE
        $PROG -s -f $CONFIGFILE -N -z 2>/dev/null
 
        procd_open_instance
index be9fdcd25dc4283934654cd9abf5b2488b15a84f..0eb83e602a057f1e9c435f6294b0f9948310d79d 100644 (file)
@@ -1,40 +1,24 @@
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -7984,7 +7984,7 @@ cache_cf.o: cf_parser.cci
+From fac6f63a52a2f4cbb3748cd5687eca5409093904 Mon Sep 17 00:00:00 2001
+From: Marko Ratkaj <marko.ratkaj@sartura.hr>
+Date: Thu, 20 Apr 2017 15:15:50 +0200
+Subject: [PATCH] foo
+
+Signed-off-by: Marko Ratkaj <marko.ratkaj@sartura.hr>
+---
+ src/Makefile.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: squid-4.0.21/src/Makefile.in
+===================================================================
+--- squid-4.0.21.orig/src/Makefile.in
++++ squid-4.0.21/src/Makefile.in
+@@ -7642,7 +7642,8 @@ cache_cf.o: cf_parser.cci
  
  # cf_gen builds the configuration files.
  cf_gen$(EXEEXT): $(cf_gen_SOURCES) $(cf_gen_DEPENDENCIES) cf_gen_defines.cci
 -      $(BUILDCXX) $(BUILDCXXFLAGS) -o $@ $(srcdir)/cf_gen.cc -I$(srcdir) -I$(top_builddir)/include/ -I$(top_builddir)/src
 +      g++ -o $@ $(srcdir)/cf_gen.cc -I$(srcdir) -I$(top_builddir)/include/ -I$(top_builddir)/src
++
  
  # squid.conf.default is built by cf_gen when making cf_parser.cci
  squid.conf.default squid.conf.documented: cf_parser.cci
---- a/configure
-+++ b/configure
-@@ -20842,7 +20842,7 @@ else
- if test "$cross_compiling" = yes; then :
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
-+_as_fn_error $? "cannot run test program while cross compiling
- See \`config.log' for more details" "$LINENO" 5; }
- else
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -29142,7 +29142,7 @@ else
-     if test "$cross_compiling" = yes; then :
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
-+_as_fn_error $? "cannot run test program while cross compiling
- See \`config.log' for more details" "$LINENO" 5; }
- else
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -29167,7 +29167,7 @@ else
-     if test "$cross_compiling" = yes; then :
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
-+_as_fn_error $? "cannot run test program while cross compiling
- See \`config.log' for more details" "$LINENO" 5; }
- else
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
diff --git a/net/squid/patches/002-glibc-compile.patch b/net/squid/patches/002-glibc-compile.patch
new file mode 100644 (file)
index 0000000..d930bdf
--- /dev/null
@@ -0,0 +1,12 @@
+--- squid-4.0.21.orig/src/tools.cc
++++ squid-4.0.21/src/tools.cc
+@@ -581,7 +581,8 @@
+     }
+ #else
+-    setuid(0);
++    if (setuid(0) < 0)
++      debugs(50, 1, "no_suid: setuid (0)");
+ #endif
+ #if HAVE_PRCTL && defined(PR_SET_DUMPABLE)
+     /* Set Linux DUMPABLE flag */
index 267abcda800ba310d74fcf4846575ec42507fcd4..a3b701166e6b8f711b06262f893625cc535eb871 100644 (file)
@@ -11,12 +11,12 @@ PKG_LICENSE:=ASL-2.0
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 
 PKG_NAME:=sysrepo
-PKG_VERSION:=0.7.3
+PKG_VERSION:=0.7.4
 PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=91e65c6f7d8826197b2806ab6d5466d16882b07f
-PKG_MIRROR_HASH:=1662c158d5eac3e6c9f400517bd02b1967632f3d8b3516523da669bbd1c28c4
+PKG_SOURCE_VERSION:=724a62fa830df7fcb2736b1ec41b320abe5064d2
+PKG_MIRROR_HASH:=19b864c52a35fd71398b2c965f87c37901a7056a2afd6b740105a5235bd459b1
 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_VERSION)-$(PKG_SOURCE_VERSION)
@@ -128,7 +128,7 @@ define Package/libsysrepo/install
 
        $(INSTALL_DIR) $(1)/etc/sysrepo/yang
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf-acm@2012-02-22.yang $(1)/etc/sysrepo/yang/ietf-netconf-acm@2012-02-22.yang
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf-notifications.yang $(1)/etc/sysrepo/yang/ietf-netconf-notifications@2012-02-06..yang
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf-notifications.yang $(1)/etc/sysrepo/yang/ietf-netconf-notifications@2012-02-06.yang
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/nc-notifications.yang $(1)/etc/sysrepo/yang/nc-notifications@2008-07-14.yang
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/notifications.yang $(1)/etc/sysrepo/yang/notifications@2008-07-14.yang
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf@2011-06-01.yang $(1)/etc/sysrepo/yang/ietf-netconf@2011-06-01.yang
index 35b56f67de51e7b4e9f0c1567ee82eda7cae8fe9..274a6c06642b9762f6466cbb4c22bfd35959e095 100644 (file)
@@ -3,30 +3,36 @@
 # Warning, problems can occur if the device restarts in the middle of this uci-default script
 
 if [ -x /bin/sysrepoctl ]; then
-       match=$(sysrepoctl -l | grep "ietf-netconf-acm ")
+       match=$(sysrepoctl -l | grep "notifications ")
        if [ ! "$match" ]; then
-               sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-acm@2012-02-22.yang -p 644
+               sysrepoctl --install --yang=/etc/sysrepo/yang/notifications@2008-07-14.yang -p 666
        fi
 
-       match=$(sysrepoctl -l | grep "ietf-netconf-notifications ")
+       match=$(sysrepoctl -l | grep "nc-notifications ")
        if [ ! "$match" ]; then
-               sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-notifications@2012-02-06..yang -p 600
+               sysrepoctl --install --yang=/etc/sysrepo/yang/nc-notifications@2008-07-14.yang -p 666
        fi
 
-       match=$(sysrepoctl -l | grep "nc-notifications ")
+       match=$(sysrepoctl -l | grep "ietf-netconf-acm ")
        if [ ! "$match" ]; then
-               sysrepoctl --install --yang=/etc/sysrepo/yang/nc-notifications@2008-07-14.yang -p 666
+               sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-acm@2012-02-22.yang -p 644
        fi
 
-       match=$(sysrepoctl -l | grep "notifications ")
+       match=$(sysrepoctl -l | grep "ietf-netconf-notifications ")
        if [ ! "$match" ]; then
-               sysrepoctl --install --yang=/etc/sysrepo/yang/notifications@2008-07-14.yang -p 666
+               sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-notifications@2012-02-06.yang -p 600
        fi
 
        match=$(sysrepoctl -l | grep "ietf-netconf ")
        if [ ! "$match" ]; then
                sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf@2011-06-01.yang -p 600
        fi
+       sysrepoctl -m ietf-netconf -e writable-running
+       sysrepoctl -m ietf-netconf -e candidate
+       sysrepoctl -m ietf-netconf -e rollback-on-error
+       sysrepoctl -m ietf-netconf -e validate
+       sysrepoctl -m ietf-netconf -e startup
+       sysrepoctl -m ietf-netconf -e xpath
 fi
 
 exit 0
index d8857affa23a21660a21e3de25fe13aeb774d0a6..b582c5f5fb80352cb4c7137780b80a5395394595 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tcpreplay
-PKG_VERSION:=4.2.5
+PKG_VERSION:=4.2.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/appneta/tcpreplay/releases/download/v$(PKG_VERSION)
-PKG_HASH:=941026be34e1db5101d3d22ebddd6fff76179a1ee81e273338f533ba4eca89d7
+PKG_HASH:=043756c532dab93e2be33a517ef46b1341f7239278a1045ae670041dd8a4531d
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=docs/LICENSE
index dcc3a073a3816da2e2c232cb9deadb31a4ff9673..33d7beae44704a23995c2d353ae10f9184216352 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tinc
-PKG_VERSION:=1.0.33
+PKG_VERSION:=1.0.34
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.tinc-vpn.org/packages
-PKG_HASH:=7f6f5dc6444bc651ac635c81f4745bcce581bbd1d45ed60cbdc4ee11bebb10f4
+PKG_HASH:=c03a9b61dedd452116dd9a8db231545ba08a7c96bce011e0cbd3cfd2c56dcfda
 
 PKG_INSTALL:=1
 
index 6229132f94ce60db27b093bf8cdb89e56f5e0a82..6ef72ddb1c5434a3c6f1d6ef24cb379a66a2f47b 100644 (file)
@@ -8,14 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tor
-PKG_VERSION:=0.3.2.10
+PKG_VERSION:=0.3.3.7
 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:=60df77c31dcf94fdd686c8ca8c34f3b70243b33a7344ecc0b719d5ca2617cbee
-PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
+PKG_HASH:=ea6bb512c4adfbc4e05b22e4c2d06bddff5b358a53de982273fec846b75bde0c
+PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de> \
+               Peter Wagner <tripolar@gmx.at>
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_INSTALL:=1
index 78d4ee978dcd1dc9362a1b65a5655fd0bdc0337e..2aed4b02d12978bf934333a623d79c4dd295b849 100644 (file)
@@ -18,7 +18,7 @@
  
  ## The port on which Tor will listen for local connections from Tor
  ## controller applications, as documented in control-spec.txt.
-@@ -227,3 +227,4 @@
+@@ -233,3 +233,4 @@
  #%include /etc/torrc.d/
  #%include /etc/torrc.custom
  
index 57a3437cfba4131924769abb2c67479e28cd825a..797ab946bdfcaffb8d8369e5e147f3cb4ceb0bb6 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=u2pnpd
-PKG_VERSION:=0.3
+PKG_VERSION:=0.4
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/mhei/u2pnpd/releases/download/v$(PKG_VERSION)
-PKG_HASH:=73010be7ec523e3c3a9849a9783026627ecb3bc18d8195a9bed450e98a055ac2
+PKG_HASH:=4f1c98655fd75ca5d760155490f5331656f39f96bc7ea5a7bf75311848df7e2a
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
index ef7b3914d6af1a74090521eb3444c321530013a9..f8e5ea22bcf7fd48bbc68686f688a29e2d26e44a 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uanytun
-PKG_VERSION:=0.3.5
-PKG_RELEASE:=2
+PKG_VERSION:=0.3.7
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.anytun.org/download/
-PKG_HASH:=8edeed2ce185cc1add8a53de9f9192dfa65a48b559cccae6393faf2a1cd6f093
+PKG_HASH:=076318c771c908386c4408dda0769171542da701785302903641ce23fd33a295
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Christian Pointner <equinox@spreadspace.org>
 PKG_LICENSE:=GPL-3.0+
@@ -101,8 +101,7 @@ define Build/Configure
     echo '#ifndef UANYTUN_version_h_INCLUDED' > version.h; \
     echo '#define UANYTUN_version_h_INCLUDED' >> version.h; \
     echo '' >> version.h; \
-    echo '#define VERSION_STRING_0 "uanytun version '`cat $(PKG_BUILD_DIR)/version`'"' >> version.h; \
-    echo '#define VERSION_STRING_1 "built on '`hostname`', '`date +"%d.%m.%Y %H:%M:%S %Z"`'"' >> version.h; \
+    echo '#define VERSION_STRING "uanytun version '`cat $(PKG_BUILD_DIR)/version`'"' >> version.h; \
     echo '' >> version.h; \
     echo '#endif' >> version.h \
   )
@@ -113,22 +112,22 @@ VARIANT_LDFLAGS:=-ldl
 VARIANT_MAKE_OPTS:=
 
 ifeq ($(BUILD_VARIANT),gcrypt)
-VARIANT_CFLAGS+=-DUSE_GCRYPT
+VARIANT_CFLAGS+=-DUSE_GCRYPT -DCRYPTO_LIB_NAME=\\\"libgcrypt\\\"
 VARIANT_LDFLAGS+=-lgpg-error -lgcrypt
 endif
 
 ifeq ($(BUILD_VARIANT),nettle)
-VARIANT_CFLAGS+=-DUSE_NETTLE
+VARIANT_CFLAGS+=-DUSE_NETTLE -DCRYPTO_LIB_NAME=\\\"Nettle\\\"
 VARIANT_LDFLAGS+=-lnettle
 endif
 
 ifeq ($(BUILD_VARIANT),sslcrypt)
-VARIANT_CFLAGS+=-DUSE_SSL_CRYPTO
+VARIANT_CFLAGS+=-DUSE_SSL_CRYPTO -DCRYPTO_LIB_NAME=\\\"OpenSSL\\\"
 VARIANT_LDFLAGS+=-lcrypto
 endif
 
 ifeq ($(BUILD_VARIANT),nocrypt)
-VARIANT_CFLAGS+=-DNO_CRYPT
+VARIANT_CFLAGS+=-DNO_CRYPT -DCRYPTO_LIB_NAME=\\\"none\\\"
 VARIANT_MAKE_OPTS+=NO_CRYPT_OBJ=1
 endif
 
diff --git a/net/uanytun/patches/100-reproducible-builds.patch b/net/uanytun/patches/100-reproducible-builds.patch
deleted file mode 100644 (file)
index a5aa864..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: uanytun-0.3.5/src/options.c
-===================================================================
---- uanytun-0.3.5.orig/src/options.c
-+++ uanytun-0.3.5/src/options.c
-@@ -481,7 +481,6 @@ void options_print_usage()
- void options_print_version()
- {
-   printf("%s\n", VERSION_STRING_0);
--  printf("%s\n", VERSION_STRING_1);
- }
- void options_print(options_t* opt)
index f82d57bf2b799221eead771cb16d0decf208e50b..201f05f25456a94f1c4de5f28b9ef07c7c70e0cc 100644 (file)
@@ -8,15 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ulogd
-PKG_VERSION:=2.0.5
-PKG_RELEASE:=2
+PKG_VERSION:=2.0.7
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=ftp://ftp.netfilter.org/pub/ulogd/ \
-       ftp://ftp.be.netfilter.org/pub/netfilter/ulogd/ \
-       ftp://ftp.de.netfilter.org/pub/netfilter/ulogd/ \
-       ftp://ftp.no.netfilter.org/pub/netfilter/ulogd/
-PKG_HASH:=a221cb9f77347c0ca00d0937e27c1b90e3291a553cc62a4139b788e2e420e8c0
+PKG_SOURCE_URL:=https://netfilter.org/projects/ulogd/files/ \
+       ftp://ftp.netfilter.org/pub/ulogd/
+PKG_HASH:=990a05494d9c16029ba0a83f3b7294fc05c756546b8d60d1c1572dc25249a92b
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
@@ -141,7 +139,9 @@ else
 endif
 
 ifneq ($(DEVELOPER)$(SDK)$(CONFIG_PACKAGE_ulogd-mod-mysql),)
-       CONFIGURE_ARGS += --with-mysql="$(STAGING_DIR)/usr"
+       CONFIGURE_ARGS += \
+               --with-mysql-inc=$(STAGING_DIR)/usr/include/mysql \
+               --with-mysql-lib=$(STAGING_DIR)/usr/lib/mysql
 else
        CONFIGURE_ARGS += --without-mysql
 endif
diff --git a/net/ulogd/patches/100-musl-compat.patch b/net/ulogd/patches/100-musl-compat.patch
deleted file mode 100644 (file)
index 2f1c293..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
---- a/src/ulogd.c
-+++ b/src/ulogd.c
-@@ -83,7 +83,7 @@ static char *ulogd_logfile = NULL;
- static const char *ulogd_configfile = ULOGD_CONFIGFILE;
- static const char *ulogd_pidfile = NULL;
- static int ulogd_pidfile_fd = -1;
--static FILE syslog_dummy;
-+static int ulogd_use_syslog = 0;
- static int info_mode = 0;
-@@ -427,7 +427,7 @@ void __ulogd_log(int level, char *file,
-       if (level < loglevel_ce.u.value)
-               return;
--      if (logfile == &syslog_dummy) {
-+      if (ulogd_use_syslog) {
-               /* FIXME: this omits the 'file' string */
-               va_start(ap, format);
-               vsyslog(ulogd2syslog_level(level), format, ap);
-@@ -950,7 +950,7 @@ static int logfile_open(const char *name
-               logfile = stdout;
-       } else if (!strcmp(name, "syslog")) {
-               openlog("ulogd", LOG_PID, LOG_DAEMON);
--              logfile = &syslog_dummy;
-+              ulogd_use_syslog = 1;
-       } else {
-               logfile = fopen(ulogd_logfile, "a");
-               if (!logfile) {
-@@ -1240,7 +1240,7 @@ static void sigterm_handler(int signal)
-       unload_plugins();
- #endif
--      if (logfile != NULL  && logfile != stdout && logfile != &syslog_dummy) {
-+      if (logfile != NULL  && logfile != stdout) {
-               fclose(logfile);
-               logfile = NULL;
-       }
-@@ -1262,7 +1262,7 @@ static void signal_handler(int signal)
-       switch (signal) {
-       case SIGHUP:
-               /* reopen logfile */
--              if (logfile != stdout && logfile != &syslog_dummy) {
-+              if (logfile != NULL && logfile != stdout) {
-                       fclose(logfile);
-                       logfile = fopen(ulogd_logfile, "a");
-                       if (!logfile) {
---- a/filter/raw2packet/ulogd_raw2packet_BASE.c
-+++ b/filter/raw2packet/ulogd_raw2packet_BASE.c
-@@ -42,6 +42,7 @@
- #include <ulogd/ulogd.h>
- #include <ulogd/ipfix_protocol.h>
- #include <netinet/if_ether.h>
-+#include <linux/types.h>
- #include <string.h>
- enum input_keys {
diff --git a/net/ulogd/patches/101-ulogd-use-strncpy-instead-of-memcpy.patch b/net/ulogd/patches/101-ulogd-use-strncpy-instead-of-memcpy.patch
deleted file mode 100644 (file)
index 3671a95..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From e0c75c9d20b76ff3d496a776ce43341c752914c3 Mon Sep 17 00:00:00 2001
-From: Eric Leblond <eric@regit.org>
-Date: Tue, 21 Mar 2017 21:49:46 +0100
-Subject: [PATCH] ulogd: use strncpy instead of memcpy
-
-On some architecture, ulogd is not starting due to a
-crash in memcpy. This patch switches to strncpy to
-avoid the problem.
-
-Reported-by: Alexandru Ardelean <ardeleanalex@gmail.com>
-Signed-off-by: Eric Leblond <eric@regit.org>
----
- src/ulogd.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/ulogd.c b/src/ulogd.c
-index 5b9a586..919a317 100644
---- a/src/ulogd.c
-+++ b/src/ulogd.c
-@@ -668,7 +668,7 @@ pluginstance_alloc_init(struct ulogd_plugin *pl, char *pi_id,
-       INIT_LLIST_HEAD(&pi->plist);
-       pi->plugin = pl;
-       pi->stack = stack;
--      memcpy(pi->id, pi_id, sizeof(pi->id));
-+      strncpy(pi->id, pi_id, ULOGD_MAX_KEYLEN);
-       ptr = (void *)pi + sizeof(*pi);
--- 
-2.7.4
-
index a7ba1c5ae933703c25b4c2de7fa658d38220fe2f..19d85b3aeffd2fc521863d88781829168a9ffb0b 100644 (file)
@@ -5,15 +5,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=umurmur
-PKG_VERSION:=0.2.16-20161126
+PKG_VERSION:=0.2.17
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MIRROR_HASH:=d41db898c826077735d48ec1d1ff9ed200d6520f46ae3dbb0a89dfaad49310cd
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/umurmur/umurmur.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=fac630135664fda26338d403041b6b6e558a2d6b
-PKG_MIRROR_HASH:=6773aebea9aea355a41425e946291bb47bc399f85483bd6532cf26dfc7c801e5
+PKG_SOURCE_VERSION:=c4f6b1f6d27f7d7a556d30aedee73a675b5a6c48
 
 PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
diff --git a/net/umurmur/patches/0001-Update-openssl-1.1-deprecated-API.patch b/net/umurmur/patches/0001-Update-openssl-1.1-deprecated-API.patch
new file mode 100644 (file)
index 0000000..9ccfdb7
--- /dev/null
@@ -0,0 +1,103 @@
+From 45a0a33aea1878c467c380562d6e38b3e4c713a9 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Fri, 8 Jun 2018 11:59:04 -0300
+Subject: [PATCH] Update openssl 1.1 deprecated API
+
+Allows building with openssl 1.1 compiled without deprecated API support.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+---
+ src/ssli_openssl.c | 27 ++++++++++++++++++++++++---
+ 1 file changed, 24 insertions(+), 3 deletions(-)
+
+diff --git a/src/ssli_openssl.c b/src/ssli_openssl.c
+index 8ff1bcf..4f7979c 100644
+--- a/src/ssli_openssl.c
++++ b/src/ssli_openssl.c
+@@ -42,6 +42,8 @@
+ #include <openssl/x509v3.h>
+ #include <openssl/ssl.h>
++#include <openssl/rsa.h>
++#include <openssl/bn.h>
+ #include <openssl/err.h>
+ #include <openssl/safestack.h>
+ static X509 *x509;
+@@ -159,6 +161,7 @@ static void SSL_initializeCert() {
+       char *crt = (char *)getStrConf(CERTIFICATE);
+       char *key = (char *)getStrConf(KEY);
++      BIGNUM *e = NULL;
+       if (context) {
+               bool_t did_load_cert = SSL_CTX_use_certificate_chain_file(context, crt);
+@@ -172,13 +175,24 @@ static void SSL_initializeCert() {
+                       x509 = X509_new();
+                       pkey = EVP_PKEY_new();
+-                      rsa = RSA_generate_key(4096,RSA_F4,NULL,NULL);
++                      rsa = RSA_new();
++                      e = BN_new();
++                      if (x509 == NULL || pkey == NULL || rsa == NULL || e == NULL || !BN_set_word(e, RSA_F4) ||
++                          !RSA_generate_key_ex (rsa, 4096, e, NULL)) {
++                              Log_fatal("Failed to Generate RSA key.");
++                      }
++                      BN_free(e);
+                       EVP_PKEY_assign_RSA(pkey, rsa);
+                       X509_set_version(x509, 2);
+                       ASN1_INTEGER_set(X509_get_serialNumber(x509),1);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+                       X509_gmtime_adj(X509_get_notBefore(x509),0);
+                       X509_gmtime_adj(X509_get_notAfter(x509),60*60*24*365);
++#else
++                      X509_gmtime_adj(X509_getm_notBefore(x509),0);
++                      X509_gmtime_adj(X509_getm_notAfter(x509),60*60*24*365);
++#endif
+                       X509_set_pubkey(x509, pkey);
+                       X509_NAME *name=X509_get_subject_name(x509);
+@@ -214,9 +228,10 @@ void SSLi_init(void)
+       SSL *ssl;
+       int i, offset = 0, cipherstringlen = 0;
+       STACK_OF(SSL_CIPHER) *cipherlist = NULL, *cipherlist_new = NULL;
+-      SSL_CIPHER *cipher;
++      const SSL_CIPHER *cipher;
+       char *cipherstring;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       SSL_library_init();
+       OpenSSL_add_all_algorithms();
+       SSL_load_error_strings();
+@@ -225,13 +240,17 @@ void SSLi_init(void)
+       context = SSL_CTX_new(SSLv23_server_method());
+       SSL_CTX_set_options(context, SSL_OP_NO_SSLv2);
+       SSL_CTX_set_options(context, SSL_OP_NO_SSLv3);
+-      SSL_CTX_set_options(context, SSL_OP_CIPHER_SERVER_PREFERENCE);
++#else
++      context = SSL_CTX_new(TLS_server_method());
++      SSL_CTX_set_min_proto_version(context, TLS1_VERSION);
++#endif
+       if (context == NULL)
+       {
+               ERR_print_errors_fp(stderr);
+               abort();
+       }
++      SSL_CTX_set_options(context, SSL_OP_CIPHER_SERVER_PREFERENCE);
+       SSL_CTX_set_cipher_list(context, ciphers);
+       EC_KEY *ecdhkey = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
+@@ -290,7 +309,9 @@ void SSLi_init(void)
+ void SSLi_deinit(void)
+ {
+       SSL_CTX_free(context);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       EVP_cleanup();
++#endif
+ }
+ int SSLi_nonblockaccept(SSL_handle_t *ssl, bool_t *SSLready)
+-- 
+2.16.4
+
diff --git a/net/umurmur/patches/010-mbedtls_fix_includes.patch b/net/umurmur/patches/010-mbedtls_fix_includes.patch
deleted file mode 100644 (file)
index 619517f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/ssl.h
-+++ b/src/ssl.h
-@@ -90,7 +90,7 @@ typedef      ssl_context SSL_handle_t;
- #elif defined(USE_MBEDTLS)
- #include <mbedtls/ssl.h>
--#include <mbedtls/net.h>
-+#include <mbedtls/net_sockets.h>
- #include <mbedtls/version.h>
- #if defined(MBEDTLS_VERSION_MAJOR)
index a846ca699b8f28a0d6cdf291b526e63deda1c572..93856b2bdad729f0dd7b3ca51b2a9434dc58b759 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unbound
-PKG_VERSION:=1.7.1
-PKG_RELEASE:=3
+PKG_VERSION:=1.7.3
+PKG_RELEASE:=2
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Eric Luehrsen <ericluehrsen@hotmail.com>
+PKG_MAINTAINER:=Eric Luehrsen <ericluehrsen@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.unbound.net/downloads
-PKG_HASH:=56e085ef582c5372a20207de179d0edb4e541e59f87be7d4ee1d00d12008628d
+PKG_HASH:=c11de115d928a6b48b2165e0214402a7a7da313cd479203a7ce7a8b62cba602d
 
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
@@ -113,6 +113,8 @@ CONFIGURE_ARGS += \
        --disable-dsa \
        --disable-gost \
        --enable-allsymbols \
+       --enable-tfo-client \
+       --enable-tfo-server \
        --with-libexpat="$(STAGING_DIR)/usr" \
        --with-ssl="$(STAGING_DIR)/usr" \
        --with-pidfile=/var/run/unbound.pid \
index 4e81162f8a5902d31a8a6159c939f991f0519a52..0a8020be0a5df484d4e03e5f49351c2e35cdb24a 100644 (file)
@@ -4,21 +4,37 @@
 [Unbound](https://www.unbound.net/) is a validating, recursive, and caching DNS resolver. The C implementation of Unbound is developed and maintained by [NLnet Labs](https://www.nlnetlabs.nl/). It is based on ideas and algorithms taken from a java prototype developed by Verisign labs, Nominet, Kirei and ep.net. Unbound is designed as a set of modular components, so that also DNSSEC (secure DNS) validation and stub-resolvers (that do not run as a server, but are linked into an application) are easily possible.
 
 ## Package Overview
-Unbound may be useful on consumer grade embedded hardware. It is _intended_ to be a recursive resolver only. [NLnet Labs NSD](https://www.nlnetlabs.nl/projects/nsd/) is _intended_ for the authoritative task. This is different than [ISC Bind](https://www.isc.org/downloads/bind/) and its inclusive functions. Unbound configuration effort and memory consumption may be easier to control. A consumer could have their own recursive resolver with 8/64 MB router, and remove potential issues from forwarding resolvers outside of their control.
+OpenWrt default build uses [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html) for DNS forwarding and DHCP. With a forward only resolver, dependence on the upstream recursors may be cause for concern. They are often provided by the ISP, and some users have switched to public DNS providers. Either way may result in problems due to performance, "snoop-vertising", hijacking (MiM), and other causes. Running a recursive resolver or resolver capable of TLS may be a solution.
+
+Unbound may be useful on consumer grade embedded hardware. It is fully DNSSEC and TLS capable. It is _intended_ to be a recursive resolver only. [NLnet Labs NSD](https://www.nlnetlabs.nl/projects/nsd/) is _intended_ for the authoritative task. This is different than [ISC Bind](https://www.isc.org/downloads/bind/) and its inclusive functions. Unbound configuration effort and memory consumption may be easier to control. A consumer could have their own recursive resolver with 8/64 MB router, and remove potential issues from forwarding resolvers outside of their control.
 
 This package builds on Unbounds capabilities with OpenWrt UCI. Not every Unbound option is in UCI, but rather, UCI simplifies the combination of related options. Unbounds native options are bundled and balanced within a smaller set of choices. Options include resources, DNSSEC, access control, and some TTL tweaking. The UCI also provides an escape option and works at the raw "unbound.conf" level.
 
-## HOW TO Ad Blocking
-The UCI scripts will work with [net/adblock 2.3+](https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md), if it is installed and enabled. Its all detected and integrated automatically. In brief, the adblock scripts create distinct local-zone files that are simply included in the unbound conf file during UCI generation. If you don't want this, then disable adblock or reconfigure adblock to not send these files to Unbound.
+## HOW TO: Ad Blocking
+The UCI scripts will work with [net/adblock](https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md), if it is installed and enabled. Its all detected and integrated automatically. In brief, the adblock scripts create distinct local-zone files that are simply included in the unbound conf file during UCI generation. If you don't want this, then disable adblock or reconfigure adblock to not send these files to Unbound.
+
+A few tweaks may be needed to enhance the realiability and effectiveness. Ad Block option for delay time may need to be set for upto one minute (adb_triggerdelay), because of boot up race conditions with interfaces calling Unbound restarts. Also many smart devices (TV, microwave, or refigerator) will also use public DNS servers either as a bypass or for certain connections in general. If you wish to force exclusive DNS to your router, then you will need a firewall rule for example:
+
+**/etc/config/firewall**:
+```
+config rule
+       option name 'Block-Public-DNS'
+       option enabled '1'
+       option src 'lan'
+       option dest 'wan'
+       option dest_port '53 853 5353'
+       option proto 'tcpudp'
+       option family 'any'
+       option target 'REJECT'
+```
 
-## HOW TO Integrate with DHCP
+## HOW TO: Integrate with DHCP
 Some UCI options and scripts help Unbound to work with DHCP servers to load the local DNS. The examples provided here are serial dnsmasq-unbound, parallel dnsmasq-unbound, and unbound scripted with odhcpd.
 
 ### Serial dnsmasq
-In this case, dnsmasq is not changed *much* with respect to the default OpenWrt/LEDE configuration. Here dnsmasq is forced to use the local Unbound instance as the lone upstream DNS server, instead of your ISP. This may be the easiest implementation, but performance degradation can occur in high volume networks. dnsmasq and Unbound effectively have the same information in memory, and all transfers are double handled.
+In this case, dnsmasq is not changed *much* with respect to the default [OpenWrt configuration](https://openwrt.org/docs/guide-user/base-system/dns_configuration). Here dnsmasq is forced to use the local Unbound instance as the lone upstream DNS server, instead of your ISP. This may be the easiest implementation, but performance degradation can occur in high volume networks. dnsmasq and Unbound effectively have the same information in memory, and all transfers are double handled.
 
 **/etc/config/unbound**:
-
 ```
 config unbound
   option add_local_fqdn '0'
@@ -32,7 +48,6 @@ config unbound
 ```
 
 **/etc/config/dhcp**:
-
 ```
 config dnsmasq
   option domain 'yourdomain'
@@ -48,7 +63,6 @@ config dnsmasq
 In this case, Unbound serves your local network directly for all purposes. It will look over to dnsmasq for DHCP-DNS resolution. Unbound is generally accessible on port 53, and dnsmasq is only accessed at 127.0.0.1:1053 by Unbound. Although you can dig/drill/nslookup remotely with the proper directives.
 
 **/etc/config/unbound**:
-
 ```
 config unbound
   option dhcp_link 'dnsmasq'
@@ -57,7 +71,6 @@ config unbound
 ```
 
 **/etc/config/dhcp**:
-
 ```
 config dnsmasq
   option domain 'yourdomain'
@@ -73,7 +86,7 @@ config dhcp 'lan'
 ```
 
 ### Unbound and odhcpd
-You may ask, "can Unbound replace dnsmasq?" You can have DHCP-DNS records with Unbound and odhcpd only. The UCI scripts will allow Unbound to act like dnsmasq. When odhcpd configures each DHCP lease, it will call a script. The script provided with Unbound will read the lease file for DHCP-DNS records. The unbound-control application is required, because simply rewriting conf-files and restarting unbound is too much overhead.
+You may ask, "can Unbound replace dnsmasq?" You can have DHCP-DNS records with Unbound and [odhcpd](https://github.com/openwrt/odhcpd/blob/master/README) only. The UCI scripts will allow Unbound to act like dnsmasq. When odhcpd configures each DHCP lease, it will call a script. The script provided with Unbound will read the lease file for DHCP-DNS records. The unbound-control application is required, because simply rewriting conf-files and restarting unbound is too much overhead.
 - Default OpenWrt has dnsmasq+odhcpd with `odhcpd-ipv6only` limited to DHCPv6.
 - If you use dnsmasq+odhcpd together, then use dnsmasq serial or parallel methods above.
 - You must install package `odhcpd` (full) to use odhcpd alone.
@@ -81,7 +94,6 @@ You may ask, "can Unbound replace dnsmasq?" You can have DHCP-DNS records with U
 - Remember to uninstall (or disable) dnsmasq when you won't use it.
 
 **/etc/config/unbound**:
-
 ```
 config unbound
   # name your router in DNS
@@ -100,7 +112,6 @@ config unbound
 ```
 
 **/etc/config/dhcp**:
-
 ```
 config dhcp 'lan'
   option dhcpv4 'server'
@@ -119,7 +130,7 @@ config odhcpd 'odhcpd'
   option leasetrigger '/usr/lib/unbound/odhcpd.sh'
 ```
 
-## HOW TO Manual Override
+## HOW TO: Manual Override
 Yes, there is a UCI to disable the rest of Unbound UCI. However, OpenWrt or LEDE are targeted at embedded machines with flash ROM. The initialization scripts do a few things to protect flash ROM.
 
 ### Completely Manual (almost)
@@ -128,7 +139,6 @@ All of `/etc/unbound` (persistent, ROM) is copied to `/var/lib/unbound` (tmpfs,
 Keep the DNSKEY updated with your choice of flash activity. `root.key` maintenance for DNSKEY RFC5011 would be hard on flash. Unbound natively updates frequently. It also creates and destroys working files in the process. In `/var/lib/unbound` this is no problem, but it would be gone at the next reboot. If you have DNSSEC (validator) active, then you should consider the age UCI option. Choose how many days to copy from `/var/lib/unbound/root.key` (tmpfs) to `/etc/unbound/root.key` (flash).
 
 **/etc/config/unbound**:
-
 ```
 config unbound
   option manual_conf '1'
@@ -139,11 +149,29 @@ config unbound
 ### Hybrid Manual/UCI
 You like the UCI. Yet, you need to add some difficult to standardize options, or just are not ready to make a UCI request yet. The files `/etc/unbound/unbound_srv.conf` and `/etc/unbound/unbound_ext.conf` will be copied to Unbounds chroot directory and included during auto generation.
 
-The former will be added to the end of the `server:` clause. The later will be added to the end of the file for extended `forward:` and `view:` clauses. You can also disable unbound-control in the UCI which only allows "localhost" connections unencrypted, and then add an encrypted remote `control:` clause.
+The file `unbound_srv.conf` will be added into the `server:` clause. The file `unbound_ext.conf` will be added to the end of all configuration. It is for extended `forward-zone:`, `stub-zone:`, `auth-zone:`, and `view:` clauses. You can also disable unbound-control in the UCI which only allows "localhost" connections unencrypted, and then add an encrypted remote `control:` clause.
+
+#### DNS over TLS
+Some public servers are now offering DNS over TLS. Unbound supports acting as DNS over TLS forwarding client. You can use the override files to enable this funciton. Unbound will connect TLS without verifying keys unless you include the PEM path and install `ca-bundle` package. No connection or connection without verification will occur unless you use complete syntax with "@" and "#". See `forward-addr: 1.1.1.1@853#cloudflare-dns.com` for example. Unbound makes a new TLS connection for each query. You limit this effect using large resource and aggressive recursion setting (big cache and prefetching). You can also set memory and recursion to default and edit `unbound_srv.conf` to suit your needs. UCI improvements are in progress but not ready in OpenWrt 18.06.
+
+**/etc/unbound/unbound_srv.conf**:
+```
+  tls-service-pem: /etc/ssl/certs/ca-certificates.crt
+```
+
+**/etc/unbound/unbound_ext.conf**:
+```
+forward-zone:
+  name: .
+  forward-addr: 1.1.1.1@853#cloudflare-dns.com
+  forward-addr: 1.0.0.1@853#cloudflare-dns.com
+  forward-addr: 2606:4700:4700::1111@853#cloudflare-dns.com
+  forward-addr: 2606:4700:4700::1001@853#cloudflare-dns.com
+  forward-tls-upstream: yes
+```
 
 ## Complete List of UCI Options
 **/etc/config/unbound**:
-
 ```
 config unbound
   Currently only one instance is supported.
@@ -196,8 +224,11 @@ config unbound
 
   option domain_type 'static'
     Unbound local-zone: <domain> <type>. This allows you to lock
-    down or allow forwarding of your domain, your router host name
-    without suffix, and leakage of RFC6762 "local."
+    down or allow forwarding of the local zone. Notable types:
+    static - typical single router setup much like OpenWrt dnsmasq default
+    refuse - to answer overtly with DNS code REFUSED
+    deny - to drop queries for the local zone
+    transparent - to use your manually added forward-zone: or stub-zone: clause
 
   option edns_size '1280'
     Bytes. Extended DNS is necessary for DNSSEC. However, it can run
@@ -226,9 +257,9 @@ config unbound
     configuration. Make changes to /etc/unbound/unbound.conf.
 
   option prefetch_root '0'
-    Boolean. Enable Unbound authority zone clauses for "." (root), "arpa,"
-    "in-addr.arpa," and "ip6.arpa" and obtain complete zone files from public
-    servers using http or AXFR (gTLD are unfortunately not as public).
+    Boolean. Cache the entire root. Enable Unbound `auth-zone:` clauses for
+    "." (root), "arpa," "in-addr.arpa," and "ip6.arpa." Obtain complete zone
+    files from public servers using http or AXFR. (see RFC7706)
 
   option protocol 'mixed'
     Unbound can limit its protocol used for recursive queries.
@@ -325,4 +356,3 @@ config unbound
     triggers to LAN and WAN (IP4 only) to prevent restart @2-3 minutes.
 ```
 
-
index 1725242ec47d1e88026891975a2ce6e6776d13c8..9985f76d05aa93a707d5263a7b9692bf979e9c30 100644 (file)
@@ -138,3 +138,25 @@ private_subnet() {
 
 ##############################################################################
 
+domain_ptr_any() {
+  local subnet=$1
+  local arpa validip4 validip6
+
+  validip4=$( valid_subnet4 $subnet )
+  validip6=$( valid_subnet6 $subnet )
+
+
+  if [ "$validip4" = "ok" ] ; then
+    arpa=$( domain_ptr_ip4 "$subnet" )
+  elif [ "$validip6" = "ok" ] ; then
+    arpa=$( domain_ptr_ip6 "$subnet" )
+  fi
+
+
+  if [ -n "$arpa" ] ; then
+    echo $arpa
+  fi
+}
+
+##############################################################################
+
index 9c01dc6f6eee066c765b25db4cb2c0e5a41ed1e0..93efa73ad15a6870b3eed485013fb217e3944d12 100644 (file)
@@ -43,7 +43,9 @@ odhcpd_zonedata() {
   local dhcp_origin=$( uci_get dhcp.@odhcpd[0].leasefile )
 
 
-  if [ "$dhcp_link" = "odhcpd" -a -f "$dhcp_origin" ] ; then
+  if [ "$dhcp_link" = "odhcpd" \
+      -a -f "$dhcp_origin" \
+      -a -n "$dhcp_domain" ] ; then
     # Capture the lease file which could be changing often
     sort $dhcp_origin > $dhcp_ls_new
 
index ac0dd580653744b878755513b98ee8da6505cdcb..2f93b4d65096d994a9b5b097e55a7505df363dea 100755 (executable)
@@ -16,10 +16,6 @@ PROG=/usr/sbin/unbound
 
 ##############################################################################
 
-. /usr/lib/unbound/unbound.sh
-
-##############################################################################
-
 boot() {
   UNBOUND_BOOT=1
   start "$@"
@@ -34,10 +30,11 @@ start_service() {
   fi
 
   # complex UCI work
+  . /usr/lib/unbound/unbound.sh
   unbound_start
 
   # standard procd clause
-  procd_open_instance
+  procd_open_instance "unbound"
   procd_set_param command $PROG -d -c $UNBOUND_CONFFILE
   procd_set_param respawn
   procd_close_instance
@@ -46,6 +43,8 @@ start_service() {
 ##############################################################################
 
 stop_service() {
+  # clean up
+  . /usr/lib/unbound/unbound.sh
   unbound_stop
 
   # Wait! on restart Unbound may take time writing closure stats to syslog
index 2fda84e8690c8f806ae1522f4d195711a46474fb..a1f328e57befce58b0ef2fea2f5f8787cba5c551 100644 (file)
@@ -63,12 +63,18 @@ UNBOUND_TXT_HOSTNAME=thisrouter
 
 UNBOUND_LIST_FORWARD=""
 UNBOUND_LIST_INSECURE=""
-UNBOUND_LIST_PRV_SUBNET=""
 
 ##############################################################################
 
-# keep track of local-domain: assignments during inserted resource records
+# keep track of assignments during inserted resource records
 UNBOUND_LIST_DOMAINS=""
+UNBOUND_LIST_IFACE=""
+UNBOUND_LIST_PRV_IP6GLA=""
+UNBOUND_LIST_LAN_NET=""
+
+# Similar default SOA / NS RR as Unbound uses for private ARPA zones
+UNBOUND_XSOA="3600 IN SOA localhost. nobody.invalid. 1 3600 1200 7200 600"
+UNBOUND_XNS="3600 IN NS localhost."
 
 ##############################################################################
 
@@ -82,34 +88,13 @@ UNBOUND_LIST_DOMAINS=""
 
 ##############################################################################
 
-copy_dash_update() {
-  # TODO: remove this function and use builtins when this issues is resovled.
-  # Due to OpenWrt/LEDE divergence "cp -u" isn't yet universally available.
-  local filetime keeptime
-
-
-  if [ -f $UNBOUND_KEYFILE.keep ] ; then
-    # root.key.keep is reused if newest
-    filetime=$( date -r $UNBOUND_KEYFILE +%s )
-    keeptime=$( date -r $UNBOUND_KEYFILE.keep +%s )
-
-
-    if [ $keeptime -gt $filetime ] ; then
-      cp $UNBOUND_KEYFILE.keep $UNBOUND_KEYFILE
-    fi
-
-
-    rm -f $UNBOUND_KEYFILE.keep
-  fi
-}
-
-##############################################################################
-
 create_interface_dns() {
   local cfg="$1"
   local ipcommand logint ignore ifname ifdashname
   local name names address addresses
-  local ulaprefix if_fqdn host_fqdn mode mode_ptr
+  local ulaprefix if_fqdn host_fqdn
+  local mode_ptr="$UNBOUND_TXT_HOSTNAME"
+  local names="$UNBOUND_TXT_HOSTNAME"
 
   # Create local-data: references for this hosts interfaces (router).
   config_get logint "$cfg" interface
@@ -124,45 +109,60 @@ create_interface_dns() {
   if_fqdn="$ifdashname.$host_fqdn"
 
 
-  if [ -z "${ulaprefix%%:/*}" ] ; then
-    # Nonsense so this option isn't globbed below
-    ulaprefix="fdno:such:addr::/48"
-  fi
+  if [ -z "$ifdashname" ] ; then
+    # race conditions at init can rarely cause a blank device return
+    # the record format is invalid and Unbound won't load the conf file
+    mode=0
+
+  elif [ -n "$UNBOUND_LIST_IFACE" ] ; then
+    case "$UNBOUND_LIST_IFACE" in
+    *$ifdashname*)
+      # repeat such as dual WAN (eth0-1) and WAN6 (eth0-1)
+      mode=0
+      ;;
 
+    *)
+      mode=1
+      ;;
+    esac
 
-  if [ "$ignore" -gt 0 ] ; then
-    mode="$UNBOUND_D_WAN_FQDN"
   else
-    mode="$UNBOUND_D_LAN_FQDN"
+    mode=1
   fi
 
 
-  case "$mode" in
-  3)
-    mode_ptr="$host_fqdn"
-    names="$host_fqdn  $UNBOUND_TXT_HOSTNAME"
-    ;;
+  if [ $mode -gt 0 ] ; then
+    UNBOUND_LIST_IFACE="$UNBOUND_LIST_IFACE $ifdashname"
+
+
+    if [ -z "${ulaprefix%%:/*}" ] ; then
+      # Nonsense so this option isn't globbed below
+      ulaprefix="fdno:such:addr::/48"
+    fi
+
+
+    if [ "$ignore" -gt 0 ] ; then
+      mode="$UNBOUND_D_WAN_FQDN"
+    else
+      mode="$UNBOUND_D_LAN_FQDN"
+    fi
+  fi
+
 
-  4)
-    if [ -z "$ifdashname" ] ; then
-      # race conditions at init can rarely cause a blank device return
-      # the record format is invalid and Unbound won't load the conf file
+  if [ "$mode" -gt 1 ] ; then
+    case "$mode" in
+    3)
       mode_ptr="$host_fqdn"
       names="$host_fqdn  $UNBOUND_TXT_HOSTNAME"
-    else
+      ;;
+
+    4)
       mode_ptr="$if_fqdn"
       names="$if_fqdn  $host_fqdn  $UNBOUND_TXT_HOSTNAME"
-    fi
-    ;;
-
-  *)
-    mode_ptr="$UNBOUND_TXT_HOSTNAME"
-    names="$UNBOUND_TXT_HOSTNAME"
-    ;;
-  esac
+      ;;
+    esac
 
 
-  if [ "$mode" -gt 1 ] ; then
     {
       for address in $addresses ; do
         case $address in
@@ -249,7 +249,7 @@ create_local_zone() {
     # New Zone! Bundle local-zones: by first two name tiers "abcd.tld."
     partial=$( echo "$target" | awk -F. '{ j=NF ; i=j-1; print $i"."$j }' )
     UNBOUND_LIST_DOMAINS="$UNBOUND_LIST_DOMAINS $partial"
-    echo "  local-zone: $partial. transparent" >> $UNBOUND_CONFFILE
+    echo "  local-zone: $partial transparent" >> $UNBOUND_CONFFILE
   fi
 }
 
@@ -385,21 +385,37 @@ bundle_domain_insecure() {
 ##############################################################################
 
 bundle_private_interface() {
-  local ipcommand ifsubnet ifsubnets ifname
+  local ipcommand ifsubnet ifsubnets ifname validip4
 
   network_get_device ifname $1
 
+
   if [ -n "$ifname" ] ; then
-    ipcommand="ip -6 -o address show $ifname"
-    ifsubnets=$( $ipcommand | awk '/inet6/{ print $4 }' )
+    ipcommand="ip -o address show $ifname"
+    ifsubnets=$( $ipcommand | awk '/inet/{ print $4 }' )
 
 
     if [ -n "$ifsubnets" ] ; then
       for ifsubnet in $ifsubnets ; do
         case $ifsubnet in
-        [1-9]*:*[0-9a-f])
+        [1-9][0-9a-f][0-9a-f][0-9a-f]:*[0-9a-f])
           # Special GLA protection for local block; ULA protected as a catagory
-          UNBOUND_LIST_PRV_SUBNET="$UNBOUND_LIST_PRV_SUBNET $ifsubnet" ;;
+          UNBOUND_LIST_PRV_IP6GLA="$UNBOUND_LIST_PRV_IP6GLA $ifsubnet"
+          ;;
+
+        f[dc][0-9a-f][0-9a-f]:*[0-9a-f])
+          # Used to configure specific local-zone: data
+          UNBOUND_LIST_LAN_NET="$UNBOUND_LIST_LAN_NET $ifsubnet"
+          ;;
+
+        *)
+          validip4=$( valid_subnet4 $ifsubnet )
+
+
+          if [ "$validip4" = "ok" ] ; then
+            UNBOUND_LIST_LAN_NET="$UNBOUND_LIST_LAN_NET $ifsubnet"
+          fi
+          ;;
         esac
       done
     fi
@@ -411,6 +427,7 @@ bundle_private_interface() {
 unbound_mkdir() {
   local filestuff
 
+
   if [ "$UNBOUND_D_DHCP_LINK" = "odhcpd" ] ; then
     local dhcp_origin=$( uci_get dhcp.@odhcpd[0].leasefile )
     local dhcp_dir=$( dirname $dhcp_origin )
@@ -422,6 +439,7 @@ unbound_mkdir() {
     fi
   fi
 
+
   if [ -f $UNBOUND_KEYFILE ] ; then
     filestuff=$( cat $UNBOUND_KEYFILE )
 
@@ -469,7 +487,11 @@ unbound_mkdir() {
   fi
 
 
-  copy_dash_update
+  if [ -f $UNBOUND_KEYFILE.keep ] ; then
+    # root.key.keep is reused if newest
+    cp -u $UNBOUND_KEYFILE.keep $UNBOUND_KEYFILE
+    rm -f $UNBOUND_KEYFILE.keep
+  fi
 
 
   # Ensure access and prepare to jail
@@ -539,10 +561,10 @@ unbound_control() {
       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 "  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
     ;;
@@ -557,10 +579,10 @@ unbound_control() {
       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 "  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
     ;;
@@ -593,7 +615,7 @@ unbound_forward() {
       for fdomain in $UNBOUND_LIST_FORWARD ; do
         {
           echo "forward-zone:"
-          echo "  name: \"$fdomain.\""
+          echo "  name: $fdomain"
           for fresolver in $resolvers ; do
           echo "  forward-addr: $fresolver"
           done
@@ -628,15 +650,15 @@ unbound_auth_root() {
 
       {
         echo "auth-zone:"
-        echo "  name: \"$realzone\""
+        echo "  name: $realzone"
         for server in $axfrservers ; do
-          echo "  master: \"$server\""
+          echo "  master: $server"
         done
-        echo "  url: \"$httpserver$zone.zone\""
+        echo "  url: $httpserver$zone.zone"
         echo "  fallback-enabled: yes"
         echo "  for-downstream: no"
         echo "  for-upstream: yes"
-        echo "  zonefile: \"$zone.zone\""
+        echo "  zonefile: $zone.zone"
         echo
       } >> $UNBOUND_CONFFILE
     done
@@ -658,9 +680,9 @@ unbound_conf() {
     echo
     echo "server:"
     echo "  username: unbound"
-    echo "  chroot: \"$UNBOUND_VARDIR\""
-    echo "  directory: \"$UNBOUND_VARDIR\""
-    echo "  pidfile: \"$UNBOUND_PIDFILE\""
+    echo "  chroot: $UNBOUND_VARDIR"
+    echo "  directory: $UNBOUND_VARDIR"
+    echo "  pidfile: $UNBOUND_PIDFILE"
     echo
     # No threading
     echo "  num-threads: 1"
@@ -761,13 +783,13 @@ unbound_conf() {
 
   if [ -f "$UNBOUND_HINTFILE" ] ; then
     # Optional hints if found
-    echo "  root-hints: \"$UNBOUND_HINTFILE\"" >> $UNBOUND_CONFFILE
+    echo "  root-hints: $UNBOUND_HINTFILE" >> $UNBOUND_CONFFILE
   fi
 
 
   if [ "$UNBOUND_B_DNSSEC" -gt 0 -a -f "$UNBOUND_KEYFILE" ] ; then
     {
-      echo "  auto-trust-anchor-file: \"$UNBOUND_KEYFILE\""
+      echo "  auto-trust-anchor-file: $UNBOUND_KEYFILE"
       echo
     } >> $UNBOUND_CONFFILE
 
@@ -809,6 +831,7 @@ unbound_conf() {
     logger -t unbound -s "default memory configuration"
   fi
 
+
   # Assembly of module-config: options is tricky; order matters
   modulestring="iterator"
 
@@ -941,8 +964,8 @@ unbound_conf() {
   fi
 
 
-  if  [ -n "$UNBOUND_LIST_PRV_SUBNET" -a "$UNBOUND_D_PRIV_BLCK" -gt 1 ] ; then
-    for ifsubnet in $UNBOUND_LIST_PRV_SUBNET ; do
+  if  [ -n "$UNBOUND_LIST_PRV_IP6GLA" -a "$UNBOUND_D_PRIV_BLCK" -gt 1 ] ; then
+    for ifsubnet in $UNBOUND_LIST_PRV_IP6GLA ; do
       # Remove global DNS responses with your local network IP6 GLA
       echo "  private-address: $ifsubnet" >> $UNBOUND_CONFFILE
     done
@@ -966,7 +989,7 @@ unbound_conf() {
   if  [ -n "$UNBOUND_LIST_INSECURE" ] ; then
     for domain in $UNBOUND_LIST_INSECURE ; do
       # Except and accept domains without (DNSSEC); work around broken domains
-      echo "  domain-insecure: \"$domain\"" >> $UNBOUND_CONFFILE
+      echo "  domain-insecure: $domain" >> $UNBOUND_CONFFILE
     done
 
 
@@ -1019,6 +1042,7 @@ unbound_adblock() {
   # TODO: Unbound 1.6.0 added "tags" and "views"; lets work with adblock team
   local adb_enabled adb_file
 
+
   if [ ! -x /usr/bin/adblock.sh -o ! -x /etc/init.d/adblock ] ; then
     adb_enabled=0
   else
@@ -1040,31 +1064,90 @@ unbound_adblock() {
 ##############################################################################
 
 unbound_hostname() {
+  local ifsubnet ifarpa
+
+
   if [ -n "$UNBOUND_TXT_DOMAIN" ] ; then
     {
-      # TODO: Unbound 1.6.0 added "tags" and "views" and we could make
-      # domains by interface to prevent DNS from "guest" to "home"
-      echo "  local-zone: $UNBOUND_TXT_DOMAIN. $UNBOUND_D_DOMAIN_TYPE"
-      echo "  domain-insecure: $UNBOUND_TXT_DOMAIN"
-      echo "  private-domain: $UNBOUND_TXT_DOMAIN"
-      echo
-      echo "  local-zone: $UNBOUND_TXT_HOSTNAME. $UNBOUND_D_DOMAIN_TYPE"
+      # Hostname as TLD works, but not transparent through recursion
       echo "  domain-insecure: $UNBOUND_TXT_HOSTNAME"
       echo "  private-domain: $UNBOUND_TXT_HOSTNAME"
+      echo "  local-zone: $UNBOUND_TXT_HOSTNAME static"
+      echo "  local-data: \"$UNBOUND_TXT_HOSTNAME. $UNBOUND_XSOA\""
+      echo "  local-data: \"$UNBOUND_TXT_HOSTNAME. $UNBOUND_XNS\""
       echo
     } >> $UNBOUND_CONFFILE
 
 
     case "$UNBOUND_D_DOMAIN_TYPE" in
     deny|inform_deny|refuse|static)
+      if  [ -n "$UNBOUND_LIST_PRV_IP6GLA" \
+            -a "$UNBOUND_D_PRIV_BLCK" -gt 1 ] ; then
+        for ifsubnet in $UNBOUND_LIST_PRV_IP6GLA ; do
+          ifarpa=$( domain_ptr_any "$ifsubnet" )
+
+
+          if [ -n "$ifarpa" ] ; then
+            {
+              # Do NOT forward queries with your GLA ip6.arpa
+              echo "  domain-insecure: $ifarpa"
+              echo "  local-zone: $ifarpa $UNBOUND_D_DOMAIN_TYPE"
+              echo "  local-data: \"$ifarpa. $UNBOUND_XSOA\""
+              echo "  local-data: \"$ifarpa. $UNBOUND_XNS\""
+              echo
+            } >> $UNBOUND_CONFFILE
+          fi
+        done
+      fi
+
+
+      if  [ -n "$UNBOUND_LIST_LAN_NET" \
+            -a "$UNBOUND_D_PRIV_BLCK" -gt 0 ] ; then
+        for ifsubnet in $UNBOUND_LIST_LAN_NET ; do
+          ifarpa=$( domain_ptr_any "$ifsubnet" )
+
+
+          if [ -n "$ifarpa" ] ; then
+            {
+              # Do NOT forward queries with your ULA ip6.arpa or in-addr.arpa
+              echo "  domain-insecure: $ifarpa"
+              echo "  local-zone: $ifarpa $UNBOUND_D_DOMAIN_TYPE"
+              echo "  local-data: \"$ifarpa. $UNBOUND_XSOA\""
+              echo "  local-data: \"$ifarpa. $UNBOUND_XNS\""
+              echo
+            } >> $UNBOUND_CONFFILE
+          fi
+        done
+      fi
+
+
       {
-        # avoid upstream involvement in RFC6762 like responses (link only)
-        echo "  local-zone: local. $UNBOUND_D_DOMAIN_TYPE"
+        # avoid upstream involvement in RFC6762
         echo "  domain-insecure: local"
         echo "  private-domain: local"
+        echo "  local-zone: local $UNBOUND_D_DOMAIN_TYPE"
+        echo "  local-data: \"local. $UNBOUND_XSOA\""
+        echo "  local-data: \"local. $UNBOUND_XNS\""
+        echo "  local-data: \"local. 3600 IN TXT RFC6762\""
+        echo
+        # type static means only this router has your domain
+        # type transparent will permit forward-zone: or stub-zone: clauses
+        echo "  domain-insecure: $UNBOUND_TXT_DOMAIN"
+        echo "  private-domain: $UNBOUND_TXT_DOMAIN"
+        echo "  local-zone: $UNBOUND_TXT_DOMAIN $UNBOUND_D_DOMAIN_TYPE"
+        echo "  local-data: \"$UNBOUND_TXT_DOMAIN. $UNBOUND_XSOA\""
+        echo "  local-data: \"$UNBOUND_TXT_DOMAIN. $UNBOUND_XNS\""
         echo
       } >> $UNBOUND_CONFFILE
       ;;
+
+    *)
+      # likely transparent domain with fordward-zone: clause to next router
+      echo "  domain-insecure: $UNBOUND_TXT_DOMAIN"
+      echo "  private-domain: $UNBOUND_TXT_DOMAIN"
+      echo "  local-zone: $UNBOUND_TXT_DOMAIN $UNBOUND_D_DOMAIN_TYPE"
+      echo
+      ;;
     esac
 
 
@@ -1227,6 +1310,7 @@ unbound_resolv_setup() {
     return
   fi
 
+
   if [ -x /etc/init.d/dnsmasq ] && /etc/init.d/dnsmasq enabled \
   && nslookup localhost 127.0.0.1#53 >/dev/null 2>&1 ; then
     # unbound is configured for port 53, but dnsmasq is enabled and a resolver
@@ -1237,6 +1321,7 @@ unbound_resolv_setup() {
     return
   fi
 
+
   # unbound is designated to listen on 127.0.0.1#53,
   #   set resolver file to local.
   rm -f /tmp/resolv.conf
index ca47652db378ce998a6d2612ee9a1fdb43b5bc3f..94a5169b6c73685bf279313f8d024dd868318ada 100644 (file)
@@ -1,32 +1,19 @@
 diff --git a/doc/example.conf.in b/doc/example.conf.in
-index 5396029..cbb51ec 100644
+index be83bda..7317b23 100644
 --- a/doc/example.conf.in
 +++ b/doc/example.conf.in
-@@ -1,9 +1,10 @@
--#
--# Example configuration file.
--#
--# See unbound.conf(5) man page, version 1.7.1.
--#
--# this is a comment.
-+##############################################################################
-+# MEMORY CONTROL EXAMPLE
-+# In the example config settings below memory usage is reduced. Some ser-
-+# vice levels are lower, notable very large data and a high TCP load are
-+# no longer supported ... are exceptional for the DNS.
-+# (http://unbound.net/documentation/unbound.conf.html)
-+##############################################################################
-
- #Use this to include other text into the file.
- #include: "otherfile.conf"
-@@ -12,9 +13,71 @@
- server:
-       # whitespace is not necessary, but looks cleaner.
-
--      # verbosity number, 0 is least verbose. 1 is default.
-+      # verbosity 1 is default
+@@ -15,6 +15,76 @@ server:
+       # verbosity number, 0 is least verbose. 1 is default.
        verbosity: 1
 
++      ############################################################################
++      # MEMORY CONTROL EXAMPLE
++      # In the example config settings below memory usage is reduced. Some ser-
++      # vice levels are lower, notable very large data and a high TCP load are
++      # no longer supported ... are exceptional for the DNS.
++      # (http://unbound.net/documentation/unbound.conf.html)
++      ############################################################################
++
 +      # Self jail Unbound with user "unbound" to /var/lib/unbound
 +      # The script /etc/init.d/unbound will setup the location
 +      username: "unbound"
@@ -85,9 +72,9 @@ index 5396029..cbb51ec 100644
 +      # have power off clock (reboot), then you may need this work around.
 +      #domain-insecure: "pool.ntp.org"
 +
-+##############################################################################
-+# Resume Stock example.conf.in
-+##############################################################################
++      ############################################################################
++      # Resume Stock example.conf.in
++      ############################################################################
 +
        # print statistics to the log (for every thread) every N seconds.
        # Set to "" or 0 to disable. Default is disabled.
index fb52e7d72c8aa6179fa06ded0a1894df2dca7fb7..612917cf07ce5c9fb196432abcd72bc8a7e20c8e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=usbip
-PKG_RELEASE:=9
+PKG_RELEASE:=10
 PKG_LICENSE:=GPL-2.0
 
 # Since kernel 2.6.39.1 userspace tools are inside the kernel tree
@@ -52,7 +52,7 @@ endef
 define Package/usbip
   $(call Package/usbip/Default)
   TITLE+= (common)
-  DEPENDS+= +libwrap +kmod-usbip +libudev-fbsd
+  DEPENDS+= +libwrap +kmod-usbip +libudev-fbsd +USE_GLIBC:libbsd
 endef
 
 define Package/usbip-client
@@ -70,13 +70,16 @@ endef
 CONFIGURE_PATH:=.
 MAKE_PATH:=.
 LIBTOOL_PATHS:=.
-MAKE_FLAGS+=CFLAGS="-Wno-implicit-function-declaration"
+MAKE_FLAGS+=CFLAGS='-Dudev_device_get_devpath\(x\)=udev_device_get_syspath\(x\)+strlen\(\"/sys\"\) \
+       -DSIGCLD=SIGCHLD'
+CONFIGURE_ARGS+= --disable-silent-rules
 
 define Build/Configure
        (cd $(PKG_BUILD_DIR); ./autogen.sh );
        $(call Build/Configure/Default)
 endef
 
+CONFIGURE_VARS+= $(if $(CONFIG_USE_GLIBC),LIBS='-lbsd -lpthread')
 CFLAGS+="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include"
 
 USB_IDS_REV:=0a6be488b4c1485d30c9efee1cc895af5d4a1383
diff --git a/net/usbip/patches-2.0/100-musl-compat.patch b/net/usbip/patches-2.0/100-musl-compat.patch
deleted file mode 100644 (file)
index a64678c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/usbipd.c
-+++ b/src/usbipd.c
-@@ -453,7 +453,7 @@ static void set_signal(void)
-       sigaction(SIGTERM, &act, NULL);
-       sigaction(SIGINT, &act, NULL);
-       act.sa_handler = SIG_IGN;
--      sigaction(SIGCLD, &act, NULL);
-+      sigaction(SIGCHLD, &act, NULL);
- }
- static const char *pid_file;
diff --git a/net/usbip/patches/001-upstream_svn_r99.diff b/net/usbip/patches/001-upstream_svn_r99.diff
deleted file mode 100644 (file)
index aa193e1..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Index: trunk/src/cmd/Makefile.am
-===================================================================
---- trunk/src/cmd/Makefile.am  (revision 98)
-+++ trunk/src/cmd/Makefile.am  (revision 99)
-@@ -17,5 +17,5 @@
- INCLUDES = -I$(top_srcdir)/lib
- LDADD = ../lib/libusbip.la @PACKAGE_LIBS@
- EXTRA_CFLAGS = @EXTRA_CFLAGS@
--AM_CFLAGS = -Wall -W -Wstrict-prototypes -std=gnu99 $(EXTRA_CFLAGS) @PACKAGE_CFLAGS@
-+AM_CFLAGS = -Wall -W -Wstrict-prototypes -std=gnu99 $(EXTRA_CFLAGS) @PACKAGE_CFLAGS@ -DUSBIDS_FILE='"@USBIDS_DIR@/usb.ids"'
diff --git a/net/usbip/patches/002-upstream_svn_r152.patch b/net/usbip/patches/002-upstream_svn_r152.patch
deleted file mode 100644 (file)
index e7135a6..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
---- a/drivers/head/stub_dev.c
-+++ b/drivers/head/stub_dev.c
-@@ -398,7 +398,11 @@ static int stub_probe(struct usb_interfa
- {
-       struct usb_device *udev = interface_to_usbdev(interface);
-       struct stub_device *sdev = NULL;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
-       char *udev_busid = interface->dev.parent->bus_id;
-+#else
-+      char *udev_busid = dev_name(interface->dev.parent);
-+#endif
-       int err = 0;
-       udbg("Enter\n");
---- a/drivers/head/stub_main.c
-+++ b/drivers/head/stub_main.c
-@@ -252,18 +252,17 @@ static int __init usb_stub_init(void)
-               return -ENOMEM;
-       }
-+      info(DRIVER_DESC "" DRIVER_VERSION);
-+
-+      memset(busid_table, 0, sizeof(busid_table));
-+      spin_lock_init(&busid_table_lock);
-+
-       ret = usb_register(&stub_driver);
-       if (ret) {
-               uerr("usb_register failed %d\n", ret);
-               return ret;
-       }
--
--      info(DRIVER_DESC "" DRIVER_VERSION);
--
--      memset(busid_table, 0, sizeof(busid_table));
--      spin_lock_init(&busid_table_lock);
--
-       ret = driver_create_file(&stub_driver.drvwrap.driver, &driver_attr_match_busid);
-       if (ret) {
---- a/drivers/head/stub_rx.c
-+++ b/drivers/head/stub_rx.c
-@@ -159,7 +159,11 @@ static int tweak_set_configuration_cmd(s
-        * A user may need to set a special configuration value before
-        * exporting the device.
-        */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
-       uinfo("set_configuration (%d) to %s\n", config, urb->dev->dev.bus_id);
-+#else
-+      uinfo("set_configuration (%d) to %s\n", config, dev_name(&urb->dev->dev));
-+#endif
-       uinfo("but, skip!\n");
-       return 0;
-@@ -177,7 +181,11 @@ static int tweak_reset_device_cmd(struct
-       value = le16_to_cpu(req->wValue);
-       index = le16_to_cpu(req->wIndex);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
-       uinfo("reset_device (port %d) to %s\n", index, urb->dev->dev.bus_id);
-+#else
-+      uinfo("reset_device (port %d) to %s\n", index, dev_name(&urb->dev->dev));
-+#endif
-       /* all interfaces should be owned by usbip driver, so just reset it. */
-       ret = usb_lock_device_for_reset(urb->dev, NULL);
-@@ -187,7 +195,11 @@ static int tweak_reset_device_cmd(struct
-       }
-       /* try to reset the device */
--      ret = usb_reset_composite_device(urb->dev, NULL);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
-+    ret = usb_reset_composite_device(urb->dev, NULL);
-+#else
-+      ret = usb_reset_device(urb->dev);
-+#endif
-       if (ret < 0)
-               uerr("device reset\n");
---- a/drivers/head/usbip_common.c
-+++ b/drivers/head/usbip_common.c
-@@ -55,10 +55,7 @@ static ssize_t show_flag(struct device *
- static ssize_t store_flag(struct device *dev, struct device_attribute *attr,
-               const char *buf, size_t count)
- {
--      unsigned long flag;
--
--      sscanf(buf, "%lx", &flag);
--      usbip_debug_flag = flag;
-+      sscanf(buf, "%lx", &usbip_debug_flag);
-       return count;
- }
-@@ -390,7 +387,7 @@ int usbip_thread(void *param)
-       unlock_kernel();
-       /* srv.rb must wait for rx_thread starting */
--      complete(&ut->thread_done);
-+      complete(&ut->thread_started);
-       /* start of while loop */
-       ut->loop_ops(ut);
-@@ -403,15 +400,21 @@ int usbip_thread(void *param)
- void usbip_start_threads(struct usbip_device *ud)
- {
-+
-       /*
-        * threads are invoked per one device (per one connection).
-        */
-+    INIT_COMPLETION(ud->tcp_rx.thread_started);
-+    INIT_COMPLETION(ud->tcp_tx.thread_started);
-+    INIT_COMPLETION(ud->tcp_rx.thread_done);
-+    INIT_COMPLETION(ud->tcp_tx.thread_done);
-+
-       kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_rx, 0);
-       kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_tx, 0);
-       /* confirm threads are starting */
--      wait_for_completion(&ud->tcp_rx.thread_done);
--      wait_for_completion(&ud->tcp_tx.thread_done);
-+      wait_for_completion(&ud->tcp_rx.thread_started);
-+      wait_for_completion(&ud->tcp_tx.thread_started);
- }
- EXPORT_SYMBOL(usbip_start_threads);
-@@ -436,6 +439,7 @@ void usbip_task_init(struct usbip_task *
-               void (*loop_ops)(struct usbip_task *))
- {
-       ut->thread = NULL;
-+      init_completion(&ut->thread_started);
-       init_completion(&ut->thread_done);
-       ut->name = name;
-       ut->loop_ops = loop_ops;
---- a/drivers/head/usbip_event.c
-+++ b/drivers/head/usbip_event.c
-@@ -38,7 +38,7 @@ void usbip_start_eh(struct usbip_device
-       kernel_thread((int(*)(void *)) usbip_thread, (void *) eh, 0);
--      wait_for_completion(&eh->thread_done);
-+      wait_for_completion(&eh->thread_started);
- }
- EXPORT_SYMBOL(usbip_start_eh);
---- a/drivers/head/vhci_hcd.c
-+++ b/drivers/head/vhci_hcd.c
-@@ -58,7 +58,7 @@ static void vhci_stop(struct usb_hcd *hc
- static int vhci_get_frame_number(struct usb_hcd *hcd);
- static const char driver_name[] = "vhci_hcd";
--static const char driver_desc[] = "USB/IP Virtual Host Contoroller";
-+static const char driver_desc[] = "USB/IP Virtual Host Controller";
-@@ -416,14 +416,6 @@ static int vhci_hub_control(struct usb_h
-                               case USB_PORT_FEAT_SUSPEND:
-                                       dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_SUSPEND\n");
-                                       uerr(" not yet\n");
--#if 0
--                                      dum->port_status[rhport] |= (1 << USB_PORT_FEAT_SUSPEND);
--                                      if (dum->driver->suspend) {
--                                              spin_unlock (&dum->lock);
--                                              dum->driver->suspend (&dum->gadget);
--                                              spin_lock (&dum->lock);
--                                      }
--#endif
-                                       break;
-                               case USB_PORT_FEAT_RESET:
-                                       dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_RESET\n");
-@@ -432,12 +424,6 @@ static int vhci_hub_control(struct usb_h
-                                               dum->port_status[rhport] &= ~(USB_PORT_STAT_ENABLE
-                                                               | USB_PORT_STAT_LOW_SPEED
-                                                               | USB_PORT_STAT_HIGH_SPEED);
--#if 0
--                                              if (dum->driver) {
--                                                      dev_dbg (hardware, "disconnect\n");
--                                                      stop_activity (dum, dum->driver);
--                                              }
--#endif
-                                               /* FIXME test that code path! */
-                                       }
-@@ -1060,7 +1046,7 @@ static int vhci_hcd_probe(struct platfor
-       struct usb_hcd          *hcd;
-       int                     ret;
--      uinfo("proving...\n");
-+      uinfo("probing...\n");
-       dbg_vhci_hc("name %s id %d\n", pdev->name, pdev->id);
-@@ -1076,7 +1062,11 @@ static int vhci_hcd_probe(struct platfor
-        * Allocate and initialize hcd.
-        * Our private data is also allocated automatically.
-        */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
-       hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, pdev->dev.bus_id);
-+#else
-+      hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, dev_name(&pdev->dev));
-+#endif
-       if (!hcd) {
-               uerr("create hcd failed\n");
-               return -ENOMEM;
---- a/drivers/head/vhci_sysfs.c
-+++ b/drivers/head/vhci_sysfs.c
-@@ -123,7 +123,11 @@ static ssize_t show_status(struct device
-                       out += sprintf(out, "%03u %08x ",
-                                       vdev->speed, vdev->devid);
-                       out += sprintf(out, "%16p ", vdev->ud.tcp_socket);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
-                       out += sprintf(out, "%s", vdev->udev->dev.bus_id);
-+#else
-+                      out += sprintf(out, "%s", dev_name(&vdev->udev->dev));
-+#endif
-               } else
-                       out += sprintf(out, "000 000 000 0000000000000000 0-0");
---- a/drivers/head/usbip_common.h
-+++ b/drivers/head/usbip_common.h
-@@ -300,6 +300,7 @@ struct usbip_device;
- struct usbip_task {
-       struct task_struct *thread;
-+      struct completion thread_started;
-       struct completion thread_done;
-       char *name;
-       void (*loop_ops)(struct usbip_task *);
diff --git a/net/uwsgi-cgi/LICENSE b/net/uwsgi-cgi/LICENSE
new file mode 100644 (file)
index 0000000..9c4309b
--- /dev/null
@@ -0,0 +1,355 @@
+----------------------------------------------------------------------
+
+LINKING EXCEPTION
+
+ In addition to the permissions in the GNU General Public License,
+ the authors give you unlimited permission to link the compiled
+ version of this library into combinations with other programs,
+ and to distribute those combinations without any restriction
+ coming from the use of this file. (The General Public License
+ restrictions do apply in other respects; for example, they cover
+ modification of the file, and distribution when not linked into
+ a combined executable.)
+
+----------------------------------------------------------------------
+
+
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/net/uwsgi-cgi/Makefile b/net/uwsgi-cgi/Makefile
new file mode 100644 (file)
index 0000000..b80472e
--- /dev/null
@@ -0,0 +1,63 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=uwsgi-cgi
+PKG_VERSION:=2.0.17.1
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/unbit/uwsgi
+PKG_SOURCE_DATE:=2018-07-08
+PKG_SOURCE_VERSION:=4b3e9621c0a3eb2aacf937b8e84e67b23b20490b
+PKG_MIRROR_HASH:=a843909ad5e8c36b86392d99c8bd411a84c14ad51993ba63638180212c7819e2
+
+PKG_LICENSE:=GPL2 + linking exception
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(TOPDIR)/feeds/packages/lang/python/python-package.mk
+
+define Package/uwsgi-cgi
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Web Servers/Proxies
+  TITLE:=The uWSGI server
+  URL:=http://unbit.com/
+  DEPENDS:=+libcap +libopenssl +libpcre +jansson +libuuid +libxml2
+endef
+
+define Package/uwsgi-cgi-luci-support
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Web Servers/Proxies
+  TITLE:=Support files for LuCI on Nginx
+  URL:=http://unbit.com/
+  DEPENDS:=+uwsgi-cgi
+endef
+
+define Package/uwsgi-cgi/description
+       The uWSGI project build with cgi profile
+endef
+
+MAKE_VARS+=\
+       CPP=$(TARGET_CROSS)cpp
+
+define Build/Compile
+       $(call Build/Compile/Default,PROFILE=cgi)
+endef
+
+define Package/uwsgi-cgi/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/uwsgi $(1)/usr/sbin/
+endef
+
+define Package/uwsgi-cgi-luci-support/install
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files-luci-support/uwsgi.init $(1)/etc/init.d/uwsgi
+       $(INSTALL_DIR) $(1)/etc/uwsgi
+       $(INSTALL_BIN) ./files-luci-support/uwsgi.conf $(1)/etc/uwsgi/uwsgi.conf
+       $(INSTALL_DIR) $(1)/etc/nginx
+endef
+
+$(eval $(call BuildPackage,uwsgi-cgi))
+$(eval $(call BuildPackage,uwsgi-cgi-luci-support))
diff --git a/net/uwsgi-cgi/files-luci-support/uwsgi.conf b/net/uwsgi-cgi/files-luci-support/uwsgi.conf
new file mode 100644 (file)
index 0000000..84c32bb
--- /dev/null
@@ -0,0 +1,28 @@
+[uwsgi]
+stric = True
+uwsgi_modifier1 = 9
+socket = /var/run/uwsgi.sock
+cgi-mode = true
+cgi = /www/cgi-bin/luci
+chdir = /usr/lib/lua/luci/
+master = True
+buffer-size = 10000
+reload-mercy=8
+max-requests=2000
+limit-as=200
+reload-on-as=256
+reload-on-rss=192
+no-orphans=True
+vacuum=True
+enable-threads=True
+post-buffering=8192
+socket-timeout=120
+thunder-lock = True
+logger = syslog:uwsgi
+daemonize = True
+disable-logging = True
+log-format = %(addr) %(method) %(uri) => generated %(rsize) bytes in %(msecs) msecs
+pidfile=/var/run/uwsgi.pid
+die-on-term=True
+fork-socket=True
+pcre-jit=True
\ No newline at end of file
diff --git a/net/uwsgi-cgi/files-luci-support/uwsgi.init b/net/uwsgi-cgi/files-luci-support/uwsgi.init
new file mode 100644 (file)
index 0000000..7897180
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh /etc/rc.common 
+
+START=79
+
+start() {
+       core_number=$(grep -c ^processor /proc/cpuinfo)
+       /usr/sbin/uwsgi --ini /etc/uwsgi/uwsgi.conf --threads $core_number --processes $(($core_number * 2))
+       logger -ts "Uwsgi" "Starting Uwsgi process"
+}                 
+stop() {
+       pidfile="/var/run/uwsgi.pid"
+       if [ -n "$(pgrep uwsgi)" ]; then
+               if [ -f $pidfile ]; then
+                       logger -t "Uwsgi" "Stopping Uwsgi process"
+                       kill $( cat $pidfile )
+               else
+                       for pid in $(pgrep uwsgi); do
+                               if [ -n "$(pgrep uwsgi)" ]; then
+                                       #Keep trying to kill until the master process is found
+                                       kill -KILL $pid
+                               fi
+                       done
+               fi
+       else 
+               logger -t "Uwsgi" "Uwsgi not running!"
+       fi
+}
+
+reload() {
+       /usr/sbin/uwsgi --reload /var/run/uwsgi.pid
+}
+
+
index b99d391991272653180667e9138d4f3ab7cf6abe..e31bb59c290f0fe88ab7e9942d0a558f94fc961b 100644 (file)
@@ -12,7 +12,7 @@ PKG_VERSION:=0.8.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=4199e2ad11a036f4289f5ad42a8b0fe518f2b5ff77447f4c366dbcf3f23e91d5
+PKG_MIRROR_HASH:=412ced9e59677532cde388cf329ccbe8c3dbdd505855f1ef298af9894fd6561c
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/uoaerg/wavemon.git
index cee7a0e55e0ca9c613903bc9c6160b3d91666f17..46cf0be4e7a727fb9524222c17e574c88fdd79c4 100644 (file)
@@ -13,6 +13,7 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/ziahamza/webui-aria2
+PKG_MIRROR_HASH:=b6f78aebcb530778b28c681e5573319c0293b349f16978b685d4e8d34076e9bf
 PKG_SOURCE_VERSION:=d1ce5b992680f4d03eeee899ed8280cbcab8961a
 
 PKG_LICENSE:=MIT
index c7800846492a90c288dd7c4c2b71b31aff8aae77..cfe2c3c30086e3fccf7a3e46ebd4cc947182505d 100644 (file)
@@ -13,6 +13,7 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/binux/yaaw.git
+PKG_MIRROR_HASH:=698b176cbee67c37cb095d0d07158b917de4191a2ab3fc766c6e8378a6d52110
 PKG_SOURCE_VERSION:=d3a8346c5b9c2c1875dc79e1db2533b584fc8def
 
 PKG_LICENSE:=LGPL-3.0
index 7d9984262e32b208d7914ad17d84f96ce3cd3ad9..ed9606be51dad094a5fe853eaded92cabc44b3e3 100644 (file)
@@ -7,17 +7,17 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fdk-aac
 PKG_VERSION:=0.1.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=Fraunhofer-FDK-AAC-for-Android
 PKG_LICENSE_FILES:=NOTICE
 
-
 PKG_SOURCE_URL=https://codeload.github.com/mstorsjo/fdk-aac/tar.gz/v$(PKG_VERSION)?
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_HASH:=adbcd793e406e1b88b3c1c41382d49f8c27371485b823c0fdab69c9124fd2ce3
 
 PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
 
 PKG_CONFIG_DEPENDS:= CONFIG_FDK-AAC_OPTIMIZE_SPEED
 
@@ -49,18 +49,16 @@ endef
 
 define Package/fdk-aac/install
        $(INSTALL_DIR) $(1)/usr/lib/
-       $(CP) $(PKG_BUILD_DIR)/.libs/*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdk-aac.so* $(1)/usr/lib/
 endef
 
 define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include/fdk-aac
-       $(CP) $(PKG_BUILD_DIR)/libAACdec/include/aacdecoder_lib.h $(1)/usr/include/fdk-aac
-       $(CP) $(PKG_BUILD_DIR)/libAACenc/include/aacenc_lib.h $(1)/usr/include/fdk-aac
-       $(CP) $(PKG_BUILD_DIR)/libSYS/include/FDK_audio.h $(1)/usr/include/fdk-aac
-       $(CP) $(PKG_BUILD_DIR)/libSYS/include/genericStds.h $(1)/usr/include/fdk-aac
-       $(CP) $(PKG_BUILD_DIR)/libSYS/include/machine_type.h $(1)/usr/include/fdk-aac
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/fdk-aac $(1)/usr/include
        $(INSTALL_DIR) $(1)/usr/lib/
-       $(CP) $(PKG_BUILD_DIR)/.libs/*.{la,so*} $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdk-aac.{la,so*} $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fdk-aac.pc $(1)/usr/lib/pkgconfig/
 endef
 
 $(eval $(call BuildPackage,fdk-aac))
diff --git a/sound/fdk-aac/patches/001-fix-overflow.patch b/sound/fdk-aac/patches/001-fix-overflow.patch
new file mode 100644 (file)
index 0000000..89728d9
--- /dev/null
@@ -0,0 +1,29 @@
+From a50eecf65b5ce5d4f03768c5c2cb4b492d2badad Mon Sep 17 00:00:00 2001
+From: Martin Storsjo <martin@martin.st>
+Date: Fri, 4 May 2018 12:46:44 +0300
+Subject: [PATCH] Fix overflows in accumulation, fixing crashes
+
+This fixes github issue #83.
+---
+ libSBRenc/src/tran_det.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libSBRenc/src/tran_det.cpp b/libSBRenc/src/tran_det.cpp
+index 0e35ec3..51d6efe 100644
+--- a/libSBRenc/src/tran_det.cpp
++++ b/libSBRenc/src/tran_det.cpp
+@@ -256,12 +256,12 @@ static FIXP_DBL addLowbandEnergies(FIXP_DBL **Energies,
+   /* freqBandTable[LORES] has MAX_FREQ_COEFFS/2 +1 coeefs max. */
+   for (ts=tran_offdiv2; ts<YBufferWriteOffset; ts++) {
+     for (k = 0; k < freqBandTable[0]; k++) {
+-      accu1 += Energies[ts][k] >> 6;
++      accu1 = fAddSaturate(accu1, Energies[ts][k] >> 6);
+     }
+   }
+   for (; ts<tran_offdiv2+(slots>>nrgSzShift); ts++) {
+     for (k = 0; k < freqBandTable[0]; k++) {
+-      accu2 += Energies[ts][k] >> 9;
++      accu2 = fAddSaturate(accu2, Energies[ts][k] >> 9);
+     }
+   }
index da371a717e0d93af9224b1260893648e52d13ac1..eafed375d2173a1c2b7749f9e0bdae84b2ed43d3 100644 (file)
@@ -8,14 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=forked-daapd
-PKG_VERSION:=25.0
+PKG_VERSION:=26.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/ejurgensen/$(PKG_NAME)/releases/download/$(PKG_VERSION)/
-PKG_HASH:=5741a64d8f54e11e89dfa2fbfae693b2837e1e19a0c4980a20f8ff56bce4456e
+PKG_HASH:=dec7a6b5879c43726ceeb40cb16b77f7bb3148ab4e0afec0947629b11f302720
 
-PKG_BUILD_DEPENDS:=gperf/host
 PKG_FIXUP:=autoreconf
 PKG_USE_MIPS16:=0
 PKG_INSTALL:=1
@@ -35,7 +34,7 @@ URL:=https://github.com/ejurgensen/forked-daapd
 DEPENDS:=+libgpg-error +libgcrypt +libgdbm +zlib +libexpat +libunistring \
        +libevent2 +libdaemon +libantlr3c +confuse +alsa-lib +libffmpeg-full \
        +mxml +libavahi-client +sqlite3-cli +libplist +libcurl +libjson-c \
-       +libprotobuf-c +libgnutls +libsodium $(ICONV_DEPENDS)
+       +libprotobuf-c +libgnutls +libsodium +libwebsockets $(ICONV_DEPENDS)
 endef
 
 define Package/forked-daapd/description
@@ -56,6 +55,9 @@ CONFIGURE_ARGS += \
        --enable-chromecast \
        --enable-verification \
        --disable-spotify \
+       --with-libplist \
+       --with-libwebsockets \
+       --with-alsa \
        --without-pulseaudio \
        --without-libevent_pthreads
 
diff --git a/sound/forked-daapd/patches/010-use_a_wrapper_for_dmap_find_field.patch b/sound/forked-daapd/patches/010-use_a_wrapper_for_dmap_find_field.patch
deleted file mode 100644 (file)
index bbbd2cc..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From 1b8adc11edec48a9b8fcb75b9efdaf618a6744bd Mon Sep 17 00:00:00 2001
-From: ejurgensen <espenjurgensen@gmail.com>
-Date: Fri, 25 Aug 2017 19:27:41 +0200
-Subject: [PATCH] [dmap] Use a wrapper for dmap_find_field() Avoids the need to
- have definition of dmap_find_field in dmap_common.h that must be kept in sync
- with the definition that gperf generates.
-
-Also should fix compilation problems when gperf is not present, ref pr #390
----
- configure.ac      | 21 ---------------------
- src/dmap_common.c |  6 ++++++
- src/dmap_common.h |  4 +---
- src/httpd_daap.c  |  2 +-
- 4 files changed, 8 insertions(+), 25 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9b149be..9819c82 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -32,27 +32,6 @@ to install it.]])],
-               [AC_MSG_ERROR([[GNU gperf required, please install it.]])])
-       ])
--GPERF_TEST="$(echo foo,bar | ${GPERF} -L ANSI-C)"
--
--AC_COMPILE_IFELSE(
--      [AC_LANG_PROGRAM([
--              #include <string.h>
--              const char * in_word_set(const char *, size_t);
--              $GPERF_TEST]
--      )],
--      [GPERF_LEN_TYPE=size_t],
--      [AC_COMPILE_IFELSE(
--              [AC_LANG_PROGRAM([
--                      #include <string.h>
--                      const char * in_word_set(const char *, unsigned);
--                      $GPERF_TEST]
--              )],
--              [GPERF_LEN_TYPE=unsigned],
--              [AC_MSG_ERROR([** unable to determine gperf len type])]
--      )]
--)
--
--AC_DEFINE_UNQUOTED([GPERF_LEN_TYPE], [$GPERF_LEN_TYPE], [gperf len type])
- AC_PATH_PROG([ANTLR], [[antlr3]])
- AS_IF([[test -z "$ANTLR"]],
-       [AS_IF([[test -f "$srcdir/src/SMARTPLLexer.h"]],
-diff --git a/src/dmap_common.c b/src/dmap_common.c
-index 250a2d1..b2bc362 100644
---- a/src/dmap_common.c
-+++ b/src/dmap_common.c
-@@ -42,6 +42,12 @@ dmap_get_fields_table(int *nfields)
-   return dmap_fields;
- }
-+// This wrapper is so callers don't need to include dmap_fields_hash.h
-+const struct dmap_field *
-+dmap_find_field_wrapper(const char *str, int len)
-+{
-+  return dmap_find_field(str, len);
-+}
- void
- dmap_add_container(struct evbuffer *evbuf, const char *tag, int len)
-diff --git a/src/dmap_common.h b/src/dmap_common.h
-index 93a2bdc..73f72d0 100644
---- a/src/dmap_common.h
-+++ b/src/dmap_common.h
-@@ -2,7 +2,6 @@
- #ifndef __DMAP_HELPERS_H__
- #define __DMAP_HELPERS_H__
--#include "config.h"
- #include <event2/buffer.h>
- #include <event2/http.h>
-@@ -45,9 +44,8 @@ extern const struct dmap_field_map dfm_dmap_aeSP;
- const struct dmap_field *
- dmap_get_fields_table(int *nfields);
--/* From dmap_fields.gperf - keep in sync, don't alter */
- const struct dmap_field *
--dmap_find_field (register const char *str, register GPERF_LEN_TYPE len);
-+dmap_find_field_wrapper(const char *str, int len);
- void
-diff --git a/src/httpd_daap.c b/src/httpd_daap.c
-index aef2fe0..0564275 100644
---- a/src/httpd_daap.c
-+++ b/src/httpd_daap.c
-@@ -738,7 +738,7 @@ parse_meta(struct evhttp_request *req, char *tag, const char *param, const struc
-       if (n == i)
-       {
--        meta[i] = dmap_find_field(field, strlen(field));
-+        meta[i] = dmap_find_field_wrapper(field, strlen(field));
-         if (!meta[i])
-           {
--- 
-2.7.4
-
index 1ceaec80617fd2471a8f921262db7d6b570a1919..b91f629a2b76f912da35aa6dccf536f48faa1d56 100644 (file)
@@ -8,15 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pulseaudio
-PKG_VERSION:=11.1
-PKG_RELEASE:=2
+PKG_VERSION:=12.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://freedesktop.org/software/pulseaudio/releases/
-PKG_HASH:=f2521c525a77166189e3cb9169f75c2ee2b82fa3fcf9476024fbc2c3a6c9cd9e
+PKG_HASH:=6e422dbdc9fd11c0cb6af869e5eda73dc24a8be3c14725440edd51ce6b464444
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=GPL LICENSE
 
+PKG_BUILD_PARALLEL:=1
 PKG_BUILD_DEPENDS:=intltool/host
 
 PKG_FIXUP:=autoreconf
index 8f4972a5f7d029dc9b7163c99c8ee05e1ff6d510..8e0538001d37c8701bd7ab502293a5025704fd60 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acpid
-PKG_VERSION:=2.0.28
+PKG_VERSION:=2.0.29
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@SF/acpid2 
-PKG_HASH:=980c3a54b0d3f2fd49fd845a0584c5c2abeaab9e9ac09fcbb68686bbb57a7110
+PKG_SOURCE_URL:=@SF/acpid2
+PKG_HASH:=58503b27975c466e627eb741c5453dd662f97edef1a3d0aac822fd03a84203ff
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
@@ -25,7 +25,7 @@ define Package/acpid
   CATEGORY:=Utilities
   TITLE:=The ACPI Daemon (acpid) With Netlink Support
   URL:=http://tedfelix.com/linux/acpid-netlink.html
-  DEPENDS:=@(TARGET_x86||TARGET_x86_64) +kmod-input-evdev 
+  DEPENDS:=+kmod-input-evdev 
 endef
 
 define Package/acpid/description
index 74e37f89a3ebeb6040bdabf014b2ace85a3e2b51..e483071744645c25210e9c516b40067193f9c6d3 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bandwidthd
-PKG_VERSION:=2.0.1-34
+PKG_VERSION:=2.0.1-35
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/NethServer/bandwidthd/archive/$(PKG_VERSION)
-PKG_HASH:=41803a202956ae99b095f98ce92e5637dad62d25509ccd5cff9a8913626a4226
+PKG_SOURCE_URL:=https://codeload.github.com/NethServer/bandwidthd/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=75f526d9e81c5a543accbb9e197b6b582c293aa20d6cdfc8be5cef43046981c5
 
 PKG_MAINTAINER:=Jean-Michel Lacroix <lacroix@lepine-lacroix.info>
 
index 81deda23d441c80284cfaf35b2c115fa786be729..1c3bcccf6c660afc6e09d589f82040254c3d32b9 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bluez
 PKG_VERSION:=5.49
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/bluetooth/
diff --git a/utils/bluez/patches/204-no-printing-subsystem.patch b/utils/bluez/patches/204-no-printing-subsystem.patch
new file mode 100644 (file)
index 0000000..698fe23
--- /dev/null
@@ -0,0 +1,17 @@
+diff --git a/src/bluetooth.conf b/src/bluetooth.conf
+index 0c0b221..013cf97 100644
+--- a/src/bluetooth.conf
++++ b/src/bluetooth.conf
+@@ -26,10 +26,10 @@
+   </policy>
+   <!-- allow users of lp group (printing subsystem) to 
+-       communicate with bluetoothd -->
++       communicate with bluetoothd
+   <policy group="lp">
+     <allow send_destination="org.bluez"/>
+-  </policy>
++  </policy> -->
+   <policy context="default">
+     <deny send_destination="org.bluez"/>
index 090ee177f26757d3075833e91665c18e68457638..b3d5fb843e840181b6321dd6659bc9d41a11c828 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=collectd
 PKG_VERSION:=5.8.0
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://collectd.org/files/ \
index cb314d3516814a6706bfa70542e746501edf064c..668858b90266c24f97c4109ce7aab908eb782632 100644 (file)
@@ -5,11 +5,13 @@ START=80
 STOP=10
 
 USE_PROCD=1
+NICEPRIO=5
 
 start_service() {
        mkdir -m 0755 -p /var/lib/collectd
        procd_open_instance
        procd_set_param command /usr/sbin/collectd -f
+       procd_set_param nice "$NICEPRIO"
        procd_close_instance
 }
 
index 6344d1a396944c72299cea0b7c41a4159ee71f03..6172fbdd8c3799128250bedae9753a6daf0e8be2 100644 (file)
@@ -6,13 +6,15 @@
 
 include $(TOPDIR)/rules.mk
 
+PKG_SOURCE_VERSION:=8bd996400d087028ba56b724abc1f5b378eaa77f
+
 PKG_NAME:=crconf
-PKG_VERSION:=pre2
+PKG_VERSION:=pre2-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/crconf
-PKG_HASH:=15d39b599acda93a50f473190e702d593ba13613b6ed31711f3584b5726b81b8
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://git.code.sf.net/p/crconf/code
+PKG_MIRROR_HASH:=f772306c0b005c18f481b73e3be193dba5ebb9f6f3bf20cb3f67c4a80dac0613
 
 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
 
index ae0c36c9402ab19e585ae43b8839a19c224021ad..df382afb212f55e3d7db0d48a9aac1d469cb1fd4 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cryptsetup
-PKG_VERSION:=1.7.5
+PKG_VERSION:=2.0.3
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0+ LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v1.7
-PKG_HASH:=2b30cd1d0dd606a53ac77b406e1d37798d4b0762fa89de6ea546201906a251bd
+PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v2.0
+PKG_HASH:=4d6cca04c1f5ff4a68d045d190efb2623087eda0274ded92f92a4b6911e501d4
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
@@ -29,7 +29,7 @@ define Package/cryptsetup/Default
   CATEGORY:=Utilities
   SUBMENU:=Encryption
   TITLE:=Cryptsetup
-  DEPENDS:=+libblkid +libuuid +libpopt +lvm2 +libdevmapper +@KERNEL_DIRECT_IO
+  DEPENDS:=+libblkid +libuuid +libpopt +lvm2 +libdevmapper +libjson-c +@KERNEL_DIRECT_IO
   URL:=http://code.google.com/p/cryptsetup/
 endef
 
@@ -68,9 +68,9 @@ endif
 
 define Package/cryptsetup/install
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) $(PKG_BUILD_DIR)/src/.libs/cryptsetup $(1)/usr/sbin
+       $(CP) $(PKG_BUILD_DIR)/.libs/cryptsetup $(1)/usr/sbin
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_BUILD_DIR)/lib/.libs/libcryptsetup.so* $(1)/usr/lib
+       $(CP) $(PKG_BUILD_DIR)/.libs/libcryptsetup.so* $(1)/usr/lib
 endef
 
 Package/cryptsetup-openssl/install = $(Package/cryptsetup/install)
index b28a50632ca9e61b1748a7cdd8d92db101bb92c5..433a1da7d61c555a377675dccf725fc8773b9365 100644 (file)
@@ -7,27 +7,22 @@
 
 include $(TOPDIR)/rules.mk
 
-# Make sure to also update the dbus-x package
 PKG_NAME:=dbus
-PKG_VERSION:=1.10.4
+PKG_VERSION:=1.12.8
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://dbus.freedesktop.org/releases/dbus/
-PKG_HASH:=ad7dcad73ad9b0ff55819985d354eacfffe07e2eb8c763e155efc21d6001084b
+PKG_SOURCE_URL:=https://dbus.freedesktop.org/releases/dbus/
+PKG_HASH:=e2dc99e7338303393b6663a98320aba6a63421bcdaaf571c8022f815e5896eb3
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 PKG_LICENSE:=AFL-2.1
 
 PKG_BUILD_PARALLEL:=1
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
 
-TARGET_LDFLAGS+= \
-       -Wl,-rpath-link=$(STAGING_DIR)/usr/lib \
-
 define Package/dbus/Default
   SECTION:=utils
   CATEGORY:=Utilities
@@ -69,7 +64,7 @@ endef
 define Package/dbus-utils
 $(call Package/dbus/Default)
  TITLE+= (utilities)
- DEPENDS:= dbus
+ DEPENDS:= +dbus
 endef
 
 define Package/dbus-utils/Description
@@ -77,135 +72,98 @@ $(call Package/dbus/Default/description)
  This package contains D-Bus utilities.
 endef
 
-
-define Build/Prepare
-       $(Build/Prepare/Default)
-       $(SED) 's/-Wl,--gc-sections/--gc-sections/' $(PKG_BUILD_DIR)/configure
-endef
-
 CONFIGURE_ARGS += \
+       --disable-maintainer-mode \
+       --disable-developer \
+       --enable-debug=no \
        --enable-shared \
-       --enable-static \
-       --disable-abstract-sockets \
-       --disable-ansi \
+       --disable-static \
+       --disable-verbose-mode \
        --disable-asserts \
-       --disable-console-owner-file \
+       --disable-xml-docs \
        --disable-doxygen-docs \
-       --disable-compiler_coverage \
+       --disable-ducktype-docs \
        --disable-selinux \
+       --disable-apparmor \
+       --disable-libaudit \
+       --enable-inotify \
+       --disable-kqueue \
+       --disable-console-owner-file \
+       --disable-systemd \
        --disable-tests \
-       --disable-verbose-mode \
-       --disable-xml-docs \
-       --with-xml="expat" \
+       --disable-code-coverage \
+       --disable-x11-autolaunch \
+       --with-session-socket-dir=/tmp \
+       --with-system-socket=/var/run/dbus/system_bus_socket \
+       --with-system-pid-file=/var/run/dbus.pid \
        --with-dbus-user=root \
-       --with-dbus-daemondir="/usr/sbin" \
-       --with-system-socket="/var/run/dbus/system_bus_socket" \
-       --with-system-pid-file="/var/run/dbus.pid" \
-       --without-x \
-       --libexecdir=/usr/lib/dbus-1
-
-CONFIGURE_VARS+= \
-       ac_cv_have_abstract_sockets="yes" \
-       ac_cv_lib_expat_XML_ParserCreate_MM="yes" \
+       --without-x
 
 HOST_CONFIGURE_ARGS+= \
+       --disable-maintainer-mode \
+       --disable-developer \
+       --enable-debug=no \
        --enable-shared \
-       --enable-static \
-       --disable-abstract-sockets \
-       --disable-ansi \
+       --disable-static \
+       --disable-verbose-mode \
        --disable-asserts \
-       --disable-console-owner-file \
-       --disable-docygen-docs \
-       --disable-compiler_coverage \
+       --disable-xml-docs \
+       --disable-doxygen-docs \
+       --disable-ducktype-docs \
        --disable-selinux \
+       --disable-apparmor \
+       --disable-libaudit \
+       --enable-inotify \
+       --disable-kqueue \
+       --disable-console-owner-file \
+       --disable-systemd \
        --disable-tests \
-       --disable-verbose-mode \
-       --disable-xml-docs \
-       --with-dbus-user=root \
-       --with-dbus-daemondir="$(STAGING_DIR_HOSTPKG)/bin" \
+       --disable-code-coverage \
+       --disable-x11-autolaunch \
        --with-system-socket="$(STAGING_DIR_HOSTPKG)/var/run/dbus/system_bus_socket" \
        --with-system-pid-file="$(STAGING_DIR_HOSTPKG)/var/run/dbus.pid" \
-       --without-x \
-       --libexecdir="$(STAGING_DIR_HOSTPKG)/lib/dbus-1"
-
-HOST_CONFIGURE_VARS+= \
-       ac_cv_have_abstract_sockets="yes" \
-       ac_cv_lib_expat_XML_ParserCreate_MM="yes" \
+       --with-dbus-daemondir="$(STAGING_DIR_HOSTPKG)/bin" \
+       --without-x
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/include/dbus-1.0 \
-               $(1)/usr/include/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/dbus-1.0 $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib/dbus-1.0/include/dbus/
        $(INSTALL_DATA) \
                $(PKG_INSTALL_DIR)/usr/lib/dbus-1.0/include/dbus/*.h \
                $(1)/usr/lib/dbus-1.0/include/dbus/
-
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_DATA) \
-               $(PKG_INSTALL_DIR)/usr/lib/libdbus-1.{so*,la,a} \
-               $(1)/usr/lib/
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/dbus-1.0 \
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libdbus-1.{so*,la} \
                $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/dbus-1.0 $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(INSTALL_DATA) \
-               $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/dbus-1.pc \
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/dbus-1.pc \
                $(1)/usr/lib/pkgconfig/
 endef
 
-define Package/dbus/conffiles
-/etc/dbus-1/session.conf
-/etc/dbus-1/system.conf
-endef
-
 define Package/libdbus/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libdbus-1.so.* \
-               $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdbus-1.so.* $(1)/usr/lib/
 endef
 
 define Package/dbus/install
-       $(INSTALL_DIR) $(1)/usr/share
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/share/dbus-1 \
-               $(1)/usr/share/
-
-       $(INSTALL_DIR) $(1)/usr/lib/dbus-1
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/lib/dbus-1/dbus-daemon-launch-helper \
-               $(1)/usr/lib/dbus-1/
-
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/sbin/dbus-daemon \
-               $(1)/usr/sbin/
-
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/bin/dbus-uuidgen \
-               $(1)/usr/bin/
-
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/bin/dbus-launch \
-               $(1)/usr/bin/dbus-launch.real
-       $(INSTALL_BIN) \
-               ./files/dbus-launch \
-               $(1)/usr/bin/
-
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-cleanup-sockets $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-daemon $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-launch $(1)/usr/bin/dbus-launch.real
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dbus-uuidgen $(1)/usr/bin/
+       $(INSTALL_BIN) ./files/dbus-launch $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/dbus-daemon-launch-helper $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) \
-               ./files/dbus.init \
-               $(1)/etc/init.d/dbus
+       $(INSTALL_BIN) ./files/dbus.init $(1)/etc/init.d/dbus
+       $(INSTALL_DIR) $(1)/usr/share/dbus-1
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/dbus-1 $(1)/usr/share/
 endef
 
 define Package/dbus-utils/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/bin/dbus-{send,monitor,cleanup-sockets} \
-               $(1)/usr/bin/
+       $(INSTALL_BIN)  $(PKG_INSTALL_DIR)/usr/bin/dbus-{monitor,send,update-activation-environment} $(1)/usr/bin/
 endef
 
 $(eval $(call HostBuild))
index 42940837782c22a95833ff56a3489a6adf9b49de..afb70547cfb3b9e27075c1ed40f47883a8fbc7de 100644 (file)
@@ -9,9 +9,9 @@ start() {
        mkdir -m 0755 -p /var/lib/dbus
        mkdir -m 0755 -p /var/run/dbus
        [ -x /usr/bin/dbus-uuidgen ] && /usr/bin/dbus-uuidgen --ensure
-       service_start /usr/sbin/dbus-daemon --system
+       service_start /usr/bin/dbus-daemon --system
 }
 
 stop() {
-       service_stop /usr/sbin/dbus-daemon && rm $SERVICE_PID_FILE
+       service_stop /usr/bin/dbus-daemon
 }
diff --git a/utils/dbus/patches/100-fix-poll-select.patch b/utils/dbus/patches/100-fix-poll-select.patch
deleted file mode 100644 (file)
index 64f6525..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: dbus-1.9.4/tools/tool-common.c
-===================================================================
---- dbus-1.9.4.orig/tools/tool-common.c
-+++ dbus-1.9.4/tools/tool-common.c
-@@ -29,6 +29,8 @@
- #include <string.h>
- #include <time.h>
-+#include <sys/select.h>
-+
- #ifdef DBUS_WIN
- #include <windows.h>
- #endif
index d8dee81390ead2b9b0eb650d643873312d10fa9f..b91e1dd67e9e745dabcf109673ce2be0f23cb14a 100644 (file)
@@ -8,18 +8,26 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=domoticz
-PKG_VERSION_MAJOR:=3
-PKG_VERSION_PATCH:=8153
+PKG_VERSION_MAJOR:=4
+PKG_VERSION_PATCH:=9700
+PKG_COMMIT:=
 PKG_VERSION:=$(PKG_VERSION_MAJOR).$(PKG_VERSION_PATCH)
-PKG_RELEASE:=3
+PKG_RELEASE:=1
 
+ifeq ($(PKG_COMMIT),)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_VERSION)/$(PKG_SOURCE)
-PKG_HASH:=5ea8f37f2ef900e9bd17b1b5375e75bfdec4f09001e3e2e0b647a260989d014c
+else
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_COMMIT).tar.gz
+PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_COMMIT)/$(PKG_SOURCE)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_COMMIT)
+endif
+PKG_HASH:=c31f185a1ffac01b86a77bf33e059a4403d814e826c9d6639c63c2e9afa55a46
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=License.txt
 
+PKG_BUILD_DEPENDS:=python3
 PKG_BUILD_PARALLEL:=1
 PKG_USE_MIPS16:=0
 
@@ -60,21 +68,30 @@ CMAKE_OPTIONS += \
        -DUSE_STATIC_BOOST=no \
        -DUSE_STATIC_LIBSTDCXX=no \
        -DUSE_STATIC_OPENZWAVE=no \
-       -DUSE_PYTHON=no
+       -DUSE_OPENSSL_STATIC=no \
+       -DUSE_PYTHON=yes \
+       -DWITH_LIBUSB=no
 
-TARGET_CXXFLAGS+=-DWITH_GPIO
+TARGET_CFLAGS+=-flto
+TARGET_CXXFLAGS+=-DWITH_GPIO -flto
 
 define Build/Prepare
        $(call Build/Prepare/Default)
-       # Fix APPVERSION to suppress update popup
+       # Fix APPVERSION/APPDATE since we don't build from a git tree
        sed -i 's/#define APPVERSION.*/#define APPVERSION $(PKG_VERSION_PATCH)/' \
                 $(PKG_BUILD_DIR)/appversion.default
+       COMMITDATE=`tar tvfz $(DL_DIR)/$(PKG_SOURCE) --full-time | sed 's/.* \(20..-..-.. ..:..:..\) domoticz-.*/\1/;q'`; \
+       COMMITTS=`date --date="$$$${COMMITDATE}" +%s`; \
+       sed -i "s/#define APPDATE.*/#define APPDATE $$$${COMMITTS}/" $(PKG_BUILD_DIR)/appversion.default
+ifneq ($(PKG_COMMIT),)
+       sed -i "s/#define APPHASH.*/#define APPHASH \"$(shell echo $(PKG_COMMIT) | cut -c1-8)\"/" $(PKG_BUILD_DIR)/appversion.default
+endif
        # Remove unwanted scripts
        cd $(PKG_BUILD_DIR)/scripts && rm -rf \
                buienradar_rain_example.pl \
                _domoticz_main* \
                download_update.sh \
-               dzVents/{.gitignore,documentation,examples,generated_scripts} \
+               dzVents/{.gitignore,documentation,examples,generated_scripts,data} \
                dzVents/runtime/{integration-tests,misc/smoothing.xlsx,tests} \
                logrotate/ \
                lua_parsers/example* \
@@ -83,26 +100,37 @@ define Build/Prepare
                readme.txt \
                restart_domoticz \
                templates/All.Python \
-               update_domoticz
+               update_domoticz \
+               domoticz.conf
        # Remove *.md
        cd $(PKG_BUILD_DIR) && $(FIND) -name '*.md' -delete
 endef
 
 define Package/domoticz/install
-       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/tty $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/tty $(1)/etc/init.d $(1)/etc/domoticz/plugins
        $(INSTALL_BIN) ./files/domoticz.hotplug $(1)/etc/hotplug.d/tty/domoticz
        $(INSTALL_BIN) ./files/domoticz.init $(1)/etc/init.d/domoticz
        $(INSTALL_CONF) ./files/domoticz.config $(1)/etc/config/domoticz
        $(INSTALL_DIR) $(1)/usr/share/domoticz $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/Config $(1)/usr/share/domoticz/openzwave
-       $(CP) $(PKG_INSTALL_DIR)/usr/scripts $(1)/usr/share/domoticz/
+       $(CP) $(PKG_INSTALL_DIR)/usr/dzVents $(1)/usr/share/domoticz/dzVents
+       $(CP) $(PKG_INSTALL_DIR)/usr/Config $(1)/usr/share/domoticz/Config
+       $(CP) $(PKG_INSTALL_DIR)/usr/scripts $(1)/etc/domoticz/scripts
+       ln -sf /var/lib/domoticz/dzVents/generated_scripts $(1)/etc/domoticz/scripts/dzVents
+       ln -sf /var/lib/domoticz/dzVents/data $(1)/etc/domoticz/scripts/dzVents
        $(CP) $(PKG_INSTALL_DIR)/usr/www $(1)/usr/share/domoticz/
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/domoticz $(1)/usr/bin/domoticz
+       # compress static web content
+       find $(1)/usr/share/domoticz/www -name "*.css" -exec gzip -9 {} \;
+       find $(1)/usr/share/domoticz/www -name "*.js" -exec gzip -9 {} \;
+       gzip -9 $(1)/usr/share/domoticz/www/*.html
+       gzip -9 $(1)/usr/share/domoticz/www/secpanel/*.html
+       find $(1)/usr/share/domoticz/www/views -name "*.html" -exec sh -c 'grep -q "<\!--#embed" {} || gzip -9 {}' \;
 endef
 
 define Package/domoticz/conffiles
 /etc/config/domoticz
 /var/lib/domoticz/
+/etc/domoticz/
 endef
 
 $(eval $(call BuildPackage,domoticz))
index b300f3f2d77a763f70eef18e1e89c90d5508e6c5..870701c050114f4949cce2bc486f93e4762d27a0 100644 (file)
@@ -5,6 +5,7 @@ config domoticz
        # option sslcert '/path/to/ssl.crt'
        # option sslkey '/path/to/ssl.key'
        # option sslpass 'passphrase'
+       # option ssldhparam '/path/to/dhparam.pem'
        option sslwww '0'
        # CAUTION - by default, /var is not persistent accross reboots
        # Don't forget the trailing / - domoticz requires it
index 7138175ef08f31bd97e427a745877dc4c59da0c8..3cd8651c13c2b3e0e60c68a64527a6f3e315af67 100644 (file)
@@ -28,7 +28,7 @@ add() {
        chgrp domoticz "/dev/$DEVICENAME"
        chmod g+rw "/dev/$DEVICENAME"
 
-       [ -n "$symlink" ] && ln -s "/dev/$DEVICENAME" "/dev/$symlink"
+       [ -n "$symlink" ] && ln -sf "/dev/$DEVICENAME" "/dev/$symlink"
 }
 
 remove() {
index 26e0c42d4215ebdb2c28222c01d63da85e4a4ce3..8c0c129c2d3ae1b65a61f4e0e71d86cad786fbcb 100644 (file)
@@ -13,23 +13,39 @@ start_domoticz() {
        config_get sslcert "$section" "sslcert"
        config_get sslkey "$section" "sslkey"
        config_get sslpass "$section" "sslpass"
+       config_get ssldhparam "$section" "ssldhparam"
        config_get sslwww "$section" "sslwww"
        config_get syslog "$section" "syslog"
-       config_get userdata "$section" "userdata"
+       config_get userdata "$section" "userdata" userdata /var/lib/domoticz
 
        [ -n "$loglevel" ] && procd_append_param command -loglevel "$loglevel"
        [ -n "$syslog" ] && procd_append_param command -syslog "$syslog"
-       [ -n "$userdata" ] && {
-               mkdir -p "${userdata}/generated_scripts"
-               chmod -R 0770 "$userdata"
-               chown -R domoticz:domoticz "$userdata"
-               procd_append_param command -userdata "$userdata"
+
+       [ -d "${userdata}" ] || {
+               mkdir -p "${userdata}"
+               chmod 0770 "$userdata"
+               chown domoticz:domoticz "$userdata"
        }
+
+       # By default, ${userdata}/scripts is a symlink to /etc/domoticz/scripts
+       # and the two dzVents directories under there which Domoticz will actually
+       # write to at runtime are symlinked back to /var/lib again.
+       [ -d "${userdata}/plugins" ] || ln -sf /etc/domoticz/plugins "${userdata}/plugins"
+       [ -d "${userdata}/scripts" ] || ln -sf /etc/domoticz/scripts "${userdata}/scripts"
+       for DIR in data generated_scripts; do
+               [ -d /var/lib/domoticz/dzVents/$DIR ] || {
+                       mkdir -p /var/lib/domoticz/dzVents/$DIR
+                       chown domoticz.domoticz /var/lib/domoticz/dzVents/$DIR
+               }
+       done
+       procd_append_param command -userdata "$userdata"
+
        [ -n "$sslcert" -a "${sslwww:-0}" -gt 0 ] && {
                procd_append_param command -sslcert "$sslcert"
                procd_append_param command -sslwww "$sslwww"
                [ -n "$sslkey" ] && procd_append_param command -sslkey "$sslkey"
                [ -n "$sslpass" ] && procd_append_param command -sslpass "$sslpass"
+               [ -n "$ssldhparam" ] && procd_append_param command -ssldhparam "$ssldhparam"
        } || procd_append_param command -sslwww 0
 }
 
@@ -37,8 +53,8 @@ start_service() {
        procd_open_instance
 
        procd_set_param command "$PROG"
-       procd_append_param command -scripts /usr/share/domoticz/scripts/
-       procd_append_param command -wwwroot /usr/share/domoticz/www/
+       procd_append_param command -noupdates
+       procd_append_param command -approot /usr/share/domoticz/
 
        config_load "domoticz"
        config_get_bool disabled "$section" "disabled" 0
diff --git a/utils/domoticz/patches/001-Make-compatible-with-boost-1.66.patch b/utils/domoticz/patches/001-Make-compatible-with-boost-1.66.patch
deleted file mode 100644 (file)
index 77c183c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-From 11a29e071019645967ee748d410954ec5f73866f Mon Sep 17 00:00:00 2001
-From: Rob Peters <ROb@DVBControl.com>
-Date: Wed, 24 Jan 2018 12:03:24 +0100
-Subject: [PATCH] Make compatible with boost 1.66
-
----
- msbuild/domoticz.vcxproj  | 2 +-
- webserver/proxyclient.cpp | 2 +-
- webserver/server.cpp      | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/msbuild/domoticz.vcxproj b/msbuild/domoticz.vcxproj
-index e4aa595..1aa9e7a 100755
---- a/msbuild/domoticz.vcxproj
-+++ b/msbuild/domoticz.vcxproj
-@@ -58,7 +58,7 @@
-       <PrecompiledHeader>Use</PrecompiledHeader>
-       <WarningLevel>Level3</WarningLevel>
-       <Optimization>Disabled</Optimization>
--      <PreprocessorDefinitions>WIN32;ENABLE_PYTHON;_DEBUG;PTW32_STATIC_LIB;WITH_OPENZWAVE;OPENZWAVE_USEDLL;WWW_ENABLE_SSL;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <PreprocessorDefinitions>WIN32;ENABLE_PYTHON;_DEBUG;PTW32_STATIC_LIB;WITH_OPENZWAVE;OPENZWAVE_USEDLL;WWW_ENABLE_SSL;_CONSOLE;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-       <AdditionalIncludeDirectories>./Windows Libraries/Boost/boost_1_63_0;./libusb;../MQTT;..\hardware\openzwave;./Windows Libraries/openssl;./Windows Libraries/Curl;./Windows Libraries/pthread;../hardware/plugins/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-       <EnablePREfast>false</EnablePREfast>
-diff --git a/webserver/proxyclient.cpp b/webserver/proxyclient.cpp
-index 203ee61..efc9815 100644
---- a/webserver/proxyclient.cpp
-+++ b/webserver/proxyclient.cpp
-@@ -639,7 +639,7 @@ namespace http {
-               void CProxyManager::StartThread()
-               {
-                       try {
--                              boost::asio::ssl::context ctx(io_service, boost::asio::ssl::context::sslv23);
-+                              boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
-                               ctx.set_verify_mode(boost::asio::ssl::verify_none);
-                               proxyclient.reset(new CProxyClient(io_service, ctx, m_pWebEm));
-diff --git a/webserver/server.cpp b/webserver/server.cpp
-index 5255aa3..0c1af08 100644
---- a/webserver/server.cpp
-+++ b/webserver/server.cpp
-@@ -148,7 +148,7 @@ void server::handle_accept(const boost::system::error_code& e) {
- ssl_server::ssl_server(const ssl_server_settings & ssl_settings, request_handler & user_request_handler) :
-               server_base(ssl_settings, user_request_handler),
-               settings_(ssl_settings),
--              context_(io_service_, ssl_settings.get_ssl_method())
-+              context_(ssl_settings.get_ssl_method())
- {
- #ifdef DEBUG_WWW
-       _log.Log(LOG_STATUS, "[web:%s] create ssl_server using ssl_server_settings : %s", ssl_settings.listening_port.c_str(), ssl_settings.to_string().c_str());
-@@ -161,7 +161,7 @@ ssl_server::ssl_server(const ssl_server_settings & ssl_settings, request_handler
- ssl_server::ssl_server(const server_settings & settings, request_handler & user_request_handler) :
-               server_base(settings, user_request_handler),
-               settings_(dynamic_cast<ssl_server_settings const &>(settings)),
--              context_(io_service_, dynamic_cast<ssl_server_settings const &>(settings).get_ssl_method()) {
-+              context_(dynamic_cast<ssl_server_settings const &>(settings).get_ssl_method()) {
- #ifdef DEBUG_WWW
-       _log.Log(LOG_STATUS, "[web:%s] create ssl_server using server_settings : %s", settings.listening_port.c_str(), settings.to_string().c_str());
- #endif
--- 
-2.7.4
-
diff --git a/utils/domoticz/patches/900_fix-build.patch b/utils/domoticz/patches/900_fix-build.patch
deleted file mode 100644 (file)
index b9fbebd..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -645,8 +645,6 @@ else()
-   target_link_libraries(domoticz -lrt ${Boost_LIBRARIES} ${ZLIB_LIBRARIES} ${CURL_LIBRARIES} pthread ${LUA_LIBRARIES} ${MQTT_LIBRARIES} ${SQLite_LIBRARIES} ${CMAKE_DL_LIBS} ${TELLDUS_LIBRARIES} ${EXECINFO_LIBRARIES})
- ENDIF()
--ADD_PRECOMPILED_HEADER(domoticz "main/stdafx.h")
--
- IF(CMAKE_COMPILER_IS_GNUCXX)
-   option(USE_STATIC_LIBSTDCXX "Build with static libgcc/libstdc++ libraries" YES)
-   IF(USE_STATIC_LIBSTDCXX)
diff --git a/utils/domoticz/patches/901_no-udev.patch b/utils/domoticz/patches/901_no-udev.patch
deleted file mode 100644 (file)
index 0ea9dd9..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -579,39 +579,6 @@ IF(OpenZWave)
-   target_link_libraries(domoticz ${OpenZWave})
-   include_directories(${CMAKE_SOURCE_DIR}/hardware/openzwave)
-   add_definitions(-DWITH_OPENZWAVE)
--  # open-zwave needs libudev
--  IF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
--    set(IOKIT_LIBRARY "-framework IOKit -framework CoreFoundation" CACHE FILEPATH "IOKit framework" FORCE)
--    target_link_libraries(domoticz ${IOKIT_LIBRARY})
--  else()
--    IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
--      MESSAGE(STATUS "Building on FreeBSD, libudev not needed!")
--      FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
--      FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
--      IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
--        SET(ICONV_FOUND TRUE)
--        #target_link_libraries(domoticz ${ICONV_INCLUDE_DIR})
--        target_link_libraries(domoticz ${ICONV_LIBRARIES} -lrt)
--        message(STATUS ${ICONV_LIBRARIES})
--      else()
--        MESSAGE(FATAL_ERROR "libiconv not found on your system")
--      ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
--    else()
--      find_library(UDEV NAMES libudev.a)
--      IF(UDEV)
--        message(STATUS ${UDEV})
--        target_link_libraries(domoticz ${UDEV} -lrt -lresolv)
--      else()
--        find_library(UDEV NAMES libudev.so)
--        IF(UDEV)
--           message(STATUS ${UDEV})
--           target_link_libraries(domoticz ${UDEV} -lrt -lresolv)
--        else()
--           MESSAGE(FATAL_ERROR "LIB UDEV not found on your system, see install.txt how to get them installed.\nsudo apt-get install libudev-dev")
--        ENDIF(UDEV)
--      ENDIF(UDEV)
--    ENDIF()
--  ENDIF()
- else()
-   MESSAGE(STATUS "==== OpenZWave not found, support disabled!")
- ENDIF(OpenZWave)
diff --git a/utils/domoticz/patches/902_disable-libusb.patch b/utils/domoticz/patches/902_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
deleted file mode 100644 (file)
index 11e531a..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-diff --git a/hardware/EvohomeScript.cpp b/hardware/EvohomeScript.cpp
-index 5258fc55..0a44e97c 100644
---- a/hardware/EvohomeScript.cpp
-+++ b/hardware/EvohomeScript.cpp
-@@ -30,7 +30,7 @@
- #include <string>
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- CEvohomeScript::CEvohomeScript(const int ID)
-@@ -143,7 +143,7 @@ void CEvohomeScript::RunScript(const char *pdata, const unsigned char length)
-                       std::string scriptname = OnAction.substr(9);
- #if !defined WIN32
-                       if (scriptname.find("/") != 0)
--                              scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                              scriptname = szScriptsFolder + "scripts/" + scriptname;
- #endif
-                       std::string scriptparams="";
-                       //Add parameters
-diff --git a/hardware/OpenZWave.cpp b/hardware/OpenZWave.cpp
-index 1f5c341c..24db61c9 100644
---- a/hardware/OpenZWave.cpp
-+++ b/hardware/OpenZWave.cpp
-@@ -948,7 +948,7 @@ bool COpenZWave::OpenSerialConnector()
-       m_nodes.clear();
-       m_bNeedSave = false;
--      std::string ConfigPath = szStartupFolder + "Config/";
-+      std::string ConfigPath = "/usr/share/domoticz/openzwave/";
-       std::string UserPath = ConfigPath;
-       if (szStartupFolder != szUserDataFolder)
-       {
-diff --git a/main/EventSystem.cpp b/main/EventSystem.cpp
-index 4eff02fd..f2b17b97 100644
---- a/main/EventSystem.cpp
-+++ b/main/EventSystem.cpp
-@@ -33,9 +33,11 @@ extern "C" {
- #endif
- }
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- extern http::server::CWebServerHelper m_webservers;
-+static std::string dzv_Dir;
- static std::string m_printprefix;
- #ifdef ENABLE_PYTHON
-@@ -115,7 +117,6 @@ static const _tJsonMap JsonMap[] =
-       { NULL,                                 NULL,                                           tString         }
- };
--
- CEventSystem::CEventSystem(void)
- {
-       m_stoprequested = false;
-@@ -149,7 +150,7 @@ void CEventSystem::StartEventSystem()
-       GetCurrentScenesGroups();
-       GetCurrentUserVariables();
- #ifdef ENABLE_PYTHON
--    Plugins::PythonEventsInitialize(szUserDataFolder);
-+    Plugins::PythonEventsInitialize(szScriptsFolder);
- #endif
-       m_thread = boost::shared_ptr<boost::thread>(new boost::thread(boost::bind(&CEventSystem::Do_Work, this)));
-@@ -179,11 +180,11 @@ void CEventSystem::SetEnabled(const bool bEnabled)
- void CEventSystem::LoadEvents()
- {
--      std::string dzv_Dir,s;
-+      std::string s;
- #ifdef WIN32
--      dzv_Dir = szUserDataFolder + "scripts\\dzVents\\generated_scripts\\";
-+      dzv_Dir = szUserDataFolder + "generated_scripts\\";
- #else
--      dzv_Dir = szUserDataFolder + "scripts/dzVents/generated_scripts/";
-+      dzv_Dir = szUserDataFolder + "generated_scripts/";
- #endif
-       boost::unique_lock<boost::shared_mutex> eventsMutexLock(m_eventsMutex);
-       _log.Log(LOG_STATUS, "EventSystem: reset all events...");
-@@ -274,18 +275,18 @@ void CEventSystem::LoadEvents()
- void CEventSystem::Do_Work()
- {
- #ifdef WIN32
--      m_lua_Dir = szUserDataFolder + "scripts\\lua\\";
--      m_dzv_Dir = szUserDataFolder + "scripts\\dzVents\\runtime\\";
-+      m_lua_Dir = szScriptsFolder + "lua\\";
-+      m_dzv_Dir = szScriptsFolder + "dzVents\\runtime\\";
- #else
--      m_lua_Dir = szUserDataFolder + "scripts/lua/";
--      m_dzv_Dir = szUserDataFolder + "scripts/dzVents/runtime/";
-+      m_lua_Dir = szScriptsFolder + "lua/";
-+      m_dzv_Dir = szScriptsFolder + "dzVents/runtime/";
- #endif
- #ifdef ENABLE_PYTHON
- #ifdef WIN32
--      m_python_Dir = szUserDataFolder + "scripts\\python\\";
-+      m_python_Dir = szScriptsFolder + "python\\";
- #else
--      m_python_Dir = szUserDataFolder + "scripts/python/";
-+      m_python_Dir = szScriptsFolder + "python/";
- #endif
- #endif
-       m_stoprequested = false;
-@@ -1426,9 +1427,9 @@ void CEventSystem::EvaluateEvent(const std::string &reason, const uint64_t Devic
-               {
-                       std::string dzv_scripts;
- #ifdef WIN32
--                      dzv_scripts = szUserDataFolder + "scripts\\dzVents\\scripts\\";
-+                      dzv_scripts = szScriptsFolder + "dzVents\\scripts\\";
- #else
--                      dzv_scripts = szUserDataFolder + "scripts/dzVents/scripts/";
-+                      dzv_scripts = szScriptsFolder + "dzVents/scripts/";
- #endif
-                       DirectoryListing(FileEntries, dzv_scripts, false, true);
-                       for (itt = FileEntries.begin(); itt != FileEntries.end(); ++itt)
-@@ -2404,7 +2405,7 @@ bool CEventSystem::parseBlocklyActions(const std::string &Actions, const std::st
-                       }
- #if !defined WIN32
-                       if (sPath.find("/") != 0)
--                              sPath = szUserDataFolder + "scripts/" + sPath;
-+                              sPath = szScriptsFolder + sPath;
- #endif
-                       m_sql.AddTaskItem(_tTaskItem::ExecuteScript(0.2f, sPath, sParam));
-@@ -3508,13 +3509,16 @@ void CEventSystem::EvaluateLua(const std::string &reason, const std::string &fil
-               {
-                       std::stringstream lua_DirT;
--                      lua_DirT << szUserDataFolder <<
-+                      lua_DirT << szScriptsFolder <<
- #ifdef WIN32
--                      "scripts\\dzVents\\";
-+                      "dzVents\\";
- #else
--                      "scripts/dzVents/";
-+                      "dzVents/";
- #endif
-+                      lua_pushstring(lua_state, "generated_script_path");
-+                      lua_pushstring(lua_state, dzv_Dir.c_str());
-+                      lua_rawset(lua_state, -3);
-                       lua_pushstring(lua_state, "script_path");
-                       lua_pushstring(lua_state, lua_DirT.str().c_str());
-                       lua_rawset(lua_state, -3);
-@@ -4695,9 +4699,9 @@ namespace http {
-                               std::stringstream template_file;
- #ifdef WIN32
--                              template_file << szUserDataFolder << "scripts\\templates\\" << eventType << "." << interpreter;
-+                              template_file << szScriptsFolder << "templates\\" << eventType << "." << interpreter;
- #else
--                              template_file << szUserDataFolder << "scripts/templates/" << eventType << "." << interpreter;
-+                              template_file << szScriptsFolder << "templates/" << eventType << "." << interpreter;
- #endif
-                               std::ifstream file;
-                               std::stringstream template_content;
-diff --git a/main/EventsPythonModule.cpp b/main/EventsPythonModule.cpp
-index f69e7219..2d97562e 100644
---- a/main/EventsPythonModule.cpp
-+++ b/main/EventsPythonModule.cpp
-@@ -108,7 +108,7 @@
-         
-         int PythonEventsInitalized = 0;
--        bool PythonEventsInitialize(std::string szUserDataFolder) {
-+        bool PythonEventsInitialize(std::string szScriptsFolder) {
-             
-             if (!Plugins::Py_LoadLibrary())
-             {
-@@ -131,9 +131,9 @@
-             
-             std::string ssPath;
- #ifdef WIN32
--            ssPath  = szUserDataFolder + "scripts\\python\\;";
-+            ssPath  = szScriptsFolder + "python\\;";
- #else
--            ssPath  = szUserDataFolder + "scripts/python/:";
-+            ssPath  = szScriptsFolder + "python/:";
- #endif
-             
-             std::wstring sPath = std::wstring(ssPath.begin(), ssPath.end());
-diff --git a/main/LuaHandler.cpp b/main/LuaHandler.cpp
-index 8fdcb278..c2ad98ff 100644
---- a/main/LuaHandler.cpp
-+++ b/main/LuaHandler.cpp
-@@ -22,7 +22,7 @@ extern "C" {
- #include "mainworker.h"
- #include "../hardware/hardwaretypes.h"
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- int CLuaHandler::l_domoticz_updateDevice(lua_State* lua_state)
- {
-@@ -155,9 +155,9 @@ bool CLuaHandler::executeLuaScript(const std::string &script, const std::string
- {
-       std::stringstream lua_DirT;
- #ifdef WIN32
--      lua_DirT << szUserDataFolder << "scripts\\lua_parsers\\";
-+      lua_DirT << szScriptsFolder << "lua_parsers\\";
- #else
--      lua_DirT << szUserDataFolder << "scripts/lua_parsers/";
-+      lua_DirT << szScriptsFolder << "lua_parsers/";
- #endif
-       std::string lua_Dir = lua_DirT.str();
-diff --git a/main/SQLHelper.cpp b/main/SQLHelper.cpp
-index 491aa5a2..d529243a 100644
---- a/main/SQLHelper.cpp
-+++ b/main/SQLHelper.cpp
-@@ -633,6 +633,7 @@ const char *sqlCreateMobileDevices =
- "[LastUpdate] DATETIME DEFAULT(datetime('now', 'localtime'))"
- ");";
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- CSQLHelper::CSQLHelper(void)
-@@ -3683,9 +3684,9 @@ uint64_t CSQLHelper::UpdateValueInt(const int HardwareID, const char* ID, const
-                               //Execute possible script
-                               std::string scriptname;
- #ifdef WIN32
--                              scriptname = szUserDataFolder + "scripts\\domoticz_main.bat";
-+                              scriptname = szScriptsFolder + "domoticz_main.bat";
- #else
--                              scriptname = szUserDataFolder + "scripts/domoticz_main";
-+                              scriptname = szScriptsFolder + "domoticz_main";
- #endif
-                               if (file_exist(scriptname.c_str()))
-                               {
-@@ -6641,7 +6642,7 @@ bool CSQLHelper::HandleOnOffAction(const bool bIsOn, const std::string &OnAction
-                       std::string scriptname = OnAction.substr(9);
- #if !defined WIN32
-                       if (scriptname.find("/") != 0)
--                              scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                              scriptname = szScriptsFolder + scriptname;
- #endif
-                       std::string scriptparams="";
-                       //Add parameters
-@@ -6675,7 +6676,7 @@ bool CSQLHelper::HandleOnOffAction(const bool bIsOn, const std::string &OnAction
-               std::string scriptname = OffAction.substr(9);
- #if !defined WIN32
-               if (scriptname.find("/") != 0)
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-               std::string scriptparams = "";
-               int pindex = scriptname.find(' ');
-diff --git a/main/WebServer.cpp b/main/WebServer.cpp
-index f8471791..d2cf10b2 100644
---- a/main/WebServer.cpp
-+++ b/main/WebServer.cpp
-@@ -59,6 +59,7 @@
- #define round(a) ( int ) ( a + .5 )
-+extern std::string szScriptsFolder;
- extern std::string szUserDataFolder;
- extern std::string szWWWFolder;
-@@ -2987,9 +2988,9 @@ namespace http {
-                       if (scriptname.find("..") != std::string::npos)
-                               return;
- #ifdef WIN32
--                      scriptname = szUserDataFolder + "scripts\\" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #else
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-                       if (!file_exist(scriptname.c_str()))
-                               return;
-diff --git a/main/domoticz.cpp b/main/domoticz.cpp
-index 5ef96f68..52599b14 100644
---- a/main/domoticz.cpp
-+++ b/main/domoticz.cpp
-@@ -136,6 +136,7 @@ static const _facilities facilities[] =
- }; 
- std::string logfacname = "user";
- #endif
-+std::string szScriptsFolder;
- std::string szStartupFolder;
- std::string szUserDataFolder;
- std::string szWWWFolder;
-@@ -696,6 +697,19 @@ int main(int argc, char**argv)
-                       szUserDataFolder = szroot;
-       }
-+      szScriptsFolder=szStartupFolder;
-+      if (cmdLine.HasSwitch("-scripts"))
-+      {
-+              if (cmdLine.GetArgumentCount("-scripts") != 1)
-+              {
-+                      _log.Log(LOG_ERROR, "Please specify a path for scripts directory");
-+                      return 1;
-+              }
-+              std::string szroot = cmdLine.GetSafeArgument("-scripts", 0, "");
-+              if (szroot.size() != 0)
-+                      szScriptsFolder = szroot;
-+      }
-+
-       if (cmdLine.HasSwitch("-startupdelay"))
-       {
-               if (cmdLine.GetArgumentCount("-startupdelay") != 1)
-diff --git a/main/mainworker.cpp b/main/mainworker.cpp
-index 803690e1..e89a783b 100644
---- a/main/mainworker.cpp
-+++ b/main/mainworker.cpp
-@@ -159,6 +159,7 @@
- #define round(a) ( int ) ( a + .5 )
-+extern std::string szScriptsFolder;
- extern std::string szStartupFolder;
- extern std::string szUserDataFolder;
- extern std::string szWWWFolder;
-@@ -1473,8 +1474,8 @@ void MainWorker::Do_Work()
-                       m_sql.GetPreferencesVar("ReleaseChannel", nValue);
-                       bool bIsBetaChannel = (nValue != 0);
--                      std::string scriptname = szUserDataFolder + "scripts/download_update.sh";
--                      std::string strparm = szUserDataFolder;
-+                      std::string scriptname = szScriptsFolder + "download_update.sh";
-+                      std::string strparm = szScriptsFolder;
-                       if (bIsBetaChannel)
-                               strparm += " /beta";
-diff --git a/notifications/NotificationHTTP.cpp b/notifications/NotificationHTTP.cpp
-index decff3b4..632e4e66 100644
---- a/notifications/NotificationHTTP.cpp
-+++ b/notifications/NotificationHTTP.cpp
-@@ -6,7 +6,7 @@
- #include "../main/SQLHelper.h"
- #include "../main/Logger.h"
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- CNotificationHTTP::CNotificationHTTP() : CNotificationBase(std::string("http"), OPTIONS_NONE)
- {
-@@ -105,7 +105,7 @@ bool CNotificationHTTP::SendMessageImplementation(
-               std::string scriptparams = "";
- #if !defined WIN32
-               if (scriptname.find("/") != 0)
--                      scriptname = szUserDataFolder + "scripts/" + scriptname;
-+                      scriptname = szScriptsFolder + scriptname;
- #endif
-               //Add parameters
-               uPos = scriptname.find(" ");
-diff --git a/push/GooglePubSubPush.cpp b/push/GooglePubSubPush.cpp
-index 359a7d7c..46e489f6 100644
---- a/push/GooglePubSubPush.cpp
-+++ b/push/GooglePubSubPush.cpp
-@@ -22,7 +22,7 @@ extern "C" {
- using namespace boost::python;
- #endif
--extern std::string szUserDataFolder;
-+extern std::string szScriptsFolder;
- // this should be filled in by the preprocessor
- extern const char * Python_exe;
-@@ -231,11 +231,11 @@ void CGooglePubSubPush::DoGooglePubSubPush()
- #ifdef ENABLE_PYTHON_DECAP
- #ifdef WIN32
--                              python_DirT << szUserDataFolder << "scripts\\python\\";
--                              std::string filename = szUserDataFolder + "scripts\\python\\" + "googlepubsub.py";
-+                              python_DirT << szScriptsFolder << "python\\";
-+                              std::string filename = szScriptsFolder + "python\\" + "googlepubsub.py";
- #else
--                              python_DirT << szUserDataFolder << "scripts/python/";
--                              std::string filename = szUserDataFolder + "scripts/python/" + "googlepubsub.py";
-+                              python_DirT << szScriptsFolder << "python/";
-+                              std::string filename = szScriptsFolder + "python/" + "googlepubsub.py";
- #endif
-                               wchar_t * argv[1];
-diff --git a/scripts/dzVents/runtime/dzVents.lua b/scripts/dzVents/runtime/dzVents.lua
-index d0dfa869..8370d6a9 100644
---- a/scripts/dzVents/runtime/dzVents.lua
-+++ b/scripts/dzVents/runtime/dzVents.lua
-@@ -1,8 +1,9 @@
- local currentPath = globalvariables['script_path']
-+local generatedScriptPath = globalvariables['generated_script_path']
- local triggerReason = globalvariables['script_reason']
- _G.scriptsFolderPath = currentPath .. 'scripts' -- global
--_G.generatedScriptsFolderPath = currentPath .. 'generated_scripts' -- global
-+_G.generatedScriptsFolderPath = generatedScriptPath -- global
- _G.dataFolderPath = currentPath .. 'data' -- global
- package.path = package.path .. ';' .. currentPath .. '?.lua'
-@@ -10,7 +11,7 @@ package.path = package.path .. ';' .. currentPath .. 'runtime/?.lua'
- package.path = package.path .. ';' .. currentPath .. 'runtime/device-adapters/?.lua'
- package.path = package.path .. ';' .. currentPath .. 'dzVents/?.lua'
- package.path = package.path .. ';' .. currentPath .. 'scripts/?.lua'
--package.path = package.path .. ';' .. currentPath .. 'generated_scripts/?.lua'
-+package.path = package.path .. ';' .. generatedScriptPath .. '?.lua'
- package.path = package.path .. ';' .. currentPath .. 'data/?.lua'
- local EventHelpers = require('EventHelpers')
index d0efb353f02c589210a212221805070c63856ef8..2758dc4d233d2435164c6b3c69f1fc33edcaeade 100644 (file)
@@ -16,7 +16,7 @@ PKG_SOURCE_URL:=https://github.com/mutability/dump1090.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=b155fdb458c3241ab375d1f2b12fbb6a9f8a8a3a
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
-PKG_MIRROR_HASH:=ff1bc142107d367c6c58ccc5dbcec822c251a683e43e3b771ab4a33a9012f602 
+PKG_MIRROR_HASH:=bea40197bce22c837273848bc75d273c2688b131c11895685a35ee6c6242843a
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
 PKG_LICENSE:=GPL-2.0
index 5376fb90e6b3209fedc6bea4af02c79b4715388c..cfb4ad800eff2ff6ca98b7c4264269f411f53a80 100644 (file)
@@ -13,7 +13,6 @@ PKG_RELEASE:=1
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
 PKG_HASH:=ded4c9f73731cd48fec3b6bdaccce896473b6d8e337e9612e16cf1431bb1169d
-PKG_MAINTAINER:=Daniel Dickinson <lede@daniel.thecshore.com>
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
diff --git a/utils/fio/Makefile b/utils/fio/Makefile
new file mode 100644 (file)
index 0000000..3c6fdb4
--- /dev/null
@@ -0,0 +1,58 @@
+#
+# Copyright (C) 2018 Daniel Engberg <daniel.engberg.lists@pyret.net>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fio
+PKG_VERSION:=3.6
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dragan Stancevic <ds@codeminutia.com>
+PKG_LICENSE:=GPL-2.0+
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE_URL:=http://brick.kernel.dk/snaps
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_HASH:=026a2cbb4a1bc9810f13f23d07eb146dbd4325bb467221dc49b88915ee8a52b4
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/fio
+  SECTION:=utils
+  CATEGORY:=Utilities
+  SUBMENU:=Disc
+  DEPENDS:=+libaio +zlib
+  TITLE:=I/O testing and benchmarking tool
+  URL:=https://github.com/axboe/fio
+endef
+
+define Package/fio/description
+  Fio is an I/O testing tool that will spawn a number of threads or
+  processes doing a particular type of I/O action as specified by
+  the user. Fio can be driven by a 'job file' describing the I/O
+  load one wants to simulate.
+endef
+
+TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
+
+CONFIGURE_ARGS = \
+       --disable-numa \
+       --disable-rdma \
+       --disable-rados \
+       --disable-rbd \
+       --disable-gfapi \
+       --disable-lex \
+       --disable-pmem \
+       --disable-native \
+       --cc="$(TARGET_CC)" \
+       --extra-cflags="$(TARGET_CFLAGS)"
+
+define Package/fio/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/fio $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,fio))
index 825ad1859720aa5f37a2aca8d1d2b0af8784e7f3..bde3fe43208c848cd4dd3b857feeb5bc5a4d0581 100644 (file)
@@ -31,7 +31,7 @@ define Package/gammu
        URL:=http://dl.cihar.com/gammu/releases/
        DEPENDS:=+libpthread +libcurl +glib2 $(ICONV_DEPENDS) $(INTL_DEPENDS)
        DEPENDS+=+PACKAGE_python:python +PACKAGE_bluez-libs:bluez-libs
-       DEPENDS+=+PACKAGE_libmariadbclient:libmariadbclient +PACKAGE_unixodbc:unixodbc +PACKAGE_libpq:libpq
+       DEPENDS+=+PACKAGE_libmariadb:libmariadb +PACKAGE_unixodbc:unixodbc +PACKAGE_libpq:libpq
        DEPENDS+=+PACKAGE_libusb-1.0:libusb-1.0
 endef
 
index 9c32cb49d3325b5f716f014535587da610907aae..d684c7e3e7b26b50dd2dabf67e6204f9f02114b4 100644 (file)
@@ -5,13 +5,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gawk
-PKG_VERSION:=4.2.0
-PKG_RELEASE:=2
+PKG_VERSION:=4.2.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/gawk
 
-PKG_HASH:=d4f3cd31c001fd0ed52832d4fbfbdfeaa38ad541c182f80ff8fdf87324a6a9f2
+PKG_HASH:=d1119785e746d46a8209d28b2de404a57f983aa48670f4e225531d3bdc175551
 
 PKG_LICENSE:=GPL
 PKG_LICENSE_FILES:=COPYING
index 16d086be4e9b79eb84ca7a2e331228b2dfb705a7..f674774bfd7e0bbe4e014cebba3968bdbee47286 100644 (file)
@@ -8,17 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnupg
-PKG_VERSION:=1.4.21
+PKG_VERSION:=1.4.23
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/gnupg \
-       ftp://ftp.gnupg.org/gcrypt/gnupg
-PKG_HASH:=6b47a3100c857dcab3c60e6152e56a997f2c7862c1b8b2b25adf3884a1ae2276
+PKG_SOURCE_URL:=https://gnupg.org/ftp/gcrypt/gnupg
+PKG_HASH:=c9462f17e651b6507848c08c430c791287cd75491f8b5a8b50c6ed46b12678ba
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
-PKG_MAINTAINER:=Daniel Dickinson <lede@cshore.thecshore.com>
 
 PKG_INSTALL:=1
 
diff --git a/utils/gptfdisk/Makefile b/utils/gptfdisk/Makefile
new file mode 100644 (file)
index 0000000..fb1aeed
--- /dev/null
@@ -0,0 +1,98 @@
+#
+# Copyright (C) 2018 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gptfdisk
+PKG_VERSION:=1.0.3
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Alif M. Ahmad <alive4ever@live.com>
+PKG_LICENSE:=GPL-2.0
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_HASH:=89fd5aec35c409d610a36cb49c65b442058565ed84042f767bba614b8fc91b5c
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/gptfdisk/Default
+  SECTION:=utils
+  CATEGORY:=Utilities
+  SUBMENU:=Disc
+  URL:=http://www.rodsbooks.com/gdisk
+  DEPENDS:= +libstdcpp
+endef
+
+define Package/gdisk
+$(call Package/gptfdisk/Default)
+  TITLE:=GPT aware disk manipulation utility for interactive use
+  DEPENDS+= +libuuid
+endef
+
+define Package/gdisk/description
+  gdisk is GPT aware disk partitioning tool, with interactive UI.
+endef
+
+define Package/cgdisk
+$(call Package/gptfdisk/Default)
+  TITLE:=GPT aware disk manipulation utility for interactive use
+  DEPENDS+= +libuuid +libncursesw
+endef
+
+define Package/cgdisk/description
+  cgdisk is GPT aware disk partitioning tool, with interactive ncurses based UI.
+endef
+
+define Package/sgdisk
+$(call Package/gptfdisk/Default)
+  TITLE:=GPT aware disk manipulation utility for scripting use
+  DEPENDS+= +libuuid +libpopt
+endef
+
+define Package/sgdisk/description
+  sgdisk is GPT-aware disk partitioning tool for scripting use.
+endef
+
+define Package/fixparts
+$(call Package/gptfdisk/Default)
+  TITLE:=A utility to fix corrupted MBR partitions
+  DEPENDS+=
+endef
+
+define Package/fixparts/description
+  a text-mode menu-driven program for repairing certain types of problems with
+  Master Boot Record (MBR) partition tables
+endef
+
+define Package/gdisk/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/gdisk $(1)/usr/bin/
+endef
+
+define Package/cgdisk/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/cgdisk $(1)/usr/bin/
+endef
+
+define Package/sgdisk/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/sgdisk $(1)/usr/bin/
+endef
+
+define Package/fixparts/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/fixparts $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,gdisk))
+$(eval $(call BuildPackage,cgdisk))
+$(eval $(call BuildPackage,sgdisk))
+$(eval $(call BuildPackage,fixparts))
index bc1d46228b9a14b2909d35bb0d2797110e27642d..ed9d8735eac792567a573edcb4db13d326d665db 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hdparm
-PKG_VERSION:=9.52
+PKG_VERSION:=9.56
 PKG_RELEASE:=1
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=c3429cd423e271fa565bf584598fd751dd2e773bb7199a592b06b5a61cec4fb6
+PKG_HASH:=6ff9ed695f1017396eec4101f990f114b7b0e0a04c5aa6369c0394053d16e4da
 PKG_MAINTAINER:=Richard Kunze <richard.kunze@web.de>
 PKG_LICENSE:=BSD-Style Open Source License
 
index 88dd6b3f6aeecdcd85075f83c1d68300ace37937..bd2dc39c7558f2ef0aded52c0f73d686e71c143f 100644 (file)
@@ -11,11 +11,9 @@ PKG_NAME:=i2c-tools
 PKG_VERSION:=3.1.2
 PKG_RELEASE:=1
 
-PKG_SOURCE_URL:=http://dl.lm-sensors.org/i2c-tools/releases/ \
-                http://fossies.org/linux/misc/
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=db5e69f2e2a6e3aa2ecdfe6a5f490b149c504468770f58921c8c5b8a7860a441
+PKG_SOURCE_URL:=@KERNEL/software/utils/i2c-tools
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_HASH:=6d6079153cd49a62d4addacef4c092db1a46ba60b2807070a3fbe050262aef87
 
 PKG_BUILD_PARALLEL:=1
 PKG_BUILD_DEPENDS:=PACKAGE_python-smbus:python
index f90f6ea73283038ffe3d68c8a9f7baa35f7c59eb..497668e9440dd8c085d5512152948b88e9773e0a 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Copyright (C) 2009-2010 Stefan Monnier
-# Copyright (C) 2011-2014 OpenWrt.org
+# Copyright (C) 2011-2018 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v3+.
 # See /LICENSE for more information.
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=LVM2
 PKG_VERSION:=2.02.177
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-2.0 LGPL-2.1
 
 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
@@ -50,7 +50,12 @@ define Package/lvm2/description
  LVM toolset.
 endef
 
-CONFIGURE_ARGS += --disable-o_direct
+CONFIGURE_ARGS += \
+  --disable-o_direct \
+  --with-default-pid-dir=/var/run \
+  --with-default-dm-run-dir=/var/run \
+  --with-default-run-dir=/var/run/lvm \
+  --with-default-locking-dir=/var/lock/lvm
 
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
index 545daba0155bb5c4e9639d769b44718d6d9cadb7..1a2c51482e33d8149ed5c89f18114161f75f796c 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mariadb
-PKG_VERSION:=10.1.33
-PKG_RELEASE:=1
+PKG_VERSION:=10.2.16
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL := \
@@ -18,10 +18,10 @@ PKG_SOURCE_URL := \
        https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
        https://downloads.mariadb.org/interstitial/$(PKG_NAME)-$(PKG_VERSION)/source
 
-PKG_HASH:=94312c519f2c0c25e1964c64e22aff0036fb22dfb2685638f43a6b2211395d2d
+PKG_HASH:=c182ee93bacee9c1395a4cece56acfc433bc5153ec627c4898927b93eee54dc4
 PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
-PKG_LICENSE:=GPL-2.0
-PKG_LICENSE_FILES:=COPYING
+PKG_LICENSE:=GPL-2.0 LGPL-2.1
+PKG_LICENSE_FILES:=COPYING libmariadb/COPYING.LIB
 
 HOST_BUILD_PARALLEL:=1
 PKG_BUILD_PARALLEL:=1
@@ -36,6 +36,7 @@ CMAKE_INSTALL:=1
 PLUGIN_DIR:=/usr/lib/mysql/plugin
 
 MARIADB_COMMON_DEPENDS := \
+       +USE_UCLIBC:libiconv-full \
        +libatomic \
        +libopenssl \
        +libstdcpp \
@@ -60,7 +61,8 @@ MARIADB_SERVER_PLUGINS := \
        ha_example \
        ha_federated \
        ha_federatedx \
-       ha_innodb \
+       ha_sequence \
+       ha_sphinx \
        ha_spider \
        ha_test_sql_discovery \
        handlersocket \
@@ -102,7 +104,8 @@ plugin-ha_connect               := PLUGIN_CONNECT
 plugin-ha_example               := PLUGIN_EXAMPLE
 plugin-ha_federated             := PLUGIN_FEDERATED
 plugin-ha_federatedx            := PLUGIN_FEDERATEDX
-plugin-ha_innodb                := PLUGIN_INNOBASE
+plugin-ha_sequence              := PLUGIN_SEQUENCE
+plugin-ha_sphinx                := PLUGIN_SPHINX
 plugin-ha_spider                := PLUGIN_SPIDER
 plugin-ha_test_sql_discovery    := PLUGIN_TEST_SQL_DISCOVERY
 plugin-handlersocket            := PLUGIN_HANDLERSOCKET
@@ -172,6 +175,10 @@ include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/cmake.mk
 
+# Pass CPPFLAGS in the CFLAGS as otherwise the build system will
+# ignore them.
+TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
+
 define Package/mariadb/install/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $(1)/usr/bin
 endef
@@ -183,16 +190,16 @@ database query language in the world. The main goals of MariaDB are
 speed, robustness and ease of use.
 endef
 
-define Package/libmariadbclient
+define Package/libmariadb
   SECTION:=libs
   CATEGORY:=Libraries
   DEPENDS:=$(MARIADB_COMMON_DEPENDS)
   TITLE:=MariaDB database client library
   URL:=https://mariadb.org/
-  PROVIDES:=libmysqlclient libmysqlclient-r
+  PROVIDES:=libmariadbclient libmysqlclient libmysqlclient-r
 endef
 
-define Package/libmariadbclient/description
+define Package/libmariadb/description
 $(call Package/mariadb/description/Default)
 
 This package includes the client library.
@@ -247,7 +254,6 @@ endef
 define Package/mariadb-extra-charsets/description
 $(call Package/mariadb/description/Default)
 
-The MariaDB server packaged by OpenWrt only provides support for UTF-8.
 This package contains single Byte character sets and collations that can
 be added at run time.
 
@@ -264,6 +270,7 @@ define Package/mariadb-server
   TITLE:=MariaDB database core server binaries
   MENU:=1
   PROVIDES:=mysql-server
+  USERID:=mariadb=376:mariadb=376
 endef
 
 define Package/mariadb-server/description
@@ -340,13 +347,14 @@ CMAKE_OPTIONS += \
        -DINSTALL_SCRIPTDIR=bin \
        -DINSTALL_SQLBENCHDIR="" \
        -DINSTALL_SUPPORTFILESDIR=share/mysql \
-       -DMYSQLD_USER=root \
+       -DINSTALL_UNIX_ADDRDIR=/var/run/mysqld/mysqld.sock \
+       -DMYSQLD_USER=mariadb \
        -DMYSQL_DATADIR=/var/lib/mysql \
-       -DMYSQL_UNIX_ADDR=/var/run/mysqld.sock \
+       -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
        -DSKIP_TESTS=ON \
        -DWITH_ASAN=OFF \
        -DWITH_EMBEDDED_SERVER=OFF \
-       -DWITH_EXTRA_CHARSETS=none \
+       -DWITH_EXTRA_CHARSETS=complex \
        -DWITH_INNODB_BZIP2=OFF \
        -DWITH_INNODB_LZ4=OFF \
        -DWITH_INNODB_LZMA=ON \
@@ -371,13 +379,19 @@ CMAKE_OPTIONS += \
        -DPLUGIN_MROONGA=NO \
        -DPLUGIN_OQGRAPH=NO \
        -DPLUGIN_ROCKSDB=NO \
-       -DPLUGIN_SPHINX=NO \
        -DPLUGIN_TOKUDB=NO \
        -DPLUGIN_AUTH_PAM=NO \
        -DPLUGIN_AUTH_GSSAPI=NO \
        -DPLUGIN_AUTH_GSSAPI_CLIENT=NO \
        -DPLUGIN_CRACKLIB_PASSWORD_CHECK=NO
 
+# musl and glibc include their own iconv, but uclibc does not
+ifneq ($(CONFIG_USE_UCLIBC),)
+CMAKE_OPTIONS += \
+       -DICONV_INCLUDE_DIR=$(STAGING_DIR)/usr/lib/libiconv-full/include \
+       -DICONV_LIBRARIES=$(STAGING_DIR)/usr/lib/libiconv-full/lib/libiconv.so
+endif
+
 CMAKE_OPTIONS += \
        $(foreach p,$(MARIADB_SERVER_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-$(subst _,-,$(p))),DYNAMIC,NO))
 
@@ -420,20 +434,34 @@ define Host/Install
        $(INSTALL_DATA) $(HOST_BUILD_DIR)/import_executables.cmake $(1)/share/mariadb
 endef
 
+# LIBICONV_PLUG is used in GNU's libiconv for redefinition of exports [e.g.
+# from libiconv_open() to iconv_open()]. But in OpenWrt this variable is not set
+# when building libiconv-full. So when mariadb sets LIBICONV_PLUG it expects
+# iconv_open() to be available for example, which is not the case - only
+# libiconv_open() is. To address this do not set the variable when building
+# against libiconv-full.
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+ifneq ($(CONFIG_USE_UCLIBC),)
+       $(SED) '/ADD_DEFINITIONS(-DLIBICONV_PLUG)/d' $(PKG_BUILD_DIR)/libmariadb/libmariadb/CMakeLists.txt
+endif
+endef
+
 define Build/InstallDev
        $(INSTALL_DIR) $(2)/bin $(1)/usr/bin $(1)/usr/include $(1)/usr/lib/mysql $(1)/usr/lib/pkgconfig $(1)/usr/share/aclocal
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mysql_config $(1)/usr/bin
        $(LN) $(STAGING_DIR)/usr/bin/mysql_config $(2)/bin
        $(CP) $(PKG_INSTALL_DIR)/usr/include/mysql $(1)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmysqlclient*.so* $(1)/usr/lib
-       cd $(1)/usr/lib/mysql; $(LN) ../libmysqlclient*.so* .
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{mariadb,mysqlclient}*.so* $(1)/usr/lib
+       cd $(1)/usr/lib/mysql; $(LN) ../lib{mariadb,mysqlclient}*.so* .
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/pkgconfig/mariadb.pc $(1)/usr/lib/pkgconfig
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/mysql.m4 $(1)/usr/share/aclocal
 endef
 
-define Package/libmariadbclient/install
+define Package/libmariadb/install
        $(INSTALL_DIR) $(1)$(PLUGIN_DIR)
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmysqlclient*.so* $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{mariadb,mysqlclient}*.so* $(1)/usr/lib
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/dialog.so $(1)$(PLUGIN_DIR)
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/mysql_clear_password.so $(1)$(PLUGIN_DIR)
 endef
@@ -441,6 +469,10 @@ endef
 define Package/mariadb-client/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(foreach b,$(MARIADB_CLIENT),$(call Package/mariadb/install/bin,$(1),$(b));)
+       # Install convenience links for mysqlcheck multi-call binary
+       cd $(1)/usr/bin; $(LN) mysqlcheck mysqlanalyze
+       cd $(1)/usr/bin; $(LN) mysqlcheck mysqlrepair
+       cd $(1)/usr/bin; $(LN) mysqlcheck mysqloptimize
 endef
 
 define Package/mariadb-client-extra/install
@@ -456,10 +488,12 @@ endef
 define Package/mariadb-server/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(foreach b,$(MARIADB_SERVER),$(call Package/mariadb/install/bin,$(1),$(b));)
+       $(INSTALL_DIR) $(1)/etc/default
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_DIR) $(1)/etc/mysql/conf.d
        $(INSTALL_BIN) files/mysqld.init $(1)/etc/init.d/mysqld
        $(INSTALL_CONF) conf/my.cnf $(1)/etc/mysql
+       $(INSTALL_CONF) conf/mysqld.default $(1)/etc/default/mysqld
        $(INSTALL_DIR) $(1)$(PLUGIN_DIR)
        $(INSTALL_CONF) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/daemon_example.ini $(1)$(PLUGIN_DIR)
        $(INSTALL_DIR) $(1)/usr/share/mysql/english
@@ -477,8 +511,9 @@ define Package/mariadb-server-extra/install
 endef
 
 define Package/mariadb-server/conffiles
+/etc/default/mysqld
 /etc/mysql/my.cnf
-/usr/lib/mysql/plugin/daemon_example.ini
+$(PLUGIN_DIR)/daemon_example.ini
 endef
 
 define BuildPlugin
@@ -503,7 +538,7 @@ This package provides the $(1) plugin.
 endef
 
 $(eval $(call HostBuild))
-$(eval $(call BuildPackage,libmariadbclient))
+$(eval $(call BuildPackage,libmariadb))
 $(eval $(call BuildPackage,mariadb-client))
 $(eval $(call BuildPackage,mariadb-client-extra))
 $(eval $(call BuildPackage,mariadb-extra-charsets))
@@ -525,9 +560,11 @@ $(eval $(call BuildPlugin,file_key_management,))
 $(eval $(call BuildPlugin,ha_archive,))
 $(eval $(call BuildPlugin,ha_blackhole,))
 $(eval $(call BuildPlugin,ha_connect,+libxml2))
+$(eval $(call BuildPlugin,ha_example,))
 $(eval $(call BuildPlugin,ha_federated,))
 $(eval $(call BuildPlugin,ha_federatedx,))
-$(eval $(call BuildPlugin,ha_innodb,))
+$(eval $(call BuildPlugin,ha_sequence,))
+$(eval $(call BuildPlugin,ha_sphinx,))
 $(eval $(call BuildPlugin,ha_spider,))
 $(eval $(call BuildPlugin,ha_test_sql_discovery,))
 $(eval $(call BuildPlugin,handlersocket,))
index ec2ade2c8952ee6678b3262de24e6d0d8421c02f..effa88a7717cc7d8b22efd655a4426ada33f5a1e 100644 (file)
@@ -1,10 +1,10 @@
 [client]
 port           = 3306
-socket         = /var/run/mysqld.sock
+socket         = /var/run/mysqld/mysqld.sock
 
 [mysqld]
-user           = root
-socket         = /var/run/mysqld.sock
+user           = mariadb
+socket         = /var/run/mysqld/mysqld.sock
 port           = 3306
 basedir                = /usr
 
@@ -21,21 +21,21 @@ skip-external-locking
 bind-address           = 127.0.0.1
 
 # Fine Tuning
-key_buffer             = 16M
+key_buffer_size                = 16M
 max_allowed_packet     = 16M
 thread_stack           = 192K
-thread_cache_size       = 8
+thread_cache_size      = 8
 
 # Here you can see queries with especially long duration
 #log_slow_queries      = /var/log/mysql/mysql-slow.log
-#long_query_time = 2
+#long_query_time       = 2
 #log-queries-not-using-indexes
 
 # The following can be used as easy to replay backup logs or for replication.
 #server-id             = 1
-#log_bin                       = /var/log/mysql/mysql-bin.log
+#log_bin               = /var/log/mysql/mysql-bin.log
 #expire_logs_days      = 10
-#max_binlog_size         = 100M
+#max_binlog_size       = 100M
 #binlog_do_db          = include_database_name
 #binlog_ignore_db      = include_database_name
 
diff --git a/utils/mariadb/conf/mysqld.default b/utils/mariadb/conf/mysqld.default
new file mode 100644 (file)
index 0000000..fe9c698
--- /dev/null
@@ -0,0 +1,10 @@
+# The user and group that will run the MySQL server. The user mariadb is
+# automatically created by the mariadb-server package, hence that is the
+# default choice.
+
+#MY_USER=mariadb
+#MY_GROUP=mariadb
+
+# Additional arguments you want to pass to the MySQL server.
+
+#MY_ARGS=""
index fcd08d61edea6c7dc7560214e43c6a491cb36001..abc99fc7a98bfa7c8775b7cc8ac47c4e973d0576 100644 (file)
@@ -1,32 +1,53 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2010-2011 OpenWrt.org
+# Copyright (C) 2010-2018 OpenWrt.org
 
 START=95
 STOP=10
 
-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
-SERVICE_STOP_TIME=9
-PROG='/usr/bin/mysqld'
+USE_PROCD=1
 
-start() {
+#PROCD_DEBUG=1
+
+MYSQLD=mysqld
+
+DEFAULT=/etc/default/$MYSQLD
+LOGGER="/usr/bin/logger -p user.err -s -t $MYSQLD"
+PROG=/usr/bin/$MYSQLD
+
+unset MY_ARGS MY_GROUP MY_USER
+
+[ -f $DEFAULT ] && . $DEFAULT
+
+my_user="${MY_USER:-mariadb}"
+my_group="${MY_GROUP:-mariadb}"
+
+start_service() {
        local conf='/etc/mysql/my.cnf'
        local datadir="$( sed -nE "s/^\s*datadir\s*=\s*('([^']*)'|\x22([^\x22]*)\x22|(.*\S))\s*$/\2\3\4/p" "$conf" )"
 
        [ -d "$datadir" ] || {
-               logger -s "[ERROR] datadir '$datadir' in '$conf' does not exist"
+               $LOGGER "datadir '$datadir' in '$conf' does not exist"
                return 1
        }
 
        [ -f "$datadir/mysql/tables_priv.MYD" ] || {
-               logger -s "[ERROR] can not detect privileges table, you might need to"
-               logger -s "run 'mysql_install_db --force' to initialize the system tables"
+               $LOGGER "cannot detect privileges table, you might need to"
+               $LOGGER "run 'mysql_install_db --force' to initialize the system tables"
                return 1
        }
 
-       service_start "$PROG"
-}
+       mkdir -p /var/lib/mysql
+       chown "$my_user":"$my_group" /var/lib/mysql
+
+       mkdir -p /var/run/mysqld
+       chown "$my_user":"$my_group" /var/run/mysqld
+
+       procd_open_instance
+
+       procd_set_param command $PROG $MY_ARGS
+       procd_set_param pidfile /var/run/mysqld.pid
+       # forward stderr to logd
+       procd_set_param stderr 1
 
-stop() {
-       service_stop "$PROG"
+       procd_close_instance
 }
index 05a0fc6db14a677e387e843e80ba95a3c86b137b..4e6f22bdddd14aab54267b3a6a1a4f3bc6a6f16e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/scripts/mysql_install_db.sh
 +++ b/scripts/mysql_install_db.sh
-@@ -379,7 +379,7 @@ fi
+@@ -383,7 +383,7 @@ fi
  
  
  # Try to determine the hostname
index 8baec289369753a2cb5dacc2bc2492e236572ada..00d674ce985250bc6bbcd78404725efe5d839436 100644 (file)
@@ -1,9 +1,9 @@
 --- a/configure.cmake
 +++ b/configure.cmake
-@@ -1107,9 +1107,12 @@ SET(CMAKE_EXTRA_INCLUDE_FILES)
- CHECK_STRUCT_HAS_MEMBER("struct dirent" d_ino "dirent.h"  STRUCT_DIRENT_HAS_D_INO)
- CHECK_STRUCT_HAS_MEMBER("struct dirent" d_namlen "dirent.h"  STRUCT_DIRENT_HAS_D_NAMLEN)
- SET(SPRINTF_RETURNS_INT 1)
+@@ -1018,9 +1018,12 @@ CHECK_STRUCT_HAS_MEMBER("struct sockaddr
+ SET(CMAKE_EXTRA_INCLUDE_FILES) 
 -CHECK_INCLUDE_FILE(ucontext.h HAVE_UCONTEXT_H)
 -IF(NOT HAVE_UCONTEXT_H)
 -  CHECK_INCLUDE_FILE(sys/ucontext.h HAVE_UCONTEXT_H)
index f223da1a165422e4800b91836fb82cf15e1508be..e4a04eea76141c2d727828cd8f29c7cc4a9df8d3 100644 (file)
@@ -14,7 +14,7 @@ Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
      ${LIBM} ${LIBNSL} ${LIBBIND} ${LIBCRYPT} ${LIBSOCKET} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT} ${LIBRT} ${LIBEXECINFO})
    # Need explicit pthread for gcc -fsanitize=address
    IF(CMAKE_USE_PTHREADS_INIT AND CMAKE_C_FLAGS MATCHES "-fsanitize=")
-@@ -1038,7 +1038,26 @@ ELSEIF(NOT WITH_ATOMIC_OPS)
+@@ -952,7 +952,26 @@ ELSEIF(NOT WITH_ATOMIC_OPS)
      long long int *ptr= &var;
      return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
    }"
@@ -73,29 +73,9 @@ Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
  #ifdef MY_ATOMIC_MODE_DUMMY
  #define make_atomic_load_body(S)   ret= *a
  #define make_atomic_store_body(S)  *a= v
---- a/include/atomic/nolock.h
-+++ b/include/atomic/nolock.h
-@@ -17,7 +17,7 @@
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
- #if defined(__i386__) || defined(_MSC_VER) || defined(__x86_64__)   \
--    || defined(HAVE_GCC_ATOMIC_BUILTINS) \
-+    || defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS) \
-     || defined(HAVE_SOLARIS_ATOMIC)
- #  ifdef MY_ATOMIC_MODE_DUMMY
-@@ -41,7 +41,7 @@
- #  elif __GNUC__
- #    if defined(HAVE_SOLARIS_ATOMIC)
- #      include "solaris.h"
--#    elif defined(HAVE_GCC_ATOMIC_BUILTINS)
-+#    elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS)
- #      include "gcc_builtins.h"
- #    elif defined(__i386__) || defined(__x86_64__)
- #      include "x86-gcc.h"
 --- a/mysys/CMakeLists.txt
 +++ b/mysys/CMakeLists.txt
-@@ -78,6 +78,10 @@ IF(HAVE_BFD_H)
+@@ -80,6 +80,10 @@ IF(HAVE_BFD_H)
    TARGET_LINK_LIBRARIES(mysys bfd)  
  ENDIF(HAVE_BFD_H)
  
@@ -108,7 +88,7 @@ Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
  ENDIF(WIN32)
 --- a/sql/CMakeLists.txt
 +++ b/sql/CMakeLists.txt
-@@ -165,6 +165,10 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATI
+@@ -170,6 +170,10 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATI
    ${SSL_LIBRARIES}
    ${LIBSYSTEMD})
  
@@ -119,3 +99,14 @@ Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
  IF(WIN32)
    SET(MYSQLD_SOURCE main.cc nt_servc.cc message.rc)
    TARGET_LINK_LIBRARIES(sql psapi)
+--- a/include/my_atomic.h
++++ b/include/my_atomic.h
+@@ -126,7 +126,7 @@
+ #include "atomic/generic-msvc.h"
+ #elif defined(HAVE_SOLARIS_ATOMIC)
+ #include "atomic/solaris.h"
+-#elif defined(HAVE_GCC_ATOMIC_BUILTINS)
++#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS)
+ #include "atomic/gcc_builtins.h"
+ #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+ #include "atomic/x86-gcc.h"
diff --git a/utils/mariadb/patches/150-mips-innobase-atomic.patch b/utils/mariadb/patches/150-mips-innobase-atomic.patch
deleted file mode 100644 (file)
index dd7db7c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Author: James Cowgill <jcowgill@debian.org>
-Description: fix FTBFS on 32-bit mips*
-Bug-Debian: #864298
-
---- a/storage/innobase/include/os0sync.h
-+++ b/storage/innobase/include/os0sync.h
-@@ -37,6 +37,7 @@ Created 9/6/1995 Heikki Tuuri
- #include "univ.i"
- #include "ut0lst.h"
-+#include "sync0types.h"
- /** CPU cache line size */
- #ifdef __powerpc__
index e4b5a4a82af6c843cff4ef594b63a7bbeb005fc3..7cfa667a185408c7db94b3f847516b5fdba4276f 100644 (file)
@@ -27,12 +27,14 @@ directly was the first solution adopted in MariaDB [2].
 
 --- a/storage/xtradb/include/ut0ut.h
 +++ b/storage/xtradb/include/ut0ut.h
-@@ -86,8 +86,7 @@ private:
+@@ -85,9 +85,8 @@ private:
+    the YieldProcessor macro defined in WinNT.h. It is a CPU architecture-
     independent way by using YieldProcessor. */
  #  define UT_RELAX_CPU() YieldProcessor()
- # elif defined(__powerpc__)
+-# elif defined(__powerpc__) && defined __GLIBC__
 -#include <sys/platform/ppc.h>
 -#  define UT_RELAX_CPU() __ppc_get_timebase()
++# elif defined(__powerpc__)
 +#  define UT_RELAX_CPU() __builtin_ppc_get_timebase()
  # else
  #  define UT_RELAX_CPU() ((void)0) /* avoid warning for an empty statement */
@@ -51,25 +53,27 @@ directly was the first solution adopted in MariaDB [2].
  #  define UT_RESUME_PRIORITY_CPU() ((void)0)
 --- a/storage/innobase/include/ut0ut.h
 +++ b/storage/innobase/include/ut0ut.h
-@@ -89,8 +89,7 @@ private:
+@@ -70,9 +70,8 @@ typedef time_t       ib_time_t;
+    the YieldProcessor macro defined in WinNT.h. It is a CPU architecture-
     independent way by using YieldProcessor. */
- #  define UT_RELAX_CPU() YieldProcessor()
- # elif defined(__powerpc__)
--#include <sys/platform/ppc.h>
--#  define UT_RELAX_CPU() __ppc_get_timebase()
-+#  define UT_RELAX_CPU() __builtin_ppc_get_timebase()
- # else
- #  define UT_RELAX_CPU() ((void)0) /* avoid warning for an empty statement */
- # endif
-@@ -104,9 +103,8 @@ private:
+ # define UT_RELAX_CPU() YieldProcessor()
+-#elif defined(__powerpc__) && defined __GLIBC__
+-# include <sys/platform/ppc.h>
+-# define UT_RELAX_CPU() __ppc_get_timebase()
++#elif defined(__powerpc__)
++# define UT_RELAX_CPU() __builtin_ppc_get_timebase()
+ #else
+ # define UT_RELAX_CPU() do { \
+      volatile int32   volatile_var; \
+@@ -90,9 +89,8 @@ typedef time_t       ib_time_t;
  #endif
  
- # if defined(HAVE_HMT_PRIORITY_INSTRUCTION)
--#include <sys/platform/ppc.h>
--#  define UT_LOW_PRIORITY_CPU() __ppc_set_ppr_low()
--#  define UT_RESUME_PRIORITY_CPU() __ppc_set_ppr_med()
-+#  define UT_LOW_PRIORITY_CPU() __asm__  __volatile__ ("or 1,1,1")
-+#  define UT_RESUME_PRIORITY_CPU() __asm__ __volatile__ ("or 2,2,2")
- # else
- #  define UT_LOW_PRIORITY_CPU() ((void)0)
- #  define UT_RESUME_PRIORITY_CPU() ((void)0)
+ #if defined(HAVE_HMT_PRIORITY_INSTRUCTION)
+-# include <sys/platform/ppc.h>
+-# define UT_LOW_PRIORITY_CPU() __ppc_set_ppr_low()
+-# define UT_RESUME_PRIORITY_CPU() __ppc_set_ppr_med()
++# define UT_LOW_PRIORITY_CPU() __asm__  __volatile__ ("or 1,1,1")
++# define UT_RESUME_PRIORITY_CPU() __asm__ __volatile__ ("or 2,2,2")
+ #else
+ # define UT_LOW_PRIORITY_CPU() ((void)0)
+ # define UT_RESUME_PRIORITY_CPU() ((void)0)
index 52b8f880f92a287a35ee70ecb3bf61335fe4190c..1277ab15c2b235b9b941293ccdf01e21f1282dbf 100644 (file)
@@ -6,14 +6,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mc
-PKG_VERSION:=4.8.20
-PKG_RELEASE:=2
+PKG_VERSION:=4.8.21
+PKG_RELEASE:=1
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
 PKG_LICENSE:=GPL-3.0+
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://ftp.midnight-commander.org/
-PKG_HASH:=017ee7f4f8ae420a04f4d6fcebaabe5b494661075c75442c76e9c8b1923d501c
+PKG_HASH:=8f37e546ac7c31c9c203a03b1c1d6cb2d2f623a300b86badfd367e5559fe148c
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf gettext-version
 
index 259a52f3b8851ef15de765b9cabbabdd7c43ac88..62c78a7563f707d7f383b85a589130c6af360166 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nano
-PKG_VERSION:=2.9.7
+PKG_VERSION:=2.9.8
 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:=b64ab017305b1777e97b5b9b07b31db8aeebfc3e8719f61e8da1cf3866d344bd
+PKG_HASH:=c2deac31ba4d3fd27a42fafcc47ccf499296cc69a422bbecab63f2933ea85488
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
index f1350cfb2b11b5a1182c1634f53d383694a52dcf..c5dd532d7fa8e45f7ceb2301eb1a9c88751c592e 100644 (file)
@@ -8,9 +8,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=opensc
-PKG_VERSION:=0.17.0
+PKG_VERSION:=0.18.0
 PKG_RELEASE:=1
-PKG_HASH:=be73c6816867ab4721e6a9ae7dba8e890c5f169f0a2cbb4bf354e0f30a948300
+PKG_HASH:=9bc0ff030dd1c10f646d54415eae1bb2b1c72dda710378343f027e17cd8c3757
 
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING
index 0c2fa8485e87247d59f8b9427050e75d0df7326e..2c38ae353d18aa495a7c3791494ef4cb25991b16 100644 (file)
@@ -4,8 +4,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=prometheus-node-exporter-lua
-PKG_VERSION:=2017.12.08
-PKG_RELEASE:=4
+PKG_VERSION:=2018.06.26
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Christian Simon <simon@swine.de>
 PKG_LICENSE:=Apache-2.0
index 9d083dbf0402d9a67bc39dce01c3838d7e581928..17e35bf7842e6418b77394eab6037c1f3ba7ca66 100644 (file)
@@ -3,18 +3,21 @@ local function scrape()
   local stat = get_contents("/proc/stat")
 
   -- system boot time, seconds since epoch
-  metric("node_boot_time", "gauge", nil, string.match(stat, "btime ([0-9]+)"))
+  metric("node_boot_time_seconds", "gauge", nil,
+    string.match(stat, "btime ([0-9]+)"))
 
   -- context switches since boot (all CPUs)
-  metric("node_context_switches", "counter", nil, string.match(stat, "ctxt ([0-9]+)"))
+  metric("node_context_switches_total", "counter", nil,
+    string.match(stat, "ctxt ([0-9]+)"))
 
   -- cpu times, per CPU, per mode
   local cpu_mode = {"user", "nice", "system", "idle", "iowait", "irq",
                     "softirq", "steal", "guest", "guest_nice"}
   local i = 0
-  local cpu_metric = metric("node_cpu", "counter")
+  local cpu_metric = metric("node_cpu_seconds_total", "counter")
   while true do
-    local cpu = {string.match(stat, "cpu"..i.." (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+)")}
+    local cpu = {string.match(stat,
+      "cpu"..i.." (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+)")}
     if #cpu ~= 10 then
       break
     end
@@ -25,16 +28,20 @@ local function scrape()
   end
 
   -- interrupts served
-  metric("node_intr", "counter", nil, string.match(stat, "intr ([0-9]+)"))
+  metric("node_intr_total", "counter", nil,
+    string.match(stat, "intr ([0-9]+)"))
 
   -- processes forked
-  metric("node_forks", "counter", nil, string.match(stat, "processes ([0-9]+)"))
+  metric("node_forks_total", "counter", nil,
+    string.match(stat, "processes ([0-9]+)"))
 
   -- processes running
-  metric("node_procs_running", "gauge", nil, string.match(stat, "procs_running ([0-9]+)"))
+  metric("node_procs_running_total", "gauge", nil,
+    string.match(stat, "procs_running ([0-9]+)"))
 
   -- processes blocked for I/O
-  metric("node_procs_blocked", "gauge", nil, string.match(stat, "procs_blocked ([0-9]+)"))
+  metric("node_procs_blocked_total", "gauge", nil,
+    string.match(stat, "procs_blocked ([0-9]+)"))
 end
 
 return { scrape = scrape }
index 01f262b47ad6cc809b5efe188118ec0d558124bd..cf836e3e434280ab1430685d4a1f7f49379f28bb 100644 (file)
@@ -4,7 +4,8 @@ local function scrape()
     if unit == 'kB' then
       size = size * 1024
     end
-    metric("node_memory_" .. name:gsub("[):]", ""):gsub("[(]", "_"), "gauge", nil, size)
+    metric("node_memory_"..name:gsub("[):]", ""):gsub("[(]", "_").."_bytes",
+        "gauge", nil, size)
   end
 end
 
index 9127e12b481e6a5194fcbcd85287a82acba7ae44..4aff513b3f1cd72fbc7d9ef652ea7267cedf2110 100644 (file)
@@ -1,9 +1,23 @@
 
-local netdevsubstat = {"receive_bytes", "receive_packets", "receive_errs",
-                   "receive_drop", "receive_fifo", "receive_frame", "receive_compressed",
-                   "receive_multicast", "transmit_bytes", "transmit_packets",
-                   "transmit_errs", "transmit_drop", "transmit_fifo", "transmit_colls",
-                   "transmit_carrier", "transmit_compressed"}
+local netdevsubstat = {
+    "receive_bytes_total",
+    "receive_packets_total",
+    "receive_errs_total",
+    "receive_drop_total",
+    "receive_fifo_total",
+    "receive_frame_total",
+    "receive_compressed_total",
+    "receive_multicast_total",
+    "transmit_bytes_total",
+    "transmit_packets_total",
+    "transmit_errs_total",
+    "transmit_drop_total",
+    "transmit_fifo_total",
+    "transmit_colls_total",
+    "transmit_carrier_total",
+    "transmit_compressed_total"
+}
+
 local pattern = "([^%s:]+):%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)"
 
 local function scrape()
index cd62bffaca759d460cea4e37aaf0a7f2b99adad3..bd6b87c39506d388449ea35fd833cef992ada9c7 100644 (file)
@@ -1,10 +1,20 @@
+local netsubstat = {
+    "IcmpMsg",
+    "Icmp",
+    "IpExt",
+    "Ip",
+    "TcpExt",
+    "Tcp",
+    "UdpLite",
+    "Udp"
+}
+
 local function scrape()
   -- NOTE: Both of these are missing in OpenWRT kernels.
   --       See: https://dev.openwrt.org/ticket/15781
   local netstat = get_contents("/proc/net/netstat") .. get_contents("/proc/net/snmp")
 
   -- all devices
-  local netsubstat = {"IcmpMsg", "Icmp", "IpExt", "Ip", "TcpExt", "Tcp", "UdpLite", "Udp"}
   for i, nss in ipairs(netsubstat) do
     local substat_s = string.match(netstat, nss .. ": ([A-Z][A-Za-z0-9 ]+)")
     if substat_s then
index 2f5030d7ad0fbd5d3ec405d6a499e43d6e80237e..8b9785a27dc0c4136fcab90d00c462ffa25f91de 100644 (file)
@@ -6,7 +6,7 @@ local labels = {
     board_name = string.sub(get_contents("/tmp/sysinfo/board_name"), 1, -2)
 }
 
-for k, v in string.gmatch(get_contents("/etc/openwrt_release"), "(DISTRIB_%w+)='(%w+)'\n") do
+for k, v in string.gmatch(get_contents("/etc/openwrt_release"), "(DISTRIB_%w+)='(.-)'\n") do
     if k == "DISTRIB_ID" then
         labels["id"] = v
     elseif k == "DISTRIB_RELEASE" then
index d0abb66a188ab7b8384f6837bfc02073f861b267..83c05290d864656b225b39317b95ffd6f0e38043 100644 (file)
@@ -1,6 +1,6 @@
 local function scrape()
   -- current time
-  metric("node_time", "counter", nil, os.time())
+  metric("node_time_seconds", "counter", nil, os.time())
 end
 
 return { scrape = scrape }
index 975b7dd5f21c1a1c7d30aef306ea0539f507d8af..da36db9733e1e7fab976d3ccfc6935da3d2befe5 100644 (file)
@@ -4,8 +4,8 @@ local iwinfo = require "iwinfo"
 local function scrape()
   local metric_wifi_network_quality = metric("wifi_network_quality","gauge")
   local metric_wifi_network_bitrate = metric("wifi_network_bitrate","gauge")
-  local metric_wifi_network_noise = metric("wifi_network_noise","gauge")
-  local metric_wifi_network_signal = metric("wifi_network_signal","gauge")
+  local metric_wifi_network_noise = metric("wifi_network_noise_dbm","gauge")
+  local metric_wifi_network_signal = metric("wifi_network_signal_dbm","gauge")
 
   local u = ubus.connect()
   local status = u:call("network.wireless", "status", {})
index 06c79a8bd871252b1d24689c716320f4e5ac14d5..19b5b1eab2a614437088d6d9b0e892d836202b49 100644 (file)
@@ -2,9 +2,9 @@ local ubus = require "ubus"
 local iwinfo = require "iwinfo"
 
 local function scrape()
-  local metric_wifi_station_signal = metric("wifi_station_signal","gauge")
-  local metric_wifi_station_tx_packets = metric("wifi_station_tx_packets","gauge")
-  local metric_wifi_station_rx_packets = metric("wifi_station_rx_packets","gauge")
+  local metric_wifi_station_signal = metric("wifi_station_signal_dbm","gauge")
+  local metric_wifi_station_tx_packets = metric("wifi_station_tx_packets_total","gauge")
+  local metric_wifi_station_rx_packets = metric("wifi_station_rx_packets_total","gauge")
 
   local u = ubus.connect()
   local status = u:call("network.wireless", "status", {})
index a56451c67de52359e930b93523e97bb9ebf97980..d75007c83c03136158184474516dc6e14d034f1a 100644 (file)
@@ -96,6 +96,34 @@ define Package/qemu-bridge-helper/install
        $(INSTALL_DATA) ./files/bridge.conf $(1)/etc/qemu
 endef
 
+define Package/qemu-img
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Virtualization
+ TITLE:=QEMU Image utility
+ URL:=http://www.qemu.org
+ DEPENDS:=+glib2 $(CXX_DEPENDS) $(QEMU_DEPS_IN_HOST)
+endef
+
+define Package/qemu-img/install
+       $(INSTALL_DIR) $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/qemu-img $(1)/usr/bin/qemu-img
+endef
+
+define Package/qemu-nbd
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Virtualization
+ TITLE:=QEMU Network Block Device Utility
+ URL:=http://www.qemu.org
+ DEPENDS:=+glib2 $(CXX_DEPENDS) $(QEMU_DEPS_IN_HOST) +kmod-nbd
+endef
+
+define Package/qemu-nbd/install
+       $(INSTALL_DIR) $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/qemu-nbd $(1)/usr/sbin/qemu-nbd
+endef
+
 PKG_CONFIG_DEPENDS += CONFIG_PACKAGE_qemu-ga
 
 # Naming rules used in qemu Makefile.target
@@ -246,6 +274,8 @@ MAKE_FLAGS:=$(filter-out    \
 QEMU_MAKE_TARGETS := \
        $(if $(CONFIG_PACKAGE_qemu-ga),qemu-ga) \
        $(if $(CONFIG_PACKAGE_qemu-bridge-helper),qemu-bridge-helper) \
+       $(if $(CONFIG_PACKAGE_qemu-img),qemu-img) \
+       $(if $(CONFIG_PACKAGE_qemu-nbd),qemu-nbd) \
        $(foreach target,$(QEMU_TARGET_LIST),$(if $(CONFIG_PACKAGE_qemu-$(target)),subdir-$(target))) \
 
 define Build/Compile
@@ -255,6 +285,8 @@ endef
 $(eval $(call BuildPackage,virtio-console-helper))
 $(eval $(call BuildPackage,qemu-ga))
 $(eval $(call BuildPackage,qemu-bridge-helper))
+$(eval $(call BuildPackage,qemu-img))
+$(eval $(call BuildPackage,qemu-nbd))
 $(eval $(call BuildPackage,qemu-blobs))
 $(foreach target,$(QEMU_TARGET_LIST), \
   $(eval $(call BuildPackage,qemu-$(target))) \
index 3e375122a9bdf33130c8c24ebb6d146157703f17..2732bd42910336dea20b247fdbc5fb3166f8b5fd 100644 (file)
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rtl-sdr
 PKG_VERSION:=0.5.3-20150608-$(PKG_SOURCE_VERSION)
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://git.osmocom.org/rtl-sdr.git
diff --git a/utils/rtl-sdr/patches/101-fix-inlines.patch b/utils/rtl-sdr/patches/101-fix-inlines.patch
new file mode 100644 (file)
index 0000000..c30cc8d
--- /dev/null
@@ -0,0 +1,66 @@
+From 6c01778cf7ff81d9a571291fee615b65961ca1d5 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <dwmw2@infradead.org>
+Date: Thu, 28 Jun 2018 16:21:11 +0100
+Subject: [PATCH] Fix inline functions to use 'static inline'
+
+With just 'inline', if the compiler decides not to inline them, it isn't
+required to emit them at all. For some targets with -Os that is causing
+build failures.
+
+Perhaps we might consider using '__attribute__((always_inline))' for
+GCC builds, but 'static inline' is a good start.
+---
+ src/rtl_adsb.c  | 8 ++++----
+ src/rtl_power.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/rtl_adsb.c b/src/rtl_adsb.c
+index 9087de4..7aea8dd 100644
+--- a/src/rtl_adsb.c
++++ b/src/rtl_adsb.c
+@@ -183,7 +183,7 @@ int magnitute(uint8_t *buf, int len)
+       return len/2;
+ }
+-inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d)
++static inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d)
+ /* takes 4 consecutive real samples, return 0 or 1, BADSAMPLE on error */
+ {
+       int bit, bit_p;
+@@ -224,17 +224,17 @@ inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, uint16_t d
+       return BADSAMPLE;
+ }
+-inline uint16_t min16(uint16_t a, uint16_t b)
++static inline uint16_t min16(uint16_t a, uint16_t b)
+ {
+       return a<b ? a : b;
+ }
+-inline uint16_t max16(uint16_t a, uint16_t b)
++static inline uint16_t max16(uint16_t a, uint16_t b)
+ {
+       return a>b ? a : b;
+ }
+-inline int preamble(uint16_t *buf, int i)
++static inline int preamble(uint16_t *buf, int i)
+ /* returns 0/1 for preamble at index i */
+ {
+       int i2;
+diff --git a/src/rtl_power.c b/src/rtl_power.c
+index 00f4d9f..625d818 100644
+--- a/src/rtl_power.c
++++ b/src/rtl_power.c
+@@ -250,7 +250,7 @@ void sine_table(int size)
+       }
+ }
+-inline int16_t FIX_MPY(int16_t a, int16_t b)
++static inline int16_t FIX_MPY(int16_t a, int16_t b)
+ /* fixed point multiply and scale */
+ {
+       int c = ((int)a * (int)b) >> 14;
+-- 
+2.7.4
+
index b86124a744d6e309502d3a9e610e661d14b2642d..5e9f7084cceb4eecac55307ae06ada14f4a8c32f 100755 (executable)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rtty
-PKG_VERSION:=4.1.2
-PKG_RELEASE:=1
+PKG_VERSION:=5.1.0
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_SOURCE_URL=https://github.com/zhaojh329/rtty.git
-PKG_MIRROR_HASH:=f0791728f21815cd2164889a494c14be2f7683c4200193a6270e9ff9b70a5ad6
+PKG_MIRROR_HASH:=0d81595305abae252b2914e53d0aa8e64de433357c147fd6391363a223c694d8
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
 
@@ -31,7 +31,7 @@ define Package/rtty/default
   CATEGORY:=Utilities
   SUBMENU:=Terminal
   TITLE:=A reverse proxy WebTTY
-  DEPENDS:=+libblobmsg-json
+  DEPENDS:=+libprotobuf-c
 endef
 
 define Package/rtty/default/description
index 4437a7bcdeff4e492ff9c0a11ed4a72afb75d4f2..caccb4523ff03f795d54604006eaba2b34923a2d 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Copyright (C) 2006-2016 OpenWrt.org
-# Copyright (C) 2017 Luiz Angelo Daros de Luca <luizluca@gmail.com>
+# Copyright (C) 2017-2018 Luiz Angelo Daros de Luca <luizluca@gmail.com>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sane-backends
 PKG_VERSION:=1.0.27
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://fossies.org/linux/misc \
     https://alioth.debian.org/frs/download.php/file/4146/
@@ -136,7 +136,7 @@ define Package/libsane
   $(call Package/sane-backends/Default)
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=+libusb-compat
+  DEPENDS:=+libusb-1.0
   TITLE+= (libraries)
 endef
 
index fff1dbd517861f604d6887a3e396254b38d78d6e..76500c9f5a8b9e6ef587b94e633bda8ce9c623e5 100644 (file)
@@ -8,29 +8,34 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sispmctl
-PKG_VERSION:=3.1+20120206
+PKG_VERSION:=4.0
 PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=5ff4a05a5bcb6a64a9d6f77fed47014512f66b11
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_HASH:=d09782160dbcc1ba3bd6a38941f38e130049d8383843f6f292409909678aed82
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=git://git.code.sf.net/p/sispmctl/git
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_HASH:=442d9bb9774da7214c222144035ac68ad5d25171040ce2731cfdf49b3365cfd5
 PKG_MAINTAINER:=Richard Kunze <richard.kunze@web.de>
 PKG_LICENSE:=GPL-2.0+
 
+PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
-PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
 
+define Package/libsispmctl
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=Silver Shield PM Control for Linux library
+  URL:=http://sispmctl.sourceforge.net
+  DEPENDS:=+libusb-compat
+endef
+
 define Package/sispmctl
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=Silver Shield PM Control for Linux
-  URL:=http://sispmctl.sourceforge.net/
-  DEPENDS:=+libusb-compat
+  URL:=http://sispmctl.sourceforge.net
+  DEPENDS:=+libsispmctl
 endef
 
 define Package/sispmctl/description
@@ -49,9 +54,15 @@ CONFIGURE_ARGS += \
        --enable-webless \
        --disable-dependency-tracking
 
+define Package/libsispmctl/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libsispmctl* $(1)/usr/lib/
+endef
+
 define Package/sispmctl/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sispmctl $(1)/usr/bin/
 endef
 
+$(eval $(call BuildPackage,libsispmctl))
 $(eval $(call BuildPackage,sispmctl))
diff --git a/utils/sispmctl/patches/001-fix-includes.patch b/utils/sispmctl/patches/001-fix-includes.patch
deleted file mode 100644 (file)
index 218e22e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/src/sispm_ctl.c
-+++ b/src/sispm_ctl.c
-@@ -33,6 +33,7 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <time.h>
-+#include <sys/types.h>
- #include <usb.h>
- #include <assert.h>
- #include "sispm_ctl.h"
---- a/src/main.c
-+++ b/src/main.c
-@@ -34,11 +34,11 @@
- #define __USE_XOPEN
- #include <time.h>
- #include <signal.h>
--#include <usb.h>
- #include <assert.h>
- #include <getopt.h>
- #include <sys/types.h>
- #include <sys/socket.h>
-+#include <usb.h>
- #include <fcntl.h>
index 1136acb83ec799ad4d4b472c0ee0a779f0a954cb..6250dfe397f98dd4fb16b28f73c735e46a0c17c9 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=stm32flash
-PKG_VERSION:=0.4
+PKG_VERSION:=0.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://sourceforge.net/projects/stm32flash/files
-PKG_HASH:=023f28b01f644edc235c8815a4352e359d3ebdbe6368aaf6bbc28bab3e6ffa5b
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_HASH:=97aa9422ef02e82f7da9039329e21a437decf972cb3919ad817f70ac9a49e306
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
 PKG_MAINTAINER:=Christian Pointner <equinox@spreadspace.org>
 PKG_LICENSE:=GPL-2.0+
index 60df6f57992684821f61aa9c95f8ede67b2a1592..1ce603c35719177d42134f4d156794e635a48b6b 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sysstat
-PKG_VERSION:=11.6.0
-PKG_RELEASE:=2
+PKG_VERSION:=11.6.4
+PKG_RELEASE:=1
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://pagesperso-orange.fr/sebastien.godard/
-PKG_HASH:=14bb696545cba0d99e3492092c9ed15fe9b6da79df349695251b41d345e969a7
+PKG_HASH:=6aa6398b200f09a2874fffc9c31eb943aea64d707a4afe5f5f1751d876157b09
 
 PKG_INSTALL:=1
 
index 06c7813275d9abcf7a352344f185de26fc61ceef..4eb1f3381c234fa3578c9c6938362af544b704a8 100644 (file)
@@ -7,10 +7,10 @@
 +#include <limits.h>
  #include <sys/types.h>
  #include <sys/stat.h>
+ #include <ctype.h>
 --- a/common.c
 +++ b/common.c
-@@ -30,6 +30,7 @@
+@@ -32,6 +32,7 @@
  #include <dirent.h>
  #include <ctype.h>
  #include <libgen.h>
diff --git a/utils/sysstat/patches/110-remove-sccsid.patch b/utils/sysstat/patches/110-remove-sccsid.patch
deleted file mode 100644 (file)
index 05c1032..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Wed, 9 Sep 2015 21:37:37 +0200
-Subject: Remove scscid()
-
-Remove sccsid() function togethwe with SCCSID string that
-contained __DATE__ and __TIME__ macros. This should cause
-binary to be more reproducible, see
-https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros
----
- cifsiostat.c | 3 ---
- iostat.c     | 3 ---
- mpstat.c     | 3 ---
- pidstat.c    | 3 ---
- sadc.c       | 3 ---
- sadf.c       | 3 ---
- sar.c        | 3 ---
- tapestat.c   | 3 ---
- 8 files changed, 24 deletions(-)
-
-diff --git a/cifsiostat.c b/cifsiostat.c
-index a3c81d0..4668a7c 100644
---- a/cifsiostat.c
-+++ b/cifsiostat.c
-@@ -41,9 +41,6 @@
- #define _(string) (string)
- #endif
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- unsigned long long uptime0[2] = {0, 0};
- struct cifs_stats *st_cifs[2];
- struct io_hdr_stats *st_hdr_cifs;
-diff --git a/iostat.c b/iostat.c
-index 7b346e2..a0199d2 100644
---- a/iostat.c
-+++ b/iostat.c
-@@ -48,9 +48,6 @@
- #define _(string) (string)
- #endif
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- struct stats_cpu *st_cpu[2];
- unsigned long long uptime[2]  = {0, 0};
- unsigned long long uptime0[2] = {0, 0};
-diff --git a/mpstat.c b/mpstat.c
-index 1c83ea2..e4a040b 100644
---- a/mpstat.c
-+++ b/mpstat.c
-@@ -43,9 +43,6 @@
- #define _(string) (string)
- #endif
--#define SCCSID "@(#)sysstat-" VERSION ": "  __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- unsigned long long uptime[3] = {0, 0, 0};
- unsigned long long uptime0[3] = {0, 0, 0};
-diff --git a/pidstat.c b/pidstat.c
-index 876635c..5372176 100644
---- a/pidstat.c
-+++ b/pidstat.c
-@@ -47,9 +47,6 @@
- #define _(string) (string)
- #endif
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- unsigned long long uptime[3] = {0, 0, 0};
- unsigned long long uptime0[3] = {0, 0, 0};
- struct pid_stats *st_pid_list[3] = {NULL, NULL, NULL};
-diff --git a/sadc.c b/sadc.c
-index 7cdbc38..bfb4dac 100644
---- a/sadc.c
-+++ b/sadc.c
-@@ -52,9 +52,6 @@
- #include "sensors/error.h"
- #endif
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- long interval = 0;
- unsigned int flags = 0;
-diff --git a/sadf.c b/sadf.c
-index 160b485..0c0017c 100644
---- a/sadf.c
-+++ b/sadf.c
-@@ -41,9 +41,6 @@
- # define _(string) (string)
- #endif
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- long interval = -1, count = 0;
- unsigned int flags = 0;
-diff --git a/sar.c b/sar.c
-index ccf426e..07a9b4a 100644
---- a/sar.c
-+++ b/sar.c
-@@ -42,9 +42,6 @@
- #define _(string) (string)
- #endif
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- /* Interval and count parameters */
- long interval = -1, count = 0;
-diff --git a/tapestat.c b/tapestat.c
-index 268e4a5..df0a01b 100644
---- a/tapestat.c
-+++ b/tapestat.c
-@@ -58,9 +58,6 @@
- #define _(string) (string)
- #endif
--#define SCCSID "@(#)sysstat-" VERSION ": " __FILE__ " compiled " __DATE__ " " __TIME__
--char *sccsid(void) { return (SCCSID); }
--
- int cpu_nr = 0;               /* Nb of processors on the machine */
- int flags = 0;                /* Flag for common options and system state */
index 3d50cc8c69327f7e2735c761133f48032793f936..7495956ac466b570aa0088cfed447b236950f197 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tmux
 PKG_VERSION:=2.7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/tmux/tmux/releases/download/$(PKG_VERSION)
@@ -38,6 +38,10 @@ define Package/tmux/description
   tmux is a modern, BSD-licensed alternative to GNU screen.
 endef
 
+define Package/tmux/conffiles
+/etc/tmux.conf
+endef
+
 define Package/tmux/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/tmux $(1)/usr/bin/
index 6d7b9ed5c53e15e3e358ec99e9149dec1adefdce..a26fb8c398cfe8228fd4466209f52ef29cc80664 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unrar
-PKG_VERSION:=5.6.1
+PKG_VERSION:=5.6.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=unrarsrc-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.rarlab.com/rar
-PKG_HASH:=67c339dffa95f6c1bedcca40045e99de5852919dbfaa06e4a9c8f18cd5064e70
+PKG_HASH:=eba36a421bf41491818dee9507d934064622bc0bd9db6bbb8422a4706f200898
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>, \
                Ted Hess <thess@kitschensync.net>
 
index 2480c26572c98a324b7dcb11672eef88a5d26ca0..1e4190454c0ca041e1887f7c58425ed96d072eb4 100644 (file)
@@ -115,7 +115,8 @@ CONFIGURE_ARGS += \
        --disable-gpm \
        --disable-acl \
        --with-tlib=ncurses \
-       --with-compiledby="non-existent-hostname-compiled"
+       --with-compiledby="non-existent-hostname-compiled" \
+       --disable-darwin
 
 CONFIGURE_VARS += \
        vim_cv_getcwd_broken=no \
index 76e83db6bc53f7cf56f0017d77228c90b7f98f47..328ce4c94359d858140618aa6a419b94d59ce259 100644 (file)
@@ -12,5 +12,12 @@ if PACKAGE_yara
                default n
                help
                  Create rules based on behavioral info generated by a Cuckoo sandbox
+
+       config YARA_module_dotnet
+               bool "Dotnet module"
+               default n
+               help
+                 The dotnet module allows you to create more fine-grained rules
+                 for .NET files by using attributes and features of the .NET file format
 endif
 
index a15f78f0e81c2b5a7c2567fbe3c344d7dd2358e7..5ed2d19ca0dcffb54661425e8a9003cc6655e985 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=yara
-PKG_VERSION:=3.7.0
+PKG_VERSION:=3.7.1
 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:=01f0841e7387918c2b6d0b7fb48014bda41d1487be1cabf718a0576018969641
+PKG_HASH:=df077a29b0fffbf4e7c575f838a440f42d09b215fcb3971e6fb6360318a64892
 
 PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=1
@@ -29,7 +29,7 @@ define Package/yara
   URL:=http://virustotal.github.io/yara/
   MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
   DEPENDS:= +libopenssl
-  DEPENDS+= +YARA_module_magic:libmagic
+  DEPENDS+= +YARA_module_magic:file
   DEPENDS+= +YARA_module_cuckoo:jansson
   MENU:=1
 endef
@@ -41,9 +41,9 @@ define Package/yara/description
 endef
 
 CONFIGURE_ARGS += \
-       --disable-dotnet \
-       $(if $(YARA_module_magic),--enable,--disable)-magic \
-       $(if $(YARA_module_cuckoo),--enable,--disable)-cuckoo
+       $(if $(CONFIG_YARA_module_dotnet),--enable,--disable)-dotnet \
+       $(if $(CONFIG_YARA_module_magic),--enable,--disable)-magic \
+       $(if $(CONFIG_YARA_module_cuckoo),--enable,--disable)-cuckoo
 
 define Package/yara/config
        source "$(SOURCE)/Config.in"
index 427e07ec7c0b73d81d8617d1369718f31ad781f0..a6827e207df2d0b464bdbdc6cf0a3b9a79407654 100644 (file)
@@ -8,16 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=yunbridge
-PKG_VERSION:=160
+PKG_VERSION:=1.6.0
+PKG_RELEASE:=1
 
-PKG_RELEASE=$(PKG_SOURCE_VERSION)
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/arduino/YunBridge.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=f2042052115e71ad2c91f77e78d21db8275fcdd6
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=367db3667c6d2d8e20a0a214895e1bf2546918b008d084c3e7ca1adba9527dda
+PKG_SOURCE_URL:=https://codeload.github.com/arduino/YunBridge/tar.gz/$(PKG_VERSION)?
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=9e5ffc7a0d0cc2c92e972e425adcc49b77cf39da075d31728e7755d316d910d8
+PKG_BUILD_DIR:=YunBridge-$(PKG_VERSION)
 
 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
 PKG_LICENSE:=GPL-2.0
index 4c6c961404432115a728478002d19911b76a6cd9..5fce535468aa8db20979f73211cbe19e88777c25 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zsh
-PKG_VERSION:=5.4.2
+PKG_VERSION:=5.5.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/zsh
-PKG_HASH:=957bcdb2c57f64c02f673693ea5a7518ef24b6557aeb3a4ce222cefa6d74acc9
+PKG_HASH:=774caa89e7aea5f33c3033cbffd93e28707f72ba5149c79709e48e6c2d2ee080
 PKG_MAINTAINER:=Vadim A. Misbakh-Soloviov <openwrt-zsh@mva.name>
 PKG_LICENSE:=ZSH