Merge pull request #12342 from PolynomialDivision/feature/add_dawn_node_exporter
authorEtienne Champetier <champetier.etienne@gmail.com>
Sat, 27 Jun 2020 15:36:52 +0000 (11:36 -0400)
committerGitHub <noreply@github.com>
Sat, 27 Jun 2020 15:36:52 +0000 (11:36 -0400)
prometheus-node-exporter-lua: add dawn exporter

340 files changed:
.travis.yml
.travis_do.sh
admin/gkrellmd/Makefile
admin/ipmitool/Makefile
admin/ipmitool/patches/0006-CVE-2020-5208-fru-Fix-buffer-overflow-vulnerabilities.patch [new file with mode: 0644]
admin/ipmitool/patches/0007-CVE-2020-5208-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch [new file with mode: 0644]
admin/ipmitool/patches/0008-CVE-2020-5208-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch [new file with mode: 0644]
admin/ipmitool/patches/0009-CVE-2020-5208-channel-Fix-buffer-overflow.patch [new file with mode: 0644]
admin/ipmitool/patches/0010-CVE-2020-5208-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch [new file with mode: 0644]
admin/ipmitool/patches/0011-CVE-2020-5208-fru-sdr-Fix-id_string-buffer-overflows.patch [new file with mode: 0644]
admin/zabbix/Makefile
admin/zabbix/patches/010-change-agentd-config.patch
admin/zabbix/patches/110-reproducible-builds.patch
admin/zabbix/patches/120-uclibc-res.patch [deleted file]
devel/automake/Makefile
devel/make/Makefile
devel/pkgconf/Makefile
kernel/ksmbd/Makefile
kernel/ksmbd/patches/01-keep_kmod_metadata.patch
lang/erlang/Makefile
lang/erlang/patches/010-openssl-deprecated.patch [deleted file]
lang/golang/golang/Makefile
lang/luajit/Makefile
lang/perl-cgi/Makefile
lang/perl-parse-yapp/Makefile [new file with mode: 0644]
lang/perl/Makefile
lang/perl/patches/999-fix-build-failure-against-gcc-10.patch [new file with mode: 0644]
lang/php7/Makefile
lang/python/Flask/Makefile
lang/python/Jinja2/Makefile
lang/python/README.md
lang/python/Werkzeug/Makefile
lang/python/django/Makefile
lang/python/numpy/Makefile [new file with mode: 0644]
lang/python/pillow/Makefile
lang/python/pyodbc/Makefile
lang/python/python-cached-property/Makefile [new file with mode: 0644]
lang/python/python-crypto/Makefile [deleted file]
lang/python/python-crypto/patches/001-no-host-paths.patch [deleted file]
lang/python/python-crypto/patches/002-fix-endianness-detect.patch [deleted file]
lang/python/python-crypto/patches/003-omit-tests.patch [deleted file]
lang/python/python-crypto/patches/100-CVE-2013-7459.patch [deleted file]
lang/python/python-crypto/patches/101-CVE-2018-6594.patch [deleted file]
lang/python/python-cryptodome/Makefile
lang/python/python-distro/Makefile [new file with mode: 0644]
lang/python/python-docker/Makefile [new file with mode: 0644]
lang/python/python-dockerpty/Makefile [new file with mode: 0644]
lang/python/python-docopt/Makefile [new file with mode: 0644]
lang/python/python-dotenv/Makefile [new file with mode: 0644]
lang/python/python-jsonschema/Makefile [new file with mode: 0644]
lang/python/python-lxml/Makefile
lang/python/python-more-itertools/Makefile
lang/python/python-packaging/Makefile
lang/python/python-paramiko/Makefile [new file with mode: 0644]
lang/python/python-pynacl/Makefile [new file with mode: 0644]
lang/python/python-pytest/Makefile
lang/python/python-requests/Makefile
lang/python/python-texttable/Makefile [new file with mode: 0644]
lang/python/python-websocket-client/Makefile [new file with mode: 0644]
lang/vala/Makefile
libs/avahi/Makefile
libs/cereal/Makefile [new file with mode: 0644]
libs/elektra/Makefile
libs/elektra/patches/010-openssl-deprecated.patch [deleted file]
libs/file/Makefile
libs/freetype/Makefile
libs/gnutls/Makefile
libs/google-authenticator-libpam/Makefile
libs/hiredis/Makefile
libs/libarchive/Makefile
libs/libcap/Makefile
libs/libcap/patches/100-portability.patch [deleted file]
libs/libcap/patches/200-change-hardcoded-shell-to-sh.patch [deleted file]
libs/libconfig/Makefile [new file with mode: 0644]
libs/libgphoto2/Makefile
libs/libimobiledevice/Makefile
libs/libimobiledevice/patches/010-format.patch [deleted file]
libs/libirecovery/Makefile
libs/libmraa/Makefile
libs/libndpi/Makefile
libs/libnpupnp/Makefile
libs/liborcania/Makefile [new file with mode: 0644]
libs/libplist/Makefile
libs/libpng/Makefile
libs/libqmi/Makefile
libs/libulfius/Makefile [new file with mode: 0644]
libs/libupnpp/Makefile
libs/libusbmuxd/Makefile
libs/libusbmuxd/patches/010-select.patch [deleted file]
libs/libv4l/Makefile
libs/libv4l/patches/020-add-missing-includes.patch
libs/libv4l/patches/030-getsubopt.patch [deleted file]
libs/libv4l/patches/040-musl.patch [deleted file]
libs/libv4l/patches/050-4.14.patch [deleted file]
libs/libxcrypt/Makefile [new file with mode: 0644]
libs/libxerces-c/Makefile
libs/libxslt/Makefile
libs/libzip/Makefile
libs/minizip/Makefile [new file with mode: 0644]
libs/minizip/patches/010-disable-libbsd.patch [new file with mode: 0644]
libs/nss/Makefile
libs/nss/patches/001-nss_standalone.patch
libs/oniguruma/Makefile
libs/oniguruma/patches/0001-Add-SOVERSION-info-to-library-when-using-cmake.patch [deleted file]
libs/pcre/Makefile
libs/pcre2/Makefile
libs/pixman/Makefile
libs/postgresql/Makefile
libs/redis/Makefile
libs/spdlog/Makefile
libs/xmlrpc-c/Makefile
libs/yaml/Makefile
mail/alpine/Makefile
mail/dovecot/Makefile
multimedia/ffmpeg/Makefile
multimedia/gerbera/Makefile
multimedia/gerbera/patches/010-iconv.patch
multimedia/gerbera/patches/020-pid.patch [new file with mode: 0644]
multimedia/gerbera/patches/030-unistd.patch [new file with mode: 0644]
multimedia/gerbera/patches/040-npupnp.patch [new file with mode: 0644]
multimedia/minidlna/Makefile
multimedia/minidlna/files/minidlna.init
multimedia/motion/Makefile
multimedia/motion/patches/001-Remove-poll-option-for-mhd.patch [deleted file]
multimedia/motion/patches/010-no-po-man.patch [new file with mode: 0644]
multimedia/youtube-dl/Makefile
net/acme/Makefile
net/adblock/Makefile
net/adblock/files/README.md
net/adblock/files/adblock.init
net/adblock/files/adblock.sh
net/adblock/files/adblock.sources
net/ariang/Makefile
net/bind/Makefile
net/conserver/Makefile
net/coova-chilli/Config.in
net/coova-chilli/Makefile
net/dawn/Makefile
net/dnsdist/Makefile
net/dnsdist/patches/010-libcxx.patch [new file with mode: 0644]
net/dnsdist/patches/020-std.patch [new file with mode: 0644]
net/geth/Makefile
net/gnurl/Makefile
net/haproxy/Makefile
net/haproxy/get-latest-patches.sh
net/haproxy/patches/000-BUG-MINOR-protocol_buffer-Wrong-maximum-shifting.patch [deleted file]
net/haproxy/patches/000-OPENWRT-BUILD-make-dladdr1-depend-on-glibc-version-and-not-__USE_GNU.patch [new file with mode: 0644]
net/haproxy/patches/001-OPENWRT-add-uclibc-support.patch [deleted file]
net/https-dns-proxy/Makefile
net/https-dns-proxy/files/README.md
net/https-dns-proxy/files/https-dns-proxy.init
net/jool/Makefile
net/keepalived/Makefile
net/keepalived/files/keepalived.init
net/kismet/Makefile
net/kismet/patches/030-libcxx.patch
net/knxd/Makefile
net/knxd/patches/0100-version.patch
net/ksmbd-tools/Makefile
net/lighttpd/Makefile
net/miniupnpd/Makefile
net/miniupnpd/files/miniupnpd.hotplug
net/mosquitto/Makefile
net/mwan3/Makefile
net/mwan3/files/etc/init.d/mwan3
net/mwan3/files/lib/mwan3/mwan3.sh
net/mwan3/files/usr/libexec/rpcd/mwan3
net/mwan3/files/usr/sbin/mwan3track
net/nextdns/Makefile
net/nextdns/files/nextdns.config
net/nextdns/files/nextdns.init [deleted file]
net/nginx/Makefile
net/nmap/Makefile
net/nmap/patches/030-libcxx.patch [new file with mode: 0644]
net/ola/Makefile
net/ola/patches/050-always-force-gnu++11.patch [deleted file]
net/openconnect/Makefile
net/openfortivpn/Makefile
net/openfortivpn/files/14-openforticlient [new file with mode: 0644]
net/openfortivpn/files/openfortivpn-wrapper [new file with mode: 0755]
net/openfortivpn/files/openfortivpn.config [deleted file]
net/openfortivpn/files/openfortivpn.init [deleted file]
net/openfortivpn/files/openfortivpn.sh [new file with mode: 0755]
net/openfortivpn/patches/010-bind-iface.patch [new file with mode: 0644]
net/openssh/Makefile
net/overture/Makefile
net/ovn/Makefile
net/pdns-recursor/Makefile
net/pdns/Makefile
net/rp-pppoe/Makefile
net/rp-pppoe/patches/100-configure.patch [deleted file]
net/rp-pppoe/patches/110-Makefile.patch
net/rp-pppoe/patches/120-use-linux-ether-not-netinet.patch
net/rp-pppoe/patches/130-static-lib-fix.patch
net/rp-pppoe/patches/140-glibc-avoid-include-linux_in.h.patch [deleted file]
net/samba4/Makefile
net/samba4/files/samba.init
net/samba4/patches/003-getpwent_r.patch
net/samba4/patches/005-musl_uintptr.patch
net/samba4/patches/009-samba-4.11-qsort-compar.patch [deleted file]
net/samba4/patches/020-source3-msgsock-nvram-fix.patch
net/samba4/patches/103-samba-4.12-unbundle-libunwind.patch [new file with mode: 0644]
net/samba4/patches/103-tmsize-overflow-fix.patch [deleted file]
net/samba4/patches/104-samba-4.12-unbundle-icu.patch [new file with mode: 0644]
net/samba4/waf-cross-answers/aarch64.txt
net/samba4/waf-cross-answers/arc.txt
net/samba4/waf-cross-answers/arm.txt
net/samba4/waf-cross-answers/armeb.txt
net/samba4/waf-cross-answers/i386.txt
net/samba4/waf-cross-answers/mips.txt
net/samba4/waf-cross-answers/mips64.txt
net/samba4/waf-cross-answers/mips64el.txt
net/samba4/waf-cross-answers/mipsel.txt
net/samba4/waf-cross-answers/powerpc.txt
net/samba4/waf-cross-answers/x86_64.txt
net/seafile-server/Makefile
net/shorewall-core/Makefile
net/shorewall-lite/Makefile
net/shorewall/Makefile
net/shorewall6-lite/Makefile
net/shorewall6/Makefile
net/simple-adblock/Makefile
net/simple-adblock/files/README.md
net/simple-adblock/files/simple-adblock.conf
net/simple-adblock/files/simple-adblock.conf.update [new file with mode: 0644]
net/simple-adblock/files/simple-adblock.init
net/softethervpn5/Makefile
net/sqm-scripts/Makefile
net/tcpreplay/Makefile
net/tor/Makefile
net/transmission/Makefile
net/transmission/files/transmission.init
net/uacme/Makefile
net/unbound/Makefile
net/unbound/files/README.md
net/unbound/files/unbound.sh
net/unbound/files/unbound.uci
net/vpn-policy-routing/files/README.md
net/wifidog-ng/Makefile [deleted file]
net/wifidog-ng/files/ssl.crt [deleted file]
net/wifidog-ng/files/ssl.key [deleted file]
net/wifidog-ng/files/wifidog-ng.config [deleted file]
net/wifidog-ng/files/wifidog-ng.hotplug [deleted file]
net/wifidog-ng/files/wifidog-ng.init [deleted file]
net/wifidog-ng/files/wifidog-ng.lua [deleted file]
net/wifidog-ng/files/wifidog-ng/auth.lua [deleted file]
net/wifidog-ng/files/wifidog-ng/config.lua [deleted file]
net/wifidog-ng/files/wifidog-ng/heartbeat.lua [deleted file]
net/wifidog-ng/files/wifidog-ng/ubus.lua [deleted file]
net/wifidog-ng/files/wifidog-ng/util.lua [deleted file]
net/wifidog-ng/files/wifidog-ng/version.lua [deleted file]
net/wifidog-ng/src/Makefile [deleted file]
net/wifidog-ng/src/config.c [deleted file]
net/wifidog-ng/src/config.h [deleted file]
net/wifidog-ng/src/main.c [deleted file]
net/wifidog-ng/src/utils.h [deleted file]
net/wsdd2/Makefile
net/xinetd/Makefile
net/xinetd/files/xinetd.conf [deleted file]
net/xinetd/files/xinetd.init
net/xinetd/files/xinetd.uci.conf.sample [new file with mode: 0644]
net/xtables-addons/Makefile
net/xtables-addons/patches/210-freebsd-build-fix.patch [new file with mode: 0644]
sound/mpd/Makefile
sound/upmpdcli/Makefile
utils/acpid/Makefile
utils/acpid/files/acpid.init
utils/bcm27xx-eeprom/Makefile
utils/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-change-default-include-path.patch
utils/ccid/Makefile
utils/cgroupfs-mount/Makefile
utils/collectd/Makefile
utils/collectd/files/collectd.init
utils/collectd/files/collectd.uci
utils/collectd/files/usr/share/collectd/plugin/ubi.json [new file with mode: 0644]
utils/collectd/patches/920-fix-ubi-data-source-type.patch [new file with mode: 0644]
utils/cryptsetup/Makefile
utils/ctop/.Makefile.swp [deleted file]
utils/ctop/Makefile
utils/dbus/Makefile
utils/docker-ce/Config.in
utils/docker-ce/Makefile
utils/docker-compose/Makefile [new file with mode: 0644]
utils/domoticz/Makefile
utils/domoticz/patches/011-openzwave-include.patch [new file with mode: 0644]
utils/domoticz/patches/012-minizip-overflow.patch [new file with mode: 0644]
utils/exfatprogs/Makefile [new file with mode: 0644]
utils/fio/Makefile
utils/fio/patches/010-rand.patch [deleted file]
utils/fio/patches/020-vasprintf.patch [deleted file]
utils/flent-tools/Makefile
utils/gawk/Makefile
utils/haveged/Makefile
utils/hwinfo/Makefile [new file with mode: 0644]
utils/hwinfo/patches/0-hardcoding-version [new file with mode: 0644]
utils/hwinfo/patches/1-remove_libx8emu_dependency [new file with mode: 0644]
utils/hwinfo/patches/2-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers [new file with mode: 0644]
utils/hwinfo/patches/3-assorted-Makefile-butchery [new file with mode: 0644]
utils/idevicerestore/Makefile
utils/inotify-tools/Makefile
utils/irqbalance/Makefile
utils/irqbalance/files/irqbalance.init
utils/irqbalance/patches/110-fix-runtime-socket-directory.patch [new file with mode: 0644]
utils/klish/Makefile
utils/kmod/Makefile
utils/less/Makefile
utils/libnetwork/Makefile
utils/lvm2/Makefile
utils/lxc/Makefile
utils/lxc/files/lxc-auto.init
utils/mariadb/Makefile
utils/ncdu/Makefile
utils/open-vm-tools/Makefile
utils/openzwave/Makefile
utils/pciutils/Makefile
utils/pcsc-lite/Makefile
utils/powertop/Makefile
utils/procps-ng/Makefile
utils/sane-backends/Makefile
utils/shadow/Makefile
utils/sispmctl/Makefile
utils/sysstat/Makefile
utils/telldus-core/Makefile
utils/telldus-core/patches/940-cxx11.patch [new file with mode: 0644]
utils/telldus-core/patches/950-pthread.patch [new file with mode: 0644]
utils/telldus-core/patches/960-time.patch [new file with mode: 0644]
utils/unrar/Makefile
utils/unrar/patches/100-makefile_fixes.patch
utils/usbmuxd/Makefile
utils/which/Makefile [new file with mode: 0644]
utils/xfsprogs/Makefile [new file with mode: 0644]
utils/xfsprogs/patches/110-subdirs.patch [new file with mode: 0644]
utils/xfsprogs/patches/120-disable_assert.patch [new file with mode: 0644]
utils/xfsprogs/patches/130-db-malloc-Use-posix_memalign-instead-of-deprecated-v.patch [new file with mode: 0644]
utils/xfsprogs/patches/140-mman.patch [new file with mode: 0644]
utils/yara/Makefile
utils/zstd/Makefile
utils/zstd/patches/010-mtime.patch [deleted file]
utils/zstd/patches/010-python.patch [new file with mode: 0644]
utils/zstd/patches/020-util.patch [deleted file]

index 7ed58c807fd71e64c04b0189f542a07acce3f131..5f03189e63556a9361256bf3786b9b4059458f80 100644 (file)
@@ -3,8 +3,8 @@ git:
   quiet: true
 
 language: c
-dist: bionic
-sudo: false
+os: linux
+dist: focal
 cache:
   directories:
     - $HOME/sdk
index f55b3264e73eafb94c580bc69745e2ae1bdfcbba..af37fc3c79cabb5fa62cdce5122b1e56088efe8e 100755 (executable)
@@ -5,8 +5,8 @@
 set -e
 
 SDK_HOME="$HOME/sdk"
-SDK_PATH=https://downloads.openwrt.org/snapshots/targets/ar71xx/generic/
-SDK=-sdk-ar71xx-generic_
+SDK_PATH=https://downloads.openwrt.org/snapshots/targets/mpc85xx/p2020/
+SDK=-sdk-mpc85xx-p2020_
 PACKAGES_DIR="$PWD"
 
 echo_red()   { printf "\033[1;31m$*\033[m\n"; }
index 073a616c91a321a44319bb8b3e0cdc9d07807c0e..dbccd784663c4210a4b943785a87a1d6a6890352 100644 (file)
@@ -8,18 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gkrellmd
-PKG_VERSION:=2.3.10
-PKG_RELEASE:=2
+PKG_VERSION:=2.3.11
+PKG_RELEASE:=1
 
 PKG_SOURCE:=gkrellm-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://gkrellm.srcbox.net/releases
-PKG_HASH:=8b9ec8baadcd5830c6aff04ba86dc9ed317a15c1c3787440bd1e680fb2fcd766
+PKG_HASH:=1ee0643ed9ed99f88c1504c89d9ccb20780cf29319c904b68e80a8e7c8678c06
+PKG_BUILD_DIR:=$(BUILD_DIR)/gkrellm-$(PKG_VERSION)
+
 PKG_MAINTAINER:=Peter Denison <openwrt@marshadder.org>
 PKG_LICENSE:=GPL-2.0-or-later
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/gkrellm-$(PKG_VERSION)
+PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
 define Package/gkrellmd
   SECTION:=admin
@@ -40,14 +42,11 @@ define Package/gkrellmd/conffiles
 endef
 
 define Build/Compile
-       CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CPPFLAGS)" \
-       LDFLAGS="$(EXTRA_LDFLAGS) " \
        $(MAKE) -C $(PKG_BUILD_DIR)/server \
                CC="$(TARGET_CC)" \
-               glib2="yes" \
-               without-libsensors="yes" \
-               GLIB2_LIB="$(TARGET_LDFLAGS) -lglib-2.0 -lgmodule-2.0" \
-               GLIB2_INCLUDE="-I$(STAGING_DIR)/usr/include/glib-2.0 -I$(STAGING_DIR)/usr/lib/glib-2.0/include"
+               CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
+               LDFLAGS="$(TARGET_LDFLAGS) " \
+               without-libsensors="yes"
 endef
 
 define Package/gkrellmd/install
index 9e234ea07518b398eae051ab2d7674cf59de1b27..898e2e6cec9af477e24387a9274ea582cdecdbd4 100644 (file)
@@ -9,13 +9,14 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ipmitool
 PKG_VERSION:=1.8.18
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
 PKG_HASH:=0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01
 PKG_LICENSE:=BSD-3-clause
 PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:ipmitool_project:ipmitool
 
 include $(INCLUDE_DIR)/package.mk
 
diff --git a/admin/ipmitool/patches/0006-CVE-2020-5208-fru-Fix-buffer-overflow-vulnerabilities.patch b/admin/ipmitool/patches/0006-CVE-2020-5208-fru-Fix-buffer-overflow-vulnerabilities.patch
new file mode 100644 (file)
index 0000000..48fe5ee
--- /dev/null
@@ -0,0 +1,128 @@
+From 960dbb956d9f9cb05b719087faed53c88dc80956 Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 16:33:59 +0000
+Subject: [PATCH 06/11] fru: Fix buffer overflow vulnerabilities
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `read_fru_area_section` function only performs size validation of
+requested read size, and falsely assumes that the IPMI message will not
+respond with more than the requested amount of data; it uses the
+unvalidated response size to copy into `frubuf`. If the response is
+larger than the request, this can result in overflowing the buffer.
+
+The same issue affects the `read_fru_area` function.
+---
+ lib/ipmi_fru.c | 33 +++++++++++++++++++++++++++++++--
+ 1 file changed, 31 insertions(+), 2 deletions(-)
+
+diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c
+index cf00effc82a2..af99aa99444c 100644
+--- a/lib/ipmi_fru.c
++++ b/lib/ipmi_fru.c
+@@ -615,7 +615,10 @@ int
+ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+                       uint32_t offset, uint32_t length, uint8_t *frubuf)
+ {
+-      uint32_t off = offset, tmp, finish;
++      uint32_t off = offset;
++      uint32_t tmp;
++      uint32_t finish;
++      uint32_t size_left_in_buffer;
+       struct ipmi_rs * rsp;
+       struct ipmi_rq req;
+       uint8_t msg_data[4];
+@@ -628,10 +631,12 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+       finish = offset + length;
+       if (finish > fru->size) {
++              memset(frubuf + fru->size, 0, length - fru->size);
+               finish = fru->size;
+               lprintf(LOG_NOTICE, "Read FRU Area length %d too large, "
+                       "Adjusting to %d",
+                       offset + length, finish - offset);
++              length = finish - offset;
+       }
+       memset(&req, 0, sizeof(req));
+@@ -667,6 +672,7 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+               }
+       }
++      size_left_in_buffer = length;
+       do {
+               tmp = fru->access ? off >> 1 : off;
+               msg_data[0] = id;
+@@ -707,9 +713,18 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+               }
+               tmp = fru->access ? rsp->data[0] << 1 : rsp->data[0];
++              if(rsp->data_len < 1
++                 || tmp > rsp->data_len - 1
++                 || tmp > size_left_in_buffer)
++              {
++                      printf(" Not enough buffer size");
++                      return -1;
++              }
++
+               memcpy(frubuf, rsp->data + 1, tmp);
+               off += tmp;
+               frubuf += tmp;
++              size_left_in_buffer -= tmp;
+               /* sometimes the size returned in the Info command
+               * is too large.  return 0 so higher level function
+               * still attempts to parse what was returned */
+@@ -742,7 +757,9 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+                       uint32_t offset, uint32_t length, uint8_t *frubuf)
+ {
+       static uint32_t fru_data_rqst_size = 20;
+-      uint32_t off = offset, tmp, finish;
++      uint32_t off = offset;
++      uint32_t tmp, finish;
++      uint32_t size_left_in_buffer;
+       struct ipmi_rs * rsp;
+       struct ipmi_rq req;
+       uint8_t msg_data[4];
+@@ -755,10 +772,12 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+       finish = offset + length;
+       if (finish > fru->size) {
++              memset(frubuf + fru->size, 0, length - fru->size);
+               finish = fru->size;
+               lprintf(LOG_NOTICE, "Read FRU Area length %d too large, "
+                       "Adjusting to %d",
+                       offset + length, finish - offset);
++              length = finish - offset;
+       }
+       memset(&req, 0, sizeof(req));
+@@ -773,6 +792,8 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+       if (fru->access && fru_data_rqst_size > 16)
+ #endif
+               fru_data_rqst_size = 16;
++
++      size_left_in_buffer = length;
+       do {
+               tmp = fru->access ? off >> 1 : off;
+               msg_data[0] = id;
+@@ -804,8 +825,16 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+               }
+               tmp = fru->access ? rsp->data[0] << 1 : rsp->data[0];
++              if(rsp->data_len < 1
++                 || tmp > rsp->data_len - 1
++                 || tmp > size_left_in_buffer)
++              {
++                      printf(" Not enough buffer size");
++                      return -1;
++              }
+               memcpy((frubuf + off)-offset, rsp->data + 1, tmp);
+               off += tmp;
++              size_left_in_buffer -= tmp;
+               /* sometimes the size returned in the Info command
+               * is too large.  return 0 so higher level function
+-- 
+2.27.0
+
diff --git a/admin/ipmitool/patches/0007-CVE-2020-5208-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch b/admin/ipmitool/patches/0007-CVE-2020-5208-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch
new file mode 100644 (file)
index 0000000..d694c92
--- /dev/null
@@ -0,0 +1,48 @@
+From 910e5782b7d9f222d4e34d3505d0d636ff757103 Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 16:44:18 +0000
+Subject: [PATCH 07/11] fru: Fix buffer overflow in ipmi_spd_print_fru
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `ipmi_spd_print_fru` function has a similar issue as the one fixed
+by the previous commit in `read_fru_area_section`. An initial request is
+made to get the `fru.size`, which is used as the size for the allocation
+of `spd_data`. Inside a loop, further requests are performed to get the
+copy sizes which are not checked before being used as the size for a
+copy into the buffer.
+---
+ lib/dimm_spd.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/lib/dimm_spd.c b/lib/dimm_spd.c
+index 41e30dbb4bda..68f3b4fa1eff 100644
+--- a/lib/dimm_spd.c
++++ b/lib/dimm_spd.c
+@@ -1621,7 +1621,7 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id)
+       struct ipmi_rq req;
+       struct fru_info fru;
+       uint8_t *spd_data, msg_data[4];
+-      int len, offset;
++      uint32_t len, offset;
+       msg_data[0] = id;
+@@ -1697,6 +1697,13 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id)
+               }
+               len = rsp->data[0];
++              if(rsp->data_len < 1
++                 || len > rsp->data_len - 1
++                 || len > fru.size - offset)
++              {
++                      printf(" Not enough buffer size");
++                      return -1;
++              }
+               memcpy(&spd_data[offset], rsp->data + 1, len);
+               offset += len;
+       } while (offset < fru.size);
+-- 
+2.27.0
+
diff --git a/admin/ipmitool/patches/0008-CVE-2020-5208-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch b/admin/ipmitool/patches/0008-CVE-2020-5208-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch
new file mode 100644 (file)
index 0000000..6d8cc15
--- /dev/null
@@ -0,0 +1,48 @@
+From 4f7778ed232a92bde388f38917b94f458a82c78e Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 16:51:49 +0000
+Subject: [PATCH 08/11] session: Fix buffer overflow in ipmi_get_session_info
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `ipmi_get_session_info` function does not properly check the
+response `data_len`, which is used as a copy size, allowing stack buffer
+overflow.
+---
+ lib/ipmi_session.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/lib/ipmi_session.c b/lib/ipmi_session.c
+index 141f0f4ec8dd..b9af1fd75d40 100644
+--- a/lib/ipmi_session.c
++++ b/lib/ipmi_session.c
+@@ -309,8 +309,10 @@ ipmi_get_session_info(struct ipmi_intf         * intf,
+               }
+               else
+               {
+-                      memcpy(&session_info,  rsp->data, rsp->data_len);
+-                      print_session_info(&session_info, rsp->data_len);
++                      memcpy(&session_info,  rsp->data,
++                             __min(rsp->data_len, sizeof(session_info)));
++                      print_session_info(&session_info,
++                                         __min(rsp->data_len, sizeof(session_info)));
+               }
+               break;
+               
+@@ -341,8 +343,10 @@ ipmi_get_session_info(struct ipmi_intf         * intf,
+                               break;
+                       }
+-                      memcpy(&session_info,  rsp->data, rsp->data_len);
+-                      print_session_info(&session_info, rsp->data_len);
++                      memcpy(&session_info,  rsp->data,
++                             __min(rsp->data_len, sizeof(session_info)));
++                      print_session_info(&session_info,
++                                         __min(rsp->data_len, sizeof(session_info)));
+                       
+               } while (i <= session_info.session_slot_count);
+               break;
+-- 
+2.27.0
+
diff --git a/admin/ipmitool/patches/0009-CVE-2020-5208-channel-Fix-buffer-overflow.patch b/admin/ipmitool/patches/0009-CVE-2020-5208-channel-Fix-buffer-overflow.patch
new file mode 100644 (file)
index 0000000..dd29993
--- /dev/null
@@ -0,0 +1,37 @@
+From 743dd4faa302f22950e4438cf684e1e398eb47eb Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 16:56:38 +0000
+Subject: [PATCH 09/11] channel: Fix buffer overflow
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `ipmi_get_channel_cipher_suites` function does not properly check
+the final response’s `data_len`, which can lead to stack buffer overflow
+on the final copy.
+---
+ lib/ipmi_channel.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/lib/ipmi_channel.c b/lib/ipmi_channel.c
+index fab2e5483d12..8cd7c59a4273 100644
+--- a/lib/ipmi_channel.c
++++ b/lib/ipmi_channel.c
+@@ -413,7 +413,10 @@ ipmi_get_channel_cipher_suites(struct ipmi_intf *intf, const char *payload_type,
+                       lprintf(LOG_ERR, "Unable to Get Channel Cipher Suites");
+                       return -1;
+               }
+-              if (rsp->ccode > 0) {
++              if (rsp->ccode
++                  || rsp->data_len < 1
++                  || rsp->data_len > sizeof(uint8_t) + 0x10)
++              {
+                       lprintf(LOG_ERR, "Get Channel Cipher Suites failed: %s",
+                                       val2str(rsp->ccode, completion_code_vals));
+                       return -1;
+-- 
+2.27.0
+
diff --git a/admin/ipmitool/patches/0010-CVE-2020-5208-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch b/admin/ipmitool/patches/0010-CVE-2020-5208-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch
new file mode 100644 (file)
index 0000000..e7a7970
--- /dev/null
@@ -0,0 +1,88 @@
+From e048e9c65a52f0879d482531e70735c1d314d43a Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 17:06:39 +0000
+Subject: [PATCH 10/11] lanp: Fix buffer overflows in get_lan_param_select
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `get_lan_param_select` function is missing a validation check on the
+response’s `data_len`, which it then returns to caller functions, where
+stack buffer overflow can occur.
+---
+ lib/ipmi_lanp.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/lib/ipmi_lanp.c b/lib/ipmi_lanp.c
+index 65d881bc5890..022c7f1605ed 100644
+--- a/lib/ipmi_lanp.c
++++ b/lib/ipmi_lanp.c
+@@ -1809,7 +1809,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+               if (p == NULL) {
+                       return (-1);
+               }
+-              memcpy(data, p->data, p->data_len);
++              memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+               /* set new ipaddr */
+               memcpy(data+3, temp, 4);
+               printf("Setting LAN Alert %d IP Address to %d.%d.%d.%d\n", alert,
+@@ -1824,7 +1824,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+               if (p == NULL) {
+                       return (-1);
+               }
+-              memcpy(data, p->data, p->data_len);
++              memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+               /* set new macaddr */
+               memcpy(data+7, temp, 6);
+               printf("Setting LAN Alert %d MAC Address to "
+@@ -1838,7 +1838,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+               if (p == NULL) {
+                       return (-1);
+               }
+-              memcpy(data, p->data, p->data_len);
++              memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+               if (strncasecmp(argv[1], "def", 3) == 0 ||
+                   strncasecmp(argv[1], "default", 7) == 0) {
+@@ -1864,7 +1864,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+               if (p == NULL) {
+                       return (-1);
+               }
+-              memcpy(data, p->data, p->data_len);
++              memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+               if (strncasecmp(argv[1], "on", 2) == 0 ||
+                   strncasecmp(argv[1], "yes", 3) == 0) {
+@@ -1889,7 +1889,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+               if (p == NULL) {
+                       return (-1);
+               }
+-              memcpy(data, p->data, p->data_len);
++              memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+               if (strncasecmp(argv[1], "pet", 3) == 0) {
+                       printf("Setting LAN Alert %d destination to PET Trap\n", alert);
+@@ -1917,7 +1917,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+               if (p == NULL) {
+                       return (-1);
+               }
+-              memcpy(data, p->data, p->data_len);
++              memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+               if (str2uchar(argv[1], &data[2]) != 0) {
+                       lprintf(LOG_ERR, "Invalid time: %s", argv[1]);
+@@ -1933,7 +1933,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+               if (p == NULL) {
+                       return (-1);
+               }
+-              memcpy(data, p->data, p->data_len);
++              memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+               if (str2uchar(argv[1], &data[3]) != 0) {
+                       lprintf(LOG_ERR, "Invalid retry: %s", argv[1]);
+-- 
+2.27.0
+
diff --git a/admin/ipmitool/patches/0011-CVE-2020-5208-fru-sdr-Fix-id_string-buffer-overflows.patch b/admin/ipmitool/patches/0011-CVE-2020-5208-fru-sdr-Fix-id_string-buffer-overflows.patch
new file mode 100644 (file)
index 0000000..6cc5b7a
--- /dev/null
@@ -0,0 +1,137 @@
+From 98b47424cf548f58c4d295fa8235210406ea85ca Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 17:13:45 +0000
+Subject: [PATCH 11/11] fru, sdr: Fix id_string buffer overflows
+
+Final part of the fixes for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+9 variants of stack buffer overflow when parsing `id_string` field of
+SDR records returned from `CMD_GET_SDR` command.
+
+SDR record structs have an `id_code` field, and an `id_string` `char`
+array.
+
+The length of `id_string` is calculated as `(id_code & 0x1f) + 1`,
+which can be larger than expected 16 characters (if `id_code = 0xff`,
+then length will be `(0xff & 0x1f) + 1 = 32`).
+
+In numerous places, this can cause stack buffer overflow when copying
+into fixed buffer of size `17` bytes from this calculated length.
+---
+ lib/ipmi_fru.c |  2 +-
+ lib/ipmi_sdr.c | 40 ++++++++++++++++++++++++----------------
+ 2 files changed, 25 insertions(+), 17 deletions(-)
+
+diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c
+index af99aa99444c..98bc9840955a 100644
+--- a/lib/ipmi_fru.c
++++ b/lib/ipmi_fru.c
+@@ -3062,7 +3062,7 @@ ipmi_fru_print(struct ipmi_intf * intf, struct sdr_record_fru_locator * fru)
+               return 0;
+       memset(desc, 0, sizeof(desc));
+-      memcpy(desc, fru->id_string, fru->id_code & 0x01f);
++      memcpy(desc, fru->id_string, __min(fru->id_code & 0x01f, sizeof(desc)));
+       desc[fru->id_code & 0x01f] = 0;
+       printf("FRU Device Description : %s (ID %d)\n", desc, fru->device_id);
+diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c
+index 2a9cbe3087af..62aac08a9002 100644
+--- a/lib/ipmi_sdr.c
++++ b/lib/ipmi_sdr.c
+@@ -2084,7 +2084,7 @@ ipmi_sdr_print_sensor_eventonly(struct ipmi_intf *intf,
+               return -1;
+       memset(desc, 0, sizeof (desc));
+-      snprintf(desc, (sensor->id_code & 0x1f) + 1, "%s", sensor->id_string);
++      snprintf(desc, sizeof(desc), "%.*s", (sensor->id_code & 0x1f) + 1, sensor->id_string);
+       if (verbose) {
+               printf("Sensor ID              : %s (0x%x)\n",
+@@ -2135,7 +2135,7 @@ ipmi_sdr_print_sensor_mc_locator(struct ipmi_intf *intf,
+               return -1;
+       memset(desc, 0, sizeof (desc));
+-      snprintf(desc, (mc->id_code & 0x1f) + 1, "%s", mc->id_string);
++      snprintf(desc, sizeof(desc), "%.*s", (mc->id_code & 0x1f) + 1, mc->id_string);
+       if (verbose == 0) {
+               if (csv_output)
+@@ -2228,7 +2228,7 @@ ipmi_sdr_print_sensor_generic_locator(struct ipmi_intf *intf,
+       char desc[17];
+       memset(desc, 0, sizeof (desc));
+-      snprintf(desc, (dev->id_code & 0x1f) + 1, "%s", dev->id_string);
++      snprintf(desc, sizeof(desc), "%.*s", (dev->id_code & 0x1f) + 1, dev->id_string);
+       if (!verbose) {
+               if (csv_output)
+@@ -2285,7 +2285,7 @@ ipmi_sdr_print_sensor_fru_locator(struct ipmi_intf *intf,
+       char desc[17];
+       memset(desc, 0, sizeof (desc));
+-      snprintf(desc, (fru->id_code & 0x1f) + 1, "%s", fru->id_string);
++      snprintf(desc, sizeof(desc), "%.*s", (fru->id_code & 0x1f) + 1, fru->id_string);
+       if (!verbose) {
+               if (csv_output)
+@@ -2489,35 +2489,43 @@ ipmi_sdr_print_name_from_rawentry(struct ipmi_intf *intf, uint16_t id,
+    int rc =0;
+    char desc[17];
++   const char *id_string;
++   uint8_t id_code;
+    memset(desc, ' ', sizeof (desc));
+    switch ( type) {
+       case SDR_RECORD_TYPE_FULL_SENSOR:
+       record.full = (struct sdr_record_full_sensor *) raw;
+-      snprintf(desc, (record.full->id_code & 0x1f) +1, "%s",
+-               (const char *)record.full->id_string);
++      id_code = record.full->id_code;
++      id_string = record.full->id_string;
+       break;
++
+       case SDR_RECORD_TYPE_COMPACT_SENSOR:
+       record.compact = (struct sdr_record_compact_sensor *) raw       ;
+-      snprintf(desc, (record.compact->id_code & 0x1f)  +1, "%s",
+-               (const char *)record.compact->id_string);
++      id_code = record.compact->id_code;
++      id_string = record.compact->id_string;
+       break;
++
+       case SDR_RECORD_TYPE_EVENTONLY_SENSOR:
+       record.eventonly  = (struct sdr_record_eventonly_sensor *) raw ;
+-      snprintf(desc, (record.eventonly->id_code & 0x1f)  +1, "%s",
+-               (const char *)record.eventonly->id_string);
+-      break;            
++      id_code = record.eventonly->id_code;
++      id_string = record.eventonly->id_string;
++      break;
++
+       case SDR_RECORD_TYPE_MC_DEVICE_LOCATOR:
+       record.mcloc  = (struct sdr_record_mc_locator *) raw ;
+-      snprintf(desc, (record.mcloc->id_code & 0x1f)  +1, "%s",
+-               (const char *)record.mcloc->id_string);                
++      id_code = record.mcloc->id_code;
++      id_string = record.mcloc->id_string;
+       break;
++
+       default:
+       rc = -1;
+-      break;
+-   }   
++   }
++   if (!rc) {
++       snprintf(desc, sizeof(desc), "%.*s", (id_code & 0x1f) + 1, id_string);
++   }
+-      lprintf(LOG_INFO, "ID: 0x%04x , NAME: %-16s", id, desc);
++   lprintf(LOG_INFO, "ID: 0x%04x , NAME: %-16s", id, desc);
+    return rc;
+ }
+-- 
+2.27.0
+
index ba8a97f71394bc1cf609d77a11d47174a77fe91e..ca189c140b2a2f038fceb3c6fd9bf7885f6c9ce6 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zabbix
-PKG_VERSION:=4.0.16
-PKG_RELEASE:=3
+PKG_VERSION:=5.0.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/zabbix
-PKG_HASH:=a8d7e18230e62a7bd3fd9af5830a2b1b22818468b5da3deb673865ce40dc4d42
+PKG_SOURCE_URL:=https://cdn.zabbix.com/zabbix/sources/stable/5.0/
+PKG_HASH:=20a19e5cf2354ffcbbe24521b04becfc9875e57289c00da71999de60c4a853b6
 
 PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
 PKG_LICENSE:=GPL-2.0
@@ -127,7 +127,7 @@ endef
 define Package/zabbix-proxy
   $(call Package/zabbix/Default)
   TITLE+= proxy
-  DEPENDS += +ZABBIX_POSTGRESQL:libpq +ZABBIX_MYSQL:libmariadbclient
+  DEPENDS += +ZABBIX_POSTGRESQL:libpq +ZABBIX_MYSQL:libmariadbclient +libevent2
 endef
 
 define Package/zabbix-extra-mac80211/description
@@ -298,7 +298,7 @@ endef
 
 define Package/zabbix-server-frontend/install
        $(INSTALL_DIR) $(1)/www/zabbix
-       $(CP) $(PKG_BUILD_DIR)/frontends/php/* $(1)/www/zabbix
+       $(CP) $(PKG_BUILD_DIR)/ui/* $(1)/www/zabbix
 endef
 
 define Package/zabbix-proxy/install
index 284ff05524adc6721e943928f6a9c575efdb90aa..f7628274820f74b17d31ad97dea06746426ae63d 100644 (file)
@@ -27,7 +27,7 @@
  ### Option: LogFileSize
  #     Maximum size of log file in MB.
  #     0 - disable automatic log rotation.
-@@ -117,6 +114,7 @@ Server=127.0.0.1
+@@ -138,6 +135,7 @@ Server=127.0.0.1
  # Range: 0-100
  # Default:
  # StartAgents=3
@@ -35,7 +35,7 @@
  
  ##### Active checks related
  
-@@ -132,8 +130,6 @@ Server=127.0.0.1
+@@ -153,8 +151,6 @@ Server=127.0.0.1
  # Default:
  # ServerActive=
  
@@ -44,7 +44,7 @@
  ### Option: Hostname
  #     Unique, case sensitive hostname.
  #     Required for active checks and must match hostname as configured on the server.
-@@ -143,8 +139,6 @@ ServerActive=127.0.0.1
+@@ -164,8 +160,6 @@ ServerActive=127.0.0.1
  # Default:
  # Hostname=
  
@@ -53,7 +53,7 @@
  ### Option: HostnameItem
  #     Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
  #     Does not support UserParameters or aliases.
-@@ -262,8 +256,8 @@ Hostname=Zabbix server
+@@ -305,8 +299,8 @@ Hostname=Zabbix server
  # Include=
  
  # Include=/usr/local/etc/zabbix_agentd.userparams.conf
index 764417a209b50d90d8fadc8b90bcfb87713cf84e..72f92acc8f92901d8bb25d91fa569b18b7b7ca72 100644 (file)
@@ -7,5 +7,5 @@
 -      printf("Revision %s %s, compilation time: %s %s\n\n", ZABBIX_REVISION, ZABBIX_REVDATE, __DATE__, __TIME__);
 +      printf("Revision %s %s\n\n", ZABBIX_REVISION, ZABBIX_REVDATE);
        puts(copyright_message);
- #if defined(HAVE_POLARSSL) || defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL)
+ #if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL)
        printf("\n");
diff --git a/admin/zabbix/patches/120-uclibc-res.patch b/admin/zabbix/patches/120-uclibc-res.patch
deleted file mode 100644 (file)
index d88e008..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/src/libs/zbxsysinfo/common/net.c
-+++ b/src/libs/zbxsysinfo/common/net.c
-@@ -547,7 +547,7 @@ static int dns_query(AGENT_REQUEST *request, AGENT_RESULT *result, int short_ans
-               return SYSINFO_RET_FAIL;
-       }
--#if defined(HAVE_RES_NINIT) && !defined(_AIX)
-+#if defined(HAVE_RES_NINIT) && !defined(_AIX) && !defined(__UCLIBC__)
-       if (-1 == (res = res_nmkquery(&res_state_local, QUERY, zone, C_IN, type, NULL, 0, NULL, buf, sizeof(buf))))
- #else
-       if (-1 == (res = res_mkquery(QUERY, zone, C_IN, type, NULL, 0, NULL, buf, sizeof(buf))))
-@@ -643,7 +643,11 @@ static int        dns_query(AGENT_REQUEST *request, AGENT_RESULT *result, int short_ans
-       res_state_local.retrans = retrans;
-       res_state_local.retry = retry;
-+#ifndef __UCLIBC__
-       res = res_nsend(&res_state_local, buf, res, answer.buffer, sizeof(answer.buffer));
-+#else
-+      res = res_search(*res_state_local.dnsrch, res, 0, answer.buffer, sizeof(answer.buffer));
-+#endif
- #     ifdef HAVE_RES_U_EXT    /* Linux */
-       if (NULL != ip && '\0' != *ip && AF_INET6 == ip_type)
index b7539ad2022d9279c62f17eb9a0723d78489adb4..2eb8dc62e574eaf718aafe460485a20def98d31c 100644 (file)
@@ -8,17 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=automake
-PKG_VERSION:=1.15.1
-PKG_RELEASE:=2
+PKG_VERSION:=1.16.2
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@GNU/automake
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=af6ba39142220687c500f79b4aa2f181d9b24e4f8d8ec497cea4ba26c64bedaf
+PKG_HASH:=ccc459de3d710e066ab9e12d2f119bd164a08c9341ca24ba22c9adaa179eedd0
+
 PKG_MAINTAINER:=Heinrich Schuchardt <xypron.glpk@gmx.de>
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_CPE_ID:=cpe:/a:gnu:automake
 
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
index 946a2bcbfa85fff3b097d4825be9dbb6a61041f2..61ce3a632bb225de7b54540d4d2fd26a8cfb4ce7 100644 (file)
@@ -8,17 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=make
-PKG_VERSION:=4.2.1
-PKG_RELEASE:=4
+PKG_VERSION:=4.3
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@GNU/make
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=d6e262bf3601b42d2b1e4ef8310029e1dcf20083c5446b4b7aa67081fdffc589
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19
+
 PKG_MAINTAINER:=Heinrich Schuchardt <xypron.glpk@gmx.de>
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_CPE_ID:=cpe:/a:gnu:make
 
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -43,7 +45,7 @@ CONFIGURE_VARS += ac_cv_lib_elf_elf_begin=no
 # provide gnumake.h at build time for other packages
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
-       $(CP) $(PKG_BUILD_DIR)/gnumake.h $(1)/usr/include/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/gnumake.h $(1)/usr/include/
 endef
 
 $(eval $(call BuildPackage,make))
index b2ec3990fee6559488bd000956d63b525ac32206..e4ea386661bb235f0196cddaa48c1ac217f28b4f 100644 (file)
@@ -6,21 +6,22 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pkgconf
-PKG_VERSION:=1.6.3
+PKG_VERSION:=1.7.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://distfiles.dereferenced.org/pkgconf
-PKG_HASH:=61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210
+PKG_HASH:=b846aea51cf696c3392a0ae58bef93e2e72f8e7073ca6ad1ed8b01c85871f9c0
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
 
 PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
+PKG_BUILD_DEPENDS:=meson/host
 
 include $(INCLUDE_DIR)/package.mk
+include ../../devel/meson/meson.mk
 
 define Package/libpkgconf
   SECTION:=libs
@@ -51,6 +52,19 @@ define Package/pkgconf/description
   maintaining compatibility.
 endef
 
+MESON_ARGS += \
+       -Dtests=false
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/libpkgconf
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/libpkgconf/*.h $(1)/usr/include/libpkgconf/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpkgconf.so* $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/share/aclocal/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/pkg.m4 \
+         $(1)/usr/share/aclocal/
+endef
+
 define Package/libpkgconf/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpkgconf.so* $(1)/usr/lib/
index 64037323925f613ec6fa64259040c45d891f5ea0..c67c29c4e361b1b838510a8da423a08362808243 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ksmbd
-PKG_VERSION:=3.1.6
+PKG_VERSION:=3.2.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/cifsd-team/cifsd/archive/$(PKG_VERSION)/
-PKG_HASH:=09c1eb39d9dcc9baf6bc9c5a2b91bcea377352bfc507ebdd10a370fffa7c31b4
+PKG_SOURCE_URL:=https://codeload.github.com/cifsd-team/cifsd/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=16ad304c09d5f04ddbe99d21ca9df8a9a6d8e35b21ff0e205f212f8c545b979b
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
index 9fc547f2a6895631a9c3aa12d8423c487153726f..a7055299357d01e5d19f26b14c3071af0f3fb923 100644 (file)
@@ -1,5 +1,5 @@
---- a/glob.h   2019-12-08
-+++ b/glob.h   2019-12-08
+--- a/glob.h
++++ b/glob.h
 @@ -7,6 +7,8 @@
  #ifndef __KSMBD_GLOB_H
  #define __KSMBD_GLOB_H
@@ -8,3 +8,4 @@
 +
  #include <linux/ctype.h>
  #include <linux/version.h>
index 83c7a7091b2953e58ba6ced713c1030d3ecb5668..079946c5569af0797c50f139da2f95c8de48fc60 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2009-2015 OpenWrt.org
+# Copyright (C) 2009-2020 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=erlang
-PKG_VERSION:=21.0
-PKG_RELEASE:=3
+PKG_VERSION:=23.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= http://www.erlang.org/download/
-PKG_HASH:=c7d247c0cad2d2e718eaca2e2dff051136a1347a92097abf19ebf65ea2870131
+PKG_HASH:=42dcf3c721f4de59fe74ae7b65950c2174c46dc8d1dd4e27c0594d86f606a635
 
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE.txt
diff --git a/lang/erlang/patches/010-openssl-deprecated.patch b/lang/erlang/patches/010-openssl-deprecated.patch
deleted file mode 100644 (file)
index 88e268a..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
---- a/lib/crypto/c_src/crypto.c
-+++ b/lib/crypto/c_src/crypto.c
-@@ -41,6 +41,7 @@
- #include <openssl/des.h>
- #endif /* #ifndef OPENSSL_NO_DES */
- /* #include <openssl/idea.h> This is not supported on the openssl OTP requires */
-+#include <openssl/dh.h>
- #include <openssl/dsa.h>
- #include <openssl/rsa.h>
- #include <openssl/aes.h>
-@@ -177,7 +178,7 @@
- #endif
- #if OPENSSL_VERSION_NUMBER >= PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
--# ifndef HAS_LIBRESSL
-+# if !defined(OPENSSL_NO_CHACHA) || !defined(OPENSSL_NO_POLY1305)
- #  define HAVE_CHACHA20_POLY1305
- # endif
- #endif
-@@ -197,8 +198,10 @@
- /* If OPENSSL_NO_EC is set, there will be an error in ec.h included from engine.h
-    So if EC is disabled, you can't use Engine either....
- */
-+#if !defined(OPENSSL_NO_ENGINE)
- # define HAS_ENGINE_SUPPORT
- #endif
-+#endif
- #if defined(HAS_ENGINE_SUPPORT)
-@@ -910,7 +913,11 @@ static void engine_ctx_dtor(ErlNifEnv* env, struct engine_ctx* ctx) {
- static int verify_lib_version(void)
- {
-+#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
-     const unsigned long libv = SSLeay();
-+#else
-+    const unsigned long libv = OpenSSL_version_num();
-+#endif
-     const unsigned long hdrv = OPENSSL_VERSION_NUMBER;
- #   define MAJOR_VER(V) ((unsigned long)(V) >> (7*4))
-@@ -1166,12 +1173,14 @@ static int initialize(ErlNifEnv* env, ERL_NIF_TERM load_info)
-     funcp = &get_crypto_callbacks;
- #endif
-+#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
- #ifdef OPENSSL_THREADS
-     enif_system_info(&sys_info, sizeof(sys_info));
-     if (sys_info.scheduler_threads > 1) {
-       nlocks = CRYPTO_num_locks();
-     }
-     /* else no need for locks */
-+#endif
- #endif
-     ccb = (*funcp)(nlocks);
-@@ -1183,15 +1192,21 @@ static int initialize(ErlNifEnv* env, ERL_NIF_TERM load_info)
-     CRYPTO_set_mem_functions(ccb->crypto_alloc, ccb->crypto_realloc, ccb->crypto_free);
-+#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
- #ifdef OPENSSL_THREADS
-     if (nlocks > 0) {
-       CRYPTO_set_locking_callback(ccb->locking_function);
-+#if OPENSSL_VERSION_NUMBER < 0x10000000
-       CRYPTO_set_id_callback(ccb->id_function);
-+#else
-+      CRYPTO_THREADID_set_callback(ccb->id_function);
-+#endif
-       CRYPTO_set_dynlock_create_callback(ccb->dyn_create_function);
-       CRYPTO_set_dynlock_lock_callback(ccb->dyn_lock_function);
-       CRYPTO_set_dynlock_destroy_callback(ccb->dyn_destroy_function);
-     }
- #endif /* OPENSSL_THREADS */
-+#endif
-     init_digest_types(env);
-     init_cipher_types(env);
-@@ -1391,7 +1406,11 @@ static ERL_NIF_TERM info_lib(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]
-     static const char libname[] = "OpenSSL";
-     unsigned name_sz = strlen(libname);
-+#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0)
-     const char* ver = SSLeay_version(SSLEAY_VERSION);
-+#else
-+    const char* ver = OpenSSL_version(OPENSSL_VERSION);
-+#endif
-     unsigned ver_sz = strlen(ver);
-     ERL_NIF_TERM name_term, ver_term;
-     int ver_num = OPENSSL_VERSION_NUMBER;
---- a/lib/crypto/c_src/crypto_callback.c
-+++ b/lib/crypto/c_src/crypto_callback.c
-@@ -83,7 +83,7 @@ static void crypto_free(void* ptr CCB_FILE_LINE_ARGS)
-     enif_free(ptr);
- }
--
-+#if OPENSSL_VERSION_NUMBER < 0x10100000
- #ifdef OPENSSL_THREADS /* vvvvvvvvvvvvvvv OPENSSL_THREADS vvvvvvvvvvvvvvvv */
- static ErlNifRWLock** lock_vec = NULL; /* Static locks used by openssl */
-@@ -115,10 +115,17 @@ static void locking_function(int mode, int n, const char *file, int line)
-     locking(mode, lock_vec[n]);
- }
-+#if OPENSSL_VERSION_NUMBER < 0x10000000
- static unsigned long id_function(void)
- {
-     return (unsigned long) enif_thread_self();
- }
-+#else
-+static void id_function(CRYPTO_THREADID *id)
-+{
-+    CRYPTO_THREADID_set_numeric(id, (unsigned long) enif_thread_self());
-+}
-+#endif
- /* Dynamic locking, not used by current openssl version (0.9.8)
-  */
-@@ -136,6 +143,7 @@ static void dyn_destroy_function(struct CRYPTO_dynlock_value *ptr, const char *f
- }
- #endif /* ^^^^^^^^^^^^^^^^^^^^^^ OPENSSL_THREADS ^^^^^^^^^^^^^^^^^^^^^^ */
-+#endif
- DLLEXPORT struct crypto_callbacks* get_crypto_callbacks(int nlocks)
- {
-@@ -146,7 +154,8 @@ DLLEXPORT struct crypto_callbacks* get_crypto_callbacks(int nlocks)
-       &crypto_alloc,
-       &crypto_realloc,
-       &crypto_free,
--        
-+
-+#if OPENSSL_VERSION_NUMBER < 0x10100000
- #ifdef OPENSSL_THREADS
-       &locking_function,
-       &id_function,
-@@ -154,9 +163,11 @@ DLLEXPORT struct crypto_callbacks* get_crypto_callbacks(int nlocks)
-       &dyn_lock_function,
-       &dyn_destroy_function
- #endif /* OPENSSL_THREADS */
-+#endif
-     };
-     if (!is_initialized) {
-+#if OPENSSL_VERSION_NUMBER < 0x10100000
- #ifdef OPENSSL_THREADS
-       if (nlocks > 0) {
-           int i;
-@@ -169,6 +180,7 @@ DLLEXPORT struct crypto_callbacks* get_crypto_callbacks(int nlocks)
-               if (lock_vec[i]==NULL) return NULL;
-           }
-       }
-+#endif
- #endif
-       is_initialized = 1;
-     }
---- a/lib/crypto/c_src/crypto_callback.h
-+++ b/lib/crypto/c_src/crypto_callback.h
-@@ -34,9 +34,15 @@ struct crypto_callbacks
-     void (*crypto_free)(void* ptr CCB_FILE_LINE_ARGS);
-     /* openssl callbacks */
-+#if OPENSSL_VERSION_NUMBER < 0x10100000
-   #ifdef OPENSSL_THREADS
-     void (*locking_function)(int mode, int n, const char *file, int line);
-+  #if OPENSSL_VERSION_NUMBER < 0x10000000
-     unsigned long (*id_function)(void);
-+  #else
-+    void (*id_function)(CRYPTO_THREADID *id);
-+  #endif
-+#endif
-     struct CRYPTO_dynlock_value* (*dyn_create_function)(const char *file,
-                                                       int line);
-     void (*dyn_lock_function)(int mode, struct CRYPTO_dynlock_value* ptr,
---- a/lib/crypto/c_src/otp_test_engine.c
-+++ b/lib/crypto/c_src/otp_test_engine.c
-@@ -42,8 +42,10 @@
-       && !defined(OPENSSL_NO_EC) \
-       && !defined(OPENSSL_NO_ECDH) \
-       && !defined(OPENSSL_NO_ECDSA)
-+#if !defined(OPENSSL_NO_ENGINE)
- # define HAVE_EC
- #endif
-+#endif
- #if defined(HAVE_EC)
- /* If OPENSSL_NO_EC is set, there will be an error in ec.h included from engine.h
index 56277675ee96657aec015afc809d46b83251bf98..44d60890241ae3801278c8f9bf6dda71418d33f0 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 GO_VERSION_MAJOR_MINOR:=1.14
-GO_VERSION_PATCH:=3
+GO_VERSION_PATCH:=4
 
 PKG_NAME:=golang
 PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
@@ -20,7 +20,7 @@ GO_SOURCE_URLS:=https://dl.google.com/go/ \
 
 PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
 PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
-PKG_HASH:=93023778d4d1797b7bc6a53e86c3a9b150c923953225f8a48a2d5fabc971af56
+PKG_HASH:=7011af3bbc2ac108d1b82ea8abb87b2e63f78844f0259be20cde4d42c5c40584
 
 PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
index 8690bc5c88daa02f78cb1cdf0f6e771cbe7e78ae..94429a7b0a74e6296dd592fa551375f09e125fce 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=luajit
 PKG_VERSION:=2.1.0-beta3
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=LuaJIT-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://luajit.org/download
@@ -24,14 +24,13 @@ define Package/luajit
  CATEGORY:=Languages
  TITLE:=LuaJIT
  URL:=https://www.luajit.org
- DEPENDS:=@(i386||x86_64||arm||armeb||aarch64||powerpc||mips||mipsel)
+ DEPENDS:=@(i386||x86_64||arm||armeb||aarch64||powerpc||mips||mipsel||mips64)
 endef
 
 define Package/luajit/description
  LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language. *** Requires GCC Multilib on host system to build! ***
 endef
-
-ifeq ($(HOST_ARCH),x86_64)
+ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH), x86_64 mips64))
   ifeq ($(CONFIG_ARCH_64BIT),)
     HOST_BITS := -m32
   endif
index 7e3664f98c256c5c8d42202cb7e15c8f872202ff..e060c188768a6ba1d75e42044a5023c7b7d8d22b 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=perl-cgi
-PKG_VERSION:=4.46
+PKG_VERSION:=4.48
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://www.cpan.org/authors/id/L/LE/LEEJO
 PKG_SOURCE:=CGI-$(PKG_VERSION).tar.gz
-PKG_HASH:=788998ddc33ca382e5d7ce72c6c0ea1d8366c93067371fe2f14239ddea2e4298
+PKG_HASH:=102cd7562983b85e8354ebcbb3be94a35f7f6706b2b49fdb790135da4d1d55d2
 PKG_BUILD_DIR:=$(BUILD_DIR)/perl/CGI-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>, \
diff --git a/lang/perl-parse-yapp/Makefile b/lang/perl-parse-yapp/Makefile
new file mode 100644 (file)
index 0000000..c9cf1ce
--- /dev/null
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=perl-parse-yapp
+PKG_VERSION:=1.21
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=https://www.cpan.org/authors/id/W/WB/WBRASWELL/
+PKG_SOURCE:=Parse-Yapp-$(PKG_VERSION).tar.gz
+PKG_HASH:=3810e998308fba2e0f4f26043035032b027ce51ce5c8a52a8b8e340ca65f13e5
+
+PKG_LICENSE:=GPL-1.0-or-later Artistic-1.0-Perl
+PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
+
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/perl/Parse-Yapp-$(PKG_VERSION)
+HOST_BUILD_DEPENDS:=perl/host
+PKG_BUILD_DIR:=$(BUILD_DIR)/perl/Parse-Yapp-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(TOPDIR)/feeds/packages/lang/perl/perlmod.mk
+
+define Package/perl-parse-yapp
+  SUBMENU:=Perl
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Yet Another Parser Parser For Perl
+  URL:=http://search.cpan.org/dist/Parse-Yapp/
+  DEPENDS:=perl +perlbase-essential +perlbase-test
+endef
+
+define Host/Configure
+        $(call perlmod/host/Configure,,,)
+endef
+
+define Host/Compile
+        $(call perlmod/host/Compile,,)
+endef
+
+define Host/Install
+        $(call perlmod/host/Install,$(1),)
+endef
+
+define Build/Configure
+        $(call perlmod/Configure,,)
+endef
+
+define Build/Compile
+        $(call perlmod/Compile,,)
+endef
+
+define Package/perl-parse-yapp/install
+        $(call perlmod/Install,$(1),Parse auto/Parse)
+endef
+
+
+$(eval $(call BuildPackage,perl-parse-yapp))
+$(eval $(call HostBuild))
index cbae4074a4205730efa3b605f4de8fbc15c3eb90..84d256d2d8c682f18670a4cbae0a48e3333fb222 100644 (file)
@@ -11,7 +11,7 @@ include perlver.mk
 
 PKG_NAME:=perl
 PKG_VERSION:=$(PERL_VERSION)
-PKG_RELEASE:=5
+PKG_RELEASE:=4
 
 PKG_SOURCE_URL:=\
                https://cpan.metacpan.org/src/5.0 \
@@ -99,7 +99,7 @@ define Build/Configure
                                        -Dowrt:gccversion=$(CONFIG_GCC_VERSION) \
                                        -Dowrt:target_cross='$(TARGET_CROSS)' \
                                        -Dowrt:cflags='$(TARGET_CFLAGS_PERL) $(TARGET_CPPFLAGS_PERL)' \
-                                       -Dowrt:ldflags='$(TARGET_LDFLAGS) $(if $(CONFIG_GCC_LIBSSP),-lssp)' \
+                                       -Dowrt:ldflags='$(TARGET_LDFLAGS)' \
                                        -Dowrt:libc=$(subst uClibc,uclibc,$(CONFIG_LIBC)) \
                                        -Dowrt:ipv6=$(if $($(CONFIG_IPV6)),define,undef) \
                                        -Dowrt:threads=$(if $(CONFIG_PERL_THREADS),yes,no) \
diff --git a/lang/perl/patches/999-fix-build-failure-against-gcc-10.patch b/lang/perl/patches/999-fix-build-failure-against-gcc-10.patch
new file mode 100644 (file)
index 0000000..55d9a0e
--- /dev/null
@@ -0,0 +1,103 @@
+From 6bd6308fcea3541e505651bf8e8127a4a03d22cd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Tue, 12 Nov 2019 09:19:18 +0100
+Subject: [PATCH] Adapt Configure to GCC version 10
+
+I got a notice from Jeff Law <law@redhat.com>:
+
+    Your particular package fails its testsuite. This was ultimately
+    tracked down to a Configure problem. The perl configure script treated
+    gcc-10 as gcc-1 and turned on -fpcc-struct-return. This is an ABI
+    changing flag and caused Perl to not be able to interact properly with
+    the dbm libraries on the system leading to a segfault.
+
+His proposed patch corrected only this one instance of the version
+mismatch. Reading the Configure script revealed more issues. This
+patch fixes all of them I found.
+
+---
+ Configure | 14 +++++++-------
+ cflags.SH |  2 +-
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/Configure b/Configure
+index fad1c9f2b1..706c0b64ed 100755
+--- a/Configure
++++ b/Configure
+@@ -4701,7 +4701,7 @@ else
+ fi
+ $rm -f try try.*
+ case "$gccversion" in
+-1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;;
+ esac
+ case "$gccversion" in
+ '') gccosandvers='' ;;
+@@ -4741,7 +4741,7 @@ esac
+ # gcc 3.* complain about adding -Idirectories that they already know about,
+ # so we will take those off from locincpth.
+ case "$gccversion" in
+-3*)
++3.*)
+     echo "main(){}">try.c
+     for incdir in $locincpth; do
+        warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \
+@@ -5467,13 +5467,13 @@ fi
+ case "$hint" in
+ default|recommended)
+       case "$gccversion" in
+-      1*) dflt="$dflt -fpcc-struct-return" ;;
++      1.*) dflt="$dflt -fpcc-struct-return" ;;
+       esac
+       case "$optimize:$DEBUGGING" in
+       *-g*:old) dflt="$dflt -DDEBUGGING";;
+       esac
+       case "$gccversion" in
+-      2*) if $test -d /etc/conf/kconfig.d &&
++      2.*) if $test -d /etc/conf/kconfig.d &&
+                       $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
+               then
+                       # Interactive Systems (ISC) POSIX mode.
+@@ -5482,7 +5482,7 @@ default|recommended)
+               ;;
+       esac
+       case "$gccversion" in
+-      1*) ;;
++      1.*) ;;
+       2.[0-8]*) ;;
+       ?*)     set strict-aliasing -fno-strict-aliasing
+               eval $checkccflag
+@@ -5600,7 +5600,7 @@ case "$cppflags" in
+     ;;
+ esac
+ case "$gccversion" in
+-1*) cppflags="$cppflags -D__GNUC__"
++1.*) cppflags="$cppflags -D__GNUC__"
+ esac
+ case "$mips_type" in
+ '');;
+@@ -23103,7 +23103,7 @@ fi
+ : add -D_FORTIFY_SOURCE if feasible and not already there
+ case "$gccversion" in
+-[4567].*)     case "$optimize$ccflags" in
++[456789].*|[1-9][0-9]*)       case "$optimize$ccflags" in
+       *-O*)   case "$ccflags$cppsymbols" in
+               *_FORTIFY_SOURCE=*) # Don't add it again.
+                       echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4
+diff --git a/cflags.SH b/cflags.SH
+index e60742fed1..f1bcd6c38e 100755
+--- a/cflags.SH
++++ b/cflags.SH
+@@ -156,7 +156,7 @@ esac
+ case "$gccversion" in
+ '') ;;
+-[12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
++[12].*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
+ Intel*) ;; # # Is that you, Intel C++?
+ #
+ # NOTE 1: the -std=c89 without -pedantic is a bit pointless.
+-- 
+2.17.1
+
index 8dc3d1e611910647e34a68996f88e86b13a043c2..e5560434845860dc0b16392bec6f1870d07d6120 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=7.4.6
+PKG_VERSION:=7.4.7
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
@@ -16,7 +16,7 @@ PKG_CPE_ID:=cpe:/a:php:php
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_HASH:=d740322f84f63019622b9f369d64ea5ab676547d2bdcf12be77a5a4cffd06832
+PKG_HASH:=53558f8f24cd8ab6fa0ea252ca8198e2650160649681ce5230c1df1dc2b52faf
 
 PKG_BUILD_PARALLEL:=1
 PKG_USE_MIPS16:=0
index f7d97b0ee5e22021873d44db29e37b701d2ffd13..82c0b1c01369539f203e6f3b0bad8632b4c59aac 100644 (file)
@@ -5,11 +5,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=Flask
-PKG_VERSION:=1.1.1
-PKG_RELEASE:=2
+PKG_VERSION:=1.1.2
+PKG_RELEASE:=1
 
 PYPI_NAME:=$(PKG_NAME)
-PKG_HASH:=13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52
+PKG_HASH:=4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=BSD-3-Clause
index dd557ba2efd137b97208b64de56d3ce7e8fdc1ac..ad727d06ec423662f0b1d4bd838e0dd27762075b 100644 (file)
@@ -5,11 +5,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=Jinja2
-PKG_VERSION:=2.10.3
-PKG_RELEASE:=2
+PKG_VERSION:=2.11.2
+PKG_RELEASE:=1
 
 PYPI_NAME:=$(PKG_NAME)
-PKG_HASH:=9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de
+PKG_HASH:=89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=BSD-3-Clause
@@ -25,7 +25,7 @@ define Package/python3-jinja2
   CATEGORY:=Languages
   SUBMENU:=Python
   TITLE:=Jinja2
-  URL:=http://jinja.pocoo.org/
+  URL:=https://palletsprojects.com/p/jinja/
   DEPENDS:=+python3-light +python3-markupsafe
 endef
 
index dbd900e6b7e377501a9537928fac5bb39ac7d102..4bceb978d7334dd83242f633e30e90e29c500b07 100644 (file)
 
 This section describes specifics for the Python packages that are present in this repo, and how things are structured.
 
-In terms of license, contributing guide, etc, all of that information is described in the top [README.md](README.md) file, and it applies here as well. This document attempts to cover only technical aspects of Python packages, and maybe some explanations about how things are (and why they are as they are).
+In terms of license, contributing guide, etc, all of that information is described in the top [README.md](../../README.md) file, and it applies here as well. This document attempts to cover only technical aspects of Python packages, and maybe some explanations about how things are (and why they are as they are).
 
 ## Introduction
 
-This sub-tree came to exist after a number of contributions (Python packages) were made to this repo, and the [lang](lang) subtree grew to a point where a decision was made to move all Python packages under [lang/python](lang/python).
+This sub-tree came to exist after a number of contributions (Python packages) were made to this repo, and the [lang](../) subtree grew to a point where a decision was made to move all Python packages under [lang/python](./).
 
-It contains the Python 3 interpreter and Python packages. Most of the Python packages are downloaded from [pypi.org](https://pypi.org/). Python packages from [pypi.org](https://pypi.org/) are typically preferred when adding new packages.
+It contains the Python 3 interpreter and Python packages. Most of the Python packages are downloaded from [pypi.org](https://pypi.org/). Python packages from pypi.org are typically preferred when adding new packages.
 
 If more packages (than the ones packaged here) are needed, they can be downloaded via [pip](https://pip.pypa.io). Note that the versions of `pip` & `setuptools` [available in this repo] are the ones that are packaged inside the Python package (yes, Python comes packaged with `pip` & `setuptools`).
 
@@ -107,29 +107,27 @@ By default, automatic Python byte-code generation is disabled when running a Pyt
 ## General folder structure
 
 The basis of all these packages is:
-* [lang/python/python3](lang/python/python3) - The Python 3.x.y interpreter
+* [lang/python/python3](./python3) - The Python 3.x.y interpreter
 
-This is a normal OpenWrt package, which will build the Python interpreter. This also provides `python3-pip` & `python3-setuptools`. Each Python package is actually split into multiple sub-packages [e.g. python3-email, python3-sqlite3, etc]. This can be viewed inside [lang/python/python3/files](lang/python/python3/files).
+This is a normal OpenWrt package, which will build the Python interpreter. This also provides `python3-pip` & `python3-setuptools`. Each Python package is actually split into multiple sub-packages [e.g. python3-email, python3-sqlite3, etc]. This can be viewed inside [lang/python/python3/files](./python3/files).
 
 The reason for this splitting, is purely to offer a way for some people to package Python in as-minimal-as-possible-and-still-runable way, and also to be somewhat maintainable when packaging. A standard Python installation can take ~20-30 MBs of disk, which can be somewhat big for some people, so there is the `python3-base` package which brings that down to ~5 MBs. This seems to be good enough (and interesting) for a number of people.
 
 The Python interpreter is structured like this:
 * `python3-base`, which is just the minimal package to startup Python and run basic commands
 * `python3` is a meta-package, which installs almost everything (python3-base [plus] Python library [minus] some unit-tests & some windows-y things)
-* `python3-light` is `python3` [minus] packages that are in [lang/python/python3/files](lang/python/python3/files) ; the size of this package may be sensible (and interesting) to another group of people
+* `python3-light` is `python3` [minus] packages that are in [lang/python/python3/files](./python3/files) ; the size of this package may be sensible (and interesting) to another group of people
 
 All other Python packages (aside from the intepreter) typically use these files:
 * **python3-host.mk** - this file contains paths and build rules for running the Python interpreter on the host-side; they also provide paths to host interprete, host Python lib-dir & so on
 * **python3-package.mk**
   * includes **python3-host.mk**
-  * contains all the default build rules for Python packages; these will be detailed below in the [Building a Python package](#Building a Python package) section
+  * contains all the default build rules for Python packages; these will be detailed below in the [Building a Python package](#building-a-python-package) section
 
 **Note** that Python packages don't need to use these files (i.e. `python3-package.mk` & `python3-host.mk`), but they do provide some ease-of-use & reduction of duplicate code. And they do contain some learned-lessons about packaging Python packages, so it's a good idea to use them.
 
 ## Building a Python package
 
-Packaging for Python uses the `VARIANT` mechanism for packaging inside OpenWrt. (#### FIXME: find a link for this later if it exists)
-
 ### Include python3-package.mk
 
 Add this after  `include $(INCLUDE_DIR)/package.mk`
@@ -141,18 +139,18 @@ This will make sure that build rules for Python can be specified and picked up f
 
 ### Include pypi.mk (optional)
 
-If the package source code will be downloaded from [pypi.org](https://pypi.org/), including `pypi.mk` can help simplify the package Makefile.
+`pypi.mk` is an include file that makes downloading package source code from [pypi.org](https://pypi.org/) simpler.
 
 To use `pypi.mk`, add this **before** `include $(INCLUDE_DIR)/package.mk`:
 ```
 include ../pypi.mk
 ```
 
-`pypi.mk` has several `PYPI_*` variables that must/can be set (see below); these should be set before `pypi.mk` is included, i.e. before the `include ../pypi.mk` line.
+`pypi.mk` has several `PYPI_*` variables that can/must be set (see below); these should be set before `pypi.mk` is included, i.e. before the `include ../pypi.mk` line.
 
 `pypi.mk` also provides default values for `PKG_SOURCE` and `PKG_SOURCE_URL`, so these variables may be omitted.
 
-One variable is required:
+Required variables:
 
 * `PYPI_NAME`: Package name on pypi.org. This should match the PyPI name exactly.
 
@@ -161,7 +159,7 @@ One variable is required:
   PYPI_NAME:=PyYAML
   ```
 
-These variables are optional:
+Optional variables:
 
 * `PYPI_SOURCE_NAME`: Package name component of the source tarball filename  
   Default: Same value as `PYPI_NAME`
@@ -174,8 +172,6 @@ These variables are optional:
 PKG_SOURCE?=$(PYPI_SOURCE_NAME)-$(PKG_VERSION).$(PYPI_SOURCE_EXT)
 ```
 
-The `PYPI_SOURCE_*` variables allow this default `PKG_SOURCE` value to be customized as necessary.
-
 ### Add Package/<PKG_NAME> OpenWrt definitions
 
 This part is similar to default OpenWrt packages.
@@ -189,7 +185,6 @@ define Package/python3-lxml
   TITLE:=Pythonic XML processing library
   URL:=https://lxml.de
   DEPENDS:=+python3-light +libxml2 +libxslt +libexslt
-  VARIANT:=python3
 endef
 
 define Package/python3-lxml/description
@@ -199,7 +194,6 @@ endef
 ```
 
 Some considerations here (based on the example above):
-* `VARIANT=python3` must be added
 * typically the package is named `Package/python3-<something>` ; this convention makes things easier to follow, though it could work without naming things this way
 * `TITLE` can be something a bit more verbose/neat ; typically the name is short as seen above
 
@@ -215,7 +209,7 @@ Aside from other libraries and programs, every Python package will depend on at
 
   * `python3` is useful if many (more than three) Python standard library packages are needed.
 
-* Python standard library packages: As noted above, many parts of the Python standard library are packaged separate from the Python interpreter. These packages are defined by the files in [lang/python/python3/files](lang/python/python3/files).
+* Python standard library packages: As noted above, many parts of the Python standard library are packaged separate from the Python interpreter. These packages are defined by the files in [lang/python/python3/files](./python3/files).
 
   To find out which of these separate standard library packages are necessary, after completing a draft Makefile (including the `$(eval ...)` lines described in the next section), run `make` with the `configure` target and `PY3=stdlib V=s` in the command line. For example:
 
@@ -334,7 +328,7 @@ endef
 
 ### Host-side Python packages for build
 
-These can be installed via pip and ideally they should only be installed like this, because it's a bit simpler than running them through the OpenWrt build system. Build variants on the host-side build are more complicated (and nearly impossible to do sanely) in the current OpenWrt build system.
+These can be installed via pip and ideally they should only be installed like this, because it's a bit simpler than running them through the OpenWrt build system.
 
 Which is why [for example] if you need python cffi on the host build, it's easier to just add it via:
 ```
index 2a75925176aefffce1d9e19b7edc749053303ac7..1d2951f6460d3361d6e71fd4f997d478d77d74e3 100644 (file)
@@ -5,11 +5,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=Werkzeug
-PKG_VERSION:=0.16.0
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.1
+PKG_RELEASE:=1
 
 PYPI_NAME:=$(PKG_NAME)
-PKG_HASH:=7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7
+PKG_HASH:=6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=BSD-3-Clause
index 02a2113324e338e7e3e18cd749b758d48ab972ad..405cb162494e1426ebca8bf7ed6a88e96820d8e7 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=django
-PKG_VERSION:=3.0.6
+PKG_VERSION:=3.0.7
 PKG_RELEASE:=1
 
 PYPI_NAME:=Django
-PKG_HASH:=9aaa6a09678e1b8f0d98a948c56482eac3e3dd2ddbfb8de70a868135ef3b5e01
+PKG_HASH:=5052b34b34b3425233c682e0e11d658fd6efd587d11335a0203d827224ada8f2
 
 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>, Peter Stadler <peter.stadler@student.uibk.ac.at>
 PKG_LICENSE:=BSD-3-Clause
diff --git a/lang/python/numpy/Makefile b/lang/python/numpy/Makefile
new file mode 100644 (file)
index 0000000..9bbf1fb
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2019 Jakub Piotr Cłapa <jpc@loee.pl>
+# Copyright (C) 2020 Alexandru Ardelean <ardeleanalex@gmail.com>
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=numpy
+PKG_VERSION:=1.18.5
+PKG_RELEASE:=1
+
+PYPI_NAME:=$(PKG_NAME)
+PKG_HASH:=34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b
+
+PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE.txt
+PKG_CPE_ID:=cpe:/a:numpy:numpy
+
+# yes, zip... sigh
+PYPI_SOURCE_EXT:=zip
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS="Cython==0.29.19"
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-numpy
+  SUBMENU:=Python
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=The fundamental package for scientific computing with Python
+  URL:=https://www.numpy.org/
+  DEPENDS:=@!SOFT_FLOAT +INSTALL_GFORTRAN:libgfortran +python3
+endef
+
+define Package/python3-numpy/description
+NumPy is the fundamental package for array computing with Python.
+
+By default, this package is built without some modules.
+For some modules to be available, the INSTALL_GFORTRAN symbol needs
+to be enabled in the OpenWrt core/toolchain.
+endef
+
+$(eval $(call Py3Package,python3-numpy))
+$(eval $(call BuildPackage,python3-numpy))
+$(eval $(call BuildPackage,python3-numpy-src))
index 17898e81ca5b923b8625181b4157cc1c070c1d21..281a282b90f358387e2ef58d29f0aa9622fa7fc4 100644 (file)
@@ -7,11 +7,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pillow
-PKG_VERSION:=7.1.1
-PKG_RELEASE:=2
+PKG_VERSION:=7.1.2
+PKG_RELEASE:=1
 
 PYPI_NAME:=Pillow
-PKG_HASH:=0f89ddc77cf421b8cd34ae852309501458942bf370831b4a9b406156b599a14e
+PKG_HASH:=a0b49960110bc6ff5fead46013bcb8825d101026d466f3a4de3476defe0fb0dd
 
 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=HPND
index 1bb1f4686bb88ff839a47c7a5d0c73c29f5b1910..805ccda6121d828a2b18950901144d0b24591013 100644 (file)
@@ -5,11 +5,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pyodbc
-PKG_VERSION:=4.0.26
-PKG_RELEASE:=3
+PKG_VERSION:=4.0.30
+PKG_RELEASE:=1
 
 PYPI_NAME:=$(PKG_NAME)
-PKG_HASH:=e52700b5d24a846483b5ab80acd9153f8e593999c9184ffea11596288fb33de3
+PKG_HASH:=852b5deeeb3366af8b4408efed993501708be45d221881bce60c9aac54be726a
 PKG_BUILD_DEPENDS:=python3 unixodbc
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE.txt
diff --git a/lang/python/python-cached-property/Makefile b/lang/python/python-cached-property/Makefile
new file mode 100644 (file)
index 0000000..cbe83de
--- /dev/null
@@ -0,0 +1,35 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-cached-property
+PKG_VERSION:=1.5.1
+PKG_RELEASE:=2
+
+PYPI_NAME:=cached-property
+PKG_HASH:=9217a59f14a5682da7c4b8829deadbfc194ac22e9908ccf7c8820234e80a1504
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+PYTHON3_PKG_SETUP_ARGS:=
+
+define Package/python3-cached-property
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=A decorator for caching properties in classes
+  URL:=https://github.com/pydanny/cached-property
+  DEPENDS:=+python3-light
+endef
+
+define Package/python3-cached-property/description
+  A decorator for caching properties in classes.
+endef
+
+$(eval $(call Py3Package,python3-cached-property))
+$(eval $(call BuildPackage,python3-cached-property))
+$(eval $(call BuildPackage,python3-cached-property-src))
diff --git a/lang/python/python-crypto/Makefile b/lang/python/python-crypto/Makefile
deleted file mode 100644 (file)
index a284ff4..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# Copyright (C) 2009-2015, 2017-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:=python-crypto
-PKG_VERSION:=2.6.1
-PKG_RELEASE:=5
-
-PYPI_NAME:=pycrypto
-PKG_HASH:=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
-
-PKG_LICENSE:=Public Domain
-PKG_LICENSE_FILES:=COPYRIGHT
-PKG_CPE_ID:=cpe:/a:dlitz:pycrypto
-PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
-
-include ../pypi.mk
-include $(INCLUDE_DIR)/package.mk
-include ../python3-package.mk
-
-PYTHON3_PKG_SETUP_ARGS:=
-PYTHON3_PKG_SETUP_VARS:= \
-  CONFIG_BIG_ENDIAN="$(CONFIG_BIG_ENDIAN)"
-
-define Package/python3-crypto
-  SECTION:=lang-python
-  CATEGORY:=Languages
-  SUBMENU:=Python
-  TITLE:=Python Cryptography Toolkit
-  URL:=https://www.dlitz.net/software/pycrypto/
-  DEPENDS:=+libgmp +python3
-endef
-
-define Package/python3-crypto/description
-A collection of both secure hash functions (such as MD5 and SHA),
-and various encryption algorithms (AES, DES, IDEA, RSA, ElGamal, etc.).
-endef
-
-$(eval $(call Py3Package,python3-crypto))
-$(eval $(call BuildPackage,python3-crypto))
-$(eval $(call BuildPackage,python3-crypto-src))
diff --git a/lang/python/python-crypto/patches/001-no-host-paths.patch b/lang/python/python-crypto/patches/001-no-host-paths.patch
deleted file mode 100644 (file)
index d481627..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/setup.py
-+++ b/setup.py
-@@ -370,7 +370,7 @@ kw = {'name':"pycrypto",
-       'ext_modules': plat_ext + [
-             # _fastmath (uses GNU mp library)
-             Extension("Crypto.PublicKey._fastmath",
--                      include_dirs=['src/','/usr/include/'],
-+                      include_dirs=['src/'],
-                       libraries=['gmp'],
-                       sources=["src/_fastmath.c"]),
diff --git a/lang/python/python-crypto/patches/002-fix-endianness-detect.patch b/lang/python/python-crypto/patches/002-fix-endianness-detect.patch
deleted file mode 100644 (file)
index 38e5a5b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/setup.py
-+++ b/setup.py
-@@ -100,6 +100,10 @@ def PrintErr(*args, **kwd):
-         w(kwd.get("end", "\n"))
- def endianness_macro():
-+    if os.environ["CONFIG_BIG_ENDIAN"] == "y":
-+        return ('PCT_BIG_ENDIAN', 1)
-+    else:
-+        return ('PCT_LITTLE_ENDIAN', 1)
-     s = struct.pack("@I", 0x33221100)
-     if s == "\x00\x11\x22\x33".encode():     # little endian
-         return ('PCT_LITTLE_ENDIAN', 1)
diff --git a/lang/python/python-crypto/patches/003-omit-tests.patch b/lang/python/python-crypto/patches/003-omit-tests.patch
deleted file mode 100644 (file)
index f72bcb0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/setup.py
-+++ b/setup.py
-@@ -357,16 +357,6 @@ kw = {'name':"pycrypto",
-                   "Crypto.Random",
-                   "Crypto.Random.Fortuna",
-                   "Crypto.Random.OSRNG",
--                  "Crypto.SelfTest",
--                  "Crypto.SelfTest.Cipher",
--                  "Crypto.SelfTest.Hash",
--                  "Crypto.SelfTest.Protocol",
--                  "Crypto.SelfTest.PublicKey",
--                  "Crypto.SelfTest.Random",
--                  "Crypto.SelfTest.Random.Fortuna",
--                  "Crypto.SelfTest.Random.OSRNG",
--                  "Crypto.SelfTest.Util",
--                  "Crypto.SelfTest.Signature",
-                   "Crypto.Protocol",
-                   "Crypto.PublicKey",
-                   "Crypto.Signature"],
diff --git a/lang/python/python-crypto/patches/100-CVE-2013-7459.patch b/lang/python/python-crypto/patches/100-CVE-2013-7459.patch
deleted file mode 100644 (file)
index db1f740..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-From 8dbe0dc3eea5c689d4f76b37b93fe216cf1f00d4 Mon Sep 17 00:00:00 2001
-From: Legrandin <helderijs@gmail.com>
-Date: Sun, 22 Dec 2013 22:24:46 +0100
-Subject: [PATCH] Throw exception when IV is used with ECB or CTR
-
-The IV parameter is currently ignored when initializing
-a cipher in ECB or CTR mode.
-
-For CTR mode, it is confusing: it takes some time to see
-that a different parameter is needed (the counter).
-
-For ECB mode, it is outright dangerous.
-
-This patch forces an exception to be raised.
----
- lib/Crypto/SelfTest/Cipher/common.py | 31 +++++++++++++++++++++++--------
- src/block_template.c                 | 11 +++++++++++
- 2 files changed, 34 insertions(+), 8 deletions(-)
-
-diff --git a/lib/Crypto/SelfTest/Cipher/common.py b/lib/Crypto/SelfTest/Cipher/common.py
-index 420b6ff..a5f8a88 100644
---- a/lib/Crypto/SelfTest/Cipher/common.py
-+++ b/lib/Crypto/SelfTest/Cipher/common.py
-@@ -239,16 +239,30 @@ class RoundtripTest(unittest.TestCase):
-         return """%s .decrypt() output of .encrypt() should not be garbled""" % (self.module_name,)
-     def runTest(self):
--        for mode in (self.module.MODE_ECB, self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB, self.module.MODE_OPENPGP):
-+
-+        ## ECB mode
-+        mode = self.module.MODE_ECB
-+        encryption_cipher = self.module.new(a2b_hex(self.key), mode)
-+        ciphertext = encryption_cipher.encrypt(self.plaintext)
-+        decryption_cipher = self.module.new(a2b_hex(self.key), mode)
-+        decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
-+        self.assertEqual(self.plaintext, decrypted_plaintext)
-+
-+        ## OPENPGP mode
-+        mode = self.module.MODE_OPENPGP
-+        encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
-+        eiv_ciphertext = encryption_cipher.encrypt(self.plaintext)
-+        eiv = eiv_ciphertext[:self.module.block_size+2]
-+        ciphertext = eiv_ciphertext[self.module.block_size+2:]
-+        decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv)
-+        decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
-+        self.assertEqual(self.plaintext, decrypted_plaintext)
-+
-+        ## All other non-AEAD modes (but CTR)
-+        for mode in (self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB):
-             encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
-             ciphertext = encryption_cipher.encrypt(self.plaintext)
--            
--            if mode != self.module.MODE_OPENPGP:
--                decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
--            else:
--                eiv = ciphertext[:self.module.block_size+2]
--                ciphertext = ciphertext[self.module.block_size+2:]
--                decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv)
-+            decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
-             decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
-             self.assertEqual(self.plaintext, decrypted_plaintext)
-diff --git a/src/block_template.c b/src/block_template.c
-index f940e0e..d555ceb 100644
---- a/src/block_template.c
-+++ b/src/block_template.c
-@@ -170,6 +170,17 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict)
-                               "Key cannot be the null string");
-               return NULL;
-       }
-+      if (IVlen != 0 && mode == MODE_ECB)
-+      {
-+              PyErr_Format(PyExc_ValueError, "ECB mode does not use IV");
-+              return NULL;
-+      }
-+      if (IVlen != 0 && mode == MODE_CTR)
-+      {
-+              PyErr_Format(PyExc_ValueError,
-+                      "CTR mode needs counter parameter, not IV");
-+              return NULL;
-+      }
-       if (IVlen != BLOCK_SIZE && mode != MODE_ECB && mode != MODE_CTR)
-       {
-               PyErr_Format(PyExc_ValueError,
-From 58de28a5d32bc10e15766e5a59f41b07397cc6cb Mon Sep 17 00:00:00 2001
-From: Richard Mitchell <richard.j.mitchell@gmail.com>
-Date: Mon, 28 Apr 2014 16:58:27 +0100
-Subject: [PATCH] Fix speedtest run for ECB modes.
-
----
- pct-speedtest.py | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/pct-speedtest.py b/pct-speedtest.py
-index 4ce18be..c7b893a 100644
---- a/pct-speedtest.py
-+++ b/pct-speedtest.py
-@@ -121,6 +121,8 @@ class Benchmark:
-         blocks = self.random_blocks(16384, 1000)
-         if mode is None:
-             cipher = module.new(key)
-+        elif mode==module.MODE_ECB:
-+            cipher = module.new(key, module.MODE_ECB)
-         else:
-             cipher = module.new(key, mode, iv)
diff --git a/lang/python/python-crypto/patches/101-CVE-2018-6594.patch b/lang/python/python-crypto/patches/101-CVE-2018-6594.patch
deleted file mode 100644 (file)
index 8e8c558..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
---- a/lib/Crypto/PublicKey/ElGamal.py
-+++ b/lib/Crypto/PublicKey/ElGamal.py
-@@ -153,33 +153,33 @@ def generate(bits, randfunc, progress_fu
-         if number.isPrime(obj.p, randfunc=randfunc):
-             break
-     # Generate generator g
--    # See Algorithm 4.80 in Handbook of Applied Cryptography
--    # Note that the order of the group is n=p-1=2q, where q is prime
-     if progress_func:
-         progress_func('g\n')
-     while 1:
-+        # Choose a square residue; it will generate a cyclic group of order q.
-+        obj.g = pow(number.getRandomRange(2, obj.p, randfunc), 2, obj.p)
-+
-         # We must avoid g=2 because of Bleichenbacher's attack described
-         # in "Generating ElGamal signatures without knowning the secret key",
-         # 1996
--        #
--        obj.g = number.getRandomRange(3, obj.p, randfunc)
--        safe = 1
--        if pow(obj.g, 2, obj.p)==1:
--            safe=0
--        if safe and pow(obj.g, q, obj.p)==1:
--            safe=0
-+        if obj.g in (1, 2):
-+            continue
-+
-         # Discard g if it divides p-1 because of the attack described
-         # in Note 11.67 (iii) in HAC
--        if safe and divmod(obj.p-1, obj.g)[1]==0:
--            safe=0
-+        if (obj.p - 1) % obj.g == 0:
-+            continue
-+
-         # g^{-1} must not divide p-1 because of Khadir's attack
-         # described in "Conditions of the generator for forging ElGamal
-         # signature", 2011
-         ginv = number.inverse(obj.g, obj.p)
--        if safe and divmod(obj.p-1, ginv)[1]==0:
--            safe=0
--        if safe:
--            break
-+        if (obj.p - 1) % ginv == 0:
-+            continue
-+
-+        # Found
-+        break
-+
-     # Generate private key x
-     if progress_func:
-         progress_func('x\n')
index 72a22b430431985f7570ab3cc01d8c937e5ab201..037ff861dfb072a87a5321faec64c28beb9fdb47 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-cryptodome
 PKG_VERSION:=3.9.7
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=pycryptodome
 PKG_HASH:=f1add21b6d179179b3c177c33d18a2186a09cc0d3af41ff5ed3f377360b869f2
@@ -31,7 +31,7 @@ define Package/python3-cryptodome
   TITLE:=A self-contained cryptographic library for Python
   URL:=https://www.pycryptodome.org/
   DEPENDS:=+libgmp +python3
-  CONFLICTS:=python3-crypto
+  PROVIDES:=python3-crypto
 endef
 
 define Package/python3-cryptodome/description
diff --git a/lang/python/python-distro/Makefile b/lang/python/python-distro/Makefile
new file mode 100644 (file)
index 0000000..bef80d6
--- /dev/null
@@ -0,0 +1,34 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-distro
+PKG_VERSION:=1.5.0
+PKG_RELEASE:=3
+
+PYPI_NAME:=distro
+PKG_HASH:=0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-distro
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=Distro - an OS platform information API
+  URL:=https://github.com/nir0s/distro
+  DEPENDS:=+python3-light +python3-logging
+endef
+
+define Package/python3-distro/description
+  A much more elaborate, renewed alternative implementation for Python's
+  platform.linux_distribution()
+endef
+
+$(eval $(call Py3Package,python3-distro))
+$(eval $(call BuildPackage,python3-distro))
+$(eval $(call BuildPackage,python3-distro-src))
diff --git a/lang/python/python-docker/Makefile b/lang/python/python-docker/Makefile
new file mode 100644 (file)
index 0000000..43016e1
--- /dev/null
@@ -0,0 +1,40 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-docker
+PKG_VERSION:=4.2.1
+PKG_RELEASE:=2
+
+PYPI_NAME:=docker
+PKG_HASH:=380a20d38fbfaa872e96ee4d0d23ad9beb0f9ed57ff1c30653cbeb0c9c0964f2
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+PYTHON3_PKG_SETUP_ARGS:=
+
+define Package/python3-docker
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=A Python library for the Docker Engine API
+  URL:=https://github.com/docker/docker-py
+  DEPENDS:=\
+         +python3-light +python3-distutils +python3-logging \
+         +python3-openssl +python3-paramiko +python3-six +python3-requests \
+         +python3-websocket-client
+endef
+
+define Package/python3-docker/description
+  A Python library for the Docker Engine API. It lets you do anything the
+  docker command does, but from within Python apps – run containers manage
+  containers, manage Swarms, etc.
+endef
+
+$(eval $(call Py3Package,python3-docker))
+$(eval $(call BuildPackage,python3-docker))
+$(eval $(call BuildPackage,python3-docker-src))
diff --git a/lang/python/python-dockerpty/Makefile b/lang/python/python-dockerpty/Makefile
new file mode 100644 (file)
index 0000000..662e4c5
--- /dev/null
@@ -0,0 +1,35 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-dockerpty
+PKG_VERSION:=0.4.1
+PKG_RELEASE:=3
+
+PYPI_NAME:=dockerpty
+PKG_HASH:=69a9d69d573a0daa31bcd1c0774eeed5c15c295fe719c61aca550ed1393156ce
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE.txt
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+PYTHON3_PKG_SETUP_ARGS:=
+
+define Package/python3-dockerpty
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=Python library to use the pseudo-tty of a docker container
+  URL:=https://github.com/d11wtq/dockerpty
+  DEPENDS:=+python3-light +python3-openssl +python3-six
+endef
+
+define Package/python3-dockerpty/description
+  Python library to use the pseudo-tty of a docker container
+endef
+
+$(eval $(call Py3Package,python3-dockerpty))
+$(eval $(call BuildPackage,python3-dockerpty))
+$(eval $(call BuildPackage,python3-dockerpty-src))
diff --git a/lang/python/python-docopt/Makefile b/lang/python/python-docopt/Makefile
new file mode 100644 (file)
index 0000000..cba2394
--- /dev/null
@@ -0,0 +1,35 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-docopt
+PKG_VERSION:=0.6.2
+PKG_RELEASE:=2
+
+PYPI_NAME:=docopt
+PKG_HASH:=49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE-MIT
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+PYTHON3_PKG_SETUP_ARGS:=
+
+define Package/python3-docopt
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=Pythonic argument parser, that will make you smile
+  URL:=http://docopt.org/
+  DEPENDS:=+python3-light
+endef
+
+define Package/python3-docopt/description
+  Pythonic argument parser, that will make you smile
+endef
+
+$(eval $(call Py3Package,python3-docopt))
+$(eval $(call BuildPackage,python3-docopt))
+$(eval $(call BuildPackage,python3-docopt-src))
diff --git a/lang/python/python-dotenv/Makefile b/lang/python/python-dotenv/Makefile
new file mode 100644 (file)
index 0000000..f3e6e14
--- /dev/null
@@ -0,0 +1,35 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-dotenv
+PKG_VERSION:=0.13.0
+PKG_RELEASE:=3
+
+PYPI_NAME:=python-dotenv
+PKG_HASH:=3b9909bc96b0edc6b01586e1eed05e71174ef4e04c71da5786370cebea53ad74
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-dotenv
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=Add .env support to your django/flask apps in development and deployments
+  URL:=http://github.com/theskumar/python-dotenv
+  DEPENDS:=+python3-light +python3-logging
+endef
+
+define Package/python3-dotenv/description
+  A Python library which reads the key-value pair from .env file and adds them
+  to environment variable. It is great for managing app settings during
+  development and in production using 12-factor principles.
+endef
+
+$(eval $(call Py3Package,python3-dotenv))
+$(eval $(call BuildPackage,python3-dotenv))
+$(eval $(call BuildPackage,python3-dotenv-src))
diff --git a/lang/python/python-jsonschema/Makefile b/lang/python/python-jsonschema/Makefile
new file mode 100644 (file)
index 0000000..0e3c7b6
--- /dev/null
@@ -0,0 +1,36 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-jsonschema
+PKG_VERSION:=3.2.0
+PKG_RELEASE:=3
+
+PYPI_NAME:=jsonschema
+PKG_HASH:=c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=COPYING
+
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS=setuptools_scm
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-jsonschema
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=An implementation of JSON Schema validation
+  URL:=https://github.com/Julian/jsonschema
+  DEPENDS:=+python3-light +python3-attrs +python3-urllib \
+         +python3-six +python3-pyrsistent +python3-setuptools
+endef
+
+define Package/python3-jsonschema/description
+  jsonschema is an implementation of JSON Schema validation for Python.
+endef
+
+$(eval $(call Py3Package,python3-jsonschema))
+$(eval $(call BuildPackage,python3-jsonschema))
+$(eval $(call BuildPackage,python3-jsonschema-src))
index 3b9fe00d81c5de4b3dbbe8d1eee35ab3d64b82b9..0c38979a3f4ebdfc4f7944952322cc7489dea5cd 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-lxml
-PKG_VERSION:=4.4.2
-PKG_RELEASE:=3
+PKG_VERSION:=4.5.1
+PKG_RELEASE:=1
 
 PYPI_NAME:=lxml
-PKG_HASH:=eff69ddbf3ad86375c344339371168640951c302450c5d3e9936e98d6459db06
+PKG_HASH:=27ee0faf8077c7c1a589573b1450743011117f1aa1a91d5ae776bbc5ca6070f2
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSES.txt
@@ -41,17 +41,6 @@ define Package/python3-lxml/description
   XPath, RelaxNG, XML Schema, XSLT, C14N and much more.
 endef
 
-TARGET_LDFLAGS += -lxml2 -lxslt -lexslt
-
-PYTHON3_PKG_SETUP_ARGS += \
-       --static
-
-PYTHON3_PKG_SETUP_VARS += \
-       INCLUDE="$(STAGING_DIR)/usr/include/ $(STAGING_DIR)/usr/include/libxml2" \
-       LIBRARY="$(STAGING_DIR)/usr/lib $(STAGING_DIR)/lib" \
-       CFLAGS="$(TARGET_CFLAGS)" \
-       LDFLAGS="$(TARGET_LDFLAGS)"
-
 $(eval $(call Py3Package,python3-lxml))
 $(eval $(call BuildPackage,python3-lxml))
 $(eval $(call BuildPackage,python3-lxml-src))
index 6441b218e951acac69d31db9280615a8f5a77976..e548d466da4cafa0414ae9b521f68cdb3acff1cd 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-more-itertools
-PKG_VERSION:=8.3.0
+PKG_VERSION:=8.4.0
 PKG_RELEASE:=1
 
 PYPI_NAME:=more-itertools
-PKG_HASH:=558bb897a2232f5e4f8e2399089e35aecb746e1f9191b6584a151647e89267be
+PKG_HASH:=68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=MIT
index c88b464951252aad956fab8d6b075e6990d819d1..c9b27a05e911c40a841736e498ed29b172db8c59 100644 (file)
@@ -7,11 +7,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-packaging
-PKG_VERSION:=20.3
-PKG_RELEASE:=2
+PKG_VERSION:=20.4
+PKG_RELEASE:=1
 
 PYPI_NAME:=packaging
-PKG_HASH:=3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3
+PKG_HASH:=4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=Apache-2.0 BSD-2-Clause
diff --git a/lang/python/python-paramiko/Makefile b/lang/python/python-paramiko/Makefile
new file mode 100644 (file)
index 0000000..82005c1
--- /dev/null
@@ -0,0 +1,39 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-paramiko
+PKG_VERSION:=2.7.1
+PKG_RELEASE:=2
+
+PYPI_NAME:=paramiko
+PKG_HASH:=920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=LGPL-2.1-or-later
+PKG_LICENSE_FILES:=LICENSE
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+PYTHON3_PKG_SETUP_ARGS:=
+
+define Package/python3-paramiko
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=SSH2 protocol library
+  URL:=https://github.com/paramiko/paramiko/
+  DEPENDS:=+python3-light +python3-logging +python3-bcrypt \
+         +python3-cryptography +python3-openssl +python3-pynacl
+endef
+
+define Package/python3-paramiko/description
+  Paramiko is a Python (2.7, 3.4+) implementation of the SSHv2 protocol,
+  providing both client and server functionality. While it leverages a Python
+  C extension for low level cryptography (Cryptography), Paramiko itself is a
+  pure Python interface around SSH networking concepts.
+endef
+
+$(eval $(call Py3Package,python3-paramiko))
+$(eval $(call BuildPackage,python3-paramiko))
+$(eval $(call BuildPackage,python3-paramiko-src))
diff --git a/lang/python/python-pynacl/Makefile b/lang/python/python-pynacl/Makefile
new file mode 100644 (file)
index 0000000..fe2c455
--- /dev/null
@@ -0,0 +1,39 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-pynacl
+PKG_VERSION:=1.4.0
+PKG_RELEASE:=2
+
+PYPI_NAME:=PyNaCl
+PKG_HASH:=54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DEPENDS:=libffi/host
+
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="cffi>=1.4.1"
+
+PYTHON3_PKG_SETUP_VARS:= SODIUM_INSTALL=system
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-pynacl
+  CATEGORY:=Languages
+  SECTION:=lang
+  SUBMENU:=Python
+  TITLE:=Python binding to the libsodium library
+  URL:=https://github.com/pyca/pynacl/
+  DEPENDS:=+libsodium +python3-light +python3-cffi +python3-six
+endef
+
+define Package/python3-pynacl/description
+  PyNaCl is a Python binding to libsodium, which is a fork of the Networking and Cryptography library.
+endef
+
+$(eval $(call Py3Package,python3-pynacl))
+$(eval $(call BuildPackage,python3-pynacl))
+$(eval $(call BuildPackage,python3-pynacl-src))
index f13a4ea22f601f4140f5b36d7198d52aec080c95..df1aa0ade5ead0665c1baaa241d7c14da312e67f 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pytest
-PKG_VERSION:=5.4.1
-PKG_RELEASE:=2
+PKG_VERSION:=5.4.2
+PKG_RELEASE:=1
 
 PYPI_NAME:=pytest
-PKG_HASH:=84dde37075b8805f3d1f392cc47e38a0e59518fb46a431cfdaf7cf1ce805f970
+PKG_HASH:=eb2b5e935f6a019317e455b6da83dd8650ac9ffd2ee73a7b657a30873d67a698
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=MIT
index fbcd95b8ea5b425406296b22c3f012e8aaa9aa0b..5c412cdb26b3874b72894201804d22b8ea17fc15 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-requests
-PKG_VERSION:=2.23.0
-PKG_RELEASE:=2
+PKG_VERSION:=2.24.0
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>, Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=Apache-2.0
@@ -17,7 +17,7 @@ PKG_LICENSE_FILES:=LICENSE
 PKG_CPE_ID:=cpe:/a:python-requests:requests
 
 PYPI_NAME:=requests
-PKG_HASH:=b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6
+PKG_HASH:=b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b
 
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
diff --git a/lang/python/python-texttable/Makefile b/lang/python/python-texttable/Makefile
new file mode 100644 (file)
index 0000000..e805b31
--- /dev/null
@@ -0,0 +1,33 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-texttable
+PKG_VERSION:=1.6.2
+PKG_RELEASE:=2
+
+PYPI_NAME:=texttable
+PKG_HASH:=eff3703781fbc7750125f50e10f001195174f13825a92a45e9403037d539b4f4
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-texttable
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=Module for creating simple ASCII tables
+  URL:=https://github.com/foutaise/texttable/
+  DEPENDS:=+python3-light +python3-codecs
+endef
+
+define Package/python3-texttable/description
+  Module for creating simple ASCII tables
+endef
+
+$(eval $(call Py3Package,python3-texttable))
+$(eval $(call BuildPackage,python3-texttable))
+$(eval $(call BuildPackage,python3-texttable-src))
diff --git a/lang/python/python-websocket-client/Makefile b/lang/python/python-websocket-client/Makefile
new file mode 100644 (file)
index 0000000..ca2db93
--- /dev/null
@@ -0,0 +1,36 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-websocket-client
+PKG_VERSION:=0.57.0
+PKG_RELEASE:=2
+
+PYPI_NAME:=websocket_client
+PKG_HASH:=d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-websocket-client
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=WebSocket client for Python. hybi13 is supported
+  URL:=https://github.com/websocket-client/websocket-client
+  DEPENDS:=+python3-light +python3-logging +python3-openssl +python3-six
+endef
+
+define Package/python3-websocket-client/description
+  websocket-client module is WebSocket client for python. This provide the low
+  level APIs for WebSocket. All APIs are the synchronous functions.
+
+  websocket-client supports only hybi-13.
+endef
+
+$(eval $(call Py3Package,python3-websocket-client))
+$(eval $(call BuildPackage,python3-websocket-client))
+$(eval $(call BuildPackage,python3-websocket-client-src))
index 098e2dbf269787024a89ee341790be38683ba51d..ba7b9157484634f73159ef6b05d24c42380feb3e 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vala
-PKG_VERSION:=0.48.5
+PKG_VERSION:=0.48.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNOME/vala/0.48
-PKG_HASH:=a3d4c0e0dadd4c64962205d2f448af72d6bd8c67919d984012b8a41b843ec757
+PKG_HASH:=d18d08ed030ce0e0f044f4c15c9df3c25b15beaf8700e45e43b736a6debf9707
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1-or-later
index 0b5bec29d65bd42b7e1a4388e05a7a788b17beb7..023af27bc9e043fb0bcd948ebd5cfb323ce4191e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=avahi
 PKG_VERSION:=0.8
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/lathiat/avahi/releases/download/v$(PKG_VERSION) \
@@ -251,7 +251,6 @@ $(call Package/avahi/Default/description)
 endef
 
 TARGET_CFLAGS += $(FPIC) -DGETTEXT_PACKAGE
-TARGET_LDFLAGS += $(if $(CONFIG_GCC_LIBSSP),-lssp_nonshared)
 
 CONFIGURE_ARGS += \
        --enable-shared \
diff --git a/libs/cereal/Makefile b/libs/cereal/Makefile
new file mode 100644 (file)
index 0000000..b0e0a8a
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright © 2020 David Woodhouse <dwmw2@infradead.org>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=cereal
+PKG_VERSION:=1.3.0
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/USCiLab/cereal/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=329ea3e3130b026c03a4acc50e168e7daff4e6e661bc6a7dfec0d77b570851d5
+
+PKG_MAINTAINER:=David Woodhouse <dwmw2@infradead.org>
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+CMAKE_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+CMAKE_OPTIONS += \
+       -DCMAKE_CXX_FLAGS=-latomic \
+       -DJUST_INSTALL_CEREAL=ON \
+       -DSKIP_PORTABILITY_TEST=ON \
+       -DSKIP_PERFORMANCE_COMPARISON=ON \
+       -DWITH_WERROR=OFF
+
+define Package/cereal
+  BUILDONLY:=1
+  SECTION:=devel
+  CATEGORY:=Development
+  SUBMENU:=Libraries
+  TITLE:=Cereal is a library of C++ header files for serialization
+  URL:=https://github.com/USCilab/cereal
+endef
+
+
+define Package/cereal/description
+  Cereal is a library of C++ headers for serialization
+endef
+
+$(eval $(call BuildPackage,cereal))
index 9bd3e379f997c735a85a0248d8c3a364ad33155d..35164627257b78f3b214f9c506e27ad40909a005 100644 (file)
@@ -14,11 +14,11 @@ PKG_MAINTAINER:=Harald Geyer <harald@ccbib.org>
 PKG_NAME:=elektra
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.md
-PKG_VERSION:=0.8.21
-PKG_RELEASE:=5
+PKG_VERSION:=0.9.2
+PKG_RELEASE:=1
 
 # Use this for official releasees
-PKG_HASH:=51892570f18d1667d0da4d0908a091e41b41c20db9835765677109a3d150cd26
+PKG_HASH:=6f2fcf8aaed8863e1cc323265ca2617751ca50dac974b43a0811bcfd4a511f2e
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://ftp.libelektra.org/ftp/elektra/releases
 
@@ -29,11 +29,9 @@ PKG_SOURCE_URL:=http://ftp.libelektra.org/ftp/elektra/releases
 #PKG_SOURCE_VERSION:=e97efb29a94f3a49cb952d06552fcf53708ea8c7
 #PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 
-HOST_BUILD_DEPENDS:=swig/host
-PKG_BUILD_DEPENDS:=elektra/host lua
+PKG_BUILD_DEPENDS:= lua
 
 include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/cmake.mk
 include $(INCLUDE_DIR)/nls.mk
 
@@ -99,11 +97,10 @@ define Package/libelektra-plugins
 endef
 
 define CONTENT_ELEKTRA_PLUGINS_TEXT
-base64 boolean cachefilter camel ccode conditionals csvstorage
-date directoryvalue enum file filecheck glob hexcode hidden
-hosts iconv ipaddr keytometa line lineendings list mathcheck
-mini network null path profile range shell syslog uname
-validation
+base64 conditionals csvstorage date file filecheck glob hexcode
+hexnumber hidden hosts iconv ipaddr keytometa line lineendings list
+mathcheck macaddr mini network null path profile quickdump
+range reference rgbcolor shell syslog type uname unit validation
 endef
 
 CONTENT_ELEKTRA_PLUGINS = $(strip $(CONTENT_ELEKTRA_PLUGINS_TEXT))
@@ -123,7 +120,7 @@ define Package/libelektra-cpp
   DEPENDS:=+libelektra-core +libstdcpp
 endef
 
-CONTENT_ELEKTRA_CPP=dump regexstore struct type
+CONTENT_ELEKTRA_CPP=ccode directoryvalue dump
 
 define Package/libelektra-cpp/description
 $(call Package/libelektra/Default-description)
@@ -149,7 +146,7 @@ endef
 define Package/libelektra-crypto
   $(call Package/libelektra/Default)
   TITLE:=Elektra crypto plugin
-  DEPENDS:=+libelektra-core +libopenssl
+  DEPENDS:=+libelektra-core +libgcrypt
 endef
 
 define Package/libelektra-crypto/description
@@ -234,6 +231,12 @@ $(call Package/libelektra/Default-description)
 This package contains support for storing the key database as yaml files.
 endef
 
+define Package/libelektra-zmq
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra ZeroMQ transport plugins
+  DEPENDS:=+libelektra-core +libzmq
+endef
+
 define Package/libelektra-python3
   $(call Package/libelektra/Default)
   TITLE:=Elektra python3 plugin
@@ -265,9 +268,9 @@ define Package/libelektra-extra
 endef
 
 define CONTENT_EXTRA_PLUGINS_TEXT
-blockresolver c constants counter desktop dini dpkg error
-fcrypt fstab logchange mozprefs passwd rename required
-simplespeclang timeofday tracer
+blockresolver c constants counter desktop dpkg error fcrypt
+fstab logchange mozprefs passwd process rename
+timeofday tracer yamlsmith
 endef
 
 CONTENT_ELEKTRA_EXTRA:=$(strip $(CONTENT_EXTRA_PLUGINS_TEXT))
@@ -281,6 +284,8 @@ are included in this package. Currently this includes:
 $(CONTENT_EXTRA_PLUGINS_TEXT)
 endef
 
+CMAKE_BINARY_SUBDIR=build
+
 CMAKE_OPTIONS = \
        -DTARGET_PLUGIN_FOLDER="" \
        -DBUILD_FULL=OFF \
@@ -291,38 +296,35 @@ CMAKE_OPTIONS = \
        -DKDB_DEFAULT_RESOLVER=resolver_fm_pb_b \
        -DKDB_DEFAULT_STORAGE=ini \
        -DENABLE_OPTIMIZATIONS=OFF \
-       -DPLUGINS="ALL;-multifile;-python2" \
-       -DICONV_FIND_REQUIRED=ON \
-       -DICONV_INCLUDE_DIR="$(ICONV_PREFIX)/include" \
-       -DICONV_LIBRARY="$(ICONV_PREFIX)/lib"
-
-CMAKE_HOST_OPTIONS = \
-       -DCMAKE_SKIP_RPATH=FALSE \
-       -DCMAKE_INSTALL_RPATH=$(STAGING_DIR_HOST)/lib/ \
-       -DINSTALL_BUILD_TOOLS=ON \
-       -DBUILD_STATIC=OFF \
-       -DBUILD_DOCUMENTATION=OFF \
-       -DINSTALL_SYSTEM_FILES=OFF \
-       -DFORCE_IN_SOURCE_BUILD=ON \
-       -DBUILD_TESTING=OFF \
-       -DPLUGINS="ALL;-python2;-python;-ruby" \
-       -DTOOLS="gen;kdb"
+       -DPLUGINS="ALL;-multifile;-simpleini;-internalnotification" \
+       -DIconv_INCLUDE_DIR="$(ICONV_PREFIX)/include" \
+       -DIconv_LIBRARY="$(ICONV_PREFIX)/lib/libiconv.$(if $(CONFIG_BUILD_NLS),so,a)" \
+       -DBINDINGS="MAINTAINED;-intercept_env;-intercept_fs;-io_uv;-io_ev;-io_glib"
 
 define Package/libelektra-core/install
        $(INSTALL_DIR) $(1)/etc/kdb/
        $(INSTALL_DIR) $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra.so* $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-core.so* $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ease.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-globbing.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-highlevel.so* $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-invoke.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-io.so* $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-kdb.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-merge.so* $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-meta.so* $(1)/usr/lib/
+       #The next is excluded because of an upstream bug
+       #$(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-notification.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-opts.so* $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-plugin.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-pluginprocess.so* $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-proposal.so* $(1)/usr/lib/
        #The next is only supported with glibc, so skip it.
        #$(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektraintercept-* $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-resolver_fm_pb_b.so $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-utility.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-cache.so $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-mmapstorage.so $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ni.so $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ini.so $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-sync.so $(1)/usr/lib/
@@ -363,7 +365,7 @@ endef
 
 define Package/libelektra-crypto/install
        $(INSTALL_DIR) $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-crypto_openssl.so $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-crypto.so $(1)/usr/lib/
 endef
 
 define Package/libelektra-curlget/install
@@ -374,6 +376,7 @@ endef
 define Package/libelektra-dbus/install
        $(INSTALL_DIR) $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-dbus.so $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-dbusrecv.so $(1)/usr/lib/
 endef
 
 define Package/libelektra-xerces/install
@@ -396,6 +399,12 @@ define Package/libelektra-yamlcpp/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-yamlcpp.so $(1)/usr/lib/
 endef
 
+define Package/libelektra-zmq/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-zeromqsend.so $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-zeromqrecv.so $(1)/usr/lib/
+endef
+
 define Package/libelektra-python3/install
        $(INSTALL_DIR) $(1)/usr/lib/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-python.so $(1)/usr/lib/
@@ -418,8 +427,6 @@ define Build/InstallDev
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
 endef
 
-
-$(eval $(call HostBuild))
 $(eval $(call BuildPackage,libelektra-core))
 $(eval $(call BuildPackage,elektra-kdb))
 $(eval $(call BuildPackage,libelektra-resolvers))
@@ -435,4 +442,5 @@ $(eval $(call BuildPackage,libelektra-xml))
 $(eval $(call BuildPackage,libelektra-yajl))
 $(eval $(call BuildPackage,libelektra-python3))
 $(eval $(call BuildPackage,libelektra-lua))
+$(eval $(call BuildPackage,libelektra-zmq))
 $(eval $(call BuildPackage,libelektra-extra))
diff --git a/libs/elektra/patches/010-openssl-deprecated.patch b/libs/elektra/patches/010-openssl-deprecated.patch
deleted file mode 100644 (file)
index ea7df04..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
---- a/src/plugins/crypto/openssl_operations.c
-+++ b/src/plugins/crypto/openssl_operations.c
-@@ -25,6 +25,10 @@
- #include <stdlib.h>
- #include <string.h>
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#define EVP_CIPHER_CTX_reset EVP_CIPHER_CTX_cleanup
-+#endif
-+
- #define KEY_BUFFER_SIZE (ELEKTRA_CRYPTO_SSL_KEYSIZE + ELEKTRA_CRYPTO_SSL_BLOCKSIZE)
- /*
-@@ -144,8 +148,10 @@ int elektraCryptoOpenSSLInit (Key * errorKey ELEKTRA_UNUSED)
-       // initialize OpenSSL according to
-       // https://wiki.openssl.org/index.php/Library_Initialization
-       pthread_mutex_lock (&mutex_ssl);
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       OpenSSL_add_all_algorithms ();
-       ERR_load_crypto_strings ();
-+#endif
-       pthread_mutex_unlock (&mutex_ssl);
-       return 1;
- }
-@@ -246,8 +252,8 @@ void elektraCryptoOpenSSLHandleDestroy (elektraCryptoHandle * handle)
-       if (handle)
-       {
-               pthread_mutex_lock (&mutex_ssl);
--              EVP_CIPHER_CTX_cleanup (handle->encrypt);
--              EVP_CIPHER_CTX_cleanup (handle->decrypt);
-+              EVP_CIPHER_CTX_reset (handle->encrypt);
-+              EVP_CIPHER_CTX_reset (handle->decrypt);
-               EVP_CIPHER_CTX_free (handle->encrypt);
-               EVP_CIPHER_CTX_free (handle->decrypt);
-               pthread_mutex_unlock (&mutex_ssl);
index 1b37784f9c230b9500f818eb81d858256fa93cc6..34d02743f02f372c9916a28a76b174e3b442db2d 100644 (file)
@@ -8,14 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=file
-PKG_VERSION:=5.38
-PKG_RELEASE:=2
+PKG_VERSION:=5.39
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://src.fedoraproject.org/lookaside/pkgs/file/ \
-       http://download.openpkg.org/components/cache/file/ \
+PKG_SOURCE_URL:=http://download.openpkg.org/components/cache/file/ \
        ftp://ftp.astron.com/pub/file/
-PKG_HASH:=593c2ffc2ab349c5aea0f55fedfe4d681737b6b62376a9b3ad1e77b2cc19fa34
+PKG_HASH:=f05d286a76d9556243d0cb05814929c2ecf3a5ba07963f8f70bfaaa70517fad1
 
 PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
 PKG_LICENSE:=BSD-2-Clause
index 0dd7bf70055f3f31792aaf842e013f1013066fb5..fc7813e6700daaca4f9e7e151cc759837be99744 100644 (file)
@@ -23,7 +23,6 @@ PKG_MAINTAINER:=Val Kulkov <val.kulkov@gmail.com>
 PKG_FIXUP:=autoreconf
 PKG_LIBTOOL_PATHS:=builds/unix
 
-include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libfreetype
@@ -51,11 +50,6 @@ CONFIGURE_ARGS += \
        --with-zlib=yes \
        --with-png=yes
 
-HOST_CONFIGURE_ARGS+= \
-       --with-bzip2=no \
-       --with-zlib=no \
-       --with-png=no
-
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" all install
 endef
@@ -84,5 +78,4 @@ define Package/libfreetype/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfreetype.so.* $(1)/usr/lib/
 endef
 
-$(eval $(call HostBuild))
 $(eval $(call BuildPackage,libfreetype))
index 62663a19209aedc8956a1c0c328b29e4e48716c5..d2b5224f760a3b399239f73bb0a135c3ba1641e6 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnutls
-PKG_VERSION:=3.6.13
+PKG_VERSION:=3.6.14
 PKG_RELEASE:=1
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6
-PKG_HASH:=32041df447d9f4644570cf573c9f60358e865637d69b7e59d1159b7240b52f38
+PKG_HASH:=5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63
 #PKG_FIXUP:=autoreconf gettext-version
 PKG_MAINTAINER:=Nikos Mavrogiannopoulos <nmav@gnutls.org>
 PKG_LICENSE:=LGPL-2.1-or-later
index c87ddfcb50e1a3aad565146e63ecda115a0712f5..f7e3c0fe66deb60cfa5048e7e4a730bd3e5d8c57 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=google-authenticator-libpam
-PKG_VERSION:=1.08
+PKG_VERSION:=1.09
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/google/google-authenticator-libpam/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=6f6d7530261ba9e2ece84214f1445857d488b7851c28a58356b49f2d9fd36290
+PKG_HASH:=ab1d7983413dc2f11de2efa903e5c326af8cb9ea37765dacb39949417f7cd037
 
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
 PKG_LICENSE:=Apache-2.0
index 1ec13921b0a21afb77452a2ce37a6f989de3928e..6b8150d68222c541ab54afd611b766dc3471886a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hiredis
-PKG_VERSION:=0.14.0
-PKG_RELEASE:=2
+PKG_VERSION:=0.14.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/redis/hiredis/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=042f965e182b80693015839a9d0278ae73fae5d5d09d8bf6d0e6a39a8c4393bd
+PKG_HASH:=2663b2aed9fd430507e30fc5e63274ee40cdd1a296026e22eafd7d99b01c8913
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING
index 44d7b7587cc8bb0946fa0f0306a552ed9dbe506e..819ecc64664bce4242af9f4191cfb559e90e91f3 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libarchive
-PKG_VERSION:=3.4.2
+PKG_VERSION:=3.4.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.libarchive.org/downloads
-PKG_HASH:=d8e10494b4d3a15ae9d67a130d3ab869200cfd60b2ab533b391b0a0d5500ada1
+PKG_HASH:=0bfc3fd40491768a88af8d9b86bf04a9e95b6d41a94f9292dbc0ec342288c05f
 
 PKG_MAINTAINER:=Johannes Morgenroth <morgenroth@ibr.cs.tu-bs.de>
 PKG_LICENSE:=BSD-2-Clause
index a3c5283499ea6d4f3842fb349e418c6a8248ceed..33483e935335009bce2d43bf9a56d89e97fa6e84 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libcap
-PKG_VERSION:=2.33
-PKG_RELEASE:=2
+PKG_VERSION:=2.36
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/libs/security/linux-privs/libcap2
-PKG_HASH:=08edeaba2757021aeec45c4eeec52566675e0e0f5d4f057284d729e04f2643d6
+PKG_HASH:=5048c849bdbbe24d2ca59463142cb279abec5edf3ab6731ab35a596bcf538a49
 
 PKG_MAINTAINER:=Paul Wassi <p.wassi@gmx.at>
 PKG_LICENSE:=GPL-2.0-only
@@ -89,11 +89,11 @@ define Build/InstallDev
        $(CP) $(PKG_INSTALL_DIR)/lib/libcap.{so*,a} $(1)/usr/lib/
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/lib/libpsx.a $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libcap.pc $(1)/usr/lib/pkgconfig/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/lib/pkgconfig/libcap.pc $(1)/usr/lib/pkgconfig/
        $(SED) 's,exec_prefix=,exec_prefix=/usr,g' $(1)/usr/lib/pkgconfig/libcap.pc
        $(SED) 's,/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libcap.pc
        $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libcap.pc
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpsx.pc $(1)/usr/lib/pkgconfig/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/lib/pkgconfig/libpsx.pc $(1)/usr/lib/pkgconfig/
        $(SED) 's,exec_prefix=,exec_prefix=/usr,g' $(1)/usr/lib/pkgconfig/libpsx.pc
        $(SED) 's,/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libpsx.pc
        $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libpsx.pc
diff --git a/libs/libcap/patches/100-portability.patch b/libs/libcap/patches/100-portability.patch
deleted file mode 100644 (file)
index 19d28d1..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/libcap/_makenames.c
-+++ b/libcap/_makenames.c
-@@ -8,7 +8,6 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
--#include <sys/capability.h>
- /*
-  * #include 'sed' generated array
-@@ -23,7 +22,7 @@ struct {
- };
- /* this should be more than big enough (factor of three at least) */
--const char *pointers[8*sizeof(struct __user_cap_data_struct)];
-+const char *pointers[8*12];
- int main(void)
- {
diff --git a/libs/libcap/patches/200-change-hardcoded-shell-to-sh.patch b/libs/libcap/patches/200-change-hardcoded-shell-to-sh.patch
deleted file mode 100644 (file)
index 8da4d6b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/progs/capsh.c
-+++ b/progs/capsh.c
-@@ -25,6 +25,9 @@
- #include <sys/wait.h>
- #include <unistd.h>
-+#ifndef SHELL
-+#define SHELL "/bin/sh"
-+#endif
- #define MAX_GROUPS       100   /* max number of supplementary groups for user */
- static char *binary(unsigned long value)
-@@ -775,10 +778,10 @@ int main(int argc, char *argv[], char *envp[])
-       } else if (!strcmp("--print", argv[i])) {
-           arg_print();
-       } else if ((!strcmp("--", argv[i])) || (!strcmp("==", argv[i]))) {
--          argv[i] = strdup(argv[i][0] == '-' ? "/bin/bash" : argv[0]);
-+          argv[i] = strdup(argv[i][0] == '-' ? SHELL : argv[0]);
-           argv[argc] = NULL;
-           execve(argv[i], argv+i, envp);
--          fprintf(stderr, "execve /bin/bash failed!\n");
-+          fprintf(stderr, "execve " SHELL " failed!\n");
-           exit(1);
-       } else if (!strncmp("--has-p=", argv[i], 8)) {
-           cap_value_t cap;
-@@ -888,7 +891,7 @@ int main(int argc, char *argv[], char *envp[])
-                  "  --killit=<n>   send signal(n) to child\n"
-                  "  --forkfor=<n>  fork and make child sleep for <n> sec\n"
-                  "  ==             re-exec(capsh) with args as for --\n"
--                 "  --             remaing arguments are for /bin/bash\n"
-+                 "  --             remaing arguments are for " SHELL "\n"
-                  "                 (without -- [%s] will simply exit(0))\n",
-                  argv[0], argv[0]);
diff --git a/libs/libconfig/Makefile b/libs/libconfig/Makefile
new file mode 100644 (file)
index 0000000..fe7c5f5
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# Copyright (C) 2008-2012 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:=libconfig
+PKG_VERSION:=1.7.2
+PKG_RELEASE:=3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://hyperrealm.github.io/libconfig/dist/
+PKG_HASH:=7c3c7a9c73ff3302084386e96f903eb62ce06953bb1666235fac74363a16fad9
+
+PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
+PKG_LICENSE:=LGPL-2.1-or-later
+PKG_LICENSE_FILES:=COPYING.LIB
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libconfig
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=Configuration File Library
+  URL:=https://hyperrealm.github.io/libconfig/
+  ABI_VERSION:=11
+endef
+
+define Package/libconfig/description
+ Libconfig is a simple library for manipulating structured configuration
+ files. This file format is more compact and more readable than XML. And
+ unlike XML, it is type-aware, so it is not necessary to do string
+ parsing in application code.
+
+ Libconfig is very compact -- just 38K for the stripped C shared
+ library (less than one-fourth the size of the expat XML parser library)
+ and 66K for the stripped C++ shared library. This makes it well-suited
+ for memory-constrained systems like handheld devices.
+endef
+
+CONFIGURE_ARGS += \
+       --enable-shared \
+       --disable-static \
+       --disable-cxx
+
+define Build/InstallDev
+       $(CP) $(PKG_INSTALL_DIR)/* $(1)/
+endef
+
+define Package/libconfig/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libconfig.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libconfig))
index a6255c72708462ca15b7e5e3234515ce97cb5104..269be2873500478c41ff110b35cd7a7727aadb67 100644 (file)
@@ -9,20 +9,22 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libgphoto2
-PKG_VERSION:=2.5.23
+PKG_VERSION:=2.5.25
 PKG_RELEASE:=1
 PORT_VERSION:=0.12.0
-PKG_MAINTAINER:=Leonardo Medici <leonardo_medici@me.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/gphoto
-PKG_HASH:=d8af23364aa40fd8607f7e073df74e7ace05582f4ba13f1724d12d3c97e8852d
-PKG_LICENSE:=LGPL-2.1
+PKG_HASH:=7c0e98f438c2b128186afe16ce7833a12fa36f87d01467e837b9d27e7a167f3a
+
+PKG_MAINTAINER:=Leonardo Medici <leonardo_medici@me.com>
+PKG_LICENSE:=LGPL-2.1-or-later
 PKG_LICENSE_FILES:=COPYING
 
 PKG_FIXUP:=autoreconf
 PKG_LIBTOOL_PATHS:=. libgphoto2_port
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
index 8c12e7861f784b77af4d37848b4ec845005efee5..84a56ccec5d7a94f076386077644cac11ee1cfcc 100644 (file)
@@ -8,19 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libimobiledevice
-PKG_SOURCE_DATE:=2020-02-19
-PKG_SOURCE_VERSION:=3d8d13f0a70cefc1b12571b7f6aa2d1d4c58cffb
+PKG_VERSION:=1.3.0
 PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/libimobiledevice/libimobiledevice
-PKG_MIRROR_HASH:=4239f90c68ecd250a900b5256eafc364c658dcb8cc7767c58bd59b6d6b249d4e
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://www.libimobiledevice.org/downloads
+PKG_HASH:=53f2640c6365cd9f302a6248f531822dc94a6cced3f17128d4479a77bd75b0f6
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_LICENSE:=LGPL-2.1-or-later
 PKG_LICENSE_FILES:=COPYING.LESSER
 
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
@@ -64,20 +62,22 @@ define Package/libimobiledevice-utils/description
   This package contains the libimobiledevice utilities.
 endef
 
-CONFIGURE_ARGS += --without-cython
+CONFIGURE_ARGS += \
+       --disable-static \
+       --without-cython
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/libimobiledevice $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libimobiledevice.{a,la,so*} $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libimobiledevice-1.0.so* $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libimobiledevice-*.pc $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libimobiledevice-1.0.pc $(1)/usr/lib/pkgconfig/
 endef
 
 define Package/libimobiledevice/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libimobiledevice.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libimobiledevice-1.0.so.* $(1)/usr/lib/
 endef
 
 define Package/libimobiledevice-utils/install
diff --git a/libs/libimobiledevice/patches/010-format.patch b/libs/libimobiledevice/patches/010-format.patch
deleted file mode 100644 (file)
index 26ec21e..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From ec2bba4ffe5a0939ba192b014ba594eaa964412f Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Sun, 8 Dec 2019 15:45:19 -0800
-Subject: [PATCH] idevicedate: Fix -Wformat=2 warning
-
-Format functions expect a constant expression, not a variable.
-
-Simplified the code slightly.
----
- tools/idevicedate.c | 17 ++++-------------
- 1 file changed, 4 insertions(+), 13 deletions(-)
-
-diff --git a/tools/idevicedate.c b/tools/idevicedate.c
-index 4de90b63..6dddc185 100644
---- a/tools/idevicedate.c
-+++ b/tools/idevicedate.c
-@@ -38,9 +38,9 @@
- #include <libimobiledevice/lockdown.h>
- #ifdef _DATE_FMT
--#define DATE_FMT_LANGINFO() nl_langinfo (_DATE_FMT)
-+#define DATE_FMT_LANGINFO nl_langinfo (_DATE_FMT)
- #else
--#define DATE_FMT_LANGINFO() ""
-+#define DATE_FMT_LANGINFO "%a %b %e %H:%M:%S %Z %Y"
- #endif
- static void print_usage(int argc, char **argv)
-@@ -75,7 +75,6 @@ int main(int argc, char *argv[])
-       uint64_t datetime = 0;
-       time_t rawtime;
-       struct tm * tmp;
--      char const *format = NULL;
-       char buffer[80];
-       int result = 0;
-@@ -131,14 +130,6 @@ int main(int argc, char *argv[])
-               }
-       }
--      /* determine a date format */
--      if (!format) {
--              format = DATE_FMT_LANGINFO ();
--              if (!*format) {
--                      format = "%a %b %e %H:%M:%S %Z %Y";
--              }
--      }
--
-       ret = idevice_new(&device, udid);
-       if (ret != IDEVICE_E_SUCCESS) {
-               if (udid) {
-@@ -195,7 +186,7 @@ int main(int argc, char *argv[])
-               tmp = localtime(&rawtime);
-               /* finally we format and print the current date */
--              strftime(buffer, 80, format, tmp);
-+              strftime(buffer, 80, DATE_FMT_LANGINFO, tmp);
-               puts(buffer);
-       } else {
-               datetime = setdate;
-@@ -217,7 +208,7 @@ int main(int argc, char *argv[])
-               if(lockdownd_set_value(client, NULL, "TimeIntervalSince1970", node) == LOCKDOWN_E_SUCCESS) {
-                       tmp = localtime(&setdate);
--                      strftime(buffer, 80, format, tmp);
-+                      strftime(buffer, 80, DATE_FMT_LANGINFO, tmp);
-                       puts(buffer);
-               } else {
-                       printf("ERROR: Failed to set date on device.\n");
index 63c7e5bdbe27ca31dc97bb4fed3e1029f6b0ddb7..8d82ef0028fec3b801aa1f555cd263842fc0ca96 100644 (file)
@@ -9,16 +9,14 @@ PKG_NAME:=libirecovery
 PKG_VERSION:=1.0.0
 PKG_RELEASE:=2
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/libimobiledevice/libirecovery
-PKG_SOURCE_VERSION:=2bd64e6d9c82c547bdd15cb32a74c1de5fd53bd8
-PKG_MIRROR_HASH:=eff43fbb0140ba653b514ef5c0a6ecc715dd05d8a61d405775573ae5f78995d7
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://www.libimobiledevice.org/downloads
+PKG_HASH:=cda0aba10a5b6fc2e1d83946b009e3e64d0be36912a986e35ad6d34b504ad9b4
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_LICENSE:=LGPL-2.1-or-later
 PKG_LICENSE_FILES:=COPYING
 
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
@@ -59,20 +57,22 @@ define Package/irecovery/description
   This package contains the libirecovery utilities.
 endef
 
-CONFIGURE_ARGS += --without-udev
+CONFIGURE_ARGS += \
+       --disable-static \
+       --without-udev
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/libirecovery.h $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libirecovery.{a,la,so*} $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libirecovery-1.0.so* $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libirecovery.pc $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libirecovery-1.0.pc $(1)/usr/lib/pkgconfig/
 endef
 
 define Package/libirecovery/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libirecovery.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libirecovery-1.0.so.* $(1)/usr/lib/
 endef
 
 define Package/irecovery/install
index 978a12cfeefa8ba224460d783aa886f36be01d65..18515ce8a6349f4ce652fa85403d77c3981b701a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libmraa
 PKG_VERSION:=2.1.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/eclipse/mraa/tar.gz/v$(PKG_VERSION)?
@@ -30,7 +30,8 @@ include $(INCLUDE_DIR)/cmake.mk
 include ../../lang/python/python3-package.mk
 
 CMAKE_OPTIONS=-DENABLEEXAMPLES=0 \
-       -DFIRMATA=ON
+       -DFIRMATA=ON \
+       -DBUILDSWIG=OFF
 
 TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/node
 
@@ -77,7 +78,7 @@ endef
 define Package/libmraa-python3
   $(call Package/libmraa/Default)
   TITLE:=Eclipse MRAA lowlevel IO Python3 library
-  DEPENDS:=+libmraa +python3-light
+  DEPENDS:=+libmraa +python3-light @BROKEN
 endef
 
 define Package/libmraa-python3/description
index 07fada3c1103d0389d2f5db3d7a4d871a4fc9f74..b5d8d29eac225aad6f3d0e6c2e1d1a4b6c3d9c2c 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libndpi
-PKG_VERSION:=2.8
+PKG_VERSION:=3.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/ntop/nDPI/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=f98def4d0e43818317b20e2887ce500b2d6a5a9c8ddb28cf57ae51caae0f33cc
+PKG_HASH:=6808c8c4495343e67863f4d30bb261c1e2daec5628ae0be257ba2a2dea7ec70a
 PKG_BUILD_DIR:=$(BUILD_DIR)/nDPI-$(PKG_VERSION)
 
-PKG_MAINTAINER:=Banglang Huang <banglang.huang@foxmail.com>
-PKG_LICENSE:=LGPLv3
+PKG_MAINTAINER:=Banglang Huang <banglang.huang@foxmail.com>, Toni Uhlig <matzeton@googlemail.com>
+PKG_LICENSE:=LGPL-3.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
 PKG_FIXUP:=autoreconf
@@ -45,10 +45,10 @@ define Build/Prepare
        $(PKG_UNPACK)
        $(Build/Patch)
        mv $(PKG_BUILD_DIR)/configure.seed $(PKG_BUILD_DIR)/configure.ac
-       $(SED) "s/@NDPI_MAJOR@/2/g" \
-               -e "s/@NDPI_MINOR@/8/g" \
+       $(SED) "s/@NDPI_MAJOR@/3/g" \
+               -e "s/@NDPI_MINOR@/2/g" \
                -e "s/@NDPI_PATCH@/0/g" \
-               -e "s/@NDPI_VERSION_SHORT@/2.8.0/g" \
+               -e "s/@NDPI_VERSION_SHORT@/3.2.0/g" \
                $(PKG_BUILD_DIR)/configure.ac
 endef
 
index 5901668daad326798b41e6c9dca5d31d75edbb7b..54aca93ff8e88a1c489ebcbbe2d448c3f5929228 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnpupnp
-PKG_VERSION:=4.0.3
+PKG_VERSION:=4.0.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads
-PKG_HASH:=160ab9b0fa8886013811573cb28cffe0b205eadb318e9627c09b297dee1cbc23
+PKG_HASH:=30f15caa67dc83f76b0976438165aa4704a50c7e3e5444c50bb8cbad874877ca
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1-or-later
diff --git a/libs/liborcania/Makefile b/libs/liborcania/Makefile
new file mode 100644 (file)
index 0000000..aaf6c76
--- /dev/null
@@ -0,0 +1,45 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=liborcania
+PKG_VERSION:=2.1.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/babelouest/orcania/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=a83f01968ae3e68fecfb2f7029f886902718c65315008223784d2d023da515bb
+
+PKG_MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
+PKG_LICENSE:=LGPL-2.1-or-later
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/orcania-$(PKG_VERSION)
+PKG_BUILD_PARALLEL:=1
+CMAKE_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/liborcania
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=Functionality required by libulfius.
+  URL:=https://github.com/babelouest/orcania
+  PROVIDES:=liborcania
+endef
+
+define Package/liborcania/description
+  Potluck with different functions for different purposes that can be shared among C programs.
+endef
+
+define Package/liborcania/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/liborcania.so.* \
+               $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,liborcania))
index b198f98d63651104ce8aca15070b3a15a4168be0..73595a77e881cb09f7cc2ad2196ee2e218dc6ebb 100644 (file)
@@ -8,17 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libplist
-PKG_SOURCE_VERSION:=2.1.0
+PKG_VERSION:=2.2.0
 PKG_RELEASE:=2
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/libimobiledevice/libplist
-PKG_MIRROR_HASH:=452ef5d6e87461a8b7a47a2274878cf200ccf480b4e81924f22ec1c445e353d0
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://www.libimobiledevice.org/downloads
+PKG_HASH:=4a5517e5377ec421df84c586ba85bb4e1d26f11ad203d7d450a907c0156fbd9a
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_CPE_ID:=cpe:/a:libimobiledevice:libplist
 
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
@@ -80,6 +79,7 @@ define Package/plistutil/description
 endef
 
 CONFIGURE_ARGS += \
+       --disable-static \
        --without-cython
 
 TARGET_CFLAGS += -flto
@@ -90,19 +90,22 @@ define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/plist $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libplist*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libplist-2.0*.so* $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libplist*.pc $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libplist++-2.0.pc $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libplist-2.0.pc $(1)/usr/lib/pkgconfig/
+       $(LN) libplist++-2.0.pc $(1)/usr/lib/pkgconfig/libplist++.pc
+       $(LN) libplist-2.0.pc $(1)/usr/lib/pkgconfig/libplist.pc
 endef
 
 define Package/libplist/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libplist.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libplist-2.0.so.* $(1)/usr/lib/
 endef
 
 define Package/libplistcxx/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libplist++.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libplist++-2.0.so.* $(1)/usr/lib/
 endef
 
 define Package/plistutil/install
index d4cad1d146378fe030098d841129dabce44a892d..b63812178ad5cfcd234ed6b03e63d4b8a1964f23 100644 (file)
@@ -24,7 +24,6 @@ PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
-include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libpng
@@ -69,5 +68,4 @@ define Package/libpng/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpng.so $(1)/usr/lib/
 endef
 
-$(eval $(call HostBuild))
 $(eval $(call BuildPackage,libpng))
index ef5660823b49438a17ec221b8fe483f01a231dd2..3b87ad73e6e0d1ee6a66ec08d152e64a2c59deca 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libqmi
-PKG_VERSION:=1.24.12
+PKG_VERSION:=1.24.14
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.freedesktop.org/software/libqmi
-PKG_HASH:=2d3b91a2b8a882b17b16403c9ef7bdce522db4f0ceaa3e4dff76033885428b69
+PKG_HASH:=208fe3e94dabe1d8117d1023d841737b6fe92aaff21ef8f35bbed15417ee507f
 
 PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
 
diff --git a/libs/libulfius/Makefile b/libs/libulfius/Makefile
new file mode 100644 (file)
index 0000000..37b99ac
--- /dev/null
@@ -0,0 +1,70 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libulfius
+PKG_VERSION:=2.6.7
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/babelouest/ulfius/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=fbbcf693043409cc1929820b3eae5e1f7b1c93a3a8acec981946988ee3d0e85b
+
+PKG_MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
+PKG_LICENSE:=LGPL-2.1-or-later
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(BUILD_VARIANT)/ulfius-$(PKG_VERSION)
+PKG_BUILD_PARALLEL:=1
+CMAKE_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/libulfius/default
+  SECTION:=libs
+  CATEGORY:=Libraries
+  SUBMENU:=Networking
+  TITLE:=Web Framework to build REST APIs, Webservices or any HTTP endpoint in C language.
+  URL:=https://github.com/babelouest/ulfius
+endef
+
+define Package/libulfius-nossl
+$(call Package/libulfius/default)
+  VARIANT:=nossl
+  DEFAULT_VARIANT:=1
+  DEPENDS:=+libmicrohttpd +libcurl +liborcania
+  PROVIDES:=libulfius
+endef
+
+define Package/libulfius-gnutls
+$(call Package/libulfius/default)
+  TITLE+= with SSL support
+  VARIANT:=gnutls
+  DEPENDS:=+libmicrohttpd +libcurl +libgnutls +liborcania
+  PROVIDES:=libulfius
+endef
+
+define Package/libulfius-$(BUILD_VARIANT)/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libulfius.so.* \
+               $(1)/usr/lib/
+endef
+
+CMAKE_OPTIONS += \
+       -DDOWNLOAD_DEPENDENCIES=OFF \
+       -DBUILD_WEBSOCKET=OFF \
+       -DSEARCH_ORCANIA_U=ON \
+       -DWITH_CURL=ON \
+       -DWITH_JANSSON=OFF \
+       -DWITH_STRSTR=ON \
+       -DWITH_YDER=OFF \
+       -DSEARCH_YDER=OFF \
+       -DCMAKE_BUILD_TYPE=Release
+
+ifeq ($(BUILD_VARIANT),gnutls)
+       CMAKE_OPTIONS += -DWITH_GNUTLS=ON
+else
+       CMAKE_OPTIONS += -DWITH_GNUTLS=OFF
+endif
+
+$(eval $(call BuildPackage,libulfius-gnutls))
+$(eval $(call BuildPackage,libulfius-nossl))
index 244143e99baba12f9d26e7d44fa533a165018685..1afbe694edd3bab20d5f0128007a7078d7293d8a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libupnpp
-PKG_VERSION:=0.19.1
+PKG_VERSION:=0.19.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads
-PKG_HASH:=412b38bdd07441588c11bb1d64af7d112f439a46512d53c907f9b54a6666ff58
+PKG_HASH:=c9623533271605c92dfa603f5fe0ab6d3d5b4384a0c9173800784f4aa643a190
 
 PKG_MAINTAINER:=Petko Bordjukov <bordjukov@gmail.com>
 PKG_LICENSE:=LGPL-2.1-or-later
index 215660c5e74b2688af4c329a36329df25a3feefc..59b8d908a9f68bf86e538fc5c452cb17acfe3f4f 100644 (file)
@@ -8,17 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libusbmuxd
-PKG_SOURCE_VERSION:=2.0.1
-PKG_RELEASE:=2
+PKG_VERSION:=2.0.2
+PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/libimobiledevice/libusbmuxd
-PKG_MIRROR_HASH:=5078125cd4fe8c7294d4f195a8adfd1fc302101daf5d53e4cc242c3097eef8b6
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://www.libimobiledevice.org/downloads
+PKG_HASH:=cc6a808553da4efa9fa5638be256d5ae020498795d9d260d280b87074e799b20
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_CPE_ID:=cpe:/a:libimobiledevice:libusbmuxd
 
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
@@ -67,20 +66,21 @@ define Package/libusbmuxd-utils/description
   This package contains the libusbmuxd utilities.
 endef
 
-TARGET_CFLAGS += $(FPIC)
+CONFIGURE_ARGS += \
+       --disable-static
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusbmuxd.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusbmuxd-2.0.so* $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libusbmuxd.pc $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libusbmuxd-2.0.pc $(1)/usr/lib/pkgconfig/
 endef
 
 define Package/libusbmuxd/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusbmuxd.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusbmuxd-2.0.so.* $(1)/usr/lib/
 endef
 
 define Package/libusbmuxd-utils/install
diff --git a/libs/libusbmuxd/patches/010-select.patch b/libs/libusbmuxd/patches/010-select.patch
deleted file mode 100644 (file)
index 1caefdc..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/tools/inetcat.c
-+++ b/tools/inetcat.c
-@@ -33,6 +33,7 @@
- #include <windows.h>
- #include <winsock2.h>
- #else
-+#include <sys/select.h>
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <sys/ioctl.h>
index ed82da05232c97899f0f0f65d9c108f42558882a..54dfb43680c7d63899158fc92803831a3ab4e62a 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=v4l-utils
-PKG_VERSION:=1.16.8
+PKG_VERSION:=1.20.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.linuxtv.org/downloads/v4l-utils
-PKG_HASH:=84346bf200bd30efb8a80a65ded1b81d39ae7e0ff2272e98f478b4eee8f40d13
+PKG_HASH:=956118713f7ccb405c55c7088a6a2490c32d54300dd9a30d8d5008c28d3726f7
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
index 695f8e3e0490f60697860b540586c200c2a8ed7c..c5a83a97af710d9354eb5e21e81f6056a289be9a 100644 (file)
@@ -1,61 +1,10 @@
---- a/utils/cec-ctl/cec-ctl.cpp
-+++ b/utils/cec-ctl/cec-ctl.cpp
-@@ -18,6 +18,7 @@
- #include <errno.h>
- #include <sys/ioctl.h>
- #include <stdarg.h>
-+#include <ctime>
- #include <cerrno>
- #include <string>
- #include <vector>
---- a/utils/cec-follower/cec-follower.h
-+++ b/utils/cec-follower/cec-follower.h
-@@ -9,6 +9,7 @@
- #define _CEC_FOLLOWER_H_
- #include <stdarg.h>
-+#include <ctime>
- #include <cerrno>
- #include <string>
- #include <linux/cec-funcs.h>
---- a/utils/common/media-info.cpp
-+++ b/utils/common/media-info.cpp
-@@ -21,6 +21,7 @@
- #include <linux/media.h>
- #include <fstream>
-+#include <iostream>
- #include <media-info.h>
- static std::string num2s(unsigned num, bool is_hex = true)
---- a/utils/rds-ctl/rds-ctl.cpp
-+++ b/utils/rds-ctl/rds-ctl.cpp
-@@ -27,6 +27,8 @@
- #include <linux/videodev2.h>
- #include <libv4l2rds.h>
+--- a/utils/libcecutil/cec-info.cpp
++++ b/utils/libcecutil/cec-info.cpp
+@@ -5,6 +5,7 @@
+  * Copyright 2017 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
+  */
  
 +#include <cctype>
-+#include <ctime>
- #include <list>
- #include <vector>
- #include <map>
---- a/utils/v4l2-compliance/media-info.cpp
-+++ b/utils/v4l2-compliance/media-info.cpp
-@@ -21,6 +21,7 @@
- #include <linux/media.h>
- #include <fstream>
-+#include <iostream>
- #include <media-info.h>
- static std::string num2s(unsigned num, bool is_hex = true)
---- a/utils/v4l2-ctl/media-info.cpp
-+++ b/utils/v4l2-ctl/media-info.cpp
-@@ -21,6 +21,7 @@
- #include <linux/media.h>
- #include <fstream>
-+#include <iostream>
- #include <media-info.h>
- static std::string num2s(unsigned num, bool is_hex = true)
+ #include <stdio.h>
+ #include <string>
+ #include <unistd.h>
diff --git a/libs/libv4l/patches/030-getsubopt.patch b/libs/libv4l/patches/030-getsubopt.patch
deleted file mode 100644 (file)
index 5fbb604..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-POSIX says that behavior when subopts list is empty is undefined.
-musl libs will set value to NULL which leads to crash.
-
-Simply avoid getsubopt, since we cannot rely on it.
-
---- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
-+++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
-@@ -679,16 +679,17 @@ static bool parse_subset(char *optarg)
- static bool parse_next_subopt(char **subs, char **value)
- {
--      static char *const subopts[] = {
--          NULL
--      };
--      int opt = getsubopt(subs, subopts, value);
-+      char *p = *subs;
-+      *value = *subs;
--      if (opt < 0 || *value)
--              return false;
--      fprintf(stderr, "No value given to suboption <%s>\n",
--                      subopts[opt]);
--      return true;
-+      while (*p && *p != ',')
-+              p++;
-+
-+      if (*p)
-+              *p++ = '\0';
-+
-+      *subs = p;
-+      return false;
- }
- void common_cmd(int ch, char *optarg)
diff --git a/libs/libv4l/patches/040-musl.patch b/libs/libv4l/patches/040-musl.patch
deleted file mode 100644 (file)
index 79dc5d2..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/utils/keytable/keytable.c
-+++ b/utils/keytable/keytable.c
-@@ -1686,7 +1686,7 @@ static void test_event(struct rc_device *rc_dev, int fd)
-               for (i = 0; i < rd / sizeof(struct input_event); i++) {
-                       printf(_("%ld.%06ld: event type %s(0x%02x)"),
--                              ev[i].time.tv_sec, ev[i].time.tv_usec,
-+                              ev[i].input_event_sec, ev[i].input_event_usec,
-                               get_event_name(events_type, ev[i].type), ev[i].type);
-                       switch (ev[i].type) {
diff --git a/libs/libv4l/patches/050-4.14.patch b/libs/libv4l/patches/050-4.14.patch
deleted file mode 100644 (file)
index 7cad8ec..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/utils/keytable/keytable.c
-+++ b/utils/keytable/keytable.c
-@@ -61,6 +61,10 @@ struct input_keymap_entry_v2 {
-       u_int8_t  scancode[32];
- };
-+#ifndef input_event_sec
-+#define input_event_sec time.tv_sec
-+#define input_event_usec time.tv_usec
-+#endif
- #define IR_PROTOCOLS_USER_DIR IR_KEYTABLE_USER_DIR "/protocols"
- #define IR_PROTOCOLS_SYSTEM_DIR IR_KEYTABLE_SYSTEM_DIR "/protocols"
diff --git a/libs/libxcrypt/Makefile b/libs/libxcrypt/Makefile
new file mode 100644 (file)
index 0000000..acfde2f
--- /dev/null
@@ -0,0 +1,55 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libxcrypt
+PKG_VERSION:=4.4.16
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/besser82/libxcrypt/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=a98f65b8baffa2b5ba68ee53c10c0a328166ef4116bce3baece190c8ce01f375
+
+PKG_MAINTAINER:=
+PKG_LICENSE:=LGPL-2.1-or-later
+PKG_LICENSE_FILES:=COPYING.LIB
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libxcrypt
+  SECTION:=libs
+  CATEGORY:=Libraries
+  URL:=https://github.com/besser82/libxcrypt
+  TITLE:=Extended crypt library
+  BUILDONLY:=1
+endef
+
+define Package/libxcrypt/description
+  libxcrypt is a modern library for one-way hashing of passwords. It supports
+  a wide variety of both modern and historical hashing methods: yescrypt,
+  gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt, md5crypt, SunMD5,
+  sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt. It provides the traditional
+  Unix crypt and crypt_r interfaces, as well as a set of extended interfaces
+  pioneered by Openwall Linux, crypt_rn, crypt_ra, crypt_gensalt,
+  crypt_gensalt_rn, and crypt_gensalt_ra.
+endef
+
+CONFIGURE_ARGS += \
+       --disable-shared \
+       --disable-failure-tokens \
+       --disable-xcrypt-compat-files \
+       --disable-obsolete-api \
+       --enable-hashes=solaris
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib/libxcrypt
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcrypt.{a,la} $(1)/usr/lib/libxcrypt
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*crypt.pc $(1)/usr/lib/pkgconfig/
+endef
+
+$(eval $(call BuildPackage,libxcrypt))
index 3896a02c6c5570a3679a2637909b2634c718099e..ff86685d1bb799c554e9647701516d2fa2d704f7 100644 (file)
@@ -8,20 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xerces-c
-PKG_VERSION:=3.2.2
-PKG_RELEASE:=3
+PKG_VERSION:=3.2.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@APACHE/xerces/c/3/sources
-PKG_HASH:=6daca3b23364d8d883dc77a73f681242f69389e3564543287ed3d073007e0a8e
+PKG_HASH:=12fc99a9fc1d1a79bd0e927b8b5637a576d6656f45b0d5e70ee3694d379cc149
 
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
-PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/nls.mk
 include $(INCLUDE_DIR)/package.mk
index 6361bcb47885e81ebd60f3d437790e6aae960502..699fba5d8c355a88581be5a91b3dd50d0a0d3cf7 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libxslt
 PKG_VERSION:=1.1.34
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
@@ -73,7 +73,6 @@ CONFIGURE_ARGS += \
        --without-debug \
        --without-mem-debug \
        --without-debugger \
-       --without-profiler \
        --without-plugins
 
 HOST_CONFIGURE_ARGS += \
index 4a50428ef8f5dcb67e1b56ee225d4c52afdb61e4..eabc4791fade793f88f4afedf9413f8bd1485024 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libzip
-PKG_VERSION:=1.6.1
+PKG_VERSION:=1.7.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://libzip.org/download/
-PKG_HASH:=705dac7a671b3f440181481e607b0908129a9cf1ddfcba75d66436c0e7d33641
+PKG_HASH:=a020dc1b17a79faa748e43a05f8605d65e403813e8e97ad3a300a90ddba097ac
 
 PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
 
diff --git a/libs/minizip/Makefile b/libs/minizip/Makefile
new file mode 100644 (file)
index 0000000..431e0cb
--- /dev/null
@@ -0,0 +1,66 @@
+#
+# Copyright © 2020 David Woodhouse <dwmw2@infradead.org>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=minizip
+PKG_VERSION:=2.9.3
+PKG_RELEASE:=3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/nmoinvaz/minizip/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=f64b2d228a03673a8ec36a53402e2108437226fd9170d49b7f0c0bca94708b93
+
+PKG_MAINTAINER:=David Woodhouse <dwmw2@infradead.org>
+PKG_LICENSE:=Zlib
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+CMAKE_OPTIONS += \
+       -DINSTALL_INC_DIR=/usr/include/minizip \
+       -DBUILD_SHARED_LIBS=ON \
+       -DMZ_BZIP2=OFF \
+       -DMZ_LIBBSD=OFF
+
+
+define Package/minizip
+  TITLE:=Fork of the popular zip manipulation library found in the zlib distribution
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS:=+zlib
+  URL:=https://github.com/nmoinvaz/minizip
+endef
+
+define Package/minizip-dev
+  SECTION:=devel
+  CATEGORY:=Development
+  SUBMENU:=Libraries
+  DEPENDS:=minizip
+  TITLE:=Development files for the minizip library
+endef
+
+define Package/minizip/description
+  minizip is a zip manipulation library written in C that is supported on Windows, macOS, and Linux
+endef
+
+define Package/minizip/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libminizip.so.* $(1)/usr/lib/
+endef
+
+TARGET_CXXFLAGS += -flto
+
+define Build/InstallDev
+       $(call Build/InstallDev/cmake,$(1))
+       $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/minizip.pc
+       $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/minizip.pc
+endef
+
+$(eval $(call BuildPackage,minizip))
diff --git a/libs/minizip/patches/010-disable-libbsd.patch b/libs/minizip/patches/010-disable-libbsd.patch
new file mode 100644 (file)
index 0000000..caa4818
--- /dev/null
@@ -0,0 +1,55 @@
+From 3d94e052f987bc35452592acf9f6fcb0d4ee4db4 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <dwmw2@infradead.org>
+Date: Wed, 10 Jun 2020 11:39:17 +0100
+Subject: [PATCH] Allow libbsd to be explicitly disabled
+
+When building for a minimal environment like OpenWRT we want to avoid the
+dependency on libbsd even if it did happen to be built and available in
+the buildroot at the time minizip is compiled.
+
+https://github.com/openwrt/packages/issues/12471
+---
+ CMakeLists.txt | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0de10cf..217359a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -17,6 +17,7 @@ option(MZ_PKCRYPT "Enables PKWARE traditional encryption" ON)
+ option(MZ_WZAES "Enables WinZIP AES encryption" ON)
+ option(MZ_LIBCOMP "Enables Apple compression" OFF)
+ option(MZ_OPENSSL "Enables OpenSSL for encryption" OFF)
++option(MZ_LIBBSD "Enable libbsd random functionality" ON)
+ option(MZ_BRG "Enables Brian Gladman's encryption library" OFF)
+ option(MZ_SIGNING "Enables zip signing support" ON)
+ option(MZ_COMPRESS_ONLY "Only support compression" OFF)
+@@ -275,7 +276,7 @@ if(UNIX)
+             endif()
+         endif()
+-        if(NOT HAVE_ARC4RANDOM_BUF)
++        if(MZ_LIBBSD AND NOT HAVE_ARC4RANDOM_BUF)
+             find_package(PkgConfig REQUIRED)
+             pkg_check_modules(LIBBSD libbsd)
+@@ -288,6 +289,8 @@ if(UNIX)
+                     list(APPEND MINIZIP_INC ${LIBBSD_INCLUDE_DIRS})
+                     link_directories(${LIBBSD_LIBRARY_DIRS})
+                 endif()
++          else()
++                set(MZ_LIBBSD FALSE)
+             endif()
+         endif()
+     endif()
+@@ -935,6 +938,7 @@ add_feature_info(MZ_PKCRYPT MZ_PKCRYPT "Enables PKWARE traditional encryption")
+ add_feature_info(MZ_WZAES MZ_WZAES "Enables WinZIP AES encryption")
+ add_feature_info(MZ_LIBCOMP MZ_LIBCOMP "Enables Apple compression")
+ add_feature_info(MZ_OPENSSL MZ_OPENSSL "Enables OpenSSL for encryption")
++add_feature_info(MZ_LIBBSD MZ_LIBBSD "Build with libbsd for random functionality")
+ add_feature_info(MZ_BRG MZ_BRG "Enables Brian Gladman's encryption library")
+ add_feature_info(MZ_SIGNING MZ_SIGNING "Enables zip signing support")
+ add_feature_info(MZ_COMPRESS_ONLY MZ_COMPRESS_ONLY "Only support compression")
+-- 
+2.17.1
+
index aea986c7987785594e73106c57743330bcaaf8b4..1aee917923eef061e19ec65806fd7aca2c36b3cc 100644 (file)
@@ -7,21 +7,21 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nss
-PKG_VERSION:=3.52
-PKG_RELEASE:=4
+PKG_VERSION:=3.53
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
     https://download.cdn.mozilla.net/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src \
     https://archive.mozilla.org/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src
-PKG_HASH:=0a0aeb0cdda65ddcb64f746223df58b150f6803f4bfa1a4e876bbe6f9c4c1561
+PKG_HASH:=08d36dc1a56325f02e626626d4eeab9c4d126dbd99dfaf419b91d0a696f58917
 
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
 PKG_LICENCE:=MPL-2.0
 PKG_LICENSE_FILES:=nss/COPYING
 PKG_CPE_ID:=cpe:/a:mozilla:network_security_services
 
-PKG_BUILD_PARALLEL:=0
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -85,7 +85,6 @@ MAKE_FLAGS += \
        SEED_ONLY_DEV_URANDOM=1 \
        NS_USE_GCC=1 \
        FREEBL_NO_DEPEND=1 \
-       NSS_DISABLE_DBM=1 \
        NSS_PKIX_NO_LDAP=1 \
        ALLOW_OPT_CODE_SIZE=1 \
        OPT_CODE_SIZE=1 \
@@ -99,6 +98,10 @@ define Build/Prepare
            $(MAKE) -C $(PKG_BUILD_DIR)/nss/coreconf/nsinstall
 endef
 
+define Build/Compile
+       $(call Build/Compile/Default,nss_build_all)
+endef
+
 define Package/libnss/conffiles
 /etc/pki/nssdb
 endef
index 26bf89743fb9b8f23738f85312f8dd75aef07669..f24272bc0596aa7342bae3cb398840878a2f732a 100644 (file)
@@ -13,14 +13,13 @@ Description:             Adds auto-generated nss.pc and nss-config script, and
 diff -Naurp nss-3.28-orig/nss/Makefile nss-3.28/nss/Makefile
 --- nss-3.28-orig/nss/Makefile 2016-12-21 05:56:27.000000000 -0600
 +++ nss-3.28/nss/Makefile      2016-12-26 22:24:52.695146032 -0600
-@@ -47,7 +47,7 @@ include $(CORE_DEPTH)/coreconf/rules.mk
- # (7) Execute "local" rules. (OPTIONAL).                              #
+@@ -48,7 +48,6 @@ include $(CORE_DEPTH)/coreconf/rules.mk
  #######################################################################
  
--nss_build_all: build_nspr all latest
-+nss_build_all: all latest
- nss_clean_all: clobber_nspr clobber
+ nss_build_all:
+-      $(MAKE) build_nspr
+       $(MAKE) all
+       $(MAKE) latest
  
 diff -Naurp nss-3.28-orig/nss/config/Makefile nss-3.28/nss/config/Makefile
 --- nss-3.28-orig/nss/config/Makefile  1969-12-31 18:00:00.000000000 -0600
@@ -242,9 +241,13 @@ diff -Naurp nss-3.28-orig/nss/config/nss.pc.in nss-3.28/nss/config/nss.pc.in
 diff -Naurp nss-3.28-orig/nss/manifest.mn nss-3.28/nss/manifest.mn
 --- nss-3.28-orig/nss/manifest.mn      2016-12-21 05:56:27.000000000 -0600
 +++ nss-3.28/nss/manifest.mn   2016-12-26 22:24:12.278991843 -0600
-@@ -10,4 +10,4 @@ IMPORTS =    nspr20/v4.8 \
+@@ -10,7 +10,7 @@ IMPORTS =    nspr20/v4.8 \
  
  RELEASE = nss
  
 -DIRS = coreconf lib cmd cpputil gtests
-+DIRS = coreconf lib cmd cpputil gtests config
++DIRS = coreconf lib cmd cpputil config
+ lib: coreconf
+ cmd: lib
index 6e88e5b7b45688486db3794c00180e1be91da490..62b325ee842c2c6629b858e749ba86b8c2d766da 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=oniguruma
 PKG_VERSION:=6.9.5_rev1
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 
 PKG_SOURCE:=onig-v$(subst _,-,$(PKG_VERSION)).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/kkos/oniguruma/tar.gz/v$(PKG_VERSION)?
@@ -21,10 +21,8 @@ PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
 
-CMAKE_INSTALL:=1
-CMAKE_OPTIONS += -DENABLE_POSIX_API:BOOL=ON
+CONFIGURE_ARGS += --enable-posix-api
 
 define Package/oniguruma
     SECTION:=libs
@@ -47,4 +45,11 @@ define Package/oniguruma/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libonig.so.$(ABI_VERSION) $(1)/usr/lib/
 endef
 
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/{include,lib}
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
+       $(SED) 's,/usr,$(STAGING_DIR)/usr,g' $(1)/usr/lib/pkgconfig/oniguruma.pc
+endef
+
 $(eval $(call BuildPackage,oniguruma))
diff --git a/libs/oniguruma/patches/0001-Add-SOVERSION-info-to-library-when-using-cmake.patch b/libs/oniguruma/patches/0001-Add-SOVERSION-info-to-library-when-using-cmake.patch
deleted file mode 100644 (file)
index 1978f41..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From afb2a1587a828bf7cd7ddd87b2e2609a9bb7fab0 Mon Sep 17 00:00:00 2001
-From: Eneas U de Queiroz <cotequeiroz@gmail.com>
-Date: Wed, 6 May 2020 08:59:54 -0300
-Subject: [PATCH] Add SOVERSION info to library when using cmake
-
-Currently the SOVERSION is different when building with cmake than the
-value used by autotools.
-This adds the version information from autotools to cmake.
-
-Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 29a1417..1c8a090 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -67,6 +67,19 @@ target_include_directories(onig PUBLIC
- target_compile_definitions(onig PUBLIC
-   $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:ONIG_STATIC>)
-+if(BUILD_SHARED_LIBS)
-+  # Parse SOVERSION information from LTVERSION in configure.ac
-+  file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/configure.ac" LTVERSION REGEX "^LTVERSION *= *\"?[0-9]+:[0-9]+:[0-9]+\"?")
-+  string(REGEX REPLACE "^LTVERSION *= *\"?([0-9]+:[0-9]+:[0-9]+)\"?.*$" "\\1" LTVERSION "${LTVERSION}")
-+  string(REGEX REPLACE "^([0-9]+):([0-9]+):([0-9]+)" "\\1" LTCURRENT ${LTVERSION})
-+  string(REGEX REPLACE "^([0-9]+):([0-9]+):([0-9]+)" "\\2" LTREVISION ${LTVERSION})
-+  string(REGEX REPLACE "^([0-9]+):([0-9]+):([0-9]+)" "\\3" LTAGE ${LTVERSION})
-+  math(EXPR ONIG_SOVERSION "${LTCURRENT} - ${LTAGE}")
-+  set_target_properties(onig PROPERTIES
-+      SOVERSION "${ONIG_SOVERSION}"
-+      VERSION "${ONIG_SOVERSION}.${LTAGE}.${LTREVISION}")
-+endif()
-+
- if(MSVC)
-   target_compile_options(onig PRIVATE
-       #/W4
index 907fbbbfc85a0d0a05b00da2f9bb7a4d5f765c5c..361a0b3b8ea29b004381673dfd867f69578904f1 100644 (file)
@@ -8,21 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcre
-PKG_VERSION:=8.43
-PKG_RELEASE:=2
+PKG_VERSION:=8.44
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=91e762520003013834ac1adb4a938d53b22a216341c061b0cf05603b290faf6b
-PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
+PKG_HASH:=19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d
 
+PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENCE
 PKG_CPE_ID:=cpe:/a:pcre:pcre
 
-PKG_FIXUP:=autoreconf
-
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 PKG_CONFIG_DEPENDS:=\
        CONFIG_PACKAGE_libpcrecpp \
index 897737d38f22a16592d355cba4ef365cc6cc8ec2..8e0c1edaa4f9a86e10dfb8a69a39e70e5ff9acf8 100644 (file)
@@ -8,22 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcre2
-PKG_VERSION:=10.34
+PKG_VERSION:=10.35
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/pcre/$(PKG_NAME)/$(PKG_VERSION)
-PKG_HASH:=74c473ffaba9e13db6951fd146e0143fe9887852ce73406a03277af1d9b798ca
+PKG_HASH:=9ccba8e02b0ce78046cdfb52e5c177f0f445e421059e43becca4359c669d4613
 
 PKG_MAINTAINER:=Shane Peelar <lookatyouhacker@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENCE
 PKG_CPE_ID:=cpe:/a:pcre:pcre
 
-PKG_FIXUP:=autoreconf
-
-PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 PKG_CONFIG_DEPENDS:=\
        CONFIG_PCRE2_JIT_ENABLED
index 8a6cae27628ddd0b1f93e14d1519fb269bc11baf..97e8b7d96d752b4c2b65da9b1cac44d0e00882c2 100644 (file)
@@ -8,18 +8,23 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pixman
-PKG_VERSION:=0.38.4
+PKG_VERSION:=0.40.0
 PKG_RELEASE:=1
+
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=da66d6fd6e40aee70f7bd02e4f8f76fc3f006ec879d346bae6a723025cfbdde7
 PKG_SOURCE_URL:=https://www.cairographics.org/releases
+PKG_HASH:=6d200dec3740d9ec4ec8d1180e25779c00bc749f94278c8b9021f5534db223fc
+
+PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
+
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
-PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
+PKG_BUILD_DEPENDS:=meson/host
 
 include $(INCLUDE_DIR)/package.mk
+include ../../devel/meson/meson.mk
 
 
 define Package/pixman
index c33bbd4426fd9738a4f0ba0fedd8975d4764f7b1..f7d8395a3e994b033ce20dc6b092896dc0c04e8e 100644 (file)
@@ -5,8 +5,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=postgresql
-PKG_VERSION:=12.1
-PKG_RELEASE:=4
+PKG_VERSION:=12.3
+PKG_RELEASE:=1
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=PostgreSQL
 PKG_CPE_ID:=cpe:/a:postgresql:postgresql
@@ -17,7 +17,7 @@ PKG_SOURCE_URL:=\
        http://ftp.postgresql.org/pub/source/v$(PKG_VERSION) \
        ftp://ftp.postgresql.org/pub/source/v$(PKG_VERSION)
 
-PKG_HASH:=a09bf3abbaf6763980d0f8acbb943b7629a8b20073de18d867aecdb7988483ed
+PKG_HASH:=94ed64a6179048190695c86ec707cc25d016056ce10fc9d229267d9a8f1dcf41
 
 PKG_USE_MIPS16:=0
 PKG_FIXUP:=autoreconf
index 6b1610bb5a1d8bb907906cb7409884346deb6986..4bc437f2596a6327baf22ada0669dcb1c6f7c664 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=redis
-PKG_VERSION:=6.0.1
+PKG_VERSION:=6.0.5
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://download.redis.io/releases/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=b8756e430479edc162ba9c44dc89ac394316cd482f2dc6b91bcd5fe12593f273
+PKG_HASH:=42cf86a114d2a451b898fcda96acd4d01062a7dbaaad2801d9164a36f898f596
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=BSD-3-Clause
index 4d0f4e977aab31b195813de7f62be228d781475f..ff6ff65147f4852c286d420e10e6ce8dfc53d243 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=spdlog
-PKG_VERSION:=1.5.0
-PKG_RELEASE:=2
+PKG_VERSION:=1.6.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/gabime/spdlog/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=b38e0bbef7faac2b82fed550a0c19b0d4e7f6737d5321d4fd8f216b80f8aee8a
+PKG_HASH:=378a040d91f787aec96d269b0c39189f58a6b852e4cbf9150ccfacbe85ebbbfc
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=MIT
index a3719ef322d055c70174ee43f759e1cafd0cc6e8..0d3cb9f16cc484e63a9f0ebc78f083382d3bc78c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xmlrpc-c
-PKG_VERSION:=1.51.03
+PKG_VERSION:=1.51.06
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=@SF/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(PKG_VERSION)
-PKG_HASH:=82f9a4f6dee03f6a58921d75a65949dd4f0036a4c268bce6a4343338932ec065
+PKG_HASH:=06dcd87d9c88374559369ffbe83b3139cf41418c1a2d03f20e08808085f89fd0
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=VARIOUS
index 83e25a50f1280f2db85d4080b4fa8256e91928d0..fcf06a501c32528a58dbba41c2340da274d1154d 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=yaml
-PKG_VERSION:=0.2.4
+PKG_VERSION:=0.2.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://pyyaml.org/download/libyaml/
-PKG_HASH:=d80aeda8747b7c26fbbfd87ab687786e58394a8435ae3970e79cb97882e30557
+PKG_HASH:=c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=MIT
index d0979300bca2b3f19c341369acbbfde0f24b5b19..0abf3bb7ee8dc2966bb7d8b5541d517b6ec0bd7f 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=alpine
-PKG_VERSION:=2.22
+PKG_VERSION:=2.23
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://alpine.x10host.com/alpine/release/src
-PKG_HASH:=849567c1b6f71fde3aaa1c97cf0577b12a525d9e22c0ea47797c4bf1cd2bbfdb
+PKG_HASH:=793a61215c005b5fcffb48f642f125915276b7ec7827508dd9e83d4c4da91f7b
 
 PKG_MAINTAINER:=Antti Seppälä <a.seppala@gmail.com>
 PKG_LICENSE:=Apache-2.0
index 0a5b517e618512d3ad653b84a0e6939b67fd5716..ab0dcf0551e00e8900700d1fa7179df9902ec1f5 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dovecot
-PKG_VERSION:=2.3.10
+PKG_VERSION:=2.3.10.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dovecot.org/releases/2.3
-PKG_HASH:=473184723d854a4d1dbd99c11a7b9f65156ca5fe6ecf85d9a44b5127e6f871c5
+PKG_HASH:=6642e62f23b1b23cfac235007ca6e21cb67460cca834689fad450724456eb10c
 
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
 PKG_LICENSE:=LGPL-2.1-only MIT BSD-3-Clause
index 2933151d4a50911f57e48f9ba9171ac9a067aa5a..7a90409220a923c167de9901003efca517a9a0df 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ffmpeg
-PKG_VERSION:=4.2.2
-PKG_RELEASE:=4
+PKG_VERSION:=4.2.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://ffmpeg.org/releases/
-PKG_HASH:=cb754255ab0ee2ea5f66f8850e1bd6ad5cac1cd855d0a2f4990fb8c668b0d29c
+PKG_HASH:=9df6c90aed1337634c1fb026fb01c154c29c82a64ea71291ff2da9aacb9aad31
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
                Ian Leonard <antonlacon@gmail.com>
 
index 54163667b150c42e0e1456cb1b79be26987b1511..851464c9cf705292f35673a800d3328180297676 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gerbera
 PKG_VERSION:=1.5.0
-PKG_RELEASE:=6
+PKG_RELEASE:=8
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/gerbera/gerbera/tar.gz/v$(PKG_VERSION)?
@@ -29,7 +29,7 @@ include $(INCLUDE_DIR)/nls.mk
 define Package/gerbera
   SECTION:=multimedia
   CATEGORY:=Multimedia
-  DEPENDS:=+file +libupnp +libsqlite3 +libexif +libuuid +libfmt $(ICONV_DEPENDS)
+  DEPENDS:=+file +libnpupnp +libsqlite3 +libexif +libuuid +libfmt $(ICONV_DEPENDS)
   TITLE:=A free media server
   URL:=https://gerbera.io
   USERID:=gerbera:gerbera
@@ -64,7 +64,11 @@ CMAKE_OPTIONS += \
        -DWITH_DEBUG=OFF \
        -DWITH_TESTS=OFF
 
-TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
+TARGET_CFLAGS += \
+       -ffunction-sections \
+       -fdata-sections \
+       -flto \
+       -I$(STAGING_DIR)/usr/include/npupnp/upnp
 TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
 
 define Package/gerbera/install
index e93746d332ac90c66534f34a581c550f3306bb6b..9145f76fd91e88be810adcd53f631a8f56c0c0e8 100644 (file)
@@ -1,3 +1,18 @@
+From 77cae5ff9b8dff22bfebac905f1579562609dd35 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Mon, 4 May 2020 12:44:34 -0700
+Subject: [PATCH] remove iconv casting
+
+iconv_t is sometimes a pointer and other times an int. Remove casting
+to make it work with the latter.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ src/util/string_converter.cc | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/util/string_converter.cc b/src/util/string_converter.cc
+index 272787ad..e1724b39 100644
 --- a/src/util/string_converter.cc
 +++ b/src/util/string_converter.cc
 @@ -41,15 +41,15 @@ StringConverter::StringConverter(const std::string& from, const std::string& to)
@@ -6,8 +21,8 @@
      cd = iconv_open(to.c_str(), from.c_str());
 -    if (cd == reinterpret_cast<iconv_t>(-1)) {
 -        cd = static_cast<iconv_t>(nullptr);
-+    if (cd == (iconv_t)(-1)) {
-+        cd = (iconv_t)(nullptr);
++    if (!cd) {
++        cd = {};
          throw_std_runtime_error(std::string("iconv: ") + strerror(errno));
      }
  }
@@ -15,7 +30,7 @@
  StringConverter::~StringConverter()
  {
 -    if (cd != static_cast<iconv_t>(nullptr))
-+    if (cd != (iconv_t)(nullptr))
++    if (cd)
          iconv_close(cd);
  }
  
diff --git a/multimedia/gerbera/patches/020-pid.patch b/multimedia/gerbera/patches/020-pid.patch
new file mode 100644 (file)
index 0000000..7ce75c7
--- /dev/null
@@ -0,0 +1,41 @@
+From 59d37af2d6afd3d0ab6e8c5f3ea099435150c349 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Tue, 2 Jun 2020 15:55:25 -0700
+Subject: [PATCH] add missing unistd header
+
+Error with pid_t.
+
+Found with musl + libcxx.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ src/util/process.h          | 2 ++
+ src/util/process_executor.h | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/src/util/process.h b/src/util/process.h
+index e79e016c..8778aa34 100644
+--- a/src/util/process.h
++++ b/src/util/process.h
+@@ -35,6 +35,8 @@
+ #include <memory>
+ #include <string>
++#include <unistd.h>
++
+ // forward declaration
+ class Config;
+diff --git a/src/util/process_executor.h b/src/util/process_executor.h
+index eaccf451..2a724087 100644
+--- a/src/util/process_executor.h
++++ b/src/util/process_executor.h
+@@ -35,6 +35,8 @@
+ #include <string>
+ #include <vector>
++#include <unistd.h>
++
+ #include "executor.h"
+ class ProcessExecutor : public Executor {
diff --git a/multimedia/gerbera/patches/030-unistd.patch b/multimedia/gerbera/patches/030-unistd.patch
new file mode 100644 (file)
index 0000000..5b50f03
--- /dev/null
@@ -0,0 +1,74 @@
+From 89b289cde29c731f995642a341dc5fd3b47ec7a0 Mon Sep 17 00:00:00 2001
+From: Jean-Francois Dockes <jf@dockes.org>
+Date: Mon, 4 May 2020 16:32:23 +0200
+Subject: [PATCH] The access() system call needs unistd.h, at least on Focal
+
+---
+ src/file_request_handler.cc         | 2 +-
+ src/iohandler/io_handler_chainer.cc | 2 +-
+ src/serve_request_handler.cc        | 2 +-
+ src/util/upnp_quirks.cc             | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/file_request_handler.cc b/src/file_request_handler.cc
+index e8579b06..cfa3eaed 100644
+--- a/src/file_request_handler.cc
++++ b/src/file_request_handler.cc
+@@ -30,9 +30,9 @@
+ /// \file file_request_handler.cc
+ #include "file_request_handler.h" // API
+-
+ #include <filesystem>
+ #include <sys/stat.h>
++#include <unistd.h>
+ #include <utility>
+ #include "config/config_manager.h"
+diff --git a/src/iohandler/io_handler_chainer.cc b/src/iohandler/io_handler_chainer.cc
+index e8701cd7..beaa9d03 100644
+--- a/src/iohandler/io_handler_chainer.cc
++++ b/src/iohandler/io_handler_chainer.cc
+@@ -30,8 +30,8 @@
+ /// \file io_handler_chainer.cc
+ #include "io_handler_chainer.h" // API
+-
+ #include <cstdlib>
++#include <unistd.h>
+ #include "exceptions.h"
+diff --git a/src/serve_request_handler.cc b/src/serve_request_handler.cc
+index 8eaf46af..210140a3 100644
+--- a/src/serve_request_handler.cc
++++ b/src/serve_request_handler.cc
+@@ -30,8 +30,8 @@
+ /// \file serve_request_handler.cc
+ #include "serve_request_handler.h"
+-
+ #include <sys/stat.h>
++#include <unistd.h>
+ #include <utility>
+ #include "config/config_manager.h"
+diff --git a/src/util/upnp_quirks.cc b/src/util/upnp_quirks.cc
+index df137370..e6f510b4 100644
+--- a/src/util/upnp_quirks.cc
++++ b/src/util/upnp_quirks.cc
+@@ -24,13 +24,13 @@
+ /// \file upnp_quirks.cc
+ #include "upnp_quirks.h" // API
+-
+ #include "cds_objects.h"
+ #include "config/config_manager.h"
+ #include "server.h"
+ #include "util/tools.h"
+ #include "util/upnp_clients.h"
+ #include "util/upnp_headers.h"
++#include <unistd.h>
+ Quirks::Quirks(std::shared_ptr<Config> config, const struct sockaddr_storage* addr, const std::string& userAgent)
+     : config(std::move(config))
diff --git a/multimedia/gerbera/patches/040-npupnp.patch b/multimedia/gerbera/patches/040-npupnp.patch
new file mode 100644 (file)
index 0000000..b82a4db
--- /dev/null
@@ -0,0 +1,485 @@
+From 2ebccbb993dca41674de295f2d513abd568f971a Mon Sep 17 00:00:00 2001
+From: Jean-Francois Dockes <jf@dockes.org>
+Date: Fri, 13 Mar 2020 09:19:04 +0100
+Subject: [PATCH] Quick changes for working with NPUPNP
+
+---
+ CMakeLists.txt                           | 12 +++++-------
+ src/action_request.cc                    | 11 +++++++++++
+ src/device_description_handler.cc        |  4 ++++
+ src/file_request_handler.cc              |  4 ++++
+ src/iohandler/file_io_handler.cc         |  2 ++
+ src/iohandler/io_handler.cc              |  2 ++
+ src/iohandler/mem_io_handler.cc          |  2 ++
+ src/serve_request_handler.cc             |  9 ++++++++-
+ src/server.cc                            |  8 ++++++++
+ src/transcoding/transcode_ext_handler.cc |  2 ++
+ src/upnp_cds.cc                          | 12 +++++++++++-
+ src/upnp_cm.cc                           | 11 +++++++++++
+ src/upnp_mrreg.cc                        | 10 +++++++++-
+ src/url_request_handler.cc               |  6 ++++++
+ src/util/upnp_clients.cc                 | 12 ++++++++++++
+ src/util/upnp_headers.cc                 | 14 +++++++++++++-
+ src/util/upnp_headers.h                  |  2 ++
+ src/web/web_request_handler.cc           |  4 ++++
+ 18 files changed, 116 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 46f2ca5c..b51300d9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -293,13 +293,11 @@ if (LFS_FOUND)
+     target_link_libraries(gerbera ${LFS_LIBRARIES})
+ endif()
+-find_package (LibUpnp REQUIRED)
+-include_directories(${UPNP_INCLUDE_DIRS})
+-target_link_libraries (gerbera ${UPNP_LIBRARIES})
+-
+-if (UPNP_VERSION_STRING VERSION_LESS "1.12.1")
+-    message(FATAL_ERROR "gerbera requires libupnp 1.12.1 or above.")
+-endif()
++####  Hard-coded NPUPNP defs for now, just for testing
++add_definitions(-DUSING_NPUPNP)
++include_directories(/usr/include/npupnp/upnp)
++target_link_libraries (gerbera -lnpupnp)
++set (UPNP_HAS_IPV6 1)
+ if (NOT UPNP_HAS_IPV6)
+     message(FATAL_ERROR "Gerbera requires libupnp with IPv6 support.")
+diff --git a/src/action_request.cc b/src/action_request.cc
+index 3aa4a991..29be6aaf 100644
+--- a/src/action_request.cc
++++ b/src/action_request.cc
+@@ -65,11 +65,17 @@ std::string ActionRequest::getServiceID() const
+ std::unique_ptr<pugi::xml_document> ActionRequest::getRequest() const
+ {
++#if !defined(USING_NPUPNP)
+     DOMString cxml = ixmlPrintDocument(UpnpActionRequest_get_ActionRequest(upnp_request));
++#endif
+     auto request = std::make_unique<pugi::xml_document>();
++#if defined(USING_NPUPNP)
++    auto ret = request->load_string(upnp_request->xmlAction.c_str());
++#else
+     auto ret = request->load_string(cxml);
+     ixmlFreeDOMString(cxml);
++#endif
+     if (ret.status != pugi::xml_parse_status::status_ok)
+         throw_std_runtime_error("Unable to parse ixml");
+@@ -94,6 +100,7 @@ void ActionRequest::update()
+         std::string xml = buf.str();
+         log_debug("ActionRequest::update(): {}", xml.c_str());
++#if !defined(USING_NPUPNP)
+         IXML_Document* result = nullptr;
+         int err = ixmlParseBufferEx(xml.c_str(), &result);
+@@ -105,6 +112,10 @@ void ActionRequest::update()
+             UpnpActionRequest_set_ActionResult(upnp_request, result);
+             UpnpActionRequest_set_ErrCode(upnp_request, errCode);
+         }
++#else
++              UpnpActionRequest_set_xmlResponse(upnp_request, xml);
++              UpnpActionRequest_set_ErrCode(upnp_request, errCode);
++#endif
+     } else {
+         // ok, here there can be two cases
+         // either the function below already did set an error code,
+diff --git a/src/device_description_handler.cc b/src/device_description_handler.cc
+index 6aca745e..cf2e8015 100644
+--- a/src/device_description_handler.cc
++++ b/src/device_description_handler.cc
+@@ -45,7 +45,11 @@ void DeviceDescriptionHandler::getInfo(const char* filename, UpnpFileInfo* info)
+ {
+     // We should be able to do the generation here, but libupnp doesnt support the request cookies yet
+     UpnpFileInfo_set_FileLength(info, -1);
++#if defined(USING_NPUPNP)
+     UpnpFileInfo_set_ContentType(info, "application/xml");
++#else
++    UpnpFileInfo_set_ContentType(info, ixmlCloneDOMString("application/xml"));
++#endif
+     UpnpFileInfo_set_IsReadable(info, 1);
+     UpnpFileInfo_set_IsDirectory(info, 0);
+ }
+diff --git a/src/file_request_handler.cc b/src/file_request_handler.cc
+index e8579b06..615f7e85 100644
+--- a/src/file_request_handler.cc
++++ b/src/file_request_handler.cc
+@@ -238,7 +238,11 @@ void FileRequestHandler::getInfo(const char* filename, UpnpFileInfo* info)
+     UpnpFileInfo_set_LastModified(info, statbuf.st_mtime);
+     UpnpFileInfo_set_IsDirectory(info, S_ISDIR(statbuf.st_mode));
++#if defined(USING_NPUPNP)
++    UpnpFileInfo_set_ContentType(info, mimeType);
++#else
+     UpnpFileInfo_set_ContentType(info, ixmlCloneDOMString(mimeType.c_str()));
++#endif
+     headers->writeHeaders(info);
+diff --git a/src/iohandler/file_io_handler.cc b/src/iohandler/file_io_handler.cc
+index 7e239250..ab5155ec 100644
+--- a/src/iohandler/file_io_handler.cc
++++ b/src/iohandler/file_io_handler.cc
+@@ -32,7 +32,9 @@
+ #include "file_io_handler.h" // API
+ #include <cstdio>
++#ifndef USING_NPUPNP
+ #include <ixml.h>
++#endif
+ #include <utility>
+ #include "cds_objects.h"
+diff --git a/src/iohandler/io_handler.cc b/src/iohandler/io_handler.cc
+index f9789425..75a36130 100644
+--- a/src/iohandler/io_handler.cc
++++ b/src/iohandler/io_handler.cc
+@@ -31,7 +31,9 @@
+ #include "io_handler.h" // API
++#ifndef USING_NPUPNP
+ #include <ixml.h>
++#endif
+ #include <unistd.h>
+ #include "server.h"
+diff --git a/src/iohandler/mem_io_handler.cc b/src/iohandler/mem_io_handler.cc
+index 5574a16d..2916fd12 100644
+--- a/src/iohandler/mem_io_handler.cc
++++ b/src/iohandler/mem_io_handler.cc
+@@ -35,7 +35,9 @@
+ #include <cstdlib>
+ #include <cstring>
+ #include <ctime>
++#ifndef USING_NPUPNP
+ #include <ixml.h>
++#endif
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+diff --git a/src/serve_request_handler.cc b/src/serve_request_handler.cc
+index 8eaf46af..b9bd7b25 100644
+--- a/src/serve_request_handler.cc
++++ b/src/serve_request_handler.cc
+@@ -94,7 +94,11 @@ void ServeRequestHandler::getInfo(const char* filename, UpnpFileInfo* info)
+             UpnpFileInfo_set_IsReadable(info, 0);
+         }
++#if defined(USING_NPUPNP)
++        UpnpFileInfo_set_ContentType(info, mimetype);
++#else
+         UpnpFileInfo_set_ContentType(info, ixmlCloneDOMString(mimetype.c_str()));
++#endif
+     } else {
+         throw_std_runtime_error("Not a regular file: " + path);
+     }
+@@ -157,8 +161,11 @@ std::unique_ptr<IOHandler> ServeRequestHandler::open(const char* filename,
+             info->is_readable = 0;
+         }
+-
++#if defined(USING_NPUPNP)
++        info->content_type = mimetype;
++#else
+         info->content_type = ixmlCloneDOMString(mimetype.c_str());
++#endif
+         */
+     } else {
+         throw_std_runtime_error("Not a regular file: " + path);
+diff --git a/src/server.cc b/src/server.cc
+index 913a4913..7cbabc71 100644
+--- a/src/server.cc
++++ b/src/server.cc
+@@ -398,9 +398,17 @@ int Server::handleUpnpClientEvent(Upnp_EventType eventType, const void* event)
+     case UPNP_DISCOVERY_ADVERTISEMENT_ALIVE:
+     case UPNP_DISCOVERY_SEARCH_RESULT: {
+         auto d_event = reinterpret_cast<const UpnpDiscovery*>(event);
++#if defined(USING_NPUPNP)
++        const char* userAgent = UpnpDiscovery_get_Os_cstr(d_event);
++#else
+         const char* userAgent = UpnpString_get_String(UpnpDiscovery_get_Os(d_event));
++#endif
+         const struct sockaddr_storage* destAddr = UpnpDiscovery_get_DestAddr(d_event);
++#if defined(USING_NPUPNP)
++        const char* location = UpnpDiscovery_get_Location_cstr(d_event);
++#else
+         const char* location = UpnpString_get_String(UpnpDiscovery_get_Location(d_event));
++#endif
+         Clients::addClientByDiscovery(destAddr, userAgent, location);
+         break;
+diff --git a/src/transcoding/transcode_ext_handler.cc b/src/transcoding/transcode_ext_handler.cc
+index 4dad0e3f..412c1370 100644
+--- a/src/transcoding/transcode_ext_handler.cc
++++ b/src/transcoding/transcode_ext_handler.cc
+@@ -37,7 +37,9 @@
+ #include <cstring>
+ #include <fcntl.h>
+ #include <filesystem>
++#ifndef USING_NPUPNP
+ #include <ixml.h>
++#endif
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+diff --git a/src/upnp_cds.cc b/src/upnp_cds.cc
+index 6491fa78..a758655c 100644
+--- a/src/upnp_cds.cc
++++ b/src/upnp_cds.cc
+@@ -284,6 +284,7 @@ void ContentDirectoryService::processSubscriptionRequest(const std::unique_ptr<S
+     propset->print(buf, "", 0);
+     std::string xml = buf.str();
++#if !defined(USING_NPUPNP)
+     IXML_Document* event = nullptr;
+     int err = ixmlParseBufferEx(xml.c_str(), &event);
+     if (err != IXML_SUCCESS) {
+@@ -295,6 +296,11 @@ void ContentDirectoryService::processSubscriptionRequest(const std::unique_ptr<S
+         DESC_CDS_SERVICE_ID, event, request->getSubscriptionID().c_str());
+     ixmlDocument_free(event);
++#else
++    UpnpAcceptSubscriptionXML(
++              deviceHandle, config->getOption(CFG_SERVER_UDN).c_str(),
++        DESC_CDS_SERVICE_ID, xml, request->getSubscriptionID().c_str());
++#endif
+     log_debug("end");
+ }
+@@ -313,6 +319,7 @@ void ContentDirectoryService::sendSubscriptionUpdate(const std::string& containe
+     propset->print(buf, "", 0);
+     std::string xml = buf.str();
++#if !defined(USING_NPUPNP)
+     IXML_Document* event = nullptr;
+     int err = ixmlParseBufferEx(xml.c_str(), &event);
+     if (err != IXML_SUCCESS) {
+@@ -323,8 +330,11 @@ void ContentDirectoryService::sendSubscriptionUpdate(const std::string& containe
+     UpnpNotifyExt(deviceHandle,
+         config->getOption(CFG_SERVER_UDN).c_str(),
+         DESC_CDS_SERVICE_ID, event);
+-
+     ixmlDocument_free(event);
++#else
++      UpnpNotifyXML(deviceHandle, config->getOption(CFG_SERVER_UDN).c_str(),
++                                DESC_CDS_SERVICE_ID, xml);
++#endif
+     log_debug("end");
+ }
+diff --git a/src/upnp_cm.cc b/src/upnp_cm.cc
+index aa608480..33f86bd2 100644
+--- a/src/upnp_cm.cc
++++ b/src/upnp_cm.cc
+@@ -127,6 +127,7 @@ void ConnectionManagerService::processSubscriptionRequest(const std::unique_ptr<
+     propset->print(buf, "", 0);
+     std::string xml = buf.str();
++#if !defined(USING_NPUPNP)
+     IXML_Document* event = nullptr;
+     int err = ixmlParseBufferEx(xml.c_str(), &event);
+     if (err != IXML_SUCCESS) {
+@@ -138,6 +139,11 @@ void ConnectionManagerService::processSubscriptionRequest(const std::unique_ptr<
+         DESC_CM_SERVICE_ID, event, request->getSubscriptionID().c_str());
+     ixmlDocument_free(event);
++#else
++    UpnpAcceptSubscriptionXML(
++              deviceHandle, config->getOption(CFG_SERVER_UDN).c_str(),
++              DESC_CM_SERVICE_ID, xml, request->getSubscriptionID().c_str());
++#endif
+ }
+ void ConnectionManagerService::sendSubscriptionUpdate(const std::string& sourceProtocol_CSV)
+@@ -150,6 +156,7 @@ void ConnectionManagerService::sendSubscriptionUpdate(const std::string& sourceP
+     propset->print(buf, "", 0);
+     std::string xml = buf.str();
++#if !defined(USING_NPUPNP)
+     IXML_Document* event = nullptr;
+     int err = ixmlParseBufferEx(xml.c_str(), &event);
+     if (err != IXML_SUCCESS) {
+@@ -162,4 +169,8 @@ void ConnectionManagerService::sendSubscriptionUpdate(const std::string& sourceP
+         DESC_CM_SERVICE_ID, event);
+     ixmlDocument_free(event);
++#else
++    UpnpNotifyXML(deviceHandle, config->getOption(CFG_SERVER_UDN).c_str(),
++                                DESC_CM_SERVICE_ID, xml);
++#endif
+ }
+diff --git a/src/upnp_mrreg.cc b/src/upnp_mrreg.cc
+index 16eefaed..f993f452 100644
+--- a/src/upnp_mrreg.cc
++++ b/src/upnp_mrreg.cc
+@@ -34,7 +34,9 @@
+ #include <utility>
+ #include "config/config_manager.h"
+-#include "ixml.h"
++#ifndef USING_NPUPNP
++#include <ixml.h>
++#endif
+ #include "server.h"
+ #include "storage/storage.h"
+ #include "upnp_xml.h"
+@@ -120,6 +122,7 @@ void MRRegistrarService::processSubscriptionRequest(const std::unique_ptr<Subscr
+     propset->print(buf, "", 0);
+     std::string xml = buf.str();
++#if !defined(USING_NPUPNP)
+     IXML_Document* event = nullptr;
+     int err = ixmlParseBufferEx(xml.c_str(), &event);
+     if (err != IXML_SUCCESS) {
+@@ -131,6 +134,11 @@ void MRRegistrarService::processSubscriptionRequest(const std::unique_ptr<Subscr
+         DESC_MRREG_SERVICE_ID, event, request->getSubscriptionID().c_str());
+     ixmlDocument_free(event);
++#else
++    UpnpAcceptSubscriptionXML(
++              deviceHandle, config->getOption(CFG_SERVER_UDN).c_str(),
++              DESC_MRREG_SERVICE_ID, xml, request->getSubscriptionID().c_str());
++#endif
+ }
+ // TODO: FIXME
+diff --git a/src/url_request_handler.cc b/src/url_request_handler.cc
+index f2a99c94..66af027b 100644
+--- a/src/url_request_handler.cc
++++ b/src/url_request_handler.cc
+@@ -32,7 +32,9 @@
+ #ifdef HAVE_CURL
+ #include "url_request_handler.h" // API
++#ifndef USING_NPUPNP
+ #include <ixml.h>
++#endif
+ #include <utility>
+ #include "config/config_manager.h"
+@@ -138,7 +140,11 @@ void URLRequestHandler::getInfo(const char* filename, UpnpFileInfo* info)
+     //            ixmlCloneDOMString(header.c_str()));
+     //    }
++#if defined(USING_NPUPNP)
++    UpnpFileInfo_set_ContentType(info, mimeType);
++#else
+     UpnpFileInfo_set_ContentType(info, ixmlCloneDOMString(mimeType.c_str()));
++#endif
+     log_debug("web_get_info(): end");
+     /// \todo transcoding for get_info
+diff --git a/src/util/upnp_clients.cc b/src/util/upnp_clients.cc
+index ab02b58d..7bc85d77 100644
+--- a/src/util/upnp_clients.cc
++++ b/src/util/upnp_clients.cc
+@@ -203,6 +203,15 @@ bool Clients::getInfoByType(const std::string& match, ClientMatchType type, cons
+ bool Clients::downloadDescription(const std::string& location, std::unique_ptr<pugi::xml_document>& xml)
+ {
++#if defined(USING_NPUPNP)
++      std::string description, ct;
++      int errCode = UpnpDownloadUrlItem(location, description, ct);
++    if (errCode != UPNP_E_SUCCESS) {
++        log_debug("Error obtaining client description from {} -- error = {}", location, errCode);
++        return false;
++    }
++      const char *cxml = description.c_str();
++#else
+     IXML_Document* descDoc = nullptr;
+     int errCode = UpnpDownloadXmlDoc(location.c_str(), &descDoc);
+     if (errCode != UPNP_E_SUCCESS) {
+@@ -211,12 +220,15 @@ bool Clients::downloadDescription(const std::string& location, std::unique_ptr<p
+     }
+     DOMString cxml = ixmlPrintDocument(descDoc);
++#endif
+     xml = std::make_unique<pugi::xml_document>();
+     auto ret = xml->load_string(cxml);
++#if !defined(USING_NPUPNP)
+     ixmlFreeDOMString(cxml);
+     ixmlDocument_free(descDoc);
++#endif
+     if (ret.status != pugi::xml_parse_status::status_ok) {
+         log_debug("Unable to parse xml client description from {}", location);
+         return false;
+diff --git a/src/util/upnp_headers.cc b/src/util/upnp_headers.cc
+index c05cffe6..19ba88ca 100644
+--- a/src/util/upnp_headers.cc
++++ b/src/util/upnp_headers.cc
+@@ -96,18 +96,29 @@ void Headers::writeHeaders(UpnpFileInfo* fileInfo) const
+     if (headers == nullptr)
+         return;
++#if defined(USING_NPUPNP)
++    for (auto iter : *headers) {
++              fileInfo->response_headers.push_back(iter);
++      }
++#else
+     auto head = const_cast<UpnpListHead*>(UpnpFileInfo_get_ExtraHeadersList(fileInfo));
+     for (auto iter : *headers) {
+         UpnpExtraHeaders* h = UpnpExtraHeaders_new();
+         UpnpExtraHeaders_set_resp(h, formatHeader(iter, false).c_str());
+         UpnpListInsert(head, UpnpListEnd(head), const_cast<UpnpListHead*>(UpnpExtraHeaders_get_node(h)));
+     }
++#endif
+ }
+ std::unique_ptr<std::map<std::string, std::string>> Headers::readHeaders(UpnpFileInfo* fileInfo)
+ {
+     auto ret = std::make_unique<std::map<std::string, std::string>>();
++#if defined(USING_NPUPNP)
++      for (const auto& entry : fileInfo->request_headers) {
++        ret->insert(entry);
++      }
++#else
+     auto head = const_cast<UpnpListHead*>(UpnpFileInfo_get_ExtraHeadersList(fileInfo));
+     UpnpListIter pos;
+     for (pos = UpnpListBegin(head); pos != UpnpListEnd(head); pos = UpnpListNext(head, pos)) {
+@@ -116,6 +127,7 @@ std::unique_ptr<std::map<std::string, std::string>> Headers::readHeaders(UpnpFil
+         auto add = parseHeader(header);
+         ret->insert(add);
+     }
+-
++#endif
++      
+     return ret;
+ }
+diff --git a/src/util/upnp_headers.h b/src/util/upnp_headers.h
+index 9677d6e4..dd839236 100644
+--- a/src/util/upnp_headers.h
++++ b/src/util/upnp_headers.h
+@@ -26,7 +26,9 @@
+ #ifndef GERBERA_HEADERS_H
+ #define GERBERA_HEADERS_H
++#if !defined(USING_NPUPNP)
+ #include <ExtraHeaders.h>
++#endif
+ #include <map>
+ #include <memory>
+ #include <upnp.h>
+diff --git a/src/web/web_request_handler.cc b/src/web/web_request_handler.cc
+index 71fc9fd5..2ca6601b 100644
+--- a/src/web/web_request_handler.cc
++++ b/src/web/web_request_handler.cc
+@@ -120,7 +120,11 @@ void WebRequestHandler::getInfo(const char* filename, UpnpFileInfo* info)
+     contentType = mimetype + "; charset=" + DEFAULT_INTERNAL_CHARSET;
++#if defined(USING_NPUPNP)
++    UpnpFileInfo_set_ContentType(info, contentType);
++#else
+     UpnpFileInfo_set_ContentType(info, ixmlCloneDOMString(contentType.c_str()));
++#endif
+     Headers headers;
+     headers.addHeader(std::string { "Cache-Control" }, std::string { "no-cache, must-revalidate" });
+     headers.writeHeaders(info);
index fb69aa4f9ff99a59bc79beaab9b3471b032b045a..b701fcaaf91358bf2e8c99083b47a1e96590c3a5 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=minidlna
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.code.sf.net/p/minidlna/git
index 27baa47ff216b2faf578d319b7b4890a9c2e7711..326dc2a0e7ee133f8432a9a4629acaffc22c7c7d 100644 (file)
@@ -83,7 +83,7 @@ start_service() {
        [ "$enabled" -gt 0 ] || return 1
 
        config_get val "config" uuid
-       [ "$val" = '' ] && uci set minidlna.config.uuid="$(cat /proc/sys/kernel/random/uuid)" && uci commit
+       [ "$val" = '' ] && uci set minidlna.config.uuid="$(cat /proc/sys/kernel/random/uuid)" && uci commit minidlna
 
        minidlna_create_config config || return 1
 
@@ -103,3 +103,7 @@ start_service() {
        procd_set_param respawn
        procd_close_instance
 }
+
+service_triggers() {
+       procd_add_reload_trigger "minidlna"
+}
index b897324bc5b38bc0ae2e555a701c9bdde2cb303a..283adc721f21daf01c645c31bf9cc427bcf78799 100644 (file)
@@ -8,28 +8,30 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=motion
-PKG_VERSION:=4.2.2
-PKG_RELEASE:=3
-
-PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
-PKG_LICENSE:=GPLv2
-PKG_LICENSE_FILES:=COPYING
-PKG_CPE_ID:=cpe:/a:lavrsen:motion
+PKG_VERSION:=4.3.1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-release-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/Motion-Project/motion/tar.gz/release-$(PKG_VERSION)?
-PKG_HASH:=c8d40976b41da8eb9f9f7128599403a312fc26b7226bf3787d75f78cb5a6cc6e
+PKG_HASH:=545712b10fc4a0134e994b7d8a3773c1c22f0bf4bd7afea7d7ffff357aca9ea5
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-release-$(PKG_VERSION)
 
-PKG_BUILD_PARALLEL:=1
+PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:lavrsen:motion
+
 PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
 define Package/motion
   SECTION:=multimedia
   CATEGORY:=Multimedia
-  DEPENDS:=+libjpeg +libpthread +libmicrohttpd
+  DEPENDS:=+libjpeg +libpthread +libmicrohttpd $(INTL_DEPENDS) +TARGET_bcm27xx:bcm27xx-userland
   TITLE:=webcam motion sensing and logging
   URL:=https://motion-project.github.io/
 endef
@@ -39,24 +41,24 @@ define Package/motion/conffiles
 /etc/motion.conf
 endef
 
-CONFIGURE_ARGS+= \
-       --without-optimizecpu \
+CONFIGURE_ARGS += \
+       --without-bktr \
+       --without-webp \
+       --with$(if $(CONFIG_TARGET_bcm27xx),,out)-mmal \
        --without-ffmpeg \
-       --without-jpeg-mmx \
-       --without-sdl \
+       --without-mariadb \
        --without-mysql \
        --without-pgsql \
        --without-sqlite3 \
-       --without-bktr \
-       --without-webp
+       --without-optimizecpu
 
 define Package/motion/install
        $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d
        $(INSTALL_CONF) ./files/motion.conf $(1)/etc/config/motion
        $(INSTALL_BIN) ./files/motion.init $(1)/etc/init.d/motion
-       $(CP) $(PKG_BUILD_DIR)/motion-dist.conf $(1)/etc/motion.conf
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/motion/motion-dist.conf $(1)/etc/motion.conf
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/motion $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/motion $(1)/usr/bin/
 endef
 
 $(eval $(call BuildPackage,motion))
diff --git a/multimedia/motion/patches/001-Remove-poll-option-for-mhd.patch b/multimedia/motion/patches/001-Remove-poll-option-for-mhd.patch
deleted file mode 100644 (file)
index 8af92ba..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-From c9bef916853c709fbf7f305da36da33ac4881660 Mon Sep 17 00:00:00 2001
-From: Mr-DaveDev <MotionMrDaveDev@gmail.com>
-Date: Sun, 1 Dec 2019 14:30:10 -0700
-Subject: [PATCH] Remove poll option for mhd
-
-closes #1063
----
- webu.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/webu.c
-+++ b/webu.c
-@@ -1828,7 +1828,7 @@ static void webu_mhd_opts(struct mhdstar
- static void webu_mhd_flags(struct mhdstart_ctx *mhdst){
-     /* This sets the MHD startup flags based upon what user put into configuration */
--    mhdst->mhd_flags = MHD_USE_THREAD_PER_CONNECTION | MHD_USE_POLL| MHD_USE_SELECT_INTERNALLY;
-+    mhdst->mhd_flags = MHD_USE_THREAD_PER_CONNECTION;
-     if (mhdst->ipv6) mhdst->mhd_flags = mhdst->mhd_flags | MHD_USE_DUAL_STACK;
diff --git a/multimedia/motion/patches/010-no-po-man.patch b/multimedia/motion/patches/010-no-po-man.patch
new file mode 100644 (file)
index 0000000..05b8dc4
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+ ACLOCAL_AMFLAGS = -I m4
+-SUBDIRS = src po man
++SUBDIRS = src
+ sysconfdir = @sysconfdir@/$(PACKAGE)
+ sysconf_DATA = \
+--- a/configure.ac
++++ b/configure.ac
+@@ -472,8 +472,6 @@ AC_SUBST(AM_LDFLAGS, "$TEMP_LDFLAGS")
+ AC_CONFIG_FILES([
+       Makefile
+       src/Makefile
+-  po/Makefile.in
+-  man/Makefile
+   data/camera1-dist.conf
+   data/camera2-dist.conf
+   data/camera3-dist.conf
index c90c951cad9071c574917d9f365f1703578f84cf..8736d1469f7c67a86f387a2aa113e22c18ef7b07 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=youtube-dl
-PKG_VERSION:=2020.5.8
+PKG_VERSION:=2020.6.16.1
 PKG_RELEASE:=1
 
 PYPI_NAME:=youtube_dl
-PKG_HASH:=22da6788b55b7b267c6d59bcdfaf10e67a9ac980976d50d29a670473ad2a05bb
+PKG_HASH:=9fc0389a1bbbeb609a5bb4ad5630dea107a9d1a24c73721c611a78c234309a75
 
 PKG_MAINTAINER:=Adrian Panella <ianchi74@outlook.com>, Josef Schlehofer <pepe.schlehofer@gmail.com>
 PKG_LICENSE:=Unlicense
index b3dd099885c8ba37e765daf7110834be14ade2bc..3a65e8cad39388ec1d0136bad89255cec63bc20c 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acme
 PKG_VERSION:=2.8.6
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/acmesh-official/acme.sh/archive/$(PKG_VERSION).tar.gz
@@ -57,6 +57,11 @@ define Package/acme/install
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/acme.sh $(1)/usr/lib/acme/acme.sh
 endef
 
+define Package/acme/prerm
+#!/bin/sh
+sed -i '/\/etc\/init\.d\/acme start/d' /etc/crontabs/root
+endef
+
 define Package/acme-dnsapi
   SECTION:=net
   CATEGORY:=Network
index 5e32dc83eb02edf0199ee0b0f756c49521fb0258..328911a2a075594ecfe165965471edba62293d43 100644 (file)
@@ -6,8 +6,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock
-PKG_VERSION:=4.0.5
-PKG_RELEASE:=2
+PKG_VERSION:=4.0.6
+PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
 
index f399cb8e1681cbc536f5b643b253ab037054051b..da834bd4a3ba82d1257e7176a01c8ee9536646c0 100644 (file)
@@ -6,52 +6,56 @@ A lot of people already use adblocker plugins within their desktop browsers, but
 ## Main Features
 * Support of the following fully pre-configured domain blocklist sources (free for private usage, for commercial use please check their individual licenses)
 
-| Source              | Enabled | Size | Focus            | Information                                                      |
-| :------------------ | :-----: | :--- | :--------------- | :--------------------------------------------------------------- |
-| adaway              | x       | S    | mobile           | [Link](https://github.com/AdAway/adaway.github.io)               |
-| adguard             | x       | L    | general          | [Link](https://adguard.com)                                      |
-| andryou             |         | L    | compilation      | [Link](https://gitlab.com/andryou/block/-/blob/master/readme.md) |
-| anudeep             |         | M    | compilation      | [Link](https://github.com/anudeepND/blacklist)                   |
-| bitcoin             |         | S    | mining           | [Link](https://github.com/hoshsadiq/adblock-nocoin-list)         |
-| disconnect          | x       | S    | general          | [Link](https://disconnect.me)                                    |
-| dshield             |         | XL   | general          | [Link](https://dshield.org)                                      |
-| energized_blugo     |         | XL   | compilation      | [Link](https://energized.pro)                                    |
-| energized_blu       |         | XL   | compilation      | [Link](https://energized.pro)                                    |
-| energized_porn      |         | XXL  | compilation+porn | [Link](https://energized.pro)                                    |
-| energized_ultimate  |         | XXL  | compilation      | [Link](https://energized.pro)                                    |
-| energized_unified   |         | XXL  | compilation      | [Link](https://energized.pro)                                    |
-| malwaredomains      |         | M    | malware          | [Link](https://malwaredomains.com)                               |
-| malwarelist         |         | S    | malware          | [Link](https://www.malwaredomainlist.com)                        |
-| notracking          |         | XL   | tracking         | [Link](https://github.com/notracking/hosts-blocklists)           |
-| oisd_nl             |         | XXL  | general          | [Link](https://oisd.nl)                                          |
-| openphish           |         | S    | phishing         | [Link](https://openphish.com)                                    |
-| phishing_army       |         | S    | phishing         | [Link](https://phishing.army)                                    |
-| reg_cn              |         | M    | reg_china        | [Link](https://easylist.to)                                      |
-| reg_de              |         | M    | reg_germany      | [Link](https://easylist.to)                                      |
-| reg_es              |         | M    | reg_espania      | [Link](https://easylist.to)                                      |
-| reg_fi              |         | S    | reg_finland      | [Link](https://github.com/finnish-easylist-addition)             |
-| reg_id              |         | M    | reg_indonesia    | [Link](https://easylist.to)                                      |
-| reg_nl              |         | M    | reg_netherlands  | [Link](https://easylist.to)                                      |
-| reg_pl              |         | M    | reg_poland       | [Link](https://kadantiscam.netlify.com)                          |
-| reg_ro              |         | M    | reg_romania      | [Link](https://easylist.to)                                      |
-| reg_ru              |         | M    | reg_russia       | [Link](https://easylist.to)                                      |
-| reg_vn              |         | M    | reg_vietnam      | [Link](https://bigdargon.github.io/hostsVN)                      |
-| shallalist          |         | L    | general          | [Link](http://www.shallalist.de)                                 |
-| shallalist_porn     |         | XXL  | general+porn     | [Link](http://www.shallalist.de)                                 |
-| smarttv             |         | S    | smarttv          | [Link](https://github.com/Perflyst/PiHoleBlocklist)              |
-| spam404             |         | S    | general          | [Link](https://github.com/Dawsey21)                              |
-| stevenblack         |         | L    | compilation+porn | [Link](https://github.com/StevenBlack/hosts)                     |
-| stevenblack_porn    |         | L    | compilation+porn | [Link](https://github.com/StevenBlack/hosts)                     |
-| stopforumspam       |         | S    | spam             | [Link](https://www.stopforumspam.com)                            |
-| sysctl              |         | M    | general          | [Link](http://sysctl.org/cameleon)                               |
-| utcapitole          |         | L    | general          | [Link](https://dsi.ut-capitole.fr/blacklists/index_en.php)       |
-| utcapitole_porn     |         | XXL  | general+porn     | [Link](https://dsi.ut-capitole.fr/blacklists/index_en.php)       |
-| wally3k             |         | S    | compilation      | [Link](https://firebog.net/about)                                |
-| whocares            |         | M    | general          | [Link](https://someonewhocares.org)                              |
-| winhelp             |         | S    | general          | [Link](http://winhelp2002.mvps.org)                              |
-| winspy              |         | S    | win_telemetry    | [Link](https://github.com/crazy-max/WindowsSpyBlocker)           |
-| youtube             |         | M    | youtube          | [Link](https://github.com/kboghdady/youTube_ads_4_pi-hole)       |
-| yoyo                | x       | S    | general          | [Link](http://pgl.yoyo.org/adservers)                            |
+| Source              | Enabled | Size | Focus            | Information                                                                       |
+| :------------------ | :-----: | :--- | :--------------- | :-------------------------------------------------------------------------------- |
+| adaway              | x       | S    | mobile           | [Link](https://github.com/AdAway/adaway.github.io)                                |
+| adguard             | x       | L    | general          | [Link](https://adguard.com)                                                       |
+| anti_ad             |         | L    | compilation      | [Link](https://github.com/privacy-protection-tools/anti-AD/blob/master/README.md) |
+| andryou             |         | L    | compilation      | [Link](https://gitlab.com/andryou/block/-/blob/master/readme.md)                  |
+| anudeep             |         | M    | compilation      | [Link](https://github.com/anudeepND/blacklist)                                    |
+| bitcoin             |         | S    | mining           | [Link](https://github.com/hoshsadiq/adblock-nocoin-list)                          |
+| disconnect          | x       | S    | general          | [Link](https://disconnect.me)                                                     |
+| dshield             |         | XL   | general          | [Link](https://dshield.org)                                                       |
+| energized_blugo     |         | XL   | compilation      | [Link](https://energized.pro)                                                     |
+| energized_blu       |         | XL   | compilation      | [Link](https://energized.pro)                                                     |
+| energized_porn      |         | XXL  | compilation+porn | [Link](https://energized.pro)                                                     |
+| energized_ultimate  |         | XXL  | compilation      | [Link](https://energized.pro)                                                     |
+| energized_unified   |         | XXL  | compilation      | [Link](https://energized.pro)                                                     |
+| malwaredomains      |         | M    | malware          | [Link](https://malwaredomains.com)                                                |
+| malwarelist         |         | S    | malware          | [Link](https://www.malwaredomainlist.com)                                         |
+| notracking          |         | XL   | tracking         | [Link](https://github.com/notracking/hosts-blocklists)                            |
+| oisd_nl             |         | XXL  | general          | [Link](https://oisd.nl)                                                           |
+| openphish           |         | S    | phishing         | [Link](https://openphish.com)                                                     |
+| phishing_army       |         | S    | phishing         | [Link](https://phishing.army)                                                     |
+| reg_cn              |         | M    | reg_china        | [Link](https://easylist.to)                                                       |
+| reg_cz              |         | M    | reg_czech+slovak | [Link](https://easylist.to)                                                       |
+| reg_de              |         | M    | reg_germany      | [Link](https://easylist.to)                                                       |
+| reg_es              |         | M    | reg_espania      | [Link](https://easylist.to)                                                       |
+| reg_fi              |         | S    | reg_finland      | [Link](https://github.com/finnish-easylist-addition)                              |
+| reg_fr              |         | S    | reg_france       | [Link](https://forums.lanik.us/viewforum.php?f=91)                                |
+| reg_id              |         | M    | reg_indonesia    | [Link](https://easylist.to)                                                       |
+| reg_kr              |         | M    | reg_korea        | [Link](https://list-kr.github.io)                                                 |
+| reg_nl              |         | M    | reg_netherlands  | [Link](https://easylist.to)                                                       |
+| reg_pl              |         | M    | reg_poland       | [Link](https://kadantiscam.netlify.com)                                           |
+| reg_ro              |         | M    | reg_romania      | [Link](https://easylist.to)                                                       |
+| reg_ru              |         | M    | reg_russia       | [Link](https://easylist.to)                                                       |
+| reg_vn              |         | M    | reg_vietnam      | [Link](https://bigdargon.github.io/hostsVN)                                       |
+| shallalist          |         | L    | general          | [Link](http://www.shallalist.de)                                                  |
+| shallalist_porn     |         | XXL  | general+porn     | [Link](http://www.shallalist.de)                                                  |
+| smarttv             |         | S    | smarttv          | [Link](https://github.com/Perflyst/PiHoleBlocklist)                               |
+| spam404             |         | S    | general          | [Link](https://github.com/Dawsey21)                                               |
+| stevenblack         |         | L    | compilation      | [Link](https://github.com/StevenBlack/hosts)                                      |
+| stevenblack_porn    |         | L    | compilation+porn | [Link](https://github.com/StevenBlack/hosts)                                      |
+| stopforumspam       |         | S    | spam             | [Link](https://www.stopforumspam.com)                                             |
+| sysctl              |         | M    | general          | [Link](http://sysctl.org/cameleon)                                                |
+| utcapitole          |         | L    | general          | [Link](https://dsi.ut-capitole.fr/blacklists/index_en.php)                        |
+| utcapitole_porn     |         | XXL  | general+porn     | [Link](https://dsi.ut-capitole.fr/blacklists/index_en.php)                        |
+| wally3k             |         | S    | compilation      | [Link](https://firebog.net/about)                                                 |
+| whocares            |         | M    | general          | [Link](https://someonewhocares.org)                                               |
+| winhelp             |         | S    | general          | [Link](http://winhelp2002.mvps.org)                                               |
+| winspy              |         | S    | win_telemetry    | [Link](https://github.com/crazy-max/WindowsSpyBlocker)                            |
+| youtube             |         | M    | youtube          | [Link](https://github.com/kboghdady/youTube_ads_4_pi-hole)                        |
+| yoyo                | x       | S    | general          | [Link](http://pgl.yoyo.org/adservers)                                             |
 
 * List of supported and fully pre-configured adblock sources, already active sources are pre-selected.  
   <b><em>To avoid OOM errors, please do not select too many lists!</em></b>  
@@ -134,48 +138,49 @@ Available commands:
 ## Adblock Config Options
 * Usually the auto pre-configured adblock setup works quite well and no manual overrides are needed
 
-| Option            | Default                            | Description/Valid Values                                                                       |
-| :---------------- | :--------------------------------- | :--------------------------------------------------------------------------------------------- |
-| adb_enabled       | 1, enabled                         | set to 0 to disable the adblock service                                                        |
-| adb_srcarc        | -, /etc/adblock/adblock.sources.gz | full path to the used adblock source archive                                                   |
-| adb_srcfile       | -, /tmp/adb_sources.json           | full path to the used adblock source file, which has a higher precedence than the archive file |
-| adb_dns           | -, auto-detected                   | 'dnsmasq', 'unbound', 'named', 'kresd' or 'raw'                                                |
-| adb_fetchutil     | -, auto-detected                   | 'uclient-fetch', 'wget', 'curl' or 'aria2c'                                                    |
-| adb_fetchparm     | -, auto-detected                   | config options for the selected download utility, e.g. to disable the certificate check        |
-| adb_trigger       | -, not set                         | trigger network interface or 'not set' to use a time-based startup                             |
-| adb_triggerdelay  | 2                                  | additional trigger delay in seconds before adblock processing begins                           |
-| adb_debug         | 0, disabled                        | set to 1 to enable the debug output                                                            |
-| adb_nice          | 0, standard prio.                  | valid nice level range 0-19 of the adblock processes                                           |
-| adb_forcedns      | 0, disabled                        | set to 1 to force DNS requests to the local resolver                                           |
-| adb_maxqueue      | 4                                  | size of the download queue to handle downloads & list processing in parallel                   |
-| adb_dnsdir        | -, auto-detected                   | path for the generated blocklist file 'adb_list.overall'                                       |
-| adb_dnstimeout    | 10                                 | timeout in seconds to wait for a successful DNS backend restart                                |
-| adb_dnsinstance   | 0, first instance                  | set to the relevant dns backend instance used by adblock (dnsmasq only)                        |
-| adb_dnsfilereset  | 0, disabled                        | set to 1 to purge the final DNS blocklist file after DNS backend loading                       |
-| adb_dnsflush      | 0, disabled                        | set to 1 to flush the DNS Cache before & after adblock processing                              |
-| adb_dnsinotify    | -, not set                         | set to 1 to prevent adblock triggered restarts for DNS backends with autoload functions        |
-| adb_dnsallow      | -, not set                         | set to 1 to disable selective DNS whitelisting (RPZ pass through)                              |
-| adb_lookupdomain  | example.com                        | external domain to check for a successful DNS backend restart or 'false' to disable this check |
-| adb_portlist      | 53 853 5353                        | space separated list of firewall ports which should be redirected locally                      |
-| adb_report        | 0, disabled                        | set to 1 to enable the background tcpdump gathering process for reporting                      |
-| adb_reportdir     | /tmp                               | path for DNS related report files                                                              |
-| adb_repiface      | -, auto-detected                   | name of the reporting interface or 'any' used by tcpdump                                       |
-| adb_replisten     | 53                                 | space separated list of reporting port(s) used by tcpdump                                      |
-| adb_repchunkcnt   | 5                                  | report chunk count used by tcpdump                                                             |
-| adb_repchunksize  | 1                                  | report chunk size used by tcpdump in MB                                                        |
-| adb_backup        | 1, enabled                         | set to 0 to disable the backup function                                                        |
-| adb_backupdir     | /tmp                               | path for adblock backups                                                                       |
-| adb_tmpbase       | /tmp                               | path for all adblock related runtime operations, e.g. downloading, sorting, merging etc.       |
-| adb_safesearch    | 0, disabled                        | set to 1 to enforce SafeSearch for google, bing, duckduckgo, yandex, youtube and pixabay       |
-| adb_safesearchmod | 0, disabled                        | set to 1 to enable moderate SafeSearch filters for youtube                                     |
-| adb_mail          | 0, disabled                        | set to 1 to enable notification E-Mails in case of a processing errors                         |
-| adb_mailreceiver  | -, not set                         | receiver address for adblock notification E-Mails                                              |
-| adb_mailsender    | no-reply@adblock                   | sender address for adblock notification E-Mails                                                |
-| adb_mailtopic     | adblock&nbsp;notification          | topic for adblock notification E-Mails                                                         |
-| adb_mailprofile   | adb_notify                         | mail profile used in 'msmtp' for adblock notification E-Mails                                  |
-| adb_mailcnt       | 0                                  | minimum domain count to trigger E-Mail notifications                                           |
-| adb_jail          | 0                                  | set to 1 to enable the additional, restrictive 'adb_list.jail' creation                        |
-| adb_jaildir       | /tmp                               | path for the generated jail list                                                               |
+| Option             | Default                            | Description/Valid Values                                                                       |
+| :----------------- | :--------------------------------- | :--------------------------------------------------------------------------------------------- |
+| adb_enabled        | 1, enabled                         | set to 0 to disable the adblock service                                                        |
+| adb_srcarc         | -, /etc/adblock/adblock.sources.gz | full path to the used adblock source archive                                                   |
+| adb_srcfile        | -, /tmp/adb_sources.json           | full path to the used adblock source file, which has a higher precedence than the archive file |
+| adb_dns            | -, auto-detected                   | 'dnsmasq', 'unbound', 'named', 'kresd' or 'raw'                                                |
+| adb_fetchutil      | -, auto-detected                   | 'uclient-fetch', 'wget', 'curl' or 'aria2c'                                                    |
+| adb_fetchparm      | -, auto-detected                   | config options for the selected download utility, e.g. to disable the certificate check        |
+| adb_trigger        | -, not set                         | trigger network interface or 'not set' to use a time-based startup                             |
+| adb_triggerdelay   | 2                                  | additional trigger delay in seconds before adblock processing begins                           |
+| adb_debug          | 0, disabled                        | set to 1 to enable the debug output                                                            |
+| adb_nice           | 0, standard prio.                  | valid nice level range 0-19 of the adblock processes                                           |
+| adb_forcedns       | 0, disabled                        | set to 1 to force DNS requests to the local resolver                                           |
+| adb_maxqueue       | 4                                  | size of the download queue to handle downloads & list processing in parallel                   |
+| adb_dnsdir         | -, auto-detected                   | path for the generated blocklist file 'adb_list.overall'                                       |
+| adb_dnstimeout     | 10                                 | timeout in seconds to wait for a successful DNS backend restart                                |
+| adb_dnsinstance    | 0, first instance                  | set to the relevant dns backend instance used by adblock (dnsmasq only)                        |
+| adb_dnsfilereset   | 0, disabled                        | set to 1 to purge the final DNS blocklist file after DNS backend loading                       |
+| adb_dnsflush       | 0, disabled                        | set to 1 to flush the DNS Cache before & after adblock processing                              |
+| adb_dnsinotify     | -, not set                         | set to 1 to prevent adblock triggered restarts for DNS backends with autoload functions        |
+| adb_dnsallow       | -, not set                         | set to 1 to disable selective DNS whitelisting (RPZ pass through)                              |
+| adb_lookupdomain   | example.com                        | external domain to check for a successful DNS backend restart or 'false' to disable this check |
+| adb_portlist       | 53 853 5353                        | space separated list of firewall ports which should be redirected locally                      |
+| adb_report         | 0, disabled                        | set to 1 to enable the background tcpdump gathering process for reporting                      |
+| adb_reportdir      | /tmp                               | path for DNS related report files                                                              |
+| adb_repiface       | -, auto-detected                   | name of the reporting interface or 'any' used by tcpdump                                       |
+| adb_replisten      | 53                                 | space separated list of reporting port(s) used by tcpdump                                      |
+| adb_repchunkcnt    | 5                                  | report chunk count used by tcpdump                                                             |
+| adb_repchunksize   | 1                                  | report chunk size used by tcpdump in MB                                                        |
+| adb_backup         | 1, enabled                         | set to 0 to disable the backup function                                                        |
+| adb_backupdir      | /tmp                               | path for adblock backups                                                                       |
+| adb_tmpbase        | /tmp                               | path for all adblock related runtime operations, e.g. downloading, sorting, merging etc.       |
+| adb_safesearch     | 0, disabled                        | set to 1 to enforce SafeSearch for google, bing, duckduckgo, yandex, youtube and pixabay       |
+| adb_safesearchlist | -, not set                         | Limit SafeSearch to certain provider (see above)                                               |
+| adb_safesearchmod  | 0, disabled                        | set to 1 to enable moderate SafeSearch filters for youtube                                     |
+| adb_mail           | 0, disabled                        | set to 1 to enable notification E-Mails in case of a processing errors                         |
+| adb_mailreceiver   | -, not set                         | receiver address for adblock notification E-Mails                                              |
+| adb_mailsender     | no-reply@adblock                   | sender address for adblock notification E-Mails                                                |
+| adb_mailtopic      | adblock&nbsp;notification          | topic for adblock notification E-Mails                                                         |
+| adb_mailprofile    | adb_notify                         | mail profile used in 'msmtp' for adblock notification E-Mails                                  |
+| adb_mailcnt        | 0                                  | minimum domain count to trigger E-Mail notifications                                           |
+| adb_jail           | 0                                  | set to 1 to enable the additional, restrictive 'adb_list.jail' creation                        |
+| adb_jaildir        | /tmp                               | path for the generated jail list                                                               |
 
 ## Examples
 **Change the DNS backend to 'unbound':**  
index 3471cc8df56a557b3f67bf7aca223d3030fcb85a..780e3b6bd3a3de3b92bc3376325b02f2b31eab39 100755 (executable)
@@ -114,19 +114,17 @@ list()
                if [ -n "$(uci -q changes adblock)" ]
                then
                        uci_commit adblock
+                       "${adb_init}" start
                fi
        else
                src_archive="$(uci_get adblock global adb_srcarc "/etc/adblock/adblock.sources.gz")"
                src_file="$(uci_get adblock global adb_srcfile "/tmp/adb_sources.json")"
                src_enabled="$(uci -q show adblock.global.adb_sources)"
-               if [ ! -r "${src_file}" ]
+               if [ -r "${src_archive}" ]
                then
-                       if [ -r "${src_archive}" ]
-                       then
-                               zcat "${src_archive}" > "${src_file}"
-                       else
-                               printf "%s\\n" "::: adblock source archive '${src_archive}' not found"
-                       fi
+                       zcat "${src_archive}" > "${src_file}"
+               else
+                       printf "%s\\n" "::: adblock source archive '${src_archive}' not found"
                fi
                if [ -r "${src_file}" ]
                then
index ae208a00071626b42b5a8de8eea040e7b1a2e802..d545a67068a6e6513c12bcc44853843547d2ee71 100755 (executable)
@@ -11,7 +11,7 @@
 export LC_ALL=C
 export PATH="/usr/sbin:/usr/bin:/sbin:/bin"
 set -o pipefail
-adb_ver="4.0.5"
+adb_ver="4.0.6"
 adb_enabled=0
 adb_debug=0
 adb_forcedns=0
@@ -20,6 +20,7 @@ adb_dnsfilereset=0
 adb_dnsflush=0
 adb_dnstimeout=20
 adb_safesearch=0
+adb_safesearchlist=""
 adb_safesearchmod=0
 adb_report=0
 adb_trigger=""
@@ -30,6 +31,7 @@ adb_mailcnt=0
 adb_jail=0
 adb_dns=""
 adb_dnsprefix="adb_list"
+adb_locallist="blacklist whitelist"
 adb_tmpbase="/tmp"
 adb_backupdir="/tmp"
 adb_reportdir="/tmp"
@@ -157,7 +159,13 @@ f_conf()
                {
                        local option="${1}"
                        local value="${2}"
-                       eval "${option}=\"$(printf "%s" "${adb_sources}") ${value}\""
+                       if [ "${option}" = "adb_sources" ]
+                       then
+                               eval "${option}=\"$(printf "%s" "${adb_sources}") ${value}\""
+                       elif [ "${option}" = "adb_safesearchlist" ]
+                       then
+                               eval "${option}=\"$(printf "%s" "${adb_safesearchlist}") ${value}\""
+                       fi
                }
        }
        config_load adblock
@@ -252,7 +260,7 @@ f_dns()
                                adb_dnsheader="${adb_dnsheader:-"\$TTL 2h\n@ IN SOA localhost. root.localhost. (1 6h 1h 1w 2h)\n"}"
                                adb_dnsdeny="${adb_dnsdeny:-"${adb_awk} '{print \"\"\$0\" CNAME .\\n*.\"\$0\" CNAME .\"}'"}"
                                adb_dnsallow="${adb_dnsallow:-"${adb_awk} '{print \"\"\$0\" CNAME rpz-passthru.\\n*.\"\$0\" CNAME rpz-passthru.\"}'"}"
-                               adb_dnssafesearch="${adb_dnssafesearch:-"0"}"
+                               adb_dnssafesearch="${adb_dnssafesearch:-"${adb_awk} -v item=\"\$item\" '{type=\"AAAA\";if(match(item,/^([0-9]{1,3}\.){3}[0-9]{1,3}$/)){type=\"A\"}}{print \"\"\$0\" \"type\" \"item\"\"}'"}"
                                adb_dnsstop="${adb_dnsstop:-"* CNAME ."}"
                        ;;
                        "raw")
@@ -782,7 +790,7 @@ f_list()
                        if [ "${out_rc}" -eq 0 ]
                        then
                                > "${adb_tmpdir}/tmp.safesearch.${src_name}"
-                               if [ "${adb_dns}" = "named" ] || [ "${adb_dns}" = "kresd" ]
+                               if [ "${adb_dns}" = "named" ]
                                then
                                        array="${safe_cname}"
                                else
@@ -921,7 +929,7 @@ f_tld()
 #
 f_switch()
 {
-       local status list entry done="false" mode="${1}"
+       local status entry done="false" mode="${1}"
 
        json_load_file "${adb_rtfile}" >/dev/null 2>&1
        json_select "data" >/dev/null 2>&1
@@ -1175,8 +1183,7 @@ f_main()
 
        # white- and blacklist preparation
        #
-       list="blacklist whitelist"
-       for entry in ${list}
+       for entry in ${adb_locallist}
        do
                ( f_list "${entry}" "${entry}" )&
        done
@@ -1185,8 +1192,11 @@ f_main()
        #
        if [ "${adb_safesearch}" -eq 1 ] && [ "${adb_dnssafesearch}" != "0" ]
        then
-               list="google bing duckduckgo pixabay yandex youtube"
-               for entry in ${list}
+               if [ -z "${adb_safesearchlist}" ]
+               then
+                       adb_safesearchlist="google bing duckduckgo pixabay yandex youtube"
+               fi
+               for entry in ${adb_safesearchlist}
                do
                        ( f_list safesearch "${entry}" )&
                done
index 5d9570d28686c5e9cbfb1993507660041829290d..a6093a7113655dcfc58d2c3c52fe2626551d06b0 100644 (file)
                "focus": "compilation",
                "descurl": "https://gitlab.com/andryou/block/-/blob/master/readme.md"
        },
+       "anti_ad": {
+               "url": "https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-domains.txt",
+               "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}",
+               "size": "L",
+               "focus": "compilation",
+               "descurl": "https://github.com/privacy-protection-tools/anti-AD/blob/master/README.md"
+       },      
        "anudeep": {
                "url": "https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt",
                "rule": "/^0\\.0\\.0\\.0[[:space:]]+([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($2)}",
                "descurl": "https://github.com/notracking/hosts-blocklists"
        },
        "oisd_nl": {
-               "url": "https://dbl.oisd.nl",
-               "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}",
+               "url": "https://abp.oisd.nl/",
+               "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
                "size": "XXL",
                "focus": "general",
                "descurl": "https://oisd.nl"
                "focus": "reg_china",
                "descurl": "https://easylist.to"
        },
+       "reg_cz": {
+               "url": "https://easylist-downloads.adblockplus.org/easylistczechslovak+easylist.txt",
+               "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
+               "size": "M",
+               "focus": "reg_czech+slovak",
+               "descurl": "https://easylist.to"
+       },
        "reg_de": {
                "url": "https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt",
                "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
                "focus": "reg_finland",
                "descurl": "https://github.com/finnish-easylist-addition"
        },
+       "reg_fr": {
+               "url": "https://easylist-downloads.adblockplus.org/liste_fr.txt",
+               "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
+               "size": "S",
+               "focus": "reg_france",
+               "descurl": "https://forums.lanik.us/viewforum.php?f=91"
+       },
        "reg_id": {
                "url": "https://easylist-downloads.adblockplus.org/abpindo+easylist.txt",
                "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
                "focus": "reg_indonesia",
                "descurl": "https://easylist.to"
        },
+       "reg_kr": {
+               "url": "https://raw.githubusercontent.com/List-KR/List-KR/master/filter.txt",
+               "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
+               "size": "S",
+               "focus": "reg_korea",
+               "descurl": "https://list-kr.github.io"
+       },
        "reg_nl": {
                "url": "https://easylist-downloads.adblockplus.org/easylistdutch+easylist.txt",
                "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
index 7f6d27908666f58ad6bb81c20d286f5319afdf93..4f18bd615a2592ecb1dab4e99b21922076dd71d9 100644 (file)
@@ -1,17 +1,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ariang
-PKG_VERSION:=1.1.4
-PKG_RELEASE:=2
+PKG_VERSION:=1.1.6
+PKG_RELEASE:=1
 
-PKG_SOURCE_URL:=https://codeload.github.com/mayswind/AriaNg-DailyBuild/tar.gz/$(PKG_VERSION)?
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=0a591564ffb863d5ce55694d26ad63934d364b9408119c191a2f8276f286f2b6
+PKG_SOURCE_URL:=https://codeload.github.com/mayswind/AriaNg-DailyBuild/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=ac5a55f1549c5458dab4422ddf420055909e11d6e5ec8db0f13e52241f6c2917
 PKG_BUILD_DIR:=$(BUILD_DIR)/AriaNg-DailyBuild-$(PKG_VERSION)
 
+PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
 
 include $(INCLUDE_DIR)/package.mk
 
index 8726baa28810a1083e9b6a434a16c6d02136da45..d114e586925efd3bb65ac1bad796602cb3adbf4f 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bind
 PKG_VERSION:=9.16.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 USERID:=bind=57:bind=57
 
 PKG_MAINTAINER:=Noah Meyerhans <frodo@morgul.net>
@@ -83,6 +83,7 @@ define Package/bind-tools
        DEPENDS:= \
        +bind-check \
        +bind-dig \
+       +bind-nslookup \
        +bind-dnssec \
        +bind-host \
        +bind-rndc
@@ -113,6 +114,13 @@ define Package/bind-dig
   TITLE+= DNS excavation tool
 endef
 
+define Package/bind-nslookup
+  $(call Package/bind/Default)
+  TITLE+= nslookup utility
+  ALTERNATIVES:= \
+         200:/usr/bin/nslookup:/usr/libexec/nslookup-bind
+endef
+
 export BUILD_CC="$(TARGET_CC)"
 
 TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
@@ -234,6 +242,11 @@ define Package/bind-dig/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dig $(1)/usr/bin/
 endef
 
+define Package/bind-nslookup/install
+       $(INSTALL_DIR) $(1)/usr/libexec
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nslookup $(1)/usr/libexec/nslookup-bind
+endef
+
 $(eval $(call BuildPackage,bind-libs))
 $(eval $(call BuildPackage,bind-server))
 $(eval $(call BuildPackage,bind-server-filter-aaaa))
@@ -244,3 +257,4 @@ $(eval $(call BuildPackage,bind-check))
 $(eval $(call BuildPackage,bind-dnssec))
 $(eval $(call BuildPackage,bind-host))
 $(eval $(call BuildPackage,bind-dig))
+$(eval $(call BuildPackage,bind-nslookup))
index a9a72d08247cd27a9f5f5b72743acc25f5966544..b2c1dd46a3ea172dbc75700877f75de84ab16241 100644 (file)
@@ -8,19 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=conserver
-PKG_VERSION:=8.2.4
+PKG_VERSION:=8.2.5
 PKG_RELEASE:=1
-PKG_MAINTAINER:=Bjørn Mork <bjorn@mork.no>
 
-PKG_SOURCE_URL:=https://codeload.github.com/conserver/conserver/tar.gz/v$(PKG_VERSION)?
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=8d8b263d9531ebb827257bd67baf9200cac4fb7ffbe033122686e39ca42cddd6
+PKG_SOURCE_URL:=https://codeload.github.com/conserver/conserver/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=43be704932bca365d7bf34be929851cf0bb7a229cc28391b3302ae19d6e6565b
 
+PKG_MAINTAINER:=Bjørn Mork <bjorn@mork.no>
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
index 9202ab7aefae1f0611c3bad499c17bee6b0da7b4..b20788eef0dee421d9f651d6203a1d808de5d308 100644 (file)
@@ -26,6 +26,10 @@ config COOVACHILLI_LARGELIMITS
        bool "Enable larger limits for use with non-embedded systems"
        default n
 
+config COOVACHILLI_JSONINTERFACE
+       bool "Enable the JSON interface for the CoovaChilli Controller"
+       default n
+
 choice
        prompt "SSL library"
        default COOVACHILLI_NOSSL
index 45e763e8797bc0ec13e5ef9b0528e7a7023bcf2e..517a022150c6f65fa0b5b27bdbac1fd06bfab183 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=coova-chilli
 PKG_VERSION:=1.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/coova/coova-chilli/tar.gz/$(PKG_VERSION)?
@@ -24,6 +24,7 @@ PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=0
 
 PKG_CONFIG_DEPENDS:= \
+  COOVACHILLI_JSONINTERFACE \
   COOVACHILLI_LARGELIMITS \
   COOVACHILLI_MINIPORTAL \
   COOVACHILLI_NOSSL \
@@ -43,7 +44,8 @@ define Package/coova-chilli
   SECTION:=net
   CATEGORY:=Network
   DEPENDS:=+kmod-tun +librt +COOVACHILLI_MINIPORTAL:haserl \
-  +COOVACHILLI_WOLFSSL:libwolfssl +COOVACHILLI_OPENSSL:libopenssl
+  +COOVACHILLI_WOLFSSL:libwolfssl +COOVACHILLI_OPENSSL:libopenssl \
+  +COOVACHILLI_JSONINTERFACE:libjson-c
   TITLE:=Wireless LAN HotSpot controller (Coova Chilli Version)
   URL:=https://coova.github.io/
   MENU:=1
@@ -111,6 +113,8 @@ define Build/Configure
        $(if $(CONFIG_COOVACHILLI_MINIPORTAL),--enable,--disable)-miniportal \
        $(if $(CONFIG_COOVACHILLI_USERAGENT),--enable,--disable)-useragent \
        $(if $(CONFIG_COOVACHILLI_LARGELIMITS),--enable,--disable)-largelimits \
+       $(if $(CONFIG_COOVACHILLI_JSONINTERFACE),--enable,--disable)-libjson \
+       $(if $(CONFIG_COOVACHILLI_JSONINTERFACE),--enable,--disable)-json \
        $(if $(CONFIG_COOVACHILLI_UAMDOMAINFILE),--enable,--disable)-uamdomainfile \
        $(if $(CONFIG_IPV6),--with,--without)-ipv6 \
        $(if $(CONFIG_COOVACHILLI_WOLFSSL),--with,--without)-cyassl \
index beab6220989f08d9343958715c46849e38ada78d..f5149d277f8a9a569d260390e492c0eb78c07952 100644 (file)
@@ -5,13 +5,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dawn
-PKG_SOURCE_DATE:=2020-05-20
+PKG_SOURCE_DATE:=2020-06-12
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/berlin-open-wireless-lab/DAWN.git
-PKG_SOURCE_VERSION:=73c79989676f5b89f4547f4effc4497f5aaeea44
-PKG_MIRROR_HASH:=a5bf4bf58e3352316800a1f5d4cfb750a09f4f43c1494c5560d71a22fa267c55
+PKG_SOURCE_VERSION:=ada3bf3ff2b1faa24bcbc3754f8f52b9e66b02cd
+PKG_MIRROR_HASH:=7139fc3ff71ab05a0d651e6a05cfcaa07d1084f47e4cf76d894217487eeb7ce3
 
 PKG_MAINTAINER:=Nick Hainke <vincent@systemli.org>
 PKG_LICENSE:=GPL-2.0-only
index 6c0c45b6d4931c2164172c6854a7095526856cd7..7310c6227e26220650f7d30998ba9a4dc6bfad13 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsdist
 PKG_VERSION:=1.4.0
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
diff --git a/net/dnsdist/patches/010-libcxx.patch b/net/dnsdist/patches/010-libcxx.patch
new file mode 100644 (file)
index 0000000..c283b34
--- /dev/null
@@ -0,0 +1,41 @@
+From 405bdec807a7b530173ebf018843c4552dfa20c9 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Sat, 6 Jun 2020 11:33:55 -0700
+Subject: [PATCH] use std::string_view when available
+
+There's a standard C++ macro to check for its existence.
+
+libstdc++ from GCC makes it available under C++17 and up. libcxx from
+LLVM makes it available everywhere.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ ext/lmdb-safe/lmdb-safe.hh | 7 +++----
+ pdns/dnsdistdist/views.hh  | 7 +++----
+ 2 files changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/ext/lmdb-safe/lmdb-safe.hh b/ext/lmdb-safe/lmdb-safe.hh
+index 056a6cd823..16d150fa7d 100644
+--- a/ext/lmdb-safe/lmdb-safe.hh
++++ b/ext/lmdb-safe/lmdb-safe.hh
+@@ -10,8 +10,9 @@
+ #include <string.h>
+ #include <mutex>
+-// apple compiler somehow has string_view even in c++11!
+-#if __cplusplus < 201703L && !defined(__APPLE__)
++#ifdef __cpp_lib_string_view
++using std::string_view;
++#else
+ #include <boost/version.hpp>
+ #if BOOST_VERSION >= 106100
+ #include <boost/utility/string_view.hpp>
+@@ -20,8 +21,6 @@ using boost::string_view;
+ #include <boost/utility/string_ref.hpp>
+ using string_view = boost::string_ref;
+ #endif
+-#else // C++17
+-using std::string_view;
+ #endif
diff --git a/net/dnsdist/patches/020-std.patch b/net/dnsdist/patches/020-std.patch
new file mode 100644 (file)
index 0000000..a39d73d
--- /dev/null
@@ -0,0 +1,25 @@
+From 6910a23b67f64bd71ffb26c1888fb9d8b99acfa6 Mon Sep 17 00:00:00 2001
+From: Peter van Dijk <peter.van.dijk@powerdns.com>
+Date: Mon, 9 Mar 2020 19:10:00 +0100
+Subject: [PATCH] auth lmdb: avoid blanket std import; fixes #8872
+
+---
+ ext/lmdb-safe/lmdb-safe.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/ext/lmdb-safe/lmdb-safe.cc b/ext/lmdb-safe/lmdb-safe.cc
+index f4874261f6..c29d291473 100644
+--- a/ext/lmdb-safe/lmdb-safe.cc
++++ b/ext/lmdb-safe/lmdb-safe.cc
+@@ -6,7 +6,10 @@
+ #include <string.h>
+ #include <map>
+-using namespace std;
++using std::string;
++using std::runtime_error;
++using std::tuple;
++using std::weak_ptr;
+ static string MDBError(int rc)
+ {
index 505b97a566ecbd42209df08fafa283b9ad85ddbf..f8f18def9cec33829c4759834f0233a6f461f263 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=go-ethereum
-PKG_VERSION:=1.9.11
+PKG_VERSION:=1.9.14
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/ethereum/go-ethereum/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=226cf65cda4eab3e66e8042c3d8bcee8ed07c619ae0ec2421ed4b0abe97bb055
+PKG_HASH:=2bb8dda5dcfceebb31d1e1def1bdc6bf999ac8883a7235b4b242f55e930bcb3c
 
 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
 PKG_LICENSE:=GPL-3.0-or-later LGPL-3.0-or-later
index 3195eb18b60e752a17e2cf3968ae8b08797fd633..dbf53ffb47c530770546731dd3640f8c893697c9 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnurl
-PKG_VERSION:=7.67.0
-PKG_RELEASE:=2
+PKG_VERSION:=7.70.0
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@GNU/gnunet
 
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=2b972454ac3ab8c40f4dd2beeff168dde9666c473a1418f7f69194563e4caa46
+PKG_HASH:=0acfcf7921eab323d41be3c8dbb3c4926530bb1fdd95b4fa6f412eb291a2a95f
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
index 9724dfff1cabee73aabae795bd0ad9cecc504843..ca86759b81c70534bf73057ff4586b7cb3861210 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haproxy
-PKG_VERSION:=2.1.4
+PKG_VERSION:=2.1.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.haproxy.org/download/2.1/src
-PKG_HASH:=51030ff696d7067162b4d24d354044293aecfbb36d7acc2f840c8d928bfe91cd
+PKG_HASH:=392e6cf18e75fe7e166102e8c4512942890a0b5ae738f6064faab4687f60a339
 
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>, \
                Christian Lachner <gladiac@gmail.com>
@@ -86,14 +86,12 @@ ifeq ($(CONFIG_TARGET_x86),y)
 endif
 
 ifeq ($(CONFIG_USE_UCLIBC),y)
-       LINUX_TARGET:=linux-uclibc
-else
-       LINUX_TARGET:=linux-glibc
+       ADDON+=USE_LIBCRYPT=
 endif
 
 ifeq ($(BUILD_VARIANT),ssl)
        ADDON+=USE_OPENSSL=1
-       ADDON+=ADDLIB="-lcrypto -lm "
+       ADDON+=ADDLIB="-lcrypto -lm"
 endif
 
 ifeq ($(ENABLE_REGPARM),y)
@@ -101,7 +99,7 @@ ifeq ($(ENABLE_REGPARM),y)
 endif
 
 define Build/Compile
-       $(MAKE) TARGET=$(LINUX_TARGET) -C $(PKG_BUILD_DIR) \
+       $(MAKE) TARGET=linux-glibc -C $(PKG_BUILD_DIR) \
                DESTDIR="$(PKG_INSTALL_DIR)" \
                CC="$(TARGET_CC)" \
                PCREDIR="$(STAGING_DIR)/usr/" \
@@ -112,7 +110,7 @@ define Build/Compile
                USE_THREAD=1 USE_PTHREAD_PSHARED=1 \
                VERSION="$(PKG_VERSION)" SUBVERS="-$(PKG_RELEASE)" \
                VERDATE="$(shell date -d @$(SOURCE_DATE_EPOCH) '+%Y/%m/%d')" IGNOREGIT=1 \
-               $(ADDON) \
+               $(ADDON) USE_BACKTRACE= \
                CFLAGS="$(TARGET_CFLAGS) -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-format-truncation -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-stringop-overflow -Wno-cast-function-type -Wtype-limits -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference" \
                LD="$(TARGET_CC)" \
                LDFLAGS="$(TARGET_LDFLAGS) -latomic" \
index 2edb44e3ba7b492f671bf04d88d943b4f51d5e02..b1139c68e61ddd75385f311a96a87c5246487688 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 CLONEURL=https://git.haproxy.org/git/haproxy-2.1.git
-BASE_TAG=v2.1.4
+BASE_TAG=v2.1.7
 TMP_REPODIR=tmprepo
 PATCHESDIR=patches
 
diff --git a/net/haproxy/patches/000-BUG-MINOR-protocol_buffer-Wrong-maximum-shifting.patch b/net/haproxy/patches/000-BUG-MINOR-protocol_buffer-Wrong-maximum-shifting.patch
deleted file mode 100644 (file)
index 71b6277..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-commit c7a203a6c75e4efff5f3d5d675d925f11b47dba1
-Author: Frédéric Lécaille <flecaille@haproxy.com>
-Date:   Thu Apr 2 14:24:31 2020 +0200
-
-    BUG/MINOR: protocol_buffer: Wrong maximum shifting.
-    
-    This patch fixes a bad stop condition when decoding a protocol buffer variable integer
-    whose maximum lenghts are 10, shifting a uint64_t value by more than 63.
-    
-    Thank you to Ilya for having reported this issue.
-    
-    Must be backported to 2.1 and 2.0.
-    
-    (cherry picked from commit 876ed55d9b8d0c298b6cac1003ec365a19bf7aad)
-    Signed-off-by: Willy Tarreau <w@1wt.eu>
-
-diff --git a/include/proto/protocol_buffers.h b/include/proto/protocol_buffers.h
-index 69f0bdf81..0426d83d2 100644
---- a/include/proto/protocol_buffers.h
-+++ b/include/proto/protocol_buffers.h
-@@ -158,7 +158,7 @@ protobuf_varint(uint64_t *val, unsigned char *pos, size_t len)
-               shift += 7;
-               /* The maximum length in bytes of a 64-bit encoded value is 10. */
--              if (shift > 70)
-+              if (shift > 63)
-                       return 0;
-       }
-@@ -194,7 +194,7 @@ protobuf_decode_varint(uint64_t *val, unsigned char **pos, size_t *len)
-               shift += 7;
-               /* The maximum length in bytes of a 64-bit encoded value is 10. */
--              if (shift > 70)
-+              if (shift > 63)
-                       return 0;
-       }
-@@ -227,7 +227,7 @@ protobuf_skip_varint(unsigned char **pos, size_t *len, size_t vlen)
-               shift += 7;
-               /* The maximum length in bytes of a 64-bit encoded value is 10. */
--              if (shift > 70)
-+              if (shift > 63)
-                       return 0;
-       }
-@@ -263,7 +263,7 @@ protobuf_varint_getlen(unsigned char *pos, size_t len)
-               shift += 7;
-               /* The maximum length in bytes of a 64-bit encoded value is 10. */
--              if (shift > 70)
-+              if (shift > 63)
-                       return -1;
-       }
diff --git a/net/haproxy/patches/000-OPENWRT-BUILD-make-dladdr1-depend-on-glibc-version-and-not-__USE_GNU.patch b/net/haproxy/patches/000-OPENWRT-BUILD-make-dladdr1-depend-on-glibc-version-and-not-__USE_GNU.patch
new file mode 100644 (file)
index 0000000..00caee0
--- /dev/null
@@ -0,0 +1,23 @@
+commit 62af9c83f9ed2b25e0061798e29e3cccfce5fbdc
+Author: Willy Tarreau <w@1wt.eu>
+Date:   Tue Mar 10 07:51:48 2020 +0100
+
+    BUILD: make dladdr1 depend on glibc version and not __USE_GNU
+    
+    Technically speaking the call was implemented in glibc 2.3 so we must
+    rely on this and not on __USE_GNU which is an internal define of glibc
+    to track use of GNU_SOURCE.
+
+diff --git a/src/standard.c b/src/standard.c
+index e0ea8328e..d16eebfea 100644
+--- a/src/standard.c
++++ b/src/standard.c
+@@ -4350,7 +4350,7 @@ void debug_hexdump(FILE *out, const char *pfx, const char *buf,
+ static int dladdr_and_size(const void *addr, Dl_info *dli, size_t *size)
+ {
+       int ret;
+-#ifdef __USE_GNU // most detailed one
++#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) // most detailed one
+       const ElfW(Sym) *sym;
+       ret = dladdr1(addr, dli, (void **)&sym, RTLD_DL_SYMENT);
diff --git a/net/haproxy/patches/001-OPENWRT-add-uclibc-support.patch b/net/haproxy/patches/001-OPENWRT-add-uclibc-support.patch
deleted file mode 100644 (file)
index ddec134..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -342,6 +342,15 @@ ifeq ($(TARGET),linux-glibc)
-     USE_ACCEPT4 USE_LINUX_SPLICE USE_PRCTL USE_THREAD_DUMP USE_GETADDRINFO)
- endif
-+# For linux >= 2.6.28 and uclibc
-+ifeq ($(TARGET),linux-uclibc)
-+  set_target_defaults = $(call default_opts, \
-+    USE_POLL USE_TPROXY USE_DL USE_RT USE_NETFILTER                           \
-+    USE_CPU_AFFINITY USE_THREAD USE_EPOLL USE_FUTEX USE_LINUX_TPROXY          \
-+    USE_ACCEPT4 USE_LINUX_SPLICE USE_PRCTL USE_THREAD_DUMP USE_NS USE_TFO     \
-+    USE_GETADDRINFO)
-+endif
-+
- # Solaris 8 and above
- ifeq ($(TARGET),solaris)
-   # We also enable getaddrinfo() which works since solaris 8.
index 5e97fb8687eee34c97859a4b563fa7569cd6fc4f..bb820b78981baa1ccc05c823da6caaf68f3e9eed 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=https-dns-proxy
 PKG_VERSION:=2020-04-09
-PKG_RELEASE=2
+PKG_RELEASE=3
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy
@@ -26,6 +26,11 @@ define Package/https-dns-proxy
        CONFLICTS:=https_dns_proxy
 endef
 
+define Package/https-dns-proxy/description
+https_dns_proxy is a light-weight DNS<-->HTTPS, non-caching translation proxy for the RFC 8484 DNS-over-HTTPS standard. It receives regular (UDP) DNS requests and issues them via DoH.
+Please see https://github.com/openwrt/packages/blob/master/net/https-dns-proxy/files/README.md for further information.
+endef
+
 define Package/https-dns-proxy/conffiles
 /etc/config/https-dns-proxy
 endef
index 87e548462688eb1c0a9fa72b8a15c746134e5fa9..f2435490d4e2ba01e2afcc6b743a0a2f7fcb254b 100644 (file)
@@ -1,6 +1,6 @@
 # DNS Over HTTPS Proxy (https-dns-proxy)
 
-A lean RFC8484-compatible (no JSON API support) DNS-over-HTTPS (DoH) proxy service which supports DoH servers ran by AdGuard, CleanBrowsing, Cloudflare, Google, ODVR (nic.cz) and Quad9. Please see the [README](https://github.com/stangri/openwrt_packages/blob/master/https-dns-proxy/files/README.md) for further information. Based on [@aarond10](https://github.com/aarond10)'s [https-dns-proxy](https://github.com/aarond10/https_dns_proxy).
+A lean RFC8484-compatible (no JSON API support) DNS-over-HTTPS (DoH) proxy service which supports DoH servers ran by AdGuard, CleanBrowsing, Cloudflare, Google, ODVR (nic.cz) and Quad9. Based on [@aarond10](https://github.com/aarond10)'s [https-dns-proxy](https://github.com/aarond10/https_dns_proxy).
 
 ## Features
 
@@ -11,7 +11,7 @@ A lean RFC8484-compatible (no JSON API support) DNS-over-HTTPS (DoH) proxy servi
 
 ## Screenshots (luci-app-https-dns-proxy)
 
-![screenshot](https://raw.githubusercontent.com/stangri/openwrt_packages/master/screenshots/https-dns-proxy/screenshot01.png "https-dns-proxy screenshot")
+![screenshot](https://cdn.jsdelivr.net/gh/stangri/openwrt_packages@master/screenshots/https-dns-proxy/screenshot01.png "https-dns-proxy screenshot")
 
 ## Requirements
 
@@ -78,7 +78,6 @@ The https-dns-proxy instance settings are:
 |Parameter|Type|Default|Description|
 | --- | --- | --- | --- |
 |bootstrap_dns|IP Address||The non-encrypted DNS servers to be used to resolve the DoH server name on start.|
-|edns_subnet|Subnet||EDNS Subnet address can be supplied to supported DoH servers to provide local resolution results.|
 |listen_addr|IP Address|127.0.0.1|The local IP address to listen to requests.|
 |listen_port|port|5053 and up|If this setting is omitted, the service will start the first https-dns-proxy instance on port 5053, second on 5054 and so on.|
 |logfile|Full filepath||Full filepath to the file to log the instance events to.|
index e4a4d3b730fe0ab3444a8bb250e9cb5344ccaac4..1614d9096eafe3a22c258404bf91cf4fbdb2d8f9 100755 (executable)
@@ -42,7 +42,6 @@ start_instance() {
        append_parm "$cfg" 'resolver_url' '-r'
        append_parm "$cfg" 'user' '-u' 'nobody'
        append_parm "$cfg" 'group' '-g' 'nogroup'
-       append_parm "$cfg" 'edns_subnet' '-e'
        append_parm "$cfg" 'proxy_server' '-t'
        append_parm "$cfg" 'logfile' '-l'
        append_bool "$cfg" 'use_http1' '-x'
index ac543fbbc6081d37b26a0eec00d15c8a8dea20e4..a97382d4f5abefc8d0c6875e2932ac04d08dea3d 100644 (file)
@@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=jool
-PKG_VERSION:=4.0.8
+PKG_VERSION:=4.1.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/NICMx/Jool/releases/download/v$(PKG_VERSION)
-PKG_HASH:=73dd65a14feedc8bd0f650d3316bca346474c8420d60b48ca95bd1ca8846f1d4
+PKG_HASH:=7acdb1cd96b5f856fc75a9ee97758bb4dfb4cd7af4af26f88d512b5ac71f01a0
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-only
index fa98d72079643f33e75b9fd74058ede9830253f8..be6d806c78b648bac14317de1205a877616bc1be 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=keepalived
 PKG_VERSION:=2.0.20
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.keepalived.org/software
index 7af3f9c613a6051cef466119cdce08d625145af6..03c2af689fa57712d376b059732f52434b77ac6a 100644 (file)
@@ -99,7 +99,7 @@ globals() {
        local notification_email
 
        printf '%bscript_user root\n' "${INDENT_1}" >> "$KEEPALIVED_CONF"
-       printf '%benabled_script_security\n' "${INDENT_1}" >> "$KEEPALIVED_CONF"
+       printf '%benable_script_security\n' "${INDENT_1}" >> "$KEEPALIVED_CONF"
 
        config_get notification_email "$1" notification_email
        print_list_indent notification_email
index d61e4a2974203a921ac2398f70c38c579a9f6e0b..baacf6e4683d5a69cf485b55835de8568564c5dc 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kismet
 PKG_VERSION:=2016-07-R1
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_LICENSE:=LGPLv2.1
 PKG_CPE_ID:=cpe:/a:kismet:kismet
index 128a9d191da9007b5c7ad070ad541f00b9c38a55..9f0a9966475d7d4ef297bedebdb42c25e1bf7c7d 100644 (file)
@@ -1,3 +1,14 @@
+--- a/ipc_remote.cc
++++ b/ipc_remote.cc
+@@ -914,7 +914,7 @@ int RootIPCRemote::OpenFDPassSock() {
+                       return -1;
+               }
+-              if (bind(ipc_fd_fd, (const struct sockaddr *) &unixsock, sizeof(unixsock))) {
++              if (::bind(ipc_fd_fd, (const struct sockaddr *) &unixsock, sizeof(unixsock))) {
+                       close(ipc_fd_fd);
+                       _MSG("Failed to bind socket to pass file descriptors: " + 
+                                string(strerror(errno)), MSGFLAG_ERROR);
 --- a/packetsource_wext.cc
 +++ b/packetsource_wext.cc
 @@ -405,7 +405,7 @@ void PacketSource_Wext::OpenWpaSupplicant() {
index 8e6789fb87337dadf9ce546005cae05e08ea4ef4..774062c68e720dea6173d777f349435e49d2c8d7 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knxd
-PKG_VERSION:=0.14.37
+PKG_VERSION:=0.14.39
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/knxd/knxd/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=c3fc5777c39e40afb3dfffd74907954c8951d05134d04d44d1acf3362db6ca59
+PKG_HASH:=9ed920fa3c4f12ededd4d413f27f149c91ce0846c561a7d19478502c06ac95f1
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
 PKG_LICENSE:=GPL-2.0-or-later
index da12177d3d95f8af3235ed214d38ff0805109ac2..9ff5a311350cf713a0e056fb030eb3b85d722714 100644 (file)
@@ -5,4 +5,4 @@
 
 -test -d .git || exit
 -git describe --tags
-+echo -n "0.14.37"
++echo -n "0.14.39"
index 87a0b0e97a814932acceb06cd1900ff20731696d..86b5aafc313d39dc0148995b7d0c1eae42e7f2fa 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ksmbd-tools
-PKG_VERSION:=3.2.3
+PKG_VERSION:=3.2.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/cifsd-team/cifsd-tools/archive/$(PKG_VERSION)/
-PKG_HASH:=d5e56b38f858736849aefd55cfbffe31ae3d4f39a13689aecb3e896f3b048866
+PKG_SOURCE_URL:=https://codeload.github.com/cifsd-team/ksmbd-tools/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=595029adb899fd8b4c49bea75bce4e3c3466811ef7089b2a55960174e720d919
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
index 015cfb53072fff1914c95f4a89805a95ea742d12..c20d162452975d11c07b7ccb04e0b5c4a175bb9f 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lighttpd
 PKG_VERSION:=1.4.55
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://download.lighttpd.net/lighttpd/releases-1.4.x
@@ -138,6 +138,14 @@ else
        --without-webdav-props
 endif
 
+ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-authn_pam),)
+  CONFIGURE_ARGS+= \
+       --with-pam
+else
+  CONFIGURE_ARGS+= \
+       --without-pam
+endif
+
 define Build/Configure
 $(call Build/Configure/Default)
        # XXX: override pcre (mis)detection by ./configure when cross-compiling
@@ -209,6 +217,7 @@ $(eval $(call BuildPlugin,authn_file,File-based authentication,lighttpd-mod-auth
 $(eval $(call BuildPlugin,authn_gssapi,Kerberos-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_gssapi:krb5-libs,20))
 $(eval $(call BuildPlugin,authn_ldap,LDAP-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_ldap:libopenldap,20))
 $(eval $(call BuildPlugin,authn_mysql,Mysql-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_mysql:libmysqlclient,20))
+$(eval $(call BuildPlugin,authn_pam,PAM-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_pam:libpam,20))
 
 # Finally, everything else.
 $(eval $(call BuildPlugin,access,Access restrictions,,30))
index ae95b4a2cca8b4433da411fefe78226864658e71..21631384e7a821bf282a95838a5521df344e0136 100644 (file)
@@ -8,17 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=miniupnpd
-PKG_VERSION:=2.1.20191006
-PKG_RELEASE:=5
+PKG_VERSION:=2.1.20200510
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://miniupnp.tuxfamily.org/files
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=218fad7af31f3c22fb4c9db28a55a2a8b5067d41f5b38f52008a057a00d2206d
+PKG_HASH:=821e708f369cc1fb851506441fbc3a1f4a1b5a8bf8e84a9e71758a32f5127e8b
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
 PKG_CPE_ID:=cpe:/a:miniupnp_project:miniupnpd
 
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/version.mk
 
@@ -40,17 +43,16 @@ define Build/Prepare
        echo "$(VERSION_NUMBER)" | tr '() ' '_' >$(PKG_BUILD_DIR)/os.openwrt
 endef
 
+CONFIGURE_ARGS = \
+       $(if $(CONFIG_IPV6),--ipv6) \
+       --igd2 \
+       --leasefile \
+       --portinuse \
+       --firewall=iptables
+
 TARGET_CFLAGS += $(FPIC) -flto
 TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
 
-MAKE_FLAGS += \
-       TARGET_OPENWRT=1 TEST=0 LIBS="" \
-       CC="$(TARGET_CC) -DIPTABLES_143 -lip4tc -luuid \
-               $(if $(CONFIG_IPV6),-lip6tc)" \
-       CONFIG_OPTIONS="--portinuse --leasefile --igd2 \
-               $(if $(CONFIG_IPV6),--ipv6)" \
-       -f Makefile.linux miniupnpd
-
 define Package/miniupnpd/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_DIR) $(1)/etc/init.d
@@ -59,7 +61,7 @@ define Package/miniupnpd/install
        $(INSTALL_DIR) $(1)/etc/uci-defaults
        $(INSTALL_DIR) $(1)/usr/share/miniupnpd
 
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/miniupnpd $(1)/usr/sbin/miniupnpd
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/miniupnpd $(1)/usr/sbin/miniupnpd
        $(INSTALL_BIN) ./files/miniupnpd.init $(1)/etc/init.d/miniupnpd
        $(INSTALL_CONF) ./files/upnpd.config $(1)/etc/config/upnpd
        $(INSTALL_DATA) ./files/miniupnpd.hotplug $(1)/etc/hotplug.d/iface/50-miniupnpd
index 059b2b6066d5761730d032da9c135351a95fb9a9..15b80c4ef3bb5bbc75f203180ed6e2feeb7d36bf 100644 (file)
@@ -12,9 +12,9 @@
 [ "$ACTION" != "ifup" ] && procd_running "miniupnpd" "*" && exit 0
 
 tmpconf="/var/etc/miniupnpd.conf"
-external_iface=$(uci get upnpd.config.external_iface)
-external_iface6=$(uci get upnpd.config.external_iface6)
-external_zone=$(uci get upnpd.config.external_zone)
+external_iface=$(uci -q get upnpd.config.external_iface)
+external_iface6=$(uci -q get upnpd.config.external_iface6)
+external_zone=$(uci -q get upnpd.config.external_zone)
 
 . /lib/functions/network.sh
 
@@ -41,6 +41,6 @@ fi
 
 [ "$DEVICE" != "$ifname" ] && [ "$DEVICE" != "$ifname6" ] && exit 0
 
-grep -q "^ext_ifname=$ifname" "$tmpconf" && grep -q "^ext_ifname6=$ifname6" "$tmpconf" && exit 0
+grep -qs "^ext_ifname=$ifname" "$tmpconf" && grep -qs "^ext_ifname6=$ifname6" "$tmpconf" && exit 0
 
 /etc/init.d/miniupnpd restart
index 0254300651b8450a3bbd14ea1ae31201599b32a1..2b09a828fd1fa6b81d307bfed647b4fe8e8c2978 100644 (file)
@@ -9,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mosquitto
-PKG_VERSION:=1.6.9
+PKG_VERSION:=1.6.10
 PKG_RELEASE:=1
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
@@ -17,7 +17,7 @@ PKG_CPE_ID:=cpe:/a:eclipse:mosquitto
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://mosquitto.org/files/source/
-PKG_HASH:=412979b2db0a0020bd02fa64f0a0de9e7000b84462586e32b67f29bb1f6c1685
+PKG_HASH:=92d1807717f0f6d57d1ac1207ffdb952e8377e916c7b0bb4718f745239774232
 
 include $(INCLUDE_DIR)/package.mk
 
index 0a2a4d2978333af3dca464fd055a61e1405e711b..c78df6221a745c8315e14fc4bd28ea45c0f6f9ae 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mwan3
-PKG_VERSION:=2.8.5
+PKG_VERSION:=2.8.7
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
 PKG_LICENSE:=GPL-2.0
index 2dccef3635c14682f488608090737df84a3e03c5..af750e55e2259c4ed6d924b4e37eef9fddb5a6a8 100755 (executable)
@@ -1,20 +1,28 @@
 #!/bin/sh /etc/rc.common
 
 START=19
-
-reload() {
-       /usr/sbin/mwan3 restart
-}
+USE_PROCD=1
 
 boot() {
        . /lib/config/uci.sh
        uci_toggle_state mwan3 globals enabled "1"
+       mwan3_boot=1
+       rc_procd start_service
+}
+
+reload_service() {
+       /usr/sbin/mwan3 restart
 }
 
-start() {
+start_service() {
+       [ -n "${mwan3_boot}" ] && return 0
        /usr/sbin/mwan3 start
 }
 
-stop() {
+stop_service() {
        /usr/sbin/mwan3 stop
 }
+
+service_triggers() {
+       procd_add_reload_trigger 'mwan3'
+}
index 88159e8b95c829f660db38cd66151a479846774e..64b07d65816b1e4537db86701dc1aa4eefeddee2 100644 (file)
@@ -39,14 +39,16 @@ mwan3_rtmon_ipv4()
        local tid=1
        local idx=0
        local ret=1
+       local tbl=""
        mkdir -p /tmp/mwan3rtmon
        ($IP4 route list table main  | grep -v "^default\|linkdown" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv4.main
        while uci get mwan3.@interface[$idx] >/dev/null 2>&1 ; do
                idx=$((idx+1))
                tid=$idx
                [ "$(uci get mwan3.@interface[$((idx-1))].family)" = "ipv4" ] && {
-                       if $IP4 route list table $tid | grep -q ^default; then
-                               ($IP4 route list table $tid  | grep -v "^default\|linkdown" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv4.$tid
+                       tbl=$($IP4 route list table $tid)
+                       if echo "$tbl" | grep -q ^default; then
+                               (echo "$tbl"  | grep -v "^default\|linkdown" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv4.$tid
                                cat /tmp/mwan3rtmon/ipv4.$tid | grep -v -x -F -f /tmp/mwan3rtmon/ipv4.main | while read line; do
                                        $IP4 route del table $tid $line
                                done
@@ -70,14 +72,16 @@ mwan3_rtmon_ipv6()
        local tid=1
        local idx=0
        local ret=1
+       local tbl=""
        mkdir -p /tmp/mwan3rtmon
-       ($IP6 route list table main  | grep -v "^default\|^::/0\|^unreachable" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv6.main
+       ($IP6 route list table main  | grep -v "^default\|^::/0\|^fe80::/64\|^unreachable" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv6.main
        while uci get mwan3.@interface[$idx] >/dev/null 2>&1 ; do
                idx=$((idx+1))
                tid=$idx
                [ "$(uci get mwan3.@interface[$((idx-1))].family)" = "ipv6" ] && {
-                       if $IP6 route list table $tid | grep -q "^default\|^::/0"; then
-                               ($IP6 route list table $tid  | grep -v "^default\|^::/0\|^unreachable" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv6.$tid
+                       tbl=$($IP6 route list table $tid)
+                       if echo "$tbl" | grep -q "^default\|^::/0"; then
+                               (echo "$tbl"  | grep -v "^default\|^::/0\|^unreachable" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv6.$tid
                                cat /tmp/mwan3rtmon/ipv6.$tid | grep -v -x -F -f /tmp/mwan3rtmon/ipv6.main | while read line; do
                                        $IP6 route del table $tid $line
                                done
@@ -236,7 +240,7 @@ mwan3_set_custom_ipset()
 
 mwan3_set_connected_iptables()
 {
-       local connected_network_v4 connected_network_v6
+       local connected_network_v4 connected_network_v6 source_network_v6
 
        $IPS -! create mwan3_connected_v4 hash:net
        $IPS create mwan3_connected_v4_temp hash:net
@@ -268,6 +272,14 @@ mwan3_set_connected_iptables()
        $IPS -! add mwan3_connected mwan3_connected_v4
        $IPS -! add mwan3_connected mwan3_connected_v6
 
+       $IPS -! create mwan3_source_v6 hash:net family inet6
+       $IPS create mwan3_source_v6_temp hash:net family inet6
+       for source_network_v6 in $($IP6 addr ls  | sed -ne 's/ *inet6 \([^ \/]*\).* scope global.*/\1/p'); do
+               $IPS -! add mwan3_source_v6_temp $source_network_v6
+       done
+       $IPS swap mwan3_source_v6_temp mwan3_source_v6
+       $IPS destroy mwan3_source_v6_temp
+
        $IPS -! create mwan3_dynamic_v4 hash:net
        $IPS -! add mwan3_connected mwan3_dynamic_v4
 
@@ -339,6 +351,13 @@ mwan3_set_general_iptables()
                                        -p ipv6-icmp \
                                        -m icmp6 --icmpv6-type 137 \
                                        -j RETURN
+                               # do not mangle outgoing echo request
+                               $IPT6 -A mwan3_hook \
+                                       -m set --match-set mwan3_source_v6 src \
+                                       -p ipv6-icmp \
+                                       -m icmp6 --icmpv6-type 128 \
+                                       -j RETURN
+
                        fi
                        $IPT -A mwan3_hook \
                                -j CONNMARK --restore-mark --nfmask $MMX_MASK --ctmask $MMX_MASK
@@ -862,8 +881,8 @@ mwan3_set_sticky_iptables()
 
 mwan3_set_user_iptables_rule()
 {
-       local ipset family proto policy src_ip src_port sticky dest_ip
-       local dest_port use_policy timeout rule policy IPT
+       local ipset family proto policy src_ip src_port src_iface src_dev
+       local sticky dest_ip dest_port use_policy timeout rule policy IPT
        local global_logging rule_logging loglevel
 
        rule="$1"
@@ -872,13 +891,31 @@ mwan3_set_user_iptables_rule()
        config_get timeout $1 timeout 600
        config_get ipset $1 ipset
        config_get proto $1 proto all
-       config_get src_ip $1 src_ip 0.0.0.0/0
-       config_get src_port $1 src_port 0:65535
-       config_get dest_ip $1 dest_ip 0.0.0.0/0
-       config_get dest_port $1 dest_port 0:65535
+       config_get src_ip $1 src_ip
+       config_get src_iface $1 src_iface
+       network_get_device src_dev $src_iface
+       config_get src_port $1 src_port
+       config_get dest_ip $1 dest_ip
+       config_get dest_port $1 dest_port
        config_get use_policy $1 use_policy
        config_get family $1 family any
 
+       [ -z "$dest_ip" ] && unset dest_ip
+       [ -z "$src_ip" ] && unset src_ip
+       [ -z "$ipset" ] && unset ipset
+       [ -z "$src_port" ]  && unset src_port
+       [ -z "$dest_port" ]  && unset dest_port
+       [ "$proto"  != 'tcp' ]  && [ "$proto" != 'udp' ] && {
+               [ -n "$src_port" ] && {
+                       $LOG warn "src_port set to '$src_port' but proto set to '$proto' not tcp or udp. src_port will be ignored"
+               }
+               [ -n "$dest_port" ] && {
+                       $LOG warn "dest_port set to '$dest_port' but proto set to '$proto' not tcp or udp. dest_port will be ignored"
+               }
+               unset src_port
+               unset dest_port
+       }
+
        config_get rule_logging $1 logging 0
        config_get global_logging globals logging 0
        config_get loglevel globals loglevel notice
@@ -951,144 +988,34 @@ mwan3_set_user_iptables_rule()
 
                        fi
                fi
+               for IPT in "$IPT4" "$IPT6"; do
+                       [ "$family" == "ipv4" ] && [ "$IPT" == "$IPT6" ] && continue
+                       [ "$family" == "ipv6" ] && [ "$IPT" == "$IPT4" ] && continue
+                       [ "$global_logging" = "1" ] && [ "$rule_logging" = "1" ] && {
+                               $IPT -A mwan3_rules \
+                                    -p $proto \
+                                    ${src_ip:+-s} $src_ip \
+                                    ${src_dev:+-i} $src_dev \
+                                    ${dest_ip:+-d} $dest_ip\
+                                    $ipset \
+                                    ${src_port:+-m} ${src_port:+multiport} ${src_port:+--sports} $src_port \
+                                    ${dest_port:+-m} ${dest_port:+multiport} ${dest_port:+--dports} $dest_port \
+                                    -m mark --mark 0/$MMX_MASK \
+                                    -m comment --comment "$1" \
+                                    -j LOG --log-level "$loglevel" --log-prefix "MWAN3($1)" &> /dev/null
+                       }
 
-               if [ "$family" == "any" ]; then
-
-                       for IPT in "$IPT4" "$IPT6"; do
-                               case $proto in
-                                       tcp|udp)
-                                       [ "$global_logging" = "1" ] && [ "$rule_logging" = "1" ] && {
-                                               $IPT -A mwan3_rules \
-                                                       -p $proto \
-                                                       -s $src_ip \
-                                                       -d $dest_ip $ipset \
-                                                       -m multiport --sports $src_port \
-                                                       -m multiport --dports $dest_port \
-                                                       -m mark --mark 0/$MMX_MASK \
-                                                       -m comment --comment "$1" \
-                                                       -j LOG --log-level "$loglevel" --log-prefix "MWAN3($1)" &> /dev/null
-                                       }
-                                       $IPT -A mwan3_rules \
-                                               -p $proto \
-                                               -s $src_ip \
-                                               -d $dest_ip $ipset \
-                                               -m multiport --sports $src_port \
-                                               -m multiport --dports $dest_port \
-                                               -m mark --mark 0/$MMX_MASK \
-                                               -m comment --comment "$1" \
-                                               -j $policy &> /dev/null
-                                       ;;
-                                       *)
-                                       [ "$global_logging" = "1" ] && [ "$rule_logging" = "1" ] && {
-                                               $IPT -A mwan3_rules \
-                                                       -p $proto \
-                                                       -s $src_ip \
-                                                       -d $dest_ip $ipset \
-                                                       -m mark --mark 0/$MMX_MASK \
-                                                       -m comment --comment "$1" \
-                                                       -j LOG --log-level "$loglevel" --log-prefix "MWAN3($1)" &> /dev/null
-                                       }
-                                       $IPT -A mwan3_rules \
-                                               -p $proto \
-                                               -s $src_ip \
-                                               -d $dest_ip $ipset \
-                                               -m mark --mark 0/$MMX_MASK \
-                                               -m comment --comment "$1" \
-                                               -j $policy &> /dev/null
-                                       ;;
-                               esac
-                       done
-
-               elif [ "$family" == "ipv4" ]; then
-
-                       case $proto in
-                               tcp|udp)
-                               [ "$global_logging" = "1" ] && [ "$rule_logging" = "1" ] && {
-                                       $IPT4 -A mwan3_rules \
-                                               -p $proto \
-                                               -s $src_ip \
-                                               -d $dest_ip $ipset \
-                                               -m multiport --sports $src_port \
-                                               -m multiport --dports $dest_port \
-                                               -m mark --mark 0/$MMX_MASK \
-                                               -m comment --comment "$1" \
-                                               -j LOG --log-level "$loglevel" --log-prefix "MWAN3($1)" &> /dev/null
-                               }
-                               $IPT4 -A mwan3_rules \
-                                       -p $proto \
-                                       -s $src_ip \
-                                       -d $dest_ip $ipset \
-                                       -m multiport --sports $src_port \
-                                       -m multiport --dports $dest_port \
-                                       -m mark --mark 0/$MMX_MASK \
-                                       -m comment --comment "$1" \
-                                       -j $policy &> /dev/null
-                               ;;
-                               *)
-                               [ "$global_logging" = "1" ] && [ "$rule_logging" = "1" ] && {
-                                       $IPT4 -A mwan3_rules \
-                                               -p $proto \
-                                               -s $src_ip \
-                                               -d $dest_ip $ipset \
-                                               -m mark --mark 0/$MMX_MASK \
-                                               -m comment --comment "$1" \
-                                               -j LOG --log-level "$loglevel" --log-prefix "MWAN3($1)" &> /dev/null
-                               }
-                               $IPT4 -A mwan3_rules \
-                                       -p $proto \
-                                       -s $src_ip \
-                                       -d $dest_ip $ipset \
-                                       -m mark --mark 0/$MMX_MASK \
-                                       -m comment --comment "$1" \
-                                       -j $policy &> /dev/null
-                               ;;
-                       esac
-
-               elif [ "$family" == "ipv6" ]; then
-
-                       case $proto in
-                               tcp|udp)
-                               [ "$global_logging" = "1" ] && [ "$rule_logging" = "1" ] && {
-                                       $IPT6 -A mwan3_rules \
-                                               -p $proto \
-                                               -s $src_ip \
-                                               -d $dest_ip $ipset \
-                                               -m multiport --sports $src_port \
-                                               -m multiport --dports $dest_port \
-                                               -m mark --mark 0/$MMX_MASK \
-                                               -m comment --comment "$1" \
-                                               -j LOG --log-level "$loglevel" --log-prefix "MWAN3($1)" &> /dev/null
-                               }
-                               $IPT6 -A mwan3_rules \
-                                       -p $proto \
-                                       -s $src_ip \
-                                       -d $dest_ip $ipset \
-                                       -m multiport --sports $src_port \
-                                       -m multiport --dports $dest_port \
-                                       -m mark --mark 0/$MMX_MASK \
-                                       -m comment --comment "$1" \
-                                       -j $policy &> /dev/null
-                               ;;
-                               *)
-                               [ "$global_logging" = "1" ] && [ "$rule_logging" = "1" ] && {
-                                       $IPT6 -A mwan3_rules \
-                                               -p $proto \
-                                               -s $src_ip \
-                                               -d $dest_ip $ipset \
-                                               -m mark --mark 0/$MMX_MASK \
-                                               -m comment --comment "$1" \
-                                               -j LOG --log-level  "$loglevel" --log-prefix "MWAN3($1)" &> /dev/null
-                               }
-                               $IPT6 -A mwan3_rules \
-                                       -p $proto \
-                                       -s $src_ip \
-                                       -d $dest_ip $ipset \
-                                       -m mark --mark 0/$MMX_MASK \
-                                       -m comment --comment "$1" \
-                                       -j $policy &> /dev/null
-                               ;;
-                       esac
-               fi
+                       $IPT -A mwan3_rules \
+                            -p $proto \
+                            ${src_ip:+-s} $src_ip \
+                            ${src_dev:+-i} $src_dev \
+                            ${dest_ip:+-d} $dest_ip\
+                            $ipset \
+                            ${src_port:+-m} ${src_port:+multiport} ${src_port:+--sports} $src_port \
+                            ${dest_port:+-m} ${dest_port:+multiport} ${dest_port:+--dports} $dest_port \
+                            -m mark --mark 0/$MMX_MASK \
+                            -j $policy &> /dev/null
+               done
        fi
 }
 
index b8b55212a1297e5e14b69594ba5958ef1739a65d..33e3e0284702fe57ea3fe24e5d831facd6a0442e 100755 (executable)
@@ -77,7 +77,7 @@ get_mwan3_status() {
        local online=0
        local offline=0
        local up="0"
-       local enabled pid device time_p time_n time_u time_d
+       local enabled pid device time_p time_n time_u time_d status
 
        network_get_device device $1
 
@@ -111,6 +111,12 @@ get_mwan3_status() {
                network_get_uptime uptime "$iface"
                network_is_up "$iface" && up="1"
 
+               if [ -f "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS" ]; then
+                       status="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS")"
+               else
+                       status="unknown"
+               fi
+
                json_add_object "${iface}"
                json_add_int age "$age"
                json_add_int online "${online}"
@@ -119,7 +125,7 @@ get_mwan3_status() {
                json_add_int "score" "$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/SCORE")"
                json_add_int "lost" "$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/LOST")"
                json_add_int "turn" "$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/TURN")"
-               json_add_string "status" "$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS")"
+               json_add_string "status" "${status}"
                json_add_boolean "enabled" "${enabled}"
                json_add_boolean "running" "${running}"
                json_add_boolean "up" "${up}"
index 136b3249c56d1b124fd194985ecc443f354e8c24..e112475ce9666c40f58558f41d4d3d4d00ec31d4 100755 (executable)
@@ -6,6 +6,7 @@
 LOG="logger -t $(basename "$0")[$$] -p"
 INTERFACE=""
 DEVICE=""
+PING="/bin/ping"
 
 IFDOWN_EVENT=0
 
@@ -109,7 +110,10 @@ main() {
        local sleep_time=0
        local turn=0
        local result
+       local ping_protocol=4
        local ping_result
+       local ping_result_raw
+       local ping_status
        local loss=0
        local latency=0
 
@@ -136,16 +140,21 @@ main() {
                                                # https://bugs.openwrt.org/index.php?do=details&task_id=2897
                                                # so get the IP address of the interface and use that instead
                                                if echo $track_ip | grep -q ':'; then
-                                                       ADDR=$(ip -6 addr ls dev "$DEVICE" | sed -ne '/\/128/d' -e 's/ *inet6 \([^ \/]*\).* scope global.*/\1/p')
+                                                       ADDR=$(ip -6 addr ls dev "$DEVICE" | sed -ne '/\/128/d' -e 's/ *inet6 \([^ \/]*\).* scope global.*/\1/p' | head -n1)
+                                                       [ -z "$ADDR" ] && ADDR=$(ip -6 addr ls dev "$DEVICE" | sed -ne 's/ *inet6 \([^ \/]*\).* scope global.*/\1/p')
+                                                       ping_protocol=6
                                                fi
                                                if [ $check_quality -eq 0 ]; then
-                                                       ping -I ${ADDR:-$DEVICE} -c $count -W $timeout -s $size -t $max_ttl -q $track_ip &> /dev/null
+                                                       $PING -$ping_protocol -I ${ADDR:-$DEVICE} -c $count -W $timeout -s $size -t $max_ttl -q $track_ip &> /dev/null
                                                        result=$?
                                                else
-                                                       ping_result="$(ping -I ${ADDR:-$DEVICE} -c $count -W $timeout -s $size -t $max_ttl -q $track_ip | tail -2)"
+                                                       ping_result_raw="$($PING -$ping_protocol -I ${ADDR:-$DEVICE} -c $count -W $timeout -s $size -t $max_ttl -q $track_ip 2>/dev/null)"
+                                                       ping_status=$?
+                                                       ping_result=$(echo "$ping_result_raw" | tail -n2)
                                                        loss="$(echo "$ping_result" | grep "packet loss" |  cut -d "," -f3 | awk '{print $1}' | sed -e 's/%//')"
-                                                       if [ "$loss" -eq 100 ]; then
+                                                       if [ "$ping_status" -ne 0 ] || [ "$loss" -eq 100 ]; then
                                                                latency=999999
+                                                               loss=100
                                                        else
                                                                latency="$(echo "$ping_result" | grep -E 'rtt|round-trip' | cut -d "=" -f2 | cut -d "/" -f2 | cut -d "." -f1)"
                                                        fi
index 642803f692d6c9e2b23dc38400e4ab5047f69cbb..913c677c9f826beeaee1347ea502c2365a854352 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nextdns
-PKG_VERSION:=1.6.3
-PKG_RELEASE:=2
+PKG_VERSION:=1.7.0
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/nextdns/nextdns.git
-PKG_MIRROR_HASH:=104ec2ffe21f1f1770bce7686e4f117019dfc64f3f6bfd8f8f06cfc1ff44da6d
+PKG_MIRROR_HASH:=91d812b406abee2a0e733b7cbc06d0d2f04a60bb3694477ac2d2a68fd8b8be5d
 
 PKG_MAINTAINER:=Olivier Poitrey <rs@nextdns.io>
 PKG_LICENSE:=MIT
@@ -49,13 +49,24 @@ define Package/nextdns/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nextdns $(1)/usr/sbin/
 
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/nextdns.init $(1)/etc/init.d/nextdns
-
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/nextdns.config $(1)/etc/config/nextdns
 endef
 
+define Package/nextdns/postinst
+#!/bin/sh
+if [ -z "$${IPKG_INSTROOT}" ]; then
+  nextdns install
+fi
+endef
+
+define Package/nextdns/prerm
+#!/bin/sh
+if [ -z "$${IPKG_INSTROOT}" ]; then
+  nextdns uninstall
+fi
+endef
+
 define Package/nextdns/description
   Official NextDNS DNS over HTTPS Proxy.
 endef
index 7e34291bf6eca54992a025cde9aa598e4af603f8..7e9e1d7d2b12fc238d6e26862b4b06e1c135c58f 100644 (file)
@@ -16,9 +16,8 @@ config nextdns main
     #list host_config '10.0.1.2/32=abc123'
     #list host_config '10.0.3.0/24=def321'
 
-    # Listen on a custom local port so a DNS front (like dnsmasq) can use us as
-    # a forwarder.
-    option listen '127.0.0.1:5342'
+    # Configure NextDNS cli client to serve DNS to other clients on the network.
+    option setup_router '1'
 
     # Expose LAN clients information in NextDNS analytics.
     option report_client_info '1'
diff --git a/net/nextdns/files/nextdns.init b/net/nextdns/files/nextdns.init
deleted file mode 100644 (file)
index 789f7d9..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh /etc/rc.common
-
-# shellcheck disable=SC2034 disable=SC2154
-
-USE_PROCD=1
-
-# starts after network starts
-START=21
-# stops before networking stops
-STOP=89
-
-PROG=/usr/sbin/nextdns
-
-add_dnsmasq_opt() {
-        mkdir -p /tmp/dnsmasq.d
-        echo "$1" >> /tmp/dnsmasq.d/nextdns.conf
-}
-
-dnsmasq_reload() {
-        # Reload dnsmasq is already running.
-        if /etc/init.d/dnsmasq running; then
-                /etc/init.d/dnsmasq reload
-        fi
-}
-
-handle_host_config() {
-    host_config_args="$host_config_args -config=$1"
-}
-
-start_service() {
-        config_load nextdns
-        config_get_bool enabled main enabled "1"
-        rm -f /tmp/dnsmasq.d/nextdns.conf
-        if [ "$enabled" = "1" ]; then
-                config_get config main config ""
-                config_list_foreach main host_config handle_host_config
-                config_get listen main listen "127.0.0.1:5342"
-                config_get_bool report_client_info main report_client_info "1"
-                config_get_bool hardened_privacy main hardened_privacy "0"
-                config_get_bool log_queries main log_queries "0"
-
-                # Add a custom configuration for dnsmasq.
-                server=$(echo "$listen" | sed -e 's/:/#/')
-                add_dnsmasq_opt "server=$server"
-                add_dnsmasq_opt "no-resolv"
-                if [ "$report_client_info" = "1" ]; then
-                        add_dnsmasq_opt "add-mac"
-                        add_dnsmasq_opt "add-subnet=32,128"
-                fi
-
-                procd_open_instance
-                # shellcheck disable=SC2086
-                procd_set_param command "$PROG" run \
-                        -listen="$listen" \
-                        $host_config_args \
-                        -config="$config" \
-                        -report-client-info="$report_client_info" \
-                        -hardened-privacy="$hardened_privacy" \
-                        -log-queries="$log_queries"
-                procd_set_param stdout 1
-                procd_set_param stderr 1
-                procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
-                procd_close_instance
-        fi
-
-        dnsmasq_reload
-}
-
-stop_service() {
-        rm -f /tmp/dnsmasq.d/nextdns.conf
-        dnsmasq_reload
-}
-
-service_triggers() {
-        procd_add_reload_trigger "nextdns"
-}
index 084436067e91c9dec449b30b123f98470bc435c6..38bd987c53638a6b2774a0b0b81b30710fd57ed1 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nginx
-PKG_VERSION:=1.17.10
-PKG_RELEASE:=4
+PKG_VERSION:=1.19.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://nginx.org/download/
-PKG_HASH:=a9aa73f19c352a6b166d78e2a664bb3ef1295bbe6d3cc5aa7404bd4664ab4b83
+PKG_HASH:=44a616171fcd7d7ad7c6af3e6f3ad0879b54db5a5d21be874cd458b5691e36c8
 
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de> \
                                Ansuel Smith <ansuelsmth@gmail.com>
index 648ade267e890a4cceee6f420ecbf4053d03b405..541124a43dc1100d9d45f86a15bc9c8929972c0e 100644 (file)
@@ -14,7 +14,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nmap
 PKG_VERSION:=7.80
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
diff --git a/net/nmap/patches/030-libcxx.patch b/net/nmap/patches/030-libcxx.patch
new file mode 100644 (file)
index 0000000..c28aeea
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/nmap_error.cc
++++ b/nmap_error.cc
+@@ -134,6 +134,7 @@
+ #include "NmapOps.h"
+ #include "xml.h"
++#include <ctime>
+ #include <errno.h>
+ #if TIME_WITH_SYS_TIME
+ # include <sys/time.h>
+--- a/nping/EchoServer.cc
++++ b/nping/EchoServer.cc
+@@ -137,6 +137,7 @@
+ #include "NpingOps.h"
+ #include "ProbeMode.h"
+ #include <signal.h>
++#include <ctime>
+ extern NpingOps o;
+ extern EchoServer es;
index 291b06a35790679ac9947174cc6e3c7824359172..322600b60ee57cc8f5e8043c3e4c02a90fc9e5b2 100644 (file)
@@ -65,6 +65,12 @@ HOST_CONFIGURE_ARGS += \
        --disable-doxygen-html \
        --disable-doxygen-doc
 
+HOST_CPPFLAGS += \
+       -std=gnu++11
+
+CONFIGURE_VARS += \
+       require_gnu_plus_plus_11=yes
+
 HOST_LDFLAGS += -Wl,-rpath="$(STAGING_DIR_HOSTPKG)/lib"
 TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lm)
 
diff --git a/net/ola/patches/050-always-force-gnu++11.patch b/net/ola/patches/050-always-force-gnu++11.patch
deleted file mode 100644 (file)
index 2e0f396..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-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 996edaa8ae91ce07211bccb02c26d0eae062dac0..73bb315ed3644cd37aa21729bd3a434bdd79e142 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openconnect
-PKG_VERSION:=8.09
+PKG_VERSION:=8.10
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
-PKG_HASH:=f39802be4c3a099b211ee4cc3318b3a9a195075deab0b4c1c5880c69340ce9a6
+PKG_HASH:=30e64c6eca4be47bbf1d61f53dc003c6621213738d4ea7a35e5cf1ac2de9bab1
 
 PKG_LICENSE:=LGPL-2.1-or-later
 PKG_LICENSE_FILES:=COPYING.LGPL
index 4268bf95e9e3765ecd270a49c3626317b26673fb..d8189799582cf59d541bf8f0f48cd8f8d820abec 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openfortivpn
-PKG_VERSION:=1.13.2
+PKG_VERSION:=1.14.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/adrienverge/openfortivpn/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=998fb2b071cdfe3255c2f953cafc6e1496778f9a71dd5aa560b924a44636df87
+PKG_HASH:=bc62fc6ecaaa6c6f8f2510e14a067a0cb9762158d9460c04555990bba44b50ca
 
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
 PKG_LICENSE:=GPL-3.0-or-later OpenSSL
@@ -32,7 +32,7 @@ define Package/openfortivpn
   CATEGORY:=Network
   TITLE:=Fortinet SSL VPN client
   URL:=https://github.com/adrienverge/openfortivpn
-  DEPENDS:=+ppp +libopenssl
+  DEPENDS:=+ppp +libopenssl +resolveip
 endef
 
 define Package/openfortivpn/description
@@ -50,19 +50,16 @@ CONFIGURE_ARGS += \
 
 TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
 
-define Package/openfortivpn/conffiles
-/etc/config/openfortivpn
-endef
-
 define Package/openfortivpn/install
        $(INSTALL_DIR) \
          $(1)/usr/sbin \
-         $(1)/etc/config \
-         $(1)/etc/init.d
+          $(1)/lib/netifd/proto \
+         $(1)/etc/hotplug.d/iface
 
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/openfortivpn $(1)/usr/sbin/
-       $(INSTALL_DATA) ./files/openfortivpn.config $(1)/etc/config/openfortivpn
-       $(INSTALL_BIN) ./files/openfortivpn.init $(1)/etc/init.d/openfortivpn
+       $(INSTALL_BIN) ./files/openfortivpn-wrapper $(1)/usr/sbin/
+       $(INSTALL_BIN) ./files/openfortivpn.sh $(1)/lib/netifd/proto/
+       $(INSTALL_BIN) ./files/14-openforticlient $(1)/etc/hotplug.d/iface/
 endef
 
 $(eval $(call BuildPackage,openfortivpn))
diff --git a/net/openfortivpn/files/14-openforticlient b/net/openfortivpn/files/14-openforticlient
new file mode 100644 (file)
index 0000000..336e05a
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+. /usr/share/libubox/jshn.sh
+[ "$ACTION" != ifup ] && exit
+
+networks=$(uci show network | sed "s/network.\([^.]*\).proto='openfortivpn'/\1/;t;d")
+for i in $networks; do
+    iface=$(uci get "network.${i}.iface_name")
+    iface_success=$?
+    [ $? -eq 0 ] && [ $INTERFACE == "$iface" ] && {
+        logger -t "openfortivpnhotplug" "$ACTION on $INTERFACE to bring up $i"
+        json_load "$(ifstatus $i)"
+        json_get_var autostart autostart
+       [ "$autostart" -eq 0 ] && {
+            logger -t "openfortivpnhotplug" "auto-start was false. bringing $i up"
+            ubus call network.interface up "{ \"interface\" : \"$i\" }"
+        }
+    }
+done
diff --git a/net/openfortivpn/files/openfortivpn-wrapper b/net/openfortivpn/files/openfortivpn-wrapper
new file mode 100755 (executable)
index 0000000..a64d94d
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# This script wraps openfortivpn in order to obtain the password
+# file from cmd and to daemonize
+
+# $1 password file
+# $2... are passed to openconnect
+
+test -z "$1" && exit 1
+
+pwfile=$1
+shift
+exec /usr/sbin/openfortivpn "$@" < $pwfile
\ No newline at end of file
diff --git a/net/openfortivpn/files/openfortivpn.config b/net/openfortivpn/files/openfortivpn.config
deleted file mode 100644 (file)
index 108e3eb..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-config service 'openfortivpn'
-    option 'enabled' '0'
-    option 'host' 'vpn-gateway'
-    option 'port' '10443'
-    option 'set_routes' '0'
-    option 'set_dns' '0'
-    option 'pppd_use_peerdns' '0'
-    option 'username' 'foo'
-    option 'password' 'bar'
-config 'certs'
-# example X509 certificate sha256 sum, trust only defined one(s)!
-    option 'trusted_cert' 'e46d4aff08ba6914e64daa85bc6112a422fa7ce16631bff0b592a28556f993db'
diff --git a/net/openfortivpn/files/openfortivpn.init b/net/openfortivpn/files/openfortivpn.init
deleted file mode 100644 (file)
index e9fdc20..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh /etc/rc.common
-
-START=99
-USE_PROCD=1
-BIN=/usr/sbin/openfortivpn
-CONFIG=/var/etc/openfortivpn.config
-
-
-validate_certs_section() {
-       uci_load_validate openfortivpn certs "$1" "$2" \
-               'trusted_cert:string'
-}
-
-validate_openfortivpn_section() {
-       uci_load_validate openfortivpn service "$1" "$2" \
-               'enabled:uinteger' \
-               'host:string' \
-               'port:uinteger' \
-               'username:string' \
-               'password:string' \
-               'set_routes:uinteger' \
-               'set_dns:uinteger' \
-               'pppd_use_peerdns:uinteger'
-}
-
-setup_certs() {
-       [ "$2" = 0 ] || {
-               echo "validation failed"
-               return 1
-       }
-
-       [ -n "$trusted_cert" ] || return 0
-       echo "trusted-cert = $trusted_cert" >> $CONFIG
-}
-
-setup_config() {
-       [ "$2" = 0 ] || {
-               echo "validation failed"
-               return 1
-       }
-
-       [ "$enabled" -eq 0 ] && return 1
-
-       mkdir -p /var/etc
-       echo '# auto-generated config file from /etc/config/openfortivpn' > $CONFIG
-
-       [ -n "$host" ] && echo "host =  $host" >> $CONFIG
-       [ -n "$port" ] && echo "port =  $port" >> $CONFIG
-       [ -n "$username" ] && echo "username =  $username" >> $CONFIG
-       [ -n "$password" ] && echo "password =  $password" >> $CONFIG
-       [ -n "$set_routes" ] && echo "set-routes = $set_routes" >> $CONFIG
-       [ -n "$set_dns" ] && echo "set-dns = $set_dns" >> $CONFIG
-       [ -n "$pppd_use_peerdns" ] && echo "pppd-use-peerdns = $pppd_use_peerdns" >> $CONFIG
-       return 0
-}
-
-start_service() {
-       config_load openfortivpn
-       validate_openfortivpn_section openfortivpn setup_config || return
-       config_foreach validate_certs_section certs setup_certs
-
-       procd_open_instance
-       procd_set_param stderr 1
-       procd_set_param command $BIN -c $CONFIG --use-syslog
-       procd_close_instance
-}
-
-service_triggers () {
-       procd_add_reload_trigger "openfortivpn"
-
-       procd_open_validate
-       validate_openfortivpn_section
-       validate_certs_section
-       procd_close_validate
-}
diff --git a/net/openfortivpn/files/openfortivpn.sh b/net/openfortivpn/files/openfortivpn.sh
new file mode 100755 (executable)
index 0000000..292ffd4
--- /dev/null
@@ -0,0 +1,144 @@
+#!/bin/sh
+. /lib/functions.sh
+. ../netifd-proto.sh
+init_proto "$@"
+
+append_args() {
+        while [ $# -gt 0 ]; do
+                append cmdline "'${1//\'/\'\\\'\'}'"
+                shift
+        done
+}
+
+proto_openfortivpn_init_config() {
+        proto_config_add_string "server"
+        proto_config_add_int "port"
+        proto_config_add_string "iface_name"
+        proto_config_add_string "local_ip"
+        proto_config_add_string "username"
+        proto_config_add_string "password"
+        proto_config_add_string "trusted_cert"
+        proto_config_add_int "set_dns"
+        proto_config_add_int "pppd_use_peerdns"
+        proto_config_add_int "metric"
+        no_device=1
+        available=1
+}
+
+proto_openfortivpn_setup() {
+        local config="$1"
+
+        json_get_vars host server port iface_name local_ip username password trusted_cert set_dns pppd_use_peerdns metric
+
+        ifname="vpn-$config"
+
+        logger -t openfortivpn "$config: initializing..."
+
+        [ -n "$iface_name" ] && {
+            json_load "$(ifstatus $iface_name)"
+            json_get_var iface_device_name device
+            json_get_var iface_device_up up
+        }
+
+        logger -t "openfortivpn" "$config: $iface_name is status  $iface_device_up"
+        [ "$iface_device_up" -eq 1 ] || {
+            logger -t "openfortivpn" "$config: $iface_name is not up $iface_device_up"
+            proto_notify_error "$config" "$iface_name is not up $iface_device_up"
+            proto_block_restart "$config"
+            exit 1
+        }
+
+
+        server_ip=$(resolveip -t 10 "$server")
+
+        [ $? -eq 0 ] || {
+            logger -t "openfortivpn" "$config: failed to resolve server ip for $server"
+            sleep 10
+            proto_notify_error "$config" "failed to resolve server ip for $server"
+            proto_setup_failed "$config"
+            exit 1
+        }
+
+        [ -n $iface_name ] && {
+            ping -I $iface_device_name -c 1 -w 10 $server_ip > /dev/null 2>&1 || {
+                logger -t "openfortivpn" "$config: failed to ping $server_ip on $iface_device_name"
+                sleep 10
+                proto_notify_error  "$config" "failed to ping $server_ip on $iface_device_name"
+                proto_setup_failed "$config"
+                exit 1
+            }
+        }
+
+        for ip in $(resolveip -t 10 "$server"); do
+                logger -t "openfortivpn" "$config: adding host dependency for $ip on $iface_name at $config"
+                proto_add_host_dependency "$config" "$ip" "$iface_name"
+        done
+
+
+
+        [ -n "$port" ] && port=":$port"
+
+        append_args "$server$port" --pppd-ifname="$ifname" --use-syslog  -c /dev/null
+        append_args "--set-dns=$set_dns"
+        append_args "--no-routes"
+        append_args "--pppd-use-peerdns=$pppd_use_peerdns"
+
+        [ -n "$iface_name" ] && {
+            append_args "--ifname=$iface_device_name"
+        }
+
+        [ -n "$trusted_cert" ] && append_args "--trusted-cert=$trusted_cert"
+        [ -n "$username" ] && append_args -u "$username"
+        [ -n "$password" ] && {
+                umask 077
+                mkdir -p /var/etc
+                pwfile="/var/etc/openfortivpn/$config.passwd"
+                echo "$password" > "$pwfile"
+        }
+
+        [ -n "$local_ip" ] || local_ip=192.0.2.1
+        [ -e '/etc/ppp/peers' ] || mkdir -p '/etc/ppp/peers'
+        [ -e '/etc/ppp/peers/openfortivpn' ] || {
+            ln -s -T '/var/etc/openfortivpn/peers' '/etc/ppp/peers/openfortivpn'
+            mkdir -p '/var/etc/openfortivpn/peers'
+        }
+
+        callfile="/var/etc/openfortivpn/peers/$config"
+        echo "115200
+:$local_ip
+noipdefault
+noaccomp
+noauth
+default-asyncmap
+nopcomp
+receive-all
+defaultroute
+nodetach
+ipparam $config
+lcp-max-configure 40
+ip-up-script /lib/netifd/ppp-up
+ip-down-script /lib/netifd/ppp-down
+mru 1354"  > $callfile
+        append_args "--pppd-call=openfortivpn/$config"
+
+        proto_export INTERFACE="$ifname"
+        logger -t openfortivpn "$config: executing 'openfortivpn $cmdline'"
+        logger -t openfortivpn "$config: metric is  $metric"
+
+        eval "proto_run_command '$config' /usr/sbin/openfortivpn-wrapper '$pwfile' $cmdline"
+
+}
+
+proto_openfortivpn_teardown() {
+        local config="$1"
+
+        pwfile="/var/etc/openfortivpn/$config.passwd"
+        callfile="/var/etc/openfortivpn/peers/$config"
+
+        rm -f $pwfile
+        rm -f $callfile
+        logger -t openfortivpn "$config: bringing down openfortivpn"
+        proto_kill_command "$config" 2
+}
+
+add_protocol openfortivpn
diff --git a/net/openfortivpn/patches/010-bind-iface.patch b/net/openfortivpn/patches/010-bind-iface.patch
new file mode 100644 (file)
index 0000000..76bc8c8
--- /dev/null
@@ -0,0 +1,182 @@
+--- a/doc/openfortivpn.1.in
++++ b/doc/openfortivpn.1.in
+@@ -12,6 +12,7 @@ openfortivpn \- Client for PPP+SSL VPN t
+ [\fB\-\-otp\-prompt=\fI<prompt>\fR]
+ [\fB\-\-otp\-delay=\fI<delay>\fR]
+ [\fB\-\-realm=\fI<realm>\fR]
++[\fB\-\-ifname=\fI<interface>\fR]
+ [\fB\-\-set\-routes=<bool>\fR]
+ [\fB\-\-no\-routes\fR]
+ [\fB\-\-set\-dns=<bool>\fR]
+@@ -83,6 +84,9 @@ no wait (this is the default).
+ Connect to the specified authentication realm. Defaults to empty, which
+ is usually what you want.
+ .TP
++\fB\-\-ifname=\fI<interface>\fR
++Bind the connection to the specified network interface.
++.TP
+ \fB\-\-set\-routes=\fI<bool>\fR, \fB\-\-no-routes\fR
+ Set if openfortivpn should try to configure IP routes through the VPN when
+ tunnel is up. If used multiple times, the last one takes priority.
+--- a/src/config.c
++++ b/src/config.c
+@@ -50,6 +50,7 @@ const struct vpn_config invalid_cfg = {
+       .otp_delay = -1,
+       .pinentry = NULL,
+       .realm = {'\0'},
++      .iface_name = {'\0'},
+       .set_routes = -1,
+       .set_dns = -1,
+       .pppd_use_peerdns = -1,
+@@ -490,6 +491,8 @@ void merge_config(struct vpn_config *dst
+       }
+       if (src->realm[0])
+               strcpy(dst->realm, src->realm);
++      if (src->iface_name[0])
++              strcpy(dst->iface_name, src->iface_name);
+       if (src->set_routes != invalid_cfg.set_routes)
+               dst->set_routes = src->set_routes;
+       if (src->set_dns != invalid_cfg.set_dns)
+--- a/src/config.h
++++ b/src/config.h
+@@ -86,6 +86,7 @@ struct vpn_config {
+       char            *otp_prompt;
+       unsigned int  otp_delay;
+       char            *pinentry;
++      char            iface_name[FIELD_SIZE + 1];
+       char            realm[FIELD_SIZE + 1];
+       int     set_routes;
+--- a/src/main.c
++++ b/src/main.c
+@@ -51,16 +51,16 @@
+ "                                resolver and routes directly.\n" \
+ "  --pppd-ifname=<string>        Set the pppd interface name, if supported by pppd.\n" \
+ "  --pppd-ipparam=<string>       Provides an extra parameter to the ip-up, ip-pre-up\n" \
+-"                                and ip-down scripts. See man (8) pppd\n" \
++"                                and ip-down scripts. See man (8) pppd.\n" \
+ "  --pppd-call=<name>            Move most pppd options from pppd cmdline to\n" \
+ "                                /etc/ppp/peers/<name> and invoke pppd with\n" \
+-"                                'call <name>'\n"
++"                                'call <name>'.\n"
+ #elif HAVE_USR_SBIN_PPP
+ #define PPPD_USAGE \
+ "                    [--ppp-system=<system>]\n"
+ #define PPPD_HELP \
+ "  --ppp-system=<system>         Connect to the specified system as defined in\n" \
+-"                                /etc/ppp/ppp.conf\n"
++"                                /etc/ppp/ppp.conf.\n"
+ #else
+ #error "Neither HAVE_USR_SBIN_PPPD nor HAVE_USR_SBIN_PPP have been defined."
+ #endif
+@@ -69,7 +69,7 @@
+ #define RESOLVCONF_USAGE \
+ "[--use-resolvconf=<0|1>] "
+ #define RESOLVCONF_HELP \
+-"  --use-resolvconf=[01]         If possible use resolvconf to update /etc/resolv.conf\n"
++"  --use-resolvconf=[01]         If possible use resolvconf to update /etc/resolv.conf.\n"
+ #else
+ #define RESOLVCONF_USAGE ""
+ #define RESOLVCONF_HELP ""
+@@ -77,14 +77,14 @@
+ #define usage \
+ "Usage: openfortivpn [<host>[:<port>]] [-u <user>] [-p <pass>]\n" \
+-"                    [--pinentry=<program>]\n" \
+-"                    [--realm=<realm>] [--otp=<otp>] [--otp-delay=<delay>]\n" \
+-"                    [--otp-prompt=<prompt>] [--set-routes=<0|1>]\n" \
++"                    [--otp=<otp>] [--otp-delay=<delay>] [--otp-prompt=<prompt>]\n" \
++"                    [--pinentry=<program>] [--realm=<realm>]\n" \
++"                    [--ifname=<ifname>] [--set-routes=<0|1>]\n" \
+ "                    [--half-internet-routes=<0|1>] [--set-dns=<0|1>]\n" \
+ PPPD_USAGE \
+ "                    " RESOLVCONF_USAGE "[--ca-file=<file>]\n" \
+ "                    [--user-cert=<file>] [--user-key=<file>]\n" \
+-"                    [--trusted-cert=<digest>] [--use-syslog]\n" \
++"                    [--use-syslog] [--trusted-cert=<digest>]\n" \
+ "                    [--persistent=<interval>] [-c <file>] [-v|-q]\n" \
+ "       openfortivpn --help\n" \
+ "       openfortivpn --version\n" \
+@@ -115,10 +115,11 @@ PPPD_USAGE \
+ "  -u <user>, --username=<user>  VPN account username.\n" \
+ "  -p <pass>, --password=<pass>  VPN account password.\n" \
+ "  -o <otp>, --otp=<otp>         One-Time-Password.\n" \
+-"  --otp-prompt=<prompt>         Search for the OTP prompt starting with this string\n" \
++"  --otp-prompt=<prompt>         Search for the OTP prompt starting with this string.\n" \
+ "  --otp-delay=<delay>           Wait <delay> seconds before sending the OTP.\n" \
+-"  --pinentry=<program>          Use the program to supply a secret instead of asking for it\n" \
++"  --pinentry=<program>          Use the program to supply a secret instead of asking for it.\n" \
+ "  --realm=<realm>               Use specified authentication realm.\n" \
++"  --ifname=<interface>          Bind to interface.\n" \
+ "  --set-routes=[01]             Set if openfortivpn should configure routes\n" \
+ "                                when tunnel is up.\n" \
+ "  --no-routes                   Do not configure routes, same as --set-routes=0.\n" \
+@@ -127,7 +128,7 @@ PPPD_USAGE \
+ "  --set-dns=[01]                Set if openfortivpn should add DNS name servers\n" \
+ "                                and domain search list in /etc/resolv.conf.\n" \
+ "                                If installed resolvconf is used for the update.\n" \
+-"  --no-dns                      Do not reconfigure DNS, same as --set-dns=0\n" \
++"  --no-dns                      Do not reconfigure DNS, same as --set-dns=0.\n" \
+ "  --ca-file=<file>              Use specified PEM-encoded certificate bundle\n" \
+ "                                instead of system-wide store to verify the gateway\n" \
+ "                                certificate.\n" \
+@@ -199,6 +200,7 @@ int main(int argc, char **argv)
+               .otp_delay = 0,
+               .pinentry = NULL,
+               .realm = {'\0'},
++              .iface_name = {'\0'},
+               .set_routes = 1,
+               .set_dns = 1,
+               .use_syslog = 0,
+@@ -245,6 +247,7 @@ int main(int argc, char **argv)
+               {"otp",             required_argument, NULL, 'o'},
+               {"otp-prompt",      required_argument, NULL, 0},
+               {"otp-delay",       required_argument, NULL, 0},
++              {"ifname",          required_argument, NULL, 0},
+               {"set-routes",      required_argument, NULL, 0},
+               {"no-routes",       no_argument, &cli_cfg.set_routes, 0},
+               {"half-internet-routes", required_argument, NULL, 0},
+@@ -427,6 +430,12 @@ int main(int argc, char **argv)
+                               break;
+                       }
+                       if (strcmp(long_options[option_index].name,
++                                 "ifname") == 0) {
++                              strncpy(cli_cfg.iface_name, optarg, FIELD_SIZE);
++                              cli_cfg.iface_name[FIELD_SIZE] = '\0';
++                              break;
++                      }
++                      if (strcmp(long_options[option_index].name,
+                                  "set-routes") == 0) {
+                               int set_routes = strtob(optarg);
+--- a/src/tunnel.c
++++ b/src/tunnel.c
+@@ -523,12 +523,28 @@ static int tcp_connect(struct tunnel *tu
+       int ret, handle;
+       struct sockaddr_in server;
+       char *env_proxy;
++      const int iface_len = strnlen(tunnel->config->iface_name, IFNAMSIZ);
+       handle = socket(AF_INET, SOCK_STREAM, 0);
++
+       if (handle == -1) {
+               log_error("socket: %s\n", strerror(errno));
+               goto err_socket;
+       }
++      if (iface_len == IFNAMSIZ) {
++              log_error("socket: Too long iface name");
++              goto err_socket;
++      }
++      if (iface_len > 0) {
++              ret = setsockopt(handle, SOL_SOCKET, SO_BINDTODEVICE,
++                               tunnel->config->iface_name, iface_len);
++              if (ret) {
++                      log_error("socket: setting interface name failed with error: %d",
++                                errno);
++                      goto err_socket;
++              }
++      }
++
+       env_proxy = getenv("https_proxy");
+       if (env_proxy == NULL)
+               env_proxy = getenv("HTTPS_PROXY");
index 2e9302d001471a5125ac48d2ba76024302fbee35..36f47e72ac1262661e6ad24bedab4450f5aa209c 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openssh
 PKG_VERSION:=8.2p1
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
@@ -149,7 +149,7 @@ define Package/openssh-sftp-avahi-service/conffiles
 /etc/avahi/services/sftp-ssh.service
 endef
 
-CONFIGURE_ARGS+= \
+CONFIGURE_ARGS += \
        $(DISABLE_NLS) \
        --sysconfdir=/etc/ssh \
        --with-privsep-user=sshd \
@@ -166,7 +166,9 @@ CONFIGURE_ARGS+= \
        --disable-wtmpx \
        --without-bsd-auth \
        --without-kerberos5 \
-       --without-x
+       --without-x \
+       --with-stackprotect \
+       --with$(if $(CONFIG_OPENSSL_ENGINE),,out)-ssl-engine
 
 ifeq ($(BUILD_VARIANT),with-pam)
 CONFIGURE_ARGS += \
@@ -176,16 +178,6 @@ CONFIGURE_ARGS += \
        --without-pam
 endif
 
-ifeq ($(CONFIG_OPENSSL_ENGINE),y)
-CONFIGURE_ARGS+= \
-       --with-ssl-engine
-endif
-
-ifneq ($(CONFIG_SSP_SUPPORT),y)
-CONFIGURE_ARGS += \
-       --without-stackprotect
-endif
-
 CONFIGURE_VARS += LD="$(TARGET_CC)"
 
 ifeq ($(BUILD_VARIANT),with-pam)
index 642d063f8ab7f1ba54702c48191b9262797ac87d..671b9de3a21039e51b4e5343e9c2dc6410702260 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=overture
-PKG_VERSION:=1.6
+PKG_VERSION:=1.6.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/shawn1m/overture/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=a7a568cc65f2a1714f036c555b95d3be27234b98ae951cb748198fecce1bb1e4
+PKG_HASH:=916ddbc4e8ee3cd008e281ba768c1502ad7b3ad71073f5e587b187e371eedd2b
 
 PKG_MAINTAINER:=Richard Yu <yurichard3839@gmail.com>
 PKG_LICENSE:=MIT
@@ -18,6 +18,7 @@ PKG_USE_MIPS16:=0
 
 GO_PKG:=github.com/shawn1m/overture
 GO_PKG_BUILD_PKG:=$(GO_PKG)/main
+GO_PKG_LDFLAGS_X:=main.version=$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 include ../../lang/golang/golang-package.mk
@@ -35,16 +36,21 @@ define Package/overture/description
   Overture is a DNS server/forwarder/dispatcher written in Go.
 endef
 
+define Package/overture/conffiles
+/etc/overture/
+endef
+
 define Package/overture/install
        $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
 
-       $(INSTALL_DIR) $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/main $(1)/usr/bin/$(PKG_NAME)
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)/
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/config.sample.json $(1)/etc/$(PKG_NAME)/config.json
-       $(INSTALL_DATA) ./files/*_sample $(1)/etc/$(PKG_NAME)/
-       $(INSTALL_DIR) $(1)/etc/init.d/
-       $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/main $(1)/usr/bin/overture
+       $(INSTALL_DIR) $(1)/etc/overture
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/config.sample.json $(1)/etc/overture/config.json
+       $(SED) 's@"\.\(/[^"]\{1,\}_sample\)"@"/etc/overture\1"@g;s/":53"/"127.0.0.3:53"/' $(1)/etc/overture/config.json
+       $(INSTALL_DATA) ./files/*_sample $(1)/etc/overture
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/overture.init $(1)/etc/init.d/overture
 endef
 
 $(eval $(call GoBinPackage,overture))
index 5fd6bebcbe1c3e148f05e7bc883d2f401b9cd5c4..c74222922d881d57a2ed25da9fc1d1f725427fbd 100644 (file)
@@ -9,13 +9,13 @@ include $(INCLUDE_DIR)/kernel.mk
 include ../openvswitch/openvswitch.mk
 
 PKG_NAME:=ovn
-PKG_VERSION:=20.03.0
+PKG_VERSION:=20.06.0
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/ovn-org/ovn.git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-PKG_MIRROR_HASH:=8d1cf00ce563bfeea72f5a5f86d82df07f762133b0ac7661a625b637b02e410a
+PKG_MIRROR_HASH:=06236ee393a64e1a7d400a12379acdcc58ae55ee1e6fe9e9475646f2bcb9d03d
 
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
index a58087e1481df9970ce23bc7064258d7c70ce62c..f9b359e7b41705818c95da6fd04369b50dfe09af 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pdns-recursor
-PKG_VERSION:=4.2.1
-PKG_RELEASE:=2
+PKG_VERSION:=4.2.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
-PKG_HASH:=8d8c3235cc5281f0fc51946129f22758778f4c50bfda095d5856feb4c756891f
+PKG_HASH:=9502de8ab7dde3fe5ecb3dea0f6dd8f9c96ca5e09b06f3d58d2f123abf6f7204
 
 PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
 PKG_LICENCE:=GPL-2.0-only
index b8d767cde1e4aba047884dbe5a3ed12fe6413c6f..60129acf37ed87ccfa8a271ae04e26f135884db7 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pdns
-PKG_VERSION:=4.2.1
-PKG_RELEASE:=3
+PKG_VERSION:=4.2.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
-PKG_HASH:=f65019986b8fcbb1c6fffebcded04b2b397b84395830f4c63e8d119bcfa1aa28
+PKG_HASH:=3a1b524b9cecd1a38fdc2e71082d9f52471d22735113a890016ff48baee16b15
 
 PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
 PKG_LICENCE:=GPL-2.0-only
index cff70a7a4810b3f382b4f7c3ed98f801d33fdc3c..e93ebf47aadaade53738e464af69a2092ee14907 100644 (file)
@@ -8,16 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rp-pppoe
-PKG_VERSION:=3.12
-PKG_RELEASE:=7
-PKG_LICENSE:=LGPL-2.0-or-later
-PKG_CPE_ID:=cpe:/a:roaring_penguin:pppoe
+PKG_VERSION:=3.14
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://roaringpenguin.com/files/download
-PKG_HASH:=00794e04031546b0e9b8cf286f2a6d1ccfc4a621b2a3abb2d7ef2a7ab7cc86c2
+PKG_SOURCE_URL:=https://dianne.skoll.ca/projects/rp-pppoe/download
+PKG_HASH:=7825232f64ab4d618ef074d62d145ae43d6edc91b9a718c6130a4742bac40e2a
+
+PKG_MAINTAINER:=
+PKG_LICENSE:=LGPL-2.0-or-later
+PKG_LICENSE_FILES:=doc/LICENSE
+PKG_CPE_ID:=cpe:/a:roaring_penguin:pppoe
 
 PKG_BUILD_DEPENDS:=ppp
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -25,7 +29,7 @@ define Package/rp-pppoe/Default
   SECTION:=net
   CATEGORY:=Network
   TITLE:=PPPoE (PPP over Ethernet)
-  URL:=http://roaringpenguin.com/products/pppoe
+  URL:=https://dianne.skoll.ca/projects/rp-pppoe/
   SUBMENU:=Dial-in/up
 endef
 
@@ -99,7 +103,7 @@ $(call Package/rp-pppoe/Default/description)
  This package contains pppoe-sniff.
 endef
 
-TARGET_CFLAGS += -I$(PKG_BUILD_DIR)/src/libevent -isystem $(PKG_BUILD_DIR)/missing-headers
+TARGET_CFLAGS += -I$(PKG_BUILD_DIR)/src/libevent -isystem $(PKG_BUILD_DIR)/missing-headers -D_BSD_SOURCE
 CONFIGURE_PATH := ./src
 CONFIGURE_ARGS += ac_cv_path_PPPD=/usr/sbin/pppd --enable-plugin=$(STAGING_DIR)/usr/include/
 MAKE_FLAGS := DESTDIR="$(PKG_INSTALL_DIR)" PLUGIN_PATH=rp-pppoe.so install
diff --git a/net/rp-pppoe/patches/100-configure.patch b/net/rp-pppoe/patches/100-configure.patch
deleted file mode 100644 (file)
index a109c08..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
---- a/src/configure
-+++ b/src/configure
-@@ -3691,7 +3691,7 @@ done
- for ac_header in linux/if.h
- do :
--  ac_fn_c_check_header_compile "$LINENO" "linux/if.h" "ac_cv_header_linux_if_h" "#include<sys/socket.h>
-+  ac_fn_c_check_header_compile "$LINENO" "linux/if.h" "ac_cv_header_linux_if_h" "#include <sys/socket.h>
- "
- if test "x$ac_cv_header_linux_if_h" = xyes; then :
-   cat >>confdefs.h <<_ACEOF
-@@ -3705,10 +3705,11 @@ done
- for ac_header in linux/if_pppox.h
- do :
-   ac_fn_c_check_header_compile "$LINENO" "linux/if_pppox.h" "ac_cv_header_linux_if_pppox_h" "
--#include<sys/socket.h>
--#include<net/ethernet.h>
--#include<linux/if.h>
--#include<linux/in.h>
-+#include <sys/socket.h>
-+#include <net/ethernet.h>
-+#include <linux/if.h>
-+#include <linux/in.h>
-+#include <linux/in6.h>
- "
- if test "x$ac_cv_header_linux_if_pppox_h" = xyes; then :
-@@ -4644,7 +4645,7 @@ esac
- $as_echo_n "checking packing order of bit fields... " >&6; }
- if test "${rpppoe_cv_pack_bitfields+set}" != set ; then
- if test "$cross_compiling" = yes; then :
--  $ECHO "no defaults for cross-compiling"; exit 0
-+  rpppoe_cv_pack_bitfields="$ac_cv_pack_bitfields"
- else
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
index 7b63ddb99572944afd3b0766474eddb978a73f51..0d4a341f8c8695b1cdbc4016453c8f8a88c9a305 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/Makefile.in
 +++ b/src/Makefile.in
-@@ -71,7 +71,7 @@ pppoe-sniff: pppoe-sniff.o if.o common.o
+@@ -72,7 +72,7 @@ pppoe-sniff: pppoe-sniff.o if.o common.o
        @CC@ -o $@ $^ $(LDFLAGS)
  
  pppoe-server: pppoe-server.o if.o debug.o common.o md5.o libevent/libevent.a @PPPOE_SERVER_DEPS@
index 8e9185e2cd66a17bc6bac096e7f65177def2f737..19dee48819196d212fca4c9b3ddd882282a09be0 100644 (file)
@@ -1,34 +1,41 @@
---- a/src/configure
-+++ b/src/configure
-@@ -3676,7 +3676,7 @@ fi
- done
--for ac_header in fcntl.h sys/dlpi.h sys/ioctl.h sys/time.h syslog.h unistd.h net/if_arp.h netinet/if_ether.h getopt.h sys/uio.h sys/param.h fcntl.h net/bpf.h netpacket/packet.h net/ethernet.h asm/types.h linux/if_packet.h linux/if_ether.h sys/socket.h sys/cdefs.h net/if.h net/if_dl.h net/if_ether.h net/if_types.h netinet/if_ether.h net/if_types.h net/if_dl.h
-+for ac_header in fcntl.h sys/dlpi.h sys/ioctl.h sys/time.h syslog.h unistd.h net/if_arp.h getopt.h sys/uio.h sys/param.h fcntl.h net/bpf.h netpacket/packet.h asm/types.h linux/if_packet.h linux/if_ether.h sys/socket.h sys/cdefs.h net/if.h net/if_dl.h net/if_types.h net/if_types.h net/if_dl.h
- do :
-   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
 --- a/src/if.c
 +++ b/src/if.c
-@@ -30,10 +30,6 @@ static char const RCSID[] =
+@@ -33,9 +33,9 @@
  #include <linux/if_packet.h>
  #endif
  
 -#ifdef HAVE_NET_ETHERNET_H
 -#include <net/ethernet.h>
 -#endif
--
++//#ifdef HAVE_NET_ETHERNET_H
++//#include <net/ethernet.h>
++//#endif
  #ifdef HAVE_ASM_TYPES_H
  #include <asm/types.h>
- #endif
 --- a/src/plugin.c
 +++ b/src/plugin.c
-@@ -49,7 +49,6 @@ static char const RCSID[] =
+@@ -52,7 +52,7 @@
  #include <unistd.h>
  #include <fcntl.h>
  #include <signal.h>
 -#include <net/ethernet.h>
++//#include <net/ethernet.h>
  #include <net/if_arp.h>
  #include <linux/ppp_defs.h>
  #include <linux/if_pppox.h>
+--- a/src/pppoe.h
++++ b/src/pppoe.h
+@@ -129,9 +129,9 @@ typedef unsigned long UINT32_t;
+ #ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+ #endif
+-#ifndef HAVE_SYS_DLPI_H
+-#include <netinet/if_ether.h>
+-#endif
++//#ifndef HAVE_SYS_DLPI_H
++//#include <netinet/if_ether.h>
++//#endif
+ #endif
index c7806dd00e954ab441a032adb97b0164d383ca82..1221c2b4b9fddd2f740c3baaf079677ee243ecc8 100644 (file)
@@ -1,7 +1,7 @@
 --- a/src/Makefile.in
 +++ b/src/Makefile.in
-@@ -139,7 +139,8 @@ plugin/plugin.o: plugin.c
-       @CC@ -DPLUGIN=1 '-DRP_VERSION="$(VERSION)"' $(CFLAGS) -I$(PPPD_INCDIR) -c -o $@ -fPIC $<
+@@ -140,7 +140,8 @@ plugin/plugin.o: plugin.c
+       @CC@ -DPLUGIN=1 '-DRP_VERSION="$(RP_VERSION)"' $(CFLAGS) -I$(PPPD_INCDIR) -c -o $@ -fPIC $<
  
  plugin/libplugin.a: plugin/discovery.o plugin/if.o plugin/common.o plugin/debug.o
 -      ar -rc $@ $^
@@ -9,4 +9,4 @@
 +      @RANLIB@ $@
  
  plugin/discovery.o: discovery.c
-       @CC@ -DPLUGIN=1 $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o $@ -fPIC $<
+       @CC@ -DPLUGIN=1 $(CFLAGS) '-DRP_VERSION="$(RP_VERSION)"' -I$(PPPD_INCDIR) -c -o $@ -fPIC $<
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
deleted file mode 100644 (file)
index de3244f..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- 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 5fcf1743608dc55e0111cc2a17c577feff65669d..b7e8e0bdc384a8aec9fba6f680d12720bed2da1e 100644 (file)
@@ -2,8 +2,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba
-PKG_VERSION:=4.11.6
-PKG_RELEASE:=1
+PKG_VERSION:=4.12.3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
@@ -13,7 +13,7 @@ PKG_SOURCE_URL:= \
                http://www.nic.funet.fi/index/samba/pub/samba/stable/ \
                http://samba.mirror.bit.nl/samba/ftp/stable/ \
                https://download.samba.org/pub/samba/stable/
-PKG_HASH:=91438f4d7b71f673421435fa7f26b03b613f214139636ce50af35bc2ff09ef38
+PKG_HASH:=3fadbca4504937820d0d8a34e500a1efdcc35e0c554f05bd0a844916ae528727
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
 PKG_LICENSE:=GPL-3.0-only
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:samba:samba
 
 # samba4=(asn1_compile,compile_et) rpcsvc-proto=(rpcgen)
-HOST_BUILD_DEPENDS:=python3/host perl/host rpcsvc-proto/host
+HOST_BUILD_DEPENDS:=python3/host rpcsvc-proto/host perl/host perl-parse-yapp/host
 PKG_BUILD_DEPENDS:=samba4/host libtasn1/host
 
 PKG_CONFIG_DEPENDS:= \
@@ -41,6 +41,7 @@ include $(INCLUDE_DIR)/kernel.mk
 include $(INCLUDE_DIR)/version.mk
 include ../../lang/python/python3-host.mk
 include ../../lang/python/python3-package.mk
+include ../../lang/perl/perlver.mk
 
 define Package/samba4/Default
   SECTION:=net
@@ -171,6 +172,7 @@ CONFIGURE_ARGS += \
                --disable-cephfs \
                --disable-fault-handling \
                --disable-glusterfs \
+               --disable-spotlight \
                --enable-fhs \
                --without-automount \
                --without-iconv \
@@ -192,6 +194,7 @@ HOST_CONFIGURE_ARGS += \
                --disable-cephfs \
                --disable-fault-handling \
                --disable-glusterfs \
+               --disable-spotlight \
                --disable-rpath \
                --disable-rpath-install \
                --disable-rpath-private-install \
@@ -212,7 +215,6 @@ HOST_CONFIGURE_ARGS += \
 HOST_CONFIGURE_ARGS += --disable-avahi --without-quotas --without-acl-support --without-winbind \
        --without-ad-dc --without-json --without-libarchive --disable-python --nopyc --nopyo \
        --without-dnsupdate --without-ads --without-ldap --without-ldb-lmdb
-HOST_CONFIGURE_VARS += python_LDFLAGS="" python_LIBDIR=""
 
 # Optional AES-NI support - https://lists.samba.org/archive/samba-technical/2017-September/122738.html
 # Support for Nettle wasn't comitted
@@ -240,22 +242,17 @@ else
        CONFIGURE_ARGS += --disable-avahi
 endif
 
-# NOTE: We need host python-bin, but target python-config here!
-CONFIGURE_VARS += python_LDFLAGS="" python_LIBDIR=""
 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
        CONFIGURE_ARGS += --without-winbind --without-ldb-lmdb --with-acl-support
-       CONFIGURE_VARS += \
-               PYTHON="$(HOST_PYTHON3_BIN)" \
-               PYTHON_CONFIG="$(STAGING_DIR)/host/bin/$(PYTHON3)-config"
 else
        CONFIGURE_ARGS += --without-winbind --without-ads --without-ldap --without-ldb-lmdb --without-ad-dc \
                --without-json --without-libarchive --disable-python --nopyc --nopyo --without-dnsupdate --without-acl-support
 endif
 
 SAMBA4_PDB_MODULES :=pdb_smbpasswd,pdb_tdbsam,
-SAMBA4_AUTH_MODULES :=auth_builtin,auth_sam,auth_unix,auth_script,
+SAMBA4_AUTH_MODULES :=auth_builtin,auth_sam,auth_unix,
 SAMBA4_VFS_MODULES :=vfs_default,
-SAMBA4_VFS_MODULES_SHARED :=
+SAMBA4_VFS_MODULES_SHARED :=auth_script,
 ifeq ($(CONFIG_SAMBA4_SERVER_VFS),y)
        SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_fruit,vfs_shadow_copy2,vfs_recycle,vfs_fake_perms,vfs_readonly,vfs_cap,vfs_offline,vfs_crossrename,vfs_catia,vfs_streams_xattr,vfs_xattr_tdb,vfs_default_quota,
 ifeq ($(CONFIG_PACKAGE_kmod-fs-btrfs),y)
@@ -305,10 +302,23 @@ CONFIGURE_ARGS += --private-libraries=$(SYSTEM_BUNDLED_LIBS)
 export COMPILE_ET=$(STAGING_DIR_HOSTPKG)/bin/compile_et_samba
 export ASN1_COMPILE=$(STAGING_DIR_HOSTPKG)/bin/asn1_compile_samba
 
+# make sure we use the hostpkg build toolset and we need to find host 'yapp'
+HOST_CONFIGURE_VARS+= \
+       PATH="$(STAGING_DIR_HOSTPKG)/bin:$(STAGING_DIR_HOSTPKG)/usr/bin:$(PATH)"
+CONFIGURE_VARS += \
+       PATH="$(STAGING_DIR_HOSTPKG)/bin:$(STAGING_DIR_HOSTPKG)/usr/bin:$(PATH)"
+
+# we need hostpkg bin and target config        
+ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
+       CONFIGURE_VARS += \
+               PYTHON_CONFIG="$(STAGING_DIR)/host/bin/$(PYTHON3)-config"
+endif
+
 # we dont need GnuTLS for the host helpers
 define Host/Prepare
        $(call Host/Prepare/Default)
        $(SED) 's,mandatory=True,mandatory=False,g' $(HOST_BUILD_DIR)/wscript_configure_system_gnutls
+       $(SED) 's,gnutls_version =.*,gnutls_version = gnutls_min_required_version,g' $(HOST_BUILD_DIR)/wscript_configure_system_gnutls
 endef
 define Host/Compile
        (cd $(HOST_BUILD_DIR); \
@@ -341,7 +351,6 @@ define Build/Configure
        echo 'Checking uname release type: "$(LINUX_VERSION)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
        echo 'Checking uname version type: "$(VERSION_DIST) Linux-$(LINUX_VERSION) $(shell date +%Y-%m-%d)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
        # NOTE: special answers for freeBSD/CircleCI
-       echo 'Checking whether POSIX capabilities are available: OK' >> $(PKG_BUILD_DIR)/cross-answers.txt
        echo 'checking for clnt_create(): OK' >> $(PKG_BUILD_DIR)/cross-answers.txt
        $(call Build/Configure/Default)
 endef
index 2050f03cf6e76718b097e36484f52dcee77105df..92313cf48096c7c4cbf3f2d01dab09dc76383b98 100644 (file)
@@ -50,6 +50,8 @@ smb_header() {
                printf "\n######### Dynamic written config options #########\n"
                if [ "$DISABLE_NETBIOS" -eq 1 ] || [ ! -x /usr/sbin/nmbd ]; then
                        printf "\tdisable netbios = yes\n"
+                       # note: samba opens port 139 even if netbios is disabled via option above, so adjust listening ports
+                       printf "\tsmb ports = 445\n"
                fi
 
                if [ "$DISABLE_ASYNC_IO" -eq 1 ]; then
index 99ebedacfb6f12136dd4db85ff838067f90a910b..0ba5fcc537ca6103303a6a6dbd43b45eb2e464ec 100644 (file)
@@ -18,7 +18,7 @@ index 2cd6122..04f13c6 100644
  static bool test_enum_r_passwd(struct torture_context *tctx,
                               struct passwd **pwd_array_p,
                               size_t *num_pwd_p)
-@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,
+@@ -383,6 +383,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,
  
        return true;
  }
@@ -26,7 +26,7 @@ index 2cd6122..04f13c6 100644
  
  static bool torture_assert_passwd_equal(struct torture_context *tctx,
                                        const struct passwd *p1,
-@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture_context *tctx)
+@@ -434,7 +435,7 @@ static bool test_passwd_r(struct torture_context *tctx)
        struct passwd *pwd, pwd1, pwd2;
        size_t num_pwd;
  
@@ -35,7 +35,7 @@ index 2cd6122..04f13c6 100644
                                                "failed to enumerate passwd");
  
        for (i=0; i < num_pwd; i++) {
-@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx)
+@@ -462,7 +463,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx)
        struct passwd *pwd, pwd1, pwd2, pwd3, pwd4;
        size_t num_pwd;
  
@@ -44,7 +44,7 @@ index 2cd6122..04f13c6 100644
                                                "failed to enumerate passwd");
  
        for (i=0; i < num_pwd; i++) {
-@@ -531,6 +532,7 @@ static bool test_enum_group(struct torture_context *tctx,
+@@ -533,6 +534,7 @@ static bool test_enum_group(struct torture_context *tctx,
        return true;
  }
  
@@ -52,7 +52,7 @@ index 2cd6122..04f13c6 100644
  static bool test_enum_r_group(struct torture_context *tctx,
                              struct group **grp_array_p,
                              size_t *num_grp_p)
-@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct torture_context *tctx,
+@@ -583,6 +585,7 @@ static bool test_enum_r_group(struct torture_context *tctx,
  
        return true;
  }
@@ -60,7 +60,7 @@ index 2cd6122..04f13c6 100644
  
  static bool torture_assert_group_equal(struct torture_context *tctx,
                                       const struct group *g1,
-@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_context *tctx)
+@@ -639,7 +642,7 @@ static bool test_group_r(struct torture_context *tctx)
        struct group *grp, grp1, grp2;
        size_t num_grp;
  
@@ -69,7 +69,7 @@ index 2cd6122..04f13c6 100644
                                               "failed to enumerate group");
  
        for (i=0; i < num_grp; i++) {
-@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct torture_context *tctx)
+@@ -667,7 +670,7 @@ static bool test_group_r_cross(struct torture_context *tctx)
        struct group *grp, grp1, grp2, grp3, grp4;
        size_t num_grp;
  
index c5f36bef2532ee72bf86868604885f103878d904..de7f28572fe42d7cfd2b2ae48a1b1ceaa201d71a 100644 (file)
@@ -15,7 +15,7 @@ diff --git a/third_party/cmocka/cmocka.h b/third_party/cmocka/cmocka.h
 index 303d0ae..a2bfc40 100644
 --- a/third_party/cmocka/cmocka.h
 +++ b/third_party/cmocka/cmocka.h
-@@ -110,7 +110,7 @@
+@@ -111,7 +111,7 @@
      ((LargestIntegralType)(value))
  
  /* Smallest integral type capable of holding a pointer. */
@@ -24,7 +24,7 @@ index 303d0ae..a2bfc40 100644
  # if defined(_WIN32)
      /* WIN32 is an ILP32 platform */
      typedef unsigned int uintptr_t;
-@@ -136,6 +136,8 @@
+@@ -137,6 +137,8 @@
  
  # define _UINTPTR_T
  # define _UINTPTR_T_DEFINED
diff --git a/net/samba4/patches/009-samba-4.11-qsort-compar.patch b/net/samba4/patches/009-samba-4.11-qsort-compar.patch
deleted file mode 100644 (file)
index 3b2e11a..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/source4/dsdb/samdb/ldb_modules/count_attrs.c b/source4/dsdb/samdb/ldb_modules/count_attrs.c
-index b0d1b22..29f1b94 100644
---- a/source4/dsdb/samdb/ldb_modules/count_attrs.c
-+++ b/source4/dsdb/samdb/ldb_modules/count_attrs.c
-@@ -222,7 +222,7 @@ static const char **get_sorted_attrs(TALLOC_CTX *mem_ctx,
-               attrs[i] = a;
-       }
--      qsort(attrs, n_attrs, sizeof(char *), (__compar_fn_t)strcasecmp_ptr);
-+      qsort(attrs, n_attrs, sizeof(char *), (int (*)(const void *, const void *))strcasecmp_ptr);
-       return attrs;
- }
-@@ -313,7 +313,7 @@ static int count_attrs_search_callback(struct ldb_request *req,
-                       }
-                       qsort(found_attrs, msg->num_elements, sizeof(char *),
--                            (__compar_fn_t)strcasecmp_ptr);
-+                            (int (*)(const void *, const void *))strcasecmp_ptr);
-                       /* find and report duplicates */
index 682adec4e374d2d20ff0281b13e802d487f4575e..dc647a788702034fbee65a3b14fe7cae6ae45ad7 100644 (file)
@@ -1,6 +1,6 @@
---- a/source3/lib/messages.c
-+++ b/source3/lib/messages.c
-@@ -518,7 +518,7 @@ static NTSTATUS messaging_init_internal(
+--- a/source3/lib/messages.c   2020-02-28 09:59:35.000000000 +0100
++++ b/source3/lib/messages.c   2020-05-19 13:35:11.814566657 +0200
+@@ -507,7 +507,7 @@ static NTSTATUS messaging_init_internal(
                return NT_STATUS_ACCESS_DENIED;
        }
  
@@ -9,12 +9,12 @@
        if (priv_path == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
-@@ -662,7 +662,7 @@ NTSTATUS messaging_reinit(struct messagi
-       msg_ctx->msg_dgm_ref = messaging_dgm_ref(
-               msg_ctx, msg_ctx->event_ctx, &msg_ctx->id.unique_id,
--              private_path("msg.sock"), lck_path,
-+              lock_path(talloc_tos(), "msg.sock"), lck_path,
-               messaging_recv_cb, msg_ctx, &ret);
-       if (msg_ctx->msg_dgm_ref == NULL) {
+@@ -670,7 +670,7 @@ NTSTATUS messaging_reinit(struct messagi
+               msg_ctx->per_process_talloc_ctx,
+               msg_ctx->event_ctx,
+               &msg_ctx->id.unique_id,
+-              private_path("msg.sock"),
++              lock_path(talloc_tos(), "msg.sock"),
+               lck_path,
+               messaging_recv_cb,
+               msg_ctx,
diff --git a/net/samba4/patches/103-samba-4.12-unbundle-libunwind.patch b/net/samba4/patches/103-samba-4.12-unbundle-libunwind.patch
new file mode 100644 (file)
index 0000000..043b0a3
--- /dev/null
@@ -0,0 +1,23 @@
+--- a/lib/util/wscript_configure       2020-06-14
++++ b/lib/util/wscript_configure       2020-06-14
+@@ -11,13 +11,13 @@ conf.CHECK_FUNCS_IN('backtrace backtrace
+ conf.CHECK_HEADERS('execinfo.h')
+ conf.SET_TARGET_TYPE('LIBUNWIND', 'EMPTY')
+-if conf.check_cfg(package='libunwind-generic',
+-                  args='--cflags --libs',
+-                  msg='Checking for libunwind',
+-                  uselib_store='LIBUNWIND',
+-                  mandatory=False):
+-    if conf.CHECK_HEADERS('libunwind.h'):
+-        conf.SET_TARGET_TYPE('LIBUNWIND', 'SYSLIB')
++# if conf.check_cfg(package='libunwind-generic',
++                  # args='--cflags --libs',
++                  # msg='Checking for libunwind',
++                  # uselib_store='LIBUNWIND',
++                  # mandatory=False):
++    # if conf.CHECK_HEADERS('libunwind.h'):
++        # conf.SET_TARGET_TYPE('LIBUNWIND', 'SYSLIB')
+ conf.CHECK_STRUCTURE_MEMBER('struct statvfs', 'f_frsize', define='HAVE_FRSIZE', headers='sys/statvfs.h')
diff --git a/net/samba4/patches/103-tmsize-overflow-fix.patch b/net/samba4/patches/103-tmsize-overflow-fix.patch
deleted file mode 100644 (file)
index 5d6cebe..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/source3/modules/vfs_fruit.c      2019-07-09
-+++ b/source3/modules/vfs_fruit.c      2019-07-09
-@@ -6995,12 +6995,12 @@ static bool fruit_tmsize_do_dirent(vfs_h
-               return true;
-       }
--      if (bandsize > SIZE_MAX/nbands) {
--              DBG_ERR("tmsize overflow: bandsize [%zu] nbands [%zu]\n",
--                      bandsize, nbands);
--              return false;
--      }
--      tm_size = bandsize * nbands;
-+      // if (bandsize > SIZE_MAX/nbands) {
-+              // DBG_ERR("tmsize overflow: bandsize [%zu] nbands [%zu]\n",
-+                      // bandsize, nbands);
-+              // return false;
-+      // }
-+      tm_size = (off_t)bandsize * (off_t)nbands;
-       if (state->total_size + tm_size < state->total_size) {
-               DBG_ERR("tmsize overflow: bandsize [%zu] nbands [%zu]\n",
diff --git a/net/samba4/patches/104-samba-4.12-unbundle-icu.patch b/net/samba4/patches/104-samba-4.12-unbundle-icu.patch
new file mode 100644 (file)
index 0000000..fcba206
--- /dev/null
@@ -0,0 +1,30 @@
+--- a/lib/util/charset/wscript_configure       2020-06-14
++++ b/lib/util/charset/wscript_configure       2020-06-14
+@@ -37,15 +37,15 @@ conf.CHECK_CODE('''
+                 lib='iconv',
+                 headers='errno.h iconv.h')
+-if conf.CHECK_CFG(package='icu-i18n',
+-               args='--cflags --libs',
+-               msg='Checking for icu-i18n',
+-               uselib_store='ICU_I18N'):
+-    for lib in conf.env['LIB_ICU_I18N']:
+-        conf.CHECK_LIB(lib, shlib=True, mandatory=True)
+-    conf.env['icu-libs'] = ' '.join(conf.env['LIB_ICU_I18N'])
+-    if not conf.CHECK_HEADERS('unicode/ustring.h'):
+-        conf.fatal('Found libicu, but unicode/ustring.h is missing')
+-    conf.DEFINE('HAVE_UTF8_NORMALISATION', 1)
+-else:
+-    conf.env['icu-libs'] = ''
++# if conf.CHECK_CFG(package='icu-i18n',
++               # args='--cflags --libs',
++               # msg='Checking for icu-i18n',
++               # uselib_store='ICU_I18N'):
++    # for lib in conf.env['LIB_ICU_I18N']:
++        # conf.CHECK_LIB(lib, shlib=True, mandatory=True)
++    # conf.env['icu-libs'] = ' '.join(conf.env['LIB_ICU_I18N'])
++    # if not conf.CHECK_HEADERS('unicode/ustring.h'):
++        # conf.fatal('Found libicu, but unicode/ustring.h is missing')
++    # conf.DEFINE('HAVE_UTF8_NORMALISATION', 1)
++# else:
++conf.env['icu-libs'] = ''
index e57659bf06365ebd89a6ee3ec717f53dab2c4449..5d9af17e12533a1c65e9ca8dab29377cba179509 100644 (file)
@@ -16,18 +16,22 @@ Checking value of NSIG: "65"
 Checking value of _NSIG: "65"
 Checking value of SIGRTMAX: "64"
 Checking value of SIGRTMIN: "35"
-Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking for a 64-bit host to support lmdb: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: OK
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 37abf15edf081ba3c75ae2e2d83b9170a4cb5ce6..0d57fbc3a1c020f7d338761c6b4cf200914f72dc 100644 (file)
@@ -17,17 +17,21 @@ Checking value of _NSIG: "65"
 Checking value of SIGRTMAX: "64"
 Checking value of SIGRTMIN: "35"
 Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: NO
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 5a7c2ea941ec1ef207c11678f262c0fc7632930c..df5f77bbca26fd64447dba9362a14594a95a8038 100644 (file)
@@ -17,17 +17,21 @@ Checking value of _NSIG: "65"
 Checking value of SIGRTMAX: "64"
 Checking value of SIGRTMIN: "35"
 Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: NO
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 5a7c2ea941ec1ef207c11678f262c0fc7632930c..df5f77bbca26fd64447dba9362a14594a95a8038 100644 (file)
@@ -17,17 +17,21 @@ Checking value of _NSIG: "65"
 Checking value of SIGRTMAX: "64"
 Checking value of SIGRTMIN: "35"
 Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: NO
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 5a7c2ea941ec1ef207c11678f262c0fc7632930c..df5f77bbca26fd64447dba9362a14594a95a8038 100644 (file)
@@ -17,17 +17,21 @@ Checking value of _NSIG: "65"
 Checking value of SIGRTMAX: "64"
 Checking value of SIGRTMIN: "35"
 Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: NO
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 2919ea2c2c984ab36e3bc3698aef5ed5173be3f7..04b93e589531e7c3a97b73e8190107aa5183f21f 100644 (file)
@@ -17,17 +17,21 @@ Checking value of _NSIG: "128"
 Checking value of SIGRTMAX: "127"
 Checking value of SIGRTMIN: "35"
 Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: NO
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 9bb9b5fd502d85acaa6c65a22867f8a750c1e6bb..86be3763bb8863baa86fa48910f66e8703295280 100644 (file)
@@ -16,18 +16,22 @@ Checking value of NSIG: "128"
 Checking value of _NSIG: "128"
 Checking value of SIGRTMAX: "127"
 Checking value of SIGRTMIN: "35"
-Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking for a 64-bit host to support lmdb: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: OK
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 9bb9b5fd502d85acaa6c65a22867f8a750c1e6bb..86be3763bb8863baa86fa48910f66e8703295280 100644 (file)
@@ -16,18 +16,22 @@ Checking value of NSIG: "128"
 Checking value of _NSIG: "128"
 Checking value of SIGRTMAX: "127"
 Checking value of SIGRTMIN: "35"
-Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking for a 64-bit host to support lmdb: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: OK
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 2919ea2c2c984ab36e3bc3698aef5ed5173be3f7..04b93e589531e7c3a97b73e8190107aa5183f21f 100644 (file)
@@ -17,17 +17,21 @@ Checking value of _NSIG: "128"
 Checking value of SIGRTMAX: "127"
 Checking value of SIGRTMIN: "35"
 Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: NO
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index c98557b2ba97da247b31e69e1e0cce37bd9e7d6c..3f1b18fd4417fd9c02624634349bff3a7498e07e 100644 (file)
@@ -17,17 +17,21 @@ Checking value of _NSIG: "65"
 Checking value of SIGRTMAX: "64"
 Checking value of SIGRTMIN: "35"
 Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: NO
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index e57659bf06365ebd89a6ee3ec717f53dab2c4449..5d9af17e12533a1c65e9ca8dab29377cba179509 100644 (file)
@@ -16,18 +16,22 @@ Checking value of NSIG: "65"
 Checking value of _NSIG: "65"
 Checking value of SIGRTMAX: "64"
 Checking value of SIGRTMIN: "35"
-Checking for a 64-bit host to support lmdb: NO
-Checking whether the WRFILE -keytab is supported: OK
+Checking for a 64-bit host to support lmdb: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
 Checking errno of iconv for illegal multibyte sequence: OK
 Checking for kernel change notify support: OK
 Checking for Linux kernel oplocks: OK
 Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
 Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: (-11, "")
 Checking for the maximum value of the 'time_t' type: OK
 Checking whether the realpath function allows a NULL argument: OK
 Checking for ftruncate extend: OK
index 94d9866a6e625a305a5c246ddcf398c02196010d..3af2de0c2c0090c156db4fc3e07d10945faec61f 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-server
 PKG_VERSION:=7.1.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/haiwen/seafile-server/tar.gz/v$(PKG_VERSION)-server?
@@ -135,10 +135,6 @@ CONFIGURE_ARGS += \
 CONFIGURE_VARS += \
        PYTHON="$(HOST_PYTHON3_BIN)"
 
-ifdef CONFIG_GCC_LIBSSP
-  TARGET_LDFLAGS += -lssp
-endif
-
 define Package/seafile-server/conffiles
 /etc/config/seafile-server
 endef
index be6304e30d70bd018ce4ad221b1b884035616337..cfcbe512add792b8c72751ab28532d11630a610a 100644 (file)
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shorewall-core
 PKG_MAJOR_MINOR_VERSION:=5.2
-PKG_BUGFIX_MAJOR_VERSION:=4
-PKG_BUGFIX_MINOR_VERSION:=.5
+PKG_BUGFIX_MAJOR_VERSION:=5
+PKG_BUGFIX_MINOR_VERSION:=.1
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -21,7 +21,7 @@ PKG_SOURCE_URL:=http://shorewall.org/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/sh
        http://www.shorewall.no/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://france.shorewall.net/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=78f1d62d65439704896daa2439b7053934b2dd42427ccb56c4262da90183011b
+PKG_HASH:=94c0df3ef44504b7f370ddd055c2a9459a78fbc5f6057b550e0a652939cfb5fc
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index a32054d47984d69f29e25eb8c7988001333eca12..b1a3a642ef90bc06711b3361cbcbf544d26a0bc8 100644 (file)
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shorewall-lite
 PKG_MAJOR_MINOR_VERSION:=5.2
-PKG_BUGFIX_MAJOR_VERSION:=4
-PKG_BUGFIX_MINOR_VERSION:=.5
+PKG_BUGFIX_MAJOR_VERSION:=5
+PKG_BUGFIX_MINOR_VERSION:=.1
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -21,7 +21,7 @@ PKG_SOURCE_URL:=http://shorewall.org/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/sh
        http://www.shorewall.no/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://france.shorewall.net/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=7488f9daec34958307193fde4fff403b1c102fabab31f7d4d7e8f11d8bbfaf1a
+PKG_HASH:=c51cf167b951d52726c8b70dc710e0831196f677381fda0744e9893d9669f630
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index 6b56e76aec6ced247d71826ab7a252122cc46f11..a32eeec04c0d914c0a633086b2c7b1d37f06e90b 100644 (file)
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shorewall
 PKG_MAJOR_MINOR_VERSION:=5.2
-PKG_BUGFIX_MAJOR_VERSION:=4
-PKG_BUGFIX_MINOR_VERSION:=.5
+PKG_BUGFIX_MAJOR_VERSION:=5
+PKG_BUGFIX_MINOR_VERSION:=.1
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -21,7 +21,7 @@ PKG_SOURCE_URL:=http://shorewall.org/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/sh
        http://www.shorewall.no/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://france.shorewall.net/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=df4e8639b9dab03cb4e792f7b0760c43583340e3302125f25b048fc0248b94af
+PKG_HASH:=786c7016d124c131f80aff72105e1cffca3aad825078692ba878287271193f98
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index d19a746f3e6b28a0c19d360dd8ad7be05bafb700..673d5f8f2ce66ddcefe1d7fae6f36f520db1a2ec 100644 (file)
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shorewall6-lite
 PKG_MAJOR_MINOR_VERSION:=5.2
-PKG_BUGFIX_MAJOR_VERSION:=4
-PKG_BUGFIX_MINOR_VERSION:=.5
+PKG_BUGFIX_MAJOR_VERSION:=5
+PKG_BUGFIX_MINOR_VERSION:=.1
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -21,7 +21,7 @@ PKG_SOURCE_URL:=http://shorewall.org/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/sh
        http://www.shorewall.no/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://france.shorewall.net/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=aeb56cb9616bef87894f7bc06e5128fe0456dc6c7c3514725d9126085194b9b2
+PKG_HASH:=aa85b1bf93039b760c2b7b9f28f7693079be6d59026d3f58c03baa59cfed4bd0
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index eaa500b6bc7c1b6e860e665bbf770490d6bcf3f6..3675faf15fbcd88facfd889dccf80d9baa41456c 100644 (file)
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shorewall6
 PKG_MAJOR_MINOR_VERSION:=5.2
-PKG_BUGFIX_MAJOR_VERSION:=4
-PKG_BUGFIX_MINOR_VERSION:=.5
+PKG_BUGFIX_MAJOR_VERSION:=5
+PKG_BUGFIX_MINOR_VERSION:=.1
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
 PKG_RELEASE:=1
@@ -21,7 +21,7 @@ PKG_SOURCE_URL:=http://shorewall.org/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/sh
        http://www.shorewall.no/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://france.shorewall.net/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=d35dc296fe9c3b815f2c8d0b07c725dc1ca55f435672cb2756e2e1614d0b0645
+PKG_HASH:=9db0f815a713aec565073c9b6038ccdb673abddb571d714e3153c74d47381d54
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index 793cb14d5a6909eda846cbeed19d4b7d52b74315..6cc7cf504bc22c4a943ce582439cf48110cf7ac8 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=simple-adblock
 PKG_VERSION:=1.8.3
-PKG_RELEASE:=3
+PKG_RELEASE:=13
 PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
 PKG_LICENSE:=GPL-3.0-or-later
 
@@ -16,12 +16,14 @@ define Package/simple-adblock
        SECTION:=net
        CATEGORY:=Network
        TITLE:=Simple AdBlock Service
+       DEPENDS:=+jshn +jsonfilter
        PKGARCH:=all
 endef
 
 define Package/simple-adblock/description
-This service provides DNSMASQ or Unbound based ad blocking.
-Please see the project's README at github for further information.
+Simple adblock script to block ad or abuse/malware domains with DNSMASQ or Unbound.
+Script supports local/remote list of domains and hosts-files for both black- and white-listing.
+Please see https://github.com/openwrt/packages/blob/master/net/simple-adblock/files/README.md for more information.
 
 endef
 
@@ -46,6 +48,8 @@ define Package/simple-adblock/install
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/simple-adblock.init $(1)/etc/init.d/simple-adblock
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/simple-adblock.conf $(1)/etc/config/simple-adblock
+       $(INSTALL_DIR) $(1)/tmp
+       $(INSTALL_CONF) ./files/simple-adblock.conf.update $(1)/tmp/simple-adblock.conf.update
        $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
        $(INSTALL_BIN) ./files/simple-adblock.hotplug $(1)/etc/hotplug.d/iface/80-simple-adblock
 endef
@@ -54,6 +58,7 @@ define Package/simple-adblock/postinst
        #!/bin/sh
        # check if we are on real system
        if [ -z "$${IPKG_INSTROOT}" ]; then
+               sed -f /tmp/simple-adblock.conf.update -i /etc/config/simple-adblock || true
                /etc/init.d/simple-adblock enable
        fi
        exit 0
index 8582f9e16422ba27e278775b8e13d5d8a8ff81ee..3f97140a62962b4260c810c476c01d82c93d6dab 100644 (file)
@@ -4,13 +4,13 @@ A simple DNSMASQ/Unbound-based AdBlocking service for OpenWrt/LEDE Project.
 
 ## Features
 
-- Super-fast due to the nature of supported block lists and parallel downloading/processing of the blacklists.
+- Super-fast due to the nature of supported block-lists and parallel downloading/processing of the block-lists.
 - Supports hosts files and domains lists for blocking.
 - Everything is configurable from Web UI.
-- Allows you to easily add your own domains to whitelist or blacklist.
-- Allows you to easily add URLs to your own blocked hosts or domains lists to block/whitelist (just put whitelisted domains one per line in the file you're linking).
+- Allows you to easily add your own domains to allow-list or block-list.
+- Allows you to easily add URLs to your own blocked hosts or domains lists to allow/block-list (just put allowed domains one per line in the file you're linking).
 - Supports multiple modes of AdBlocking implementations with DNSMASQ and Unbound.
-- Doesn't stay in memory -- creates the list of blocked domains and then uses DNSMASQ/Unbound and firewall rules to serve NXDOMAIN or 127.0.0.1 reply or to reject access (depending on settings)  for blocked domains.
+- Doesn't stay in memory -- creates the list of blocked domains and then uses DNSMASQ/Unbound and firewall rules to serve NXDOMAIN or 127.0.0.1 reply or to reject access (depending on settings) for blocked domains.
 - As some of the default lists are using https, reliably works with either wget/libopenssl,  uclient-fetch/libustream-mbedtls or curl.
 - Very lightweight and easily hackable, the whole script is just one ```/etc/init.d/simple-adblock``` file.
 - Retains the downloaded/sorted AdBlocking list on service stop and reuses it on service start (use ```dl``` command if you want to force re-download of the list).
@@ -19,63 +19,70 @@ A simple DNSMASQ/Unbound-based AdBlocking service for OpenWrt/LEDE Project.
 - Blocks ads inside browsers with [DNS-over-HTTPS proxy](https://en.wikipedia.org/wiki/DNS_over_HTTPS) built-in, like [Mozilla Firefox](https://support.mozilla.org/en-US/kb/firefox-dns-over-https#w_about-dns-over-https) or [Google Chrome/Chromium](https://blog.chromium.org/2019/09/experimenting-with-same-provider-dns.html) -- with the ```dnsmasq.ipset``` option.
 - Proudly made in Canada, using locally-sourced electrons.
 
-If you want a more robust AdBlocking, supporting free memory detection and complex block lists, supporting IDN, check out [net/adblock](https://github.com/openwrt/packages/tree/master/net/adblock/files).
+If you want a more robust AdBlocking, supporting free memory detection and complex block-lists, supporting IDN, check out ```net/adblock``` on [GitHub](https://github.com/openwrt/packages/tree/master/net/adblock/files)/[jsDelivr](https://cdn.jsdelivr.net/gh/openwrt/packages@master/net/adblock/files/README.md).
 
 ## Screenshots (luci-app-simple-adblock)
 
 Service Status
 
-![screenshot](https://raw.githubusercontent.com/stangri/openwrt_packages/master/screenshots/simple-adblock/screenshot08-status.png "Service Status")
+![screenshot](https://cdn.jsdelivr.net/gh/stangri/openwrt_packages@master/screenshots/simple-adblock/screenshot08-status.png "Service Status")
 
 Configuration - Basic Configuration
 
-![screenshot](https://raw.githubusercontent.com/stangri/openwrt_packages/master/screenshots/simple-adblock/screenshot08-config-basic.png "Configuration - Basic Configuration")
+![screenshot](https://cdn.jsdelivr.net/gh/stangri/openwrt_packages@master/screenshots/simple-adblock/screenshot08-config-basic.png "Configuration - Basic Configuration")
 
 Configuration - Advanced Configuration
 
-![screenshot](https://raw.githubusercontent.com/stangri/openwrt_packages/master/screenshots/simple-adblock/screenshot08-config-advanced.png "Configuration - Advanced Configuration")
+![screenshot](https://cdn.jsdelivr.net/gh/stangri/openwrt_packages@master/screenshots/simple-adblock/screenshot08-config-advanced.png "Configuration - Advanced Configuration")
 
-Whitelist and Blocklist Management
+Allowed and Blocked Lists Management
 
-![screenshot](https://raw.githubusercontent.com/stangri/openwrt_packages/master/screenshots/simple-adblock/screenshot08-lists.png "Whitelist and Blocklist Management")
+![screenshot](https://cdn.jsdelivr.net/gh/stangri/openwrt_packages@master/screenshots/simple-adblock/screenshot09-lists.png "Allow-list and Block-list Management")
 
 ## Requirements
 
-This service requires the following packages to be installed on your router: ```dnsmasq``` or ```dnsmasq-full``` or ```unbound``` and either ```ca-certificates```, ```wget``` and ```libopenssl``` (for OpenWrt 15.05.1) or ```uclient-fetch``` and ```libustream-mbedtls``` (for LEDE Project and OpenWrt 18.06.xx or newer). Additionally installation of ```coreutils-sort``` is highly recommended as it speeds up blocklist processing.
+To download the hosts/domains files this service requires one of the following packages to be installed on your device: ```wget``` or ```uclient-fetch``` or ```curl```. If you want to download lists over HTTPS (recommended), you also need to install support for HTTPS/SSL downloads on your device. For most devices starting with OpenWrt 15.05.1 and up the following commands will install the minimal requirements:
 
-To satisfy the requirements for connect to your router via ssh and run the following commands:
+```sh
+opkg update; if ubus -S call system board | grep -q '15.05'; then
+opkg install ca-certificates wget libopenssl; else
+opkg install uclient-fetch libustream-mbedtls ca-bundle ca-certificates; fi
+```
 
-### How to use DNSMASQ ipset
+### Requirements for file:// Scheme
 
-The ```dnsmasq.ipset``` option requires you to install ```ipset``` and  ```dnsmasq-full``` instead of the ```dnsmasq```. To do that, connect to your router via ssh and run the following command:
+If you want to include some local files as the allow-lists or block-lists, you need to install ```curl```:
 
 ```sh
-opkg update; opkg remove dnsmasq; opkg install dnsmasq-full ipset;
+opkg update; opkg install curl;
 ```
 
-### OpenWrt 15.05.1 Requirements
+### Requirements for DNS Resolver
 
-```sh
-opkg update; opkg install ca-certificates wget libopenssl coreutils-sort dnsmasq
-```
+In order to actually block the ads, this service requires one of the following DNS resolvers to be installed on your router: ```dnsmasq``` or ```dnsmasq-full``` or ```unbound```. The ```dnsmasq``` package is usually included in the default OpenWrt installation.
 
-### LEDE Project 17.01.x and OpenWrt 18.xx (or newer) Requirements
+If you want to use the [```dnsmasq.ipset``` option](#dns-resolution-option) you need to install ```ipset``` and  ```dnsmasq-full``` instead of the ```dnsmasq```. To do that, connect to your router via ssh and run the following command:
 
 ```sh
-opkg update; opkg install uclient-fetch libustream-mbedtls coreutils-sort dnsmasq
+opkg update; cd /tmp/; opkg download dnsmasq-full; opkg install ipset;
+opkg remove dnsmasq; opkg install /tmp/dnsmasq-full*; rm -f /tmp/dnsmasq-full*;
 ```
 
-### IPv6 Support
+### Requirements for IPv6 Support
 
 For IPv6 support additionally install ```ip6tables-mod-nat``` and ```kmod-ipt-nat6``` packages from Web UI or run the following in the command line:
 
 ```sh
-opkg update; opkg install ip6tables-mod-nat kmod-ipt-nat6
+opkg update; opkg install ip6tables-mod-nat kmod-ipt-nat6;
 ```
 
-### Speed Up Blocklist Processing
+### Requirements for Faster Block-list Processing
 
-The ```coreutils-sort``` is an optional, but recommended package as it speeds up sorting and removing duplicates from the merged list dramatically. If opkg complains that it can't install ```coreutils-sort``` because /usr/bin/sort is already provided by busybox, you can run ```opkg --force-overwrite install coreutils-sort```.
+The ```coreutils-sort``` is an optional, but recommended package as it speeds up sorting and removing duplicates from the merged list dramatically. If opkg complains that it can't install ```coreutils-sort``` because /usr/bin/sort is already provided by busybox, you can run the following command:
+
+```sh
+opkg --force-overwrite install coreutils-sort
+```
 
 ## Unmet Dependencies
 
@@ -89,11 +96,11 @@ Install ```simple-adblock``` and ```luci-app-simple-adblock``` packages from Web
 opkg update; opkg install simple-adblock luci-app-simple-adblock
 ```
 
-If ```simple-adblock``` and ```luci-app-simple-adblock``` packages are not found in the official feed/repo for your version of OpenWrt/LEDE Project, you will need to [add a custom repo to your router](https://github.com/stangri/openwrt_packages/blob/master/README.md#on-your-router) first.
+If ```simple-adblock``` and ```luci-app-simple-adblock``` packages are not found in the official feed/repo for your version of OpenWrt/LEDE Project, you will need to add a custom repo to your router following instructions on [GitHub](https://github.com/stangri/openwrt_packages/blob/master/README.md#on-your-router)/[jsDelivr](https://cdn.jsdelivr.net/gh/stangri/openwrt_packages@master/README.md#on-your-router) first.
 
 ## Default Settings
 
-Default configuration has service disabled (use Web UI to enable/start service or run ```uci set simple-adblock.config.enabled=1; uci commit simple-adblock;```) and selected ad/malware lists suitable for routers with 64Mb RAM.
+Default configuration has the service disabled (use Web UI to enable/start service or run ```uci set simple-adblock.config.enabled=1; uci commit simple-adblock;```) and selected ad/malware lists suitable for routers with 64Mb RAM.
 
 If your router has less then 64Mb RAM, edit the configuration file, located at ```/etc/config/simple-adblock```. The configuration file has lists in ascending order starting with smallest ones and each list has a preceding comment indicating its size, comment out or delete the lists you don't want or your router can't handle.
 
@@ -103,11 +110,11 @@ You can use Web UI (found in Services/Simple AdBlock) to add/remove/edit links t
 
 - [hosts files](https://en.wikipedia.org/wiki/Hosts_(file)) (127.0.0.1 or 0.0.0.0 followed by space and domain name per line) to be blocked.
 - domains lists (one domain name per line) to be blocked.
-- domains lists (one domain name per line) to be whitelisted. It is useful if you want to run ```simple-adblock``` on multiple routers and maintain one centralized whitelist which you can publish on a web-server.
+- domains lists (one domain name per line) to be allowed. It is useful if you want to run ```simple-adblock``` on multiple routers and maintain one centralized allow-list which you can publish on a web-server.
 
-Please note that these lists **must** include either ```http://``` or ```https://``` (or, if ```curl``` is installed the ```file://```) prefix. Some of the top block lists (both hosts files and domains lists) suitable for routers with at least 8MB RAM are used in the default ```simple-adblock``` installation.
+Please note that these lists **must** include either ```http://``` or ```https://``` (or, if ```curl``` is installed the ```file://```) prefix. Some of the top block-lists (both hosts files and domains lists) suitable for routers with at least 8MB RAM are used in the default ```simple-adblock``` installation.
 
-You can also use Web UI to add individual domains to be blocked or whitelisted.
+You can also use Web UI to add individual domains to be blocked or allowed.
 
 If you want to use CLI to customize ```simple-adblock``` config, refer to the [Customization Settings](#customization-settings) section.
 
@@ -139,10 +146,11 @@ In the Web UI the ```simple-adblock``` settings are split into ```basic``` and `
 |Advanced|debug|boolean|0|If enabled, output service full debug to ```/tmp/simple-adblock.log```. Please note that the debug file may clog up the router's RAM on some devices. Use with caution.|
 |Advanced|allow_non_ascii|boolean|0|Enable support for non-ASCII characters in the final AdBlocking file. Only enable if your target service supports non-ASCII characters. If you enable this on the system where DNS resolver doesn't support non-ASCII characters, it will crash. Use with caution.|
 |Advanced|compressed_cache|boolean|0|Create compressed cache of the AdBlocking file in router's persistent memory. Only recommended to be used on routers with large ROM and/or routers with metered/flaky internet connection.|
-||whitelist_domain|list/string||List of white-listed domains.|
-||whitelist_domains_url|list/string||List of URL(s) to text files containing white-listed domains. **Must** include either ```http://``` or ```https://``` (or, if ```curl``` is installed the ```file://```) prefix. Useful if you want to keep/publish a single white-list for multiple routers.|
-||blacklist_domains_url|list/string||List of URL(s) to text files containing black-listed domains. **Must** include either ```http://``` or ```https://``` (or, if ```curl``` is installed the ```file://```) prefix.|
-||blacklist_hosts_url|list/string||List of URL(s) to [hosts files](https://en.wikipedia.org/wiki/Hosts_(file)) containing black-listed domains. **Must** include either ```http://``` or ```https://``` (or, if ```curl``` is installed the ```file://```) prefix.|
+||allowed_domain|list/string||List of allowed domains.|
+||allowed_domains_url|list/string||List of URL(s) to text files containing allowed domains. **Must** include either ```http://``` or ```https://``` (or, if ```curl``` is installed the ```file://```) prefix. Useful if you want to keep/publish a single allow-list for multiple routers.|
+||blocked_domain|list/string||List of blocked domains.|
+||blocked_domains_url|list/string||List of URL(s) to text files containing blocked domains. **Must** include either ```http://``` or ```https://``` (or, if ```curl``` is installed the ```file://```) prefix.|
+||blocked_hosts_url|list/string||List of URL(s) to [hosts files](https://en.wikipedia.org/wiki/Hosts_(file)) containing block-listed domains. **Must** include either ```http://``` or ```https://``` (or, if ```curl``` is installed the ```file://```) prefix.|
 
 ### DNS Resolution Option
 
@@ -158,11 +166,11 @@ Currently supported options are:
 
 ## How Does It Work
 
-This service downloads (and processes in the background, removing comments and other useless data) lists of hosts and domains to be blocked, combines those lists into one big block list, removes duplicates and sorts it and then removes your whitelisted domains from the block list before converting to to DNSMASQ/Unbound-compatible file and restarting DNSMASQ/Unbound if needed. The result of the process is that DNSMASQ/Unbound return NXDOMAIN or 127.0.0.1 (depending on settings) for the blocked domains.
+This service downloads (and processes in the background, removing comments and other useless data) lists of hosts and domains to be blocked, combines those lists into one big block-list, removes duplicates and sorts it and then removes your allowed domains from the block-list before converting to to DNSMASQ/Unbound-compatible file and restarting DNSMASQ/Unbound if needed. The result of the process is that DNSMASQ/Unbound return NXDOMAIN or 127.0.0.1 (depending on settings) for the blocked domains.
 
-If you specify ```google.com``` as a domain to be whitelisted, you will have access to ```google.com```, ```www.google.com```, ```analytics.google.com```, but not fake domains like ```email-google.com``` or ```drive.google.com.verify.signin.normandeassociation.com``` for example. If you only want to allow ```www.google.com``` while blocking all other ```google.com``` subdomains, just specify ```www.google.com``` as domain to be whitelisted.
+If you specify ```google.com``` as a domain to be allowed, you will have access to ```google.com```, ```www.google.com```, ```analytics.google.com```, but not fake domains like ```email-google.com``` or ```drive.google.com.verify.signin.normandeassociation.com``` for example. If you only want to allow ```www.google.com``` while blocking all other ```google.com``` subdomains, just specify ```www.google.com``` as domain to be allowed.
 
-In general, whatever domain is specified to be whitelisted; it, along with with its subdomains will be whitelisted, but not any fake domains containing it.
+In general, whatever domain is specified to be allowed; it, along with with its subdomains will be allowed, but not any fake domains containing it.
 
 ## How It Does Not Work
 
index 44bdc8e25dd7a9186ec538041fe3706be4d3a598..17063a837b30abeed4613ac17a4f484831198217 100644 (file)
@@ -11,76 +11,65 @@ config simple-adblock 'config'
        option parallel_downloads '1'
        option debug '0'
        option compressed_cache '0'
-       list whitelist_domain 'raw.githubusercontent.com'
+       list allowed_domain 'cdn.jsdelivr.net'
 
 # Thu Oct  3 17:54:04 PDT 2019
 # File size: 4.0K
-       list blacklist_domains_url 'https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt'
-
-# File size: 4.0K
-#      list blacklist_domains_url 'https://www.dshield.org/feeds/suspiciousdomains_High.txt'
+       list blocked_domains_url 'https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt'
 
 # File size: 12.0K
-       list blacklist_domains_url 'https://ssl.bblck.me/blacklists/domain-list.txt'
+       list blocked_domains_url 'https://ssl.bblck.me/blacklists/domain-list.txt'
 
 # File size: 44.0K
-       list blacklist_domains_url 'https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt'
+       list blocked_domains_url 'https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt'
 
 # File size: 44.0K
-       list blacklist_domains_url 'https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt'
-
-# File size: 60.0K
-# use just one of the www.dshield.org blocklists
-       list blacklist_domains_url 'https://www.dshield.org/feeds/suspiciousdomains_Medium.txt'
-
-# File size: 64.0K
-# use just one of the www.dshield.org blocklists
-#      list blacklist_domains_url 'https://www.dshield.org/feeds/suspiciousdomains_Low.txt'
+       list blocked_domains_url 'https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt'
 
 # File size: 584.0K
-# blocklist too big for most routers
-#      list blacklist_domains_url 'https://mirror1.malwaredomains.com/files/justdomains'
+# block-list too big for most routers
+#      list blocked_domains_url 'https://mirror1.malwaredomains.com/files/justdomains'
 
 # File size: 16.0K
-       list blacklist_hosts_url 'https://adaway.org/hosts.txt'
+       list blocked_hosts_url 'https://adaway.org/hosts.txt'
        
 # File size: 20.0K
-       list blacklist_hosts_url 'https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/hosts.txt'
+       list blocked_hosts_url 'https://cdn.jsdelivr.net/gh/hoshsadiq/adblock-nocoin-list@master/hosts.txt'
 
 # File size: 36.0K
-       list blacklist_hosts_url 'https://www.malwaredomainlist.com/hostslist/hosts.txt'
+       list blocked_hosts_url 'https://www.malwaredomainlist.com/hostslist/hosts.txt'
 
 # File size: 80.0K
-       list blacklist_hosts_url 'https://pgl.yoyo.org/as/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext'
+       list blocked_hosts_url 'https://pgl.yoyo.org/as/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext'
 
 # File size: 388.0K
-# blocklist may be too big for some routers
-# blocklist may block some video-streaming content
-#      list blacklist_hosts_url 'https://raw.githubusercontent.com/jawz101/MobileAdTrackers/master/hosts'
+# block-list may be too big for some routers
+# block-list may block some video-streaming content
+#      list blocked_hosts_url 'https://cdn.jsdelivr.net/gh/jawz101/MobileAdTrackers@master/hosts'
 
 # File size: 424.0K
-# blocklist may be too big for some routers
-       list blacklist_hosts_url 'http://winhelp2002.mvps.org/hosts.txt'
+# block-list may be too big for some routers
+       list blocked_hosts_url 'http://winhelp2002.mvps.org/hosts.txt'
 
 # File size: 432.0K
-# blocklist may be too big for some routers
-       list blacklist_hosts_url 'https://someonewhocares.org/hosts/hosts'
+# block-list may be too big for some routers
+       list blocked_hosts_url 'https://someonewhocares.org/hosts/hosts'
 
 # File size: 624.0K
-# blocklist too big for most routers
-#  list blacklist_hosts_url 'http://sysctl.org/cameleon/hosts'
+# block-list too big for most routers
+#  list blocked_hosts_url 'http://sysctl.org/cameleon/hosts'
 
 # File size: 1.6M
-# blocklist too big for most routers
-#      list blacklist_hosts_url 'https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts'
+# block-list too big for most routers
+#      list blocked_hosts_url 'https://cdn.jsdelivr.net/gh/StevenBlack/hosts@master/hosts'
 
 # File size: 3.1M
-# blocklist too big for most routers
-#      list blacklist_hosts_url 'https://hostsfile.mine.nu/Hosts'
+# block-list too big for most routers
+#      list blocked_hosts_url 'https://hostsfile.mine.nu/Hosts'
 
 # File size: 23.0M
-# blocklist too big for most routers
-#      list blacklist_hosts_url 'https://dbl.oisd.nl/'
+# block-list too big for most routers
+#      list blocked_hosts_url 'https://hosts.oisd.nl/'
 
 # site was down on last check
-#      list blacklist_domains_url 'http://support.it-mate.co.uk/downloads/hosts.txt'
+#      list blocked_domains_url 'http://support.it-mate.co.uk/downloads/hosts.txt'
diff --git a/net/simple-adblock/files/simple-adblock.conf.update b/net/simple-adblock/files/simple-adblock.conf.update
new file mode 100644 (file)
index 0000000..80fcf2f
--- /dev/null
@@ -0,0 +1,10 @@
+s|whitelist_domains_url|allowed_domains_url|g
+s|whitelist_domain|allowed_domain|g
+s|blacklist_hosts_url|blocked_hosts_url|g
+s|blacklist_domains_url|blocked_domains_url|g
+s|blacklist_domain|blocked_domain|g
+s|dbl.oisd.nl|hosts.oisd.nl|g
+s|raw.githubusercontent.com/StevenBlack/hosts/|cdn.jsdelivr.net/gh/StevenBlack/hosts@|g
+s|raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/|cdn.jsdelivr.net/gh/hoshsadiq/adblock-nocoin-list@|g
+s|raw.githubusercontent.com/jawz101/MobileAdTrackers/|cdn.jsdelivr.net/gh/jawz101/MobileAdTrackers@|g
+/dshield.org/d
index fad1d399d3a2df6b077161bd72acbddffd3b4a6e..69a1ff6afa139428b11ddfd4da3fb406300074cf 100644 (file)
@@ -3,12 +3,16 @@
 # shellcheck disable=SC2039,SC1091
 PKG_VERSION='dev-test'
 
-export START=94
-export USE_PROCD=1
-export LC_ALL=C
+# shellcheck disable=SC2034
+START=94
+# shellcheck disable=SC2034
+USE_PROCD=1
+LC_ALL=C
 
-export EXTRA_COMMANDS='check dl killcache sizes show'
-export EXTRA_HELP='    check   Checks if specified domain is found in current blacklist
+# shellcheck disable=SC2034
+EXTRA_COMMANDS='check dl killcache sizes show'
+# shellcheck disable=SC2034
+EXTRA_HELP='   check   Checks if specified domain is found in current block-list
        dl      Force-downloads all enabled block-list
        sizes   Displays the file-sizes of enabled block-lists
        show    Shows the service last-run status'
@@ -44,23 +48,12 @@ readonly sharedMemoryError="/dev/shm/$packageName-error"
 readonly sharedMemoryOutput="/dev/shm/$packageName-output"
 readonly hostsFilter='/localhost/d;/^#/d;/^[^0-9]/d;s/^0\.0\.0\.0.//;s/^127\.0\.0\.1.//;s/[[:space:]]*#.*$//;s/[[:cntrl:]]$//;s/[[:space:]]//g;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;/[^[:alnum:]_.-]/d;'
 readonly domainsFilter='/^#/d;s/[[:space:]]*#.*$//;s/[[:space:]]*$//;s/[[:cntrl:]]$//;/[[:space:]]/d;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;/[^[:alnum:]_.-]/d;'
-readonly checkmark='\xe2\x9c\x93'
-readonly xmark='\xe2\x9c\x97'
 readonly _OK_='\033[0;32m\xe2\x9c\x93\033[0m'
 readonly _FAIL_='\033[0;31m\xe2\x9c\x97\033[0m'
 readonly __OK__='\033[0;32m[\xe2\x9c\x93]\033[0m'
 readonly __FAIL__='\033[0;31m[\xe2\x9c\x97]\033[0m'
 readonly _ERROR_='\033[0;31mERROR\033[0m'
 
-readonly messageSuccess='Success'
-readonly messageFail='Fail'
-readonly messageDownloading='Downloading'
-readonly messageReloading='Reloading'
-readonly messageRestarting='Restarting'
-readonly messageStarting='Starting'
-readonly messageForceReloading='Force-Reloading'
-readonly messageProcessing='Processing'
-readonly messageStopped='Stopped'
 getStatusText() {
        local _ret
        case "$1" in
@@ -70,6 +63,7 @@ getStatusText() {
                statusRestarting) _ret="Restarting";;
                statusForceReloading) _ret="Force Reloading";;
                statusDownloading) _ret="Downloading";;
+               statusProcessing) _ret="Processing";;
                statusError) _ret="Error";;
                statusWarning) _ret="Warning";;
                statusFail) _ret="Fail";;
@@ -85,14 +79,14 @@ getErrorText() {
                errorSharedMemory) _ret="failed to access shared memory";;
                errorSorting) _ret="failed to sort data file";;
                errorOptimization) _ret="failed to optimize data file";;
-               errorWhitelistProcessing) _ret="failed to process whitelist";;
+               errorAllowListProcessing) _ret="failed to process allow-list";;
                errorDataFileFormatting) _ret="failed to format data file";;
                errorMovingDataFile) _ret="failed to move data file '${A_TMP}' to '${outputFile}'";;
                errorCreatingCompressedCache) _ret="failed to create compressed cache";;
                errorRemovingTempFiles) _ret="failed to remove temporary files";;
                errorRestoreCompressedCache) _ret="failed to unpack compressed cache";;
                errorRestoreCache) _ret="failed to move '$outputCache' to '$outputFile'";;
-               errorOhSnap) _ret="failed to create blocklist or restart DNS resolver";;
+               errorOhSnap) _ret="failed to create block-list or restart DNS resolver";;
                errorStopping) _ret="failed to stop $serviceName";;
                errorDNSReload) _ret="failed to reload/restart DNS resolver";;
                errorDownloadingList) _ret="failed to download";;
@@ -108,8 +102,8 @@ output_ok() { output 1 "$_OK_"; output 2 "$__OK__\\n"; }
 output_okn() { output 1 "$_OK_\\n"; output 2 "$__OK__\\n"; }
 output_fail() { output 1 "$_FAIL_"; output 2 "$__FAIL__\\n"; }
 output_failn() { output 1 "$_FAIL_\\n"; output 2 "$__FAIL__\\n"; }
-str_replace() { printf "%b" "$1" | sed -e "s/$(printf "%b" "$2")/$(printf "%b" "$3")/g"; }
-str_contains() { test "$1" != "$(str_replace "$1" "$2" '')"; }
+str_replace() { printf "%b" "$1" | sed -e "s/$(printf "%b" "$2")/$(printf "%b" "$3")/g"; }
+str_contains() { test "$1" != "$(str_replace "$1" "$2" '')"; }
 compare_versions() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
 is_chaos_calmer() { ubus -S call system board | grep -q 'Chaos Calmer'; }
 is_ipset_procd() { compare_versions "$(sed -ne 's/^Version: //p' /usr/lib/opkg/info/firewall.control)" "2019-09-18"; }
@@ -139,12 +133,33 @@ output() {
        fi
 }
 
-export serviceEnabled forceDNS parallelDL debug allowIDN compressedCache     
-export targetDNS bootDelay dlTimeout curlRetry verbosity=1 led dnsInstance
-export whitelist_domains blacklist_domains
-export whitelist_domains_urls blacklist_domains_urls blacklist_hosts_urls
-export wan_if wan_gw wanphysdev dl_command serviceStatus dl_flag
-export outputFilter outputFilterIPv6 outputFile outputGzip outputCache ipv6Enabled
+serviceEnabled=1
+forceDNS=1
+parallelDL=1
+debug=0
+compressedCache=0
+ipv6Enabled=0
+bootDelay=120
+dlTimeout=20
+curlRetry=3
+verbosity=2
+led=''
+targetDNS=dnsmasq.servers
+dnsInstance=0
+allowed_domains=''
+blocked_domains=''
+allowed_domains_urls=''
+blocked_domains_urls=''
+blocked_hosts_urls=''
+dl_command=''
+dl_flag=''
+outputFilter=''
+outputFilterIPv6=''
+outputFile=''
+outputGzip=''
+outputCache='' 
+isSSLSupported=''
+allowIDN=0
 
 load_package_config() {
        config_load "$packageName"
@@ -161,11 +176,11 @@ load_package_config() {
        config_get led                        'config' 'led'
        config_get targetDNS                  'config' 'dns' 'dnsmasq.servers'
        config_get dnsInstance                'config' 'dns_instance' '0'
-       config_get whitelist_domains          'config' 'whitelist_domain'
-       config_get blacklist_domains          'config' 'blacklist_domain'
-       config_get whitelist_domains_urls     'config' 'whitelist_domains_url'
-       config_get blacklist_domains_urls     'config' 'blacklist_domains_url'
-       config_get blacklist_hosts_urls       'config' 'blacklist_hosts_url'
+       config_get allowed_domains            'config' 'allowed_domain'
+       config_get allowed_domains_urls       'config' 'allowed_domains_url'
+       config_get blocked_domains            'config' 'blocked_domain'
+       config_get blocked_domains_urls       'config' 'blocked_domains_url'
+       config_get blocked_hosts_urls         'config' 'blocked_hosts_url'
 
        if [ "$targetDNS" != 'dnsmasq.addnhosts' ] && [ "$targetDNS" != 'dnsmasq.conf' ] && \
                 [ "$targetDNS" != 'dnsmasq.servers' ] && [ "$targetDNS" != 'unbound.adb_list' ] && \
@@ -231,11 +246,11 @@ load_package_config() {
        fi
        . /lib/functions/network.sh
        . /usr/share/libubox/jshn.sh
-       # Prefer curl because it supports the file: scheme.
+       # Prefer curl because it supports the file:// scheme.
        if [ -x /usr/bin/curl ]; then
                dl_command="curl --insecure --retry $curlRetry --connect-timeout $dlTimeout --silent"
                dl_flag="-o"
-       elif wget -V 2>/dev/null | grep -q "+ssl"; then
+       elif wget --version 2>/dev/null | grep -q "+https"; then
                dl_command="wget --no-check-certificate --timeout $dlTimeout -q"
                dl_flag="-O"
        else
@@ -243,9 +258,19 @@ load_package_config() {
                dl_flag="-O"
        fi
        led="${led:+/sys/class/leds/$led}"
+       if curl --version 2>/dev/null | grep -q "https" \
+               || wget --version 2>/dev/null | grep -q "+https" \
+               || grep -q "libustream-mbedtls" /usr/lib/opkg/status \
+               || grep -q "libustream-openssl" /usr/lib/opkg/status \
+               || grep -q "libustream-wolfssl" /usr/lib/opkg/status; then
+               isSSLSupported=1
+       else
+               unset isSSLSupported
+       fi
 }
 
 is_enabled() {
+       wan_if=''; wan_gw='';
        load_package_config
 
        if [ "$debug" -ne 0 ]; then
@@ -447,7 +472,7 @@ tmpfs() {
                                stats) 
                                        printf "%b" "$stats"; return;;
                                triggers)
-                                       curReload="$parallelDL $debug $dlTimeout $whitelist_domains $blacklist_domains $whitelist_domains_urls $blacklist_domains_urls $blacklist_hosts_urls $targetDNS"
+                                       curReload="$parallelDL $debug $dlTimeout $allowed_domains $blocked_domains $allowed_domains_urls $blocked_domains_urls $blocked_hosts_urls $targetDNS"
                                        curRestart="$compressedCache $forceDNS $led"
                                        if [ ! -s "$jsonFile" ]; then
                                                ret='on_boot'
@@ -503,7 +528,7 @@ tmpfs() {
                                stats) 
                                        stats="$value";;
                                triggers) 
-                                       readReload="$parallelDL $debug $dlTimeout $whitelist_domains $blacklist_domains $whitelist_domains_urls $blacklist_domains_urls $blacklist_hosts_urls $targetDNS"
+                                       readReload="$parallelDL $debug $dlTimeout $allowed_domains $blocked_domains $allowed_domains_urls $blocked_domains_urls $blocked_hosts_urls $targetDNS"
                                        readRestart="$compressedCache $forceDNS $led"
                                        ;;
                        esac
@@ -668,19 +693,25 @@ process_url() {
        else
                type='Allowed'; D_TMP="$A_TMP";
        fi
+       if [ "${1:0:5}" == "https" ] && [ -z "$isSSLSupported" ]; then
+               output 1 "$_FAIL_"
+               output 2 "[DL] $type $label $__FAIL__\\n"
+               echo "errorNoSSLSupport|${1}" >> "$sharedMemoryError"
+               return 0
+       fi
        while [ -z "$R_TMP" ] || [ -e "$R_TMP" ]; do
                R_TMP="$(mktemp -u -q -t ${packageName}_tmp.XXXXXXXX)"
        done
        if ! $dl_command "$1" $dl_flag "$R_TMP" 2>/dev/null || [ ! -s "$R_TMP" ]; then
                output 1 "$_FAIL_"
                output 2 "[DL] $type $label $__FAIL__\\n"
-               echo "errorDownloadingList=${1}" >> "$sharedMemoryError"
+               echo "errorDownloadingList|${1}" >> "$sharedMemoryError"
        else
                sed -i "$filter" "$R_TMP"
                if [ ! -s "$R_TMP" ]; then
                        output 1 "$_FAIL_"
                        output 2 "[DL] $type $label $__FAIL__\\n"
-                       echo "errorParsingList=${1}" >> "$sharedMemoryError"
+                       echo "errorParsingList|${1}" >> "$sharedMemoryError"
                else
                        cat "${R_TMP}" >> "$D_TMP"
                        output 1 "$_OK_"
@@ -694,7 +725,7 @@ process_url() {
 download_lists() {
        local hf w_filter j=0 R_TMP
 
-       tmpfs set message "${messageDownloading}..."
+       tmpfs set message "$(getStatusText "statusDownloading")..."
        tmpfs set status "statusDownloading"
 
        rm -f "$A_TMP" "$B_TMP" "$outputFile" "$outputCache" "$outputGzip"
@@ -709,8 +740,8 @@ download_lists() {
        touch $A_TMP; touch $B_TMP;
        output 1 'Downloading lists '
        rm -f "$sharedMemoryError"
-       if [ -n "$blacklist_hosts_urls" ]; then
-               for hf in ${blacklist_hosts_urls}; do
+       if [ -n "$blocked_hosts_urls" ]; then
+               for hf in ${blocked_hosts_urls}; do
                        if [ "$parallelDL" -gt 0 ]; then
                                process_url "$hf" 'hosts' 'blocked' &
                        else
@@ -718,8 +749,8 @@ download_lists() {
                        fi
                done
        fi
-       if [ -n "$blacklist_domains_urls" ]; then
-               for hf in ${blacklist_domains_urls}; do
+       if [ -n "$blocked_domains_urls" ]; then
+               for hf in ${blocked_domains_urls}; do
                        if [ "$parallelDL" -gt 0 ]; then
                                process_url "$hf" 'domains' 'blocked' &
                        else
@@ -727,8 +758,8 @@ download_lists() {
                        fi
                done
        fi
-       if [ -n "$whitelist_domains_urls" ]; then
-               for hf in ${whitelist_domains_urls}; do
+       if [ -n "$allowed_domains_urls" ]; then
+               for hf in ${allowed_domains_urls}; do
                        if [ "$parallelDL" -gt 0 ]; then
                                process_url "$hf" 'domains' 'allowed' &
                        else
@@ -745,16 +776,16 @@ download_lists() {
                rm -f "$sharedMemoryError"
        fi
 
-       [ -n "$blacklist_domains" ] && for hf in ${blacklist_domains}; do echo "$hf" | sed "$domainsFilter" >> $B_TMP; done
-       whitelist_domains="${whitelist_domains}
+       [ -n "$blocked_domains" ] && for hf in ${blocked_domains}; do echo "$hf" | sed "$domainsFilter" >> $B_TMP; done
+       allowed_domains="${allowed_domains}
 $(cat $A_TMP)"
-       [ -n "$whitelist_domains" ] && for hf in ${whitelist_domains}; do hf="$(echo "$hf" | sed 's/\./\\./g')"; w_filter="$w_filter/^${hf}$/d;/\\.${hf}$/d;"; done
+       [ -n "$allowed_domains" ] && for hf in ${allowed_domains}; do hf="$(echo "$hf" | sed 's/\./\\./g')"; w_filter="$w_filter/^${hf}$/d;/\\.${hf}$/d;"; done
 
        [ ! -s "$B_TMP" ] && return 1
 
        output 1 'Processing downloads '
        output 2 'Sorting combined list '
-       tmpfs set message "$messageProcessing: sorting combined list"
+       tmpfs set message "$(getStatusText "statusProcessing"): sorting combined list"
        if [ "$allowIDN" -gt 0 ]; then
                if sort -u "$B_TMP" > "$A_TMP"; then
                        output_ok
@@ -777,7 +808,7 @@ $(cat $A_TMP)"
                 [ "$targetDNS" = 'unbound.adb_list' ]; then
                # TLD optimization written by Dirk Brenken (dev@brenken.org)
                output 2 'Optimizing combined list '
-               tmpfs set message "$messageProcessing: optimizing combined list"
+               tmpfs set message "$(getStatusText "statusProcessing"): optimizing combined list"
 #      sed -E 'G;:t;s/(.*)(\.)(.*)(\n)(.*)/\1\4\5\2\3/;tt;s/(.*)\n(\.)(.*)/\3\2\1/' is actually slower than awk
                if awk -F "." '{for(f=NF;f>1;f--)printf "%s.",$f;print $1}' "$A_TMP" > "$B_TMP"; then
                        if sort "$B_TMP" > "$A_TMP"; then
@@ -812,17 +843,17 @@ $(cat $A_TMP)"
                mv "$A_TMP" "$B_TMP"
        fi
 
-       output 2 'Whitelisting domains '
-       tmpfs set message "$messageProcessing: whitelisting domains"
+       output 2 'Allowing domains '
+       tmpfs set message "$(getStatusText "statusProcessing"): allowing domains"
        if sed -i "$w_filter" "$B_TMP"; then
                output_ok
        else
                output_failn
-               tmpfs add error "errorWhitelistProcessing"
+               tmpfs add error "errorAllowListProcessing"
        fi
 
        output 2 'Formatting merged file '
-       tmpfs set message "$messageProcessing: formatting merged file"
+       tmpfs set message "$(getStatusText "statusProcessing"): formatting merged file"
        if [ -z "$outputFilterIPv6" ]; then
                if sed "$outputFilter" "$B_TMP" > "$A_TMP"; then
                        output_ok
@@ -847,23 +878,23 @@ $(cat $A_TMP)"
        case "$targetDNS" in
                dnsmasq.addnhosts)
                        output 2 'Creating DNSMASQ addnhosts file '
-                       tmpfs set message "$messageProcessing: creating DNSMASQ addnhosts file"
+                       tmpfs set message "$(getStatusText "statusProcessing"): creating DNSMASQ addnhosts file"
                        ;;
                dnsmasq.conf)
                        output 2 'Creating DNSMASQ config file '
-                       tmpfs set message "$messageProcessing: creating DNSMASQ config file"
+                       tmpfs set message "$(getStatusText "statusProcessing"): creating DNSMASQ config file"
                        ;;
                dnsmasq.ipset)
                        output 2 'Creating DNSMASQ ipset file '
-                       tmpfs set message "$messageProcessing: creating DNSMASQ ipset file"
+                       tmpfs set message "$(getStatusText "statusProcessing"): creating DNSMASQ ipset file"
                        ;;
                dnsmasq.servers)
                        output 2 'Creating DNSMASQ servers file '
-                       tmpfs set message "$messageProcessing: creating DNSMASQ servers file"
+                       tmpfs set message "$(getStatusText "statusProcessing"): creating DNSMASQ servers file"
                        ;;
                unbound.adb_list)
                        output 2 'Creating Unbound adb_list file '
-                       tmpfs set message "$messageProcessing: creating Unbound adb_list file"
+                       tmpfs set message "$(getStatusText "statusProcessing"): creating Unbound adb_list file"
                        ;;
        esac
        if mv "$A_TMP" "$outputFile"; then
@@ -874,7 +905,7 @@ $(cat $A_TMP)"
        fi
        if [ "$compressedCache" -gt 0 ]; then
                output 2 'Creating compressed cache '
-               tmpfs set message "$messageProcessing: creating compressed cache"
+               tmpfs set message "$(getStatusText "statusProcessing"): creating compressed cache"
                if cacheOps 'createGzip'; then
                        output_ok
                else
@@ -885,7 +916,7 @@ $(cat $A_TMP)"
                rm -f "$outputGzip"
        fi
        output 2 'Removing temporary files '
-       tmpfs set message "$messageProcessing: removing temporary files"
+       tmpfs set message "$(getStatusText "statusProcessing"): removing temporary files"
        rm -f "/tmp/${packageName}_tmp.*" "$A_TMP" "$B_TMP" "$outputCache" || j=1
        if [ $j -eq 0 ]; then
                output_ok
@@ -1115,8 +1146,8 @@ showstatus() {
        fi
        if [ -n "$error" ]; then
                for c in $error; do
-                       url="${c##*=}"
-                       c="${c%=*}"
+                       url="${c##*|}"
+                       c="${c%|*}"
                        case "$c" in
                                errorDownloadingList|errorParsingList)
                                        output "$_ERROR_: $(getErrorText "$c") $url!\\n";;
@@ -1157,7 +1188,7 @@ check() {
        local string="$1" 
        local c="$(grep -c "$string" "$outputFile")"
        if [ ! -s "$outputFile" ]; then
-               echo "No blacklist ('$outputFile') found."
+               echo "No block-list ('$outputFile') found."
        elif [ -z "$string" ]; then
                echo "Usage: /etc/init.d/${packageName} check string"
        elif [ "$c" -gt 0 ]; then
@@ -1179,7 +1210,7 @@ check() {
                                grep "$string" "$outputFile" | sed 's|^local-zone: "||;s|" static$||;';;
                esac
        else
-               echo "The $string is not found in current blacklist ('$outputFile')."
+               echo "The $string is not found in current block-list ('$outputFile')."
        fi
 }
 
@@ -1188,39 +1219,39 @@ sizes() {
        load_package_config
        echo "# $(date)"
 
-       for i in $blacklist_domains_urls; do
+       for i in $blocked_domains_urls; do
                [ "${i//melmac}" != "$i" ] && continue
                if $dl_command "$i" $dl_flag /tmp/sast 2>/dev/null && [ -s /tmp/sast ]; then
                        echo "# File size: $(du -sh /tmp/sast | awk '{print $1}')"
                        if compare_versions "$(du -sk /tmp/sast)" "500"; then
-                               echo "# blocklist too big for most routers"
+                               echo "# block-list too big for most routers"
                        elif compare_versions "$(du -sk /tmp/sast)" "100"; then
-                               echo "# blocklist may be too big for some routers"
+                               echo "# block-list may be too big for some routers"
                        fi
                        rm -rf /tmp/sast
-                       echo "  list blacklist_domains_url '$i'"
+                       echo "  list blocked_domains_url '$i'"
                        echo ""
                else
                        echo "# site was down on last check"
-                       echo "#  list blacklist_domains_url '$i'"
+                       echo "#  list blocked_domains_url '$i'"
                        echo ""
                fi
        done
 
-       for i in $blacklist_hosts_urls; do
+       for i in $blocked_hosts_urls; do
                if $dl_command "$i" $dl_flag /tmp/sast 2>/dev/null && [ -s /tmp/sast ]; then
                        echo "# File size: $(du -sh /tmp/sast | awk '{print $1}')"
                        if compare_versions "$(du -sk /tmp/sast)" "500"; then
-                               echo "# blocklist too big for most routers"
+                               echo "# block-list too big for most routers"
                        elif compare_versions "$(du -sk /tmp/sast)" "100"; then
-                               echo "# blocklist may be too big for some routers"
+                               echo "# block-list may be too big for some routers"
                        fi
                        rm -rf /tmp/sast
-                       echo "  list blacklist_hosts_url '$i'"
+                       echo "  list blocked_hosts_url '$i'"
                        echo ""
                else
                        echo "# site was down on last check"
-                       echo "#  list blacklist_hosts_url '$i'"
+                       echo "#  list blocked_hosts_url '$i'"
                        echo ""
                fi
        done
index e65b1bc29b077c21f294bf6584cf3702ab7124eb..1c08ab6bdf4da6cdaa9d2060a9702727181b80ab 100644 (file)
@@ -3,7 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=softethervpn5
-PKG_VERSION:=5.01.9672
+PKG_VERSION:=5.01.9674
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
@@ -12,7 +12,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE_URL:=https://github.com/SoftEtherVPN/SoftEtherVPN/releases/download/$(PKG_VERSION)/
 PKG_SOURCE:=softether-vpn-src-$(PKG_VERSION).tar.gz
-PKG_HASH:=7c437d4d02d7e2a936b4c1ff7bc8f5abbf16786746deffa92d5f5f2fd7ba04fb
+PKG_HASH:=c4dc53f4912605a25c18357b0a0bf6dc059286ca901cb981abdf1a22d1649ddc
 
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/SoftEtherVPN-$(PKG_VERSION)
 PKG_BUILD_DIR:=$(BUILD_DIR)/SoftEtherVPN-$(PKG_VERSION)
index 23462d45cc47dce0b1e7658f779edb6d568d2d26..c4d9ee21e3285ce33985b1cd2b99d62a01cb6821 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=sqm-scripts
 PKG_SOURCE_VERSION:=ab763cba8b1516b3afa99760e0ca884f8b8d93b8
 PKG_VERSION:=1.4.0
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/tohojo/sqm-scripts
@@ -26,7 +26,7 @@ define Package/sqm-scripts
   CATEGORY:=Base system
   DEPENDS:=+tc +kmod-sched-core +kmod-ifb +iptables \
        +iptables-mod-ipopt +iptables-mod-conntrack-extra \
-       +!LINUX_4_14:kmod-sched-cake +LINUX_4_14:kmod-sched-cake-oot
+       +kmod-sched-cake-virtual
   TITLE:=SQM Scripts (QoS)
   PKGARCH:=all
 endef
index 4cadc7c3a062ad83251fdef21e4f52455b978069..1e0c46a44b1d41464f1965125cb64511947806df 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tcpreplay
-PKG_VERSION:=4.3.2
+PKG_VERSION:=4.3.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/appneta/tcpreplay/releases/download/v$(PKG_VERSION)
-PKG_HASH:=955aed6a40f49a5b8c1234fd0a928edc5c665d94b7755ab5769c30938e33f380
+PKG_HASH:=5e960e2a4432f583adbd11fa0855d17b73d9e0f2d6453b749f27aacaee53bab5
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=docs/LICENSE
index cad225e01b1c87c350d8ffbfd79c69f4d01e5ef1..ee6e327cfc4c9b1c56114ba766a61c99ddd0d136 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tor
-PKG_VERSION:=0.4.2.7
-PKG_RELEASE:=1
+PKG_VERSION:=0.4.3.5
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dist.torproject.org/ \
        https://archive.torproject.org/tor-package-archive
-PKG_HASH:=06a1d835ddf382f6bca40a62e8fb40b71b2f73d56f0d53523c8bd5caf9b3026d
+PKG_HASH:=616a0e4ae688d0e151d46e3e4258565da4d443d1ddbd316db0b90910e2d5d868
 PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de> \
                Peter Wagner <tripolar@gmx.at>
 PKG_LICENSE_FILES:=LICENSE
@@ -103,18 +103,12 @@ CONFIGURE_ARGS += \
        --disable-lzma \
        --disable-zstd \
        --with-tor-user=tor \
-       --with-tor-group=tor
+       --with-tor-group=tor \
+       --with-pic
 
 TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
 TARGET_LDFLAGS += -Wl,--gc-sections -flto
 
-ifneq ($(CONFIG_SSP_SUPPORT),y)
-       CONFIGURE_ARGS += \
-               --disable-gcc-hardening
-else
-       EXTRA_CFLAGS += $(FPIC)
-endif
-
 CONFIGURE_VARS += \
        CROSS_COMPILE="yes"
 
index 4e452c6d5aedb699466fbcc18b23a424ebae6335..37d6398ac7b6311a165aadb34f809a26dc69b678 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=transmission
 PKG_VERSION:=3.00
-PKG_RELEASE:=2
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GITHUB/transmission/transmission-releases/master
index 7be368200d5bd728b7ed09f48ca5a9ec8321e835..242157277292c73992b1dc93f5e73b694d353c24 100644 (file)
@@ -41,7 +41,11 @@ transmission() {
 
        local enabled
        config_get_bool enabled "$cfg" enabled 0
-       [ "$enabled" -gt 0 ] || return 1
+       [ "$enabled" -gt 0 ] || {
+               echo "Transmission not enabled. Please enable in /etc/config/transmission"
+               logger -t "transmission" -p "daemon.info" "Transmission not enabled. Please enable in /etc/config/transmission"
+               return 1
+       }
 
        local config_dir
        config_get config_dir "$cfg" 'config_dir' '/var/etc/transmission'
@@ -156,6 +160,7 @@ transmission() {
        procd_add_jail_mount_rw "$config_dir/blocklists"
        procd_add_jail_mount_rw "$config_dir/stats.json"
        procd_add_jail_mount_rw "$download_dir"
+       [ -d "$web_home" ] && procd_add_jail_mount_rw "$web_home"
        procd_close_instance
 }
 
index 2f0c1f744362bfc75f0b068387c0441b57a9e821..c6963ef39bb4a7664d6eda836ad6342b6c6c1530 100644 (file)
@@ -91,4 +91,9 @@ define Package/uacme/install
        $(INSTALL_BIN) ./files/acme.init $(1)/etc/init.d/acme
 endef
 
+define Package/uacme/prerm
+#!/bin/sh
+sed -i '/\/etc\/init\.d\/acme start/d' /etc/crontabs/root
+endef
+
 $(eval $(call BuildPackage,uacme))
index 3c6e46987e9602f20b25f3beeb78a834861e3175..fff82d1d19b9eef1fd462b64d8c0d91b6c7e85c9 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unbound
 PKG_VERSION:=1.10.1
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://nlnetlabs.nl/downloads/unbound
index 653a3f836734ec83e254ab97935dea9fec48c631..ec06de5a0629b291bcecfc3e1416d0a51030db58 100644 (file)
@@ -65,6 +65,8 @@ In this case, Unbound serves your local network directly for all purposes. It wi
 **/etc/config/unbound**:
 ```
 config unbound
+  # likely you want to match domain option between Unbound and dnsmasq
+  option domain 'yourdomain'
   option dhcp_link 'dnsmasq'
   option listen_port '53'
   ...
@@ -259,6 +261,10 @@ config unbound
     Boolean. If enabled version.server, version.bind, id.server, and
     hostname.bind queries are refused.
 
+  option interface_auto '1'
+    Boolean. If enabled DNS replies will have the same source address as
+    the request was sent to.
+
   option listen_port '53'
     Port. Incoming. Where Unbound will listen for queries.
 
index 32a2e938a193284181ab34ab608e9024bd3e277f..a57d81d4ea4083c9ad50b731f3bb5e378c9b6c14 100644 (file)
@@ -36,6 +36,7 @@ UB_B_NTP_BOOT=1
 UB_B_QUERY_MIN=0
 UB_B_QRY_MINST=0
 UB_B_AUTH_ROOT=0
+UB_B_IF_AUTO=1
 
 UB_D_CONTROL=0
 UB_D_DOMAIN_TYPE=static
@@ -720,6 +721,11 @@ unbound_conf() {
   esac
 
 
+  if [ "$UB_B_IF_AUTO" -gt 0 ] ; then
+    echo "  interface-automatic: yes" >> $UB_CORE_CONF
+  fi
+
+
   case "$UB_D_RESOURCE" in
     # Tiny - Unbound's recommended cheap hardware config
     tiny)   rt_mem=1  ; rt_conn=2  ; rt_buff=1 ;;
@@ -1208,6 +1214,7 @@ unbound_uci() {
   config_get_bool UB_B_LOCL_BLCK  "$cfg" rebind_localhost 0
   config_get_bool UB_B_DNSSEC     "$cfg" validator 0
   config_get_bool UB_B_NTP_BOOT   "$cfg" validator_ntp 1
+  config_get_bool UB_B_IF_AUTO    "$cfg" interface_auto 1
 
   config_get UB_IP_DNS64    "$cfg" dns64_prefix "64:ff9b::/96"
 
index 604c960aa346465173c2da20bc0b9ee4f752b7e9..12809b95d358323c11ddb3153f296f0aa4d0d4b3 100644 (file)
@@ -11,6 +11,7 @@ config unbound
        option edns_size '1280'
        option extended_stats '0'
        option hide_binddata '1'
+       option interface_auto '1'
        option listen_port '53'
        option localservice '1'
        option manual_conf '0'
index 55ce64ad22b6c628a32cf1f00438e586eba1f8d2..8bb8304cf75d12858db9feb1fb42e69f6c7f09a2 100644 (file)
@@ -115,6 +115,8 @@ opkg install vpn-policy-routing luci-app-vpn-policy-routing
 
 If these packages are not found in the official feed/repo for your version of OpenWrt/LEDE Project, you will need to add a custom repo to your router following instructions on [GitHub](https://github.com/stangri/openwrt_packages/blob/master/README.md#on-your-router)/[jsDelivr](https://cdn.jsdelivr.net/gh/stangri/openwrt_packages@master/README.md#on-your-router) first.
 
+These packages have been designed to be backwards compatible with OpenWrt 19.07, OpenWrt 18.06, LEDE Project 17.01 and OpenWrt 15.05. However, on systems older than OpenWrt 18.06.6 and/or a system which has deviated too far (or haven't been updated to keep in-sync) with official OpenWrt release you may get a message about missing ```luci-compat``` dependency, which (and only which) you can safely ignore and force-install the luci app using ```opkg install --force-depends``` command instead of ```opkg install```.
+
 ### Requirements
 
 This service requires the following packages to be installed on your router: ```ipset```, ```resolveip```, ```ip-full``` (or a ```busybox``` built with ```ip``` support), ```kmod-ipt-ipset``` and ```iptables```.
@@ -746,7 +748,11 @@ config openvpn 'vpnc'
 
 5. <a name="footnote5"> </a> When using the ```dnsmasq.ipset``` option, please make sure to flush the DNS cache of the local devices, otherwise domain policies may not work until you do. If you're not sure how to flush the DNS cache (or if the device/OS doesn't offer an option to flush its DNS cache), reboot your local devices when starting to use the service and/or when connecting data-capable device to your WiFi.
 
-6. <a name="footnote6"> </a> When using the policies targeting physical devices, make sure you have the following packages installed: ```kmod-br-netfilter```, ```kmod-ipt-physdev``` and ```iptables-mod-physdev```.
+6. <a name="footnote6"> </a> When using the policies targeting physical devices, make sure you have the following packages installed: ```kmod-br-netfilter```, ```kmod-ipt-physdev``` and ```iptables-mod-physdev```. Also, if your physical device is a part of the bridge, you may have to set ```net.bridge.bridge-nf-call-iptables``` to `1` in your ```/etc/sysctl.conf```.
+
+### First Troubleshooting Step
+
+If your router is set to use [default routing via VPN tunnel](#a-word-about-default-routing) and the WAN-targeting policies do not work, you need to stop your VPN tunnel first and ensure that you still have internet connection. If your router is set up to use the default routing via VPN tunnel and when you stop the VPN tunnel you have no internet connection, this package can't help you. You first need to make sure that you do have internet connection when the VPN tunnel is stopped.
 
 ### Multiple OpenVPN Clients
 
@@ -821,13 +827,13 @@ Set the following to the appropriate section of your ```.ovpn``` file:
 - For OpenVPN 2.4 and newer client ```.ovpn``` file:
 
     ```text
-    pull_filter 'ignore "redirect-gateway"'
+    pull-filter ignore "redirect-gateway"
     ```
 
 - For OpenVPN 2.3 and older client ```.ovpn``` file:
 
     ```text
-    route_nopull '1'
+    route-nopull "1"
     ```
 
 #### Wireguard tunnel
diff --git a/net/wifidog-ng/Makefile b/net/wifidog-ng/Makefile
deleted file mode 100644 (file)
index 1d972cb..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-
-# Copyright (C) 2018 Jianhui Zhao
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=wifidog-ng
-PKG_VERSION:=2.0.2
-PKG_RELEASE:=2
-
-PKG_LICENSE:=LGPL-2.1
-PKG_LICENSE_FILES:=LICENSE
-
-PKG_MAINTAINER:=Jianhui Zhao <zhaojh329@gmail.com>
-
-include $(INCLUDE_DIR)/kernel.mk
-include $(INCLUDE_DIR)/package.mk
-
-define Package/wifidog-ng/default
-  SUBMENU:=Captive Portals
-  SECTION:=net
-  CATEGORY:=Network
-  TITLE:=Next generation WifiDog implemented in Lua
-  DEPENDS:=+kmod-wifidog-ng +libubox-lua +libuci-lua +libubus-lua \
-         +ipset +dnsmasq-full +luasocket
-endef
-
-define Package/wifidog-ng-nossl
-  $(Package/wifidog-ng/default)
-  TITLE += (NO SSL)
-  DEPENDS += +libuhttpd-nossl
-  VARIANT:=nossl
-  CONFLICTS:=wifidog-ng-openssl wifidog-ng-wolfssl wifidog-ng-mbedtls
-endef
-
-define Package/wifidog-ng-openssl
-  $(Package/wifidog-ng/default)
-  TITLE += (openssl)
-  DEPENDS += +libuhttpd-openssl
-  VARIANT:=openssl
-  CONFLICTS:=wifidog-ng-wolfssl wifidog-ng-mbedtls
-endef
-
-define Package/wifidog-ng-wolfssl
-  $(Package/wifidog-ng/default)
-  TITLE += (wolfssl)
-  DEPENDS += +libuhttpd-wolfssl
-  VARIANT:=wolfssl
-  CONFLICTS:=wifidog-ng-mbedtls
-endef
-
-define Package/wifidog-ng-mbedtls
-  $(Package/wifidog-ng/default)
-  TITLE += (mbedtls)
-  DEPENDS += +libuhttpd-mbedtls
-  VARIANT:=mbedtls
-endef
-
-define Package/wifidog-ng/default/install
-       $(INSTALL_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/etc/config \
-               $(1)/etc/wifidog-ng $(1)//etc/hotplug.d/dhcp $(1)/usr/lib/lua
-       $(INSTALL_BIN) ./files//wifidog-ng.lua $(1)/usr/bin/wifidog-ng
-       $(INSTALL_BIN) ./files/wifidog-ng.init $(1)/etc/init.d/wifidog-ng
-       $(INSTALL_CONF) ./files/wifidog-ng.config $(1)/etc/config/wifidog-ng
-       $(INSTALL_CONF) ./files/ssl.key $(1)/etc/wifidog-ng
-       $(INSTALL_CONF) ./files/ssl.crt $(1)/etc/wifidog-ng
-       $(INSTALL_DATA) ./files/wifidog-ng.hotplug $(1)/etc/hotplug.d/dhcp/00-wifidog-ng
-       $(CP) ./files/wifidog-ng $(1)/usr/lib/lua
-endef
-
-define Package/wifidog-ng/default/conffiles
-/etc/config/wifidog-ng
-/etc/wifidog-ng
-endef
-
-Package/wifidog-ng-nossl/conffiles = $(Package/wifidog-ng/default/conffiles)
-Package/wifidog-ng-openssl/conffiles = $(Package/wifidog-ng/default/conffiles)
-Package/wifidog-ng-wolfssl/conffiles = $(Package/wifidog-ng/default/conffiles)
-Package/wifidog-ng-mbedtls/conffiles = $(Package/wifidog-ng/default/conffiles)
-
-Package/wifidog-ng-nossl/install = $(Package/wifidog-ng/default/install)
-Package/wifidog-ng-openssl/install = $(Package/wifidog-ng/default/install)
-Package/wifidog-ng-wolfssl/install = $(Package/wifidog-ng/default/install)
-Package/wifidog-ng-mbedtls/install = $(Package/wifidog-ng/default/install)
-
-define KernelPackage/wifidog-ng
-  SUBMENU:=Other modules
-  TITLE:=Kernel module for wifidog-ng
-  DEPENDS:=+kmod-nf-nat +kmod-ipt-ipset
-  FILES:=$(PKG_BUILD_DIR)/wifidog-ng.ko
-endef
-
-include $(INCLUDE_DIR)/kernel-defaults.mk
-
-define Build/Compile
-       $(MAKE) $(KERNEL_MAKEOPTS) M="$(PKG_BUILD_DIR)" modules
-endef
-
-$(eval $(call BuildPackage,wifidog-ng-nossl))
-$(eval $(call BuildPackage,wifidog-ng-mbedtls))
-$(eval $(call BuildPackage,wifidog-ng-wolfssl))
-$(eval $(call BuildPackage,wifidog-ng-openssl))
-
-$(eval $(call KernelPackage,wifidog-ng))
diff --git a/net/wifidog-ng/files/ssl.crt b/net/wifidog-ng/files/ssl.crt
deleted file mode 100644 (file)
index 9fb965b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgICCCUwDQYJKoZIhvcNAQELBQAwczELMAkGA1UEBhMCQ04x
-EDAOBgNVBAgMB1RpYW5qaW4xEDAOBgNVBAcMB1RpYW5qaW4xFTATBgNVBAoMDENI
-SU5BU1NMIEluYzEpMCcGA1UEAwwgQ0hJTkFTU0wgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkwHhcNMTgwMzAzMTQyODQ2WhcNMTkwMzAzMTQyODQ2WjCBgzELMAkGA1UE
-BhMCQ04xEDAOBgNVBAgMB3NpY2h1YW4xEjAQBgNVBAoMCXpoYW9qaDMyOTETMBEG
-A1UECwwKd2lmaWRvZy1uZzEQMA4GA1UEAwwHd2lmaWRvZzEnMCUGCSqGSIb3DQEJ
-ARYYamlhbmh1aXpoYW8zMjlAZ21haWwuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAyD8gd3XIJvkYeySP2q0toYsfvhlA+lceUPiMi16U1nR3TD5U
-uTNGsvYBDMiR7vG0NKClFT73u/d8HBcYcTBgbhHfBkz4v9S5aMdUYQsUMQEITBdE
-hPEeXVqqj796Lu6iEkNUFrtam2h3t+kYODjbszk2woBtohaRWfNyOB/AJH6Stv4l
-jkPYwt9NHcKQSm9kjcGsAqQwkgVd4UfHX2G20gaTijimeHlJL2wv61uLBUvYux0E
-+98KIcEIYu3BVAfoO2Omg/o73cwH+sFTswEXPuXirwrOzmJ850WBLScLkSKSATrY
-1YdU6CRaJuP/POFfSqAhn/mPRNQFU5fAaDcfEwIDAQABo34wfDAJBgNVHRMEAjAA
-MC8GCWCGSAGG+EIBDQQiFiBDSElOQVNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTAdBgNVHQ4EFgQU9XS4dW6j1r1lEOIHWkoJx3zSqqgwHwYDVR0jBBgwFoAUXB8j
-+sjhITHC2Df2iPzSb8JUQzMwDQYJKoZIhvcNAQELBQADggEBAFsaq5qehwp0zMqY
-cb0IX5/f4ZnscX587SM/NhORODa0p/bT3EwG3grtljHhRW+s/4c4gPgilrzV0Fxn
-Y5FodLfFdbNVjhgeSrDCRmwIvKSe81LYOe+rbfTBF0g3YYWDwcwc8tFvcwWBxqWn
-4F+u9aIKgHU7HXQokqCxEOTFjrAHVJf1OqtRMTXlBBb6ypVdHn0glfSxOIC/Vp2T
-5UR7oVdD4E8ASqe7Q7MmTeY377CRagfd0WD9XK7o+cbKkLLW1QWc8ht1rHjGp+/2
-gmkxEmpX2Xhpv1FX/b6sj1dTmOc2bXBzpvV6yonRMu5dYsOrdDwbH/T05X+hCFW9
-G86ZLFY=
------END CERTIFICATE-----
diff --git a/net/wifidog-ng/files/ssl.key b/net/wifidog-ng/files/ssl.key
deleted file mode 100644 (file)
index 6f56d74..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIPyB3dcgm+Rh7
-JI/arS2hix++GUD6Vx5Q+IyLXpTWdHdMPlS5M0ay9gEMyJHu8bQ0oKUVPve793wc
-FxhxMGBuEd8GTPi/1Llox1RhCxQxAQhMF0SE8R5dWqqPv3ou7qISQ1QWu1qbaHe3
-6Rg4ONuzOTbCgG2iFpFZ83I4H8AkfpK2/iWOQ9jC300dwpBKb2SNwawCpDCSBV3h
-R8dfYbbSBpOKOKZ4eUkvbC/rW4sFS9i7HQT73wohwQhi7cFUB+g7Y6aD+jvdzAf6
-wVOzARc+5eKvCs7OYnznRYEtJwuRIpIBOtjVh1ToJFom4/884V9KoCGf+Y9E1AVT
-l8BoNx8TAgMBAAECggEAK/JmvrDzt1HtxIDWrWhaXly5H7BNKWPbPGv/9EpSoeo3
-kF0RnP+a4YXJ3zNZi7YyFWa4NDx4hCEhdMzAyX6TezSi3LAh23/lHRC5/P5AdSzD
-1Gc6225LerN+QUQFna0zlox+NOrzTK4VsCAQ963K0b+ZvAARj4QibDpYc+bL9XYK
-fVrZSnGJhNY3S6YjTF4oyMejKxk+HPhgCVEcZCHiC0RmXVqfETe6Cu0UtDPTTK5Q
-IXYYZ0HLsqaGWwGCWm/ji6HjNCG1dUhUp/yZR+7X45Utok3Rd3wo0kxZGJ7LHH4N
-541qcFbaT3rX39uPypuK5dSc5lb98FAOl79jL/wnUQKBgQDjEycf6VKZYf8d/MMV
-4+0YrFV7sdi0k4TC+lFmfJZVFHqcPn99q3cO2b9npgLDpQpwpcyBGMh6hWufVXXA
-ctrxg8vjKBHG8MT70Lulvi+G3Fldw7EHVVQGEHRqPaSzA035JyVanDs6lgoqjj9b
-BuMQidIeaj2t28pEhc0rYstW6wKBgQDhwRzoCirKrtJDWclDkjbzkGUfoAKMz2p2
-mSAs2xCdrx8vtFzUXcCLsvlXa+hIEe4O5cUZg+WLPfXiV4gtF74PTkmYADXRTUBl
-dHzfjVWQINEYFsWOEP5eYB0VWiA52JUaCuHuHILt6CSy3h8xPtnq+/oEFTeqh/2C
-XoN+seKeeQKBgQDUE1c/HpLeXf/+6crp7u3JVWqhFADo5b3gvBi6NzHQVEgPFO/N
-Vw7i98sj6pA6WTHe83qEN7lFdMaHETHgg2SonAcYKJwxyTywUspuiampsrJkOBhm
-WPMYltWjQ99GsZdpU343miJXHTpxdFkHku8OyylK7r6cWeIXDUAJfUOb8QKBgFbk
-ZoTljOzwdxvXTkFE4QPEmzed9f1OxHKbo6fANdgLlJxe9rAC2d6rZ49/iCtdQ1zW
-kZOtkceTdLXG7TI2BkCL6IWp5w0Fh/jE6l99XeaYywJTmXyCC/Y1VlxmkSrSsykP
-8UAeF0MM7DswhZ8FywjILcYuiHuJ1ki8qi40t745AoGAT/5imiro59cHMbbGEQb+
-42oBY7RxeHkk6+8WTJA6kqv8tuOK3gvDFm5cRJVCduVF/Jf+276IMoTMEb8kBGQA
-R3CRsYwLPrpdWu2q9Ho1KtH+azt/d+3uglT9g3fhvFieNIwkRgaNNJQC6wmddDeG
-MEYv4HO1LykipsDVsFadVCk=
------END PRIVATE KEY-----
diff --git a/net/wifidog-ng/files/wifidog-ng.config b/net/wifidog-ng/files/wifidog-ng.config
deleted file mode 100644 (file)
index c4c1503..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-config gateway
-    option enabled 1
-    option interface 'lan'
-    option port 2060
-    option dhcp_host_white 1
-    option ssl_port 8443
-    option checkinterval 30
-    option client_timeout 5
-    option temppass_time 30
-config server
-    option host 'authserver.com'
-    option port 80
-    option ssl 0
-    option path '/wifidog/'
-    option login_path 'login'
-    option portal_path 'portal'
-    option msg_path 'gw_message.php'
-    option ping_path 'ping'
-    option auth_path 'auth'
\ No newline at end of file
diff --git a/net/wifidog-ng/files/wifidog-ng.hotplug b/net/wifidog-ng/files/wifidog-ng.hotplug
deleted file mode 100644 (file)
index b1c2842..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-[ "$ACTION" = "add" -o "$ACTION" = "update" ] || exit 0
-ubus list wifidog-ng > /dev/null 2>&1 || exit 0
-ubus call wifidog-ng roam "{\"mac\":\"$MACADDR\", \"ip\":\"$IPADDR\"}"
diff --git a/net/wifidog-ng/files/wifidog-ng.init b/net/wifidog-ng/files/wifidog-ng.init
deleted file mode 100644 (file)
index d88acb5..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-#!/bin/sh /etc/rc.common
-
-USE_PROCD=1
-START=95
-
-BIN=/usr/bin/wifidog-ng
-
-global_dhcp_host_white=1
-
-validate_gateway_section() {
-       uci_load_validate wifidog-ng gateway "$1" "$2" \
-               'enabled:bool:0' \
-               'interface:uci("network", "@interface"):lan' \
-               'dhcp_host_white:bool:1'
-}
-
-start_wifidog() {
-       [ "$2" = 0 ] || {
-               echo "validation gateway failed" >&2
-               exit 1
-       }
-
-       [ $enabled = 1 ] || exit 0
-
-       [ $dhcp_host_white = 1 ] || global_dhcp_host_white=0
-
-       # timeout = 24.855 days
-       ipset -! create wifidog-ng-mac hash:mac timeout 2147483
-       ipset -! create wifidog-ng-ip hash:ip
-
-       modprobe wifidog-ng
-       echo "enabled=1" > /proc/wifidog-ng/config
-
-       procd_open_instance
-       procd_set_param command $BIN
-       procd_set_param respawn
-       procd_close_instance
-}
-
-validate_server_section() {
-       uci_load_validate wifidog-ng server "$1" "$2" \
-               'host:host'
-}
-
-parse_server() {
-       [ "$2" = 0 ] || {
-               echo "validation server failed" >&2
-               exit 1
-       }
-
-       if validate_data ip4addr "$host" 2> /dev/null; then
-               ipset add wifidog-ng-ip $host
-       else
-               echo "ipset=/$host/wifidog-ng-ip" >> /tmp/dnsmasq.d/wifidog-ng
-       fi
-}
-
-validate_validated_user_section() {
-       uci_load_validate wifidog-ng validated_user "$1" "$2" \
-               'mac:macaddr'
-}
-
-parse_validated_user() {
-       [ "$2" = 0 ] || {
-               echo "validation validated_user failed" >&2
-               exit 1
-       }
-
-       [ -n "$mac" ] && ipset add wifidog-ng-mac $mac
-}
-
-validate_validated_domain_section() {
-       uci_load_validate wifidog-ng validated_domain "$1" "$2" \
-               'domain:host'
-}
-
-parse_validated_domain() {
-       [ "$2" = 0 ] || {
-               echo "validation validated_domain failed" >&2
-               exit 1
-       }
-
-       [ -n "$domain" ] && echo "ipset=/$domain/wifidog-ng-ip" >> /tmp/dnsmasq.d/wifidog-ng
-}
-
-validate_dhcp_host_section() {
-       uci_load_validate dhcp host "$1" "$2" \
-               'mac:macaddr'
-}
-
-parse_dhcp_host() {
-       [ "$2" = 0 ] || {
-               echo "validation validated dhcp host failed" >&2
-               exit 1
-       }
-
-       [ -n "$mac" ] && ipset add wifidog-ng-mac $mac
-}
-
-start_service() {
-       config_load wifidog-ng
-       config_foreach validate_gateway_section gateway start_wifidog
-
-       echo -n > /tmp/dnsmasq.d/wifidog-ng
-
-       config_foreach validate_server_section server parse_server
-       config_foreach validate_validated_user_section validated_user parse_validated_user
-       config_foreach validate_validated_domain_section validated_domain parse_validated_domain
-
-       [ $global_dhcp_host_white = 1 ] && {
-               config_load dhcp
-               config_foreach validate_dhcp_host_section host parse_dhcp_host
-       }
-
-       /etc/init.d/dnsmasq restart &
-}
-
-stop_service() {
-       rmmod wifidog-ng
-
-       ipset destroy wifidog-ng-mac
-       ipset destroy wifidog-ng-ip
-}
-
-service_triggers() {
-       procd_add_reload_trigger "wifidog-ng"
-
-       procd_open_validate
-       validate_gateway_section
-       validate_server_section
-       validate_validated_user_section
-       validate_validated_domain_section
-       validate_dhcp_host_section
-       procd_close_validate
-}
diff --git a/net/wifidog-ng/files/wifidog-ng.lua b/net/wifidog-ng/files/wifidog-ng.lua
deleted file mode 100644 (file)
index c6a63d6..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env lua
-
---[[
-  Copyright (C) 2018 Jianhui Zhao <jianhuizhao329@gmail.com>
-  This program is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 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
-  Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-  USA
- --]]
-
-local uloop = require "uloop"
-local uh = require "uhttpd"
-local auth = require "wifidog-ng.auth"
-local ubus = require "wifidog-ng.ubus"
-local version = require "wifidog-ng.version"
-local heartbeat = require "wifidog-ng.heartbeat"
-
-uh.log(uh.LOG_INFO, "Version: " .. version.string())
-
-uloop.init()
-
-ubus.init()
-auth.init()
-heartbeat.start()
-
-uloop.run()
diff --git a/net/wifidog-ng/files/wifidog-ng/auth.lua b/net/wifidog-ng/files/wifidog-ng/auth.lua
deleted file mode 100644 (file)
index 63666a4..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
---[[
-  Copyright (C) 2018 Jianhui Zhao <jianhuizhao329@gmail.com>
-  This program is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 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
-  Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-  USA
- --]]
-
-local uh = require "uhttpd"
-local http = require "socket.http"
-local util = require "wifidog-ng.util"
-local config = require "wifidog-ng.config"
-
-local M = {}
-
-local apple_host = {
-    ["captive.apple.com"] = true,
-    ["www.apple.com"] = true,
-}
-
-local terms = {}
-
-local function is_authed_user(mac)
-    local r = os.execute("ipset test wifidog-ng-mac " .. mac ..  " 2> /dev/null")
-    return r == 0
-end
-
-local function allow_user(mac, temppass)
-    if not temppass then
-        terms[mac].authed = true
-        os.execute("ipset add wifidog-ng-mac " .. mac)
-    else
-        local cfg = config.get()
-        os.execute("ipset add wifidog-ng-mac " .. mac .. " timeout " .. cfg.temppass_time)
-    end
-end
-
-local function deny_user(mac)
-    os.execute("ipset del wifidog-ng-mac " .. mac)
-end
-
-function M.get_terms()
-    local r = {}
-    for k, v in pairs(terms) do
-        if v.authed then
-            r[k] = {ip = v.ip}
-        end
-    end
-
-    return r
-end
-
-function M.new_term(ip, mac, token)
-    terms[mac] = {ip = ip, token = token}
-    if token then
-        terms[mac].authed = true
-        allow_user(mac)
-    end
-end
-
-local function http_callback_auth(cl)
-    local cfg = config.get()
-    local token = cl:get_var("token")
-    local ip = cl:get_remote_addr()
-    local mac = util.arp_get(cfg.gw_ifname, ip)
-
-    if not mac then
-        uh.log(uh.LOG_ERR, "Not found macaddr for " .. ip)
-        cl:send_error(401, "Unauthorized", "Not found your macaddr")
-        return uh.REQUEST_DONE
-    end
-
-    if token and #token > 0 then
-        if cl:get_var("logout") then
-            local url = string.format("%s&stage=logout&ip=%s&mac=%s&token=%s", cfg.auth_url, ip, mac, token)
-            http.request(url)
-            deny_user(mac)
-        else
-            local url = string.format("%s&stage=login&ip=%s&mac=%s&token=%s", cfg.auth_url, ip, mac, token)
-            local r = http.request(url)
-
-            if not r then
-                cl:send_error(401, "Unauthorized")
-                return uh.REQUEST_DONE
-            end
-
-            local auth = r:match("Auth: (%d)")
-            if auth == "1" then
-                allow_user(mac)
-                cl:redirect(302, string.format("%s&mac=%s", cfg.portal_url, mac))
-            else
-                cl:redirect(302, string.format("%s&mac=%s", cfg.msg_url, mac))
-                return uh.REQUEST_DONE
-            end
-        end
-    else
-        cl:send_error(401, "Unauthorized")
-        return uh.REQUEST_DONE
-    end
-end
-
-local function http_callback_temppass(cl)
-    local cfg = config.get()
-    local ip = cl:get_remote_addr()
-    local mac = util.arp_get(cfg.gw_ifname, ip)
-
-    if not mac then
-        uh.log(uh.LOG_ERR, "Not found macaddr for " .. ip)
-        cl:send_error(401, "Unauthorized", "Not found your macaddr")
-        return uh.REQUEST_DONE
-    end
-
-    local script = cl:get_var("script") or ""
-
-    cl:send_header(200, "OK", -1)
-    cl:header_end()
-    allow_user(mac, true)
-    cl:chunk_send(cl:get_var("script") or "");
-    cl:request_done()
-
-    return uh.REQUEST_DONE
-end
-
-local function http_callback_404(cl, path)
-    local cfg = config.get()
-
-    if cl:get_http_method() ~= uh.HTTP_METHOD_GET then
-        cl:send_error(401, "Unauthorized")
-        return uh.REQUEST_DONE
-    end
-
-    local ip = cl:get_remote_addr()
-    local mac = util.arp_get(cfg.gw_ifname, ip)
-    if not mac then
-        uh.log(uh.LOG_ERR, "Not found macaddr for " .. ip)
-        cl:send_error(401, "Unauthorized", "Not found your macaddr")
-        return uh.REQUEST_DONE
-    end
-
-    term = terms[mac]
-    if not term then
-        terms[mac] = {ip = ip}
-    end
-
-    term = terms[mac]
-
-    if is_authed_user(mac) then
-        cl:redirect(302, "%s&mac=%s", cfg.portal_url, mac)
-        return uh.REQUEST_DONE
-    end
-
-    cl:send_header(200, "OK", -1)
-    cl:header_end()
-
-    local header_host = cl:get_header("host")
-    if apple_host[header_host] then
-        local http_ver = cl:get_http_version()
-        if http_ver == uh.HTTP_VER_10 then
-            if not term.apple then
-                cl:chunk_send("fuck you")
-                term.apple = true
-                cl:request_done()
-                return uh.REQUEST_DONE
-            end
-        end
-    end
-
-    local redirect_html = [[
-        <!doctype html><html><head><title>Success</title>
-        <script type="text/javascript">
-        setTimeout(function() {location.replace('%s&ip=%s&mac=%s');}, 1);</script>
-        <style type="text/css">body {color:#FFF}</style></head>
-        <body>Success</body></html>
-        ]]
-
-    cl:chunk_send(string.format(redirect_html, cfg.login_url, ip, mac))
-    cl:request_done()
-
-    return uh.REQUEST_DONE
-end
-
-local function on_request(cl, path)
-    if path == "/wifidog/auth" then
-        return http_callback_auth(cl)
-    elseif path == "/wifidog/temppass" then
-        return http_callback_temppass(cl)
-    end
-
-    return uh.REQUEST_CONTINUE
-end
-
-function M.init()
-    local cfg = config.get()
-
-    local srv = uh.new(cfg.gw_address, cfg.gw_port)
-
-    srv:on_request(on_request)
-    srv:on_error404(http_callback_404)
-
-    if uh.SSL_SUPPORTED then
-        local srv_ssl = uh.new(cfg.gw_address, cfg.gw_ssl_port)
-
-        srv_ssl:ssl_init("/etc/wifidog-ng/ssl.crt", "/etc/wifidog-ng/ssl.key")
-
-        srv_ssl:on_request(on_request)
-        srv_ssl:on_error404(http_callback_404)
-    end
-end
-
-return M
diff --git a/net/wifidog-ng/files/wifidog-ng/config.lua b/net/wifidog-ng/files/wifidog-ng/config.lua
deleted file mode 100644 (file)
index 04f3d00..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
---[[
-  Copyright (C) 2018 Jianhui Zhao <jianhuizhao329@gmail.com>
-  This program is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 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
-  Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-  USA
- --]]
-
-local uci = require "uci"
-local util = require "wifidog-ng.util"
-
-local M = {}
-
-local cfg = {}
-
-function M.parse()
-    local c = uci.cursor()
-
-    c:foreach('wifidog-ng', 'gateway', function(s)
-        local port = s.port or 2060
-        local ssl_port = s.ssl_port or 8443
-        local interface = s.interface or "lan"
-        local checkinterval = s.checkinterval or 30
-        local client_timeout = s.client_timeout or 5
-        local temppass_time = s.temppass_time or 30
-        local id = s.id
-        local address = s.address
-
-        cfg.gw_port = tonumber(port)
-        cfg.gw_ssl_port = tonumber(ssl_port)
-        cfg.checkinterval = tonumber(checkinterval)
-        cfg.client_timeout = tonumber(client_timeout)
-        cfg.temppass_time = tonumber(temppass_time)
-        cfg.gw_address = s.address
-        cfg.gw_id = s.id
-
-        local st = util.ubus("network.interface." .. interface, "status")
-        cfg.gw_ifname = st.device
-
-        if not cfg.gw_address then
-            cfg.gw_address = st["ipv4-address"][1].address
-        end
-
-        if not cfg.gw_id then
-            local devst = util.ubus("network.device", "status", {name = st.device})
-            local macaddr = devst.macaddr
-            cfg.gw_id = macaddr:gsub(":", ""):upper()
-        end
-    end)
-
-    c:foreach('wifidog-ng', 'server', function(s)
-        local host = s.host
-        local path = s.path or "/wifidog/"
-        local gw_port = cfg.gw_port
-        local gw_id = cfg.gw_id
-        local gw_address = cfg.gw_address
-        local ssid = cfg.ssid or ""
-        local proto, port = "http", ""
-        
-
-        if s.port ~= "80" and s.port ~= "443" then
-            port = ":" .. s.port
-        end
-
-        if s.ssl == "1" then
-            proto = "https"
-        end
-
-        cfg.login_url = string.format("%s://%s%s%s%s?gw_address=%s&gw_port=%d&gw_id=%s&ssid=%s",
-            proto, host, port, path, s.login_path, gw_address, gw_port, gw_id, ssid)
-
-        cfg.auth_url = string.format("%s://%s%s%s%s?gw_id=%s",
-            proto, host, port, path, s.auth_path, gw_id)
-
-        cfg.ping_url = string.format("%s://%s%s%s%s?gw_id=%s",
-            proto, host, port, path, s.ping_path, gw_id)
-
-        cfg.portal_url = string.format("%s://%s%s%s%s?gw_id=%s",
-            proto, host, port, path, s.portal_path, gw_id)
-
-        cfg.msg_url = string.format("%s://%s%s%s%s?gw_id=%s",
-            proto, host, port, path, s.msg_path, gw_id)
-    end)
-
-    cfg.parsed = true
-end
-
-function M.get()
-    if not cfg.parsed then
-        M.parse()
-    end
-
-    return cfg
-end
-
-function M.add_whitelist(typ, value)
-    local c = uci.cursor()
-    local opt
-
-    if typ == "mac" then
-        typ = "validated_user"
-        opt = "mac"
-    elseif typ == "domain" then
-        typ = "validated_domain"
-        opt = "domain"
-    else
-        return
-    end
-
-    local exist = false
-    c:foreach("wifidog-ng", typ, function(s)
-        if s[opt] == value then
-            exist = true
-        end
-    end)
-
-    if not exist then
-        local s = c:add("wifidog-ng", typ)
-        c:set("wifidog-ng", s, opt, value)
-        c:commit("wifidog-ng")
-    end
-end
-
-function M.del_whitelist(typ, value)
-    local c = uci.cursor()
-    local opt
-
-    if typ == "mac" then
-        typ = "validated_user"
-        opt = "mac"
-    elseif typ == "domain" then
-        typ = "validated_domain"
-        opt = "domain"
-    else
-        return
-    end
-
-    c:foreach("wifidog-ng", typ, function(s)
-        if s[opt] == value then
-            c:delete("wifidog-ng", s[".name"])
-        end
-    end)
-
-    c:commit("wifidog-ng")
-end
-
-return M
diff --git a/net/wifidog-ng/files/wifidog-ng/heartbeat.lua b/net/wifidog-ng/files/wifidog-ng/heartbeat.lua
deleted file mode 100644 (file)
index 0649be2..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
---[[
-  Copyright (C) 2018 Jianhui Zhao <jianhuizhao329@gmail.com>
-  This program is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 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
-  Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-  USA
- --]]
-
-local uloop = require "uloop"
-local http = require "socket.http"
-local util = require "wifidog-ng.util"
-local config = require "wifidog-ng.config"
-
-local M = {}
-
-local timer = nil
-local start_time = os.time()
-
-local function heartbeat()
-    local cfg = config.get()
-
-    timer:set(1000 * cfg.checkinterval)
-
-    local sysinfo = util.ubus("system", "info")
-
-    local url = string.format("%s&sys_uptime=%d&sys_memfree=%d&sys_load=%d&wifidog_uptime=%d",
-        cfg.ping_url, sysinfo.uptime, sysinfo.memory.free, sysinfo.load[1], os.time() - start_time)
-    http.request(url)
-end
-
-function M.start()
-    timer = uloop.timer(heartbeat, 1000)
-end
-
-return M
diff --git a/net/wifidog-ng/files/wifidog-ng/ubus.lua b/net/wifidog-ng/files/wifidog-ng/ubus.lua
deleted file mode 100644 (file)
index a2c57a2..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
---[[
-  Copyright (C) 2018 Jianhui Zhao <jianhuizhao329@gmail.com>
-  This program is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 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
-  Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-  USA
- --]]
-
-local uci = require "uci"
-local ubus = require "ubus"
-local http = require "socket.http"
-local auth = require "wifidog-ng.auth"
-local config = require "wifidog-ng.config"
-
-
-local M = {}
-
-local conn = nil
-
-local ubus_codes = {
-    ["INVALID_COMMAND"] = 1,
-    ["INVALID_ARGUMENT"] = 2,
-    ["METHOD_NOT_FOUND"] = 3,
-    ["NOT_FOUND"] = 4,
-    ["NO_DATA"] = 5,
-    ["PERMISSION_DENIED"] = 6,
-    ["TIMEOUT"] = 7,
-    ["NOT_SUPPORTED"] = 8,
-    ["UNKNOWN_ERROR"] = 9,
-    ["CONNECTION_FAILED"] = 10
-}
-
-local function reload_validated_domain()
-    local c = uci.cursor()
-
-    local file = io.open("/tmp/dnsmasq.d/wifidog-ng", "w")
-
-    c:foreach("wifidog-ng", "validated_domain", function(s)
-        file:write("ipset=/" .. s.domain .. "/wifidog-ng-ip\n")
-    end)
-    file:close()
-
-    os.execute("/etc/init.d/dnsmasq restart &")
-end
-
-local methods = {
-    ["wifidog-ng"] = {
-        roam = {
-            function(req, msg)
-                local cfg = config.get()
-
-                if not msg.ip or not msg.mac then
-                    return ubus_codes["INVALID_ARGUMENT"]
-                end
-
-                local url = string.format("%s&stage=roam&ip=%s&mac=%s", cfg.auth_url, msg.ip, msg.mac)
-                local r = http.request(url) or ""
-                local token = r:match("token=(%w+)")
-                if token then
-                    auth.new_term(msg.ip, msg.mac, token)
-                end
-            end, {ip = ubus.STRING, mac = ubus.STRING }
-        },
-        term = {
-            function(req, msg)
-                if msg.action == "show" then
-                    conn:reply(req, {terms = auth.get_terms()});
-                    return
-                end
-
-                if not msg.action or not msg.mac then
-                    return ubus_codes["INVALID_ARGUMENT"]
-                end
-
-                if msg.action == "add" then
-                    auth.allow_user(mac)
-                elseif msg.action == "del" then
-                    auth.deny_user(mac)
-                end
-            end, {action = ubus.STRING, mac = ubus.STRING }
-        },
-        whitelist = {
-            function(req, msg)
-                if not msg.action or not msg.type or not msg.value then
-                    return ubus_codes["INVALID_ARGUMENT"]
-                end
-
-                if msg.action == "add" then
-                    config.add_whitelist(msg.type, msg.value)
-                    if msg.type == "mac" then
-                        auth.allow_user(msg.value)
-                    end
-                elseif msg.action == "del" then
-                    config.del_whitelist(msg.type, msg.value)
-                    if msg.type == "mac" then
-                        auth.deny_user(msg.value)
-                    end
-                end
-
-                if msg.type == "domain" then
-                    reload_validated_domain()
-                end
-            end, {action = ubus.STRING, type = ubus.STRING, value = ubus.STRING }
-        },
-    }
-}
-
-function M.init()
-    conn = ubus.connect()
-    if not conn then
-        error("Failed to connect to ubus")
-    end
-
-    conn:add(methods)
-end
-
-return M
diff --git a/net/wifidog-ng/files/wifidog-ng/util.lua b/net/wifidog-ng/files/wifidog-ng/util.lua
deleted file mode 100644 (file)
index bf14e7d..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
---[[
-  Copyright (C) 2018 Jianhui Zhao <jianhuizhao329@gmail.com>
-  This program is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 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
-  Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-  USA
- --]]
-
-local _ubus = require "ubus"
-local _ubus_connection = nil
-
-local M = {}
-
-function M.arp_get(ifname, ipaddr)
-    for l in io.lines("/proc/net/arp") do
-        local f = {}
-
-        for e in string.gmatch(l, "%S+") do
-            f[#f + 1] = e
-        end
-
-        if f[1] == ipaddr and f[6] == ifname then
-            return f[4]
-        end
-    end
-end
-
-function M.read_file(path, len)
-    local file = io.open(path, "r")
-    if not file then return nil end
-    
-    if not len then len = "*a" end
-
-    local data = file:read(len)
-    file:close()
-
-    return data
-end
-
-local ubus_codes = {
-       "INVALID_COMMAND",
-    "INVALID_ARGUMENT",
-    "METHOD_NOT_FOUND",
-    "NOT_FOUND",
-    "NO_DATA",
-    "PERMISSION_DENIED",
-    "TIMEOUT",
-    "NOT_SUPPORTED",
-    "UNKNOWN_ERROR",
-    "CONNECTION_FAILED"
-}
-
-function M.ubus(object, method, data)
-       if not _ubus_connection then
-       _ubus_connection = _ubus.connect()
-       assert(_ubus_connection, "Unable to establish ubus connection")
-       end
-       
-       if object and method then
-       if type(data) ~= "table" then
-               data = { }
-       end
-       local rv, err = _ubus_connection:call(object, method, data)
-       return rv, err, ubus_codes[err]
-       elseif object then
-       return _ubus_connection:signatures(object)
-       else
-       return _ubus_connection:objects()
-       end
-end
-
-return M
diff --git a/net/wifidog-ng/files/wifidog-ng/version.lua b/net/wifidog-ng/files/wifidog-ng/version.lua
deleted file mode 100644 (file)
index feb4819..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
---[[
-  Copyright (C) 2018 Jianhui Zhao <jianhuizhao329@gmail.com>
-  This program is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 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
-  Lesser General Public License for more details.
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-  USA
- --]]
-
-local M = {
-    MAJOR = 2,
-    MINOR = 0,
-    PATCH = 0
-}
-
-function M.string()
-    return string.format("%d.%d.%d", M.MAJOR, M.MINOR, M.PATCH)
-end
-
-return M
diff --git a/net/wifidog-ng/src/Makefile b/net/wifidog-ng/src/Makefile
deleted file mode 100644 (file)
index f829d5d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-ifeq ($(findstring openwrt, $(CC)),)
-ifneq ($(KERNELRELEASE),)
-       wifidog-ng-objs := main.o config.o
-       obj-m := wifidog-ng.o
-else
-       KDIR = /lib/modules/$(shell uname -r)/build
-
-all:
-       make -C $(KDIR) M=$(PWD) modules
-
-clean:
-       rm -rf *.o *.ko *.mod.c Module.* modules.* .*.cmd .tmp*
-
-endif
-else
-       wifidog-ng-objs := main.o config.o
-       obj-m := wifidog-ng.o
-endif
diff --git a/net/wifidog-ng/src/config.c b/net/wifidog-ng/src/config.c
deleted file mode 100644 (file)
index c692d9e..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- *  Copyright (C) 2017 jianhui zhao <zhaojh329@gmail.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 2 as
- *  published by the Free Software Foundation.
- */
-
-#include <linux/uaccess.h>
-#include <linux/inetdevice.h>
-#include <linux/seq_file.h>
-#include <linux/version.h>
-
-#include "config.h"
-
-static struct proc_dir_entry *proc;
-static struct config conf;
-
-static int update_gw_interface(const char *interface)
-{
-    int ret = 0;
-    struct net_device *dev;
-    struct in_device *in_dev;
-#if LINUX_VERSION_CODE > KERNEL_VERSION(5, 2, 21)
-    const struct in_ifaddr *ifa;
-#endif
-
-    dev = dev_get_by_name(&init_net, interface);
-    if (!dev) {
-        pr_err("Not found interface: %s\n", interface);
-        return -ENOENT;
-    }
-
-    conf.interface_ifindex = dev->ifindex;
-
-    in_dev = inetdev_by_index(dev_net(dev), conf.interface_ifindex);
-    if (!in_dev) {
-        pr_err("Not found in_dev on %s\n", interface);
-        ret = -ENOENT;
-        goto QUIT;
-    }
-
-#if LINUX_VERSION_CODE > KERNEL_VERSION(5, 2, 21)
-    in_dev_for_each_ifa_rcu(ifa, in_dev) {
-        if (ifa->ifa_flags & IFA_F_SECONDARY)
-            continue;
-#else
-    for_primary_ifa(in_dev) {
-#endif
-        conf.interface_ipaddr = ifa->ifa_local;
-        conf.interface_mask = ifa->ifa_mask;
-        conf.interface_broadcast = ifa->ifa_broadcast;
-
-        pr_info("Found ip from %s: %pI4\n", interface, &conf.interface_ipaddr);
-        break;
-#if LINUX_VERSION_CODE > KERNEL_VERSION(5, 2, 21)
-    }
-#else
-    } endfor_ifa(in_dev)
-#endif
-
-QUIT:   
-    dev_put(dev);
-
-    return ret;
-}
-
-static int proc_config_show(struct seq_file *s, void *v)
-{
-    seq_printf(s, "enabled(RW) = %d\n", conf.enabled);
-    seq_printf(s, "interface(RW) = %s\n", conf.interface);
-    seq_printf(s, "ipaddr(RO) = %pI4\n", &conf.interface_ipaddr);
-    seq_printf(s, "netmask(RO) = %pI4\n", &conf.interface_mask);
-    seq_printf(s, "broadcast(RO) = %pI4\n", &conf.interface_broadcast);
-    seq_printf(s, "port(RW) = %d\n", conf.port);
-    seq_printf(s, "ssl_port(RW) = %d\n", conf.ssl_port);
-
-    return 0;
-}
-
-static ssize_t proc_config_write(struct file *file, const char __user *buf, size_t size, loff_t *ppos)
-{
-    char data[128];
-    char *delim, *key;
-    const char *value;
-    int update = 0;
-
-    if (size == 0)
-        return -EINVAL;
-
-    if (size > sizeof(data))
-        size = sizeof(data);
-
-    if (copy_from_user(data, buf, size))
-        return -EFAULT;
-
-    data[size - 1] = 0;
-
-    key = data;
-    while (key && *key) {
-        while (*key && (*key == ' '))
-            key++;
-
-        delim = strchr(key, '=');
-        if (!delim)
-            break;
-
-        *delim++ = 0;
-        value = delim;
-
-        delim = strchr(value, '\n');
-        if (delim)
-            *delim++ = 0;
-
-        if (!strcmp(key, "enabled")) {
-            conf.enabled = simple_strtol(value, NULL, 0);
-            if (conf.enabled)
-                update = 1;
-            pr_info("wifidog %s\n", conf.enabled ? "enabled" : "disabled");
-        } else if (!strcmp(key, "interface")) {
-            strncpy(conf.interface, value, sizeof(conf.interface) - 1);
-            update = 1;
-        } else if (!strcmp(key, "port")) {
-            conf.port = simple_strtol(value, NULL, 0);
-        } else if (!strcmp(key, "ssl_port")) {
-            conf.ssl_port = simple_strtol(value, NULL, 0);
-        }
-
-        key = delim;
-    }
-
-    if (update)
-        update_gw_interface(conf.interface);
-    return size;
-}
-
-static int proc_config_open(struct inode *inode, struct file *file)
-{
-    return single_open(file, proc_config_show, NULL);
-}
-
-const static struct file_operations proc_config_ops = {
-    .owner      = THIS_MODULE,
-    .open       = proc_config_open,
-    .read       = seq_read,
-    .write      = proc_config_write,
-    .llseek     = seq_lseek,
-    .release    = single_release
-};
-
-int init_config(void)
-{
-    int ret = 0;
-
-    conf.interface_ifindex= -1;
-    conf.port = 2060;
-    conf.ssl_port = 8443;
-    strcpy(conf.interface, "br-lan");
-
-    proc = proc_mkdir(PROC_DIR_NAME, NULL);
-    if (!proc) {
-        pr_err("can't create dir /proc/"PROC_DIR_NAME"/\n");
-        return -ENODEV;;
-    }
-
-    if (!proc_create("config", 0644, proc, &proc_config_ops)) {
-        pr_err("can't create file /proc/"PROC_DIR_NAME"/config\n");
-        ret = -EINVAL;
-        goto remove;
-    }
-
-    return 0;
-
-remove:
-    remove_proc_entry(PROC_DIR_NAME, NULL);
-    return ret;
-}
-
-void deinit_config(void)
-{
-    remove_proc_entry("config", proc);
-    remove_proc_entry(PROC_DIR_NAME, NULL);
-}
-
-struct config *get_config(void)
-{
-    return &conf;
-}
diff --git a/net/wifidog-ng/src/config.h b/net/wifidog-ng/src/config.h
deleted file mode 100644 (file)
index 60bde1a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- *  Copyright (C) 2017 jianhui zhao <zhaojh329@gmail.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 2 as
- *  published by the Free Software Foundation.
- */
-
-#ifndef __CONFIG_H_
-#define __CONFIG_H_
-
-#include <linux/proc_fs.h>
-
-#define PROC_DIR_NAME "wifidog-ng"
-
-struct config {
-    int enabled;
-    char interface[32];
-    int interface_ifindex;
-    __be32 interface_ipaddr;
-    __be32 interface_mask;
-    __be32 interface_broadcast;
-    int port;
-    int ssl_port;
-};
-
-int init_config(void);
-void deinit_config(void);
-struct config *get_config(void);
-
-#endif
diff --git a/net/wifidog-ng/src/main.c b/net/wifidog-ng/src/main.c
deleted file mode 100644 (file)
index ac17078..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- *  Copyright (C) 2017 jianhui zhao <zhaojh329@gmail.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 2 as
- *  published by the Free Software Foundation.
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/version.h>
-
-#include <linux/ip.h>
-#include <linux/tcp.h>
-#include <linux/udp.h>
-#include <net/netfilter/nf_nat.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
-#include <net/netfilter/nf_nat_l3proto.h>
-#endif
-
-#include "utils.h"
-#include "config.h"
-
-#define IPS_HIJACKED    (1 << 31)
-#define IPS_ALLOWED     (1 << 30)
-
-#if LINUX_VERSION_CODE > KERNEL_VERSION(4, 17, 19)
-static u32 wd_nat_setup_info(struct sk_buff *skb, struct nf_conn *ct)
-#else
-static u32 wd_nat_setup_info(void *priv, struct sk_buff *skb,
-    const struct nf_hook_state *state, struct nf_conn *ct)
-#endif
-{
-    struct config *conf = get_config();
-    struct tcphdr *tcph = tcp_hdr(skb);
-    union nf_conntrack_man_proto proto;
-#if LINUX_VERSION_CODE > KERNEL_VERSION(4, 17, 19)
-    struct nf_nat_range2 newrange = {};
-#else
-    struct nf_nat_range newrange = {};
-#endif
-    static uint16_t PORT_80 = htons(80);
-
-    proto.tcp.port = (tcph->dest == PORT_80) ? htons(conf->port) : htons(conf->ssl_port);
-    newrange.flags       = NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED;
-    newrange.min_addr.ip = conf->interface_ipaddr;
-    newrange.max_addr.ip = conf->interface_ipaddr;
-    newrange.min_proto   = proto;
-    newrange.max_proto   = proto;
-
-    ct->status |= IPS_HIJACKED;
-
-    return nf_nat_setup_info(ct, &newrange, NF_NAT_MANIP_DST);
-}
-
-static u32 wifidog_hook(void *priv, struct sk_buff *skb, const struct nf_hook_state *state)
-{
-    struct config *conf = get_config();
-    struct iphdr *iph = ip_hdr(skb);
-    struct nf_conn *ct;
-    struct tcphdr *tcph;
-    struct udphdr *udph;
-    enum ip_conntrack_info ctinfo;
-    static uint16_t PORT_80 = htons(80);    /* http */
-    static uint16_t PORT_443 = htons(443);  /* https */
-    static uint16_t PORT_67 = htons(67);    /* dhcp */
-    static uint16_t PORT_53 = htons(53);    /* dns */
-
-    if (unlikely(!conf->enabled))
-        return NF_ACCEPT;
-
-    if (state->in->ifindex != conf->interface_ifindex)
-        return NF_ACCEPT;
-
-    /* Accept broadcast */
-    if (skb->pkt_type == PACKET_BROADCAST || skb->pkt_type == PACKET_MULTICAST)
-        return NF_ACCEPT;
-
-    /* Accept all to local area networks */
-    if ((iph->daddr | ~conf->interface_mask) == conf->interface_broadcast)
-        return NF_ACCEPT;
-
-    ct = nf_ct_get(skb, &ctinfo);
-    if (!ct || (ct->status & IPS_ALLOWED))
-        return NF_ACCEPT;
-
-    if (ct->status & IPS_HIJACKED) {
-        if (is_allowed_mac(skb, state)) {
-            /* Avoid duplication of authentication */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)
-            nf_reset(skb);
-#else
-            nf_reset_ct(skb);
-#endif
-            nf_ct_kill(ct);
-        }
-        return NF_ACCEPT;
-    } else if (ctinfo == IP_CT_NEW && (is_allowed_dest_ip(skb, state) || is_allowed_mac(skb, state))) {
-        ct->status |= IPS_ALLOWED;
-        return NF_ACCEPT;
-    }
-
-    switch (iph->protocol) {
-    case IPPROTO_TCP:
-        tcph = tcp_hdr(skb);
-        if(tcph->dest == PORT_53 || tcph->dest == PORT_67) {
-            ct->status |= IPS_ALLOWED;
-            return NF_ACCEPT;
-        }
-
-        if (tcph->dest == PORT_80 || tcph->dest == PORT_443)
-            goto redirect;
-        else
-            return NF_DROP;
-
-    case IPPROTO_UDP:
-        udph = udp_hdr(skb);
-        if(udph->dest == PORT_53 || udph->dest == PORT_67) {
-            ct->status |= IPS_ALLOWED;
-            return NF_ACCEPT;
-        }
-        return NF_DROP;
-
-    default:
-        ct->status |= IPS_ALLOWED;
-        return NF_ACCEPT;
-    }
-
-redirect:
-    /* all packets from unknown client are dropped */
-    if (ctinfo != IP_CT_NEW || (ct->status & IPS_DST_NAT_DONE)) {
-        pr_debug("dropping packets of suspect stream, src:%pI4, dst:%pI4\n", &iph->saddr, &iph->daddr);
-        return NF_DROP;
-    }
-
-#if LINUX_VERSION_CODE > KERNEL_VERSION(4, 17, 19)
-    return wd_nat_setup_info(skb, ct);
-#else
-    return nf_nat_ipv4_in(priv, skb, state, wd_nat_setup_info);
-#endif
-}
-
-static struct nf_hook_ops wifidog_ops __read_mostly = {
-    .hook       = wifidog_hook,
-    .pf         = PF_INET,
-    .hooknum    = NF_INET_PRE_ROUTING,
-    .priority   = NF_IP_PRI_NAT_DST
-};
-
-static int __init wifidog_init(void)
-{
-    int ret;
-
-    ret = init_config();
-    if (ret)
-        return ret;
-
-#if LINUX_VERSION_CODE > KERNEL_VERSION(5, 0, 21)
-    ret = nf_nat_ipv4_register_fn(&init_net, &wifidog_ops);
-#elif LINUX_VERSION_CODE > KERNEL_VERSION(4, 17, 19)
-    ret = nf_nat_l3proto_ipv4_register_fn(&init_net, &wifidog_ops);
-#elif LINUX_VERSION_CODE > KERNEL_VERSION(4, 12, 14)
-    ret = nf_register_net_hook(&init_net, &wifidog_ops);
-#else
-    ret = nf_register_hook(&wifidog_ops);
-#endif
-    if (ret < 0) {
-        pr_err("can't register hook\n");
-        goto remove_config;
-    }
-
-    pr_info("kmod of wifidog is started\n");
-
-    return 0;
-
-remove_config:
-    deinit_config();
-    return ret;
-}
-
-static void __exit wifidog_exit(void)
-{
-    deinit_config();
-
-#if LINUX_VERSION_CODE > KERNEL_VERSION(5, 0, 21)
-    nf_nat_ipv4_unregister_fn(&init_net, &wifidog_ops);
-#elif LINUX_VERSION_CODE > KERNEL_VERSION(4, 17, 19)
-    nf_nat_l3proto_ipv4_unregister_fn(&init_net, &wifidog_ops);
-#elif LINUX_VERSION_CODE > KERNEL_VERSION(4, 12, 14)
-    nf_unregister_net_hook(&init_net, &wifidog_ops);
-#else
-    nf_unregister_hook(&wifidog_ops);
-#endif
-
-    pr_info("kmod of wifidog-ng is stop\n");
-}
-
-module_init(wifidog_init);
-module_exit(wifidog_exit);
-
-MODULE_AUTHOR("jianhui zhao <zhaojh329@gmail.com>");
-MODULE_LICENSE("GPL");
diff --git a/net/wifidog-ng/src/utils.h b/net/wifidog-ng/src/utils.h
deleted file mode 100644 (file)
index 816bacb..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *  Copyright (C) 2017 jianhui zhao <zhaojh329@gmail.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 2 as
- *  published by the Free Software Foundation.
- */
-
-#ifndef __UTILS_H_
-#define __UTILS_H_
-
-#include <linux/netfilter/ipset/ip_set.h>
-
-static inline int wd_ip_set_test(const char *name, const struct sk_buff *skb,
-    struct ip_set_adt_opt *opt, const struct nf_hook_state *state)
-{
-    static struct xt_action_param par = { };
-    struct ip_set *set = NULL;
-    ip_set_id_t index;
-    int ret;
-
-    index = ip_set_get_byname(state->net, name, &set);
-    if (!set)
-        return 0;
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-    par.net = state->net;
-#else
-    par.state = state;
-#endif
-
-    ret = ip_set_test(index, skb, &par, opt);
-    ip_set_put_byindex(state->net, index);
-    return ret;
-}
-
-static inline int is_allowed_mac(struct sk_buff *skb, const struct nf_hook_state *state)
-{
-    static struct ip_set_adt_opt opt = {
-        .family = NFPROTO_IPV4,
-        .dim = IPSET_DIM_ONE,
-        .flags = IPSET_DIM_ONE_SRC,
-        .ext.timeout = UINT_MAX,
-    };
-
-    return wd_ip_set_test("wifidog-ng-mac", skb, &opt, state);
-}
-
-static inline int is_allowed_dest_ip(struct sk_buff *skb, const struct nf_hook_state *state)
-{
-    static struct ip_set_adt_opt opt = {
-        .family = NFPROTO_IPV4,
-        .dim = IPSET_DIM_ONE,
-        .ext.timeout = UINT_MAX,
-    };
-
-    return wd_ip_set_test("wifidog-ng-ip", skb, &opt, state);
-}
-
-#endif
index eac3bd725c7aacb8fdb675271981fc1a3ae9c9d3..ac910fe6d5625bef7389ee8548fc3849dd321e30 100644 (file)
@@ -1,13 +1,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=wsdd2
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/Andy2244/wsdd2.git
-PKG_SOURCE_DATE:=2019-12-15
-PKG_SOURCE_VERSION:=8bcc0c1a42767ba518977a7104fe934f5d89ef31
-PKG_MIRROR_HASH:=4eace9130b7e1ddbc5b965fa51286532d3ee2ee14bcd2e116840c7d6d48ad9bc
+PKG_SOURCE_DATE:=2020-05-06
+PKG_SOURCE_VERSION:=671d040c33ec290930535e27dd59c1e5ccec11ec
+PKG_MIRROR_HASH:=aac0881ba8627897b23906eabde97450178a8f9285699c0368f88a745a934b96
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
 PKG_LICENSE:=GPL-3.0-only
index a1050091078265a00fdc775daad65e9bc48767ec..a63a40b0281ecd9483cd4588831fe144f59f7844 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xinetd
 PKG_VERSION:=2.3.15
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/xinetd-org/xinetd/archive
@@ -39,8 +39,7 @@ define Package/xinetd/description
 endef
 
 define Package/xinetd/conffiles
-/etc/xinetd.conf
-/etc/xinetd.d/
+/etc/config/xinetd
 endef
 
 TARGET_CFLAGS += -DNO_RPC
@@ -58,11 +57,11 @@ CONFIGURE_VARS += \
 define Package/xinetd/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xinetd $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/etc
-       $(INSTALL_DATA) ./files/xinetd.conf $(1)/etc/xinetd.conf
-       $(INSTALL_DIR) $(1)/etc/xinetd.d
+       $(INSTALL_DIR) $(1)/etc/config/
+       $(INSTALL_DATA) ./files/xinetd.uci.conf.sample $(1)/etc/config/xinetd
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/xinetd.init $(1)/etc/init.d/xinetd
+       $(INSTALL_DIR) $(1)/etc/xinetd.d
 endef
 
 $(eval $(call BuildPackage,xinetd))
diff --git a/net/xinetd/files/xinetd.conf b/net/xinetd/files/xinetd.conf
deleted file mode 100644 (file)
index bd473ed..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-defaults
-{
-
-}
-
-includedir /etc/xinetd.d
index 1437f587c52e3505a8c3af8b0fee98a0d9cb544e..51f4575949a0b2dde4a7f85ff6e59106cd2144cd 100644 (file)
 # Copyright (C) 2006-2011 OpenWrt.org
 
 START=50
+STOP=10
 
-SERVICE_USE_PID=1
+USE_PROCD=1
 
-start() {
-       service_start /usr/sbin/xinetd -pidfile /var/run/xinetd.pid
+PROG="/usr/sbin/xinetd"
+
+PIDFILE="/var/run/xinetd.pid"
+
+CONF_FILE="/etc/config/xinetd"
+GENERATED_CONF_FILE="/var/run/xinetd.conf"
+
+ServiceEntry="false"
+ListName=""
+ListValue=""
+
+
+# redefined callback for sections when calling config_load
+config_cb() {
+
+       # write out last list option (from last section) if exist and clear
+       if [ "$ListName" != "" ]; then
+               echo -e "\t$ListName = $ListVals" >> $GENERATED_CONF_FILE
+       fi
+
+       ListName=""
+       ListVals=""
+
+       # "close" last service entry (from last section) if exist
+       if [ "$ServiceEntry" = "true" ]; then                           # at least one service section "opened"
+               echo "}" >> $GENERATED_CONF_FILE                        # "close" open service section in config
+               ServiceEntry="false"
+       fi
+
+       if [ $# -eq 0 ]; then                                           # end of config reached
+               return
+       fi
+
+       local type="$1"
+       local name="$2"
+
+       if [ "$type" = "service" ]; then
+
+               if [ "$ServiceEntry" = "true" ]; then
+                       echo "}" >> $GENERATED_CONF_FILE                # "close" previous opened service section in config
+               fi
+
+               ServiceEntry="true"
+
+               echo "" >> $GENERATED_CONF_FILE
+               echo "service $name" >> $GENERATED_CONF_FILE
+               echo "{" >> $GENERATED_CONF_FILE
+
+               # redefined callback for options when calling config_load
+               option_cb() {
+                       local option="$1"
+                       local value="$2"
+
+                       [ -n "$value" ] && echo -e "\t$option = $value" >> $GENERATED_CONF_FILE
+               }
+
+               # redefined callback for lists when calling config_load
+               list_cb() {
+                       local name="$1"
+                       local value="$2"
+
+                       # write out last list option if new list starts
+                       if [ "$ListName" != "" -a "$ListName" != "$name" ]; then
+
+                               echo -e "\t$ListName = $ListVals" >> $GENERATED_CONF_FILE
+
+                               ListName=""
+                               ListVals=""
+                       fi
+
+                       # new list option
+                       if [ -z "$ListName" ]; then
+
+                               ListName="$name"
+                               ListVals="$value"
+                       else
+                               ListVals="$ListVals $value"
+                       fi
+               }
+       else                                                            # ignore non 'service' sections
+               return 0
+       fi
 }
 
-stop() {
-       service_stop /usr/sbin/xinetd
+generate_config() {
+       echo "# Auto-generated config file from $CONF_FILE" > $GENERATED_CONF_FILE
+       echo "# Do not edit, changes to this file will be lost on upgrades" >> $GENERATED_CONF_FILE
+       echo "" >> $GENERATED_CONF_FILE
+
+       echo "defaults" >> $GENERATED_CONF_FILE
+       echo "{" >> $GENERATED_CONF_FILE
+       echo "" >> $GENERATED_CONF_FILE
+       echo "}" >> $GENERATED_CONF_FILE
+       echo "" >> $GENERATED_CONF_FILE
+       echo "includedir /etc/xinetd.d" >> $GENERATED_CONF_FILE
+
+       config_load xinetd
 }
 
+start_service() {
+       generate_config
+
+       procd_open_instance
+       procd_set_param command $PROG -f $GENERATED_CONF_FILE -pidfile $PIDFILE
+       procd_set_param respawn
+       procd_close_instance
+}
+
+service_triggers() {
+       procd_add_reload_trigger "xinetd"
+}
diff --git a/net/xinetd/files/xinetd.uci.conf.sample b/net/xinetd/files/xinetd.uci.conf.sample
new file mode 100644 (file)
index 0000000..4988a89
--- /dev/null
@@ -0,0 +1,11 @@
+#config service 'checkmk_agent'
+#        option type 'UNLISTED'
+#        option port '6556'
+#        option socket_type 'stream'
+#        option protocol 'tcp'      
+#        option wait 'no'     
+#        option user 'root'
+#        option server '/usr/bin/check_mk_agent'
+#        option log_on_success ''             
+#        option only_from '127.0.0.1'
+#        option disable 'no'         
index dff450a6b8ea557fdbb984355c6c7d6adf9bb030..8b7aea502da61a0edef4a2c2fe3f8b9cacc74432 100644 (file)
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=xtables-addons
 PKG_VERSION:=3.9
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_HASH:=064dd68937d98e6cfcbdf51ef459310d9810c17ab31b21285bc7a76cdcef7c49
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
diff --git a/net/xtables-addons/patches/210-freebsd-build-fix.patch b/net/xtables-addons/patches/210-freebsd-build-fix.patch
new file mode 100644 (file)
index 0000000..d5bc16d
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/extensions/LUA/Makefile
++++ b/extensions/LUA/Makefile
+@@ -110,7 +110,7 @@
+ RANLIB = ranlib
+ SED = /bin/sed
+ SET_MAKE = 
+-SHELL = /bin/bash
++SHELL = /bin/sh
+ STRIP = strip
+ VERSION = 1.21
+ abs_builddir = /home/andre/Dropbox/xtables-addons/extensions/LUA
index 2fb0bf6bf560def7799a2bcc69e3fcb6c7358d34..9482c782d58c1bec06db6b56947136b25133c572 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mpd
-PKG_VERSION:=0.21.23
-PKG_RELEASE:=2
+PKG_VERSION:=0.21.24
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.musicpd.org/download/mpd/0.21/
-PKG_HASH:=439f522ca9800f375e4fb459ec31e61b3d824fc5c0580ff06dac48b5d21207a3
+PKG_HASH:=84632a7e82e672b3a6d71651a75d05fb7acd62645c33e3f3af5a1067cfa64cd6
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=GPL-2.0-or-later
index 7edeaa59ac51fc1d3285179bb6b5beb6e75b598b..d803602be0bdaf06a1fb569d334c5ff5baf83948 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=upmpdcli
-PKG_VERSION:=1.4.9
+PKG_VERSION:=1.4.12
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads
-PKG_HASH:=ace5a3166891109d2a874f21306986857ee2620230a77751ed6209f7b5cc9c58
+PKG_HASH:=bffc78c140ad688987894ea5a1e162e6dcbc7dcae7d2cc322a894f5ea2a2f53b
 
 PKG_MAINTAINER:=Petko Bordjukov <bordjukov@gmail.com>
 PKG_LICENSE:=LGPL-2.1-or-later
index 5217c29627fc67963650afbe6258e2adcdc11f67..9328cbd7ea48a59f8c750604f5f25969175ace3e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acpid
 PKG_VERSION:=2.0.32
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SF/acpid2
index c860327caeef3984cc9c2f9ed7b2c9496a6e6744..411eea255a2392ceea7ad2fddd1d0755177732b9 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/ash /etc/rc.common
+#!/bin/sh /etc/rc.common
 # Copyright (C) 2009-2010 OpenWrt.org
 
 START=99
@@ -14,6 +14,6 @@ start_service() {
        procd_set_param pidfile "/var/run/acpid.pid"
 }
 
-reload_service()\ {
+reload_service() {
        procd_send_signal "acpid"
 }
index 6ea5c337de2c6e782d3bf20ed743548aee3bba7b..799c8afccde7b43b92d386409782bf65dbd01db4 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bcm27xx-eeprom
-PKG_VERSION:=a9ca308223c1d0426b9ab320696b95954078c3b4
+PKG_VERSION:=fd2ea72b2677504f41298c9137647aa057f67f47
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/raspberrypi/rpi-eeprom/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=072dbbd4b53c2c0b5764ff628f63cc8d679a99cfe84d8f50acea06922084515e
+PKG_HASH:=3a4e1db25db8188535ad0ad12a6e40e2ff927b20cd21b1b5ff783c2fde966308
 
 PKG_LICENSE:=BSD-3-Clause Custom
 PKG_LICENSE_FILES:=LICENSE
index 63e99ce3d0a3cc8b1efc3b44f6378d29757bfac3..2cac3dbefebc7f25b4e2908aea78a4dba2fc6242 100644 (file)
@@ -24,16 +24,16 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
  fi
  
  LOCAL_MODE=0
-@@ -323,7 +323,7 @@ The system should then boot normally.
+@@ -346,7 +346,7 @@ The system should then boot normally.
  
- If /boot does not correspond to the boot partition on the sd-card and this
- is not a NOOBS system then the mount point for BOOTFS should be defined
+ If /boot does not correspond to the boot partition and this
+ is not a NOOBS system, then the mount point for BOOTFS should be defined
 -in /etc/default/rpi-eeprom-update by defining the BOOTFS variable.
 +in /etc/bcm27xx-eeprom.conf by defining the BOOTFS variable.
  
  A backup of the current EEPROM config file is written to ${FIRMWARE_BACKUP_DIR}
  before applying the update.
-@@ -345,7 +345,7 @@ Options:
+@@ -368,7 +368,7 @@ Options:
     -u Install the specified VL805 (USB EEPROM) image file.
  
  Environment:
index 700e8a7001e47afd6d1e5b4ed6cb00ccabf97156..3fef979c27f43f99cdeb6025f298ed30f11078bd 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ccid
-PKG_VERSION:=1.4.31
+PKG_VERSION:=1.4.32
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://ccid.apdu.fr/files/
-PKG_HASH:=6b48d7b6e4390e038d25630f8664fe81618ab00f232d6efbe0e3cc6df28ce8f7
+PKG_HASH:=545f4ab7887d512aa4b6967b80ef18a77b790c34769718452737a633cefc1639
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=LGPL-2.1-or-later
 PKG_LICENSE_FILES:=COPYING
index 03d1088a69f10c1a0186e09749d42d52f2c5da5f..99474338ce6c0874bfd406a94a6fb0dd9fa19322 100644 (file)
@@ -1,22 +1,31 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cgroupfs-mount
-PKG_VERSION:=1.4
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://codeload.github.com/tianon/cgroupfs-mount/tar.gz/${PKG_VERSION}?
-PKG_HASH:=d6c8aff7af59c7d0082ee3018c97f73b0421e81a49bb28ad9f66a36da5cd6ec7
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/tianon/$(PKG_NAME)
+PKG_SOURCE_VERSION:=0549428171605eae3097a3e21bf7664845eac9e8
+PKG_SOURCE_DATE:=2020-06-26
+PKG_MIRROR_HASH:=ca217ffff5aa938149d2d8adfe15d800903d2fec180acb2400c36d62905988ea
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
 include $(INCLUDE_DIR)/package.mk
 
+define Package/cgroupfs-mount/config
+       config CGROUPFS_MOUNT_KERNEL_CGROUPS
+               bool "Enable kernel cgroups support"
+               depends on PACKAGE_cgroupfs-mount
+               default y if ( DOCKER_KERNEL_OPTIONS || LXC_KERNEL_OPTIONS )
+               select KERNEL_CGROUPS
+endef
+
 define Package/cgroupfs-mount
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=cgroup mount scripts
-  DEPENDS:=@KERNEL_CGROUPS +mount-utils
+  DEPENDS:=+mount-utils
   MENU:=1
 endef
 
index 5dc542349c0549ace2a55c6d7710fbd1f21af4f7..790e38f3157cba403855813a596453f08ed2a00e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=collectd
 PKG_VERSION:=5.11.0
-PKG_RELEASE:=7
+PKG_RELEASE:=9
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://collectd.org/files/ \
@@ -106,7 +106,6 @@ COLLECTD_PLUGINS_DISABLED:= \
        tape \
        tokyotyrant \
        turbostat \
-       ubi \
        uuid \
        varnish \
        virt \
@@ -190,6 +189,7 @@ COLLECTD_PLUGINS_SELECTED:= \
        ted \
        thermal \
        threshold \
+       ubi \
        unixsock \
        uptime \
        users \
@@ -453,6 +453,7 @@ $(eval $(call BuildPlugin,ted,The Energy Detective input,ted,))
 $(eval $(call BuildPlugin,tcpconns,TCP connection tracking input,tcpconns,))
 $(eval $(call BuildPlugin,thermal,system temperatures input,thermal,))
 $(eval $(call BuildPlugin,threshold,Notifications and thresholds,threshold,))
+$(eval $(call BuildPlugin,ubi,Unsorted block images,ubi,@NAND_SUPPORT))
 $(eval $(call BuildPlugin,unixsock,unix socket output,unixsock,))
 $(eval $(call BuildPlugin,uptime,uptime status input,uptime,))
 $(eval $(call BuildPlugin,users,user logged in status input,users,))
index b07416f4e92f0cc2c748bb5f848525483fa411a8..89fc6b2bbeb542ea8fad174256c0d0aa408cc3ac 100644 (file)
@@ -310,10 +310,6 @@ process_config() {
        config_get BaseDir globals BaseDir "/var/run/collectd"
        printf "BaseDir \"%s\"\n" "$BaseDir" >> "$COLLECTD_CONF"
 
-       config_get Include globals Include "/tmp/collectd.d"
-       printf "Include \"%s\"\n" "$Include" >> "$COLLECTD_CONF"
-       mkdir -p "$Include"
-
        config_get PIDFile globals PIDFile "/var/run/collectd.pid"
        printf "PIDFile \"%s\"\n" "$PIDFile" >> "$COLLECTD_CONF"
 
@@ -324,7 +320,7 @@ process_config() {
        printf "TypesDB \"%s\"\n" "$TypesDB" >> "$COLLECTD_CONF"
 
        config_get Interval globals Interval 30
-       printf "Interval \"%s\"\n" "$Interval" >> "$COLLECTD_CONF"
+       printf "Interval %s\n" "$Interval" >> "$COLLECTD_CONF"
 
        config_get ReadThreads globals ReadThreads 2
        printf "ReadThreads \"%s\"\n" "$ReadThreads" >> "$COLLECTD_CONF"
@@ -332,6 +328,10 @@ process_config() {
        config_get Hostname globals Hostname "$(uname -n)"
        printf "Hostname \"%s\"\n" "$Hostname" >> "$COLLECTD_CONF"
 
+       config_get Include globals Include "/tmp/collectd.d"
+       printf "Include \"%s\"\n" "$Include" >> "$COLLECTD_CONF"
+       mkdir -p "$Include"
+
        printf "\n" >> "$COLLECTD_CONF"
 
        # PLUGIN CONFIG
index f4b3df1ea1ade9d03417221e11cac3769d9fce06..cde38351194ef6d80f3c650000b21ec374aa3be7 100644 (file)
@@ -185,6 +185,11 @@ config globals 'globals'
 #      option IgnoreSelected '0'
 #      list Device ''
 
+#config plugin 'ubi'
+#      option enable '0'
+#      list  Device 'ubi0'
+#      option IgnoreSelected '0'
+
 #config plugin 'unixsock'
 #      option enable '0'
 #      option SocketFile '/var/run/collectd/query.sock'
diff --git a/utils/collectd/files/usr/share/collectd/plugin/ubi.json b/utils/collectd/files/usr/share/collectd/plugin/ubi.json
new file mode 100644 (file)
index 0000000..cf93fc2
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "bool": [
+               "IgnoreSelected"
+       ],
+       "list": [
+               "Device"
+       ]
+}
diff --git a/utils/collectd/patches/920-fix-ubi-data-source-type.patch b/utils/collectd/patches/920-fix-ubi-data-source-type.patch
new file mode 100644 (file)
index 0000000..ca61fa1
--- /dev/null
@@ -0,0 +1,47 @@
+--- a/src/ubi.c
++++ b/src/ubi.c
+@@ -70,13 +70,13 @@ static int ubi_config(const char *key, c
+ } /* int ubi_config */
+ static void ubi_submit(const char *dev_name, const char *type,
+-                       counter_t value) {
++                       gauge_t value) {
+   value_list_t vl = VALUE_LIST_INIT;
+   if (ignorelist_match(ignorelist, dev_name) != 0)
+     return;
+-  vl.values = &(value_t){.counter = value};
++  vl.values = &(value_t){.gauge = value};
+   vl.values_len = 1;
+   sstrncpy(vl.plugin, PLUGIN_NAME, sizeof(vl.plugin));
+   sstrncpy(vl.type_instance, dev_name, sizeof(vl.type_instance));
+@@ -107,7 +107,7 @@ static int ubi_read_dev_attr(const char
+     return -1;
+   }
+-  ubi_submit(dev_name, attr, (counter_t)val);
++  ubi_submit(dev_name, attr, (gauge_t)val);
+   return 0;
+ } /* int ubi_read_dev_attr */
+--- a/src/types.db
++++ b/src/types.db
+@@ -7,7 +7,7 @@ apache_scoreboard       value:GAUGE:0:65
+ ath_nodes               value:GAUGE:0:65535
+ ath_stat                value:DERIVE:0:U
+ backends                value:GAUGE:0:65535
+-bad_peb_count           value:COUNTER:0:U
++bad_peb_count           value:GAUGE:0:U
+ bitrate                 value:GAUGE:0:4294967295
+ blocked_clients         value:GAUGE:0:U
+ bucket                  value:GAUGE:0:U
+@@ -140,7 +140,7 @@ job_stats               value:DERIVE:0:U
+ latency                 value:GAUGE:0:U
+ links                   value:GAUGE:0:U
+ load                    shortterm:GAUGE:0:5000, midterm:GAUGE:0:5000, longterm:GAUGE:0:5000
+-max_ec                  value:COUNTER:0:U
++max_ec                  value:GAUGE:0:U
+ media                   value:GAUGE:0:18446744073709551615
+ memory_bandwidth        value:DERIVE:0:U
+ md_disks                value:GAUGE:0:U
index a928a521ce94877c887a75573a8278f54d17f672..e9fec5042414d76e307bf6c390e6d416b3c722cb 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cryptsetup
-PKG_VERSION:=2.3.0
-PKG_RELEASE:=2
+PKG_VERSION:=2.3.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v2.3
-PKG_HASH:=395690de99509428354d3cd15cf023bed01487e6f1565b2181e013dc847bbc85
+PKG_HASH:=3bca4ffe39e2f94cef50f6ea65acb873a6dbce5db34fc6bcefe38b6d095e82df
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later
diff --git a/utils/ctop/.Makefile.swp b/utils/ctop/.Makefile.swp
deleted file mode 100644 (file)
index 7753646..0000000
Binary files a/utils/ctop/.Makefile.swp and /dev/null differ
index 6501b0fb4c725f6632709ffc6af9e207178a1474..8fb02fe91179cd13822241b08731a8d8874af6c5 100644 (file)
@@ -25,7 +25,7 @@ define Package/ctop
   CATEGORY:=Utilities
   TITLE:=Top-like interface for container metrics
   URL:=https://ctop.sh/
-  DEPENDS:=$(GO_ARCH_DEPENDS) @!mips
+  DEPENDS:=$(GO_ARCH_DEPENDS) @!mips @!mipsel
 endef
 
 define Package/ctop/description
index 9f9b2d92b9fab455bade27c2fb995725fab279af..0ebeb7a3be8008ed00257152a3fc7a29508894e7 100644 (file)
@@ -22,7 +22,6 @@ PKG_CPE_ID:=cpe:/a:freedesktop:dbus
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
-include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/dbus/Default
@@ -101,32 +100,6 @@ CONFIGURE_ARGS += \
        --with-dbus-user=root \
        --without-x
 
-HOST_CONFIGURE_ARGS+= \
-       --disable-maintainer-mode \
-       --disable-developer \
-       --enable-debug=no \
-       --enable-shared \
-       --disable-static \
-       --disable-verbose-mode \
-       --disable-asserts \
-       --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-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" \
-       --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/
@@ -168,7 +141,6 @@ define Package/dbus-utils/install
        $(INSTALL_BIN)  $(PKG_INSTALL_DIR)/usr/bin/dbus-{monitor,send,update-activation-environment} $(1)/usr/bin/
 endef
 
-$(eval $(call HostBuild))
 $(eval $(call BuildPackage,libdbus))
 $(eval $(call BuildPackage,dbus))
 $(eval $(call BuildPackage,dbus-utils))
index dba32c45ab845e38b0fae858aea192889bd06094..56f1e0b5776caa5a30dd41faafc48eb56090a4dc 100644 (file)
@@ -1,85 +1,90 @@
-menu "Kernel features for Docker"
-       config DOCKER_KERNEL_OPTIONS
-               bool "Enable Basic kernel support for Docker"
+config DOCKER_KERNEL_OPTIONS
+       bool "Enable Basic kernel support for Docker"
+       depends on PACKAGE_docker-ce
+       default n
+       select KERNEL_CGROUPS
+       select KERNEL_CGROUP_CPUACCT
+       select KERNEL_CGROUP_SCHED
+       select KERNEL_NAMESPACES
+       select KERNEL_CPUSETS
+       select KERNEL_MEMCG
+       select KERNEL_KEYS
+       select KERNEL_DEVPTS_MULTIPLE_INSTANCES
+       select KERNEL_POSIX_MQUEUE
+       help
+         Select needed kernel options for Docker. Options include
+         cgroups, namespaces and other miscellaneous options.
+         see also https://github.com/docker/engine/blob/master/contrib/check-config.sh
+
+config DOCKER_SECCOMP
+       bool "Enable support for seccomp in Docker"
+       depends on PACKAGE_docker-ce
+       default n
+       select KERNEL_SECCOMP
+       select PACKAGE_libseccomp
+       help
+         Build Docker with support for seccomp filters.
+         Select libseccomp which also pulls-in the needed kernel features.
+
+config DOCKER_RES_SHAPE
+       bool "Enables support for resource shaping"
+       depends on PACKAGE_docker-ce
+       default n
+       select KERNEL_MEMCG_SWAP
+       select KERNEL_MEMCG_SWAP_ENABLED
+       select KERNEL_BLK_DEV_THROTTLING
+       select KERNEL_CFQ_GROUP_IOSCHED
+       select KERNEL_CGROUP_PERF
+       select KERNEL_FAIR_GROUP_SCHED
+       select KERNEL_CFS_BANDWIDTH
+       select KERNEL_RT_GROUP_SCHED
+
+menu "Network"
+       depends on PACKAGE_docker-ce
+
+       config DOCKER_NET_OVERLAY
+               bool "Enables the Overlay network feature"
                default n
-               select KERNEL_CGROUPS
-               select KERNEL_CGROUP_CPUACCT
-               select KERNEL_CGROUP_SCHED
-               select KERNEL_NAMESPACES
-               select KERNEL_CPUSETS
-               select KERNEL_MEMCG
-               select KERNEL_KEYS
-               select KERNEL_DEVPTS_MULTIPLE_INSTANCES
-               select KERNEL_POSIX_MQUEUE
+               select PACKAGE_kmod-udptunnel4
                help
-                 Select needed kernel options for Docker. Options include
-                 cgroups, namespaces and other miscellaneous options.
-                 see also https://github.com/docker/engine/blob/master/contrib/check-config.sh
+                 Selects kernel options for the Overlay network feature.
+                 Includes udptunnel4
 
-       config DOCKER_SECCOMP
-               bool "Enable support for seccomp in Docker"
+       config DOCKER_NET_ENCRYPT
+               bool "Enable encrypted networking kernel support"
+               depends on DOCKER_NET_OVERLAY
                default n
-               select KERNEL_SECCOMP
-               select PACKAGE_libseccomp
+               select PACKAGE_kmod-ipsec
+               select PACKAGE_kmod-ipsec4
+               select PACKAGE_kmod-crypto-gcm
+               select PACKAGE_kmod-crypto-ghash
                help
-                 Build Docker with support for seccomp filters.
-                 Select libseccomp which also pulls-in the needed kernel features.
+                 Select needed kernel options for encrypted networking support.
 
-       config DOCKER_RES_SHAPE
-               bool "Enables support for resource shaping"
+       config DOCKER_NET_MACVLAN
+               bool "Enables macvlan kernel support"
                default n
-               select KERNEL_MEMCG_SWAP
-               select KERNEL_MEMCG_SWAP_ENABLED
-               select KERNEL_BLK_DEV_THROTTLING
-               select KERNEL_CFQ_GROUP_IOSCHED
-               select KERNEL_CGROUP_PERF
-               select KERNEL_FAIR_GROUP_SCHED
-               select KERNEL_CFS_BANDWIDTH
-               select KERNEL_RT_GROUP_SCHED
-
-       menu "Network"
-               config DOCKER_NET_OVERLAY
-                       bool "Enables the Overlay network feature"
-                       default n
-                       select PACKAGE_kmod-udptunnel4
-                       help
-                         Selects kernel options for the Overlay network feature.
-                         Includes udptunnel4
+               select PACKAGE_kmod-macvlan
+               select PACKAGE_kmod-dummy
 
-               config DOCKER_NET_ENCRYPT
-                       bool "Enable encrypted networking kernel support"
-                       depends on DOCKER_NET_OVERLAY
-                       default n
-                       select PACKAGE_kmod-ipsec
-                       select PACKAGE_kmod-ipsec4
-                       select PACKAGE_kmod-crypto-gcm
-                       select PACKAGE_kmod-crypto-ghash
-                       help
-                         Select needed kernel options for encrypted networking support.
-
-               config DOCKER_NET_MACVLAN
-                       bool "Enables macvlan kernel support"
-                       default n
-                       select PACKAGE_kmod-macvlan
-                       select PACKAGE_kmod-dummy
+       config DOCKER_NET_TFTP
+               bool "Enable ftp/tftp client kernel support"
+               default n
+               select PACKAGE_kmod-nf-nathelper
+               select PACKAGE_kmod-nf-nathelper-extra
+endmenu
 
-               config DOCKER_NET_TFTP
-                       bool "Enable ftp/tftp client kernel support"
-                       default n
-                       select PACKAGE_kmod-nf-nathelper
-                       select PACKAGE_kmod-nf-nathelper-extra
-       endmenu
+menu "Storage"
+       depends on PACKAGE_docker-ce
 
-       menu "Storage"
-               config DOCKER_STO_EXT4
-                       bool "Enables support for ext3 or ext4 as the backing filesystem"
-                       default n
-                       select KERNEL_EXT4_FS_POSIX_ACL
+       config DOCKER_STO_EXT4
+               bool "Enables support for ext3 or ext4 as the backing filesystem"
+               default n
+               select KERNEL_EXT4_FS_POSIX_ACL
 
-               config DOCKER_STO_BTRFS
-                       bool "Enables support for btrfs as the backing filesystem"
-                       default n
-                       select PACKAGE_kmod-fs-btrfs
-                       select KERNEL_BTRFS_FS_POSIX_ACL
-       endmenu
+       config DOCKER_STO_BTRFS
+               bool "Enables support for btrfs as the backing filesystem"
+               default n
+               select PACKAGE_kmod-fs-btrfs
+               select KERNEL_BTRFS_FS_POSIX_ACL
 endmenu
index 56ac8564ee86cbcde7490b4543bb312823794bb1..89e7cdd94e4891ab486466d24484070c73de560b 100644 (file)
@@ -1,32 +1,31 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=docker-ce
-PKG_VERSION:=19.03.9
+PKG_VERSION:=19.03.11
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=components/cli/LICENSE components/engine/LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/docker/docker-ce/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=f1b9e28e789516b4ba741cc4683c2c088e8c4893e2acbd7ac272a75ddeccc1a1
-PKG_SOURCE_VERSION:=9d988398e7 # SHA1 used within the docker executables
+PKG_HASH:=5821b189056d64ca7961c4c93cfa60c1805d0fbe4a1ea2d57ff2122b3dc61ea1
+PKG_SOURCE_VERSION:=42e35e61f3 # SHA1 used within the docker executables
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
-define CheckExpectedSrcVer
-       $(eval SRC_VER:=$(shell grep --only-matching --perl-regexp '(?<=PKG_SOURCE_VERSION:=)(.*)' $(1)))
-       $(if $(subst $(2),,$(SRC_VER)), \
-               $(error ERROR: Expected $(1) source version '$(2)', found '$(SRC_VER)'), \
-               $(info OK: Expected $(1) source version '$(2)', found '$(SRC_VER)') \
+# $(1) = path to dependent package 'Makefile'
+# $(2) = relevant docker-ce '.installer' file
+define EnsureVendoredVersion
+       ( \
+               DEP_VER=$$$$( grep --only-matching --perl-regexp '(?<=PKG_SOURCE_VERSION:=)(.*)' "$(1)" ); \
+               VEN_VER=$$$$( grep --only-matching --perl-regexp '(?<=_COMMIT:=)(.*)(?=})' "$(PKG_BUILD_DIR)/components/engine/hack/dockerfile/install/$(2)" ); \
+               if [ $$$$VEN_VER != $$$$DEP_VER ]; then \
+                       echo "ERROR: Expected 'PKG_SOURCE_VERSION:=$$$$VEN_VER' in '$(1)', found 'PKG_SOURCE_VERSION:=$$$$DEP_VER'"; \
+                       exit 1; \
+               fi \
        )
 endef
 
-# values from respective '.installer' files at https://github.com/docker/docker-ce/blob/v$(PKG_VERSION)/components/engine/hack/dockerfile/install/
-$(eval $(call CheckExpectedSrcVer,../containerd/Makefile,7ad184331fa3e55e52b890ea95e65ba581ae3429))
-$(eval $(call CheckExpectedSrcVer,../libnetwork/Makefile,0941c3f409260d5f05cfa6fc68420d8ad45ee483))
-$(eval $(call CheckExpectedSrcVer,../runc/Makefile,dc9208a3303feef5b3839f4323d9beb36df0a9dd))
-$(eval $(call CheckExpectedSrcVer,../tini/Makefile,fec3683b971d9c3ef73f284f176672c44b448662))
-
 PKG_BUILD_DEPENDS:=golang/host
 PKG_BUILD_PARALLEL:=1
 
@@ -55,6 +54,16 @@ define Package/docker-ce/description
   to run anywhere consistently on any infrastructure.
 endef
 
+define Build/Prepare
+       $(Build/Prepare/Default)
+
+       # Verify dependencies are the vendored version
+       $(call EnsureVendoredVersion,../containerd/Makefile,containerd.installer)
+       $(call EnsureVendoredVersion,../libnetwork/Makefile,proxy.installer)
+       $(call EnsureVendoredVersion,../runc/Makefile,runc.installer)
+       $(call EnsureVendoredVersion,../tini/Makefile,tini.installer)
+endef
+
 define Build/Configure
        # move so GoPackage/Build/Configure will get the correct path
        mv $(PKG_BUILD_DIR)/components/engine $(PKG_BUILD_DIR)/
diff --git a/utils/docker-compose/Makefile b/utils/docker-compose/Makefile
new file mode 100644 (file)
index 0000000..46e08d3
--- /dev/null
@@ -0,0 +1,52 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=docker-compose
+PKG_VERSION:=1.26.0
+PKG_RELEASE:=3
+
+PYPI_NAME:=docker-compose
+PKG_HASH:=7e836102d139aca667d6af53f0f4d942c9459ec24d6dd4f0203d74359b0fd311
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+include ../../lang/python/pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/python/python3-package.mk
+
+PYTHON3_PKG_SETUP_ARGS:=
+
+define Package/docker-compose
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=Docker Compose
+  URL:=https://github.com/docker/compose
+  DEPENDS+=+docker-ce \
+      +python3-light \
+      +python3-cached-property \
+      +python3-distro \
+      +python3-distutils \
+      +python3-docopt \
+      +python3-docker \
+      +python3-dockerpty \
+      +python3-dotenv \
+      +python3-jsonschema \
+      +python3-logging \
+      +python3-openssl \
+      +python3-pkg-resources \
+      +python3-requests \
+      +python3-six \
+      +python3-texttable \
+      +python3-websocket-client \
+      +python3-yaml
+endef
+
+define Package/docker-compose/description
+  Multi-container orchestration for Docker
+endef
+
+$(eval $(call Py3Package,docker-compose))
+$(eval $(call BuildPackage,docker-compose))
+$(eval $(call BuildPackage,docker-compose-src))
index 95d3c9eaff3f650f0982760d6e868b1581ab64ea..e5cbe8c4667bb098975111bb79fdfc90f479d039 100644 (file)
@@ -8,17 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=domoticz
-PKG_VERSION:=2020.1
-PKG_RELEASE:=2
+PKG_VERSION:=2020.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_VERSION)/$(PKG_SOURCE)
-PKG_HASH:=d0c17b2082dad8a8caeed888b7d4c191975e74a2808b5d078305f5327b82442d
+PKG_HASH:=a02f589daad4eebff1f5e93815c1acd1864cf068f8f5c3185bcdd20207ae395e
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=License.txt
 
-PKG_BUILD_DEPENDS:=python3
+PKG_BUILD_DEPENDS:=python3 minizip cereal
 PKG_BUILD_PARALLEL:=1
 PKG_USE_MIPS16:=0
 
@@ -32,15 +32,18 @@ define Package/domoticz
   CATEGORY:=Utilities
   TITLE:=Open Source Home Automation System
   URL:=http://domoticz.com/
-  MAINTAINER:=
+  MAINTAINER:=David Woodhouse <dwmw2@infradead.org>
   USERID:=domoticz=6144:domoticz=6144
   DEPENDS:= \
        +boost \
        +boost-date_time \
        +boost-system \
        +boost-thread \
+       +jsoncpp \
        +libcurl \
-       +libmosquittopp \
+       +minizip \
+       +lua5.3 \
+       +libmosquitto \
        +libopenssl \
        +libopenzwave \
        +libsqlite3 \
@@ -59,6 +62,9 @@ CMAKE_OPTIONS += \
        -DCMAKE_BUILD_TYPE=Release \
        -DUSE_BUILTIN_MQTT=no \
        -DUSE_BUILTIN_SQLITE=no \
+       -DUSE_BUILTIN_JSONCPP=no \
+       -DUSE_BUILTIN_MINIZIP=no \
+       -DUSE_LUA_STATIC=no \
        -DUSE_STATIC_BOOST=no \
        -DUSE_STATIC_LIBSTDCXX=no \
        -DUSE_STATIC_OPENZWAVE=no \
diff --git a/utils/domoticz/patches/011-openzwave-include.patch b/utils/domoticz/patches/011-openzwave-include.patch
new file mode 100644 (file)
index 0000000..ce0af4b
--- /dev/null
@@ -0,0 +1,129 @@
+From 632695fe3ee704c1c1c539d79172ac0f9f9ce77b Mon Sep 17 00:00:00 2001
+From: David Woodhouse <dwmw2@infradead.org>
+Date: Thu, 4 Jun 2020 12:41:27 +0100
+Subject: [PATCH] Fix up OpenZWave include path handling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The path specified by the pkg-config file will be, for example,
+/usr/include/openzwave.
+
+That directory needs to be on the compiler's include path, because
+OpenZWave's own include files assume they can include each other
+simply as (e.g.) "ValueIDIndexes.h"; not "openzwave/ValueIDIndexes.h"
+
+Our own files do include <openzwave/Foo.h> though, which means that
+the *parent* directory needs to be on the compilers's include path
+too. We generally get lucky because /usr/include is automatically
+included, so we find /usr/include/openzwave/Foo.h anyway.
+
+Fix our C files to rely on the correct include path discovered from
+pkg-config, and to include OpenZWave headers by name without the
+erroneous openzwave/ prefix.
+
+That means we can fix the ../open-zwave-read-only static build to use
+the header files directly from there just like it does the static
+library .a file, without requiring the 'sudo make install' step — and
+without suffering a mismatch of static openzwave build vs. headers of
+a different version that were installed on the system, which could
+previously happen.
+
+Tested with both static and dynamic builds of OpenZWave.
+---
+ CMakeLists.txt                             | 11 ++++-------
+ hardware/OpenZWave.cpp                     |  8 ++++----
+ hardware/openzwave/control_panel/ozwcp.cpp | 10 +++++-----
+ hardware/openzwave/control_panel/ozwcp.h   |  4 ++--
+ 4 files changed, 15 insertions(+), 18 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fa5b3099d..1f4b6fb57 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -694,6 +694,7 @@ endif(WITH_LIBUSB)
+ #
+ if(USE_STATIC_OPENZWAVE)
+   find_library(OpenZWave NAMES libopenzwave.a HINTS "../open-zwave-read-only" "../open-zwave-read-only/cpp/build")
++  find_path(OPENZWAVE_INCLUDE_DIRS NAMES OZWException.h HINTS "../open-zwave-read-only/cpp/src")
+   set(OPENZWAVE_LIB ${OpenZWave})
+ else()
+   pkg_check_modules(OPENZWAVE libopenzwave)
+@@ -707,16 +708,12 @@ IF(OpenZWave)
+   message(STATUS "OpenZWave library found at: ${OpenZWave}")
+   target_link_libraries(domoticz ${OpenZWave})
+-  find_path(OPENZWAVE_INCLUDE_DIRS NAMES openzwave/Manager.h)
++  find_path(OPENZWAVE_INCLUDE_DIRS NAMES OZWException.h)
+   if (OPENZWAVE_INCLUDE_DIRS)
+-    IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+-      include_directories(${OPENZWAVE_INCLUDE_DIRS})
+-    ELSE()
+-      include_directories(${OPENZWAVE_INCLUDE_DIRS}/openzwave)
+-    ENDIF()
++    include_directories(${OPENZWAVE_INCLUDE_DIRS})
+     message(STATUS "OpenZWave includes found at: ${OPENZWAVE_INCLUDE_DIRS}")
+   else()
+-    message(FATAL_ERROR "OpenZWave includes not found. Did you not issue 'sudo make install' after building OpenZWave?")
++    message(FATAL_ERROR "OpenZWave includes not found.")
+   endif (OPENZWAVE_INCLUDE_DIRS)
+   add_definitions(-DWITH_OPENZWAVE)
+ ELSE()
+diff --git a/hardware/OpenZWave.cpp b/hardware/OpenZWave.cpp
+index 272e3d0a7..a226a8924 100644
+--- a/hardware/OpenZWave.cpp
++++ b/hardware/OpenZWave.cpp
+@@ -22,10 +22,10 @@
+ #include "../main/localtime_r.h"
+ //OpenZWave includes
+-#include <openzwave/Options.h>
+-#include <openzwave/Manager.h>
+-#include <openzwave/platform/Log.h>
+-#include <openzwave/ValueIDIndexesDefines.h>
++#include <Options.h>
++#include <Manager.h>
++#include <platform/Log.h>
++#include <ValueIDIndexesDefines.h>
+ #include "ZWaveCommands.h"
+diff --git a/hardware/openzwave/control_panel/ozwcp.cpp b/hardware/openzwave/control_panel/ozwcp.cpp
+index 0b21a9cf3..5e401b2f1 100644
+--- a/hardware/openzwave/control_panel/ozwcp.cpp
++++ b/hardware/openzwave/control_panel/ozwcp.cpp
+@@ -39,11 +39,11 @@
+ #include <stdlib.h>
+ #include <time.h>
+ #include <string.h>
+-#include <openzwave/Options.h>
+-#include <openzwave/Manager.h>
+-#include <openzwave/Node.h>
+-#include <openzwave/Group.h>
+-#include <openzwave/Notification.h>
++#include <Options.h>
++#include <Manager.h>
++#include <Node.h>
++#include <Group.h>
++#include <Notification.h>
+ #include "../../../main/Logger.h"
+ #include <sys/stat.h>
+diff --git a/hardware/openzwave/control_panel/ozwcp.h b/hardware/openzwave/control_panel/ozwcp.h
+index ebfef1791..96d14b3bf 100644
+--- a/hardware/openzwave/control_panel/ozwcp.h
++++ b/hardware/openzwave/control_panel/ozwcp.h
+@@ -38,8 +38,8 @@
+ #include <list>
+ #include <algorithm>
+-#include <openzwave/Driver.h>
+-#include <openzwave/Notification.h>
++#include <Driver.h>
++#include <Notification.h>
+ #define MAX_NODES 255
+-- 
+2.26.2
+
diff --git a/utils/domoticz/patches/012-minizip-overflow.patch b/utils/domoticz/patches/012-minizip-overflow.patch
new file mode 100644 (file)
index 0000000..f5b41e6
--- /dev/null
@@ -0,0 +1,46 @@
+From 3c23a7863c0b01273d4c36423769443ea7e4a7bb Mon Sep 17 00:00:00 2001
+From: David Woodhouse <dwmw2@infradead.org>
+Date: Fri, 5 Jun 2020 15:02:41 +0100
+Subject: [PATCH 1/2] unzip: reduce file name size to 65535 to work with
+ external minizip
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The external minizip project has changed the unzGetCurrentFileInfo()
+function to take a uint16_t as the filename size, instead of a uLong
+as in the original version in zlib.
+
+(Reported as https://github.com/nmoinvaz/minizip/issues/490 but it
+was 3½ years ago and might be too late to fix it now, although changing
+it back to a *larger* type is a lot safer than reducing the size, and
+perhaps they should.)
+
+This means that our 65536-byte buffer gets truncated to zero, as the
+compiler tells us when we build agaisnt the external minizip:
+
+domoticz/main/unzip_stream.h:140:50: warning: conversion from ‘long unsigned int’ to ‘uint16_t’ {aka ‘short unsigned int’} changes value from ‘65536’ to ‘0’ [-Woverflow]
+  140 |     unzGetCurrentFileInfo(handler_, &info, path, sizeof(path), NULL, 0, NULL, 0);
+      |                                                  ^~~~~~~~~~~~
+
+Reduce the buffer size to 65535 bytes instead.
+---
+ main/unzip_stream.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/main/unzip_stream.h b/main/unzip_stream.h
+index 136fcefd9..813f2489a 100644
+--- a/main/unzip_stream.h
++++ b/main/unzip_stream.h
+@@ -135,7 +135,7 @@ namespace clx {
+               basic_unzip_stream& open(handler_type h) {
+                       handler_ = h;
+                       if (handler_) {
+-                              char path[65536];
++                              char path[65535];
+                               unz_file_info info;
+                               unzGetCurrentFileInfo(handler_, &info, path, sizeof(path), NULL, 0, NULL, 0);
+                               path_ = path;
+-- 
+2.26.2
+
diff --git a/utils/exfatprogs/Makefile b/utils/exfatprogs/Makefile
new file mode 100644 (file)
index 0000000..f66ff4e
--- /dev/null
@@ -0,0 +1,53 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=exfatprogs
+PKG_VERSION:=1.0.3
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/$(PKG_NAME)/$(PKG_NAME)/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=5cb2c9e65a1633148d498913508977e6073d6f454a7addfa98623f6d065d5589
+
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+PKG_LICENSE:=GPL-2.0-only
+PKG_LICENSE_FILES:=COPYING
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/exfatprogs/Default
+  SECTION:=utils
+  CATEGORY:=Utilities
+  SUBMENU:=Filesystem
+  URL:=https://github.com/exfatprogs/exfatprogs
+endef
+
+define Package/exfat-mkfs
+  $(Package/exfatprogs/Default)
+  TITLE:=Utility for creating an exFAT File System
+endef
+
+define Package/exfat-fsck
+  $(Package/exfatprogs/Default)
+  TITLE:=Utility for checking/repairing an exFAT File System
+endef
+
+CONFIGURE_ARGS += \
+       --enable-shared \
+       --disable-static
+
+define Package/exfat-mkfs/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/mkfs.exfat $(1)/usr/sbin
+endef
+
+define Package/exfat-fsck/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fsck.exfat $(1)/usr/sbin
+endef
+
+$(eval $(call BuildPackage,exfat-mkfs))
+$(eval $(call BuildPackage,exfat-fsck))
index 9c277929060445ab0d9c5c992f05d8c61128f87f..d7b6c96b280f71546ffae1703e8f5253aabe45a2 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fio
-PKG_VERSION:=3.19
-PKG_RELEASE:=2
+PKG_VERSION:=3.20
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://brick.kernel.dk/snaps
-PKG_HASH:=4b6db7eaee26d6fd33bf210eb73b6d37f5d45adcc88726866ad030565f3ccc06
+PKG_HASH:=87a539ecebce3d8281ff9c653e9978302f91c72534273e85ef37a980ac5398d7
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-or-later
diff --git a/utils/fio/patches/010-rand.patch b/utils/fio/patches/010-rand.patch
deleted file mode 100644 (file)
index 46aa39f..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/t/io_uring.c
-+++ b/t/io_uring.c
-@@ -63,7 +63,6 @@ struct file {
- struct submitter {
-       pthread_t thread;
-       int ring_fd;
--      struct drand48_data rand;
-       struct io_sq_ring sq_ring;
-       struct io_uring_sqe *sqes;
-       struct io_cq_ring cq_ring;
-@@ -170,7 +169,7 @@ static void init_io(struct submitter *s, unsigned index)
-       }
-       f->pending_ios++;
--      lrand48_r(&s->rand, &r);
-+      r = lrand48();
-       offset = (r % (f->max_blocks - 1)) * BS;
-       if (register_files) {
-@@ -286,7 +285,7 @@ static void *submitter_fn(void *data)
-       printf("submitter=%d\n", gettid());
--      srand48_r(pthread_self(), &s->rand);
-+      srand48(pthread_self());
-       prepped = 0;
-       do {
diff --git a/utils/fio/patches/020-vasprintf.patch b/utils/fio/patches/020-vasprintf.patch
deleted file mode 100644 (file)
index 234c958..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -892,7 +892,8 @@ cat > $TMPC << EOF
- int main(int argc, char **argv)
- {
--  return vasprintf(NULL, "%s", NULL) == 0;
-+  va_list ap;
-+  return vasprintf(NULL, "%s", ap) == 0;
- }
- EOF
- if compile_prog "" "" "have_vasprintf"; then
index 707d684267ebb3a387e814567f6fe4546d8a0929..f2f551481caf2a824cfb2a219125d2b22fcce06c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=flent-tools
-PKG_VERSION:=1.2.2
+PKG_VERSION:=1.3.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/tohojo/flent/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=554bb1b5329cd39113cbb34445765ca6868dbf033aa64832d957d4a09d56adc7
+PKG_HASH:=f71793bb924b36d0e4c230182755c3f5dd26cd7f239b1fa6b717d942258cbf9a
 PKG_BUILD_DIR:=$(BUILD_DIR)/flent-$(PKG_VERSION)
 
 PKG_LICENSE:=GPL-3.0-only
@@ -28,7 +28,7 @@ define Package/flent-tools
   TITLE:=Helper programs for the Flent test tool
   URL:=https://flent.org
   MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
-  DEPENDS+=+librt
+  DEPENDS+=+librt +coreutils-sleep +coreutils-date
 endef
 
 define Package/flent-tc_iterate/description
index 6c57bd216a0729a03c62d13d970336c2639bdae2..397d09675359fc4e5ab17643a218ff7b9e22d6c7 100644 (file)
@@ -5,12 +5,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gawk
-PKG_VERSION:=5.0.1
+PKG_VERSION:=5.1.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/gawk
-PKG_HASH:=8e4e86f04ed789648b66f757329743a0d6dfb5294c3b91b756a474f1ce05a794
+PKG_HASH:=cf5fea4ac5665fd5171af4716baab2effc76306a9572988d5ba1078f196382bd
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=GPL-3.0-or-later
index b53e8585d5e9e7b075ca83e27cffdf43bf121650..cb8178b07b040d44a10ef3ee01e63f1aed64b044 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haveged
-PKG_VERSION:=1.9.8
-PKG_RELEASE:=3
+PKG_VERSION:=1.9.12
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/jirka-h/haveged/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=99aa1996c6e39ea2459cfc37addfb8b1eecc63f3a2b6da9db17b22e76b6851ae
+PKG_HASH:=0b8642515ea7189a1772cdb8072b98a6768cf9b963faf3cd664329fd79975ffa
 PKG_BUILD_DIR:=$(BUILD_DIR)/haveged-$(PKG_VERSION)
 PKG_LICENSE:=GPLv3
 
diff --git a/utils/hwinfo/Makefile b/utils/hwinfo/Makefile
new file mode 100644 (file)
index 0000000..347d348
--- /dev/null
@@ -0,0 +1,89 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=hwinfo
+PKG_VERSION:=21.70
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/openSUSE/hwinfo/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=bc3c4a4498e4abc32a54497ced715bbae5dfd19dd999da294bca6d69fea2db52
+
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_MAINTAINER:=Alberto Bursi <bobafetthotmail@gmail.com>
+
+PKG_BUILD_DEPENDS:= hwinfo/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+
+# Execute in host build directory
+HOST_MAKE_FLAGS += -C $(HOST_BUILD_DIR)
+
+define Host/Configure
+       # copy uuid.h to another location in host build dir as that's where this package expects it
+       $(INSTALL_DIR) $(STAGING_DIR_HOST)/include/uuid/
+       $(CP) $(STAGING_DIR_HOST)/include/e2fsprogs/uuid/uuid.h $(STAGING_DIR_HOST)/include/uuid/uuid.h
+endef
+
+define Host/Compile
+       # Build using host compiler and let it generate the files we need
+       # CFLAGS, CPPFLAGS & LDFLAGS need to be passed with CC because they are being ingored
+       CC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(HOST_LDFLAGS)" $(MAKE) $(HOST_MAKE_FLAGS)
+endef
+
+define Host/Install
+       $(INSTALL_DIR) $(STAGING_DIR_HOST)/share/hwinfo
+       $(CP) $(HOST_BUILD_DIR)/src/isdn/cdb/isdn_cdb $(STAGING_DIR_HOST)/share/hwinfo/
+       $(CP) $(HOST_BUILD_DIR)/src/isdn/cdb/mk_isdnhwdb $(STAGING_DIR_HOST)/share/hwinfo/
+               
+       $(CP) $(HOST_BUILD_DIR)/src/ids/check_hd $(STAGING_DIR_HOST)/share/hwinfo/
+endef
+
+define Build/Configure
+       # Fetch prebuilt files from host build dir
+       $(INSTALL_DIR) $(PKG_BUILD_DIR)/src/isdn/cdb/
+       $(CP) $(STAGING_DIR_HOST)/share/hwinfo/isdn_cdb $(PKG_BUILD_DIR)/src/isdn/cdb/
+       $(CP) $(STAGING_DIR_HOST)/share/hwinfo/mk_isdnhwdb $(PKG_BUILD_DIR)/src/isdn/cdb/
+               
+       $(INSTALL_DIR) $(PKG_BUILD_DIR)/src/ids/
+       $(CP) $(STAGING_DIR_HOST)/share/hwinfo/check_hd $(PKG_BUILD_DIR)/src/ids/
+
+
+       # Set copied files modtime to one day in the future
+       # to prevent rebuilding them
+       perl -e 'utime(time() + 86400, time() + 86400, $$$$ARGV[0])' \
+               $(PKG_BUILD_DIR)/src/isdn/cdb/isdn_cdb
+       perl -e 'utime(time() + 86400, time() + 86400, $$$$ARGV[0])' \
+               $(PKG_BUILD_DIR)/src/isdn/cdb/mk_isdnhwdb
+       perl -e 'utime(time() + 86400, time() + 86400, $$$$ARGV[0])' \
+               $(PKG_BUILD_DIR)/src/ids/check_hd
+endef
+
+
+define Package/hwinfo
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=probe the hardware present in the system
+  URL:=https://github.com/openSUSE/hwinfo
+  DEPENDS:= +libuuid @!USE_UCLIBC
+endef
+
+define Package/hwinfo/description
+ hwinfo/libhd are used to probe for the hardware present in the system.
+ It can be used to generate a system overview log which can be later 
+ used for support.
+ This project provides a hardware probing library libhd.so and a 
+ command line tool hwinfo using it. A major project using this library
+ is YaST, the SUSE installation tool.
+endef
+
+
+define Package/hwinfo/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_BUILD_DIR)/hwinfo $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_BUILD_DIR)/src/libhd.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,hwinfo))
+$(eval $(call HostBuild))
diff --git a/utils/hwinfo/patches/0-hardcoding-version b/utils/hwinfo/patches/0-hardcoding-version
new file mode 100644 (file)
index 0000000..cf98939
--- /dev/null
@@ -0,0 +1,19 @@
+hardcode version of hwinfo, this must be changed in sync 
+with hwinfo version changes when updating the package
+--- a/Makefile 
++++ b/Makefile 
+@@ -12,12 +12,8 @@
+ GIT2LOG := $(shell if [ -x ./git2log ] ; then echo ./git2log --update ; else echo true ; fi)
+ GITDEPS := $(shell [ -d .git ] && echo .git/HEAD .git/refs/heads .git/refs/tags)
+-BRANCH  := $(shell [ -d .git ] && git branch | perl -ne 'print $$_ if s/^\*\s*//')
+-ifdef HWINFO_VERSION
+-VERSION := $(shell echo ${HWINFO_VERSION} > VERSION; cat VERSION)
+-else
+-VERSION := $(shell $(GIT2LOG) --version VERSION ; cat VERSION)
+-endif
++BRANCH  := master
++VERSION := $(shell echo 21.7 > VERSION; cat VERSION)
+ PREFIX  := hwinfo-$(VERSION)
+ include Makefile.common
diff --git a/utils/hwinfo/patches/1-remove_libx8emu_dependency b/utils/hwinfo/patches/1-remove_libx8emu_dependency
new file mode 100644 (file)
index 0000000..b7c4eb4
--- /dev/null
@@ -0,0 +1,68 @@
+the library libx86emu is used only for manipulating VBIOS
+firmware to get some information from it.
+Since it's not crucial for OpenWrt usecase and it's a pain
+to compile this package with this dependency in OpenWrt due to
+host builds and whatnot, we simply remove it and disable this 
+functionality in hwinfo.
+This also saves some space.
+--- a/Makefile 
++++ b/Makefile 
+@@ -25,13 +25,14 @@
+ endif
+ ULIBDIR               = $(LIBDIR)
++# this library has been removed from the code, disabling it here too
+ # ia64
+-ifneq ($(filter i386 x86_64, $(ARCH)),)
+-SLIBS         += -lx86emu
+-TLIBS         += -lx86emu
+-SO_LIBS               += -lx86emu
+-TSO_LIBS      += -lx86emu
+-endif
++#ifneq ($(filter i386 x86_64, $(ARCH)),)
++#SLIBS                += -lx86emu
++#TLIBS                += -lx86emu
++#SO_LIBS              += -lx86emu
++#TSO_LIBS     += -lx86emu
++#endif
+ SHARED_FLAGS  =
+ OBJS_NO_TINY  = names.o parallel.o modem.o
+
+--- a/src/hd/bios.c
++++ b/src/hd/bios.c
+@@ -447,9 +447,10 @@
+       }
+     }
+-#if defined(__i386__) || defined (__x86_64__)
+-    get_vbe_info(hd_data, vbe);
+-#endif
++//disabled as we removed the library needed for this function
++//#if defined(__i386__) || defined (__x86_64__)
++//    get_vbe_info(hd_data, vbe);
++//#endif
+     if(vbe->ok) {
+       bt->vbe_ver = vbe->version;
+
+--- a/src/hd/bios.h
++++ b/src/hd/bios.h
+@@ -5,4 +5,5 @@
+ #define BIOS_RAM_SIZE   0x100
+ void hd_scan_bios(hd_data_t *hd_data);
+-void get_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe);
++//disabled as we removed the lib needed by this function
++//void get_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe);
+
+--- a/src/hd/mdt.c
++++ b/src/hd/mdt.c
+@@ -1,4 +1,6 @@
+-#if defined(__i386__) || defined (__x86_64__)
++//disabling this whole thing as it's using the lib we have removed
++//#if defined(__i386__) || defined (__x86_64__)
++#if defined(__disabled__) || defined (__disabled__)
+ #define _GNU_SOURCE
diff --git a/utils/hwinfo/patches/2-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers b/utils/hwinfo/patches/2-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers
new file mode 100644 (file)
index 0000000..3eb8df9
--- /dev/null
@@ -0,0 +1,75 @@
+>>enable all IDs for hwinfo
+>>changes to make it respect compile flags
+>>disable the generation of "tiny hwinfo ID tables" because it is a long
+process and has no purpose, it seems I cannot even build the "tiny" version of hwinfo
+on my OpenSUSE system, so I guess that it is just legacy stuff that bitrotted.
+
+--- a/src/ids/Makefile
++++ b/src/ids/Makefile
+@@ -17,47 +17,47 @@
+         src/usb src/usb2 src/isapnp src/monitor src/camera src/tv2 src/tv src/dvb2 src/dvb \
+         src/chipcard src/modem src/pcmcia src/s390 src/sdio
+-ifeq "$(ARCH)" "i386"
++#ifeq "$(ARCH)" "i386"
+ IDFILES += src/x11.i386 src/modem.i386
+-endif
++#endif
+-ifeq "$(ARCH)" "ppc"
++#ifeq "$(ARCH)" "ppc"
+ IDFILES += src/x11.ppc src/x11.ppc.special
+-endif
++#endif
+-ifeq "$(ARCH)" "alpha"
++#ifeq "$(ARCH)" "alpha"
+ IDFILES += src/x11.axp
+-endif
++#endif
+-ifeq "$(ARCH)" "sparc"
++#ifeq "$(ARCH)" "sparc"
+ IDFILES += src/x11.sparc
+-endif
++#endif
+-ifeq "$(ARCH)" "sparc64"
++#ifeq "$(ARCH)" "sparc64"
+ IDFILES += src/x11.sparc
+-endif
++#endif
+-ifeq "$(ARCH)" "ia64"
++#ifeq "$(ARCH)" "ia64"
+ IDFILES += src/x11.ia64
+-endif
++#endif
+-ifeq "$(ARCH)" "x86_64"
++#ifeq "$(ARCH)" "x86_64"
+ IDFILES += src/x11.amd64
+-endif
++#endif
+ IDFILES += src/pci src/storage src/sound src/mouse src/braille
+ $(LIBHD_D): hd_ids.o
+-      ar r $(LIBHD) $?
++      $(AR) r $(LIBHD) $?
+ check_hd: check_hd.c
+-      $(CC) $(CFLAGS) $< -o $@
++      $(CC) $(LDFLAGS) $(CFLAGS) $< -o $@
+-hd_ids.c: hd_ids.h hd_ids_tiny.h
++hd_ids.c: hd_ids.h 
+ hd_ids.h hd.ids: check_hd $(IDFILES)
+       ./check_hd --check --sort --cfile hd_ids.h $(IDFILES)
+-hd_ids_tiny.h: check_hd hd.ids
+-      ./check_hd --mini --cfile hd_ids_tiny.h --log=hd_tiny.log --out=hd_tiny.ids hd.ids
++#hd_ids_tiny.h: check_hd hd.ids
++#     ./check_hd --mini --cfile hd_ids_tiny.h --log=hd_tiny.log --out=hd_tiny.ids hd.ids
diff --git a/utils/hwinfo/patches/3-assorted-Makefile-butchery b/utils/hwinfo/patches/3-assorted-Makefile-butchery
new file mode 100644 (file)
index 0000000..711c40b
--- /dev/null
@@ -0,0 +1,197 @@
+Some makefile modifications to:
+>>disable the logic that detects and sets architecture (it screws up cross-compiling)
+>>disable some secondary build functions like creating changelogs or report files for other tools
+>>disable the install functionality as we take the files we need with OpenWrt build system
+>>changes to all makefiles to respect the compile flags
+
+--- a/Makefile 
++++ b/Makefile 
+@@ -1,6 +1,6 @@
+ TOPDIR                = $(CURDIR)
+ SUBDIRS               = src
+-TARGETS               = hwinfo hwinfo.pc changelog
++TARGETS               = hwinfo
+ CLEANFILES    = hwinfo hwinfo.pc hwinfo.static hwscan hwscan.static hwscand hwscanqueue doc/libhd doc/*~
+ LIBS          = -lhd
+ SLIBS         = -lhd -luuid
+@@ -18,11 +18,11 @@
+ include Makefile.common
+-ifeq "$(ARCH)" "x86_64"
+-LIBDIR                ?= /usr/lib64
+-else
++#ifeq "$(ARCH)" "x86_64"
++#LIBDIR               ?= /usr/lib64
++#else
+ LIBDIR                ?= /usr/lib
+-endif
++#endif
+ ULIBDIR               = $(LIBDIR)
+ # this library has been removed from the code, disabling it here too
+@@ -39,13 +39,13 @@
+ .PHONY:       fullstatic static shared tiny doc diet tinydiet uc tinyuc
+-ifdef HWINFO_VERSION
++#ifdef HWINFO_VERSION
+ changelog:
+       @true
+-else
+-changelog: $(GITDEPS)
+-      $(GIT2LOG) --changelog changelog
+-endif
++#else
++#changelog: $(GITDEPS)
++#     $(GIT2LOG) --changelog changelog
++#endif
+ hwscan: hwscan.o $(LIBHD)
+       $(CC) hwscan.o $(LDFLAGS) $(CFLAGS) $(LIBS) -o $@
+@@ -99,28 +99,29 @@
+       @cd doc ; doxygen libhd.doxy
+ install:
+-      install -d -m 755 $(DESTDIR)/sbin $(DESTDIR)/usr/sbin $(DESTDIR)$(ULIBDIR) \
+-              $(DESTDIR)$(ULIBDIR)/pkgconfig $(DESTDIR)/usr/include
+-      install -m 755 hwinfo $(DESTDIR)/usr/sbin
+-      install -m 755 src/ids/check_hd $(DESTDIR)/usr/sbin
+-      install -m 755 src/ids/convert_hd $(DESTDIR)/usr/sbin
+-      if [ -f $(LIBHD_SO) ] ; then \
+-              install $(LIBHD_SO) $(DESTDIR)$(ULIBDIR) ; \
+-              ln -snf $(LIBHD_NAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_SONAME) ; \
+-              ln -snf $(LIBHD_SONAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_BASE).so ; \
+-      else \
+-              install -m 644 $(LIBHD) $(DESTDIR)$(ULIBDIR) ; \
+-      fi
+-      install -m 644 hwinfo.pc $(DESTDIR)$(ULIBDIR)/pkgconfig
+-      install -m 644 src/hd/hd.h $(DESTDIR)/usr/include
+-      perl -pi -e "s/define\s+HD_VERSION\b.*/define HD_VERSION\t\t$(LIBHD_MAJOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
+-      perl -pi -e "s/define\s+HD_MINOR_VERSION\b.*/define HD_MINOR_VERSION\t$(LIBHD_MINOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
+-      install -m 755 getsysinfo $(DESTDIR)/usr/sbin
+-      install -m 755 src/isdn/cdb/mk_isdnhwdb $(DESTDIR)/usr/sbin
+-      install -d -m 755 $(DESTDIR)/usr/share/hwinfo
+-      install -d -m 755 $(DESTDIR)/var/lib/hardware/udi
+-      install -m 644 src/isdn/cdb/ISDN.CDB.txt $(DESTDIR)/usr/share/hwinfo
+-      install -m 644 src/isdn/cdb/ISDN.CDB.hwdb $(DESTDIR)/usr/share/hwinfo
++#     install -d -m 755 $(DESTDIR)/sbin $(DESTDIR)/usr/sbin $(DESTDIR)$(ULIBDIR) \
++#             $(DESTDIR)$(ULIBDIR)/pkgconfig $(DESTDIR)/usr/include
++#     install -m 755 hwinfo $(DESTDIR)/usr/sbin
++#     install -m 755 src/ids/check_hd $(DESTDIR)/usr/sbin
++#     install -m 755 src/ids/convert_hd $(DESTDIR)/usr/sbin
++#     if [ -f $(LIBHD_SO) ] ; then \
++#             install $(LIBHD_SO) $(DESTDIR)$(ULIBDIR) ; \
++#             ln -snf $(LIBHD_NAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_SONAME) ; \
++#             ln -snf $(LIBHD_SONAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_BASE).so ; \
++#     else \
++#             install -m 644 $(LIBHD) $(DESTDIR)$(ULIBDIR) ; \
++#     fi
++#     install -m 644 hwinfo.pc $(DESTDIR)$(ULIBDIR)/pkgconfig
++#     install -m 644 src/hd/hd.h $(DESTDIR)/usr/include
++#     perl -pi -e "s/define\s+HD_VERSION\b.*/define HD_VERSION\t\t$(LIBHD_MAJOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
++#     perl -pi -e "s/define\s+HD_MINOR_VERSION\b.*/define HD_MINOR_VERSION\t$(LIBHD_MINOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
++#     install -m 755 getsysinfo $(DESTDIR)/usr/sbin
++#     install -m 755 src/isdn/cdb/mk_isdnhwdb $(DESTDIR)/usr/sbin
++#     install -d -m 755 $(DESTDIR)/usr/share/hwinfo
++#     install -d -m 755 $(DESTDIR)/var/lib/hardware/udi
++#     install -m 644 src/isdn/cdb/ISDN.CDB.txt $(DESTDIR)/usr/share/hwinfo
++#     install -m 644 src/isdn/cdb/ISDN.CDB.hwdb $(DESTDIR)/usr/share/hwinfo
++      @true
+ archive: changelog
+       @if [ ! -d .git ] ; then echo no git repo ; false ; fi
+
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -1,28 +1,26 @@
+ # libhd/Makefile.common
+-ARCH  := $(shell uname -m)
+-ifeq "$(ARCH)" "i486"
+-ARCH  := i386
+-endif
+-ifeq "$(ARCH)" "i586"
+-ARCH  := i386
+-endif
+-ifeq "$(ARCH)" "i686"
+-ARCH  := i386
+-endif
+-ifeq "$(ARCH)" "parisc"
+-EXTRA_FLAGS := -fPIC $(EXTRA_FLAGS)
+-endif
++#ARCH := $(shell uname -m)
++#ifeq "$(ARCH)" "i486"
++#ARCH := i386
++#endif
++#ifeq "$(ARCH)" "i586"
++#ARCH := i386
++#endif
++#ifeq "$(ARCH)" "i686"
++#ARCH := i386
++#endif
++#ifeq "$(ARCH)" "parisc"
++#EXTRA_FLAGS := -fPIC $(EXTRA_FLAGS)
++#endif
+ LIBHD_VERSION         := $(shell cat $(TOPDIR)/VERSION)
+ LIBHD_MINOR_VERSION   := $(shell cut -d . -f 2 $(TOPDIR)/VERSION)
+ LIBHD_MAJOR_VERSION   := $(shell cut -d . -f 1 $(TOPDIR)/VERSION)
+-RPM_OPT_FLAGS ?= -O2
+-
+ CC    ?= gcc
+ LD    = ld
+-CFLAGS += $(RPM_OPT_FLAGS) -Wall -Wno-pointer-sign -pipe -g $(SHARED_FLAGS) $(EXTRA_FLAGS) -I$(TOPDIR)/src/hd
++CFLAGS += -Wall -Wno-pointer-sign $(SHARED_FLAGS) $(EXTRA_FLAGS) -I$(TOPDIR)/src/hd
+ SHARED_FLAGS  = -fPIC
+ LDFLAGS       += -Lsrc
+@@ -36,7 +34,7 @@
+ LIBHD_SO      = $(TOPDIR)/src/$(LIBHD_NAME)
+ LIBHD_D               = $(TOPDIR)/src/.lib
+-export CC TOPDIR CFLAGS LIBHD ARCH
++export CC TOPDIR CFLAGS LIBHD 
+ .PHONY: all distclean clean install subdirs
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -12,7 +12,7 @@
+ #endif
+ $(LIBHD): $(OBJS)
+-      ar r $@ $?
++      $(AR) r $@ $?
+       @rm -f $(LIBHD_D)
+ ifdef SHARED_FLAGS
+--- a/src/hd/Makefile
++++ b/src/hd/Makefile
+@@ -12,4 +12,4 @@
+       @perl -pi -e "s/define\s+HD_MINOR_VERSION\s+\d+/define HD_MINOR_VERSION\t$(LIBHD_MINOR_VERSION)/" $@
+ $(LIBHD_D): $(OBJS)
+-      ar r $(LIBHD) $?
++      $(AR) r $(LIBHD) $?
+--- a/src/isdn/Makefile
++++ b/src/isdn/Makefile
+@@ -5,5 +5,5 @@
+ include $(TOPDIR)/Makefile.common
+ $(LIBHD_D): $(OBJS)
+-      ar r $(LIBHD) $?
++      $(AR) r $(LIBHD) $?
+--- a/src/smp/Makefile
++++ b/src/smp/Makefile
+@@ -4,4 +4,4 @@
+ include $(TOPDIR)/Makefile.common
+ $(LIBHD_D): $(OBJS)
+-      ar r $(LIBHD) $?
++      $(AR) r $(LIBHD) $?
+
index 4e00f07c99ba0e381b204ae61129eb250935e30d..6138da0f31711c069d056b71cc17836ff7c032a1 100644 (file)
@@ -6,19 +6,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=idevicerestore
-PKG_SOURCE_DATE:=2020-04-20
-PKG_SOURCE_VERSION:=d1cb6bfef6ac8fb08472ac5f1fac93895084371c
+PKG_VERSION:=1.0.0
 PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=https://github.com/libimobiledevice/idevicerestore
-PKG_MIRROR_HASH:=1f0afb92a1a32b7ac929408c1dd5356329866a2672075d0f55dde7d31dac6cc2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://www.libimobiledevice.org/downloads
+PKG_HASH:=32712e86315397fd2e8999e77a2d2f790c67f6b4aa50d4d1c64cb2c4609836f7
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
index 6d8173951f6d78949ba7e569f2f2ab7b252afb26..5f5b6468892f1cf7b907369df8c24c9184645e59 100644 (file)
@@ -1,8 +1,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=inotify-tools
-PKG_VERSION:=3.20.1
-PKG_HASH:=a433cc1dedba851078276db69b0e97f9fe41e4ba3336d2971adfca4b3a6242ac
+PKG_VERSION:=3.20.2.2
+PKG_HASH:=770fb1d94ace659f975d7494e3ab8b421a6aab930b9c37c7c290ab5280abb7b8
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://codeload.github.com/rvoicilas/inotify-tools/tar.gz/$(PKG_VERSION)?
@@ -17,6 +17,13 @@ PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
 
+CONFIGURE_ARGS+= --disable-doxygen
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       $(CP) $(PKG_BUILD_DIR)/README.md $(PKG_BUILD_DIR)/README
+endef
+
 define Package/inotify-tools/Default
   URL:=https://github.com/rvoicilas/inotify-tools/wiki
 endef
@@ -86,7 +93,6 @@ define Package/libinotifytools/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
 endef
 
-
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include/inotifytools
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/inotifytools/* $(1)/usr/include/inotifytools/
index 15924e2797569c54cb5a749587327efff0008116..6f657f85014da9dc5b36e7e7cd0b1299a988184a 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=irqbalance
 PKG_VERSION:=1.6.0
-PKG_RELEASE:=9
+PKG_RELEASE:=10
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_PROTO:=git
index 638dcb39f65ae4973424495926f795da6b74b366..0f587e1580f25f788590af239b79a5ea3cca7a51 100644 (file)
@@ -16,6 +16,8 @@ start_service() {
        config_get_bool enabled irqbalance enabled 0
        [ "$enabled" -gt 0 ] || return 0
 
+       mkdir -p /var/run/irqbalance
+
        # 10 is the default
        config_get interval irqbalance interval 10
 
diff --git a/utils/irqbalance/patches/110-fix-runtime-socket-directory.patch b/utils/irqbalance/patches/110-fix-runtime-socket-directory.patch
new file mode 100644 (file)
index 0000000..6429f16
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/irqbalance.h
++++ b/irqbalance.h
+@@ -158,7 +158,7 @@ extern unsigned int log_mask;
+ #endif /* HAVE_LIBSYSTEMD */
+ #define SOCKET_PATH "irqbalance"
+-#define SOCKET_TMPFS "/run/irqbalance/"
++#define SOCKET_TMPFS "/var/run/irqbalance/"
+ #endif /* __INCLUDE_GUARD_IRQBALANCE_H_ */
+--- a/ui/irqbalance-ui.h
++++ b/ui/irqbalance-ui.h
+@@ -8,7 +8,7 @@
+ #include <glib-unix.h>
+ #define SOCKET_PATH "irqbalance"
+-#define SOCKET_TMPFS "/run/irqbalance"
++#define SOCKET_TMPFS "/var/run/irqbalance"
+ #define STATS "stats"
+ #define SET_SLEEP "settings sleep "
index fce85194e9160315be4afefec9c5c54fd6731c8f..04633d8b09ea5e968924e1893e51647f964d5d4f 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=klish
-PKG_VERSION:=2.1.4
-PKG_RELEASE:=2
+PKG_VERSION:=2.2.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://libcode.org/attachments/download/70/
-PKG_HASH:=a89dd1027dce713407b6d68e836c8fdead56406dcfc650da84da8e0b92c9b2e5
+PKG_SOURCE_URL:=http://libcode.org/attachments/download/77/
+PKG_HASH:=a069ef06bb485e15b2ff27b856e46cd76fee1eac7e0f62a8d8ac0ad413694614
 
 PKG_MAINTAINER:=Takashi Umeno <umeno.takashi@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
index b9e7b6068ec0da02cdd65786f7e17bea9c9f0683..fd8e5807c3144afc00e299eea5cff81e9d86d731 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kmod
 PKG_VERSION:=20
-PKG_RELEASE:=2
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/kernel/kmod/
@@ -38,6 +38,13 @@ endef
 define Package/kmod
 $(call Package/kmod/Default)
   TITLE+= (tools)
+  ALTERNATIVES:=\
+    200:/sbin/depmod:/sbin/kmod \
+    200:/sbin/insmod:/sbin/kmod \
+    200:/sbin/lsmod:/sbin/kmod \
+    200:/sbin/modinfo:/sbin/kmod \
+    200:/sbin/modprobe:/sbin/kmod \
+    200:/sbin/rmmod:/sbin/kmod
 endef
 
 define Package/kmod/description
@@ -46,21 +53,9 @@ Linux kernel module handling
  insert, remove, list, check properties, resolve dependencies and aliases.
 endef
 
-LEGACY_BINARIES:= \
-       depmod \
-       insmod \
-       lsmod \
-       modinfo \
-       modprobe \
-       rmmod
-
 define Package/kmod/install
        $(INSTALL_DIR) $(1)/sbin
        $(CP) $(PKG_INSTALL_DIR)/usr/bin/kmod $(1)/sbin
-
-       for b in $(LEGACY_BINARIES); do \
-               ln -sf kmod $(1)/sbin/$$$$b ; \
-       done
 endef
 
 
index 6d4095073e00976c0f6dde0065f597db0f6bdd8b..ef0cfa916035e1ec6cc039b96d45c1acad7a1a68 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=less
-PKG_VERSION:=530
+PKG_VERSION:=562
 PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.greenwoodsoftware.com/less
-PKG_HASH:=503f91ab0af4846f34f0444ab71c4b286123f0044a4964f1ae781486c617f2e2
+PKG_HASH:=eab470c7c928132441541aa49b1352c0fc699c30f762dfaeb3bf88e6f0fd701b
 
-PKG_LICENSE:=GPL-3.0
+PKG_LICENSE:=GPL-3.0-or-later
 PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Julen Landa Alustiza <julen@zokormazo.info>
 PKG_CPE_ID:=cpe:/a:gnu:less
@@ -30,7 +30,7 @@ define Package/less/Default
   CATEGORY:=Utilities
   TITLE:=Pager program similar to more
   URL:=http://www.greenwoodsoftware.com/less/
-  ALTERNATIVES:=200:/bin/less:/usr/bin/less
+  ALTERNATIVES:=200:/usr/bin/less:/usr/bin/gnu-less
 endef
 
 define Package/less/Default/description
@@ -61,7 +61,7 @@ endef
 
 ifeq ($(BUILD_VARIANT),narrow)
        CONFIGURE_VARS += \
-               ac_cv_lib_ncursesw_initscr=no           
+               ac_cv_lib_ncursesw_initscr=no
 endif
 
 ifeq ($(BUILD_VARIANT),wide)
@@ -71,12 +71,10 @@ endif
 
 define Package/less/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/less $(1)/usr/bin/less
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/less $(1)/usr/bin/gnu-less
 endef
 
 Package/less-wide/install = $(Package/less/install)
-Package/less-wide/postinst = $(Package/less/postinst)
-Package/less-wide/postrm = $(Package/less/postrm)
 
 $(eval $(call BuildPackage,less))
 $(eval $(call BuildPackage,less-wide))
index 84a369dfd1a8417ae6e7b7b47a8e8fc5fd1e21b2..ceae9c996d36ccc6cdd26f767105992d15cc5b7a 100644 (file)
@@ -12,9 +12,9 @@ GO_PKG_BUILD_PKG:= \
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://$(GO_PKG)
-PKG_SOURCE_VERSION:=0941c3f409260d5f05cfa6fc68420d8ad45ee483
-PKG_SOURCE_DATE:=2020-03-19
-PKG_MIRROR_HASH:=678e1d3175fd78833fddd38965baa3784993dbf53c3f56f5f7d39364eeaf93e1
+PKG_SOURCE_VERSION:=153d0769a1181bf591a9637fd487a541ec7db1e6
+PKG_SOURCE_DATE:=2020-04-04
+PKG_MIRROR_HASH:=72d540bd6a3681dbc6eb4d271beb57d030b501c2e4bca33e82b6027a3e523ac6
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
index 7ee2a18caa855ec6b42dc30e9e70b6cb6da159bf..f9134ff82c8d3a29a31b38bf1d0fcb498d21189c 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=LVM2
-PKG_VERSION:=2.03.08
-PKG_RELEASE:=2
+PKG_VERSION:=2.03.09
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=https://sourceware.org/pub/lvm2
-PKG_HASH:=6e0261dc9f6ab0ef1fc4a63d105a73e06eb536a273a9d6c2ccc414548c8e1ec8
+PKG_HASH:=c03a8b8d5c03ba8ac54ebddf670ae0d086edac54a6577e8c50721a8e174eb975
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION)
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
index 0a5c37992963875e749799546452679adcacb7db..0caa6da3c2af2abca3e185de1553289c7c3387e5 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lxc
 PKG_VERSION:=4.0.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://linuxcontainers.org/downloads/lxc/
index 53abff9f1e0f1d44d9ceb40e6e51cd96580eb2d0..1c36483b5c38c1971d22a36c617519e73abf5797 100755 (executable)
@@ -68,4 +68,6 @@ boot() {
        if [ ! -d /run ]; then
                ln -s /var/run /run
        fi
+
+       start
 }
index f8edde6e7d16f4679669b813fb96c9625b01ccf1..c702be260d591b749b5c831e5c200d4b336d72ba 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mariadb
 PKG_VERSION:=10.4.13
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL := \
@@ -116,13 +116,15 @@ plugin-wsrep_info               := PLUGIN_WSREP_INFO
 
 MARIADB_CLIENT := \
        mysql \
-       mysql_upgrade \
        mysqlcheck
 
 MARIADB_CLIENT_EXTRA := \
+       msql2mysql \
        mysql_find_rows \
+       mysql_plugin \
        mysql_waitpid \
        mysqlaccess \
+       mysqlbinlog \
        mysqldump \
        mysqlimport \
        mysqlshow \
@@ -133,6 +135,7 @@ MARIADB_SERVER := \
        innochecksum \
        my_print_defaults \
        mysql_install_db \
+       mysql_upgrade \
        mysqladmin \
        mysqld \
        mysqld_safe
@@ -144,18 +147,15 @@ MARIADB_SERVER_EXTRA := \
        aria_pack \
        aria_read_log \
        mariabackup \
-       msql2mysql \
        myisam_ftdump \
        myisamchk \
        myisamlog \
        myisampack \
        mysql_convert_table_format \
        mysql_fix_extensions \
-       mysql_plugin \
        mysql_secure_installation \
        mysql_setpermission \
        mysql_tzinfo_to_sql \
-       mysqlbinlog \
        mysqld_multi \
        mysqld_safe_helper \
        mysqldumpslow \
index c7dd9103590105de70757d939d256ec5013af467..8c195c0bdc8957577fb29e47caa137d5efa2da31 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ncdu
-PKG_VERSION:=1.14.2
+PKG_VERSION:=1.15
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dev.yorhel.nl/download
-PKG_HASH:=947a7f5c1d0cd4e338e72b4f5bc5e2873651442cec3cb012e04ad2c37152c6b1
+PKG_HASH:=4a593dc5cceb2492a9669f5f5d69d0e517de457a11036788ea4591f33c5297fb
 
-PKG_MAINTAINER:=Charles Lehner <celehner1@gmail.com>
+PKG_MAINTAINER:=Charles E. Lehner <cel@celehner.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
 
index 96af22f818277eeaf7574d1db7e4d6d7b87ae2a8..8d36e3e614f3e238769b718b69b683f014a51e07 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=open-vm-tools
 PKG_VERSION:=11.1.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-16036546.tar.gz
 PKG_SOURCE_URL:=https://github.com/vmware/open-vm-tools/releases/download/stable-$(PKG_VERSION)
@@ -25,19 +25,34 @@ PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/open-vm-tools
+define Package/open-vm-tools/Default
   SECTION:=utils
   CATEGORY:=Utilities
+  URL:=https://github.com/vmware/open-vm-tools
+endef
+
+define Package/open-vm-tools
+$(call Package/open-vm-tools/Default)
   DEPENDS:=@TARGET_x86 +glib2 +libpthread +libtirpc
   TITLE:=open-vm-tools
   URL:=https://github.com/vmware/open-vm-tools
   MAINTAINER:=Yuhei OKAWA <tochiro.srchack@gmail.com>
 endef
 
-define Package/open-vm-tools-vm-tools/description
+define Package/open-vm-tools/description
        Open Virtual Machine Tools for VMware guest OS
 endef
 
+define Package/open-vm-tools-fuse
+$(call Package/open-vm-tools/Default)
+  DEPENDS:=+open-vm-tools +libfuse
+  TITLE:=open-vm-tools-fuse
+  MAINTAINER:=Kagurazaka Kotori <kagurazakakotori@gmail.com>
+endef
+
+define Package/open-vm-tools-fuse/description
+       Shared Folders user mode FUSE client support for VMware guest OS
+endef
 
 CONFIGURE_ARGS+= \
        --without-icu \
@@ -61,7 +76,6 @@ CONFIGURE_ARGS+= \
        --without-xerces \
        --enable-resolutionkms=no
 
-
 define Package/open-vm-tools/install
        $(INSTALL_DIR) $(1)/etc/init.d/
        $(INSTALL_BIN) ./files/vmtoolsd.init $(1)/etc/init.d/vmtoolsd
@@ -114,4 +128,11 @@ define Package/open-vm-tools/install
        $(CP) $(PKG_INSTALL_DIR)/usr/share/open-vm-tools/messages/ja/vmtoolsd.vmsg $(1)/usr/share/open-vm-tools/messages/ja/
 endef
 
+define Package/open-vm-tools-fuse/install
+       $(INSTALL_DIR) $(1)/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vmhgfs-fuse $(1)/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vmware-vmblock-fuse $(1)/bin/
+endef
+
 $(eval $(call BuildPackage,open-vm-tools))
+$(eval $(call BuildPackage,open-vm-tools-fuse))
index 0783466fe7d9fe4198d24d9d6fbd010d67ec20b9..64aa1b03b780d527aed8ae8a962ecc680d54a64b 100644 (file)
@@ -9,19 +9,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openzwave
-PKG_VERSION:=1.6.1063
+PKG_VERSION:=1.6.1149
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://old.openzwave.com/downloads
-PKG_HASH:=8b1b674f825cd3623d2aa9c286edbb05c0ff6537d5d3ee891ae98e21d28de26b
+PKG_HASH:=dc747c24cae11e4aa121252cc38ea92d1fbc587dc514737dd0e2b24191521c48
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
 define Package/openzwave/default
   URL:=http://openzwave.com
-  MAINTAINER:=
+  MAINTAINER:=David Woodhouse <dwmw2@infradead.org>
   DEPENDS:=+libpthread +libstdcpp
 endef
 
index bb3bcfec4e876f6b27c8761c89cf2d58f44ce5ab..25aa105c512615809da9d77153ac423638f614e0 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pciutils
-PKG_VERSION:=3.6.4
+PKG_VERSION:=3.7.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/utils/pciutils
-PKG_HASH:=f67ff732976e2db2a5ccdf3960020796526ba6b05f6b1cdd24b7b206af706055
+PKG_HASH:=9d40b97be8b6a2cdf96aead5a61881d1f7e4e0da9544a9bac4fba1ae9dcd40eb
 
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
 PKG_LICENSE:=GPL-2.0
@@ -45,13 +45,13 @@ define Package/libpci
 endef
 
 
-PCI_IDS_VER:=0.324
+PCI_IDS_VER:=0.336
 PCI_IDS_FILE:=pci.ids.$(PCI_IDS_VER)
 define Download/pci_ids
   FILE:=$(PCI_IDS_FILE)
   URL_FILE:=pci.ids
   URL:=@GITHUB/vcrhonek/hwdata/v$(PCI_IDS_VER)
-  HASH:=6dba287b4aaafb9582d6139eda22ee6580651b8557828b9598d99078a5f4217e
+  HASH:=94053616c1f9b93540861931fb7891b1b30d6fd21b3e2c1647467527ea38f557
 endef
 $(eval $(call Download,pci_ids))
 
index c0459cc97d8826d1b1739162f76a637029b1a8e9..f1ee89a80756b310b174de9f547d621edb97d8c1 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pcsc-lite
-PKG_VERSION:=1.8.26
+PKG_VERSION:=1.9.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://pcsclite.apdu.fr/files/
-PKG_HASH:=3eb7be7d6ef618c0a444316cf5c1f2f9d7227aedba7a192f389fe3e7c0dfbbd9
+PKG_HASH:=0148d403137124552c5d0f10f8cdab2cbb8dfc7c6ce75e018faf667be34f2ef9
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING
index 4fa32c542d8edc14e97f0aa262d01f58bf54e8b0..68953d4937f20183fe6bc6f521d384add9eace86 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=powertop
 PKG_VERSION:=2.10
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://01.org/sites/default/files/downloads/
@@ -39,13 +39,10 @@ define Package/powertop/description
  and power management.
 endef
 
-TARGET_CFLAGS += $(FPIC)
-ifeq ($(CONFIG_USE_UCLIBC),y)
-TARGET_CFLAGS += -fno-stack-protector
-endif
-TARGET_LDFLAGS += $(if $(INTL_FULL),-lintl)
-
-CONFIGURE_ARGS += --without-pic
+TARGET_LDFLAGS += \
+       $(if $(INTL_FULL),-lintl) \
+       $(if $(CONFIG_USE_GLIBC),-lm) \
+       $(if $(CONFIG_USE_GLIBC),-lpthread)
 
 define Package/powertop/install
        $(INSTALL_DIR) $(1)/usr/sbin
index 31adc9b566fb6fb839fd351355e765b6c29750e2..7ee7ede9c17fb600d55729b109607cb2539b6030 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=procps-ng
-PKG_VERSION:=3.3.15
-PKG_RELEASE:=5
+PKG_VERSION:=3.3.16
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SF/procps-ng
-PKG_HASH:=10bd744ffcb3de2d591d2f6acf1a54a7ba070fdcc432a855931a5057149f0465
+PKG_HASH:=925eacd65dedcf9c98eb94e8978bbfb63f5de37294cc1047d81462ed477a20af
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-or-later
index f6b3be72f3fd042315382c60637d849d73837fda..b1930936b7c1d8547df922101a4d9a96389a59f0 100644 (file)
@@ -9,11 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sane-backends
-PKG_VERSION:=1.0.29
+PKG_VERSION:=1.0.30
 PKG_RELEASE:=1
+
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://gitlab.com/sane-project/backends/uploads/54f858b20a364fc35d820df935a86478
-PKG_HASH:=aa027b4e5f59849cd41b8c26d54584cf31fffd986049019be6ad4140e11ea8ed
+PKG_SOURCE_URL:=https://gitlab.com/sane-project/backends/uploads/c3dd60c9e054b5dee1e7b01a7edc98b0
+PKG_HASH:=3f5d96a9c47f6124a46bb577c776bbc4896dd17b9203d8bfbc7fe8cbbcf279a3
+
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
 PKG_LICENSE:=GPL-2.0 GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING LICENSE
@@ -171,7 +173,7 @@ $(call Package/sane-backends/Default/description)
 This package contains the SANE frontends.
 endef
 
-CONFIGURE_ARGS+= \
+CONFIGURE_ARGS += \
        --enable-shared \
        --enable-static \
        --disable-preload \
@@ -181,8 +183,8 @@ CONFIGURE_ARGS+= \
        --without-usb-record-replay \
 
 # ./configure does not even try to detect mmap if crosscompiling
-CONFIGURE_VARS+= \
-    ac_cv_func_mmap_fixed_mapped="yes" \
+CONFIGURE_VARS += \
+    ac_cv_func_mmap_fixed_mapped="yes"
 
 define Build/Configure
        mkdir -p $(PKG_BUILD_DIR)/backend/.libs
index 52fbf59bf52cd6e5f49403fc69bf5e5b94ecdca1..ab2ba224b167ea282b001be2d40b022e74be65c0 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shadow
 PKG_VERSION:=4.8.1
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/shadow-maint/shadow/releases/download/$(PKG_VERSION)
@@ -22,6 +22,7 @@ PKG_CPE_ID:=cpe:/a:debian:shadow
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
+PKG_BUILD_DEPENDS:=libxcrypt
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
@@ -124,19 +125,14 @@ define Package/shadow-common/conffiles
 /etc/login.defs
 endef
 
+#hack to get libxcrypt working
+TARGET_LDFLAGS:=-L$(STAGING_DIR)/usr/lib/libxcrypt $(TARGET_LDFLAGS)
+
 define Package/shadow-common/install
        $(INSTALL_DIR) $(1)/etc
        $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/login.defs $(1)/etc/
        $(SED) 's,SU_NAME,#SU_NAME,g' $(1)/etc/login.defs
-ifeq ($(CONFIG_USE_MUSL),y)
-ifeq ($(CONFIG_MUSL_DISABLE_CRYPT_SIZE_HACK),y)
        $(SED) 's,#ENCRYPT_METHOD DES,ENCRYPT_METHOD BCRYPT,g' $(1)/etc/login.defs
-else
-       $(SED) 's,#ENCRYPT_METHOD DES,ENCRYPT_METHOD MD5,g' $(1)/etc/login.defs
-endif # CONFIG_MUSL_DISABLE_CRYPT_SIZE_HACK
-else
-       $(SED) 's,#ENCRYPT_METHOD DES,ENCRYPT_METHOD SHA512,g' $(1)/etc/login.defs
-endif # CONFIG_USE_MUSL
 endef
 
 define Package/shadow-utils/install
index b41c5f4eebfa3b93da498e1484a6dc3aa278f989..05ac4468cc6f5d3a2a29049a870a84c9bee57672 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sispmctl
-PKG_VERSION:=4.5
-PKG_RELEASE:=2
+PKG_VERSION:=4.7
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=59336c06e3590d42564917cc96c9fb654b6aa2814e01636b2e4fdcbfb3b9094c
+PKG_HASH:=e7d2f32f590984b6f44d758946e57776d68146e47f6cdc41d21c9218f2d2317b
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-or-later
index 2bf76000efb40e038e2bf166849de823f5fb46c3..f1d673f50cc5df2a37c565657f6d8ba7feedf120 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sysstat
-PKG_VERSION:=12.2.1
-PKG_RELEASE:=2
+PKG_VERSION:=12.2.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://pagesperso-orange.fr/sebastien.godard/
-PKG_HASH:=8edb0e19b514ac560a098a02933a4735b881296d61014db89bf80f05dd7a4732
+PKG_HASH:=78388b64acec81378b962e66b40e57acd4b18ff17a849bc9308f95d290248c9c
 
 PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
 PKG_LICENSE:=GPL-2.0-or-later
@@ -47,7 +47,6 @@ endef
 
 CONFIGURE_VARS+= \
        sa_lib_dir="/usr/lib/sysstat" \
-       sa_dir="/var/log/sysstat" \
        conf_dir="/etc/sysstat"
 
 CONFIGURE_ARGS+= \
index ec1beaf9c4107cb5dbf6b4bae61cc587d5c7fb41..7f19bd14399e8e0f5cec235580c02feb158267ba 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=telldus-core
 PKG_VERSION:=2.1.2
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://download.telldus.com/TellStick/Software/telldus-core/
@@ -42,7 +42,7 @@ define Package/telldus-core/conffiles
 /etc/tellstick.conf
 endef
 
-CMAKE_OPTIONS+=\
+CMAKE_OPTIONS += \
        -DBUILD_LIBTELLDUS-CORE=1 \
        -DBUILD_TDTOOL=1 \
        -DGENERATE_MAN=0 \
diff --git a/utils/telldus-core/patches/940-cxx11.patch b/utils/telldus-core/patches/940-cxx11.patch
new file mode 100644 (file)
index 0000000..bad984f
--- /dev/null
@@ -0,0 +1,29 @@
+--- a/common/Event.h
++++ b/common/Event.h
+@@ -9,7 +9,7 @@
+ #ifndef _WINDOWS
+-      #include <tr1/memory>
++      #include <memory>
+       typedef void* EVENT_T;
+ #else
+       #include <windows.h>
+@@ -32,7 +32,7 @@ namespace TelldusCore {
+               virtual bool isValid() const;
+       };
+-      typedef std::tr1::shared_ptr<EventData> EventDataRef;
++      typedef std::shared_ptr<EventData> EventDataRef;
+       class EventBase {
+       public:
+@@ -74,7 +74,7 @@ namespace TelldusCore {
+               friend class EventHandler;
+       };
+-      typedef std::tr1::shared_ptr<Event> EventRef;
++      typedef std::shared_ptr<Event> EventRef;
+ }
+ #endif  // TELLDUS_CORE_COMMON_EVENT_H_
diff --git a/utils/telldus-core/patches/950-pthread.patch b/utils/telldus-core/patches/950-pthread.patch
new file mode 100644 (file)
index 0000000..89cb89f
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/common/Thread.cpp
++++ b/common/Thread.cpp
+@@ -16,6 +16,8 @@
+ #endif
+ #include "common/EventHandler.h"
++#include <pthread.h>
++
+ namespace TelldusCore {
+ class ThreadPrivate {
+--- a/service/Timer.cpp
++++ b/service/Timer.cpp
+@@ -7,6 +7,7 @@
+ #include "service/Timer.h"
+ #ifdef _WINDOWS
+ #else
++#include <pthread.h>
+ #include <sys/time.h>
+ #include <errno.h>
+ #endif
diff --git a/utils/telldus-core/patches/960-time.patch b/utils/telldus-core/patches/960-time.patch
new file mode 100644 (file)
index 0000000..eb659de
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/service/DeviceManager.h
++++ b/service/DeviceManager.h
+@@ -7,6 +7,7 @@
+ #ifndef TELLDUS_CORE_SERVICE_DEVICEMANAGER_H_
+ #define TELLDUS_CORE_SERVICE_DEVICEMANAGER_H_
++#include <ctime>
+ #include <set>
+ #include <string>
+ #include "service/Device.h"
+--- a/service/Sensor.h
++++ b/service/Sensor.h
+@@ -7,6 +7,7 @@
+ #ifndef TELLDUS_CORE_SERVICE_SENSOR_H_
+ #define TELLDUS_CORE_SERVICE_SENSOR_H_
++#include <ctime>
+ #include <string>
+ #include "common/Mutex.h"
index 800811a547d697f68ce3fc09f8239f4b37ca318a..064aa7444143ef4b6ec3c542343e593e2041f479 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unrar
-PKG_VERSION:=5.9.1
+PKG_VERSION:=5.9.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=unrarsrc-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.rarlab.com/rar
-PKG_HASH:=0eb1d1b8e02102fccae775a6d6b79336b69e2cf90e2045de92594dcfb58de100
+PKG_HASH:=28c176c29da86d7efe3cb9a227255d8340f761ba95969195982ec87c8eb2dd69
 
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>, \
                Ted Hess <thess@kitschensync.net>
index 65d06efc77b39f5da0278d6978e652e6d735d6e1..19ec619436d8f0ea980d20fa9cd25305e5c03c7b 100644 (file)
@@ -22,7 +22,7 @@
  
  # Linux using LCC
  #CXX=lcc
-@@ -166,7 +166,7 @@ uninstall-unrar:
+@@ -167,7 +167,7 @@ uninstall-unrar:
                        rm -f $(DESTDIR)/bin/unrar
  
  install-lib:
index 2ab1fff75a9f39149d2a9042cf78c0950890b9b2..32fbc6857f47cf893c45667d8b713c8985b0384c 100644 (file)
@@ -8,20 +8,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=usbmuxd
-PKG_SOURCE_DATE:=2020-01-20
-PKG_SOURCE_VERSION:=8a69f1a78a58476f77b66916091d2405d0cd815f
-PKG_RELEASE:=2
+PKG_VERSION:=1.1.1
+PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=https://github.com/libimobiledevice/usbmuxd
-PKG_MIRROR_HASH:=cf6046fccd1a03d7970618b7ad958ef1437f717cc81af706ddf62c09a1746743
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://www.libimobiledevice.org/downloads
+PKG_HASH:=c0ec9700172bf635ccb5bed98daae607d2925c2bc3597f25706ecd9dfbfd2d9e
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING.GPLv2
 PKG_CPE_ID:=cpe:/a:libimobiledevice:usbmuxd
 
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
diff --git a/utils/which/Makefile b/utils/which/Makefile
new file mode 100644 (file)
index 0000000..f7817c6
--- /dev/null
@@ -0,0 +1,37 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=which
+PKG_VERSION:=2.21
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@GNU/which
+PKG_HASH:=f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad
+
+PKG_MAINTAINER:=Huangbin Zhan <zhanhb88@gmail.com>
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=COPYING
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/which
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=which utility - full version
+  URL:=https://carlowood.github.io/which/
+  ALTERNATIVES:=300:/usr/bin/which:/usr/libexec/which-gnu
+endef
+
+define Package/which/description
+ The which command shows the full pathname of a specified program, if the specified program is in your PATH.
+endef
+
+define Package/which/install
+       $(INSTALL_DIR) $(1)/usr/libexec
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/which $(1)/usr/libexec/which-gnu
+endef
+
+$(eval $(call BuildPackage,which))
diff --git a/utils/xfsprogs/Makefile b/utils/xfsprogs/Makefile
new file mode 100644 (file)
index 0000000..c14960e
--- /dev/null
@@ -0,0 +1,93 @@
+#
+# Copyright (C) 2006-2012 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:=xfsprogs
+PKG_VERSION:=5.5.0
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@KERNEL/linux/utils/fs/xfs/xfsprogs
+PKG_HASH:=cfbb0b136799c48cb79435facd0969c5a60a587a458e2d16f9752771027efbec
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+PKG_CPE_ID:=cpe:/a:sgi:xfsprogs
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/xfsprogs/default
+  SECTION:=utils
+  CATEGORY:=Utilities
+  SUBMENU:=Filesystem
+  DEPENDS:=+libuuid +libpthread
+  URL:=https://xfs.org/
+endef
+
+define Package/xfs-admin
+$(call Package/xfsprogs/default)
+  TITLE:=Utilities for changing parameters of an XFS filesystems
+endef
+
+define Package/xfs-mkfs
+$(call Package/xfsprogs/default)
+  TITLE:=Utility for creating XFS filesystems
+endef
+
+define Package/xfs-fsck
+$(call Package/xfsprogs/default)
+  TITLE:=Utilities for checking and repairing XFS filesystems
+endef
+
+define Package/xfs-growfs
+$(call Package/xfsprogs/default)
+  TITLE:=Utility for increasing the size of XFS filesystems
+endef
+
+CONFIGURE_ARGS += \
+       --disable-gettext \
+       --disable-blkid \
+       --disable-readline \
+       --disable-editline \
+       --disable-termcap \
+       --disable-lib64 \
+       --disable-librt \
+       --disable-ubisan \
+       --disable-addrsan \
+       --disable-threadsan \
+       --disable-scrub \
+       --disable-libicu
+
+TARGET_CFLAGS += -DHAVE_MAP_SYNC
+
+define Package/xfs-admin/install
+       $(INSTALL_DIR) $(1)/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xfs_db $(1)/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xfs_admin $(1)/sbin
+endef
+
+define Package/xfs-mkfs/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/mkfs.xfs $(1)/usr/sbin
+endef
+
+define Package/xfs-fsck/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/xfs_repair $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xfs_db $(1)/usr/sbin
+endef
+
+define Package/xfs-growfs/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xfs_growfs $(1)/usr/sbin
+endef
+
+$(eval $(call BuildPackage,xfs-admin))
+$(eval $(call BuildPackage,xfs-mkfs))
+$(eval $(call BuildPackage,xfs-fsck))
+$(eval $(call BuildPackage,xfs-growfs))
diff --git a/utils/xfsprogs/patches/110-subdirs.patch b/utils/xfsprogs/patches/110-subdirs.patch
new file mode 100644 (file)
index 0000000..ad57d60
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/Makefile
++++ b/Makefile
+@@ -62,8 +62,7 @@ HDR_SUBDIRS = include libxfs
+ LIBFROG_SUBDIR = libfrog
+ DLIB_SUBDIRS = libxlog libxcmd libhandle
+ LIB_SUBDIRS = libxfs $(DLIB_SUBDIRS)
+-TOOL_SUBDIRS = copy db estimate fsck fsr growfs io logprint mkfs quota \
+-              mdrestore repair rtcp m4 man doc debian spaceman
++TOOL_SUBDIRS = db fsck growfs io mkfs repair
+ ifeq ("$(ENABLE_SCRUB)","yes")
+ TOOL_SUBDIRS += scrub
diff --git a/utils/xfsprogs/patches/120-disable_assert.patch b/utils/xfsprogs/patches/120-disable_assert.patch
new file mode 100644 (file)
index 0000000..237c837
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/libxfs/libxfs_priv.h
++++ b/libxfs/libxfs_priv.h
+@@ -85,9 +85,6 @@ struct iomap;
+ /* for all the support code that uses progname in error messages */
+ extern char    *progname;
+-#undef ASSERT
+-#define ASSERT(ex) assert(ex)
+-
+ /*
+  * We have no need for the "linux" dev_t in userspace, so these
+  * are no-ops, and an xfs_dev_t is stored in VFS_I(ip)->i_rdev
diff --git a/utils/xfsprogs/patches/130-db-malloc-Use-posix_memalign-instead-of-deprecated-v.patch b/utils/xfsprogs/patches/130-db-malloc-Use-posix_memalign-instead-of-deprecated-v.patch
new file mode 100644 (file)
index 0000000..a9ab4d3
--- /dev/null
@@ -0,0 +1,26 @@
+From 930f9aa8f08759fa739dd6e615ba8b3a1890008d Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Mon, 6 May 2019 13:56:13 -0700
+Subject: [PATCH] db/malloc: Use posix_memalign instead of deprecated valloc
+
+valloc is not available with uClibc-ng as well as being deprecated, which
+causes compilation errors. aligned_alloc is not available before C11 so
+used posix_memalign.'
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ db/malloc.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/db/malloc.c
++++ b/db/malloc.c
+@@ -44,8 +44,7 @@ xmalloc(
+ {
+       void    *ptr;
+-      ptr = valloc(size);
+-      if (ptr)
++      if(!posix_memalign(&ptr, sysconf(_SC_PAGESIZE), size))
+               return ptr;
+       badmalloc();
+       /* NOTREACHED */
diff --git a/utils/xfsprogs/patches/140-mman.patch b/utils/xfsprogs/patches/140-mman.patch
new file mode 100644 (file)
index 0000000..fef5d50
--- /dev/null
@@ -0,0 +1,17 @@
+--- a/io/mmap.c
++++ b/io/mmap.c
+@@ -11,6 +11,14 @@
+ #include "init.h"
+ #include "io.h"
++#ifndef MAP_SYNC
++#define MAP_SYNC 0
++#endif
++
++#ifndef MAP_SHARED_VALIDATE
++#define MAP_SHARED_VALIDATE 0x03
++#endif
++
+ static cmdinfo_t mmap_cmd;
+ static cmdinfo_t mread_cmd;
+ static cmdinfo_t msync_cmd;
index f6904cf30ec0a544a12f01b3808623d0c3729cac..fee5e7b6c15d9d9b7553f91b55a4f4577e2954d0 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=yara
-PKG_VERSION:=4.0.0
+PKG_VERSION:=4.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/VirusTotal/yara/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=8ee411fe3a60d1b463f152e356e0ee46b23331c461fd60ef8f82fed580c73f46
+PKG_HASH:=c63e2c4d73fc37e860db5d7e13d945684a0a6d1d17be7161fe1dd8f99268b03c
 
 PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
 PKG_LICENSE:=BSD-3-Clause
index f968f6b4b0888099b109c79a40b45cf767808ab6..06030ec75b2dcdb9c0d2728e746f25cff4801443 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zstd
-PKG_VERSION:=1.4.4
-PKG_RELEASE:=3
+PKG_VERSION:=1.4.5
+PKG_RELEASE:=2
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://codeload.github.com/facebook/zstd/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=a364f5162c7d1a455cc915e8e3cf5f4bd8b75d09bc0f53965b0c9ca1383c52c8
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.zst
+PKG_SOURCE_URL:=https://github.com/facebook/zstd/releases/download/v$(PKG_VERSION)
+PKG_HASH:=2c2366874bc449ff539614266d8c0d6ecdb4baf30bb65609c239ab4ed23c03c7
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-or-later
@@ -64,6 +64,8 @@ ifeq ($(CONFIG_ZSTD_OPTIMIZE_O3),y)
 TARGET_CFLAGS:= $(filter-out -O%,$(TARGET_CFLAGS)) -O3
 endif
 
+TARGET_CFLAGS += $(if $(CONFIG_USE_UCLIBC),-D_BSD_SOURCE)
+
 MESON_ARGS += \
        -Dlegacy_level=1 \
        -Ddebug_level=0 \
diff --git a/utils/zstd/patches/010-mtime.patch b/utils/zstd/patches/010-mtime.patch
deleted file mode 100644 (file)
index 10ad861..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-From f62cf1fff5dabcfaaa8c85638723bc19842f52f4 Mon Sep 17 00:00:00 2001
-From: Sergey Dryabzhinsky <sergey.dryabzhinsky+github@gmail.com>
-Date: Tue, 19 Nov 2019 23:15:28 +0300
-Subject: [PATCH] Fix typo in util.c
-
-There must be mtim*e*
----
- programs/util.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/programs/util.c b/programs/util.c
-index 5d15450d2..d3ffc1133 100644
---- a/programs/util.c
-+++ b/programs/util.c
-@@ -73,7 +73,7 @@ int UTIL_setFileStat(const char *filename, stat_t *statbuf)
-     {
-         /* (atime, mtime) */
-         struct timespec timebuf[2] = { {0, UTIME_NOW} };
--        timebuf[1] = statbuf->st_mtim;
-+        timebuf[1] = statbuf->st_mtime;
-         res += utimensat(AT_FDCWD, filename, timebuf, 0);
-     }
- #endif
diff --git a/utils/zstd/patches/010-python.patch b/utils/zstd/patches/010-python.patch
new file mode 100644 (file)
index 0000000..c35c515
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/build/meson/meson.build
++++ b/build/meson/meson.build
+@@ -22,7 +22,6 @@ project('zstd',
+ cc = meson.get_compiler('c')
+ cxx = meson.get_compiler('cpp')
+ pkgconfig = import('pkgconfig')
+-python3 = import('python').find_installation()
+ windows_mod = import('windows')
+ host_machine_os = host_machine.system()
+@@ -40,8 +39,8 @@ compiler_msvc = 'msvc'
+ zstd_version = meson.project_version()
+ zstd_h_file = join_paths(meson.current_source_dir(), '../../lib/zstd.h')
+-GetZstdLibraryVersion_py = files('GetZstdLibraryVersion.py')
+-r = run_command(python3, GetZstdLibraryVersion_py, zstd_h_file)
++GetZstdLibraryVersion_py = find_program('GetZstdLibraryVersion.py', native : true)
++r = run_command(GetZstdLibraryVersion_py, zstd_h_file)
+ if r.returncode() == 0
+   zstd_version = r.stdout().strip()
+   message('Project version is now: @0@'.format(zstd_version))
diff --git a/utils/zstd/patches/020-util.patch b/utils/zstd/patches/020-util.patch
deleted file mode 100644 (file)
index 74f652e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-From 612a06eb3ef7f42739ace99fbca6ad63b788d46c Mon Sep 17 00:00:00 2001
-From: Sergey Dryabzhinsky <sergey.dryabzhinsky+github@gmail.com>
-Date: Tue, 19 Nov 2019 23:24:00 +0300
-Subject: [PATCH] Update util.c
-
----
- programs/util.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/programs/util.c b/programs/util.c
-index d3ffc1133..aa75ca6d4 100644
---- a/programs/util.c
-+++ b/programs/util.c
-@@ -73,7 +73,7 @@ int UTIL_setFileStat(const char *filename, stat_t *statbuf)
-     {
-         /* (atime, mtime) */
-         struct timespec timebuf[2] = { {0, UTIME_NOW} };
--        timebuf[1] = statbuf->st_mtime;
-+        timebuf[1].tv_sec = statbuf->st_mtime;
-         res += utimensat(AT_FDCWD, filename, timebuf, 0);
-     }
- #endif