Merge pull request #12516 from rozhuk-im/fbsd_build
authorRosen Penev <rosenp@gmail.com>
Wed, 24 Jun 2020 19:58:23 +0000 (12:58 -0700)
committerGitHub <noreply@github.com>
Wed, 24 Jun 2020 19:58:23 +0000 (12:58 -0700)
FreeBSD build fix

142 files changed:
.travis.yml
.travis_do.sh
admin/gkrellmd/Makefile
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]
lang/luajit/Makefile
lang/perl/Makefile
lang/php7/Makefile
lang/python/Flask/Makefile
lang/python/Werkzeug/Makefile
lang/python/pyodbc/Makefile
lang/python/python-cached-property/Makefile
lang/python/python-distro/Makefile
lang/python/python-docker/Makefile
lang/python/python-dockerpty/Makefile
lang/python/python-docopt/Makefile
lang/python/python-dotenv/Makefile
lang/python/python-jsonschema/Makefile
lang/python/python-more-itertools/Makefile
lang/python/python-paramiko/Makefile
lang/python/python-pynacl/Makefile
lang/python/python-texttable/Makefile
lang/python/python-websocket-client/Makefile
libs/avahi/Makefile
libs/libgphoto2/Makefile
libs/libimobiledevice/Makefile
libs/libimobiledevice/patches/010-format.patch [deleted file]
libs/libirecovery/Makefile
libs/libndpi/Makefile
libs/libnpupnp/Makefile
libs/liborcania/Makefile [new file with mode: 0644]
libs/libplist/Makefile
libs/libulfius/Makefile [new file with mode: 0644]
libs/libusbmuxd/Makefile
libs/libusbmuxd/patches/010-select.patch [deleted file]
libs/libxcrypt/Makefile [new file with mode: 0644]
libs/libzip/Makefile
libs/oniguruma/Makefile
libs/oniguruma/patches/0001-Add-SOVERSION-info-to-library-when-using-cmake.patch [deleted file]
libs/pcre2/Makefile
libs/redis/Makefile
mail/alpine/Makefile
multimedia/gerbera/Makefile
multimedia/gerbera/patches/010-iconv.patch
multimedia/gerbera/patches/020-pid.patch
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/ariang/Makefile
net/conserver/Makefile
net/keepalived/Makefile
net/keepalived/files/keepalived.init
net/knxd/Makefile
net/knxd/patches/0100-version.patch
net/knxd/patches/0110-usblowlever.patch [deleted file]
net/lighttpd/Makefile
net/miniupnpd/Makefile
net/miniupnpd/files/miniupnpd.hotplug
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/openssh/Makefile
net/overture/Makefile
net/ovn/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/patches/103-samba-4.12-unbundle-libunwind.patch [new file with mode: 0644]
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/tor/Makefile
net/transmission/Makefile
net/transmission/files/transmission.init
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]
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/docker-ce/Config.in
utils/docker-ce/Makefile
utils/docker-compose/Makefile
utils/haveged/Makefile
utils/idevicerestore/Makefile
utils/irqbalance/Makefile
utils/irqbalance/files/irqbalance.init
utils/irqbalance/patches/110-fix-runtime-socket-directory.patch [new file with mode: 0644]
utils/kmod/Makefile
utils/libnetwork/Makefile
utils/openzwave/Makefile
utils/pcsc-lite/Makefile
utils/powertop/Makefile
utils/shadow/Makefile
utils/usbmuxd/Makefile
utils/which/Makefile [new file with mode: 0644]

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 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 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 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) \
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 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 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
index 447b4054cd41a5a5f3fe8353d76adfef06f13f08..cbe83de5ce26a58348a0cb3b574d9756c165ba90 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-cached-property
 PKG_VERSION:=1.5.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=cached-property
 PKG_HASH:=9217a59f14a5682da7c4b8829deadbfc194ac22e9908ccf7c8820234e80a1504
@@ -24,7 +24,6 @@ define Package/python3-cached-property
   TITLE:=A decorator for caching properties in classes
   URL:=https://github.com/pydanny/cached-property
   DEPENDS:=+python3-light
-  VARIANT:=python3
 endef
 
 define Package/python3-cached-property/description
index 26c9befe88eb7fd8470236be6284fa99de96d71c..bef80d63ecbdcd11750c9ce5e15885bce69d341d 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-distro
 PKG_VERSION:=1.5.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=distro
 PKG_HASH:=0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92
@@ -22,7 +22,6 @@ define Package/python3-distro
   TITLE:=Distro - an OS platform information API
   URL:=https://github.com/nir0s/distro
   DEPENDS:=+python3-light +python3-logging
-  VARIANT:=python3
 endef
 
 define Package/python3-distro/description
index 6fa3c6acab5c46ab84c15c9ff6e23c8a2d1ad7be..43016e1cc0566d8110eaf3091d0c010bfe14f387 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-docker
 PKG_VERSION:=4.2.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=docker
 PKG_HASH:=380a20d38fbfaa872e96ee4d0d23ad9beb0f9ed57ff1c30653cbeb0c9c0964f2
@@ -27,7 +27,6 @@ define Package/python3-docker
          +python3-light +python3-distutils +python3-logging \
          +python3-openssl +python3-paramiko +python3-six +python3-requests \
          +python3-websocket-client
-  VARIANT:=python3
 endef
 
 define Package/python3-docker/description
index f27143425780939654de2418368d28d5935364f4..662e4c552981e448734df953c600f7503ffbdfaa 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-dockerpty
 PKG_VERSION:=0.4.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=dockerpty
 PKG_HASH:=69a9d69d573a0daa31bcd1c0774eeed5c15c295fe719c61aca550ed1393156ce
@@ -24,7 +24,6 @@ define Package/python3-dockerpty
   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
-  VARIANT:=python3
 endef
 
 define Package/python3-dockerpty/description
index f4c96c537989a5d16430d3d7efebef1989e2b915..cba239458439af38d5dd1b25981b748df32548f3 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-docopt
 PKG_VERSION:=0.6.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=docopt
 PKG_HASH:=49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491
@@ -24,7 +24,6 @@ define Package/python3-docopt
   TITLE:=Pythonic argument parser, that will make you smile
   URL:=http://docopt.org/
   DEPENDS:=+python3-light
-  VARIANT:=python3
 endef
 
 define Package/python3-docopt/description
index 0075c1281bf227a50a2c0e3d1c7666c2ebf7b7df..f3e6e143a087ce6b370d6f705948a6f2451a4d0e 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-dotenv
 PKG_VERSION:=0.13.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=python-dotenv
 PKG_HASH:=3b9909bc96b0edc6b01586e1eed05e71174ef4e04c71da5786370cebea53ad74
@@ -22,7 +22,6 @@ define Package/python3-dotenv
   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
-  VARIANT:=python3
 endef
 
 define Package/python3-dotenv/description
index a47b3e909220ae7815f6f6ba124f5a4eff45f8ad..0e3c7b6b680379848ae600d7eec692282e355516 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-jsonschema
 PKG_VERSION:=3.2.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=jsonschema
 PKG_HASH:=c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a
@@ -25,7 +25,6 @@ define Package/python3-jsonschema
   URL:=https://github.com/Julian/jsonschema
   DEPENDS:=+python3-light +python3-attrs +python3-urllib \
          +python3-six +python3-pyrsistent +python3-setuptools
-  VARIANT:=python3
 endef
 
 define Package/python3-jsonschema/description
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 6989ef886c73fcbe42c08c83c1c32b952eb7e9ce..82005c1c4bff7844d748a9c8a24390a676b8bb0a 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-paramiko
 PKG_VERSION:=2.7.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=paramiko
 PKG_HASH:=920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f
@@ -25,7 +25,6 @@ define Package/python3-paramiko
   URL:=https://github.com/paramiko/paramiko/
   DEPENDS:=+python3-light +python3-logging +python3-bcrypt \
          +python3-cryptography +python3-openssl +python3-pynacl
-  VARIANT:=python3
 endef
 
 define Package/python3-paramiko/description
index 32292782993845f4e1519e76925a8626cba65f7f..fe2c4555dbceaa2f87f4b815a0e885c28d818e9d 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pynacl
 PKG_VERSION:=1.4.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=PyNaCl
 PKG_HASH:=54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505
@@ -28,7 +28,6 @@ define Package/python3-pynacl
   TITLE:=Python binding to the libsodium library
   URL:=https://github.com/pyca/pynacl/
   DEPENDS:=+libsodium +python3-light +python3-cffi +python3-six
-  VARIANT:=python3
 endef
 
 define Package/python3-pynacl/description
index 96006188889a923f7a562415f5c518e5bcf56c88..e805b318e79ec7be628f9e049c9216f2a4ec9289 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-texttable
 PKG_VERSION:=1.6.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=texttable
 PKG_HASH:=eff3703781fbc7750125f50e10f001195174f13825a92a45e9403037d539b4f4
@@ -22,7 +22,6 @@ define Package/python3-texttable
   TITLE:=Module for creating simple ASCII tables
   URL:=https://github.com/foutaise/texttable/
   DEPENDS:=+python3-light +python3-codecs
-  VARIANT:=python3
 endef
 
 define Package/python3-texttable/description
index 26381f865f810ff124e4aeb9f5ee67e0c431851e..ca2db934cccf690825b08fee3d9f19e467be9536 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-websocket-client
 PKG_VERSION:=0.57.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=websocket_client
 PKG_HASH:=d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010
@@ -22,7 +22,6 @@ define Package/python3-websocket-client
   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
-  VARIANT:=python3
 endef
 
 define Package/python3-websocket-client/description
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 \
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 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 1d7818dff7faab3490a7d4b8bfb62ac3a349d866..54aca93ff8e88a1c489ebcbbe2d448c3f5929228 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnpupnp
-PKG_VERSION:=4.0.5
+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:=af9b35e26c9733343c0075cd33d05e86771fe999cc01618295d486cc522fdbff
+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..5707fdb7190c42213b2bd86034bee1722489a6a7 100644 (file)
@@ -8,17 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libplist
-PKG_SOURCE_VERSION:=2.1.0
-PKG_RELEASE:=2
+PKG_VERSION:=2.2.0
+PKG_RELEASE:=1
 
-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,19 @@ 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/
 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
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 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>
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 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>
 
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 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 6a87724dca73d5a3ddd4541b7a36cf072ab9d031..4bc437f2596a6327baf22ada0669dcb1c6f7c664 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=redis
-PKG_VERSION:=6.0.4
+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:=3337005a1e0c3aa293c87c313467ea8ac11984921fab08807998ba765c9943de
+PKG_HASH:=42cf86a114d2a451b898fcda96acd4d01062a7dbaaad2801d9164a36f898f596
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=BSD-3-Clause
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 f5039c125343540426b128d2252f279363bd1e97..851464c9cf705292f35673a800d3328180297676 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gerbera
 PKG_VERSION:=1.5.0
-PKG_RELEASE:=7
+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);
  }
  
index 23c5885112fc76ca71dbcff2bdd1b427553e177f..7ce75c70b1ca3d3bb98870dbed00da10f81ea35f 100644 (file)
@@ -1,3 +1,20 @@
+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 @@
@@ -9,6 +26,8 @@
  // 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 @@
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 9cfff16fa7be33e858f8ec7f831999d23f8d7c8b..8736d1469f7c67a86f387a2aa113e22c18ef7b07 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=youtube-dl
-PKG_VERSION:=2020.6.6
+PKG_VERSION:=2020.6.16.1
 PKG_RELEASE:=1
 
 PYPI_NAME:=youtube_dl
-PKG_HASH:=74e6cc7395060fc39f0b8e21c1e4707486da904c96145bd875187bda2da83b04
+PKG_HASH:=9fc0389a1bbbeb609a5bb4ad5630dea107a9d1a24c73721c611a78c234309a75
 
 PKG_MAINTAINER:=Adrian Panella <ianchi74@outlook.com>, Josef Schlehofer <pepe.schlehofer@gmail.com>
 PKG_LICENSE:=Unlicense
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 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 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 a355527555b1c513857f400a03420f6fed553f48..774062c68e720dea6173d777f349435e49d2c8d7 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knxd
-PKG_VERSION:=0.14.38
-PKG_RELEASE:=2
+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:=bb0343154ee1d0d91b1b342f04ee163739e906ac530b7490b5aec516bb485d59
+PKG_HASH:=9ed920fa3c4f12ededd4d413f27f149c91ce0846c561a7d19478502c06ac95f1
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
 PKG_LICENSE:=GPL-2.0-or-later
index da1cf34023ecb1f489ab7decd95e40712eda3e41..9ff5a311350cf713a0e056fb030eb3b85d722714 100644 (file)
@@ -5,4 +5,4 @@
 
 -test -d .git || exit
 -git describe --tags
-+echo -n "0.14.38"
++echo -n "0.14.39"
diff --git a/net/knxd/patches/0110-usblowlever.patch b/net/knxd/patches/0110-usblowlever.patch
deleted file mode 100644 (file)
index c9459b0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/libserver/usblowlevel.cpp     2020-06-03 16:41:02.128182612 +0200
-+++ b/src/libserver/usblowlevel.cpp     2020-06-03 16:41:31.660704440 +0200
-@@ -155,6 +155,7 @@
- {
-   t->setAuxName("usbL");
-   send_timeout = cfg->value("send-timeout", 1000);
-+  loop = nullptr;
-   read_trigger.set<USBLowLevelDriver,&USBLowLevelDriver::read_trigger_cb>(this);
-   write_trigger.set<USBLowLevelDriver,&USBLowLevelDriver::write_trigger_cb>(this);
-   read_trigger.start();
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..86d4944020434ba651f0fb4f424b7cea2fdfe20a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=miniupnpd
 PKG_VERSION:=2.1.20191006
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE_URL:=https://miniupnp.tuxfamily.org/files
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
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 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 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 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 f65baf507e48e39920ce162b7c4c06cff5e4ce04..b7e8e0bdc384a8aec9fba6f680d12720bed2da1e 100644 (file)
@@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba
 PKG_VERSION:=4.12.3
-PKG_RELEASE:=1
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
@@ -215,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
@@ -243,16 +242,8 @@ else
        CONFIGURE_ARGS += --disable-avahi
 endif
 
-CONFIGURE_VARS += \
-       PERL="$(STAGING_DIR_HOSTPKG)/usr/bin/perl$(PERL_VERSION3)"
-
-# 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
@@ -311,13 +302,19 @@ 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
 
-# need to find host 'yapp'
+# make sure we use the hostpkg build toolset and we need to find host 'yapp'
 HOST_CONFIGURE_VARS+= \
-       PATH="$(STAGING_DIR_HOSTPKG)/usr/bin:$(PATH)"
+       PATH="$(STAGING_DIR_HOSTPKG)/bin:$(STAGING_DIR_HOSTPKG)/usr/bin:$(PATH)"
 CONFIGURE_VARS += \
-       PATH="$(PATH):$(STAGING_DIR_HOSTPKG)/usr/bin"
-# we dont need GnuTLS/Yapp for the host helpers
+       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
@@ -354,13 +351,7 @@ 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
-       # HACK: need to update WAF/qemu values (set to NO for now)
-       echo 'Checking value of GNUTLS_CIPHER_AES_128_CFB8: NO' >> $(PKG_BUILD_DIR)/cross-answers.txt
-       echo 'Checking value of GNUTLS_MAC_AES_CMAC_128: NO' >> $(PKG_BUILD_DIR)/cross-answers.txt
-       echo 'Checking whether fcntl supports flags to send direct I/O availability signals: NO' >> $(PKG_BUILD_DIR)/cross-answers.txt
-       echo 'Checking whether fcntl supports setting/geting hints: NO' >> $(PKG_BUILD_DIR)/cross-answers.txt
        $(call Build/Configure/Default)
 endef
 
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/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 0bac41a3ee0969cc51ba9e12b59aa6abc3a80248..ee6e327cfc4c9b1c56114ba766a61c99ddd0d136 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tor
 PKG_VERSION:=0.4.3.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dist.torproject.org/ \
@@ -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
 }
 
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 03d1088a69f10c1a0186e09749d42d52f2c5da5f..e5c3eabe1fe9d79889d784e4f55d1cdd2e3125ae 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cgroupfs-mount
 PKG_VERSION:=1.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/tianon/cgroupfs-mount/tar.gz/${PKG_VERSION}?
@@ -12,11 +12,19 @@ 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 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)/
index 37d5c3d6147732851c4ae0a87f19edd3ec479a5d..46e08d333f882bac0df941a91ddfc42f812b2680 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=docker-compose
 PKG_VERSION:=1.26.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=docker-compose
 PKG_HASH:=7e836102d139aca667d6af53f0f4d942c9459ec24d6dd4f0203d74359b0fd311
@@ -41,7 +41,6 @@ define Package/docker-compose
       +python3-texttable \
       +python3-websocket-client \
       +python3-yaml
-  VARIANT:=python3
 endef
 
 define Package/docker-compose/description
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
 
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 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 ecd7e3d6dfebc6e118cba292e4c654588a6657c1..fd8e5807c3144afc00e299eea5cff81e9d86d731 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kmod
 PKG_VERSION:=20
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/kernel/kmod/
@@ -32,6 +32,12 @@ define Package/kmod/Default
   TITLE:=Linux kernel module handling
   URL:=https://www.kernel.org/pub/linux/utils/kernel/kmod/
   DEPENDS:=+zlib
+endef
+
+
+define Package/kmod
+$(call Package/kmod/Default)
+  TITLE+= (tools)
   ALTERNATIVES:=\
     200:/sbin/depmod:/sbin/kmod \
     200:/sbin/insmod:/sbin/kmod \
@@ -41,12 +47,6 @@ define Package/kmod/Default
     200:/sbin/rmmod:/sbin/kmod
 endef
 
-
-define Package/kmod
-$(call Package/kmod/Default)
-  TITLE+= (tools)
-endef
-
 define Package/kmod/description
 Linux kernel module handling
  kmod is a set of tools to handle common tasks with Linux kernel modules like
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 950735746644adefd458dd6591210a23eaad5620..64aa1b03b780d527aed8ae8a962ecc680d54a64b 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openzwave
-PKG_VERSION:=1.6.1134
+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:=719e904f5ac022772db81517e918d7994562d68a2820dd161b5c419c39f167d8
+PKG_HASH:=dc747c24cae11e4aa121252cc38ea92d1fbc587dc514737dd0e2b24191521c48
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
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 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 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))