Merge pull request #15866 from ja-pa/redis-6.2.4
authorJosef Schlehofer <pepe.schlehofer@gmail.com>
Mon, 14 Jun 2021 18:39:37 +0000 (20:39 +0200)
committerGitHub <noreply@github.com>
Mon, 14 Jun 2021 18:39:37 +0000 (20:39 +0200)
redis: update to version 6.2.4

295 files changed:
admin/schroot/Makefile
devel/ninja/ninja-cmake.mk [deleted file]
lang/golang/golang/Makefile
lang/lua-cjson/Makefile
lang/lua-ev/Makefile
lang/lua-openssl/Makefile
lang/luajit/Makefile
lang/lualanes/Makefile
lang/luv/Makefile
lang/lzmq/Makefile
lang/node/Makefile
lang/perl-ack/Makefile [new file with mode: 0644]
lang/perl-ack/test.sh [new file with mode: 0644]
lang/perl-file-next/Makefile [new file with mode: 0644]
lang/php7/Makefile
lang/php8/Makefile
lang/python/python-attrs/Makefile
lang/python/python-idna/Makefile
lang/python/python-incremental/Makefile
lang/python/python-incremental/patches/001-omit-tests.patch
lang/python/python-twisted/Makefile
lang/python/python-twisted/patches/001-omit-tkconch.patch
lang/python/python-twisted/patches/002-omit-tests.patch
lang/python/python-zope-interface/Makefile
lang/python/python3/Makefile
lang/python/python3/files/python3-package-ncurses.mk
lang/python/python3/files/python3-package-readline.mk [new file with mode: 0644]
lang/tcl/Makefile
lang/vala/Makefile
libs/afalg_engine/Makefile
libs/boost/patches/020-regex.patch [new file with mode: 0644]
libs/c-ares/Makefile
libs/cereal/Makefile
libs/check/Makefile
libs/cjson/Makefile
libs/czmq/Makefile
libs/elektra/Makefile
libs/expat/Makefile
libs/getdns/Makefile
libs/getdns/patches/010-openssl-deprecated.patch [deleted file]
libs/getdns/patches/020-openssl-no-dynamic.patch [deleted file]
libs/getdns/patches/030-typo-cmake-fix-stubby.patch [deleted file]
libs/getdns/patches/getdns-1.6.0-fix-crosscompile.patch [deleted file]
libs/gnutls/Makefile
libs/gnutls/patches/010-m4.patch
libs/gost_engine/Makefile
libs/h2o/Makefile
libs/ipfs-http-client/Makefile
libs/jose/Makefile
libs/jose/patches/010-fix_minor_leak_upstream_198f720.patch [deleted file]
libs/jose/patches/020-openssl-deprecated.patch [deleted file]
libs/leptonica/Makefile
libs/libarchive/Makefile
libs/libcbor/Makefile
libs/libebml/Makefile
libs/libevhtp/Makefile
libs/libfido2/Makefile
libs/libfmt/Makefile
libs/libfstrm/Makefile
libs/libftdi/Makefile
libs/libftdi1/Makefile
libs/libgd/Makefile
libs/libical/Makefile
libs/libiio/Makefile
libs/libjpeg-turbo/Makefile
libs/liblo/Makefile
libs/libmariadb/Makefile
libs/libmatroska/Makefile
libs/libmaxminddb/Makefile
libs/libmbim/Makefile
libs/libmicrohttpd/Makefile
libs/libmraa/Makefile
libs/libnatpmp/Makefile
libs/libnet-1.2.x/Makefile
libs/libnetconf2/Makefile
libs/libnpupnp/Makefile
libs/liborcania/Makefile
libs/libpng/Makefile
libs/libpqxx/Makefile
libs/libqmi/Makefile
libs/libradiotap/Makefile
libs/libre2/Makefile
libs/libroxml/Makefile
libs/libsearpc/Makefile
libs/libsndfile/Makefile
libs/libsoxr/Makefile
libs/libssh/Makefile
libs/libssh2/Makefile
libs/libtins/Makefile
libs/libtorrent-rasterbar/Makefile
libs/libuecc/Makefile
libs/libuhttpd/Makefile
libs/libulfius/Makefile
libs/libupm/Makefile
libs/libupnp/Makefile
libs/libuv/Makefile
libs/libuwsc/Makefile
libs/libvorbis/Makefile
libs/libwebp/Makefile
libs/libwebsockets/Makefile
libs/libwslay/Makefile
libs/libxerces-c/Makefile
libs/libyaml-cpp/Makefile
libs/libyang/Makefile
libs/libzip/Makefile
libs/log4cplus/Makefile
libs/lzo/Makefile
libs/minizip/Makefile
libs/nghttp2/Makefile
libs/pcre2/Makefile
libs/protobuf-c/Makefile
libs/protobuf-c/patches/010-pkgconfig.patch [deleted file]
libs/protobuf/Makefile
libs/pugixml/Makefile
libs/qrencode/Makefile
libs/spdlog/Makefile
libs/spice/Makefile
libs/spice/patches/010-doxy.patch [new file with mode: 0644]
libs/spice/patches/010-librt-libm.patch [deleted file]
libs/spice/patches/020-no-code-generation.patch [deleted file]
libs/spice/patches/030-include-generated-code.patch
libs/spice/patches/040-only-server.patch
libs/spice/patches/050-no-mkenums.patch
libs/taglib/Makefile
libs/tiff/Makefile
libs/uci2/Makefile
libs/websocketpp/Makefile
libs/yajl/Makefile
libs/zmq/Makefile
mail/msmtp/Makefile
multimedia/gerbera/Makefile
multimedia/gst1-plugins-good/Makefile
multimedia/mjpg-streamer/Makefile
multimedia/v4l2rtspserver/Makefile
net/adblock/Makefile
net/adblock/files/README.md
net/adblock/files/adblock.sh
net/adblock/files/adblock.sources
net/adguardhome/Makefile
net/apfree-wifidog/Makefile
net/banip/Makefile
net/banip/files/README.md
net/banip/files/banip.sh
net/bind/Makefile
net/bwping/Makefile
net/cgi-io/Makefile
net/clamav/Makefile
net/cshark/Makefile
net/curl/Makefile
net/dawn/Makefile
net/dnsdist/Makefile
net/dnsdist/patches/010-time_t-check.patch [new file with mode: 0644]
net/etherwake-nfqueue/Makefile
net/https-dns-proxy/Makefile
net/https-dns-proxy/files/https-dns-proxy.init
net/https-dns-proxy/patches/010-ninja.patch [deleted file]
net/i2pd/Makefile
net/i2pd/patches/010-config.patch
net/iperf3/Makefile
net/irtt/Makefile [new file with mode: 0644]
net/irtt/test.sh [new file with mode: 0644]
net/kea/Makefile
net/kea/patches/020-shared_ptr.patch [new file with mode: 0644]
net/lora-gateway-hal/Makefile
net/mbusd/Makefile
net/memcached/Makefile
net/miniupnpc/Makefile
net/miniupnpd/Makefile
net/miniupnpd/files/upnpd.config
net/miniupnpd/patches/301-ext_ip_reserved_ignore.patch
net/modemmanager/Makefile
net/mosquitto/Makefile
net/netifyd/Makefile
net/netifyd/files/netifyd.init
net/netopeer2/Makefile
net/nginx-util/Makefile
net/nginx-util/src/nginx-ssl-util.hpp
net/nginx/Makefile
net/nginx/patches-rtmp-nginx/100-bigedian.patch [new file with mode: 0644]
net/nlbwmon/Makefile
net/ocserv/Makefile
net/openvpn/Config-wolfssl.in [new file with mode: 0644]
net/openvpn/Makefile
net/openvpn/patches/002-add-wolfssl-support.patch [new file with mode: 0644]
net/openvpn/patches/210-build_always_use_internal_lz4.patch
net/openvpn/test.sh
net/pdns-recursor/Makefile
net/pdns/Makefile
net/phantap/Makefile
net/ratechecker/Makefile
net/seafile-ccnet/Makefile
net/seafile-seahub/Makefile
net/seafile-server/Makefile
net/snort3/Makefile
net/softethervpn5/Makefile
net/spawn-fcgi/Makefile
net/sstp-client/Makefile
net/sstp-client/patches/200-openssl-deprecated.patch
net/strongswan/Makefile
net/strongswan/files/swanctl.init
net/stubby/Makefile
net/stubby/patches/stubby-0.3.0-fix-config-install.patch [deleted file]
net/sysrepo/Makefile
net/tinc/Makefile
net/tinc/files/tinc.init
net/umurmur/Makefile
net/vallumd/Makefile
net/vsftpd/Makefile
net/vsftpd/patches/003-chroot.patch
net/vsftpd/patches/010-openssl-deprecated.patch
net/xray-core/Makefile
net/xray-core/files/xray.conf
net/xray-core/files/xray.init
net/znc/Makefile
sound/mpd/Makefile
sound/mpd/patches/020-string-view.patch
sound/mpg123/Makefile
sound/portaudio/Makefile
sound/shairport-sync/Makefile
sound/shairport-sync/patches/010-no-cxx.patch
sound/upmpdcli/Makefile
utils/apparmor/Makefile [new file with mode: 0644]
utils/apparmor/files/apparmor.init [new file with mode: 0755]
utils/apparmor/files/apparmor.sh [new file with mode: 0755]
utils/apparmor/patches/010-autoconf-libapparmor.patch [new file with mode: 0644]
utils/apparmor/patches/020-fix-ss-path.patch [new file with mode: 0644]
utils/apparmor/patches/030-remove-pynotify2-dep.patch [new file with mode: 0644]
utils/apparmor/patches/040-remove-bash-dep.patch [new file with mode: 0644]
utils/apparmor/patches/050-disable-man-pages.patch [new file with mode: 0644]
utils/apparmor/patches/060-openwrt-dnsmasq-profile.patch [new file with mode: 0644]
utils/auc/Makefile
utils/auc/src/auc.c
utils/bluld/Makefile [new file with mode: 0644]
utils/bluld/files/bluld.conf [new file with mode: 0644]
utils/bluld/files/bluld.init [new file with mode: 0755]
utils/canutils/Makefile
utils/cni/Makefile
utils/conmon/Makefile
utils/conmon/patches/100-fix-null-socket-connection-list.patch [deleted file]
utils/containerd/Makefile
utils/crun/Makefile
utils/dbus/Makefile
utils/docker/Makefile
utils/dockerd/Makefile
utils/domoticz/Makefile
utils/ecdsautils/Makefile
utils/fish/Makefile
utils/gammu/Makefile
utils/gpsd/Makefile
utils/gummiboot/Makefile
utils/hwinfo/Makefile
utils/hwinfo/patches/0-hardcoding-version [deleted file]
utils/hwinfo/patches/010-hardcoding-version.patch [new file with mode: 0644]
utils/hwinfo/patches/020-remove_libx8emu_dependency.patch [new file with mode: 0644]
utils/hwinfo/patches/030-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers.patch [new file with mode: 0644]
utils/hwinfo/patches/040-assorted-Makefile-butchery.patch [new file with mode: 0644]
utils/hwinfo/patches/050-arc.patch [new file with mode: 0644]
utils/hwinfo/patches/1-remove_libx8emu_dependency [deleted file]
utils/hwinfo/patches/2-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers [deleted file]
utils/hwinfo/patches/3-assorted-Makefile-butchery [deleted file]
utils/libnetwork/Makefile
utils/mariadb/Makefile
utils/moreutils/Makefile
utils/netwhere/Makefile
utils/openobex/Makefile
utils/parted/Config.in [new file with mode: 0644]
utils/parted/Makefile [new file with mode: 0644]
utils/parted/test.sh [new file with mode: 0644]
utils/podman/Makefile
utils/prometheus-node-exporter-lua/files/usr/bin/prometheus-node-exporter-lua
utils/rpcd-mod-lxc/Makefile
utils/rtl-sdr/Makefile
utils/rtl_433/Makefile
utils/rtty/Makefile
utils/runc/Makefile
utils/squashfs-tools/Config.in
utils/squashfs-tools/Makefile
utils/sumo/Makefile
utils/syncthing/Makefile
utils/tang/Makefile
utils/tang/patches/010-http.patch [new file with mode: 0644]
utils/taskwarrior/Makefile
utils/tcsh/Makefile
utils/tcsh/patches/010-wint.patch
utils/telldus-core/Makefile
utils/tesseract/Makefile
utils/tini/Makefile
utils/ttyd/Makefile
utils/uledd/Makefile
utils/unrar/Makefile
utils/uvcdynctrl/Makefile
utils/uvol/files/autopart.defaults
utils/uvol/files/lvm.sh
utils/uvol/files/ubi.sh
utils/uvol/files/uvol

index 6877fe678db28c9ff0f79fb01e621a829f46d545..65cccd676f8b4117a62115f032f49dbe5a3c49cc 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=schroot
 PKG_VERSION:=1.6.10
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.xz
 PKG_SOURCE_URL:=http://deb.debian.org/debian/pool/main/s/schroot
@@ -37,7 +37,7 @@ define Package/schroot/description
   Securely enter a chroot and run a command or login shell.
 endef
 
-define Package/sudo/conffiles
+define Package/schroot/conffiles
 /etc/schroot/
 endef
 
diff --git a/devel/ninja/ninja-cmake.mk b/devel/ninja/ninja-cmake.mk
deleted file mode 100644 (file)
index 89ae72e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-include $(INCLUDE_DIR)/cmake.mk
-include ../../devel/ninja/ninja.mk
-
-CMAKE_HOST_OPTIONS += -DCMAKE_GENERATOR="Ninja"
-CMAKE_OPTIONS += -DCMAKE_GENERATOR="Ninja"
-
-define Host/Compile/Default
-       $(call Ninja,-C $(HOST_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR) $(1),)
-endef
-
-define Host/Install/Default
-       $(call Ninja,-C $(HOST_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR) install,)
-endef
-
-define Host/Uninstall/Default
-       -$(call Ninja,-C $(HOST_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR) uninstall,)
-endef
-
-define Build/Compile/Default
-       $(call Ninja,-C $(PKG_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR) $(1),)
-endef
-
-define Build/Install/Default
-       $(call Ninja,-C $(PKG_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR) install,DESTDIR="$(PKG_INSTALL_DIR)")
-endef
index bd5b0b42488c7257953fb29a54bf2a4436c17735..655a06d3930cf97f1a33476f930b4b878a739a78 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 GO_VERSION_MAJOR_MINOR:=1.16
-GO_VERSION_PATCH:=
+GO_VERSION_PATCH:=5
 
 PKG_NAME:=golang
 PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
@@ -20,7 +20,7 @@ GO_SOURCE_URLS:=https://dl.google.com/go/ \
 
 PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
 PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
-PKG_HASH:=7688063d55656105898f323d90a79a39c378d86fe89ae192eb3b7fc46347c95a
+PKG_HASH:=7bfa7e5908c7cc9e75da5ddf3066d7cbcf3fd9fa51945851325eebc17f50ba80
 
 PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
index 8e8499acbf58413020c8a7ee26f827eadf41f41a..de727346a8686d75456f07cee8ee6a9440da7f4b 100644 (file)
@@ -22,7 +22,7 @@ HOST_BUILD_DEPENDS:=lua/host
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/lua-cjson
   SUBMENU:=Lua
index 5c1f9dfc9feb1577bab4784fad4fb7e7024b6b4f..b1000d980b584865b87c7ffdbbada7015e248c8f 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/lua-ev
   SUBMENU:=Lua
index 5bbcee03775b00e0f786678d23f2a695d2022490..c071ca123b9acb7b0e3309dd8e79b4589512d813 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/lua-openssl
   SUBMENU:=Lua
index 94429a7b0a74e6296dd592fa551375f09e125fce..abafb1764d596b3344166fb1fdd28dbac16f5369 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=luajit
 PKG_VERSION:=2.1.0-beta3
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=LuaJIT-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://luajit.org/download
@@ -24,7 +24,7 @@ define Package/luajit
  CATEGORY:=Languages
  TITLE:=LuaJIT
  URL:=https://www.luajit.org
- DEPENDS:=@(i386||x86_64||arm||armeb||aarch64||powerpc||mips||mipsel||mips64)
+ DEPENDS:=@(i386||x86_64||arm||armeb||aarch64||(powerpc&&HAS_FPU)||mips||mipsel||mips64)
 endef
 
 define Package/luajit/description
index 0a6b87b653a03ddd238b9b4eafb430ba768fe3bb..16395b43be27d71825267ea022fde0ba6f1dbafb 100644 (file)
@@ -23,7 +23,7 @@ PKG_LICENSE_FILES:=COPYRIGHT
 PKG_BUILD_DEPENDS:=lua/host
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/lualanes
        SUBMENU:=Lua
index 35cf2e850d9b48b3da38d030d58e0d99ffbdf168..3ee45d2d8a5f9693abe99152be498207bdf60eac 100644 (file)
@@ -13,7 +13,7 @@ PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/luv
   SUBMENU:=Lua
index ed7e5199f884464fa55038796ec5831484322104..210b88ed3c715f2ac954a18e284c26833c34827e 100644 (file)
@@ -18,7 +18,7 @@ PKG_SOURCE_URL:=https://codeload.github.com/zeromq/lzmq/tar.gz/v$(PKG_VERSION)?
 PKG_HASH:=cf70200045b8bcb0e929c338ad421b6a291cf1038053532888dc201af3224d8b
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/lzmq
   SUBMENU:=Lua
index 9b1a67d95a126ae26af9fc3be89f0ae7c07fd075..87126f59bdef75f880fdff36d7c0ed4df6443e4d 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=node
 PKG_VERSION:=v14.17.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://nodejs.org/dist/$(PKG_VERSION)
@@ -141,8 +141,13 @@ define Package/node/install
 endef
 
 define Package/node-npm/install
-       $(INSTALL_DIR) $(1)/usr/lib/node_modules
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/* $(1)/usr/lib/node_modules/
+       $(INSTALL_DIR) $(1)/usr/lib/node_modules/npm
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/{package.json,LICENSE} \
+               $(1)/usr/lib/node_modules/npm/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/{AUTHORS,*.md} \
+               $(1)/usr/lib/node_modules/npm/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/{node_modules,bin,lib} \
+               $(1)/usr/lib/node_modules/npm/
        $(INSTALL_DIR) $(1)/usr/bin
        $(LN) ../lib/node_modules/npm/bin/npm-cli.js $(1)/usr/bin/npm
        $(LN) ../lib/node_modules/npm/bin/npx-cli.js $(1)/usr/bin/npx
diff --git a/lang/perl-ack/Makefile b/lang/perl-ack/Makefile
new file mode 100644 (file)
index 0000000..e33a092
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: GPL-3.0-only
+#
+# Copyright (C) 2021 ImmortalWrt.org
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=perl-ack
+PKG_VERSION:=3.5.0
+PKG_RELEASE:=$(AUTORELEASE)
+
+PKG_SOURCE_URL:=http://www.cpan.org/authors/id/P/PE/PETDANCE/
+PKG_SOURCE:=ack-v$(PKG_VERSION).tar.gz
+PKG_HASH:=66053e884e803387a02ddee0d68abf2a10239fab654364dab33287309a725521
+
+PKG_LICENSE:=Artistic-2.0
+PKG_LICENSE_FILE:=LICENSE.md
+PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/perl/ack-v$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../perl/perlmod.mk
+
+define Package/ack
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=A grep-like source code search tool
+  URL:=https://beyondgrep.com
+  DEPENDS:=+perl +perl-ack
+  PROVIDES:=ack-grep
+endef
+
+define Package/perl-ack
+  SUBMENU:=Perl
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=grep-like text finder
+  URL:=http://search.cpan.org/dist/ack/
+  DEPENDS:=perl +perl-file-next +perlbase-filetest +perlbase-if \
+    +perlbase-list +perlbase-pod +perlbase-test +perlbase-text \
+    +perlbase-term
+endef
+
+define Build/Configure
+       $(call perlmod/Configure,,)
+endef
+
+define Build/Compile
+       $(call perlmod/Compile,,)
+endef
+
+define Package/ack/install
+       $(INSTALL_DIR) $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ack $(1)/usr/bin/
+       $(SED) "1"'!'"b;s,^#"'!'".*perl.*,#"'!'"/usr/bin/perl," -i --follow-symlinks $(1)/usr/bin/ack
+endef
+
+define Package/perl-ack/install
+       $(call perlmod/Install,$(1),App auto/ack)
+endef
+
+$(eval $(call BuildPackage,ack))
+$(eval $(call BuildPackage,perl-ack))
diff --git a/lang/perl-ack/test.sh b/lang/perl-ack/test.sh
new file mode 100644 (file)
index 0000000..823c80e
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+case "$1" in
+       "ack")
+               ack --version | grep "$PKG_VERSION"
+               ;;
+esac
diff --git a/lang/perl-file-next/Makefile b/lang/perl-file-next/Makefile
new file mode 100644 (file)
index 0000000..62fe434
--- /dev/null
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: GPL-3.0-only
+#
+# Copyright (C) 2021 ImmortalWrt.org
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=perl-file-next
+PKG_VERSION:=1.18
+PKG_RELEASE:=$(AUTORELEASE)
+
+PKG_SOURCE_URL:=http://www.cpan.org/authors/id/P/PE/PETDANCE/
+PKG_SOURCE:=File-Next-$(PKG_VERSION).tar.gz
+PKG_HASH:=f900cb39505eb6e168a9ca51a10b73f1bbde1914b923a09ecd72d9c02e6ec2ef
+
+PKG_LICENSE:=Artistic-2.0
+PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/perl/File-Next-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../perl/perlmod.mk
+
+define Package/perl-file-next
+  SUBMENU:=Perl
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=File finding module
+  URL:=http://search.cpan.org/dist/File-Next/
+  DEPENDS:=perl +perlbase-file
+endef
+
+define Build/Configure
+       $(call perlmod/Configure,,)
+endef
+
+define Build/Compile
+       $(call perlmod/Compile,,)
+endef
+
+define Package/perl-file-next/install
+       $(call perlmod/Install,$(1),File auto/File)
+endef
+
+$(eval $(call BuildPackage,perl-file-next))
index 15cf9fa894df8a69da430eabe053c6406f2d8ef5..876855ba6d653994efba0df24900b08edfee9a00 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=7.4.19
+PKG_VERSION:=7.4.20
 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:=6c17172c4a411ccb694d9752de899bb63c72a0a3ebe5089116bc13658a1467b2
+PKG_HASH:=1fa46ca6790d780bf2cb48961df65f0ca3640c4533f0bca743cd61b71cb66335
 
 PKG_BUILD_PARALLEL:=1
 PKG_USE_MIPS16:=0
index 8bc524b2e819b0cf2326eefb02a038175c4091c6..8224175239b4e4cb79399a0071e10d4413b6b605 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=8.0.6
+PKG_VERSION:=8.0.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:=e9871d3b6c391fe9e89f86f6334852dcc10eeaaa8d5565beb8436e7f0cf30e20
+PKG_HASH:=d5fc2e4fc780a32404d88c360e3e0009bc725d936459668e9c2ac992f2d83654
 
 PKG_BUILD_PARALLEL:=1
 PKG_USE_MIPS16:=0
index 506dee7df97d27982005e386f4ac2e3171020d7c..4da5483791a3895a4855dfd2591ae91aff61df7a 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-attrs
-PKG_VERSION:=20.3.0
+PKG_VERSION:=21.2.0
 PKG_RELEASE:=1
 
 PYPI_NAME:=attrs
-PKG_HASH:=832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700
+PKG_HASH:=ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
index cd05be0544829f65bf28777b1159140c36a615fe..b48bb67a1406f5314eeea94bcc05b9dfdc0fa527 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-idna
-PKG_VERSION:=3.1
+PKG_VERSION:=3.2
 PKG_RELEASE:=1
 
 PYPI_NAME:=idna
-PKG_HASH:=c5b02147e01ea9920e6b0a3f1f7bb833612d507592c837a6c49552768f4054e1
+PKG_HASH:=467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.rst
index 7e46ed67fd74d9e3ff98657e045a7462414de4aa..e3fa8efcb232347c059fb290f3e2df241861cad2 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-incremental
-PKG_VERSION:=17.5.0
-PKG_RELEASE:=2
+PKG_VERSION:=21.3.0
+PKG_RELEASE:=1
 
 PYPI_NAME:=incremental
-PKG_HASH:=7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3
+PKG_HASH:=02f5de5aff48f6b9f665d99d48bfc7ec03b6e3943210de7cfc88856d755d6f57
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
index b2c04969c31dfdba48c2485ace7ba0cabcc63b2a..5c228c004decae069e293f0031cf629318ee5113 100644 (file)
@@ -1,11 +1,11 @@
 --- a/setup.py
 +++ b/setup.py
-@@ -32,7 +32,7 @@ setup(
+@@ -31,7 +31,7 @@ setup(
          "Programming Language :: Python :: 3.5",
          "Programming Language :: Python :: 3.6",
      ],
 -    packages=find_packages("src", exclude=("exampleproj",)),
 +    packages=find_packages("src", exclude=("exampleproj", "*.tests", "*.tests.*")),
      package_dir={"": "src"},
-     extras_require={
-         "scripts": [
+     extras_require={"scripts": ["click>=6.0", "twisted>=16.4.0"]},
+     license="MIT",
index 935f34b3686020b152b313ae01d1564300a47be8..22f3527dba6592919c4233a4e789bfcf41cb5e2b 100644 (file)
@@ -8,12 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-twisted
-PKG_VERSION:=20.3.0
-PKG_RELEASE:=3
+PKG_VERSION:=21.2.0
+PKG_RELEASE:=2
 
 PYPI_NAME:=Twisted
-PYPI_SOURCE_EXT:=tar.bz2
-PKG_HASH:=d72c55b5d56e176563b91d11952d13b01af8725c623e498db5507b6614fc1e10
+PKG_HASH:=77544a8945cf69b98d2946689bbe0c75de7d145cdf11f391dd487eae8fc95a12
 
 PKG_BUILD_DEPENDS:=libtirpc
 
@@ -33,13 +32,21 @@ define Package/python3-twisted
   TITLE:=Asynchronous networking framework
   URL:=https://twistedmatrix.com/
   DEPENDS:= \
-      +python3-light \
+      +python3 \
+      +python3-appdirs \
       +python3-attrs \
       +python3-automat \
+      +python3-bcrypt \
       +python3-constantly \
+      +python3-cryptography \
+      +python3-idna \
       +python3-incremental \
       +python3-hyperlink \
-      +python3-setuptools \
+      +python3-pkg-resources \
+      +python3-pyasn1 \
+      +python3-pyopenssl \
+      +python3-service-identity \
+      +python3-typing-extensions \
       +python3-zope-interface
 endef
 
@@ -49,6 +56,10 @@ protocols. It contains a web server, numerous chat clients, chat servers,
 mail servers, and more.
 endef
 
+define Build/Configure
+       $(SED) 's/^version = attr: twisted.__version__$$$$/version = $(PKG_VERSION)/' $(PKG_BUILD_DIR)/setup.cfg
+endef
+
 define Py3Package/python3-twisted/filespec
 +|$(PYTHON3_PKG_DIR)
 -|$(PYTHON3_PKG_DIR)/twisted/conch/scripts/tkconch.py
index 4f376ed49ea5eda0818b6f11f9ebaaccbb653497..8aee0fd6be6e682991aed2bca89f04fedab1859e 100644 (file)
@@ -1,13 +1,13 @@
---- a/src/twisted/python/_setup.py
-+++ b/src/twisted/python/_setup.py
-@@ -151,7 +151,6 @@ _CONSOLE_SCRIPTS = [
-     "conch = twisted.conch.scripts.conch:run",
-     "mailmail = twisted.mail.scripts.mailmail:run",
-     "pyhtmlizer = twisted.scripts.htmlizer:run",
--    "tkconch = twisted.conch.scripts.tkconch:run",
-     "trial = twisted.scripts.trial:run",
-     "twist = twisted.application.twist._twist:Twist.main",
-     "twistd = twisted.scripts.twistd:run",
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -98,7 +98,6 @@ console_scripts =
+       conch = twisted.conch.scripts.conch:run
+       mailmail = twisted.mail.scripts.mailmail:run
+       pyhtmlizer = twisted.scripts.htmlizer:run
+-      tkconch = twisted.conch.scripts.tkconch:run
+       trial = twisted.scripts.trial:run
+       twist = twisted.application.twist._twist:Twist.main
+       twistd = twisted.scripts.twistd:run
 --- a/src/twisted/python/twisted-completion.zsh
 +++ b/src/twisted/python/twisted-completion.zsh
 @@ -1,4 +1,4 @@
index 71501df142a3c4c0e300dd95cfe8788621e61e53..54397cc008b31f9c671127e42d2548e31cf29de3 100644 (file)
@@ -1,37 +1,20 @@
---- a/src/twisted/python/_setup.py
-+++ b/src/twisted/python/_setup.py
-@@ -177,11 +177,6 @@ class ConditionalExtension(Extension, ob
- # The C extensions used for Twisted.
- _EXTENSIONS = [
-     ConditionalExtension(
--        "twisted.test.raiser",
--        sources=["src/twisted/test/raiser.c"],
--        condition=lambda _: _isCPython),
--
--    ConditionalExtension(
-         "twisted.internet.iocpreactor.iocpsupport",
-         sources=[
-             "src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c",
-@@ -275,12 +270,11 @@ def getSetupArgs(extensions=_EXTENSIONS,
-         # PyHamcrest 1.10.0 is Python 3 only, but lacks package metadata that
-         # says so. This condition can be dropped when Twisted drops support for
-         # Python 2.7.
--        "PyHamcrest >= 1.9.0, != 1.10.0",
-         "attrs >= 19.2.0",
-     ]
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -90,6 +90,9 @@ osx_platform =
  
-     arguments.update(dict(
--        packages=find_packages("src"),
-+        packages=find_packages("src", exclude=["*.test", "*.test.*"]),
-         use_incremental=True,
-         setup_requires=["incremental >= 16.10.1"],
-         install_requires=requirements,
-@@ -290,7 +284,7 @@ def getSetupArgs(extensions=_EXTENSIONS,
-         cmdclass=command_classes,
-         include_package_data=True,
-         exclude_package_data={
--            "": ["*.c", "*.h", "*.pxi", "*.pyx", "build.bat"],
-+            "": ["*.c", "*.h", "*.pxi", "*.pyx", "build.bat", "test/*"],
-         },
-         zip_safe=False,
-         extras_require=_EXTRAS_REQUIRE,
+ [options.packages.find]
+ where = src
++exclude = 
++      *.test
++      *.test.*
+ [options.entry_points]
+ console_scripts = 
+@@ -109,6 +112,7 @@ console_scripts =
+       *.pxi
+       *.pyx
+       build.bat
++      test/*
+ [flake8]
+ disable-noqa = True
index 02a746d5f99e99b0b5014f581ec1e363c988b163..b5b589f7ea5065e9aa66b9619a10838840f02a9b 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-zope-interface
-PKG_VERSION:=5.2.0
+PKG_VERSION:=5.4.0
 PKG_RELEASE:=1
 
 PYPI_NAME:=zope.interface
-PKG_HASH:=8251f06a77985a2729a8bdbefbae79ee78567dddc3acbd499b87e705ca59fe24
+PKG_HASH:=5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e
 
 PKG_LICENSE:=ZPL-2.1
 PKG_LICENSE_FILES:=LICENSE.txt
index ba1b6df5a53638138f3407ba0f9aba91b73a8712..121a2905435676c2c479d3b0a162577262e43495 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 include ../python3-version.mk
 
 PKG_NAME:=python3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_VERSION:=$(PYTHON3_VERSION).$(PYTHON3_VERSION_MICRO)
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
@@ -270,7 +270,6 @@ define Py3Package/python3-light/filespec
 -|/usr/lib/python$(PYTHON3_VERSION)/tkinter
 -|/usr/lib/python$(PYTHON3_VERSION)/turtledemo
 -|/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_test*.so
--|/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/readline*.so
 -|/usr/lib/python$(PYTHON3_VERSION)/pdb.doc
 -|/usr/lib/python$(PYTHON3_VERSION)/test
 -|/usr/lib/python$(PYTHON3_VERSION)/webbrowser.py
index 45649ac754ede42412e273546c7a37c8d50e2cc3..3ecdeb336226051218f654fe71f8fcb074c8454f 100644 (file)
@@ -8,7 +8,7 @@
 define Package/python3-ncurses
 $(call Package/python3/Default)
   TITLE:=Python $(PYTHON3_VERSION) ncurses module
-  DEPENDS:=+python3-light +libncurses
+  DEPENDS:=+python3-light +libncursesw
 endef
 
 $(eval $(call Py3BasePackage,python3-ncurses, \
diff --git a/lang/python/python3/files/python3-package-readline.mk b/lang/python/python3/files/python3-package-readline.mk
new file mode 100644 (file)
index 0000000..4ce408d
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2021 Alexandru Ardelean <ardeleanalex@gmail.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-readline
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) readline module
+  DEPENDS:=+python3-light +libreadline +libncursesw
+endef
+
+$(eval $(call Py3BasePackage,python3-readline, \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/readline.$(PYTHON3_SO_SUFFIX) \
+))
index 8efd4e771e23bb8f6d9cd57e5a2c33fd7bc45d97..65930f4a51fa06effa197f9cad63bd56304a48db 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tcl
 TCL_MAJOR_VERSION:=8.6
-PKG_VERSION:=${TCL_MAJOR_VERSION}.10
-PKG_RELEASE:=2
+PKG_VERSION:=${TCL_MAJOR_VERSION}.11
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)$(PKG_VERSION)-src.tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=5196dbf6638e3df8d5c87b5815c8c2b758496eb6f0e41446596c9a4e638d87ed
+PKG_HASH:=8c0486668586672c5693d7d95817cb05a18c5ecca2f40e2836b9578064088258
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(PKG_VERSION)
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)$(PKG_VERSION)
 
index c71921a39f4f368b7e5ee041bbf52b69caa3973e..3e73dffc864178e4116d20f007b041c7d4aeab0c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vala
-PKG_VERSION:=0.52.1
+PKG_VERSION:=0.52.3
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNOME/vala/0.52
-PKG_HASH:=17a083ce2405f967efa7d92bce82c49e5f65af334513e3d087a6b4435ed6b9fa
+PKG_HASH:=037ea1a92bf0f1ab04a71b52a01d50aca1945ad1017b6189d9614f84f5c9b2d9
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1-or-later
index 6dcc67a93782f656a22b3a1aea8c6edb3d197f46..c312c4a8848ed3105c91b4b561d61a598940e598 100644 (file)
@@ -24,7 +24,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_AFALG_ZERO_COPY
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 ENGINES_DIR:=engines-1.1
 
diff --git a/libs/boost/patches/020-regex.patch b/libs/boost/patches/020-regex.patch
new file mode 100644 (file)
index 0000000..606d222
--- /dev/null
@@ -0,0 +1,29 @@
+--- a/boost/regex/v5/mem_block_cache.hpp
++++ b/boost/regex/v5/mem_block_cache.hpp
+@@ -85,10 +85,10 @@ struct mem_block_node
+ struct mem_block_cache
+ {
+    // this member has to be statically initialsed:
+-   mem_block_node* next;
+-   unsigned cached_blocks;
++   mem_block_node* next { nullptr };
++   unsigned cached_blocks { 0 };
+ #ifdef BOOST_HAS_THREADS
+-   boost::static_mutex mut;
++   std::mutex mut;
+ #endif
+    ~mem_block_cache()
+@@ -133,11 +133,7 @@ struct mem_block_cache
+    }
+    static mem_block_cache& instance()
+    {
+-#ifdef BOOST_HAS_THREADS
+-      static mem_block_cache block_cache = { 0, 0, BOOST_STATIC_MUTEX_INIT, };
+-#else
+-      static mem_block_cache block_cache = { 0, 0, };
+-#endif
++      static mem_block_cache block_cache;
+       return block_cache;
+    }
+ };
index edc8f9fcdcf982b063ecbb6554c6016f4a0ff293..885b81812423e960751f48a0fa6b24fc4b12a105 100644 (file)
@@ -23,7 +23,7 @@ PKG_CPE_ID:=cpe:/a:c-ares_project:c-ares
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libcares
   SECTION:=libs
index 2eaec58b44f381453bd9acf9992c1ee9f0ec1125..46b29984123dc9c772c739bd34f0fc7f54794688 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += \
        -DCMAKE_CXX_FLAGS=-latomic \
index 127bc15163ec39464a8bc3e6e5cacb4ede2c0369..717e88f4b8ff28b2bafa047439df290ede7cd3f3 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=COPYING.LESSER
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/check
   SECTION:=libs
index cf5f3841a528af342e026bbb1461a8695e1661cc..1bd9b80b32620046e8fb368f7da955d85279ec85 100644 (file)
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=LICENSE
 PKG_CPE_ID:=cpe:/a:cjson_project:cjson
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/cJSON
   SECTION:=libs
index 7cd2da1c3da0c1a565e6e5cc702639382b1fc790..45b74bfb4094b709c1158b1988cfd12a21d17c8b 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/czmq
   SECTION:=libs
index 1115f271f72112fe1cf1a0a0db1a34553b4bc347..6a719c37267fc93f649f347d6288d38569b4c2a9 100644 (file)
@@ -32,7 +32,7 @@ PKG_SOURCE_URL:=http://ftp.libelektra.org/ftp/elektra/releases
 PKG_BUILD_DEPENDS:= lua
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 include $(INCLUDE_DIR)/nls.mk
 
 define Package/libelektra/Default
index 6372254e563c1a8616197bfb1f4c96ec324b26dd..ba91114c512500703518e21df56dc5d50cfaad13 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=expat
-PKG_VERSION:=2.2.10
-PKG_RELEASE:=1
+PKG_VERSION:=2.4.1
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SF/expat
-PKG_HASH:=5dfe538f8b5b63f03e98edac520d7d9a6a4d22e482e5c96d4d06fcc5485c25f2
+PKG_HASH:=cf032d0dba9b928636548e32b327a2d66b1aab63c4f4a13dd132c2d1d2f2fb6a
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=MIT
@@ -22,7 +22,7 @@ CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libexpat
   SECTION:=libs
index 18234537ae681773e073b5b9b02c77b4751298f1..096841146c61ae663d3729e7073daafb8fbf3a38 100644 (file)
@@ -5,16 +5,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=getdns
-PKG_VERSION:=1.6.0
-PKG_RELEASE:=5
+PKG_VERSION:=1.7.0
+PKG_RELEASE:=1
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Jonathan Underwood <jonathan.underwood@gmail.com>
+PKG_MAINTAINER:=
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://getdnsapi.net/dist/
-PKG_HASH:=40e5737471a3902ba8304b0fd63aa7c95802f66ebbc6eae53c487c8e8a380f4a
+PKG_HASH:=ea8713ce5e077ac76b1418ceb6afd25e6d4e39e9600f6f5e81d3a3a13a60f652
 
 CMAKE_INSTALL:=1
 
@@ -23,7 +23,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_GETDNS_ENABLE_IDN_LIBIDN2
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/getdns/Default
        TITLE:=getdns
diff --git a/libs/getdns/patches/010-openssl-deprecated.patch b/libs/getdns/patches/010-openssl-deprecated.patch
deleted file mode 100644 (file)
index 21d8503..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/src/tls/val_secalgo.c
-+++ b/src/tls/val_secalgo.c
-@@ -72,6 +72,10 @@
- #include <openssl/engine.h>
- #endif
-+#ifdef USE_DSA
-+#include <openssl/dsa.h>
-+#endif
-+
- /** fake DSA support for unit tests */
- int fake_dsa = 0;
- /** fake SHA1 support for unit tests */
diff --git a/libs/getdns/patches/020-openssl-no-dynamic.patch b/libs/getdns/patches/020-openssl-no-dynamic.patch
deleted file mode 100644 (file)
index 57824da..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -334,6 +334,9 @@ check_include_file(openssl/err.h HAVE_OP
- check_include_file(openssl/rand.h HAVE_OPENSSL_RAND_H)
- check_include_file(openssl/conf.h HAVE_OPENSSL_CONF_H)
- check_include_file(openssl/engine.h HAVE_OPENSSL_ENGINE_H)
-+check_include_file(openssl/bn.h HAVE_OPENSSL_BN_H)
-+check_include_file(openssl/dsa.h HAVE_OPENSSL_DSA_H)
-+check_include_file(openssl/rsa.h HAVE_OPENSSL_RSA_H)
- set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
- check_function_exists(DSA_SIG_set0 HAVE_DSA_SIG_SET0)
---- a/cmake/include/cmakeconfig.h.in
-+++ b/cmake/include/cmakeconfig.h.in
-@@ -58,6 +58,9 @@
- #cmakedefine HAVE_OPENSSL_RAND_H        1
- #cmakedefine HAVE_OPENSSL_CONF_H        1
- #cmakedefine HAVE_OPENSSL_ENGINE_H      1
-+#cmakedefine HAVE_OPENSSL_BN_H          1
-+#cmakedefine HAVE_OPENSSL_DSA_H         1
-+#cmakedefine HAVE_OPENSSL_RSA_H         1
- #cmakedefine HAVE_DSA_SIG_SET0                1
- #cmakedefine HAVE_DSA_SET0_PQG                1
---- a/src/openssl/keyraw-internal.c
-+++ b/src/openssl/keyraw-internal.c
-@@ -21,10 +21,10 @@
- #include <openssl/err.h>
- #include <openssl/md5.h>
- #ifdef HAVE_OPENSSL_CONF_H
--# include <openssl/conf.h>
-+#include <openssl/conf.h>
- #endif
- #ifdef HAVE_OPENSSL_ENGINE_H
--#  include <openssl/engine.h>
-+#include <openssl/engine.h>
- #endif
- #ifdef HAVE_OPENSSL_BN_H
- #include <openssl/bn.h>
-@@ -35,6 +35,9 @@
- #ifdef HAVE_OPENSSL_DSA_H
- #include <openssl/dsa.h>
- #endif
-+#ifdef HAVE_OPENSSL_RSA_H
-+#include <openssl/rsa.h>
-+#endif
- #endif /* HAVE_SSL */
- #ifdef HAVE_SSL
-@@ -74,7 +77,6 @@ gldns_key_EVP_load_gost_id(void)
-       if(!e) {
-               /* load it ourself, in case statically linked */
-               ENGINE_load_builtin_engines();
--              ENGINE_load_dynamic();
-               e = ENGINE_by_id("gost");
-       }
-       if(!e) {
diff --git a/libs/getdns/patches/030-typo-cmake-fix-stubby.patch b/libs/getdns/patches/030-typo-cmake-fix-stubby.patch
deleted file mode 100644 (file)
index f3fe11f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/cmake/include/cmakeconfig.h.in
-+++ b/cmake/include/cmakeconfig.h.in
-@@ -91,8 +91,8 @@
- #cmakedefine HAVE_OPENSSL_VERSION     1
- #cmakedefine HAVE_SSL_CTX_DANE_ENABLE 1
--#cmakedefine HAVE_SSL_CTX_SET_CIPHERSUITS     1
--#cmakedefine HAVE_SSL_SET_CIPHERSUITS 1
-+#cmakedefine HAVE_SSL_CTX_SET_CIPHERSUITES    1
-+#cmakedefine HAVE_SSL_SET_CIPHERSUITES        1
- #cmakedefine HAVE_OPENSSL_INIT_CRYPTO 1
diff --git a/libs/getdns/patches/getdns-1.6.0-fix-crosscompile.patch b/libs/getdns/patches/getdns-1.6.0-fix-crosscompile.patch
deleted file mode 100644 (file)
index d8d94ac..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -523,7 +523,7 @@ set(STRPTIME_TEST_SOURCE "\n
-   res = strptime(\"20070207111842\", \"%Y%m%d%H%M%S\", &tm);\n
-   if (!res) return 1; return 0; }")
--if (HAVE_STRPTIME)
-+if (HAVE_STRPTIME AND NOT CMAKE_CROSSCOMPILING)
-   check_c_source_runs("${STRPTIME_TEST_SOURCE}" STRPTIME_WORKS)
- endif ()
index f68671fcfd1c2d334e3f7c14beb52c896bca93a9..b57e2b5d45ec8844396bca56873ff0d3c1e5a024 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnutls
-PKG_VERSION:=3.7.1
-PKG_RELEASE:=1
+PKG_VERSION:=3.7.2
+PKG_RELEASE:=$(AUTORELEASE)
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7
-PKG_HASH:=3777d7963eca5e06eb315686163b7b3f5045e2baac5e54e038ace9835e5cac6f
+PKG_HASH:=646e6c5a9a185faa4cea796d378a1ba8e1148dbb197ca6605f95986a25af2752
 PKG_FIXUP:=autoreconf gettext-version
 PKG_MAINTAINER:=Nikos Mavrogiannopoulos <nmav@gnutls.org>
 PKG_LICENSE:=LGPL-2.1-or-later
index eb5d83c56bf2b37049ea3023d8d64f97fee0bea6..a1f38bb07423744798fd39d9c7ab1d662a0abe59 100644 (file)
@@ -62,7 +62,7 @@
      [AC_COMPILE_IFELSE(
 --- a/src/gl/m4/gnulib-comp.m4
 +++ b/src/gl/m4/gnulib-comp.m4
-@@ -1064,7 +1064,7 @@ changequote([, ])dnl
+@@ -1164,7 +1164,7 @@ changequote([, ])dnl
    gl_UNISTD_MODULE_INDICATOR([sleep])
    AC_CHECK_DECLS_ONCE([alarm])
    AC_REQUIRE([gt_TYPE_WCHAR_T])
index 28fde5b8bb6242e4fd7c89932f3a4a798ebecfed..00b55e7c23cb0a87756f38939299d855369f31cc 100644 (file)
@@ -12,7 +12,7 @@ PKG_MAINTAINER:=Artur Petrov <github@phpchain.ru>
 PKG_LICENSE:=OpenSSL
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 PKG_UNPACK:=$(HOST_TAR) -C "$(PKG_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
 PKG_INSTALL:=
index b9d964875b71c4b495d7af5a8b4456aa5581d3c8..59f2e30476ab6548b124982f7322026a326239bf 100644 (file)
@@ -2,18 +2,18 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=h2o
 PKG_VERSION:=2.2.6
-PKG_RELEASE:=9
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE_URL:=https://codeload.github.com/h2o/h2o/tar.gz/v${PKG_VERSION}?
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_HASH:=f8cbc1b530d85ff098f6efc2c3fdbc5e29baffb30614caac59d5c710f7bda201
 
-PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au
+PKG_MAINTAINER:=Peter van Dijk <peter.van.dijk@powerdns.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 PKG_BUILD_DEPENDS:=libwslay
 
index 1b6e42c7fc3049fcf7c5e05426d2f961c3660f85..c434e349ae22557fbf5538e1564adebddccc4794 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=LICENSE.MIT
 PKG_BUILD_DEPENDS:=nlohmannjson
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/ipfs-http-client/Default/description
   IPFS (the InterPlanetary File System) is the Distributed Web.
index 20b9c2f7ee30518e2fd4e2e4047749e4d9126d7c..d6d602195f9cbee213d288f7127e4b8abef769e7 100644 (file)
@@ -8,26 +8,27 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=jose
-PKG_VERSION:=10
-PKG_RELEASE:=2
+PKG_VERSION:=11
+PKG_RELEASE:=$(AUTORELEASE)
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/latchset/$(PKG_NAME)/releases/download/v$(PKG_VERSION)/
-PKG_HASH:=5c9cdcfb535c4d9f781393d7530521c72b1dd81caa9934cab6dd752cc7efcd72
+PKG_HASH:=e272afe7717e22790c383f3164480627a567c714ccb80c1ee96f62c9929d8225
 
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
+PKG_MAINTAINER:=Tibor Dudlák <tibor.dudlak@gmail.com>
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=COPYING
 
-PKG_FIXUP:=autoreconf
+PKG_BUILD_DEPENDS:=meson/host
 
 include $(INCLUDE_DIR)/package.mk
+include ../../devel/meson/meson.mk
 
 define Package/libjose
   SECTION:=libs
   TITLE:=Provides a full crypto stack including key generation, signing and encryption.
   DEPENDS:=+zlib +jansson +libopenssl +libpthread
   URL:=https://github.com/latchset/jose
-  MAINTAINER:=Tibor Dudlák <tibor.dudlak@gmail.com>
 endef
 
 define Package/jose
@@ -35,7 +36,6 @@ define Package/jose
   TITLE:=Provides a full crypto stack including key generation, signing and encryption.
   DEPENDS:=+libjose
   URL:=https://github.com/latchset/jose
-  MAINTAINER:=Tibor Dudlák <tibor.dudlak@gmail.com>
 endef
 
 define Package/jose/description
@@ -57,7 +57,7 @@ define Build/InstallDev
        $(INSTALL_DIR)  $(1)/usr/lib/pkgconfig
        $(CP)   $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME).so*   $(1)/usr/lib
        $(CP)   $(PKG_INSTALL_DIR)/usr/include/$(PKG_NAME)/*.h  $(1)/usr/include/$(PKG_NAME)
-       $(CP)   $(PKG_BUILD_DIR)/*.pc                           $(1)/usr/lib/pkgconfig
+       $(CP)   $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc       $(1)/usr/lib/pkgconfig
 endef
 
 define Package/libjose/install
diff --git a/libs/jose/patches/010-fix_minor_leak_upstream_198f720.patch b/libs/jose/patches/010-fix_minor_leak_upstream_198f720.patch
deleted file mode 100644 (file)
index 7639aca..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From 198f7207427ad7f569aa3592ea16e2bb400db040 Mon Sep 17 00:00:00 2001
-From: Nathaniel McCallum <npmccallum@redhat.com>
-Date: Fri, 29 Sep 2017 14:49:57 -0400
-Subject: [PATCH] Fix minor FILE* leak
-
----
- cmd/jwe/pwd.h | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/cmd/jwe/pwd.h
-+++ b/cmd/jwe/pwd.h
-@@ -57,8 +57,10 @@ jwe_getpass(const char *prompt)
-     nf.c_lflag &= ~ECHO;
-     nf.c_lflag |= ECHONL;
--    if (tcsetattr(fileno(tty), TCSANOW, &nf) != 0)
-+    if (tcsetattr(fileno(tty), TCSANOW, &nf) != 0) {
-+        fclose(tty);
-         return NULL;
-+    }
-     fprintf(tty, "%s", prompt);
-@@ -72,6 +74,7 @@ jwe_getpass(const char *prompt)
-     }
-     tcsetattr(fileno(tty), TCSANOW, &of);
-+    fclose(tty);
-     return pwd;
- }
- #endif
diff --git a/libs/jose/patches/020-openssl-deprecated.patch b/libs/jose/patches/020-openssl-deprecated.patch
deleted file mode 100644 (file)
index 7ae664b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/lib/openssl/compat.h
-+++ b/lib/openssl/compat.h
-@@ -17,6 +17,7 @@
- #pragma once
-+#include <openssl/bn.h>
- #include <openssl/hmac.h>
- #include <openssl/ec.h>
- #include <openssl/ecdsa.h>
---- a/lib/openssl/misc.c
-+++ b/lib/openssl/misc.c
-@@ -185,6 +185,8 @@ add_entity(json_t *root, json_t *obj, co
- static void __attribute__((constructor))
- constructor(void)
- {
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-     OpenSSL_add_all_algorithms();
-+#endif
-     RAND_poll();
- }
index b0155ca5707d24102ba828393ff425c3dea6d869..4997ce94579b53d9e6f4186b3c4a7a3b60e8f254 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=leptonica-license.txt
 CMAKE_BINARY_SUBDIR:=openwrt-build
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libleptonica
   SECTION:=libs
index b74b244530cc39fe7d3a971378fa1bf07c75f8a0..3f88ac64653e16be8d5d566af34614d02c103537 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:libarchive:libarchive
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libarchive/Default
   SECTION:=libs
index 5cab3d5f282805f2ce839bf4fe754d0c78275b22..7c0735f28f8367f599bd87f6dc9a0e5e2a07e5c4 100644 (file)
@@ -24,7 +24,7 @@ CMAKE_OPTIONS += \
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libcbor
   SECTION:=libs
index a9ac1288a7fca6c840bd429356ae3c63d4c663a7..5df9fe743eac14cf84c775e0dccdca8882ea7f23 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=LICENSE.LGPL
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libebml
   SECTION:=libs
index 2c55c380ef1da3e50a9222ad2071001301cb6cb1..8065d40ed139aa48334cd9d8f316f3be810376e3 100644 (file)
@@ -31,7 +31,7 @@ CMAKE_INSTALL:=1
 PKG_CONFIG_DEPENDS:=LIBEVHTP_BUILD_DEPENDS
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libevhtp
     SECTION:=libs
index 4e4438eaa0f414e6d87ff094340db96d67713bd7..8fd8aae9457dc8edb17d09874d071c9b81a59a8c 100644 (file)
@@ -25,7 +25,7 @@ PKG_LICENSE:=GPL-3.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libfido2
   SECTION:=libs
index 00b7a52be54effa878eb75fbe519aae006fbc61a..1f2e359b5f96af1e202d86f76a40598cf7a3a246 100644 (file)
@@ -24,7 +24,7 @@ PKG_LICENSE_FILES:=LICENSE.rst
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += -DBUILD_SHARED_LIBS=ON
 CMAKE_OPTIONS += -DFMT_DOC=OFF
index baa4d2357e959e21c5168ce2549909de8d796f44..da6265312673b77909c22dd0f3759b02336ddac7 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libfstrm
 PKG_VERSION:=0.6.0
-PKG_RELEASE:=1
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=fstrm-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dl.farsightsecurity.com/dist/fstrm/
@@ -10,7 +10,7 @@ PKG_HASH:=a7049089eb0861ecaa21150a05613caa6dee4e8545b91191eff2269caa923910
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/fstrm-$(PKG_VERSION)
 
-PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
+PKG_MAINTAINER:=Peter van Dijk <peter.van.dijk@powerdns.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
index dddd8a1c5e40e696294830c0f0a18b28dbc4b6a3..f644b53210074eeea15c1b9abfec92df7b9a0fa5 100644 (file)
@@ -23,7 +23,7 @@ CMAKE_INSTALL:=1
 PKG_USE_MIPS16:=0
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libftdi
   SECTION:=libs
index e0bcf2619483ef72a1e36a24eeee2bc6018cdccb..dee2b6573086b2e6c781e68df55fb7e985bd6a31 100644 (file)
@@ -23,7 +23,7 @@ CMAKE_INSTALL:=1
 PKG_USE_MIPS16:=0
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libftdi1
   SECTION:=libs
index 49ad7003c0cd3a3543b4f4618938ac45fefa6941..0e614ea1fa91a368f6d847d503b5e49cb877e2d1 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:libgd:libgd
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libgd/default
   SECTION:=libs
index dc8385d5ad8ce6a5e1c6370d3a666ce331695fe8..3d6c88b141955691de53626b4929a48d67e53199 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=COPYING
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libical
   SECTION:=libs
index 33c91ac6173790d9b32005806c7eef28aca668aa..523abd339a99d3c39cd29b804a33e8d62a81252d 100644 (file)
@@ -31,7 +31,7 @@ PKG_CONFIG_DEPENDS:= \
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += -DWITH_DOC=OFF
 CMAKE_OPTIONS += -DENABLE_IPV6=$(if $(CONFIG_IPV6),ON,OFF)
index d5c70b6eb001f9f937d1c165f3924d841d98fdcd..8aad8b2e1d1cde5a5b4a7d9cecaf342adaf84eb9 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libjpeg-turbo
-PKG_VERSION:=2.0.6
-PKG_RELEASE:=1
+PKG_VERSION:=2.1.0
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=d74b92ac33b0e3657123ddcf6728788c90dc84dcb6a52013d758af3c4af481bb
+PKG_HASH:=bef89803e506f27715c5627b1e3219c95b80fc31465d4452de2a909d382e4444
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_LICENSE:=BSD-3-Clause IJG zlib
@@ -15,7 +15,7 @@ PKG_LICENSE_FILES:=LICENSE.md
 PKG_USE_MIPS16:=0 #Allows ASM compilation for speed.
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libjpeg-turbo/Default
   TITLE:=libjpeg-turbo
@@ -62,6 +62,12 @@ CMAKE_OPTIONS += \
        -DWITH_SIMD=O$(if $(findstring mips,$(CONFIG_ARCH)),FF,N) \
        -DWITH_TURBOJPEG=OFF
 
+ifneq ($(findstring arm,$(CONFIG_ARCH)),)
+ifeq ($(findstring neon,$(CONFIG_CPU_TYPE)),)
+       CMAKE_OPTIONS += -DWITH_SIMD=OFF
+endif
+endif
+
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
index d1ef6f5298a38eb36539c254e93267d7866249ed..2b44ecf2ffa308fd3694183f0811100acbf2c12b 100644 (file)
@@ -24,7 +24,7 @@ CMAKE_SOURCE_SUBDIR:=cmake
 PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_liblo-utils
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/liblo/Default
   TITLE:=Lightweight Open Sound Control (OSC)
index eba16105aaa306c747798d69b2eea783851573f0..88ffb6e722944493e3695acce1d40a1becf1d680 100644 (file)
@@ -44,7 +44,7 @@ plugin-remote_io                := CLIENT_PLUGIN_REMOTE_IO
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 # Pass CPPFLAGS in the CFLAGS as otherwise the build system will
 # ignore them.
index f35bb0389a1fb4e8067abb7f017e970a46e58d97..ac8c2d61de661260921d9cfbcc692ed5791fbf3b 100644 (file)
@@ -22,7 +22,7 @@ CMAKE_INSTALL:=1
 PKG_BUILD_DEPENDS:=libebml
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libmatroska
   SECTION:=libs
index e81ecb62f599e3d3f57820d66dddac8444cc9212..d142967bf350f074e04d754b98427f08ea44d985 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libmaxminddb
   SECTION:=libs
index afb4ef8dbb8327bff7fe435e6be42757ad3dfecb..3d6ffff950fe80d06d3234b0aed90b3938ff572e 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libmbim
-PKG_VERSION:=1.24.6
+PKG_VERSION:=1.24.8
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.freedesktop.org/software/libmbim
-PKG_HASH:=760465caaa1ccd699c14290e9791da456d5300dd11ebf4c1486151033e875dfd
+PKG_HASH:=02590736163fff10e5732191fccc1b9920969616ddc59613a003052a116a3c25
 
 PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
 
index 1090a250cbcd520dddd88b645fa47569849a7ca5..95e54fcf41802e63a38c9f19cbbf7a02a2f91a68 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libmicrohttpd
-PKG_VERSION:=0.9.71
-PKG_RELEASE:=1
+PKG_VERSION:=0.9.73
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/libmicrohttpd
-PKG_HASH:=e8f445e85faf727b89e9f9590daea4473ae00ead38b237cf1eda55172b89b182
+PKG_HASH:=a37b2f1b88fd1bfe74109586be463a434d34e773530fc2a74364cfcf734c032e
 
 PKG_MAINTAINER:=Alexander Couzens <lynxis@fe80.eu>
 PKG_LICENSE:=LGPL-2.1-or-later
index 766135386f825a42b948c5e338937f90f9f9ac76..bb65a5687898b57a5b47a72c9ef882271ff6c38e 100644 (file)
@@ -26,7 +26,7 @@ PKG_USE_MIPS16:=0
 PYTHON3_PKG_BUILD:=0
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 include ../../lang/python/python3-package.mk
 
 CMAKE_OPTIONS += \
index eb55976947570b9ef39fcbd76a999f621a7ac599..f66a82287fc76110e8c7e1dca41123e5edbf1872 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libnatpmp/Default
   TITLE:=NAT Port Mapping Protocol (NAT-PMP)
index 8417dc51d95c9c7f30651288f6f4dafc40a6c525..4b16995e51a1164aba1245e545dc40ce2c9ee042 100644 (file)
@@ -56,6 +56,10 @@ define Build/InstallDev
        $(INSTALL_DIR) $(STAGING_DIR)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/libnet.h $(STAGING_DIR)/usr/include
 
+       $(INSTALL_DIR) $(STAGING_DIR)
+       $(CP) $(PKG_BUILD_DIR)/libnet-config $(STAGING_DIR)/usr
+       chmod a+x $(STAGING_DIR)/usr/libnet-config
+
        $(INSTALL_DIR) $(STAGING_DIR)/usr/include/libnet
        $(CP) $(PKG_INSTALL_DIR)/usr/include/libnet/libnet-*.h $(STAGING_DIR)/usr/include/libnet
 
index c5e8f4b1f63ff802418b2f1380e011759b440348..cb0aacca139a1d137b95a2eaf85fbbb4474d674f 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libnetconf2
   SECTION:=libs
index 7d97db2f897541529498aabfccd1101db377162c..9b5aadd918e9300850fa03b10a66d817e48ab7c8 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnpupnp
-PKG_VERSION:=4.1.3
+PKG_VERSION:=4.1.4
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads
-PKG_HASH:=74703d49be52d29b52f59342ec7359178b127568399551d9d3f56bb7950fcc02
+PKG_HASH:=03506f02546e3b3d31b389e046c4691f020b82d315426ce79f1e2b1eb7958656
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1-or-later
index ff14f41f151676cf623ea90cf3ae3964ef43aedb..7862670a9008f163e11c94ed4d1628c6248d030c 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=liborcania
-PKG_VERSION:=2.2.0
+PKG_VERSION:=2.2.1
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/babelouest/orcania/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=2a46460c6d93e5b8dd97db520edc1e9b3297577fdd8c485b2b6ebf315ceab6f0
+PKG_HASH:=a9f16856aa311b8926cba2075d5245e94f30436f8a762a7e897ee7c8d335c59e
 
 PKG_MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
 PKG_LICENSE:=LGPL-2.1-or-later
@@ -21,7 +21,7 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/orcania-$(PKG_VERSION)
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/liborcania
   SECTION:=libs
index 1a131560d79d62a2fc7588adaf100614cb8e9021..cc00e0c3c46303482c7962ab61954ca0006e6b82 100644 (file)
@@ -21,7 +21,7 @@ PKC_LICENSE_FILES:=LICENSE contrib/gregbook/COPYING contrib/gregbook/LICENSE
 PKG_CPE_ID:=cpe:/a:libpng:libpng
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libpng
   SECTION:=libs
index cb197e48229df108280cf4fe3895d2df01d85849..6d50a8f9d5de814fa3b23052fd9a5152d5df694d 100644 (file)
@@ -14,7 +14,7 @@ CMAKE_INSTALL:=1
 PKG_MAINTAINER:=Igor Bezzubchenko <garikello@gmail.com>
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libpqxx
        SECTION:=libs
index 94b2e81f0561185b02ec277ac265f9d99659589b..df570952ee37b8a9866a68e92480e71a7f66eedd 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libqmi
-PKG_VERSION:=1.28.2
+PKG_VERSION:=1.28.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.freedesktop.org/software/libqmi
-PKG_HASH:=8c8c3ee719874d2529bce9b35b028fe435b36f003979a360d3ad0938449db783
+PKG_HASH:=cbb890893de1dee06ea5ebdac2d22f0469314a6f93f15f61f2f1206a1c9ae5fd
 
 PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
 
index 1d38e427d0d5ed6e4ea060730e413730a191a02e..4789613909def14dbe90c51b91dc00de5b9f8ae9 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE:=ISC
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libradiotap
        SECTION:=libs
index 44f44af29471f7fb28eecd19c7c2dfeb0355c579..972cbf29b16676c40ebae023f8810db069e29851 100644 (file)
@@ -15,7 +15,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/re2
   SECTION:=libs
index 8e35a655b456b34ea0e3bbc6f27ef3c0f9dcceb0..a674f84cd5bd660e9d92f84f909de1ae0ca676e2 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=License.txt
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libroxml
   SECTION:=libs
index e084e4eb170d59d5ca91ba38b6a98c04df88799d..1e3895683691eb17b954303c8c986f0ddbbf96cf 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsearpc
 PKG_VERSION:=3.2.0
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/haiwen/libsearpc.git
@@ -17,7 +17,7 @@ PKG_SOURCE_VERSION:=d1fd7518a20b25766ff98d6fde6e40c63626ca0d
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(call version_abbrev,$(PKG_SOURCE_VERSION))
 PKG_MIRROR_HASH:=ee8b8b50b480afbcb71bd73cd9c2a96cfa72e9dafaf5773574adbf348e49a0d4
 
-PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>, Jeffery To <jeffery.to@gmail.com>
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE.txt
 
index 6c269eeae2840f2a211a9820b5d9efd442abc2d6..5a06336880963dfd18c21f98ca54a8023f48537f 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:libsndfile_project:libsndfile
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libsndfile
   SECTION:=libs
index 8f102bef3ed2cea437e36b3c4dc3b049a55740b7..b1b20f36bac1ca0c9a464973c5e40c4d7c005461 100644 (file)
@@ -24,7 +24,7 @@ PKG_CPE_ID:=cpe:/a:sox:sox
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libsoxr
   SECTION:=libs
index fa05b920bf3dd3e0b8982ca661b2e2112786c817..29462cb94bb9ec9e10ff4ca50a1368f3b0ca872a 100644 (file)
@@ -25,7 +25,7 @@ CMAKE_BINARY_SUBDIR:=build
 PKG_USE_MIPS16:=0
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libssh
   SECTION:=libs
index 96f6db56a783233ad8996eb53476a84840c5e45a..bf4493f36c1c866983c5e65ba717de1797058870 100644 (file)
@@ -27,7 +27,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_LIBSSH2_OPENSSL
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libssh2
   SECTION:=libs
index d0586db380c419c3b50645e85bc3f33a464b6643..392ebfc6fb5310205e75606775df357ad8c03d2c 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libtins
   SECTION:=net
index bbf57b7b06f789781643963398aacca37d0c6586..d925ad075fe08d7622196b5c37ef15b77256f5c0 100644 (file)
@@ -13,7 +13,7 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libtorrent-rasterbar/Default
        TITLE:=Rasterbar BitTorrent library
index 750cc2d0bb35ccdfc90ff2a79e0f0a4e05a812ff..57ca7a377f6ab5847f4f27e7d1a5ad71a5d7561e 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=COPYRIGHT
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libuecc
   SECTION:=libs
index bdbb9c3d97d81e2e8e0e08c8d3f4851336998127..8fdee1a1665eff5d5f99033682889a88a5014ae8 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libuhttpd
-PKG_VERSION:=3.11.0
+PKG_VERSION:=3.12.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL=https://github.com/zhaojh329/libuhttpd/releases/download/v$(PKG_VERSION)
-PKG_HASH:=dcd95fac7b29d43f57e942db6e9fb4c8745d4284684cd627d60c8a7f8c76cd32
+PKG_HASH:=c234dd3d491c4daa047e28870c6e740529b2eff2dd027dafb6bf02d8dba286b0
 
 PKG_MAINTAINER:=Jianhui Zhao <zhaojh329@gmail.com>
 PKG_LICENSE:=MIT
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libuhttpd/Default
   SECTION:=libs
@@ -41,13 +41,13 @@ Package/libuhttpd-mbedtls=$(call Package/libuhttpd/Default,mbedtls,+PACKAGE_libu
 Package/libuhttpd-nossl=$(call Package/libuhttpd/Default,nossl)
 
 ifeq ($(BUILD_VARIANT),openssl)
-  CMAKE_OPTIONS += -DUHTTPD_USE_OPENSSL=ON
+  CMAKE_OPTIONS += -DUSE_OPENSSL=ON
 else ifeq ($(BUILD_VARIANT),wolfssl)
-  CMAKE_OPTIONS += -DUHTTPD_USE_WOLFSSL=ON
+  CMAKE_OPTIONS += -DUSE_WOLFSSL=ON
 else ifeq ($(BUILD_VARIANT),mbedtls)
-  CMAKE_OPTIONS += -DUHTTPD_USE_MBEDTLS=ON
+  CMAKE_OPTIONS += -DUSE_MBEDTLS=ON
 else
-  CMAKE_OPTIONS += -DUHTTPD_SSL_SUPPORT=OFF
+  CMAKE_OPTIONS += -DSSL_SUPPORT=OFF
 endif
 
 define Package/libuhttpd-$(BUILD_VARIANT)/install
index 510fc17063036ad10515b7b014213d582562a8f4..b1f77a6f40e5f25c297528d5ce8b51927d766a7f 100644 (file)
@@ -16,7 +16,7 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(BUILD_VARIANT)/ulfius-$
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libulfius/default
   SECTION:=libs
index b211209178f132e656fb2e1a8d3f3d81c5b227cb..7fbf278ec19978b0c5eed6d767d2145efa1c9e70 100644 (file)
@@ -26,7 +26,7 @@ PKG_USE_MIPS16:=0
 PYTHON3_PKG_BUILD:=0
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 include ../../lang/python/python3-package.mk
 
 UPM_MODULES:= \
index 64c3e0a85ae66d3ab8e9a8713fbabd39bfeaef94..f98fed513115672f5a459444e6a96c7e856c662e 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libupnp
-PKG_VERSION:=1.14.5
+PKG_VERSION:=1.14.7
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/pupnp
-PKG_HASH:=227ffa407be6b91d4e42abee1dd27e4b8d7e5ba8d3d45394cca4e1eadc65149a
+PKG_HASH:=7b66ac4a86bc0e218e2771ac274b2945bc4154bf9054e57b14afb67c26ac7c24
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=BSD-3-Clause
@@ -18,7 +18,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_IPV6
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libupnp/Default
   SECTION:=libs
index 1a0d57f8e61ba546df38596438faf1a2bd86d6ed..251cc55f708b038b08ad07578dc4037cfe1c1a64 100644 (file)
@@ -24,7 +24,7 @@ PKG_CPE_ID:=cpe:/a:libuv_project:libuv
 CMAKE_BINARY_SUBDIR:=out/cmake
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libuv
   SECTION:=libs
index 089d42c818b2bca0a7304cb3694f454263cfb48c..41f7609f0b5dcd77dda26123f4974ae32674f460 100644 (file)
@@ -28,7 +28,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_LIBUWSC_nossl_LUA_BINDING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libuwsc/Default
   SECTION:=libs
index bcf41d0984068069362895c00d9b924bc84ec54a..a0fc90361205f71bc6150d017383b03b155e3d5b 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:xiph.org:libvorbis
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libvorbis
   SECTION:=libs
index 258c990902eb0e7a716e0a8935cfce48fc33d43c..09ad2fdb81784ce1fcbec01b748b0ae6a417ad62 100644 (file)
@@ -15,7 +15,7 @@ PKG_LICENSE_FILES:=COPYING
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libwebp
   SECTION:=libs
index d8dbdf94499925a730bdd5eab120a2eb53e63023..365e541283c29f862d7ea90e17dd8ac34d94ce2c 100644 (file)
@@ -24,7 +24,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += -DLWS_IPV6=$(if $(CONFIG_IPV6),ON,OFF)
 CMAKE_OPTIONS += -DISABLE_WERROR=ON
index c9ebfc70bb3fefc2b590cb311ab24a838d52366a..63bf5a27a3e787725c538e10f5ac91024a9ae8c2 100644 (file)
@@ -2,21 +2,21 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libwslay
 PKG_VERSION:=1.1.1
-PKG_RELEASE:=1
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=release-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/tatsuhiro-t/wslay/tar.gz/release-$(PKG_VERSION)?
 PKG_HASH:=7b9f4b9df09adaa6e07ec309b68ab376c0db2cfd916613023b52a47adfda224a
 PKG_BUILD_DIR:=$(BUILD_DIR)/wslay-release-$(PKG_VERSION)
 
-PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
+PKG_MAINTAINER:=Peter van Dijk <peter.van.dijk@powerdns.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
 
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libwslay
   SECTION:=libs
index ee214f21e4b1962f916df5e15ee83c4b78ce2d5c..f32707b00feb92265a7ee1edb0be2af5a69c4d91 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/nls.mk
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libxerces-c/Default
   SECTION:=libs
index 139aa69d0f549c67fdc35f7c2b20d831ca3e649d..e50f6d709e85b7c31f6e56b418aaa72e0502a187 100644 (file)
@@ -24,7 +24,7 @@ PKG_CPE_ID:=cpe:/a:yaml-cpp_project:yaml-cpp
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libyaml-cpp
   SECTION:=development
index 5b8ac76107fd61291fd3050fc6b3cfff633cb53c..8f99b46b52f9b61e2095c59b995b4d62ae58f0a2 100644 (file)
@@ -23,7 +23,7 @@ CMAKE_INSTALL:=1
 CMAKE_BINARY_SUBDIR:=build
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libyang
   SECTION:=libs
index 12a5e21542e3525dce5b62b0f02b1a24de7f5bf8..818f64cc0ac3460a692724844ef0e15bd7e8c228 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libzip/Default
   TITLE:=libzip ($(2))
index 52bafe2d8116fd0526e9ab8af5d6233b37f17a60..dcdd9f3e845712aa98244d3efb40e1137993db0d 100644 (file)
@@ -24,7 +24,7 @@ CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/log4cplus
   SECTION:=libs
index 46400c7755d0ca95e2adc7daf0528275d57756a1..0e4e678cbb942e5a8ba51737f2a269eb9c3c5f8b 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=COPYING
 CMAKE_BINARY_SUBDIR:=openwrt-build
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/liblzo
   SECTION:=libs
index 0965b72f512b6acec40ef144400bb7ae34f0d0a4..72c78df49ecb1ff9f2ebced6224a654d7ad400e7 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE:=Zlib
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += \
        -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
index 9040815858418087804c3132fae2890ea00fa5d4..eb5d1a7922ad02b2e32df71f55a071b109c57e99 100644 (file)
@@ -13,7 +13,7 @@ PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libnghttp2
   SECTION:=libs
index efc8944d69b4cea2d9a5fe7c04022fdc186a5202..4d4ffb110127237451399a5a37c58993e427b20e 100644 (file)
@@ -26,7 +26,7 @@ PKG_CONFIG_DEPENDS:=\
        CONFIG_PCRE2_JIT_ENABLED
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libpcre2/default
   SECTION:=libs
index 9039bfcac197a76aa800a46f7256bed79a2850ab..b197f3c5244c9eb7d9ea0dea18ed43022da2bf58 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libprotobuf-c
-PKG_VERSION:=1.3.3
-PKG_RELEASE:=2
+PKG_VERSION:=1.4.0
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=protobuf-c-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/protobuf-c/protobuf-c/releases/download/v$(PKG_VERSION)
-PKG_HASH:=22956606ef50c60de1fabc13a78fbc50830a0447d780467d3c519f84ad527e78
+PKG_HASH:=26d98ee9bf18a6eba0d3f855ddec31dbe857667d269bc0b6017335572f85bbcb
 PKG_BUILD_DIR:=$(BUILD_DIR)/protobuf-c-$(PKG_VERSION)
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/protobuf-c-$(PKG_VERSION)
 
@@ -29,7 +29,7 @@ CMAKE_SOURCE_SUBDIR:=build-cmake
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libprotobuf-c
   TITLE:=Protocol Buffers library
@@ -52,7 +52,8 @@ CMAKE_HOST_OPTIONS += \
        -DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOSTPKG}/lib"
 
 CMAKE_OPTIONS += \
-       -DBUILD_SHARED_LIBS=ON
+       -DBUILD_SHARED_LIBS=ON \
+       -DBUILD_PROTOC=OFF
 
 define Package/libprotobuf-c/install
        $(INSTALL_DIR) $(1)/usr/lib
diff --git a/libs/protobuf-c/patches/010-pkgconfig.patch b/libs/protobuf-c/patches/010-pkgconfig.patch
deleted file mode 100644 (file)
index 932d5cf..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
---- a/build-cmake/CMakeLists.txt
-+++ b/build-cmake/CMakeLists.txt
-@@ -1,7 +1,10 @@
- SET(PACKAGE protobuf-c)
- SET(PACKAGE_NAME protobuf-c)
- SET(PACKAGE_VERSION 1.3.3)
-+set(PACKAGE_URL https://github.com/protobuf-c/protobuf-c)
-+set(PACKAGE_DESCRIPTION "Protocol Buffers implementation in C")
-+include(GNUInstallDirs)
- CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
-@@ -141,6 +144,9 @@ IF(CMAKE_HOST_UNIX)
- INSTALL(CODE "EXECUTE_PROCESS (COMMAND ln -sf protoc-gen-c protoc-c WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)")
- ENDIF()
-+CONFIGURE_FILE ("libprotobuf-c.pc.in" "libprotobuf-c.pc" @ONLY)
-+INSTALL (FILES "../libprotobuf-c.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
-+
- INCLUDE(Dart)
- SET(DART_TESTING_TIMEOUT 5)
---- /dev/null
-+++ b/build-cmake/libprotobuf-c.pc.in
-@@ -0,0 +1,14 @@
-+prefix=@CMAKE_INSTALL_PREFIX@
-+exec_prefix=@CMAKE_INSTALL_PREFIX@
-+bindir=${exec_prefix}/@CMAKE_INSTALL_BINDIR@
-+libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
-+
-+Name: @PACKAGE_NAME@
-+Version: @PACKAGE_VERSION@
-+Description: @PACKAGE_DESCRIPTION@
-+URL: @PACKAGE_URL@
-+Requires:
-+Libs: -L${libdir} -lprotobuf-c
-+Libs.private: 
-+Cflags: -I${includedir}
index 59ac2b709b64af6a9490be2b8aa3273e61b41755..47a109775b561704e2bdcdf6432085d3ee4fddad 100644 (file)
@@ -24,7 +24,7 @@ CMAKE_SOURCE_SUBDIR:=cmake
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/protobuf/Default
   SECTION:=libs
index 0a16f389e26e563ac5d896dad916e96c9b60ce02..1b5c779fba890a91dff7706cddc195ebef895d22 100644 (file)
@@ -18,7 +18,7 @@ PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/pugixml
   SECTION:=libs
index c5a36c2199852286e3cb9c289eaebd0ac652efb3..8411284803bf2899505478648e6fe68cee02fc1c 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_qrencode
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libqrencode
   SECTION:=libs
index a4e6aef8fc79ff113a98f734e7da2b56e57c6119..b3ee4e08ed3c5b0652a3a6373150e4af71f2771e 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/spdlog
   SECTION:=libs
index 55d08d6b8494d8e5c5834e7c9fca4e252c245d1a..e386e1e03f0656f9fdb12c4046d9b93ba712e92e 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=spice
-PKG_VERSION:=0.14.3
-PKG_RELEASE:=3
+PKG_VERSION:=0.15.0
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.spice-space.org/download/releases/spice-server
-PKG_HASH:=551d4be4a07667cf0543f3c895beb6da8a93ef5a9829f2ae47817be5e616a114
+PKG_HASH:=b320cf8f4bd2852750acb703c15b72856027e5a8554f8217dfbb3cc09deba0f5
 
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 PKG_LICENSE:=LGPL-2.1-only
@@ -31,13 +31,12 @@ define Package/libspice-server
   CATEGORY:=Libraries
   TITLE:=SPICE server library
   URL:=https://www.spice-space.org/index.html
-  DEPENDS:=+glib2 +libjpeg +libopenssl +pixman +zlib
+  DEPENDS:=+glib2 +libjpeg +libopenssl +pixman +zlib +libstdcpp
 endef
 
 # audio codec
 MESON_ARGS += \
-       -Dcelt051=disabled \
-       -Dopus=disabled \
+       -Dopus=disabled
 
 MESON_ARGS += \
        -Dgstreamer=no \
@@ -49,11 +48,11 @@ MESON_ARGS += \
        -Dstatistics=false \
        -Dmanual=false \
        -Dinstrumentation=no \
+       -Dtests=false
 
 MESON_ARGS += \
        -Dspice-common:alignment-checks=false \
        -Dspice-common:extra-checks=false \
-       -Dspice-common:celt051=disabled \
        -Dspice-common:opus=disabled \
        -Dspice-common:instrumentation=no \
        -Dspice-common:smartcard=disabled \
diff --git a/libs/spice/patches/010-doxy.patch b/libs/spice/patches/010-doxy.patch
new file mode 100644 (file)
index 0000000..837cad4
--- /dev/null
@@ -0,0 +1,7 @@
+--- a/meson.build
++++ b/meson.build
+@@ -229,4 +229,3 @@ endif
+ configure_file(output : 'config.h',
+                configuration : spice_server_config_data)
+-run_target('doxy', command : './doxygen.sh')
diff --git a/libs/spice/patches/010-librt-libm.patch b/libs/spice/patches/010-librt-libm.patch
deleted file mode 100644 (file)
index faba963..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From 26bbb85c150f882c05399e4c574208b8b1242082 Mon Sep 17 00:00:00 2001
-From: James Le Cuirot <chewi@gentoo.org>
-Date: Tue, 7 Apr 2020 19:32:15 +0100
-Subject: [PATCH] build: Fix librt and libm dependencies in Meson
-
-They need to be requested without the lib prefix, otherwise a
-generated pkg-config file ends up with absolute paths instead of -l
-flags.
-
-Signed-off-by: James Le Cuirot <chewi@gentoo.org>
-Acked-by: Frediano Ziglio <fziglio@redhat.com>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/meson.build
-+++ b/meson.build
-@@ -103,7 +103,7 @@ foreach dep : ['libjpeg', 'zlib']
- endforeach
- if host_machine.system() != 'windows'
--  foreach dep : ['librt', 'libm']
-+  foreach dep : ['rt', 'm']
-     spice_server_deps += compiler.find_library(dep)
-   endforeach
- else
diff --git a/libs/spice/patches/020-no-code-generation.patch b/libs/spice/patches/020-no-code-generation.patch
deleted file mode 100644 (file)
index 89a7eb3..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From 713a3e09fbd5948823ac0c396249537329b878e4 Mon Sep 17 00:00:00 2001
-From: Frediano Ziglio <fziglio@redhat.com>
-Date: Thu, 12 Mar 2020 03:45:54 +0000
-Subject: [PATCH] build: Allow to build disabling code generation
-
-Reduce dependencies if used by agents which do not need
-marshallers/demarshallers code.
-
-Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
----
- common/meson.build | 28 +++++++++++++++-------------
- meson.build        | 24 +++++++++++++-----------
- meson_options.txt  |  2 +-
- tests/meson.build  | 34 ++++++++++++++++++----------------
- 4 files changed, 47 insertions(+), 41 deletions(-)
-
---- a/subprojects/spice-common/common/meson.build
-+++ b/subprojects/spice-common/common/meson.build
-@@ -67,19 +67,21 @@ spice_common_dep = declare_dependency(li
- # client_demarshallers
--codegen_cmd = [python, spice_codegen]
--codegen_args = ['--generate-demarshallers',
--                '--client',
--                '--include', 'common/messages.h',
--                '--generated-declaration-file', '@OUTPUT1@',
--                '@INPUT@', '@OUTPUT0@']
-+if spice_common_generate_client_code or spice_common_generate_server_code
-+  codegen_cmd = [python, spice_codegen]
-+  codegen_args = ['--generate-demarshallers',
-+                  '--client',
-+                  '--include', 'common/messages.h',
-+                  '--generated-declaration-file', '@OUTPUT1@',
-+                  '@INPUT@', '@OUTPUT0@']
--client_demarshallers = custom_target('client_demarshallers',
--                                     input : [spice_proto],
--                                     output : ['generated_client_demarshallers.c', 'generated_messages.h'],
--                                     install : false,
--                                     command : [codegen_cmd, codegen_args],
--                                     depend_files : [spice_codegen_files, 'messages.h'])
-+  client_demarshallers = custom_target('client_demarshallers',
-+                                       input : [spice_proto],
-+                                       output : ['generated_client_demarshallers.c', 'generated_messages.h'],
-+                                       install : false,
-+                                       command : [codegen_cmd, codegen_args],
-+                                       depend_files : [spice_codegen_files, 'messages.h'])
-+endif
- #
- # libspice-common-client
---- a/subprojects/spice-common/meson.build
-+++ b/subprojects/spice-common/meson.build
-@@ -131,17 +131,19 @@ foreach dep, version : optional_deps
- endforeach
- # Python
--py_module = import('python')
--python = py_module.find_installation()
-+if spice_common_generate_client_code or spice_common_generate_server_code
-+  py_module = import('python')
-+  python = py_module.find_installation()
--if get_option('python-checks')
--  foreach module : ['six', 'pyparsing']
--    message('Checking for python module @0@'.format(module))
--    cmd = run_command(python, '-m', module)
--    if cmd.returncode() != 0
--      error('Python module @0@ not found'.format(module))
--    endif
--  endforeach
-+  if get_option('python-checks')
-+    foreach module : ['six', 'pyparsing']
-+      message('Checking for python module @0@'.format(module))
-+      cmd = run_command(python, '-m', module)
-+      if cmd.returncode() != 0
-+        error('Python module @0@ not found'.format(module))
-+      endif
-+    endforeach
-+  endif
- endif
- # smartcard check
---- a/subprojects/spice-common/meson_options.txt
-+++ b/subprojects/spice-common/meson_options.txt
-@@ -45,7 +45,7 @@ option('manual',
- option('generate-code',
-     type : 'combo',
--    choices : ['all', 'server', 'client'],
-+    choices : ['all', 'server', 'client', 'none'],
-     description : 'Which code should be built')
- option('tests',
---- a/subprojects/spice-common/tests/meson.build
-+++ b/subprojects/spice-common/tests/meson.build
-@@ -15,26 +15,28 @@ endforeach
- #
- # test_marshallers
- #
--test_proto = files('test-marshallers.proto')
-+if spice_common_generate_client_code or spice_common_generate_server_code
-+  test_proto = files('test-marshallers.proto')
--test_marshallers_sources = ['test-marshallers.c', 'test-marshallers.h']
-+  test_marshallers_sources = ['test-marshallers.c', 'test-marshallers.h']
--targets = [
--    ['test_marshallers', test_proto, 'generated_test_marshallers.c', ['--generate-marshallers', '--server', '--include', 'test-marshallers.h', '@INPUT@', '@OUTPUT@']],
--    ['test_marshallers_h', test_proto, 'generated_test_marshallers.h', ['--generate-marshallers', '--server', '--include', 'test-marshallers.h', '-H', '@INPUT@', '@OUTPUT@']],
--    ['test_demarshallers', test_proto, 'generated_test_demarshallers.c', ['--generate-demarshallers', '--client', '--include', 'test-marshallers.h', '@INPUT@', '@OUTPUT@']],
--    ['test_enums_h', test_proto, 'generated_test_enums.h', ['-e', '@INPUT@', '@OUTPUT@']],
--]
-+  targets = [
-+      ['test_marshallers', test_proto, 'generated_test_marshallers.c', ['--generate-marshallers', '--server', '--include', 'test-marshallers.h', '@INPUT@', '@OUTPUT@']],
-+      ['test_marshallers_h', test_proto, 'generated_test_marshallers.h', ['--generate-marshallers', '--server', '--include', 'test-marshallers.h', '-H', '@INPUT@', '@OUTPUT@']],
-+      ['test_demarshallers', test_proto, 'generated_test_demarshallers.c', ['--generate-demarshallers', '--client', '--include', 'test-marshallers.h', '@INPUT@', '@OUTPUT@']],
-+      ['test_enums_h', test_proto, 'generated_test_enums.h', ['-e', '@INPUT@', '@OUTPUT@']],
-+  ]
--foreach t : targets
--  cmd = [python, spice_codegen] + t[3]
--  test_marshallers_sources += custom_target(t[0], input: t[1], output : t[2], command: cmd, depend_files : spice_codegen_files)
--endforeach
-+  foreach t : targets
-+    cmd = [python, spice_codegen] + t[3]
-+    test_marshallers_sources += custom_target(t[0], input: t[1], output : t[2], command: cmd, depend_files : spice_codegen_files)
-+  endforeach
--test('test_marshallers',
--     executable('test_marshallers', test_marshallers_sources,
--                dependencies : spice_common_dep,
--                install : false))
-+  test('test_marshallers',
-+       executable('test_marshallers', test_marshallers_sources,
-+                  dependencies : spice_common_dep,
-+                  install : false))
-+endif
- #
- # test_quic
index 4d8d5e37c55f7222d872ccfce12fb384e122080c..0e93d7dffe0310f04cbfa3baf75f5d5e1a7cccc9 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
 
 --- a/subprojects/spice-common/common/meson.build
 +++ b/subprojects/spice-common/common/meson.build
-@@ -187,4 +187,17 @@ if spice_common_generate_server_code
+@@ -189,4 +189,17 @@ if spice_common_generate_server_code
    spice_common_server_dep = declare_dependency(sources : spice_common_server_dep_sources,
                                                 link_with : spice_common_server_lib,
                                                 dependencies : spice_common_dep)
index 2c441806dae323f0000719c28ddaabb570b3ea2e..1506407994ddc5a832beaf5e25f4544b9e3c006f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/meson.build
 +++ b/meson.build
-@@ -192,8 +192,6 @@ add_project_arguments(compiler.get_suppo
+@@ -208,8 +208,6 @@ add_project_arguments(cxx_compiler.get_s
  # Subdirectories
  #
  subdir('server')
@@ -9,11 +9,3 @@
  
  #
  # write config.h
---- a/server/meson.build
-+++ b/server/meson.build
-@@ -186,5 +186,3 @@ spice_server_libs = both_libraries('spic
- spice_server_shared_lib = spice_server_libs.get_shared_lib()
- spice_server_static_lib = spice_server_libs.get_static_lib()
--
--subdir('tests')
index 3c2b69fbbe80a42f1b0b60787522a3704909a899..106f9d7b208bf0a2af9e91171babdf1f91a75a6f 100644 (file)
@@ -12,15 +12,17 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
 
 --- a/server/meson.build
 +++ b/server/meson.build
-@@ -36,11 +36,7 @@ spice_server_headers = [
+@@ -43,13 +43,7 @@ spice_server_headers = [
  
  install_headers(spice_server_headers, subdir : 'spice-server')
  
 -# generate enums
 -gnome = import('gnome')
--spice_server_enums = gnome.mkenums_simple('spice-server-enums',
--                                          sources : 'spice-server.h',
--                                          symbol_prefix : 'SPICE')
+-spice_server_enums = gnome.mkenums('spice-server-enums',
+-                                   sources : 'spice-server.h',
+-                                   symbol_prefix : 'SPICE',
+-                                   c_template: 'spice-server-enums.c.tmpl',
+-                                   h_template: 'spice-server-enums.h.tmpl')
 +spice_server_enums = ['spice-server-enums.c', 'spice-server-enums.h']
  
  spice_server_sources = [
index 11f21dc059607022812fd2abbab224594e18ae42..a196725e9405bf9b4e3c00635756b2a39c31abf3 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=taglib
-PKG_VERSION:=1.12-beta-2
+PKG_VERSION:=1.12
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/taglib/taglib/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=e273e9d97592cebd4e84e71313e91e9df0fc4a8e00c35daea62325e8bebb87d9
+PKG_HASH:=b5a56f78a8bd962aaaec992b25a031f541b949b6eb30aa232bd6d5fa17cf8fa8
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1-or-later
@@ -19,15 +19,14 @@ PKG_LICENSE_FILES:=COPYING.LGPL
 PKG_CPE_ID:=cpe:/a:taglib:taglib
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/taglib
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=taglib
   URL:=https://github.com/taglib/taglib
-  DEPENDS:=+libstdcpp
-  BUILDONLY:=1
+  DEPENDS:=+zlib +libstdcpp
 endef
 
 define Package/taglib/description
@@ -38,6 +37,7 @@ define Package/taglib/description
 endef
 
 CMAKE_OPTIONS += \
+       -DBUILD_SHARED_LIBS=ON
        -DBUILD_TESTS=OFF \
        -DBUILD_EXAMPLES=OFF \
        -DBUILD_BINDINGS=OFF \
@@ -56,4 +56,9 @@ define Build/InstallDev
        $(LN) ../../usr/bin/taglib-config $(2)/bin/taglib-config
 endef
 
+define Package/taglib/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtag.so.* $(1)/usr/lib/
+endef
+
 $(eval $(call BuildPackage,taglib))
index fbdfbb45ede6dde11c2aad51a415f92d87b42300..98f96aa07861667a4f41eed3592bd01b5a37bae6 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=COPYRIGHT
 PKG_CPE_ID:=cpe:/a:libtiff:libtiff
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/tiff/Default
   TITLE:=TIFF
index 6c1dbf23d552384ec173dbbe2d02ee4e41e94918..456701c4d608f3be864acd9b8ed40e4fe3951eed 100644 (file)
@@ -14,7 +14,7 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libuci2/Default
        TITLE:=AST-based C parser library for UCI
index ea692c66adba3c9e57ee663212acc693f8eba497..3260c70f82dd52c02fa98a4587db386caabaf77f 100644 (file)
@@ -17,7 +17,7 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_INSTALL:=1
 
index 1e313c4bc308378132c519c08a881d021f36148d..8caffc6a8d7b7a68ffe4b55ffe71538d9ff4ba11 100644 (file)
@@ -23,7 +23,7 @@ PKG_LICENSE_FILES:=COPYING
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/yajl
   SECTION:=libs
index fcefc6443b8137912a947f0ea204a74a69673c48..3803544bcf3a1c91bea3f92c298b52ef3260c34f 100644 (file)
@@ -25,7 +25,7 @@ PKG_CPE_ID:=cpe:/a:zeromq:libzmq
 CMAKE_BINARY_SUBDIR:=openwrt-build
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libzmq/default
   TITLE:=ZeroMQ - Message Queue engine
index 11c4d9c8ec8e2e683b7eb7dbfad2c1adaf0318dc..867a69490d71b3d660bf8a60c8b0bfdd7b698c7c 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=msmtp
-PKG_VERSION:=1.8.14
+PKG_VERSION:=1.8.15
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://marlam.de/msmtp/releases
-PKG_HASH:=d56f065d711486e9c234618515a02a48a48dab4051b34f3e108fbecb6fb773b4
+PKG_HASH:=2265dc639ebf2edf3069fffe0a3bd76749f8b58f4001d5cdeae19873949099ce
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-3.0-or-later
index c16a6d9c7e5598036aa191056549f105ed189282..ad4618ad2186a022e69e9341c745292f4cb77c64 100644 (file)
@@ -8,28 +8,28 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gerbera
-PKG_VERSION:=1.8.0
+PKG_VERSION:=1.8.2
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/gerbera/gerbera/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=02044abd1363c5f5604c5830e560b102ac456179afbf3be60e65847f47f4c599
+PKG_HASH:=b1e5591515f05a46de052ef4d95a2bb3387e96f565a5ce7abb6a77dbe581f09a
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=LICENSE.md
 
-PKG_BUILD_DEPENDS:=libmatroska pugixml spdlog taglib
+PKG_BUILD_DEPENDS:=libmatroska pugixml spdlog
 PKG_CONFIG_DEPENDS:=CONFIG_BUILD_PATENTED
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/gerbera
   SECTION:=multimedia
   CATEGORY:=Multimedia
-  DEPENDS:=+file +libnpupnp +libsqlite3 +libexif +libuuid +libfmt +libatomic +BUILD_PATENTED:libffmpeg $(ICONV_DEPENDS)
+  DEPENDS:=+file +libnpupnp +libsqlite3 +libexif +libuuid +libfmt +libatomic +taglib +BUILD_PATENTED:libffmpeg $(ICONV_DEPENDS)
   TITLE:=A free media server
   URL:=https://gerbera.io
   USERID:=gerbera:gerbera
index bace18d3bdea63b4907e538337ce86dced1312cc..5ee5e52c88cd148df1291c5137a91d1aaef76557 100644 (file)
@@ -282,7 +282,7 @@ $(eval $(call GstBuildPlugin,png,png support,video,,+libpng))
 $(eval $(call GstBuildPlugin,shout2,shout2 support,audio,,+libshout))
 $(eval $(call GstBuildPlugin,soup,soup input,audio tag,,+libsoup))
 $(eval $(call GstBuildPlugin,speex,speex support,audio tag,,+libspeex))
-#$(eval $(call GstBuildPlugin,taglib,taglib support,tag,,))
+$(eval $(call GstBuildPlugin,taglib,taglib support,tag,,+taglib))
 $(eval $(call GstBuildPlugin,video4linux2,video4linux2 support,video allocators,,+libv4l))
 $(eval $(call GstBuildPlugin,vpx,vpx support,tag video,,+libvpx))
 #$(eval $(call GstBuildPlugin,wavpack,Wav packer,audio riff tag,,))
index 7ad040fdd83c7469fef2ad843716ff478db1da97..5fc943c872bf54a15441c57f425bc476c4218770 100644 (file)
@@ -22,7 +22,7 @@ PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip=2 -xf $(DL_DIR)/$(PKG_SOURCE)
 PKG_BUILD_DEPENDS:=MJPG_STREAMER_V4L2:libv4l zmq protobuf-c/host
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/mjpg-streamer
   SECTION:=multimedia
index b202628bf29dfc155fcf7064e80b3707e63bdebc..74f4cb42dc960ef09455605e50c3c5befe70b6a0 100644 (file)
@@ -25,7 +25,7 @@ PKG_LICENSE:=Unlicense
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/v4l2rtspserver
        SECTION:=multimedia
index ad77e3d63a611e1eee601f206d48c7e0f5f78b63..06518ac11e8f4d4b60ce0582c87f6ce28dff4147 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock
-PKG_VERSION:=4.1.2
+PKG_VERSION:=4.1.3
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
index 76b92dc81ea8a41ab179a497a9bcdeaa786ae7b4..3c6ec5b57c3c0ccfc1412cbe2427da18f283e7e9 100644 (file)
@@ -148,7 +148,8 @@ Available commands:
 | adb_srcfile        | -, /tmp/adb_sources.json           | full path to the used adblock source file, which has a higher precedence than the archive file |
 | adb_dns            | -, auto-detected                   | 'dnsmasq', 'unbound', 'named', 'kresd' or 'raw'                                                |
 | adb_fetchutil      | -, auto-detected                   | 'uclient-fetch', 'wget', 'curl' or 'aria2c'                                                    |
-| adb_fetchparm      | -, auto-detected                   | config options for the selected download utility, e.g. to disable the certificate check        |
+| adb_fetchparm      | -, auto-detected                   | manually override the config options for the selected download utility                         |
+| adb_fetchinsecure  | 0, disabled                        | don't check SSL server certificates during download                                            |
 | adb_trigger        | -, not set                         | trigger network interface or 'not set' to use a time-based startup                             |
 | adb_triggerdelay   | 2                                  | additional trigger delay in seconds before adblock processing begins                           |
 | adb_debug          | 0, disabled                        | set to 1 to enable the debug output                                                            |
@@ -213,6 +214,15 @@ Adblock deposits the final blocklist 'adb_list.overall' in '/etc/kresd', no furt
 **Use restrictive jail modes:**  
 You can enable a restrictive 'adb_list.jail' to block access to all domains except those listed in the whitelist file. Usually this list will be generated as an additional list for guest or kidsafe configurations (for a separate dns server instance). If the jail directory points to your primary dns directory, adblock enables the restrictive jail mode automatically (jail mode only).
 
+**Manually override the download options:**  
+By default adblock uses the following pre-configured download options:  
+* aria2c: <code>--timeout=20 --allow-overwrite=true --auto-file-renaming=false --log-level=warn --dir=/ -o</code>
+* curl: <code>--connect-timeout 20 --silent --show-error --location -o</code>
+* uclient-fetch: <code>--timeout=20 -O</code>
+* wget: <code>--no-cache --no-cookies --max-redirect=0 --timeout=20 -O</code>
+
+To override the default set 'adb_fetchparm' manually to your needs.
+
 **Enable E-Mail notification via 'msmtp':**  
 To use the email notification you have to install & configure the package 'msmtp'.  
 Modify the file '/etc/msmtprc':
index 051aace3e37debd12abce47d06ad0361bc37d34d..8118d51672aec43e21c93898771a24d05ffc42fe 100755 (executable)
@@ -11,7 +11,7 @@
 export LC_ALL=C
 export PATH="/usr/sbin:/usr/bin:/sbin:/bin"
 set -o pipefail
-adb_ver="4.1.2"
+adb_ver="4.1.3"
 adb_enabled=0
 adb_debug=0
 adb_forcedns=0
@@ -459,7 +459,7 @@ f_dns()
 #
 f_fetch()
 {
-       local util utils cnt=0
+       local util utils insecure cnt=0
 
        if [ -z "${adb_fetchutil}" ]
        then
@@ -485,16 +485,32 @@ f_fetch()
        fi
        case "${adb_fetchutil}" in
                "aria2c")
-                       adb_fetchparm="${adb_fetchparm:-"--timeout=20 --allow-overwrite=true --auto-file-renaming=false --check-certificate=true --log-level=warn --dir=/ -o"}"
+                       if [ "${adb_fetchinsecure}" = "1" ]
+                       then
+                               insecure="--check-certificate=false"
+                       fi
+                       adb_fetchparm="${adb_fetchparm:-"${insecure} --timeout=20 --allow-overwrite=true --auto-file-renaming=false --log-level=warn --dir=/ -o"}"
                ;;
                "curl")
-                       adb_fetchparm="${adb_fetchparm:-"--connect-timeout 20 --silent --show-error --location -o"}"
+                       if [ "${adb_fetchinsecure}" = "1" ]
+                       then
+                               insecure="--insecure"
+                       fi
+                       adb_fetchparm="${adb_fetchparm:-"${insecure} --connect-timeout 20 --silent --show-error --location -o"}"
                ;;
                "uclient-fetch")
-                       adb_fetchparm="${adb_fetchparm:-"--timeout=20 -O"}"
+                       if [ "${adb_fetchinsecure}" = "1" ]
+                       then
+                               insecure="--no-check-certificate"
+                       fi
+                       adb_fetchparm="${adb_fetchparm:-"${insecure} --timeout=20 -O"}"
                ;;
                "wget")
-                       adb_fetchparm="${adb_fetchparm:-"--no-cache --no-cookies --max-redirect=0 --timeout=20 -O"}"
+                       if [ "${adb_fetchinsecure}" = "1" ]
+                       then
+                               insecure="--no-check-certificate"
+                       fi
+                       adb_fetchparm="${adb_fetchparm:-"${insecure} --no-cache --no-cookies --max-redirect=0 --timeout=20 -O"}"
                ;;
        esac
        if [ -n "${adb_fetchutil}" ] && [ -n "${adb_fetchparm}" ]
index 6f8463b4325022c9348b1eb0f68723d60672a835..971235b00bf8630f76771e9fa7fa86bf56d7e511 100644 (file)
                "descurl": "https://github.com/finnish-easylist-addition"
        },
        "reg_fr": {
-               "url": "https://easylist-downloads.adblockplus.org/liste_fr.txt",
+               "url": "https://easylist-downloads.adblockplus.org/liste_fr+easylist.txt",
                "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
-               "size": "S",
+               "size": "M",
                "focus": "reg_france",
                "descurl": "https://forums.lanik.us/viewforum.php?f=91"
        },
                "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}",
                "size": "VAR",
                "focus": "general",
-               "descurl": "https://www.shallalist.de",
+               "descurl": "https://www.shallalist.de"
        },
        "smarttv_tracking": {
                "url": "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt",
                "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}",
                "size": "VAR",
                "focus": "general",
-               "descurl": "https://dsi.ut-capitole.fr/blacklists/index_en.php",
+               "descurl": "https://dsi.ut-capitole.fr/blacklists/index_en.php"
        },
        "wally3k": {
                "url": "https://v.firebog.net/hosts/static/w3kbl.txt",
index 5eb6e37fd1f5877bb13ccf31986e48744cb7e92e..de128e3cfbf040171e0e4a4f5e4bbc75085395f1 100644 (file)
@@ -6,13 +6,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adguardhome
-PKG_VERSION:=0.106.2
+PKG_VERSION:=0.106.3
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/AdguardTeam/AdGuardHome
-PKG_MIRROR_HASH:=14bc92941fa72a7d65dd6e561dc153cbbe06d2b95de4b5266671b65d464da7e7
+PKG_MIRROR_HASH:=bdf5ad833df90969cd82b9fb6a91846338c738ed01671fc768d867b592102f7c
 
 PKG_LICENSE:=GPL-3.0-only
 PKG_LICENSE_FILES:=LICENSE.txt
index 4fa2ebb1ab99d9c9d4a8541e9884fe6905c26602..31334fb8e6299d4b9153e28c1449b97eccd04bc7 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE:=GPL-3.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/apfree-wifidog
   SUBMENU:=Captive Portals
index 29613b5943c634eb4cfbf0fa28643ee43ee9db3d..7121375e847ef242b03df0842b52727c20e1a0ef 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=banip
-PKG_VERSION:=0.7.8
+PKG_VERSION:=0.7.9
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
index df956383563f120c0e5f70474d5a957ebab372ee..5f7a37c721ef814ab3aa913b3c867755ea29735f 100644 (file)
@@ -146,6 +146,9 @@ Available commands:
 | ban_wan_inputchains_6   | list   | input_wan_rule                | list option to add IPv6 wan input chains                                              |
 | ban_wan_forwardchains_4 | list   | forwarding_wan_rule           | list option to add IPv4 wan forward chains                                            |
 | ban_wan_forwardchains_6 | list   | forwarding_wan_rule           | list option to add IPv6 wan forward chains                                            |
+| ban_fetchutil           | option | -, auto-detected              | 'uclient-fetch', 'wget', 'curl' or 'aria2c'                                           |
+| ban_fetchparm           | option | -, auto-detected              | manually override the config options for the selected download utility                |
+| ban_fetchinsecure       | option | 0, disabled                   | don't check SSL server certificates during download                                   |
 | ban_mailreceiver        | option | -                             | receiver address for banIP related notification E-Mails                               |
 | ban_mailsender          | option | no-reply@banIP                | sender address for banIP related notification E-Mails                                 |
 | ban_mailtopic           | option | banIP notification            | topic for banIP related notification E-Mails                                          |
@@ -229,6 +232,15 @@ Last but not least, both lists also accept domain names as input to allow IP fil
 **whitelist-only mode:**  
 banIP supports a "whitelist only" mode. This option allows to restrict the internet access from/to a small number of secure websites/IPs, and block access from/to the rest of the internet. All IPs and Domains which are _not_ listed in the whitelist are blocked. Please note: suspend/resume does not work in this mode.
   
+**Manually override the download options:**  
+By default banIP uses the following pre-configured download options:  
+* aria2c: <code>--timeout=20 --allow-overwrite=true --auto-file-renaming=false --log-level=warn --dir=/ -o</code>
+* curl: <code>--connect-timeout 20 --silent --show-error --location -o</code>
+* uclient-fetch: <code>--timeout=20 -O</code>
+* wget: <code>--no-cache --no-cookies --max-redirect=0 --timeout=20 -O</code>
+
+To override the default set 'ban_fetchparm' manually to your needs.
+  
 **generate an IPSet report:**  
 <pre><code>
 ~# /etc/init.d/banip report
index 833a3764cf8fbaf75e24f12352372d2c7b47d7a6..88201ba643770cdefd6fffab1e44a074df4ed1ad 100755 (executable)
@@ -12,7 +12,7 @@
 export LC_ALL=C
 export PATH="/usr/sbin:/usr/bin:/sbin:/bin"
 set -o pipefail
-ban_ver="0.7.8"
+ban_ver="0.7.9"
 ban_enabled="0"
 ban_mail_enabled="0"
 ban_proto4_enabled="0"
@@ -251,7 +251,7 @@ f_conf()
 #
 f_env()
 {
-       local util utils packages iface tmp cnt="0" cnt_max="10"
+       local util utils packages iface insecure tmp cnt="0" cnt_max="10"
 
        ban_starttime="$(date "+%s")"
        f_jsnup "running"
@@ -402,16 +402,32 @@ f_env()
        fi
        case "${ban_fetchutil}" in
                "aria2c")
-                       ban_fetchparm="${ban_fetchparm:-"--timeout=20 --allow-overwrite=true --auto-file-renaming=false --check-certificate=true --log-level=warn --dir=/ -o"}"
+                       if [ "${ban_fetchinsecure}" = "1" ]
+                       then
+                               insecure="--check-certificate=false"
+                       fi
+                       ban_fetchparm="${ban_fetchparm:-"${insecure} --timeout=20 --allow-overwrite=true --auto-file-renaming=false --log-level=warn --dir=/ -o"}"
                ;;
                "curl")
-                       ban_fetchparm="${ban_fetchparm:-"--connect-timeout 20 --silent --show-error --location -o"}"
+                       if [ "${ban_fetchinsecure}" = "1" ]
+                       then
+                               insecure="--insecure"
+                       fi
+                       ban_fetchparm="${ban_fetchparm:-"${insecure} --connect-timeout 20 --silent --show-error --location -o"}"
                ;;
                "uclient-fetch")
-                       ban_fetchparm="${ban_fetchparm:-"--timeout=20 -O"}"
+                       if [ "${ban_fetchinsecure}" = "1" ]
+                       then
+                               insecure="--no-check-certificate"
+                       fi
+                       ban_fetchparm="${ban_fetchparm:-"${insecure} --timeout=20 -O"}"
                ;;
                "wget")
-                       ban_fetchparm="${ban_fetchparm:-"--no-cache --no-cookies --max-redirect=0 --timeout=20 -O"}"
+                       if [ "${ban_fetchinsecure}" = "1" ]
+                       then
+                               insecure="--no-check-certificate"
+                       fi
+                       ban_fetchparm="${ban_fetchparm:-"${insecure} --no-cache --no-cookies --max-redirect=0 --timeout=20 -O"}"
                ;;
        esac
        if [ -n "${ban_fetchutil}" ] && [ -n "${ban_fetchparm}" ]
index b487da3db019effa436615d93684cdb062afc578..796ea6ffe3f368abb5888f720cdd5db27ff8c625 100644 (file)
@@ -9,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bind
-PKG_VERSION:=9.17.12
+PKG_VERSION:=9.17.13
 PKG_RELEASE:=$(AUTORELEASE)
 USERID:=bind=57:bind=57
 
@@ -22,7 +22,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:= \
        https://www.mirrorservice.org/sites/ftp.isc.org/isc/bind9/$(PKG_VERSION) \
        https://ftp.isc.org/isc/bind9/$(PKG_VERSION)
-PKG_HASH:=e77951eaa4aaa92b30e6f3ff6c915081a21c8cc70000e7f25a7a285eed0acbe7
+PKG_HASH:=bf485ac49715d43fa65c2c6e33271aab965bcd1b461fe2ac9f439754a210e6c7
 
 PKG_FIXUP:=autoreconf
 PKG_REMOVE_FILES:=aclocal.m4 libtool.m4
index 757a6c51aaafc6a64e80b44adb80e4d6295c3084..0fed5b1d1fc0ca70abdbbfbbcac4e7f54f9e1850 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bwping
-PKG_VERSION:=2.2
+PKG_VERSION:=2.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/bwping
-PKG_HASH:=7339541ec21fb9ae16d66ef0e45311696623133801aa86244d69bb276534ef4e
+PKG_HASH:=6417af412b68ebb77c45047fef8ced40db3b5dc646c9dd503a7855535a02f7d5
 
 PKG_MAINTAINER:=Oleg Derevenetz <oleg.derevenetz@gmail.com>
 PKG_LICENSE:=BSD-2-Clause
index 3b6ca337f336c0ed99c69279612194aa52feb8cf..9384a1b72be68c74cffc92dab50dfafbe80cca30 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE:=GPL-2.0-or-later
 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/cgi-io
   SECTION:=net
index 0e07870977143866a175fcb6dee97653f83df161..970a5c188422903bfe1e855000839a57dccd1608 100644 (file)
@@ -25,7 +25,7 @@ PKG_BUILD_DEPENDS:=ncurses
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/clamav/Default
   SECTION:=net
index 0dce292080ea63bb1daf126c846b3dffa2ae16a9..a16e7cccc4b97adebe6a743f91fbe1ea938ef69c 100644 (file)
@@ -20,7 +20,7 @@ PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
 PKG_LICENSE:=BSD-2-Clause
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/cshark
   SECTION:=net
index c92ffcb0d502891a615da6a451c3b47b04a97666..8f8790d20addfd9dd5c2316f113939893badff80 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=curl
-PKG_VERSION:=7.76.0
+PKG_VERSION:=7.77.0
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
@@ -16,7 +16,7 @@ PKG_SOURCE_URL:=https://dl.uxnr.de/mirror/curl/ \
        https://curl.mirror.anstey.ca/ \
        https://curl.askapache.com/download/ \
        https://curl.haxx.se/download/
-PKG_HASH:=6302e2d75c59cdc6b35ce3fbe716481dd4301841bbb5fd71854653652a014fc8
+PKG_HASH:=0f64582c54282f31c0de9f0a1a596b182776bd4df9a4c4a2a41bbeb54f62594b
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
index 2178cd8b13d9551cecbf9ed1365cd2362c9da7a7..a337393689fbea2ff5c97cb1141e4c893169c6a9 100644 (file)
@@ -18,7 +18,7 @@ PKG_LICENSE:=GPL-2.0-only
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/dawn
   SECTION:=net
index 62ca755a0885f6eac5eaabbb72370745aa2cfbf1..4de4db904d9d747e0953f7ad1b0304170d1db07c 100644 (file)
@@ -1,14 +1,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsdist
-PKG_VERSION:=1.5.1
-PKG_RELEASE:=1
+PKG_VERSION:=1.6.0
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
-PKG_HASH:=cae759729a87703f4d09b0ed4227cb224aaaa252fa92f2432fd7116f560afbf1
+PKG_HASH:=a7783a04d8d4ad2b0168ffaaf85ef95d5f557057b0462280684dd799d0cdd292
 
-PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
+PKG_MAINTAINER:=Peter van Dijk <peter.van.dijk@powerdns.com>
 PKG_LICENSE:=GPL-2.0-only
 PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:powerdns:dnsdist
@@ -17,7 +17,7 @@ PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
 PKG_ASLR_PIE:=0
-PKG_BUILD_DEPENDS:=protobuf/host
+PKG_BUILD_DEPENDS:=boost
 
 PKG_CONFIG_DEPENDS:= \
   CONFIG_DNSDIST_GNUTLS \
@@ -62,6 +62,30 @@ menu "Configuration"
                help
                        "Enabled DNS over TLS Support for dnsdist"
                default y
+
+       config DNSDIST_NET_SNMP
+               bool "Net-SNMP support"
+               help
+                       "Enable Net-SNMP support for dnsdist"
+               default y
+
+       config DNSDIST_RE2
+               bool "RE2 support"
+               help
+                       "Enable RE2 support for dnsdist"
+               default y
+
+       config DNSDIST_DNSTAP
+               bool "DNSTAP support"
+               help
+                       "Enable DNSTAP support for dnsdist"
+               default y
+
+       config DNSDIST_SODIUM
+               bool "Build with libsodium"
+               help
+                       "Build with libsodium - for encrypted console connections, and DNSCrypt"
+               default y
 endmenu
 endef
 
@@ -74,17 +98,16 @@ define Package/dnsdist
          +DNSDIST_DNS_OVER_HTTPS:libh2o-evloop \
          +DNSDIST_GNUTLS:libgnutls \
          +DNSDIST_OPENSSL:libopenssl \
-         +boost \
+         +DNSDIST_NET_SNMP:libnetsnmp \
+         +DNSDIST_RE2:re2 \
+         +DNSDIST_DNSTAP:libfstrm \
+         +DNSDIST_SODIUM:libsodium \
          +libatomic \
          +libcap \
          +libedit \
-         +libfstrm \
-         +libnetsnmp \
-         +libsodium \
+         +libstdcpp \
          +lmdb \
-         +lua \
-         +protobuf \
-         +re2 \
+         +liblua \
          +tinycdb
   URL:=https://dnsdist.org/
 endef
@@ -101,15 +124,24 @@ define Package/dnsdist/conffiles
 /etc/init.d/dnsdist
 endef
 
+# not everything groks --disable-nls
+DISABLE_NLS:=
+
+# OpenWRT's setting of CXX destroys dnsdist's -std=c++17
+# --with-re2 compensates for that because it compensates for a bug in re2.pc that also destroys it
+# so this addition is for the --without-re2 case
+#
+# none of this is pretty
+TARGET_CXX+=-std=c++17
+
 CONFIGURE_ARGS+= \
-       --enable-dnscrypt \
-       --enable-dnstap \
-       --with-libsodium \
+       --enable-option-checking=fatal \
        --with-pic \
-       --with-protobuf \
-       --with-re2 \
        --with-lua=lua \
-       --with-net-snmp \
+       $(if $(CONFIG_DNSDIST_SODIUM),--enable-dnscrypt --with-libsodium,--disable-dnscrypt --without-libsodium) \
+       $(if $(CONFIG_DNSDIST_DNSTAP),--enable-dnstap=yes,--enable-dnstap=no) \
+       $(if $(CONFIG_DNSDIST_RE2),--with,--without)-re2 \
+       $(if $(CONFIG_DNSDIST_NET_SNMP),--with,--without)-net-snmp \
        $(if $(CONFIG_DNSDIST_GNUTLS),--with,--without)-gnutls \
        $(if $(CONFIG_DNSDIST_OPENSSL),--with,--without)-libssl \
        $(if $(CONFIG_DNSDIST_DNS_OVER_TLS),--enable-dns-over-tls,) \
diff --git a/net/dnsdist/patches/010-time_t-check.patch b/net/dnsdist/patches/010-time_t-check.patch
new file mode 100644 (file)
index 0000000..e8760e4
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/configure
++++ b/configure
+@@ -5044,9 +5044,6 @@ cat >>confdefs.h <<_ACEOF
+ _ACEOF
+-if test $ac_size -lt 8; then :
+-  as_fn_error $? "size of time_t is $ac_size, which is not large enough to fix the y2k38 bug" "$LINENO" 5
+-fi
+  typename=`echo time_t | sed "s/[^a-zA-Z0-9_]/_/g"`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time_t is signed" >&5
index a62705d4d66b2c567ea12d0483a8819e1f1d6bde..19897f7a6514514dd59b61c60b0474befa81c4f9 100644 (file)
@@ -20,7 +20,7 @@ PKG_MAINTAINER:=Mister Benjamin <144dbspl@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/etherwake-nfqueue
   SECTION:=net
index 990c4958825c38c5783d6484789b5644db89aad0..73d0a07cf4c475ff0f22c672f1aa386d6273a323 100644 (file)
@@ -1,20 +1,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=https-dns-proxy
-PKG_VERSION:=2021-01-17
-PKG_RELEASE:=5
+PKG_VERSION:=2021-06-03
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy
-PKG_SOURCE_DATE:=2021-01-17
-PKG_SOURCE_VERSION:=37511cc08712d7548978a4f6f1cc457b7594fb96
-PKG_MIRROR_HASH:=4e6a7dcb69e350d1df9f17570439b589e031e249da7f91f2ec7600a955e0aaa3
+PKG_SOURCE_DATE:=2021-06-03
+PKG_SOURCE_VERSION:=5651b984f770a8bcecb14aeffc224703f8f82586
+PKG_MIRROR_HASH:=b65161936269aa3117debad0fcfce157024726b78d7e7da77c226f7aa8da5b4d
 PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += -DCLANG_TIDY_EXE=
 
index e83fafb49f434bcfd183822d84bbe7e62c943e4d..8b868076364c86139165c88a3456e1eb259f3056 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh /etc/rc.common
 # Copyright 2019-2020 Stan Grishin (stangri@melmac.net)
-# shellcheck disable=SC2039
+# shellcheck disable=SC2039,SC3043,SC3060
 PKG_VERSION='dev-test'
 
 # shellcheck disable=SC2034
@@ -171,7 +171,7 @@ dnsmasq_add_doh_server() {
 dnsmasq_create_server_backup() {
        local cfg="$1"
        local i
-       uci -q get "dhcp.${cfg}" >/dev/null || return 0
+       uci -q get "dhcp.${cfg}" >/dev/null || return 1
        if ! uci -q get "dhcp.${cfg}.doh_backup_noresolv" >/dev/null; then
                if [ -z "$(uci -q get "dhcp.${cfg}.noresolv")" ]; then
                        uci -q set "dhcp.${cfg}.noresolv=1"
@@ -182,13 +182,17 @@ dnsmasq_create_server_backup() {
                fi
        fi
        if ! uci -q get "dhcp.${cfg}.doh_backup_server" >/dev/null; then
+               if [ -z "$(uci -q get "dhcp.${cfg}.server")" ]; then
+                       uci -q add_list "dhcp.${cfg}.doh_backup_server="
+               fi
                for i in $(uci -q get "dhcp.${cfg}.server"); do
                        uci -q add_list "dhcp.${cfg}.doh_backup_server=$i"
-                       if [ "$i" = "${i//127.0.0.1}" ] && [ "$i" = "$(echo "$i" | tr -d /)" ]; then
+                       if [ "$i" = "$(echo "$i" | tr -d /\#)" ]; then
                                uci -q del_list "dhcp.${cfg}.server=$i"
                        fi
                done
        fi
+       return 0
 }
 
 dnsmasq_restore_server_backup() {
@@ -221,7 +225,8 @@ dhcp_backup() {
                                config_foreach dnsmasq_create_server_backup 'dnsmasq'
                        elif [ -n "$dnsmasqConfig" ]; then
                                for i in $dnsmasqConfig; do
-                                       dnsmasq_create_server_backup "@dnsmasq[${i}]"
+                                       dnsmasq_create_server_backup "@dnsmasq[${i}]" || \
+                                               dnsmasq_create_server_backup "$i"
                                done
                        fi
                        ;;
diff --git a/net/https-dns-proxy/patches/010-ninja.patch b/net/https-dns-proxy/patches/010-ninja.patch
deleted file mode 100644 (file)
index 2f29bdb..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -5,7 +5,6 @@ set(CMAKE_BUILD_TYPE "Debug")
- #set(CMAKE_BUILD_TYPE "Release")
- #set(CMAKE_C_FLAGS "-Wall -Wextra --pedantic -Wno-strict-aliasing")
--set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(notdir $<)\"'")
- set(CMAKE_C_FLAGS_DEBUG "-g")
- set(CMAKE_C_FLAGS_RELEASE "-O2")
---- a/src/logging.h
-+++ b/src/logging.h
-@@ -34,6 +34,20 @@ enum _LogSeverity {
-   LOG_FATAL = 4,
- };
-+#define STRIPPATH(s)\
-+    (sizeof(s) > 2 && (s)[sizeof(s)-2] == '/' ? (s) + sizeof(s) - 1 : \
-+    sizeof(s) > 3 && (s)[sizeof(s)-3] == '/' ? (s) + sizeof(s) - 2 : \
-+    sizeof(s) > 4 && (s)[sizeof(s)-4] == '/' ? (s) + sizeof(s) - 3 : \
-+    sizeof(s) > 5 && (s)[sizeof(s)-5] == '/' ? (s) + sizeof(s) - 4 : \
-+    sizeof(s) > 6 && (s)[sizeof(s)-6] == '/' ? (s) + sizeof(s) - 5 : \
-+    sizeof(s) > 7 && (s)[sizeof(s)-7] == '/' ? (s) + sizeof(s) - 6 : \
-+    sizeof(s) > 8 && (s)[sizeof(s)-8] == '/' ? (s) + sizeof(s) - 7 : \
-+    sizeof(s) > 9 && (s)[sizeof(s)-9] == '/' ? (s) + sizeof(s) - 8 : \
-+    sizeof(s) > 10 && (s)[sizeof(s)-10] == '/' ? (s) + sizeof(s) - 9 : \
-+    sizeof(s) > 11 && (s)[sizeof(s)-11] == '/' ? (s) + sizeof(s) - 10 : (s))
-+
-+#define __FILENAME__ STRIPPATH(__FILE__)
-+
- // Debug, Info, Warning, Error logging.
- #define DLOG(...) _log(__FILENAME__, __LINE__, LOG_DEBUG, __VA_ARGS__)
- #define ILOG(...) _log(__FILENAME__, __LINE__, LOG_INFO, __VA_ARGS__)
index fd45d7fbbc8972b6d33fc54798dc401b004105a3..5f7241d550b10e996c11899bb19b1af8444af0c1 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=i2pd
-PKG_VERSION:=2.36.0
+PKG_VERSION:=2.38.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/PurpleI2P/i2pd/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=17b7309cbee41b991cf9480334495c5a049f709beb1b31fbfcb47de19c8462a3
+PKG_HASH:=8452f5323795a1846d554096c08fffe5ac35897867b93a5079605df8f80a3089
 
 PKG_MAINTAINER:=David Yang <mmyangfl@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
@@ -55,7 +55,6 @@ define Build/Prepare
 endef
 
 TARGET_LDFLAGS+=-latomic
-MAKE_FLAGS+=USE_AESNI=no USE_AVX=no
 
 define Package/i2pd/install
        $(INSTALL_DIR) $(1)/usr/sbin
index c0d9c44d55809b721412dc0d36d552db0559efa6..ec388f65e35137a1165269beb086a0f18c5d8c9d 100644 (file)
@@ -15,7 +15,7 @@
  
  ## Where to write pidfile (default: i2pd.pid, not used in Windows)
  # pidfile = /run/i2pd.pid
-@@ -25,12 +25,12 @@
+@@ -26,12 +26,12 @@
  ##  * stdout - print log entries to stdout
  ##  * file - log entries to a file
  ##  * syslog - use syslog, see man 3 syslog
  ## Write full CLF-formatted date and time to log (default: write only time)
  # logclftime = true
  
-@@ -61,7 +61,7 @@ ipv6 = false
- # ifname6 = 
- ## Enable NTCP transport (default = true)
--# ntcp = true
-+ntcp = false
- ## If you run i2pd behind a proxy server, you can only use NTCP transport with ntcpproxy option 
- ## Should be http://address:port or socks://address:port
- # ntcpproxy = http://127.0.0.1:8118
-@@ -81,7 +81,7 @@ ipv6 = false
+@@ -84,7 +84,7 @@ ipv6 = false
  
  ## Router will not accept transit tunnels, disabling transit traffic completely
  ## (default = false)
@@ -47,8 +38,8 @@
 +notransit = true
  
  ## Router will be floodfill
- # floodfill = true
-@@ -91,8 +91,10 @@ ipv6 = false
+ ## Note: that mode uses much more network connections and CPU!
+@@ -95,8 +95,10 @@ ipv6 = false
  ## Uncomment and set to 'false' to disable Web Console
  # enabled = true
  ## Address and port service will listen on
@@ -59,8 +50,8 @@
 +# strictheaders = false
  ## Path to web console, default "/"
  # webroot = /
- ## Uncomment following lines to enable Web Console authentication 
-@@ -104,7 +106,7 @@ port = 7070
+ ## Uncomment following lines to enable Web Console authentication
+@@ -108,7 +110,7 @@ port = 7070
  ## Uncomment and set to 'false' to disable HTTP Proxy
  # enabled = true
  ## Address and port service will listen on
@@ -69,7 +60,7 @@
  port = 4444
  ## Optional keys file for proxy local destination
  # keys = http-proxy-keys.dat
-@@ -118,7 +120,7 @@ port = 4444
+@@ -122,7 +124,7 @@ port = 4444
  ## Uncomment and set to 'false' to disable SOCKS Proxy
  # enabled = true
  ## Address and port service will listen on
  port = 4447
  ## Optional keys file for proxy local destination
  # keys = socks-proxy-keys.dat
-@@ -228,7 +230,8 @@ verify = true
+@@ -237,9 +239,9 @@ verify = true
  
  [persist]
  ## Save peer profiles on disk (default: true)
 -# profiles = true
 +profiles = false
+ ## Save full addresses on disk (default: true)
+-# addressbook = true
 +addressbook = false
  
  [cpuext]
index 6f90bc9221582b56d683b250f614cdb3e9c3df66..1d0d891ef0b578093e101d3951838c2bb49ccb9a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iperf
-PKG_VERSION:=3.9
+PKG_VERSION:=3.10.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.es.net/pub/iperf
-PKG_HASH:=24b63a26382325f759f11d421779a937b63ca1bc17c44587d2fcfedab60ac038
+PKG_HASH:=03bc9760cc54a245191d46bfc8edaf8a4750f0e87abca6764486972044d6715a
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_LICENSE:=BSD-3-Clause
diff --git a/net/irtt/Makefile b/net/irtt/Makefile
new file mode 100644 (file)
index 0000000..102391f
--- /dev/null
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2021 Marcel Vital
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=irtt
+PKG_VERSION:=0.9.1
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/heistp/irtt.git
+PKG_SOURCE_VERSION:=v$(PKG_VERSION)
+PKG_MIRROR_HASH:=5ec1c97542f826431977168c024d547d7eb45c5c17e1d01d79736547a5a43199
+
+PKG_LICENSE:=GPL-2.0-only
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Marcel Vital <ralmina@tuta.io>
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/irtt-$(PKG_VERSION)
+PKG_BUILD_DEPENDS:=golang/host
+PKG_BUILD_PARALLEL:=1
+PKG_USE_MIPS16:=0
+
+GO_PKG:=github.com/heistp/irtt
+
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/golang/golang-package.mk
+
+define Package/irtt
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=irtt
+  URL:=https://github.com/heistp/irtt
+  DEPENDS:=$(GO_ARCH_DEPENDS)
+endef
+
+define Package/irtt/description
+  Isochronous round trip time tool. 
+  Useful for measuring one-way send or recv delay between hosts,
+  among other things.
+endef
+
+define Package/irtt/install
+       $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
+
+       $(INSTALL_DIR) $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/irtt $(1)/usr/bin/
+endef
+
+$(eval $(call GoBinPackage,irtt))
+$(eval $(call BuildPackage,irtt))
diff --git a/net/irtt/test.sh b/net/irtt/test.sh
new file mode 100644 (file)
index 0000000..c4a5feb
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/bin/"${1}" version 2>/dev/null | grep -F "${2}"
index b36783831b2a7fed011a24a85d780ecb7acdb41d..240fa02683ae10844618ab47b6c71520ff041e6f 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kea
-PKG_VERSION:=1.8.0
-PKG_RELEASE:=2
+PKG_VERSION:=1.8.2
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://ftp.isc.org/isc/kea/$(PKG_VERSION)
-PKG_HASH:=3d91106fba3698194fb80da4149af709c7b2e89881311522816e561fca0ec0ea
+PKG_HASH:=486ca7abedb9d6fdf8e4344ad8688d1171f2ef0f5506d118988aadeae80a1d39
 
 PKG_MAINTAINER:=BangLang Huang<banglang.huang@foxmail.com>, Rosy Song<rosysong@rosinson.com>
 PKG_LICENSE:=MPL-2.0
diff --git a/net/kea/patches/020-shared_ptr.patch b/net/kea/patches/020-shared_ptr.patch
new file mode 100644 (file)
index 0000000..0231d27
--- /dev/null
@@ -0,0 +1,24 @@
+From d505f7a7d6fac1c00a4467dfcf1e84f2db508bc6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 26 Feb 2021 23:14:20 -0800
+Subject: [PATCH] ax_cpp11.m4: Include <memory> header
+
+This is needed for std::shared_ptr
+GCC-11 throws errors if header is not included
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4macros/ax_cpp11.m4 | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/m4macros/ax_cpp11.m4
++++ b/m4macros/ax_cpp11.m4
+@@ -182,6 +182,7 @@ for retry in "none" "--std=c++11" "--std
+       AC_COMPILE_IFELSE(
+               [AC_LANG_PROGRAM(
+                       [#include <thread>
++                       #include <memory>
+                        std::shared_ptr<std::thread> th;],
+                       [th.reset(new std::thread([[]]() { return; }));
+                        th->join();])],
index 9a8b4f9411e18feb1702bf10345ea004dded7ccc..80e802b17b4d0fad1b5559c4d623730089300e39 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE_FILES:=LICENSE
 PKG_BUILD_DIR:=$(BUILD_DIR)/lora_gateway-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libloragw
   SECTION:=libs
index e933532cd592a1c2d37fe6f988e2181ac62101a7..45f3104839b459f6246a08a7c21a34c89756a2f8 100644 (file)
@@ -13,7 +13,7 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/mbusd
        SECTION:=net
index 54d5f287e49483ff8aa768ee2475febb59d9fd51..0ea7407cab1e0c15279ca7e45168e23774d16026 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=memcached
-PKG_VERSION:=1.6.8
-PKG_RELEASE:=1
+PKG_VERSION:=1.6.9
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://memcached.org/files
-PKG_HASH:=e23b3a11f6ff52ac04ae5ea2e287052ce58fd1eadd394622eb65c3598fcd7939
+PKG_HASH:=d5a62ce377314dbffdb37c4467e7763e3abae376a16171e613cbe69956f092d1
 
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=BSD-3-Clause
index ebc87e5fe592387f1778ef899d37189200fda356..c5aaebe7188edef14de3ceb187af5f3922093ad2 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=LICENSE
 PKG_CPE_ID:=cpe:/a:miniupnp_project:miniupnp
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/miniupnpc/Default
   TITLE:=Lightweight UPnP
index 5c02f13e52dc23ddb256d74a38b93130c2ab7a26..c6152648ec399d02740c8795b55c2b67bfe6fa19 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=miniupnpd
 PKG_VERSION:=2.2.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=https://miniupnp.tuxfamily.org/files
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
index 7c408683c83326adca8b4ab14347c6bd01235116..bd7c3ec4007dce6b916f7895822964e67458b3a9 100644 (file)
@@ -12,7 +12,6 @@ config upnpd config
        option port             5000
        option upnp_lease_file  /var/run/miniupnpd.leases
        option igdv1            1
-       option ext_ip_reserved_ignore '1'
 
 config perm_rule
        option action           allow
index fbff3d1ed238be7d779954393e9094da0bb5d068..5ec145e713aa785cb411a81ed85c4b8f33a46279 100644 (file)
@@ -24,7 +24,7 @@ Date:   Sun Jul 5 10:42:52 2020 +0800
        size_t i;
  
 +      if(GETFLAG(EXTIPRESERVEDIGNOREMASK)) {
-+              syslog(LOG_NOTICE, "private/reserved address checking is ignore");
++              syslog(LOG_NOTICE, "private/reserved address checking is ignored");
 +              return 0;
 +      }
 +
index f53a82e6bde895f02a1b2ec9d93ca8d4b75ae4b7..19f94b01f1f2cc77b4705b11eafd0321f29fecfb 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=modemmanager
-PKG_VERSION:=1.16.2
+PKG_VERSION:=1.16.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=ModemManager-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.freedesktop.org/software/ModemManager
-PKG_HASH:=efa9a963499e0885f3f163096d433334143c4937545134ecd682e0157fa591e3
+PKG_HASH:=2a90b6260f66d3135609d62667ada73416694d717e7fd9b73223e3703a499617
 PKG_BUILD_DIR:=$(BUILD_DIR)/ModemManager-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
index dccf1dacaccee11fe40b996f581287e4f98eac76..58d0a9ef7b17c162431190e6ff2d64355bd2b680 100644 (file)
@@ -9,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mosquitto
-PKG_VERSION:=2.0.10
+PKG_VERSION:=2.0.11
 PKG_RELEASE:=1
 PKG_LICENSE:=EPL-2.0
 PKG_LICENSE_FILES:=LICENSE.txt
@@ -17,7 +17,7 @@ PKG_CPE_ID:=cpe:/a:eclipse:mosquitto
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://mosquitto.org/files/source/
-PKG_HASH:=0188f7b21b91d6d80e992b8d6116ba851468b3bd154030e8a003ed28fb6f4a44
+PKG_HASH:=7b36a7198bce85cf31b132f5c6ee36dcf5dadf86fb768501eb1e11ce95d4f78a
 
 include $(INCLUDE_DIR)/package.mk
 
index ac99b17ba0bb7e122650c8cea956ef4a1e5ee157..18a447a60bdac027e42ddf806df8333e2072a647 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=netifyd
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_MAINTAINER:=Darryl Sokoloski <darryl@egloo.ca>
 PKG_LICENSE:=GPL-3.0-or-later
 
index 4d629f7a2639b19ad396f55f2b199b707e0df81d..3bc0282353f93b65fcd934ea1819c246d65a4edf 100644 (file)
@@ -19,30 +19,30 @@ function append_ifopts() {
        local filter_expr=
 
        for a in $1; do
-           case $a in
-           -F|--device-filter)
-               filter=1
-               procd_append_param command $a
-               ;;
-           -*)
-               if [ $filter -gt 0 ]; then
-                   procd_append_param command "${filter_expr#\ }"
-                   filter=0; filter_expr=
-               fi
-               procd_append_param command $a
-               ;;
-           *)
-               if [ $filter -gt 0 ]; then
-                   a=${a#\"}; a=${a%\"}; a=${a#\'}; a=${a%\'}
-                   filter_expr="$filter_expr $a"
-               else
-                   procd_append_param command $a
-               fi
-           esac
+               case $a in
+               -F|--device-filter)
+                       filter=1
+                       procd_append_param command $a
+                       ;;
+               -*)
+                       if [ $filter -gt 0 ]; then
+                               procd_append_param command "${filter_expr#\ }"
+                               filter=0; filter_expr=
+                       fi
+                       procd_append_param command $a
+                       ;;
+               *)
+                       if [ $filter -gt 0 ]; then
+                               a=${a#\"}; a=${a%\"}; a=${a#\'}; a=${a%\'}
+                               filter_expr="$filter_expr $a"
+                       else
+                               procd_append_param command $a
+                       fi
+               esac
        done
 
        if [ $filter -gt 0 ]; then
-           procd_append_param command "${filter_expr#\ }"
+               procd_append_param command "${filter_expr#\ }"
        fi
 }
 
@@ -55,7 +55,7 @@ function append_external_if() {
 }
 
 start_netifyd() {
-       local autoconfig enabled instance
+       local autoconfig enabled instance options
 
        instance="$1"
        config_get_bool enabled "$instance" enabled 0
@@ -75,8 +75,9 @@ start_netifyd() {
        config_get_bool autoconfig "$instance" autoconfig 1
 
        if [ "$autoconfig" -gt 0 ]; then
-           NETIFYD_AUTODETECT=yes
-           procd_append_param command "$(auto_detect_options)"
+               NETIFYD_AUTODETECT=yes
+               options="$(auto_detect_options)"
+               [ ! -z "$options" ] && procd_append_param command $options
        fi
 
        config_list_foreach "$instance" internal_if append_internal_if
index 3f72d7385959aae7b89029a7bf530173c451d7ae..3f234d4ce34d16d05ae985de1ec8d6d44f8ea331 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/netopeer2-server
   SECTION:=utils
index 980b5ddce048edcfdef938b841028bad9fa4307f..b1d9c5e6fa626b367a33d19adebf1fe30a86fdc1 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nginx-util
-PKG_VERSION:=1.5
+PKG_VERSION:=1.6
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Peter Stadler <peter.stadler@student.uibk.ac.at>
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS+= -DUBUS=y
 CMAKE_OPTIONS+= -DVERSION=$(PKG_VERSION)
index 4f12925db8eb6234b29ef4460a22f462fdf2703b..5a64b000a847c1d217bd04bf22630b8bc463bb1f 100644 (file)
@@ -166,9 +166,14 @@ static constexpr auto _escape = _Line{
         std::string ret{};
         for (char c : strptr) {
             switch (c) {
-                case '^': ret += '\\'; [[fallthrough]];
-                case '_': [[fallthrough]];
-                case '-': ret += c; break;
+                case '^':
+                    ret += '\\';
+                    ret += c;
+                    break;
+                case '_':
+                case '-':
+                    ret += c;
+                    break;
                 default:
                     if ((isalpha(c) != 0) || (isdigit(c) != 0)) {
                         ret += c;
index 7105e6c15e0ce44add2d200753735ed7695259d7..944ed56fceb845a06230d8b0caeda7e92a3524ed 100644 (file)
@@ -450,6 +450,7 @@ ifeq ($(CONFIG_NGINX_RTMP_MODULE),y)
   define  Prepare/nginx-rtmp
        $(eval $(Download/nginx-rtmp))
        xzcat $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
+       $(call PatchDir,$(PKG_BUILD_DIR)/nginx-rtmp,./patches-rtmp-nginx)
   endef
 endif
 
diff --git a/net/nginx/patches-rtmp-nginx/100-bigedian.patch b/net/nginx/patches-rtmp-nginx/100-bigedian.patch
new file mode 100644 (file)
index 0000000..e070ec5
--- /dev/null
@@ -0,0 +1,1667 @@
+From 5b06d1cad5f6711667038169b7ed759d749334da Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Bub=C3=ADk?= <jan.bubik@technodat.cz>
+Date: Wed, 13 May 2020 19:57:47 +0200
+Subject: [PATCH 1/3] arut's e0e278bc7fedd6f7465648d1d20df1a8422d60bf [removed
+ endian-dependent code]
+
+---
+ ngx_rtmp.c            |   4 ++
+ ngx_rtmp.h            |  12 +++--
+ ngx_rtmp_amf.c        |   6 +--
+ ngx_rtmp_flv_module.c |   2 +-
+ ngx_rtmp_handler.c    | 108 +++++++++++++++++++++---------------------
+ 5 files changed, 68 insertions(+), 64 deletions(-)
+
+diff --git a/nginx-rtmp/ngx_rtmp.c b/nginx-rtmp/ngx_rtmp.c
+index ad671d475..011f3ad50 100644
+--- a/ngx_rtmp.c
++++ b/ngx_rtmp.c
+@@ -828,6 +828,7 @@ ngx_rtmp_fire_event(ngx_rtmp_session_t *s, ngx_uint_t evt,
+ void *
+ ngx_rtmp_rmemcpy(void *dst, const void* src, size_t n)
+ {
++#if (NGX_HAVE_LITTLE_ENDIAN)
+     u_char     *d, *s;
+     d = dst;
+@@ -836,6 +837,9 @@ ngx_rtmp_rmemcpy(void *dst, const void* src, size_t n)
+     while(s >= (u_char*)src) {
+         *d++ = *s--;
+     }
++#else
++    dst = ngx_cpymem(dst, src, n);
++#endif
+     return dst;
+ }
+diff --git a/nginx-rtmp/ngx_rtmp.h b/nginx-rtmp/ngx_rtmp.h
+index f3a3d6f18..ddc30ea1c 100644
+--- a/ngx_rtmp.h
++++ b/ngx_rtmp.h
+@@ -427,22 +427,26 @@ void * ngx_rtmp_rmemcpy(void *dst, const void* src, size_t n);
+ static ngx_inline uint16_t
+ ngx_rtmp_r16(uint16_t n)
+ {
+-    return (n << 8) | (n >> 8);
++    return ntohs(n);
+ }
+ static ngx_inline uint32_t
+ ngx_rtmp_r32(uint32_t n)
+ {
+-    return (n << 24) | ((n << 8) & 0xff0000) | ((n >> 8) & 0xff00) | (n >> 24);
++    return ntohl(n);
+ }
+ static ngx_inline uint64_t
+ ngx_rtmp_r64(uint64_t n)
+ {
+-    return (uint64_t) ngx_rtmp_r32((uint32_t) n) << 32 |
+-                      ngx_rtmp_r32((uint32_t) (n >> 32));
++#if (NGX_HAVE_LITTLE_ENDIAN)
++    return (uint64_t) ntohl((uint32_t) n) << 32 |
++                      ntohl((uint32_t) (n >> 32));
++#else
++    return n;
++#endif
+ }
+diff --git a/nginx-rtmp/ngx_rtmp_amf.c b/nginx-rtmp/ngx_rtmp_amf.c
+index b904651dc..7c44519da 100644
+--- a/ngx_rtmp_amf.c
++++ b/ngx_rtmp_amf.c
+@@ -14,15 +14,11 @@
+ static ngx_inline void*
+ ngx_rtmp_amf_reverse_copy(void *dst, void* src, size_t len)
+ {
+-    size_t  k;
+-
+     if (dst == NULL || src == NULL) {
+         return NULL;
+     }
+-    for(k = 0; k < len; ++k) {
+-        ((u_char*)dst)[k] = ((u_char*)src)[len - 1 - k];
+-    }
++    ngx_rtmp_rmemcpy(dst, src, len);
+     return dst;
+ }
+diff --git a/nginx-rtmp/ngx_rtmp_flv_module.c b/nginx-rtmp/ngx_rtmp_flv_module.c
+index 4776e5419..76ce64752 100644
+--- a/ngx_rtmp_flv_module.c
++++ b/ngx_rtmp_flv_module.c
+@@ -445,7 +445,7 @@ ngx_rtmp_flv_send(ngx_rtmp_session_t *s, ngx_file_t *f, ngx_uint_t *ts)
+     ngx_rtmp_rmemcpy(&size, ngx_rtmp_flv_header + 1, 3);
+     ngx_rtmp_rmemcpy(&h.timestamp, ngx_rtmp_flv_header + 4, 3);
+-    ((u_char *) &h.timestamp)[3] = ngx_rtmp_flv_header[7];
++    h.timestamp |= ((uint32_t) ngx_rtmp_flv_header[7] << 24);
+     ctx->offset += (sizeof(ngx_rtmp_flv_header) + size + 4);
+diff --git a/nginx-rtmp/ngx_rtmp_handler.c b/nginx-rtmp/ngx_rtmp_handler.c
+index c6b43c8bc..5611ec88c 100644
+--- a/ngx_rtmp_handler.c
++++ b/ngx_rtmp_handler.c
+@@ -200,7 +200,7 @@ ngx_rtmp_recv(ngx_event_t *rev)
+     ngx_rtmp_stream_t          *st, *st0;
+     ngx_chain_t                *in, *head;
+     ngx_buf_t                  *b;
+-    u_char                     *p, *pp, *old_pos;
++    u_char                     *p, *old_pos;
+     size_t                      size, fsize, old_size;
+     uint8_t                     fmt, ext;
+     uint32_t                    csid, timestamp;
+@@ -308,14 +308,14 @@ ngx_rtmp_recv(ngx_event_t *rev)
+                 if (b->last - p < 1)
+                     continue;
+                 csid = 64;
+-                csid += *(uint8_t*)p++;
++                csid += *p++;
+             } else if (csid == 1) {
+                 if (b->last - p < 2)
+                     continue;
+                 csid = 64;
+-                csid += *(uint8_t*)p++;
+-                csid += (uint32_t)256 * (*(uint8_t*)p++);
++                csid += *p++;
++                csid += ((uint32_t) *p++ << 8);
+             }
+             ngx_log_debug2(NGX_LOG_DEBUG_RTMP, c->log, 0,
+@@ -355,40 +355,37 @@ ngx_rtmp_recv(ngx_event_t *rev)
+             if (fmt <= 2 ) {
+                 if (b->last - p < 3)
+                     continue;
+-                /* timestamp:
+-                 *  big-endian 3b -> little-endian 4b */
+-                pp = (u_char*)&timestamp;
+-                pp[2] = *p++;
+-                pp[1] = *p++;
+-                pp[0] = *p++;
+-                pp[3] = 0;
++
++                /* timestamp: big-endian 3 bytes */
++
++                timestamp = ((uint32_t) *p++ << 16);
++                timestamp |= ((uint32_t) *p++ << 8);
++                timestamp |= *p++;
+                 ext = (timestamp == 0x00ffffff);
+                 if (fmt <= 1) {
+                     if (b->last - p < 4)
+                         continue;
+-                    /* size:
+-                     *  big-endian 3b -> little-endian 4b
+-                     * type:
+-                     *  1b -> 1b*/
+-                    pp = (u_char*)&h->mlen;
+-                    pp[2] = *p++;
+-                    pp[1] = *p++;
+-                    pp[0] = *p++;
+-                    pp[3] = 0;
+-                    h->type = *(uint8_t*)p++;
++
++                    /* size: big-endian 3 bytes */
++
++                    h->mlen = ((uint32_t) *p++ << 16);
++                    h->mlen |= ((uint32_t) *p++ << 8);
++                    h->mlen |= *p++;
++
++                    h->type = *p++;
+                     if (fmt == 0) {
+                         if (b->last - p < 4)
+                             continue;
+-                        /* stream:
+-                         *  little-endian 4b -> little-endian 4b */
+-                        pp = (u_char*)&h->msid;
+-                        pp[0] = *p++;
+-                        pp[1] = *p++;
+-                        pp[2] = *p++;
+-                        pp[3] = *p++;
++
++                        /* stream: little-endian 4 bytes */
++
++                        h->msid = *p++;
++                        h->msid |= ((uint32_t) *p++ << 8);
++                        h->msid |= ((uint32_t) *p++ << 16);
++                        h->msid |= ((uint32_t) *p++ << 24);
+                     }
+                 }
+             }
+@@ -397,13 +394,13 @@ ngx_rtmp_recv(ngx_event_t *rev)
+             if (ext) {
+                 if (b->last - p < 4)
+                     continue;
+-                pp = (u_char*)&timestamp;
+-               /* extented time stamp:
+-                *  big-endian 4b -> little-endian 4b */
+-                pp[3] = *p++;
+-                pp[2] = *p++;
+-                pp[1] = *p++;
+-                pp[0] = *p++;
++
++                /* timestamp: big-endian 4 bytes */
++
++                timestamp = ((uint32_t) *p++ << 24);
++                timestamp |= ((uint32_t) *p++ << 16);
++                timestamp |= ((uint32_t) *p++ << 8);
++                timestamp |= *p++;
+                 ngx_log_debug1(NGX_LOG_DEBUG_RTMP, c->log, 0, "RTMP extended timestamp %uD", (uint32_t)timestamp);
+             }
+@@ -584,7 +581,7 @@ ngx_rtmp_prepare_message(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
+         ngx_rtmp_header_t *lh, ngx_chain_t *out)
+ {
+     ngx_chain_t                *l;
+-    u_char                     *p, *pp;
++    u_char                     *p;
+     ngx_int_t                   hsize, thsize, nbufs;
+     uint32_t                    mlen, timestamp, ext_timestamp;
+     static uint8_t              hdrsize[] = { 12, 8, 4, 1 };
+@@ -677,33 +674,36 @@ ngx_rtmp_prepare_message(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
+     /* message header */
+     if (fmt <= 2) {
+-        pp = (u_char*)&timestamp;
+-        *p++ = pp[2];
+-        *p++ = pp[1];
+-        *p++ = pp[0];
++
++        *p++ = (u_char) (timestamp >> 16);
++        *p++ = (u_char) (timestamp >> 8);
++        *p++ = (u_char) timestamp;
++        
+         if (fmt <= 1) {
+-            pp = (u_char*)&mlen;
+-            *p++ = pp[2];
+-            *p++ = pp[1];
+-            *p++ = pp[0];
++
++            *p++ = (u_char) (mlen >> 16);
++            *p++ = (u_char) (mlen >> 8);
++            *p++ = (u_char) mlen;
++
+             *p++ = h->type;
++
+             if (fmt == 0) {
+-                pp = (u_char*)&h->msid;
+-                *p++ = pp[0];
+-                *p++ = pp[1];
+-                *p++ = pp[2];
+-                *p++ = pp[3];
++
++                *p++ = (u_char) h->msid;
++                *p++ = (u_char) (h->msid >> 8);
++                *p++ = (u_char) (h->msid >> 16);
++                *p++ = (u_char) (h->msid >> 24);
+             }
+         }
+     }
+     /* extended header */
+     if (ext_timestamp) {
+-        pp = (u_char*)&ext_timestamp;
+-        *p++ = pp[3];
+-        *p++ = pp[2];
+-        *p++ = pp[1];
+-        *p++ = pp[0];
++        
++        *p++ = (u_char) (ext_timestamp >> 24);
++        *p++ = (u_char) (ext_timestamp >> 16);
++        *p++ = (u_char) (ext_timestamp >> 8);
++        *p++ = (u_char) ext_timestamp;
+         /* This CONTRADICTS the standard
+          * but that's the way flash client
+
+From 7fb255e6700bc11955d276183be9bf01a5227c05 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Bub=C3=ADk?= <jan.bubik@technodat.cz>
+Date: Wed, 13 May 2020 22:41:31 +0200
+Subject: [PATCH 2/3] arut's 205664d8c5e040a61b36ae0b74ddf17bc16d2150 [fixed
+ sending protocol messages]
+
+---
+ ngx_rtmp_send.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/nginx-rtmp/ngx_rtmp_send.c b/nginx-rtmp/ngx_rtmp_send.c
+index 69dfed955..764e9ef6f 100644
+--- a/ngx_rtmp_send.c
++++ b/ngx_rtmp_send.c
+@@ -33,13 +33,13 @@
+     *(__b->last++) = (u_char)(utype);
+ #define NGX_RTMP_USER_OUT1(v)                                               \
+-    *(__b->last++) = ((u_char*)&v)[0];
++    *(__b->last++) = (u_char) v;
+ #define NGX_RTMP_USER_OUT4(v)                                               \
+-    *(__b->last++) = ((u_char*)&v)[3];                                      \
+-    *(__b->last++) = ((u_char*)&v)[2];                                      \
+-    *(__b->last++) = ((u_char*)&v)[1];                                      \
+-    *(__b->last++) = ((u_char*)&v)[0];
++    *(__b->last++) = (u_char) (v >> 24);                                    \
++    *(__b->last++) = (u_char) (v >> 16);                                    \
++    *(__b->last++) = (u_char) (v >> 8);                                     \
++    *(__b->last++) = (u_char) v;
+ #define NGX_RTMP_USER_END(s)                                                \
+     ngx_rtmp_prepare_message(s, &__h, NULL, __l);                           \
+
+From 96ffb76f8d758a9a05580c7d538e2555aeb042af Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Bub=C3=ADk?= <jan.bubik@technodat.cz>
+Date: Fri, 15 May 2020 02:19:24 +0200
+Subject: [PATCH 3/3] More LE/BE compatibility
+
+---
+ hls/ngx_rtmp_hls_module.c |  20 +++-
+ ngx_rtmp.c                |  20 ----
+ ngx_rtmp.h                |  39 +++----
+ ngx_rtmp_amf.c            |  55 +++------
+ ngx_rtmp_bitop.h          |   2 +-
+ ngx_rtmp_eval.c           |   2 +-
+ ngx_rtmp_flv_module.c     |  18 +--
+ ngx_rtmp_handshake.c      |   6 +-
+ ngx_rtmp_mp4_module.c     | 240 +++++++++++++++++++-------------------
+ ngx_rtmp_receive.c        |  37 ++----
+ ngx_rtmp_record_module.c  |  42 ++-----
+ 11 files changed, 201 insertions(+), 280 deletions(-)
+
+diff --git a/nginx-rtmp/hls/ngx_rtmp_hls_module.c b/nginx-rtmp/hls/ngx_rtmp_hls_module.c
+index fbf2bcbf3..ff2b0f7b3 100644
+--- a/hls/ngx_rtmp_hls_module.c
++++ b/hls/ngx_rtmp_hls_module.c
+@@ -296,7 +296,7 @@ static ngx_command_t ngx_rtmp_hls_commands[] = {
+       ngx_conf_set_enum_slot,
+       NGX_RTMP_APP_CONF_OFFSET,
+       offsetof(ngx_rtmp_hls_app_conf_t, allow_client_cache),
+-      &ngx_rtmp_hls_cache },       
++      &ngx_rtmp_hls_cache },
+     { ngx_string("hls_variant"),
+       NGX_RTMP_MAIN_CONF|NGX_RTMP_SRV_CONF|NGX_RTMP_APP_CONF|NGX_CONF_1MORE,
+@@ -816,7 +816,7 @@ ngx_rtmp_hls_append_sps_pps(ngx_rtmp_session_t *s, ngx_buf_t *out)
+                 return NGX_ERROR;
+             }
+-            ngx_rtmp_rmemcpy(&len, &rlen, 2);
++            len=ntohs(rlen);
+             ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                            "hls: header NAL length: %uz", (size_t) len);
+@@ -2072,7 +2072,21 @@ ngx_rtmp_hls_video(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
+         }
+         len = 0;
+-        ngx_rtmp_rmemcpy(&len, &rlen, nal_bytes);
++
++        switch (nal_bytes) {
++            case 1:
++                len=*(uint8_t*)&rlen;
++                break;
++            case 2:
++                len=ntohs(*(uint16_t*)&rlen);
++                break;
++            case 3:
++                len=n3toh4((u_char*)&rlen);
++                break;
++            case 4:
++                len=ntohl(rlen);
++                 break;
++        };
+         if (len == 0) {
+             continue;
+diff --git a/nginx-rtmp/ngx_rtmp.c b/nginx-rtmp/ngx_rtmp.c
+index 011f3ad50..e138f1209 100644
+--- a/ngx_rtmp.c
++++ b/ngx_rtmp.c
+@@ -825,26 +825,6 @@ ngx_rtmp_fire_event(ngx_rtmp_session_t *s, ngx_uint_t evt,
+ }
+-void *
+-ngx_rtmp_rmemcpy(void *dst, const void* src, size_t n)
+-{
+-#if (NGX_HAVE_LITTLE_ENDIAN)
+-    u_char     *d, *s;
+-
+-    d = dst;
+-    s = (u_char*)src + n - 1;
+-
+-    while(s >= (u_char*)src) {
+-        *d++ = *s--;
+-    }
+-#else
+-    dst = ngx_cpymem(dst, src, n);
+-#endif
+-
+-    return dst;
+-}
+-
+-
+ static ngx_int_t
+ ngx_rtmp_init_process(ngx_cycle_t *cycle)
+ {
+diff --git a/nginx-rtmp/ngx_rtmp.h b/nginx-rtmp/ngx_rtmp.h
+index ddc30ea1c..e88de4380 100644
+--- a/ngx_rtmp.h
++++ b/ngx_rtmp.h
+@@ -417,29 +417,9 @@ ngx_int_t ngx_rtmp_fire_event(ngx_rtmp_session_t *s, ngx_uint_t evt,
+ ngx_int_t ngx_rtmp_set_chunk_size(ngx_rtmp_session_t *s, ngx_uint_t size);
+-/* Bit reverse: we need big-endians in many places  */
+-void * ngx_rtmp_rmemcpy(void *dst, const void* src, size_t n);
+-
+-#define ngx_rtmp_rcpymem(dst, src, n) \
+-    (((u_char*)ngx_rtmp_rmemcpy(dst, src, n)) + (n))
+-
+-
+-static ngx_inline uint16_t
+-ngx_rtmp_r16(uint16_t n)
+-{
+-    return ntohs(n);
+-}
+-
+-
+-static ngx_inline uint32_t
+-ngx_rtmp_r32(uint32_t n)
+-{
+-    return ntohl(n);
+-}
+-
+-
++/* Bit agnosticism: we need network to host byte-order conversion in many places  */
+ static ngx_inline uint64_t
+-ngx_rtmp_r64(uint64_t n)
++ntohll(uint64_t n)
+ {
+ #if (NGX_HAVE_LITTLE_ENDIAN)
+     return (uint64_t) ntohl((uint32_t) n) << 32 |
+@@ -449,6 +429,21 @@ ngx_rtmp_r64(uint64_t n)
+ #endif
+ }
++static ngx_inline uint32_t
++n3toh4(u_char* src)
++{
++    return ((uint32_t)src[0]<<16)|((uint32_t)src[1]<<8)|src[2];
++}
++
++static ngx_inline u_char*
++h4ton3(u_char* dst, uint32_t src)
++{
++    dst[0]=(u_char)(src>>16);
++    dst[1]=(u_char)(src>>8);
++    dst[2]=(u_char)src;
++
++    return dst+3;
++}
+ /* Receiving messages */
+ ngx_int_t ngx_rtmp_receive_message(ngx_rtmp_session_t *s,
+diff --git a/nginx-rtmp/ngx_rtmp_amf.c b/nginx-rtmp/ngx_rtmp_amf.c
+index 7c44519da..465dc01cb 100644
+--- a/ngx_rtmp_amf.c
++++ b/ngx_rtmp_amf.c
+@@ -10,19 +10,6 @@
+ #include "ngx_rtmp.h"
+ #include <string.h>
+-
+-static ngx_inline void*
+-ngx_rtmp_amf_reverse_copy(void *dst, void* src, size_t len)
+-{
+-    if (dst == NULL || src == NULL) {
+-        return NULL;
+-    }
+-
+-    ngx_rtmp_rmemcpy(dst, src, len);
+-
+-    return dst;
+-}
+-
+ #define NGX_RTMP_AMF_DEBUG_SIZE 72
+ #ifdef NGX_DEBUG
+@@ -203,7 +190,7 @@ ngx_rtmp_amf_read_object(ngx_rtmp_amf_ctx_t *ctx, ngx_rtmp_amf_elt_t *elts,
+             return NGX_ERROR;
+         }
+-        ngx_rtmp_amf_reverse_copy(&len, buf, 2);
++        len=ntohs(*(uint16_t*)&buf[0]);
+         if (!len)
+             break;
+@@ -254,7 +241,7 @@ ngx_rtmp_amf_read_array(ngx_rtmp_amf_ctx_t *ctx, ngx_rtmp_amf_elt_t *elts,
+     if (ngx_rtmp_amf_get(ctx, buf, 4) != NGX_OK)
+         return NGX_ERROR;
+-    ngx_rtmp_amf_reverse_copy(&len, buf, 4);
++    len=ntohl(*(uint32_t*)&buf[0]);
+     for (n = 0; n < len; ++n) {
+         if (ngx_rtmp_amf_read(ctx, n < nelts ? &elts[n] : NULL, 1) != NGX_OK)
+@@ -348,10 +335,9 @@ ngx_rtmp_amf_read(ngx_rtmp_amf_ctx_t *ctx, ngx_rtmp_amf_elt_t *elts,
+         switch (type) {
+             case NGX_RTMP_AMF_NUMBER:
+-                if (ngx_rtmp_amf_get(ctx, buf, 8) != NGX_OK) {
++                if (ngx_rtmp_amf_get(ctx, data, 8) != NGX_OK) {
+                     return NGX_ERROR;
+                 }
+-                ngx_rtmp_amf_reverse_copy(data, buf, 8);
+                 break;
+             case NGX_RTMP_AMF_BOOLEAN:
+@@ -364,7 +350,7 @@ ngx_rtmp_amf_read(ngx_rtmp_amf_ctx_t *ctx, ngx_rtmp_amf_elt_t *elts,
+                 if (ngx_rtmp_amf_get(ctx, buf, 2) != NGX_OK) {
+                     return NGX_ERROR;
+                 }
+-                ngx_rtmp_amf_reverse_copy(&len, buf, 2);
++                len=ntohs(*(uint16_t*)buf);
+                 if (data == NULL) {
+                     rc = ngx_rtmp_amf_get(ctx, data, len);
+@@ -434,14 +420,14 @@ ngx_rtmp_amf_read(ngx_rtmp_amf_ctx_t *ctx, ngx_rtmp_amf_elt_t *elts,
+                 if (ngx_rtmp_amf_get(ctx, buf, 2) != NGX_OK) {
+                     return NGX_ERROR;
+                 }
+-                ngx_rtmp_amf_reverse_copy(data, buf, 2);
++                *(uint16_t*)data=ntohs(*(uint16_t*)buf);
+                 break;
+             case NGX_RTMP_AMF_INT32:
+                 if (ngx_rtmp_amf_get(ctx, buf, 4) != NGX_OK) {
+                     return NGX_ERROR;
+                 }
+-                ngx_rtmp_amf_reverse_copy(data, buf, 4);
++                *(uint32_t*)data=ntohs(*(uint32_t*)buf);
+                 break;
+             case NGX_RTMP_AMF_END:
+@@ -472,9 +458,8 @@ ngx_rtmp_amf_write_object(ngx_rtmp_amf_ctx_t *ctx,
+         len = (uint16_t) elts[n].name.len;
+-        if (ngx_rtmp_amf_put(ctx,
+-                    ngx_rtmp_amf_reverse_copy(buf,
+-                        &len, 2), 2) != NGX_OK)
++        *(uint16_t*)buf = htons(len);
++        if (ngx_rtmp_amf_put(ctx, buf, 2) != NGX_OK)
+         {
+             return NGX_ERROR;
+         }
+@@ -505,9 +490,8 @@ ngx_rtmp_amf_write_array(ngx_rtmp_amf_ctx_t *ctx,
+     u_char                  buf[4];
+     len = nelts;
+-    if (ngx_rtmp_amf_put(ctx,
+-                ngx_rtmp_amf_reverse_copy(buf,
+-                    &len, 4), 4) != NGX_OK)
++    *(uint32_t*)buf = htonl(len);
++        if (ngx_rtmp_amf_put(ctx, buf, 4) != NGX_OK)
+     {
+         return NGX_ERROR;
+     }
+@@ -550,9 +534,7 @@ ngx_rtmp_amf_write(ngx_rtmp_amf_ctx_t *ctx,
+         switch(type) {
+             case NGX_RTMP_AMF_NUMBER:
+-                if (ngx_rtmp_amf_put(ctx,
+-                            ngx_rtmp_amf_reverse_copy(buf,
+-                                data, 8), 8) != NGX_OK)
++                if (ngx_rtmp_amf_put(ctx, data, 8) != NGX_OK)
+                 {
+                     return NGX_ERROR;
+                 }
+@@ -569,9 +551,8 @@ ngx_rtmp_amf_write(ngx_rtmp_amf_ctx_t *ctx,
+                     len = (uint16_t) ngx_strlen((u_char*) data);
+                 }
+-                if (ngx_rtmp_amf_put(ctx,
+-                            ngx_rtmp_amf_reverse_copy(buf,
+-                                &len, 2), 2) != NGX_OK)
++                *(uint16_t*)buf = htons(len);
++                if (ngx_rtmp_amf_put(ctx, buf, 2) != NGX_OK)
+                 {
+                     return NGX_ERROR;
+                 }
+@@ -617,18 +598,16 @@ ngx_rtmp_amf_write(ngx_rtmp_amf_ctx_t *ctx,
+                 break;
+             case NGX_RTMP_AMF_INT16:
+-                if (ngx_rtmp_amf_put(ctx,
+-                            ngx_rtmp_amf_reverse_copy(buf,
+-                                data, 2), 2) != NGX_OK)
++                *(uint16_t*)buf = htons(*(uint16_t*)data);
++                if (ngx_rtmp_amf_put(ctx, buf, 2) != NGX_OK)
+                 {
+                     return NGX_ERROR;
+                 }
+                 break;
+             case NGX_RTMP_AMF_INT32:
+-                if (ngx_rtmp_amf_put(ctx,
+-                            ngx_rtmp_amf_reverse_copy(buf,
+-                                data, 4), 4) != NGX_OK)
++                *(uint32_t*)buf = htonl(*(uint32_t*)data);
++                if (ngx_rtmp_amf_put(ctx, buf, 4) != NGX_OK)
+                 {
+                     return NGX_ERROR;
+                 }
+diff --git a/nginx-rtmp/ngx_rtmp_bitop.h b/nginx-rtmp/ngx_rtmp_bitop.h
+index c954a35f3..25133d284 100644
+--- a/ngx_rtmp_bitop.h
++++ b/ngx_rtmp_bitop.h
+@@ -40,7 +40,7 @@ uint64_t ngx_rtmp_bit_read_golomb(ngx_rtmp_bit_reader_t *br);
+     ((uint32_t) ngx_rtmp_bit_read(br, 32))
+ #define ngx_rtmp_bit_read_64(br)                                              \
+-    ((uint64_t) ngx_rtmp_read(br, 64))
++    ((uint64_t) ngx_rtmp_bit_read(br, 64))
+ #endif /* _NGX_RTMP_BITOP_H_INCLUDED_ */
+diff --git a/nginx-rtmp/ngx_rtmp_eval.c b/nginx-rtmp/ngx_rtmp_eval.c
+index 1e5195a90..7ee7c7bac 100644
+--- a/ngx_rtmp_eval.c
++++ b/ngx_rtmp_eval.c
+@@ -166,7 +166,7 @@ ngx_rtmp_eval(void *ctx, ngx_str_t *in, ngx_rtmp_eval_t **e, ngx_str_t *out,
+                         state = ESCAPE;
+                         continue;
+                 }
+-
++                /* fall through */
+             case ESCAPE:
+                 ngx_rtmp_eval_append(&b, &c, 1, log);
+                 state = NORMAL;
+diff --git a/nginx-rtmp/ngx_rtmp_flv_module.c b/nginx-rtmp/ngx_rtmp_flv_module.c
+index 76ce64752..cd5162f7d 100644
+--- a/ngx_rtmp_flv_module.c
++++ b/ngx_rtmp_flv_module.c
+@@ -102,7 +102,7 @@ ngx_rtmp_flv_fill_index(ngx_rtmp_amf_ctx_t *ctx, ngx_rtmp_flv_index_t *idx)
+         return NGX_ERROR;
+     }
+-    ngx_rtmp_rmemcpy(&nelts, b->pos + ctx->offset, 4);
++    nelts=htonl(*(uint32_t*)(b->pos + ctx->offset));
+     idx->nelts = nelts;
+     idx->offset = ctx->offset + 4;
+@@ -201,11 +201,7 @@ ngx_rtmp_flv_init_index(ngx_rtmp_session_t *s, ngx_chain_t *in)
+ static double
+ ngx_rtmp_flv_index_value(void *src)
+ {
+-    double      v;
+-
+-    ngx_rtmp_rmemcpy(&v, src, 8);
+-
+-    return v;
++    return *(double*)src;
+ }
+@@ -352,8 +348,7 @@ ngx_rtmp_flv_read_meta(ngx_rtmp_session_t *s, ngx_file_t *f)
+     h.msid = NGX_RTMP_MSID;
+     h.csid = NGX_RTMP_CSID_AMF;
+-    size = 0;
+-    ngx_rtmp_rmemcpy(&size, ngx_rtmp_flv_header + 1, 3);
++    size = n3toh4(ngx_rtmp_flv_header + 1);
+     ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                   "flv: metadata size=%D", size);
+@@ -440,11 +435,8 @@ ngx_rtmp_flv_send(ngx_rtmp_session_t *s, ngx_file_t *f, ngx_uint_t *ts)
+     h.msid = NGX_RTMP_MSID;
+     h.type = ngx_rtmp_flv_header[0];
+-    size = 0;
+-
+-    ngx_rtmp_rmemcpy(&size, ngx_rtmp_flv_header + 1, 3);
+-    ngx_rtmp_rmemcpy(&h.timestamp, ngx_rtmp_flv_header + 4, 3);
+-
++    size = n3toh4(ngx_rtmp_flv_header + 1);
++    h.timestamp = n3toh4(ngx_rtmp_flv_header + 4);
+     h.timestamp |= ((uint32_t) ngx_rtmp_flv_header[7] << 24);
+     ctx->offset += (sizeof(ngx_rtmp_flv_header) + size + 4);
+diff --git a/nginx-rtmp/ngx_rtmp_handshake.c b/nginx-rtmp/ngx_rtmp_handshake.c
+index 409d9a0dd..8590cdcb2 100644
+--- a/ngx_rtmp_handshake.c
++++ b/ngx_rtmp_handshake.c
+@@ -264,7 +264,8 @@ ngx_rtmp_handshake_create_challenge(ngx_rtmp_session_t *s,
+     b = s->hs_buf;
+     b->last = b->pos = b->start;
+     *b->last++ = '\x03';
+-    b->last = ngx_rtmp_rcpymem(b->last, &s->epoch, 4);
++    *(uint32_t*)b->last=htonl(s->epoch);
++    b->last +=4;
+     b->last = ngx_cpymem(b->last, version, 4);
+     ngx_rtmp_fill_random_buffer(b);
+     ++b->pos;
+@@ -292,8 +293,7 @@ ngx_rtmp_handshake_parse_challenge(ngx_rtmp_session_t *s,
+         return NGX_ERROR;
+     }
+     ++b->pos;
+-    s->peer_epoch = 0;
+-    ngx_rtmp_rmemcpy(&s->peer_epoch, b->pos, 4);
++    s->peer_epoch = ntohl(*(uint32_t*)b->pos);
+     p = b->pos + 4;
+     ngx_log_debug5(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+diff --git a/nginx-rtmp/ngx_rtmp_mp4_module.c b/nginx-rtmp/ngx_rtmp_mp4_module.c
+index 0259ca2f6..e39bb1bdb 100644
+--- a/ngx_rtmp_mp4_module.c
++++ b/ngx_rtmp_mp4_module.c
+@@ -528,9 +528,9 @@ ngx_rtmp_mp4_parse_mdhd(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+             }
+             pos += 12;
+-            t->time_scale = ngx_rtmp_r32(*(uint32_t *) pos);
++            t->time_scale = ntohl(*(uint32_t *) pos);
+             pos += 4;
+-            t->duration = ngx_rtmp_r32(*(uint32_t *) pos);
++            t->duration = ntohl(*(uint32_t *) pos);
+             break;
+         case 1:
+@@ -539,9 +539,9 @@ ngx_rtmp_mp4_parse_mdhd(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+             }
+             pos += 20;
+-            t->time_scale = ngx_rtmp_r32(*(uint32_t *) pos);
++            t->time_scale = ntohl(*(uint32_t *) pos);
+             pos += 4;
+-            t->duration = ngx_rtmp_r64(*(uint64_t *) pos);
++            t->duration = ntohll(*(uint64_t *) pos);
+             break;
+         default:
+@@ -616,11 +616,11 @@ ngx_rtmp_mp4_parse_video(ngx_rtmp_session_t *s, u_char *pos, u_char *last,
+     pos += 24;
+-    ctx->width = ngx_rtmp_r16(*(uint16_t *) pos);
++    ctx->width = ntohs(*(uint16_t *) pos);
+     pos += 2;
+-    ctx->height = ngx_rtmp_r16(*(uint16_t *) pos);
++    ctx->height = ntohs(*(uint16_t *) pos);
+     pos += 52;
+@@ -660,19 +660,19 @@ ngx_rtmp_mp4_parse_audio(ngx_rtmp_session_t *s, u_char *pos, u_char *last,
+     pos += 8;
+-    version = ngx_rtmp_r16(*(uint16_t *) pos);
++    version = ntohs(*(uint16_t *) pos);
+     pos += 8;
+-    ctx->nchannels = ngx_rtmp_r16(*(uint16_t *) pos);
++    ctx->nchannels = ntohs(*(uint16_t *) pos);
+     pos += 2;
+-    ctx->sample_size = ngx_rtmp_r16(*(uint16_t *) pos);
++    ctx->sample_size = ntohs(*(uint16_t *) pos);
+     pos += 6;
+-    ctx->sample_rate = ngx_rtmp_r16(*(uint16_t *) pos);
++    ctx->sample_rate = ntohs(*(uint16_t *) pos);
+     pos += 4;
+@@ -862,7 +862,7 @@ ngx_rtmp_mp4_parse_es(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+         return NGX_ERROR;
+     }
+-    id = ngx_rtmp_r16(*(uint16_t *) pos);
++    id = ntohs(*(uint16_t *) pos);
+     pos += 2;
+     flags = *(uint8_t *) pos;
+@@ -1018,13 +1018,13 @@ ngx_rtmp_mp4_parse_stsc(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+     t->chunks = (ngx_rtmp_mp4_chunks_t *) pos;
+-    if (pos + sizeof(*t->chunks) + ngx_rtmp_r32(t->chunks->entry_count) *
++    if (pos + sizeof(*t->chunks) + ntohl(t->chunks->entry_count) *
+                                    sizeof(t->chunks->entries[0])
+         <= last)
+     {
+         ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: chunks entries=%uD",
+-                       ngx_rtmp_r32(t->chunks->entry_count));
++                       ntohl(t->chunks->entry_count));
+         return NGX_OK;
+     }
+@@ -1049,13 +1049,13 @@ ngx_rtmp_mp4_parse_stts(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+     t->times = (ngx_rtmp_mp4_times_t *) pos;
+-    if (pos + sizeof(*t->times) + ngx_rtmp_r32(t->times->entry_count) *
++    if (pos + sizeof(*t->times) + ntohl(t->times->entry_count) *
+                                   sizeof(t->times->entries[0])
+         <= last)
+     {
+         ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: times entries=%uD",
+-                       ngx_rtmp_r32(t->times->entry_count));
++                       ntohl(t->times->entry_count));
+         return NGX_OK;
+     }
+@@ -1080,13 +1080,13 @@ ngx_rtmp_mp4_parse_ctts(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+     t->delays = (ngx_rtmp_mp4_delays_t *) pos;
+-    if (pos + sizeof(*t->delays) + ngx_rtmp_r32(t->delays->entry_count) *
++    if (pos + sizeof(*t->delays) + ntohl(t->delays->entry_count) *
+                                    sizeof(t->delays->entries[0])
+         <= last)
+     {
+         ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: delays entries=%uD",
+-                       ngx_rtmp_r32(t->delays->entry_count));
++                       ntohl(t->delays->entry_count));
+         return NGX_OK;
+     }
+@@ -1111,13 +1111,13 @@ ngx_rtmp_mp4_parse_stss(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+     t->keys = (ngx_rtmp_mp4_keys_t *) pos;
+-    if (pos + sizeof(*t->keys) + ngx_rtmp_r32(t->keys->entry_count) *
++    if (pos + sizeof(*t->keys) + ntohl(t->keys->entry_count) *
+                                   sizeof(t->keys->entries[0])
+         <= last)
+     {
+         ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: keys entries=%uD",
+-                       ngx_rtmp_r32(t->keys->entry_count));
++                       ntohl(t->keys->entry_count));
+         return NGX_OK;
+     }
+@@ -1145,18 +1145,18 @@ ngx_rtmp_mp4_parse_stsz(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+     if (pos + sizeof(*t->sizes) <= last && t->sizes->sample_size) {
+         ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: sizes size=%uD",
+-                       ngx_rtmp_r32(t->sizes->sample_size));
++                       ntohl(t->sizes->sample_size));
+         return NGX_OK;
+     }
+-    if (pos + sizeof(*t->sizes) + ngx_rtmp_r32(t->sizes->sample_count) *
++    if (pos + sizeof(*t->sizes) + ntohl(t->sizes->sample_count) *
+                                   sizeof(t->sizes->entries[0])
+         <= last)
+     {
+         ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: sizes entries=%uD",
+-                       ngx_rtmp_r32(t->sizes->sample_count));
++                       ntohl(t->sizes->sample_count));
+         return NGX_OK;
+     }
+@@ -1181,14 +1181,14 @@ ngx_rtmp_mp4_parse_stz2(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+     t->sizes2 = (ngx_rtmp_mp4_sizes2_t *) pos;
+-    if (pos + sizeof(*t->sizes) + ngx_rtmp_r32(t->sizes2->sample_count) *
+-                                  ngx_rtmp_r32(t->sizes2->field_size) / 8
++    if (pos + sizeof(*t->sizes) + ntohl(t->sizes2->sample_count) *
++                                  ntohl(t->sizes2->field_size) / 8
+         <= last)
+     {
+         ngx_log_debug2(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: sizes2 field_size=%uD entries=%uD",
+-                       ngx_rtmp_r32(t->sizes2->field_size),
+-                       ngx_rtmp_r32(t->sizes2->sample_count));
++                       ntohl(t->sizes2->field_size),
++                       ntohl(t->sizes2->sample_count));
+         return NGX_OK;
+     }
+@@ -1213,13 +1213,13 @@ ngx_rtmp_mp4_parse_stco(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+     t->offsets = (ngx_rtmp_mp4_offsets_t *) pos;
+-    if (pos + sizeof(*t->offsets) + ngx_rtmp_r32(t->offsets->entry_count) *
++    if (pos + sizeof(*t->offsets) + ntohl(t->offsets->entry_count) *
+                                     sizeof(t->offsets->entries[0])
+         <= last)
+     {
+         ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: offsets entries=%uD",
+-                       ngx_rtmp_r32(t->offsets->entry_count));
++                       ntohl(t->offsets->entry_count));
+         return NGX_OK;
+     }
+@@ -1244,13 +1244,13 @@ ngx_rtmp_mp4_parse_co64(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+     t->offsets64 = (ngx_rtmp_mp4_offsets64_t *) pos;
+-    if (pos + sizeof(*t->offsets64) + ngx_rtmp_r32(t->offsets64->entry_count) *
++    if (pos + sizeof(*t->offsets64) + ntohl(t->offsets64->entry_count) *
+                                       sizeof(t->offsets64->entries[0])
+         <= last)
+     {
+         ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: offsets64 entries=%uD",
+-                       ngx_rtmp_r32(t->offsets64->entry_count));
++                       ntohl(t->offsets64->entry_count));
+         return NGX_OK;
+     }
+@@ -1275,7 +1275,7 @@ ngx_rtmp_mp4_parse(ngx_rtmp_session_t *s, u_char *pos, u_char *last)
+         }
+         hdr = (uint32_t *) pos;
+-        size = ngx_rtmp_r32(hdr[0]);
++        size = ntohl(hdr[0]);
+         tag  = hdr[1];
+         if (pos + size > last) {
+@@ -1318,11 +1318,11 @@ ngx_rtmp_mp4_next_time(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     cr = &t->cursor;
+-    if (cr->time_pos >= ngx_rtmp_r32(t->times->entry_count)) {
++    if (cr->time_pos >= ntohl(t->times->entry_count)) {
+         ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: track#%ui time[%ui/%uD] overflow",
+                        t->id, cr->time_pos,
+-                       ngx_rtmp_r32(t->times->entry_count));
++                       ntohl(t->times->entry_count));
+         return NGX_ERROR;
+     }
+@@ -1330,22 +1330,22 @@ ngx_rtmp_mp4_next_time(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     te = &t->times->entries[cr->time_pos];
+     cr->last_timestamp = cr->timestamp;
+-    cr->timestamp += ngx_rtmp_r32(te->sample_delta);
++    cr->timestamp += ntohl(te->sample_delta);
+     cr->not_first = 1;
+     ngx_log_debug8(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                    "mp4: track#%ui time[%ui] [%ui/%uD][%ui/%uD]=%uD t=%uD",
+                    t->id, cr->pos, cr->time_pos,
+-                   ngx_rtmp_r32(t->times->entry_count),
+-                   cr->time_count, ngx_rtmp_r32(te->sample_count),
+-                   ngx_rtmp_r32(te->sample_delta),
++                   ntohl(t->times->entry_count),
++                   cr->time_count, ntohl(te->sample_count),
++                   ntohl(te->sample_delta),
+                    cr->timestamp);
+     cr->time_count++;
+     cr->pos++;
+-    if (cr->time_count >= ngx_rtmp_r32(te->sample_count)) {
++    if (cr->time_count >= ntohl(te->sample_count)) {
+         cr->time_pos++;
+         cr->time_count = 0;
+     }
+@@ -1370,8 +1370,8 @@ ngx_rtmp_mp4_seek_time(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t,
+     te = t->times->entries;
+-    while (cr->time_pos < ngx_rtmp_r32(t->times->entry_count)) {
+-        dt = ngx_rtmp_r32(te->sample_delta) * ngx_rtmp_r32(te->sample_count);
++    while (cr->time_pos < ntohl(t->times->entry_count)) {
++        dt = ntohl(te->sample_delta) * ntohl(te->sample_count);
+         if (cr->timestamp + dt >= timestamp) {
+             if (te->sample_delta == 0) {
+@@ -1379,24 +1379,24 @@ ngx_rtmp_mp4_seek_time(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t,
+             }
+             cr->time_count = (timestamp - cr->timestamp) /
+-                             ngx_rtmp_r32(te->sample_delta);
+-            cr->timestamp += ngx_rtmp_r32(te->sample_delta) * cr->time_count;
++                             ntohl(te->sample_delta);
++            cr->timestamp += ntohl(te->sample_delta) * cr->time_count;
+             cr->pos += cr->time_count;
+             break;
+         }
+         cr->timestamp += dt;
+-        cr->pos += ngx_rtmp_r32(te->sample_count);
++        cr->pos += ntohl(te->sample_count);
+         cr->time_pos++;
+         te++;
+     }
+-    if (cr->time_pos >= ngx_rtmp_r32(t->times->entry_count)) {
++    if (cr->time_pos >= ntohl(t->times->entry_count)) {
+         ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: track#%ui seek time[%ui/%uD] overflow",
+                        t->id, cr->time_pos,
+-                       ngx_rtmp_r32(t->times->entry_count));
++                       ntohl(t->times->entry_count));
+         return  NGX_ERROR;
+     }
+@@ -1405,10 +1405,10 @@ ngx_rtmp_mp4_seek_time(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t,
+                    "mp4: track#%ui seek time[%ui] [%ui/%uD][%ui/%uD]=%uD "
+                    "t=%uD",
+                    t->id, cr->pos, cr->time_pos,
+-                   ngx_rtmp_r32(t->times->entry_count),
++                   ntohl(t->times->entry_count),
+                    cr->time_count,
+-                   ngx_rtmp_r32(te->sample_count),
+-                   ngx_rtmp_r32(te->sample_delta),
++                   ntohl(te->sample_count),
++                   ntohl(te->sample_delta),
+                    cr->timestamp);
+     return NGX_OK;
+@@ -1433,44 +1433,44 @@ ngx_rtmp_mp4_update_offset(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     chunk = cr->chunk - 1;
+     if (t->offsets) {
+-        if (chunk >= ngx_rtmp_r32(t->offsets->entry_count)) {
++        if (chunk >= ntohl(t->offsets->entry_count)) {
+             ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                            "mp4: track#%ui offset[%ui/%uD] overflow",
+                            t->id, cr->chunk,
+-                           ngx_rtmp_r32(t->offsets->entry_count));
++                           ntohl(t->offsets->entry_count));
+             return NGX_ERROR;
+         }
+-        cr->offset = (off_t) ngx_rtmp_r32(t->offsets->entries[chunk]);
++        cr->offset = (off_t) ntohl(t->offsets->entries[chunk]);
+         cr->size = 0;
+         ngx_log_debug4(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: track#%ui offset[%ui/%uD]=%O",
+                        t->id, cr->chunk,
+-                       ngx_rtmp_r32(t->offsets->entry_count),
++                       ntohl(t->offsets->entry_count),
+                        cr->offset);
+         return NGX_OK;
+     }
+     if (t->offsets64) {
+-        if (chunk >= ngx_rtmp_r32(t->offsets64->entry_count)) {
++        if (chunk >= ntohl(t->offsets64->entry_count)) {
+             ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                            "mp4: track#%ui offset64[%ui/%uD] overflow",
+                            t->id, cr->chunk,
+-                           ngx_rtmp_r32(t->offsets->entry_count));
++                           ntohl(t->offsets->entry_count));
+             return NGX_ERROR;
+         }
+-        cr->offset = (off_t) ngx_rtmp_r64(t->offsets64->entries[chunk]);
++        cr->offset = (off_t) ntohll(t->offsets64->entries[chunk]);
+         cr->size = 0;
+         ngx_log_debug4(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: track#%ui offset64[%ui/%uD]=%O",
+                        t->id, cr->chunk,
+-                       ngx_rtmp_r32(t->offsets->entry_count),
++                       ntohl(t->offsets->entry_count),
+                        cr->offset);
+         return NGX_OK;
+@@ -1493,11 +1493,11 @@ ngx_rtmp_mp4_next_chunk(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     cr = &t->cursor;
+-    if (cr->chunk_pos >= ngx_rtmp_r32(t->chunks->entry_count)) {
++    if (cr->chunk_pos >= ntohl(t->chunks->entry_count)) {
+         ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: track#%ui chunk[%ui/%uD] overflow",
+                        t->id, cr->chunk_pos,
+-                       ngx_rtmp_r32(t->chunks->entry_count));
++                       ntohl(t->chunks->entry_count));
+         return NGX_ERROR;
+     }
+@@ -1506,13 +1506,13 @@ ngx_rtmp_mp4_next_chunk(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     cr->chunk_count++;
+-    if (cr->chunk_count >= ngx_rtmp_r32(ce->samples_per_chunk)) {
++    if (cr->chunk_count >= ntohl(ce->samples_per_chunk)) {
+         cr->chunk_count = 0;
+         cr->chunk++;
+-        if (cr->chunk_pos + 1 < ngx_rtmp_r32(t->chunks->entry_count)) {
++        if (cr->chunk_pos + 1 < ntohl(t->chunks->entry_count)) {
+             nce = ce + 1;
+-            if (cr->chunk >= ngx_rtmp_r32(nce->first_chunk)) {
++            if (cr->chunk >= ntohl(nce->first_chunk)) {
+                 cr->chunk_pos++;
+                 ce = nce;
+             }
+@@ -1527,10 +1527,10 @@ ngx_rtmp_mp4_next_chunk(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     ngx_log_debug7(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                    "mp4: track#%ui chunk[%ui/%uD][%uD..%ui][%ui/%uD]",
+                    t->id, cr->chunk_pos,
+-                   ngx_rtmp_r32(t->chunks->entry_count),
+-                   ngx_rtmp_r32(ce->first_chunk),
++                   ntohl(t->chunks->entry_count),
++                   ntohl(ce->first_chunk),
+                    cr->chunk, cr->chunk_count,
+-                   ngx_rtmp_r32(ce->samples_per_chunk));
++                   ntohl(ce->samples_per_chunk));
+     if (new_chunk) {
+@@ -1558,12 +1558,12 @@ ngx_rtmp_mp4_seek_chunk(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     ce = t->chunks->entries;
+     pos = 0;
+-    while (cr->chunk_pos + 1 < ngx_rtmp_r32(t->chunks->entry_count)) {
++    while (cr->chunk_pos + 1 < ntohl(t->chunks->entry_count)) {
+         nce = ce + 1;
+-        dpos = (ngx_rtmp_r32(nce->first_chunk) -
+-                ngx_rtmp_r32(ce->first_chunk)) *
+-                ngx_rtmp_r32(ce->samples_per_chunk);
++        dpos = (ntohl(nce->first_chunk) -
++                ntohl(ce->first_chunk)) *
++                ntohl(ce->samples_per_chunk);
+         if (pos + dpos > cr->pos) {
+             break;
+@@ -1578,20 +1578,20 @@ ngx_rtmp_mp4_seek_chunk(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+         return NGX_ERROR;
+     }
+-    dchunk = (cr->pos - pos) / ngx_rtmp_r32(ce->samples_per_chunk);
++    dchunk = (cr->pos - pos) / ntohl(ce->samples_per_chunk);
+-    cr->chunk = ngx_rtmp_r32(ce->first_chunk) + dchunk;
++    cr->chunk = ntohl(ce->first_chunk) + dchunk;
+     cr->chunk_pos = (ngx_uint_t) (ce - t->chunks->entries);
+     cr->chunk_count = (ngx_uint_t) (cr->pos - pos - dchunk *
+-                                    ngx_rtmp_r32(ce->samples_per_chunk));
++                                    ntohl(ce->samples_per_chunk));
+     ngx_log_debug7(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                    "mp4: track#%ui seek chunk[%ui/%uD][%uD..%ui][%ui/%uD]",
+                    t->id, cr->chunk_pos,
+-                   ngx_rtmp_r32(t->chunks->entry_count),
+-                   ngx_rtmp_r32(ce->first_chunk),
++                   ntohl(t->chunks->entry_count),
++                   ntohl(ce->first_chunk),
+                    cr->chunk, cr->chunk_count,
+-                   ngx_rtmp_r32(ce->samples_per_chunk));
++                   ntohl(ce->samples_per_chunk));
+     return ngx_rtmp_mp4_update_offset(s, t);
+ }
+@@ -1608,7 +1608,7 @@ ngx_rtmp_mp4_next_size(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     if (t->sizes) {
+         if (t->sizes->sample_size) {
+-            cr->size = ngx_rtmp_r32(t->sizes->sample_size);
++            cr->size = ntohl(t->sizes->sample_size);
+             ngx_log_debug2(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                            "mp4: track#%ui size fix=%uz",
+@@ -1619,32 +1619,32 @@ ngx_rtmp_mp4_next_size(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+         cr->size_pos++;
+-        if (cr->size_pos >= ngx_rtmp_r32(t->sizes->sample_count)) {
++        if (cr->size_pos >= ntohl(t->sizes->sample_count)) {
+             ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                            "mp4: track#%ui size[%ui/%uD] overflow",
+                            t->id, cr->size_pos,
+-                           ngx_rtmp_r32(t->sizes->sample_count));
++                           ntohl(t->sizes->sample_count));
+             return NGX_ERROR;
+         }
+-        cr->size = ngx_rtmp_r32(t->sizes->entries[cr->size_pos]);
++        cr->size = ntohl(t->sizes->entries[cr->size_pos]);
+         ngx_log_debug4(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: track#%ui size[%ui/%uD]=%uz",
+                        t->id, cr->size_pos,
+-                       ngx_rtmp_r32(t->sizes->sample_count),
++                       ntohl(t->sizes->sample_count),
+                        cr->size);
+         return NGX_OK;
+     }
+     if (t->sizes2) {
+-        if (cr->size_pos >= ngx_rtmp_r32(t->sizes2->sample_count)) {
++        if (cr->size_pos >= ntohl(t->sizes2->sample_count)) {
+             ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                            "mp4: track#%ui size[%ui/%uD] overflow",
+                            t->id, cr->size_pos,
+-                           ngx_rtmp_r32(t->sizes2->sample_count));
++                           ntohl(t->sizes2->sample_count));
+             return NGX_ERROR;
+         }
+@@ -1672,7 +1672,7 @@ ngx_rtmp_mp4_seek_size(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     if (t->sizes) {
+         if (t->sizes->sample_size) {
+-            cr->size = ngx_rtmp_r32(t->sizes->sample_size);
++            cr->size = ntohl(t->sizes->sample_size);
+             cr->offset += cr->size * cr->chunk_count;
+@@ -1683,37 +1683,37 @@ ngx_rtmp_mp4_seek_size(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+             return NGX_OK;
+         }
+-        if (cr->pos >= ngx_rtmp_r32(t->sizes->sample_count)) {
++        if (cr->pos >= ntohl(t->sizes->sample_count)) {
+             ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                            "mp4: track#%ui seek size[%ui/%uD] overflow",
+                            t->id, cr->pos,
+-                           ngx_rtmp_r32(t->sizes->sample_count));
++                           ntohl(t->sizes->sample_count));
+             return NGX_ERROR;
+         }
+         for (pos = 1; pos <= cr->chunk_count; ++pos) {
+-            cr->offset += ngx_rtmp_r32(t->sizes->entries[cr->pos - pos]);
++            cr->offset += ntohl(t->sizes->entries[cr->pos - pos]);
+         }
+         cr->size_pos = cr->pos;
+-        cr->size = ngx_rtmp_r32(t->sizes->entries[cr->size_pos]);
++        cr->size = ntohl(t->sizes->entries[cr->size_pos]);
+         ngx_log_debug4(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                        "mp4: track#%ui seek size[%ui/%uD]=%uz",
+                        t->id, cr->size_pos,
+-                       ngx_rtmp_r32(t->sizes->sample_count),
++                       ntohl(t->sizes->sample_count),
+                        cr->size);
+         return NGX_OK;
+     }
+     if (t->sizes2) {
+-        if (cr->size_pos >= ngx_rtmp_r32(t->sizes2->sample_count)) {
++        if (cr->size_pos >= ntohl(t->sizes2->sample_count)) {
+             ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                            "mp4: track#%ui seek size2[%ui/%uD] overflow",
+                            t->id, cr->size_pos,
+-                           ngx_rtmp_r32(t->sizes->sample_count));
++                           ntohl(t->sizes->sample_count));
+             return NGX_ERROR;
+         }
+@@ -1744,11 +1744,11 @@ ngx_rtmp_mp4_next_key(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+         cr->key_pos++;
+     }
+-    if (cr->key_pos >= ngx_rtmp_r32(t->keys->entry_count)) {
++    if (cr->key_pos >= ntohl(t->keys->entry_count)) {
+         ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                 "mp4: track#%ui key[%ui/%uD] overflow",
+                 t->id, cr->key_pos,
+-                ngx_rtmp_r32(t->keys->entry_count));
++                ntohl(t->keys->entry_count));
+         cr->key = 0;
+@@ -1756,13 +1756,13 @@ ngx_rtmp_mp4_next_key(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     }
+     ke = &t->keys->entries[cr->key_pos];
+-    cr->key = (cr->pos + 1 == ngx_rtmp_r32(*ke));
++    cr->key = (cr->pos + 1 == ntohl(*ke));
+     ngx_log_debug6(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                    "mp4: track#%ui key[%ui/%uD][%ui/%uD]=%s",
+                    t->id, cr->key_pos,
+-                   ngx_rtmp_r32(t->keys->entry_count),
+-                   cr->pos, ngx_rtmp_r32(*ke),
++                   ntohl(t->keys->entry_count),
++                   cr->pos, ntohl(*ke),
+                    cr->key ? "match" : "miss");
+     return NGX_OK;
+@@ -1782,27 +1782,27 @@ ngx_rtmp_mp4_seek_key(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+         return NGX_OK;
+     }
+-    while (cr->key_pos < ngx_rtmp_r32(t->keys->entry_count)) {
+-        if (ngx_rtmp_r32(t->keys->entries[cr->key_pos]) > cr->pos) {
++    while (cr->key_pos < ntohl(t->keys->entry_count)) {
++        if (ntohl(t->keys->entries[cr->key_pos]) > cr->pos) {
+             break;
+         }
+         cr->key_pos++;
+     }
+-    if (cr->key_pos >= ngx_rtmp_r32(t->keys->entry_count)) {
++    if (cr->key_pos >= ntohl(t->keys->entry_count)) {
+         ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                 "mp4: track#%ui seek key[%ui/%uD] overflow",
+                 t->id, cr->key_pos,
+-                ngx_rtmp_r32(t->keys->entry_count));
++                ntohl(t->keys->entry_count));
+         return NGX_OK;
+     }
+     ke = &t->keys->entries[cr->key_pos];
+-    /*cr->key = (cr->pos + 1 == ngx_rtmp_r32(*ke));*/
++    /*cr->key = (cr->pos + 1 == ntohl(*ke));*/
+     /* distance to the next keyframe */
+-    dpos = ngx_rtmp_r32(*ke) - cr->pos - 1;
++    dpos = ntohl(*ke) - cr->pos - 1;
+     cr->key = 1;
+     /* TODO: range version needed */
+@@ -1810,13 +1810,13 @@ ngx_rtmp_mp4_seek_key(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+         ngx_rtmp_mp4_next_time(s, t);
+     }
+-/*    cr->key = (cr->pos + 1 == ngx_rtmp_r32(*ke));*/
++/*    cr->key = (cr->pos + 1 == ntohl(*ke));*/
+     ngx_log_debug6(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                    "mp4: track#%ui seek key[%ui/%uD][%ui/%uD]=%s",
+                    t->id, cr->key_pos,
+-                   ngx_rtmp_r32(t->keys->entry_count),
+-                   cr->pos, ngx_rtmp_r32(*ke),
++                   ntohl(t->keys->entry_count),
++                   cr->pos, ntohl(*ke),
+                    cr->key ? "match" : "miss");
+     return NGX_OK;
+@@ -1835,11 +1835,11 @@ ngx_rtmp_mp4_next_delay(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+         return NGX_OK;
+     }
+-    if (cr->delay_pos >= ngx_rtmp_r32(t->delays->entry_count)) {
++    if (cr->delay_pos >= ntohl(t->delays->entry_count)) {
+         ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                 "mp4: track#%ui delay[%ui/%uD] overflow",
+                 t->id, cr->delay_pos,
+-                ngx_rtmp_r32(t->delays->entry_count));
++                ntohl(t->delays->entry_count));
+         return NGX_OK;
+     }
+@@ -1847,29 +1847,29 @@ ngx_rtmp_mp4_next_delay(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     cr->delay_count++;
+     de = &t->delays->entries[cr->delay_pos];
+-    if (cr->delay_count >= ngx_rtmp_r32(de->sample_count)) {
++    if (cr->delay_count >= ntohl(de->sample_count)) {
+         cr->delay_pos++;
+         de++;
+         cr->delay_count = 0;
+     }
+-    if (cr->delay_pos >= ngx_rtmp_r32(t->delays->entry_count)) {
++    if (cr->delay_pos >= ntohl(t->delays->entry_count)) {
+         ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                 "mp4: track#%ui delay[%ui/%uD] overflow",
+                 t->id, cr->delay_pos,
+-                ngx_rtmp_r32(t->delays->entry_count));
++                ntohl(t->delays->entry_count));
+         return NGX_OK;
+     }
+-    cr->delay = ngx_rtmp_r32(de->sample_offset);
++    cr->delay = ntohl(de->sample_offset);
+     ngx_log_debug6(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                    "mp4: track#%ui delay[%ui/%uD][%ui/%uD]=%ui",
+                    t->id, cr->delay_pos,
+-                   ngx_rtmp_r32(t->delays->entry_count),
++                   ntohl(t->delays->entry_count),
+                    cr->delay_count,
+-                   ngx_rtmp_r32(de->sample_count), cr->delay);
++                   ntohl(de->sample_count), cr->delay);
+     return NGX_OK;
+ }
+@@ -1891,12 +1891,12 @@ ngx_rtmp_mp4_seek_delay(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     pos = 0;
+     de = t->delays->entries;
+-    while (cr->delay_pos < ngx_rtmp_r32(t->delays->entry_count)) {
+-        dpos = ngx_rtmp_r32(de->sample_count);
++    while (cr->delay_pos < ntohl(t->delays->entry_count)) {
++        dpos = ntohl(de->sample_count);
+         if (pos + dpos > cr->pos) {
+             cr->delay_count = cr->pos - pos;
+-            cr->delay = ngx_rtmp_r32(de->sample_offset);
++            cr->delay = ntohl(de->sample_offset);
+             break;
+         }
+@@ -1905,11 +1905,11 @@ ngx_rtmp_mp4_seek_delay(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+         de++;
+     }
+-    if (cr->delay_pos >= ngx_rtmp_r32(t->delays->entry_count)) {
++    if (cr->delay_pos >= ntohl(t->delays->entry_count)) {
+         ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                 "mp4: track#%ui seek delay[%ui/%uD] overflow",
+                 t->id, cr->delay_pos,
+-                ngx_rtmp_r32(t->delays->entry_count));
++                ntohl(t->delays->entry_count));
+         return NGX_OK;
+     }
+@@ -1917,9 +1917,9 @@ ngx_rtmp_mp4_seek_delay(ngx_rtmp_session_t *s, ngx_rtmp_mp4_track_t *t)
+     ngx_log_debug6(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                    "mp4: track#%ui seek delay[%ui/%uD][%ui/%uD]=%ui",
+                    t->id, cr->delay_pos,
+-                   ngx_rtmp_r32(t->delays->entry_count),
++                   ntohl(t->delays->entry_count),
+                    cr->delay_count,
+-                   ngx_rtmp_r32(de->sample_count), cr->delay);
++                   ntohl(de->sample_count), cr->delay);
+     return NGX_OK;
+ }
+@@ -2348,7 +2348,7 @@ ngx_rtmp_mp4_init(ngx_rtmp_session_t *s, ngx_file_t *f, ngx_int_t aindex,
+             return NGX_ERROR;
+         }
+-        size = (size_t) ngx_rtmp_r32(hdr[0]);
++        size = (size_t) ntohl(hdr[0]);
+         shift = sizeof(hdr);
+         if (size == 1) {
+@@ -2362,7 +2362,7 @@ ngx_rtmp_mp4_init(ngx_rtmp_session_t *s, ngx_file_t *f, ngx_int_t aindex,
+                 return NGX_ERROR;
+             }
+-            size = (size_t) ngx_rtmp_r64(extended_size);
++            size = (size_t) ntohll(extended_size);
+             shift += sizeof(extended_size);
+         } else if (size == 0) {
+diff --git a/nginx-rtmp/ngx_rtmp_receive.c b/nginx-rtmp/ngx_rtmp_receive.c
+index 73d617cf2..9c8705691 100644
+--- a/ngx_rtmp_receive.c
++++ b/ngx_rtmp_receive.c
+@@ -17,7 +17,6 @@ ngx_rtmp_protocol_message_handler(ngx_rtmp_session_t *s,
+         ngx_rtmp_header_t *h, ngx_chain_t *in)
+ {
+     ngx_buf_t              *b;
+-    u_char                 *p;
+     uint32_t                val;
+     uint8_t                 limit;
+@@ -30,11 +29,7 @@ ngx_rtmp_protocol_message_handler(ngx_rtmp_session_t *s,
+         return NGX_OK;
+     }
+-    p = (u_char*)&val;
+-    p[0] = b->pos[3];
+-    p[1] = b->pos[2];
+-    p[2] = b->pos[1];
+-    p[3] = b->pos[0];
++    val=ntohl(*(uint32_t*)&b->pos[0]);
+     switch(h->type) {
+         case NGX_RTMP_MSG_CHUNK_SIZE:
+@@ -88,7 +83,6 @@ ngx_rtmp_user_message_handler(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
+                               ngx_chain_t *in)
+ {
+     ngx_buf_t              *b;
+-    u_char                 *p;
+     uint16_t                evt;
+     uint32_t                val;
+@@ -101,21 +95,13 @@ ngx_rtmp_user_message_handler(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
+         return NGX_OK;
+     }
+-    p = (u_char*)&evt;
+-
+-    p[0] = b->pos[1];
+-    p[1] = b->pos[0];
++    evt=ntohs(*(uint16_t*)&b->pos[0]);
+     ngx_log_debug2(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                    "RTMP recv user evt %s (%i)",
+                    ngx_rtmp_user_message_type(evt), (ngx_int_t) evt);
+-    p = (u_char *) &val;
+-
+-    p[0] = b->pos[5];
+-    p[1] = b->pos[4];
+-    p[2] = b->pos[3];
+-    p[3] = b->pos[2];
++    val=ntohl(*(uint32_t*)&b->pos[2]);
+     switch(evt) {
+         case NGX_RTMP_USER_STREAM_BEGIN:
+@@ -164,12 +150,7 @@ ngx_rtmp_user_message_handler(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
+                     return NGX_OK;
+                 }
+-                p = (u_char *) &v.buflen;
+-
+-                p[0] = b->pos[9];
+-                p[1] = b->pos[8];
+-                p[2] = b->pos[7];
+-                p[3] = b->pos[6];
++                v.buflen=ntohl(*(uint32_t*)&b->pos[6]);
+                 ngx_log_debug2(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,
+                                "receive: set_buflen msid=%uD buflen=%uD",
+@@ -240,18 +221,20 @@ ngx_rtmp_fetch_uint8(ngx_chain_t **in, uint8_t *ret)
+ static ngx_int_t
+ ngx_rtmp_fetch_uint32(ngx_chain_t **in, uint32_t *ret, ngx_int_t n)
+ {
+-    u_char     *r = (u_char *) ret;
++    u_char      b;
++    uint32_t    val=0;
+     ngx_int_t   rc;
+-    *ret = 0;
+-
+     while (--n >= 0) {
+-        rc = ngx_rtmp_fetch(in, &r[n]);
++        rc = ngx_rtmp_fetch(in, &b);
+         if (rc != NGX_OK) {
++            *ret = 0;
+             return rc;
+         }
++        val = (val<<8)|b;
+     }
++    *ret=val;
+     return NGX_OK;
+ }
+diff --git a/nginx-rtmp/ngx_rtmp_record_module.c b/nginx-rtmp/ngx_rtmp_record_module.c
+index c7db8edfa..abba56e15 100644
+--- a/ngx_rtmp_record_module.c
++++ b/ngx_rtmp_record_module.c
+@@ -454,7 +454,7 @@ ngx_rtmp_record_node_open(ngx_rtmp_session_t *s,
+     ngx_err_t                   err;
+     ngx_str_t                   path;
+     ngx_int_t                   mode, create_mode;
+-    u_char                      buf[8], *p;
++    u_char                      buf[8];
+     off_t                       file_size;
+     uint32_t                    tag_size, mlen, timestamp;
+@@ -551,11 +551,7 @@ ngx_rtmp_record_node_open(ngx_rtmp_session_t *s,
+             goto done;
+         }
+-        p = (u_char *) &tag_size;
+-        p[0] = buf[3];
+-        p[1] = buf[2];
+-        p[2] = buf[1];
+-        p[3] = buf[0];
++        tag_size=ntohl(*(uint32_t*)&buf[0]);
+         if (tag_size == 0 || tag_size + 4 > file_size) {
+             file_size = 0;
+@@ -569,11 +565,7 @@ ngx_rtmp_record_node_open(ngx_rtmp_session_t *s,
+             goto done;
+         }
+-        p = (u_char *) &mlen;
+-        p[0] = buf[3];
+-        p[1] = buf[2];
+-        p[2] = buf[1];
+-        p[3] = 0;
++        mlen=n3toh4(&buf[1]);
+         if (tag_size != mlen + 11) {
+             ngx_log_error(NGX_LOG_CRIT, s->connection->log, ngx_errno,
+@@ -582,11 +574,7 @@ ngx_rtmp_record_node_open(ngx_rtmp_session_t *s,
+             goto done;
+         }
+-        p = (u_char *) &timestamp;
+-        p[3] = buf[7];
+-        p[0] = buf[6];
+-        p[1] = buf[5];
+-        p[2] = buf[4];
++        timestamp=n3toh4(&buf[4])|((uint32_t)buf[7]<<24);
+ done:
+         rctx->file.offset = file_size;
+@@ -891,7 +879,7 @@ ngx_rtmp_record_write_frame(ngx_rtmp_session_t *s,
+                             ngx_rtmp_header_t *h, ngx_chain_t *in,
+                             ngx_int_t inc_nframes)
+ {
+-    u_char                      hdr[11], *p, *ph;
++    u_char                      hdr[11], *ph;
+     uint32_t                    timestamp, tag_size;
+     ngx_rtmp_record_app_conf_t *rracf;
+@@ -937,16 +925,10 @@ ngx_rtmp_record_write_frame(ngx_rtmp_session_t *s,
+     *ph++ = (u_char)h->type;
+-    p = (u_char*)&h->mlen;
+-    *ph++ = p[2];
+-    *ph++ = p[1];
+-    *ph++ = p[0];
++    ph = h4ton3(ph, h->mlen);
+-    p = (u_char*)&timestamp;
+-    *ph++ = p[2];
+-    *ph++ = p[1];
+-    *ph++ = p[0];
+-    *ph++ = p[3];
++    ph = h4ton3(ph, timestamp);
++    *ph++ = (u_char)(timestamp>>24);
+     *ph++ = 0;
+     *ph++ = 0;
+@@ -985,12 +967,8 @@ ngx_rtmp_record_write_frame(ngx_rtmp_session_t *s,
+     /* write tag size */
+     ph = hdr;
+-    p = (u_char*)&tag_size;
+-
+-    *ph++ = p[3];
+-    *ph++ = p[2];
+-    *ph++ = p[1];
+-    *ph++ = p[0];
++    *(uint32_t*)ph = htonl(tag_size);
++    ph += 4;
+     if (ngx_write_file(&rctx->file, hdr, ph - hdr,
+                        rctx->file.offset)
index d3a27573e16d2740db0f2986d92b6d089b9220f6..9e3a8ba75ecc8445d613b2725509cc78676b3887 100644 (file)
@@ -16,7 +16,7 @@ PKG_LICENSE:=ISC
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += -DLIBNL_LIBRARY_TINY=ON
 TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
index 4431d9d3ca5d6de6e3f5209d0cd426006c3807eb..1e358ed9e0261ae929ae28492fa5ce29652da4fe 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ocserv
-PKG_VERSION:=1.1.2
-PKG_RELEASE:=2
+PKG_VERSION:=1.1.3
+PKG_RELEASE:=1
 PKG_USE_MIPS16:=0
 
 PKG_BUILD_DIR :=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/ocserv/
-PKG_HASH:=889ccdbe8e67d3bc2bc8713b7fbb5bd4e79228abc6054e88858cb4ad6d0245dd
+PKG_HASH:=1ab70c6e6ea36b613e8e171fc03b6081c4312a45ee52cc2959c068c27324107e
 
 PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING
diff --git a/net/openvpn/Config-wolfssl.in b/net/openvpn/Config-wolfssl.in
new file mode 100644 (file)
index 0000000..ef8b9dc
--- /dev/null
@@ -0,0 +1,63 @@
+if PACKAGE_openvpn-wolfssl
+
+config OPENVPN_wolfssl
+       bool
+       default y
+       select WOLFSSL_HAS_OPENVPN
+
+config OPENVPN_wolfssl_ENABLE_LZO
+       bool "Enable LZO compression support"
+       default n
+
+config OPENVPN_wolfssl_ENABLE_LZ4
+       bool "Enable LZ4 compression support"
+       default y
+
+config OPENVPN_wolfssl_ENABLE_X509_ALT_USERNAME
+       bool "Enable the --x509-username-field feature"
+       default n
+
+#config OPENVPN_wolfssl_ENABLE_EUREPHIA
+#      bool "Enable support for the eurephia plug-in"
+#      default n
+
+config OPENVPN_wolfssl_ENABLE_MANAGEMENT
+       bool "Enable management server support"
+       default n
+
+#config OPENVPN_wolfssl_ENABLE_PKCS11
+#      bool "Enable pkcs11 support"
+#      default n
+
+config OPENVPN_wolfssl_ENABLE_FRAGMENT
+       bool "Enable internal fragmentation support (--fragment)"
+       default y
+
+config OPENVPN_wolfssl_ENABLE_MULTIHOME
+       bool "Enable multi-homed UDP server support (--multihome)"
+       default y
+
+config OPENVPN_wolfssl_ENABLE_PORT_SHARE
+       bool "Enable TCP server port-share support (--port-share)"
+       default y
+
+config OPENVPN_wolfssl_ENABLE_DEF_AUTH
+       bool "Enable deferred authentication"
+       default y
+
+config OPENVPN_wolfssl_ENABLE_PF
+       bool "Enable internal packet filter"
+       default y
+
+config OPENVPN_wolfssl_ENABLE_IPROUTE2
+       bool "Enable support for iproute2"
+       default n
+
+config OPENVPN_wolfssl_ENABLE_SMALL
+       bool "Enable size optimization"
+       default y
+       help
+         enable smaller executable size (disable OCC, usage
+         message, and verb 4 parm list)
+
+endif
index d46b7bb73b84e082bbcdc9c76f8b4b799f0bc5be..9aeb43a8498fcc6c69484217e033bbf9cad1413a 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=openvpn
 
 PKG_VERSION:=2.5.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=\
        https://build.openvpn.net/downloads/releases/ \
@@ -42,6 +42,7 @@ endef
 
 Package/openvpn-openssl=$(call Package/openvpn/Default,openssl,OpenSSL,+PACKAGE_openvpn-openssl:libopenssl)
 Package/openvpn-mbedtls=$(call Package/openvpn/Default,mbedtls,mbedTLS,+PACKAGE_openvpn-mbedtls:libmbedtls)
+Package/openvpn-wolfssl=$(call Package/openvpn/Default,wolfssl,WolfSSL \(experimental\),+PACKAGE_openvpn-wolfssl:libwolfssl)
 
 define Package/openvpn/config/Default
        source "$(SOURCE)/Config-$(1).in"
@@ -49,6 +50,7 @@ endef
 
 Package/openvpn-openssl/config=$(call Package/openvpn/config/Default,openssl)
 Package/openvpn-mbedtls/config=$(call Package/openvpn/config/Default,mbedtls)
+Package/openvpn-wolfssl/config=$(call Package/openvpn/config/Default,wolfssl)
 
 ifeq ($(BUILD_VARIANT),mbedtls)
 CONFIG_OPENVPN_MBEDTLS:=y
@@ -56,6 +58,9 @@ endif
 ifeq ($(BUILD_VARIANT),openssl)
 CONFIG_OPENVPN_OPENSSL:=y
 endif
+ifeq ($(BUILD_VARIANT),wolfssl)
+CONFIG_OPENVPN_WOLFSSL:=y
+endif
 
 CONFIGURE_VARS += \
        IPROUTE=/sbin/ip \
@@ -84,6 +89,7 @@ define Build/Configure
                $(if $(CONFIG_OPENVPN_$(BUILD_VARIANT)_ENABLE_PORT_SHARE),--enable,--disable)-port-share \
                $(if $(CONFIG_OPENVPN_OPENSSL),--with-crypto-library=openssl) \
                $(if $(CONFIG_OPENVPN_MBEDTLS),--with-crypto-library=mbedtls) \
+               $(if $(CONFIG_OPENVPN_WOLFSSL),--with-crypto-library=wolfssl) \
        )
 endef
 
@@ -142,3 +148,4 @@ endef
 
 $(eval $(call BuildPackage,openvpn-openssl))
 $(eval $(call BuildPackage,openvpn-mbedtls))
+$(eval $(call BuildPackage,openvpn-wolfssl))
diff --git a/net/openvpn/patches/002-add-wolfssl-support.patch b/net/openvpn/patches/002-add-wolfssl-support.patch
new file mode 100644 (file)
index 0000000..98bc658
--- /dev/null
@@ -0,0 +1,190 @@
+From: Gert Doering <gert@greenie.muc.de>
+
+Support for wolfSSL in OpenVPN
+
+This patch adds support for wolfSSL in OpenVPN. Support is added by using
+wolfSSL's OpenSSL compatibility layer. Function calls are left unchanged
+and instead the OpenSSL includes point to wolfSSL headers and OpenVPN is
+linked against the wolfSSL library. The wolfSSL installation directory is
+detected using pkg-config.
+
+As requested by OpenVPN maintainers, this patch does not include
+wolfssl/options.h on its own. By defining the macro EXTERNAL_OPTS_OPENVPN
+in the configure script wolfSSL will include wolfssl/options.h on its own
+(change added in wolfSSL/wolfssl#2825). The patch
+adds an option '--disable-wolfssl-options-h' in case the user would like
+to supply their own settings file for wolfSSL.
+
+wolfSSL:
+Support added in: wolfSSL/wolfssl#2503
+
+git clone https://github.com/wolfSSL/wolfssl.git
+cd wolfssl
+./autogen.sh
+./configure --enable-openvpn
+make
+sudo make install
+
+OpenVPN:
+
+autoreconf -i -v -f
+./configure --with-crypto-library=wolfssl
+make
+make check
+sudo make install
+
+Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
+Acked-by: Arne Schwabe <arne@rfc2549.org>
+Message-Id: <20210317181153.83716-1-juliusz@wolfssl.com>
+URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg21686.html
+Signed-off-by: Gert Doering <gert@greenie.muc.de>
+---
+ configure.ac | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/openvpn/syshead.h | 3 ++-
+ 2 files changed, 110 insertions(+), 3 deletions(-)
+--- a/configure.ac
++++ b/configure.ac
+@@ -271,16 +271,23 @@ AC_ARG_WITH(
+ AC_ARG_WITH(
+       [crypto-library],
+-      [AS_HELP_STRING([--with-crypto-library=library], [build with the given crypto library, TYPE=openssl|mbedtls @<:@default=openssl@:>@])],
++      [AS_HELP_STRING([--with-crypto-library=library], [build with the given crypto library, TYPE=openssl|mbedtls|wolfssl @<:@default=openssl@:>@])],
+       [
+               case "${withval}" in
+-                      openssl|mbedtls) ;;
++                      openssl|mbedtls|wolfssl) ;;
+                       *) AC_MSG_ERROR([bad value ${withval} for --with-crypto-library]) ;;
+               esac
+       ],
+       [with_crypto_library="openssl"]
+ )
++AC_ARG_ENABLE(
++      [wolfssl-options-h],
++      [AS_HELP_STRING([--disable-wolfssl-options-h], [Disable including options.h in wolfSSL @<:@default=yes@:>@])],
++      ,
++      [enable_wolfssl_options_h="yes"]
++)
++
+ AC_ARG_VAR([PLUGINDIR], [Path of plug-in directory @<:@default=LIBDIR/openvpn/plugins@:>@])
+ if test -n "${PLUGINDIR}"; then
+       plugindir="${PLUGINDIR}"
+@@ -1026,6 +1033,105 @@ elif test "${with_crypto_library}" = "mb
+       AC_DEFINE([ENABLE_CRYPTO_MBEDTLS], [1], [Use mbed TLS library])
+       CRYPTO_CFLAGS="${MBEDTLS_CFLAGS}"
+       CRYPTO_LIBS="${MBEDTLS_LIBS}"
++
++elif test "${with_crypto_library}" = "wolfssl"; then
++      AC_ARG_VAR([WOLFSSL_CFLAGS], [C compiler flags for wolfssl. The include directory should
++                                                                contain the regular wolfSSL header files but also the
++                                                                wolfSSL OpenSSL header files. Ex: -I/usr/local/include
++                                                                -I/usr/local/include/wolfssl])
++      AC_ARG_VAR([WOLFSSL_LIBS], [linker flags for wolfssl])
++
++      saved_CFLAGS="${CFLAGS}"
++      saved_LIBS="${LIBS}"
++
++      if test -z "${WOLFSSL_CFLAGS}" -a -z "${WOLFSSL_LIBS}"; then
++              # if the user did not explicitly specify flags, try to autodetect
++              PKG_CHECK_MODULES(
++                      [WOLFSSL],
++                      [wolfssl],
++                      [],
++                      [AC_MSG_ERROR([Could not find wolfSSL.])]
++              )
++              PKG_CHECK_VAR(
++                      [WOLFSSL_INCLUDEDIR],
++                      [wolfssl],
++                      [includedir],
++                      [],
++                      [AC_MSG_ERROR([Could not find wolfSSL includedir variable.])]
++              )
++              WOLFSSL_CFLAGS="${WOLFSSL_CFLAGS} -I${WOLFSSL_INCLUDEDIR}/wolfssl"
++      fi
++      saved_CFLAGS="${CFLAGS}"
++      saved_LIBS="${LIBS}"
++      CFLAGS="${CFLAGS} ${WOLFSSL_CFLAGS}"
++      LIBS="${LIBS} ${WOLFSSL_LIBS}"
++
++      AC_CHECK_LIB(
++              [wolfssl],
++              [wolfSSL_Init],
++              [],
++              [AC_MSG_ERROR([Could not link wolfSSL library.])]
++      )
++      AC_CHECK_HEADER([wolfssl/options.h],,[AC_MSG_ERROR([wolfSSL header wolfssl/options.h not found!])])
++
++      # wolfSSL signal EKM support
++      have_export_keying_material="yes"
++
++      AC_DEFINE([HAVE_HMAC_CTX_NEW], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_HMAC_CTX_FREE], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_HMAC_CTX_RESET], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EVP_MD_CTX_NEW], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EVP_MD_CTX_FREE], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EVP_MD_CTX_RESET], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EVP_CIPHER_CTX_RESET], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_OPENSSL_VERSION], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_SSL_CTX_GET_DEFAULT_PASSWD_CB], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_SSL_CTX_GET_DEFAULT_PASSWD_CB_USERDATA], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_SSL_CTX_SET_SECURITY_LEVEL], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_X509_GET0_NOTBEFORE], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_X509_GET0_NOTAFTER], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_X509_GET0_PUBKEY], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_X509_STORE_GET0_OBJECTS], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_X509_OBJECT_FREE], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_X509_OBJECT_GET_TYPE], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EVP_PKEY_ID], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EVP_PKEY_GET0_RSA], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EVP_PKEY_GET0_DSA], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EVP_PKEY_GET0_EC_KEY], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_SET_FLAGS], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_BITS], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_GET0_KEY], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_DSA_GET0_PQG], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_DSA_BITS], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_NEW], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_FREE], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_SET_PUB_ENC], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_SET_PUB_DEC], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_SET_PRIV_ENC], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_SET_PRIV_DEC], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_SET_INIT], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_SET_SIGN], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_SET_FINISH], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_SET0_APP_DATA], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_RSA_METH_GET0_APP_DATA], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++      AC_DEFINE([HAVE_EC_GROUP_ORDER_BITS], [1], [Emulate AC_CHECK_FUNCS since these are defined as macros])
++
++      if test "${enable_wolfssl_options_h}" = "yes"; then
++              AC_DEFINE([EXTERNAL_OPTS_OPENVPN], [1], [Include options.h from wolfSSL library])
++      else
++              AC_DEFINE([WOLFSSL_USER_SETTINGS], [1], [Use custom user_settings.h file for wolfSSL library])
++      fi
++
++      have_export_keying_material="yes"
++
++      CFLAGS="${saved_CFLAGS}"
++      LIBS="${saved_LIBS}"
++
++      AC_DEFINE([ENABLE_CRYPTO_WOLFSSL], [1], [Use wolfSSL crypto library])
++      AC_DEFINE([ENABLE_CRYPTO_OPENSSL], [1], [Use wolfSSL openssl compatibility layer])
++      CRYPTO_CFLAGS="${WOLFSSL_CFLAGS}"
++      CRYPTO_LIBS="${WOLFSSL_LIBS}"
+ else
+       AC_MSG_ERROR([Invalid crypto library: ${with_crypto_library}])
+ fi
+--- a/src/openvpn/syshead.h
++++ b/src/openvpn/syshead.h
+@@ -582,7 +582,8 @@ socket_defined(const socket_descriptor_t
+ /*
+  * Do we have CryptoAPI capability?
+  */
+-#if defined(_WIN32) && defined(ENABLE_CRYPTO_OPENSSL)
++#if defined(_WIN32) && defined(ENABLE_CRYPTO_OPENSSL) && \
++      !defined(ENABLE_CRYPTO_WOLFSSL)
+ #define ENABLE_CRYPTOAPI
+ #endif
index a99f9236443f68017db6f98cd333bb3ce7f85c37..267f62049064fb72c4b7520788babfd76e2373bd 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1077,68 +1077,15 @@ dnl
+@@ -1183,68 +1183,15 @@ dnl
  AC_ARG_VAR([LZ4_CFLAGS], [C compiler flags for lz4])
  AC_ARG_VAR([LZ4_LIBS], [linker flags for lz4])
  if test "$enable_lz4" = "yes" && test "$enable_comp_stub" = "no"; then
index b51ccd6a1c4e8b8b5cf156c750cec722e18aa571..c2b0cc4b04ae2010cb888d6d1da69caf3065df2d 100755 (executable)
@@ -7,4 +7,7 @@ case "$1" in
        "openvpn-openssl")
                openvpn --version | grep "$2.*SSL (OpenSSL)"
                ;;
+       "openvpn-wolfssl")
+               openvpn --version | grep "$2.*SSL (OpenSSL)"
+               ;;
 esac
index 8bed4d288de7addd0c80e63eaa03d39ad49cb77a..381bc28d2b77eb07e26974270c517264621fe800 100644 (file)
@@ -8,7 +8,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
 PKG_HASH:=b0b97f49848a1758b64bc0b99a596c1583ea525477193f3c01905f5163a4f5cf
 
-PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
+PKG_MAINTAINER:=Peter van Dijk <peter.van.dijk@powerdns.com>
 PKG_LICENCE:=GPL-2.0-only
 PKG_LICENCE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:powerdns:recursor
index 2bb4039c3a38075dc691dd8596be4d7bd489bb9f..256ad04113f1591649c71b15a2e539b3afe39240 100644 (file)
@@ -8,7 +8,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
 PKG_HASH:=40cb81d9e0d34edcc7c95435a06125bde0bd1a51692e1db52413e31d7ede0b39
 
-PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
+PKG_MAINTAINER:=Peter van Dijk <peter.van.dijk@powerdns.com>
 PKG_LICENCE:=GPL-2.0-only
 PKG_LICENCE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:powerdns:authoritative
index 4c9cd618418613aa8a61300fc7cf072f2247dc6e..298625f649cdb5d6ff8d18a182466c433ddc6fa4 100644 (file)
@@ -20,7 +20,7 @@ PKG_MAINTAINER:=Diana Dragusin <diana.dragusin@nccgroup.com>, \
 PKG_LICENSE:=GPL-3.0-only
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_SOURCE_SUBDIR:=src
 
index 78fed2d0a2e543e92a3cb4f338e97faff0e2a943..f06cdcadeaf45833ccee5dda51bf46f72fb7027e 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/ratechecker
   SECTION:=net
index 99a719be8d6794b6a78cf8100ad4ab96e8725da6..1f804b05a47491aa210d640afea825db6a41bcaf 100644 (file)
@@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-ccnet
 PKG_VERSION:=7.1.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/haiwen/ccnet-server/tar.gz/v$(PKG_VERSION)-server?
 PKG_HASH:=11e5281c239474756ed606bffe8f24c1089a3a9eb2502cfac7815d25ebc4585a
 
-PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>, Jeffery To <jeffery.to@gmail.com>
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=AGPL-3.0-only
 PKG_LICENSE_FILES:=LICENSE.txt
 
index 297e9ab92d197ebe311eaed2feb51ab3f0216a33..0e4e8af24c1b99e41b30d4a22389f285f7439534 100644 (file)
@@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-seahub
 PKG_VERSION:=7.1.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/haiwen/seahub/tar.gz/v$(PKG_VERSION)-server?
 PKG_HASH:=cc7f5a1642d203b2390ae3c30c8a5546d1e829d9d1a5ddf686e558292746ce5c
 
-PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>, Jeffery To <jeffery.to@gmail.com>
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE.txt
 
index 4668f6767b08467927ffaf2013233bdc156e7794..156194b770eb3c20c9ceb110a2c2640295f48476 100644 (file)
@@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-server
 PKG_VERSION:=7.1.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/haiwen/seafile-server/tar.gz/v$(PKG_VERSION)-server?
 PKG_HASH:=407a6243f754e366ce6754a2aa643574aa7742d4e81b7cc350dea348f3063707
 
-PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>, Jeffery To <jeffery.to@gmail.com>
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=AGPL-3.0-only
 PKG_LICENSE_FILES:=LICENSE.txt
 
index 8ccb3f5e754d7b542c9a6bca9bd72c537112d3e6..8c4025f87564378ecfbd19c57d78e0299a24e5f9 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:snort:snort
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/snort3
   SUBMENU:=Firewall
index f9dca573939e9c982ccadf2c6db2ed2deb56e271..748a0d40a787f7ab7ca6a6ffa05ab3ee7f0a94b7 100644 (file)
@@ -23,7 +23,7 @@ PKG_BUILD_DEPENDS:=softethervpn5/host
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/nls.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/softethervpn5/Default
   SECTION:=net
index 04032a467f8d7901c377e5a0aa948061dacd4c6c..3ed0fff534c69e4dbc113bf1b05778f87765aa5b 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/spawn-fcgi
   SUBMENU:=Web Servers/Proxies
index f816ef243317c3a662ca76e7d0fbfc3f04bb86b1..973131794e6f6e5ef21bf0d1b4b6d1aa9ce88b5f 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sstp-client
-PKG_VERSION:=1.0.13
-PKG_RELEASE:=1
+PKG_VERSION:=1.0.15
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/sstp-client/$(PKG_VERSION)
-PKG_HASH:=961258fca0795d8ad60b047942cf7cb53d025d353fd1e4ba08c2b75799f5321b
+PKG_HASH:=8484aa51fbfbe418a0ebad58ad20a8ee1c46ed71f800be18bcd23b42e6baad64
 
 PKG_MAINTAINER:=Federico Di Marco <fededim@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
index e2d4e3224e92fd78cfd8ab4617653b7e71a17e97..3d2eb9462c991076c981266b35e4fc440a3df970 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/sstp-client.c
 +++ b/src/sstp-client.c
-@@ -477,6 +477,7 @@ static status_t sstp_init_ssl(sstp_clien
+@@ -542,6 +542,7 @@ static status_t sstp_init_ssl(sstp_clien
      int retval = SSTP_FAIL;
      int status = 0;
  
@@ -8,7 +8,7 @@
      /* Initialize the OpenSSL library */
      status = SSL_library_init();
      if (status != 1)
-@@ -490,6 +491,9 @@ static status_t sstp_init_ssl(sstp_clien
+@@ -555,6 +556,9 @@ static status_t sstp_init_ssl(sstp_clien
  
      /* Create a new crypto context */
      client->ssl_ctx = SSL_CTX_new(SSLv23_client_method());
index f68bf1b98d71d10774114961d0fa3ff6fd198333..09452d75194969e443c2fab9eeaca4d5c4ae4877 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=strongswan
 PKG_VERSION:=5.9.2
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://download.strongswan.org/ https://download2.strongswan.org/
index a1fb7c31131c8541bebc9ae7ccd53de7651d3c25..f83d11fc31f1a4a1370255235272c524e2952419 100644 (file)
@@ -4,7 +4,7 @@ START=90
 STOP=10
 
 USE_PROCD=1
-PROG=/usr/lib/ipsec/starter
+PROG=/usr/lib/ipsec/charon
 
 . $IPKG_INSTROOT/lib/functions.sh
 . $IPKG_INSTROOT/lib/functions/network.sh
@@ -614,7 +614,7 @@ start_service() {
 
        procd_open_instance
 
-       procd_set_param command $PROG --daemon charon --nofork
+       procd_set_param command $PROG
 
        procd_set_param file $SWANCTL_CONF_FILE
        procd_append_param file /etc/swanctl/conf.d/*.conf
index 0fa02d87a2f996ec32f4b89780ce07bc1e0dedba..ed0de7cb65bce264560fa5cec859604333617afc 100644 (file)
@@ -5,22 +5,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=stubby
-PKG_VERSION:=0.3.0
-PKG_RELEASE:=1
+PKG_VERSION:=0.4.0
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/getdnsapi/$(PKG_NAME)
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-PKG_MIRROR_HASH:=f1585aa6881bf39c2c8f99df045d5739bb78403417a1e827644cb202fa4280f0
+PKG_MIRROR_HASH:=bc5f604da1b70287a6c3d89eac2e13ce8bca52840e7b72ab098a3deeb9935082
 
-PKG_MAINTAINER:=Jonathan Underwood <jonathan.underwood@gmail.com>
+PKG_MAINTAINER:=
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=COPYING
 
-CMAKE_INSTALL:=1
-
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/stubby/Default
   TITLE:=stubby
@@ -47,6 +45,11 @@ define Package/stubby/conffiles
 /etc/config/stubby
 endef
 
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       rm $(PKG_BUILD_DIR)/cmake/modules/FindLibidn2.cmake $(PKG_BUILD_DIR)/cmake/modules/FindLibunbound.cmake
+endef
+
 define Package/stubby/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/stubby $(1)/usr/sbin/stubby
diff --git a/net/stubby/patches/stubby-0.3.0-fix-config-install.patch b/net/stubby/patches/stubby-0.3.0-fix-config-install.patch
deleted file mode 100644 (file)
index 5390125..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -115,14 +115,26 @@ install(FILES AUTHORS COPYING ChangeLog
- # Ensure the file gets CRLF line endings on Windows.
- file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/stubby.yml INPUT ${CMAKE_CURRENT_SOURCE_DIR}/stubby.yml.example)
--# Copy to destination iff no destination file exists.
-+
-+# Copy stubby.yml to destination iff no destination file exists.
-+# This is complicated by (a) not being able to use generators, due to
-+# CMake minimum version requirement, and (b) to account for DESTDIR.
-+# And in the latter case, if we're adding DESTDIR to the start of the
-+# path, we must on Windows remove any initial drive letter. That's what
-+# INSTALL appears to do.
- install(CODE "\
--  set(targetdir ${STUBBYCONFDIR})\n\
--  if (\$ENV{DESTDIR})\n\
--    set(targetdir \$ENV{DESTDIR}/\${targetdir})\n\
-+  set(targetdir \"${STUBBYCONFDIR}\")\n\
-+  set(destdir \"\$ENV{DESTDIR}\")\n\
-+  if (destdir)\n\
-+    string(REGEX REPLACE \"^([A-Z]:)?/(.*)\" \"\\\\2\" newtarget \"\${targetdir}\")\n\
-+    if (newtarget)\n\
-+      set(targetdir \"\${newtarget}\")\n\
-+    endif ()\n\
-+    set(targetdir \"\${destdir}/\${newtarget}\")\n\
-   endif ()\n\
--  if (NOT EXISTS \${targetdir}/stubby.yml)\n\
--    file(COPY ${CMAKE_CURRENT_BINARY_DIR}/stubby.yml DESTINATION \${targetdir})\n\
-+  if (NOT EXISTS \"\${targetdir}/stubby.yml\")\n\
-+    file(COPY \"${CMAKE_CURRENT_BINARY_DIR}/stubby.yml\" DESTINATION \"\${targetdir}\")\n\
-+    message(\"-- Installing: \${targetdir}/stubby.yml\")\n\
-   endif ()")
- if (APPLE)
index fe812f52b88313a97078ea9b67185d9e90f7f5be..8b8c78ab616377a79b976cb3d6c92a3edde127ec 100644 (file)
@@ -24,7 +24,7 @@ PKG_BUILD_DEPENDS:=swig/host
 PYTHON3_PKG_BUILD:=0
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 include ../../lang/python/python3-package.mk
 
 define Package/libsysrepo
index d2761bb6bd094996117aa02e4e976678403ae7ef..945693925ff30531e01460f433f2303227cbcdf1 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tinc
 PKG_VERSION:=1.1-git
-PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=http://tinc-vpn.org/git/tinc
index 640071f116550ea74fe441dd954e79898efcd28f..af2c3bcac0d1d0d4dc352fda076cf19d82a45052 100644 (file)
@@ -88,26 +88,41 @@ prepare_host() {
                [ "$2" != "$n" ] && return 1
        fi
 
+       HOST_CONF_FILE="$TMP_TINC/$n/hosts/$s"
+       MANDATORY_PARAM_IN_UCI=0
+       [ ! -f "/etc/tinc/$n/hosts/$s" ] && {
+               config_get pk "$s" "PublicKey"
+               config_get na "$s" "Name"
+               if [ -n "$pk" -a -n "$na" ] ; then
+                       HOST_CONF_FILE="$TMP_TINC/$n/hosts/$na"
+                       MANDATORY_PARAM_IN_UCI=1
+               fi
+       }
+
        # host disabled?
        section_enabled "$s" || {
-               [ -f "$TMP_TINC/$n/hosts/$s" ] && rm "$TMP_TINC/$n/hosts/$s"
+               [ -f "$HOST_CONF_FILE" ] && rm "$HOST_CONF_FILE"
                return 1
        }
 
        [ ! -f "/etc/tinc/$n/hosts/$s" ] && {
-               echo -n "tinc: Warning, public key for $s for network $n "
-               echo -n "missing in /etc/tinc/$n/hosts/$s, "
-               echo "skipping configuration of $s"
-               return 1
+               if [ "$MANDATORY_PARAM_IN_UCI" -eq 1 ] ; then
+                       touch "$HOST_CONF_FILE" ;
+               else
+                       echo -n "tinc: Warning, public key for $s for network $n "
+                       echo -n "missing in /etc/tinc/$n/hosts/$s, "
+                       echo "skipping configuration of $s"
+                       return 1
+               fi
        }
 
        # append flags
-       append_conf_bools "$s" "$TMP_TINC/$n/hosts/$s" \
+       append_conf_bools "$s" "$HOST_CONF_FILE" \
                ClampMSS IndirectData PMTUDiscovery TCPOnly
 
        # append params
-       append_conf_params "$s" "$TMP_TINC/$n/hosts/$s" \
-               Address Cipher Compression Digest MACLength PMTU \
+       append_conf_params "$s" "$HOST_CONF_FILE" \
+               Address Cipher Compression Digest Ed25519PublicKey MACLength Name PMTU \
                Port PublicKey PublicKeyFile Subnet
 }
 
index 06dedd88c8c0cbdce3a52ac3740bdaf6012fb9b3..5f5c3fae8cf18adc2126254dabe22ee7046f743b 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE_FILES:=LICENSE
 PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/umurmur/Default
   SECTION:=net
index 7277bf721c902a9b98f8119a2cf73abd2dab19a5..e673b940656761df023a5196c62992fbd2377e8d 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/vallumd
   SECTION:=net
index 4e75f75b95cda4cc986b66a39b4a47a1cb3a5d8b..241808cb06c36bad0bf837202d3762c598c10efa 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vsftpd
-PKG_VERSION:=3.0.3
-PKG_RELEASE:=3
+PKG_VERSION:=3.0.4
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://security.appspot.com/downloads/
-PKG_HASH:=9d4d2bf6e6e2884852ba4e69e157a2cecd68c5a7635d66a3a8cf8d898c955ef7
+PKG_HASH:=6b9421bd27e8a6cdeed5b31154f294a20b003a11a26c09500715a0a6b1b86a26
 
 PKG_MAINTAINER:=Cezary Jackiewicz <cezary@eko.one.pl>
 PKG_LICENSE:=GPLv2
index 8965da4179c9aa3dbbf554660abfc8774b25e8af..355e219f750f639c5689b989647469fc4e99e419 100644 (file)
@@ -1,6 +1,6 @@
 --- a/tunables.c
 +++ b/tunables.c
-@@ -254,7 +254,7 @@ tunables_load_defaults()
+@@ -261,7 +261,7 @@ tunables_load_defaults()
    /* -rw------- */
    tunable_chown_upload_mode = 0600;
  
index 0db80b975d929e4093a209d4d68478f5c0b16784..e7c06a80303452f824fdac44115be1e43bb5d78d 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
  #include <errno.h>
  #include <limits.h>
  
-@@ -59,8 +62,12 @@ ssl_init(struct vsf_session* p_sess)
+@@ -66,8 +69,12 @@ ssl_init(struct vsf_session* p_sess)
      SSL_CTX* p_ctx;
      long options;
      int verify_option = 0;
@@ -33,7 +33,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
      if (p_ctx == NULL)
      {
        die("SSL: could not allocate SSL context");
-@@ -120,6 +127,7 @@ ssl_init(struct vsf_session* p_sess)
+@@ -139,6 +146,7 @@ ssl_init(struct vsf_session* p_sess)
      {
        die("SSL: RNG is not seeded");
      }
@@ -41,7 +41,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
      {
        EC_KEY* key = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
        if (key == NULL)
-@@ -129,6 +137,7 @@ ssl_init(struct vsf_session* p_sess)
+@@ -148,6 +156,7 @@ ssl_init(struct vsf_session* p_sess)
        SSL_CTX_set_tmp_ecdh(p_ctx, key);
        EC_KEY_free(key);
      }
@@ -49,7 +49,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
      if (tunable_ssl_request_cert)
      {
        verify_option |= SSL_VERIFY_PEER;
-@@ -660,7 +669,9 @@ ssl_cert_digest(SSL* p_ssl, struct vsf_s
+@@ -685,7 +694,9 @@ ssl_cert_digest(SSL* p_ssl, struct vsf_s
  static char*
  get_ssl_error()
  {
index 1fac4a3126fd78e24f2cac7be18e795af4966456..cf1018ab5e680268fed8465ed35c6e775fe94e8e 100644 (file)
@@ -79,24 +79,24 @@ define Package/xray-core/conffiles
 /etc/config/xray
 endef
 
-GEOIP_VER:=202104010913
+GEOIP_VER:=202106030115
 GEOIP_FILE:=geoip.dat.$(GEOIP_VER)
 
 define Download/geoip
   URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/
   URL_FILE:=geoip.dat
   FILE:=$(GEOIP_FILE)
-  HASH:=f94e464f7f37e6f3c88c2aa5454ab02a4b840bc44c75c5001719a618916906cf
+  HASH:=acf231d7c6461d088ae479fe0c1cb143b5ee3cf7048a897c5a9b7807ab7005df
 endef
 
-GEOSITE_VER:=20210401091829
+GEOSITE_VER:=20210531212831
 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER)
 
 define Download/geosite
   URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/
   URL_FILE:=dlc.dat
   FILE:=$(GEOSITE_FILE)
-  HASH:=ee9778dc00b703905ca1f400ad13dd462eae52c5aee6465f0a7543b0232c9d08
+  HASH:=332bbe53af49582dbf89bda04ee5e60e474f9293fc368ab55b517fdcd4a78ed2
 endef
 
 define Build/Prepare
index 87174bb6b50ec3599d766912cfd88d8e3834122c..c967d106a11c5a3610364862a6c244f29e8fb8be 100644 (file)
@@ -1,7 +1,6 @@
 
 config xray 'enabled'
        option enabled '0'
-       option fullcone '1'
 
 config xray 'config'
        option confdir '/etc/xray'
index 683c7353b8f4f73e5a52ae9794cf63aa1ab626ad..e0ebf092c7c8061341281369936a3a4d9bba31e8 100755 (executable)
@@ -19,14 +19,12 @@ start_service() {
        local datadir
        local dialer
        local format
-       local fullcone
 
        config_get confdir "config" "confdir"
        config_get conffiles "config" "conffiles"
        config_get datadir "config" "datadir" "/usr/share/xray"
        config_get dialer "config" "dialer"
        config_get format "config" "format" "json"
-       config_get fullcone "enabled" "fullcone" "0"
 
        procd_open_instance "$CONF"
        procd_set_param command "$PROG" run
@@ -39,7 +37,6 @@ start_service() {
        }
        [ -n "$format" ] && procd_append_param command -format "$format"
        [ -n "$dialer" ] && procd_set_param env XRAY_BROWSER_DIALER="$dialer"
-       [ "$fullcone" -eq "0" ] && procd_set_param env XRAY_CONE_DISABLED="true"
        procd_set_param env XRAY_LOCATION_ASSET="$datadir"
        procd_set_param file $conffiles
 
index f40f546e619cedc0d1583c1afd548995d833e0db..694247e364c037e923ef7e56ed6f1a3ec3580283 100644 (file)
@@ -272,7 +272,7 @@ $(eval $(call webskin,ice))
 PKG_CONFIG_DEPENDS += $(patsubst %,CONFIG_PACKAGE_%,$(ZNC_MODULES))
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += \
        -DWANT_ICU=O$(if $(CONFIG_ZNC_ICU),N,FF) \
index 8a7af1368553fedde5904242a6c40789290e5fd4..890553ab681c38ecdb1e7a410537f0899dcfcc0a 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mpd
-PKG_VERSION:=0.22.6
-PKG_RELEASE:=4
+PKG_VERSION:=0.22.8
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.musicpd.org/download/mpd/0.22/
-PKG_HASH:=2be149a4895c3cb613477f8cf1193593e3d8a1d38a75ffa7d32da8c8316a4d5e
+PKG_HASH:=9617ed08c9ffafcf5f925819251f6b90df3f4f73cf2838c41033e1962104286d
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-or-later
index 33cd3d1022b9465647c54ba6412617b22880e25f..75ad50efbbf89118efd891c75a42afe3ac282b05 100644 (file)
        for (unsigned i = 0; i < unsigned(TAG_NUM_OF_ITEM_TYPES); ++i)
                names[tag_item_names[i]] = TagType(i);
  
-@@ -61,7 +67,7 @@ main(int argc, char **argv)
-       char first = 0;
-       for (const auto &i : names) {
--              const std::string_view name = i.first;
-+              const string_view name = i.first;
-               const TagType tag = i.second;
-               if (name.front() != first) {
index 460f7beb8f5e4f47f2a6394461c7edc76870ca2c..34f76757ac7d1636521d71ba4e83dfcd5ae656d1 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mpg123
-PKG_VERSION:=1.26.3
-PKG_RELEASE:=3
+PKG_VERSION:=1.27.2
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/mpg123
-PKG_HASH:=30c998785a898f2846deefc4d17d6e4683a5a550b7eacf6ea506e30a7a736c6e
+PKG_HASH:=52f6ceb962c05db0c043bb27acf5a721381f5f356ac4610e5221f50293891b04
 
 PKG_MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
 PKG_LICENSE_FILES:=COPYING
index 6519e20269a2a47b043b2671f95537182b70cdf4..0465a01f79b9dc0bf1deaa8be00d2899d4e1a4a0 100644 (file)
@@ -23,7 +23,7 @@ PKG_LICENSE_FILES:=LICENSE.txt
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/portaudio
   SECTION:=sound
index f65a302c514703d3bf677c7c9b1dc5c250a7f7a6..c49683cd13293fc2cdbf93053eb94f05a4f2d3a0 100644 (file)
@@ -7,12 +7,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shairport-sync
-PKG_VERSION:=3.3.7
-PKG_RELEASE:=1
+PKG_VERSION:=3.3.8
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/mikebrady/shairport-sync/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=7f8d4ecec53f2f681a962467bf09205568fc936c8c31a9ee07b1bd72d3d95b12
+PKG_HASH:=c92f9a2d86dd1138673abc66e0010c94412ad6a46da8f36c3d538f4fa6b9faca
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
                Mike Brady <mikebrady@eircom.net>
@@ -77,6 +77,7 @@ endef
 
 CONFIGURE_ARGS += \
        --with-alsa \
+       --with-libdaemon \
        --with-metadata
 
 ifeq ($(BUILD_VARIANT),openssl)
index 05c21e126d9222bbc23e9776cc01b78b7000ecc5..ac44eb616cde41ff1854ffb7055f28d527da0b34 100644 (file)
@@ -25,7 +25,7 @@
  endif
 --- a/configure.ac
 +++ b/configure.ac
-@@ -19,7 +19,6 @@ with_os=`echo ${with_os} | tr '[[:upper:
+@@ -23,7 +23,6 @@ fi
  
  # Checks for programs.
  AC_PROG_CC
index 05612ff250b4fed9523b023e85118475c03dea9c..2e19368946bd0c0f374e75c56fd72542e0abe48c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=upmpdcli
-PKG_VERSION:=1.5.11
+PKG_VERSION:=1.5.12
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads
-PKG_HASH:=7c8c6ab866114699405223c60457448dcce35fc13e1e374f68b60eefc55f4f04
+PKG_HASH:=1d7b6ab360c2549a7e3eff4f261471761dd837e18327a3ca29de1981c090ff3b
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1-or-later
@@ -42,8 +42,6 @@ define Package/upmpdcli/config
        source "$(SOURCE)/Config.in"
 endef
 
-TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lm)
-
 define Package/upmpdcli/conffiles
 /etc/config/upmpdcli
 endef
diff --git a/utils/apparmor/Makefile b/utils/apparmor/Makefile
new file mode 100644 (file)
index 0000000..c72ea68
--- /dev/null
@@ -0,0 +1,216 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=apparmor
+PKG_VERSION:=3.0.1
+PKG_RELEASE:=$(AUTORELEASE)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://gitlab.com/apparmor/apparmor.git
+PKG_SOURCE_VERSION:=0325ba06da6eeb5acf3e568063a08136fd0913e0
+PKG_MIRROR_HASH:=303ceca041ad8023fa44cdda366448d60b6299790266834b4078d30b70ad27f9
+
+PKG_LICENSE:=GPL-2.0-only
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
+BUILDONLY:=1
+
+PKG_BUILD_DEPENDS:=swig/host
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+include ../../../packages/lang/python/python3-package.mk
+
+define Package/apparmor/Default
+  SECTION:=utils
+  CATEGORY:=Utilities
+  SUBMENU:=AppArmor
+  URL:=https://apparmor.net
+endef
+
+define Package/libapparmor
+  TITLE:=AppArmor library
+  SECTION:=libs
+  CATEGORY:=Libraries
+  URL:=https://apparmor.net
+endef
+
+define Package/python3-apparmor
+  TITLE:=AppArmor Python bindings
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  URL:=https://apparmor.net
+  DEPENDS:=+libapparmor +python3
+endef
+
+define Package/apparmor-utils
+  $(call Package/apparmor/Default)
+  TITLE:=AppArmor utils
+  DEPENDS:=$(INTL_DEPENDS) +libapparmor +python3-apparmor +python3 +python3-readline +python3-psutil +ss +findutils-xargs
+endef
+
+define Package/apparmor-profiles
+  $(call Package/apparmor/Default)
+  TITLE:=AppArmor default profiles
+endef
+
+define Package/libapparmor/description
+  Library to support AppArmor userspace utilities
+endef
+
+define Package/apparmor-utils/description
+  AppArmor application security system init script and
+  userspace utils to assist with AppArmor profile management
+endef
+
+define Package/apparmor-profiles/description
+  A collection of profiles for the AppArmor application security system
+endef
+
+CONFIGURE_PATH=libraries/libapparmor
+
+TARGET_LDFLAGS += \
+               -L$(PYTHON3_LIB_DIR)
+
+CONFIGURE_VARS += \
+               SHELL=$(bash) \
+               PYTHON_VERSION=$(PYTHON3_VERSION) \
+               PYTHON_VERSIONS=$(PYTHON3) \
+               PYTHON=$(PYTHON3) \
+               PYTHON_CONFIG=$(STAGING_DIR_ROOT)/host/bin/python$(PYTHON3_VERSION)-config \
+               PYTHON_LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(PYTHON3_LIB_DIR)" \
+               PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION)" \
+               PYTHON_LDFLAGS="-I$(PYTHON3_INC_DIR) -L$(STAGING_DIR)/usr/lib -L$(PYTHON3_LIB_DIR)" \
+               PYTHON_EXTRA_LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(PYTHON3_LIB_DIR)/config-$(PYTHON3_VERSION) -lpthread -ldl -lm -lz -lpython$(PYTHON3_VERSION)" \
+               ac_cv_path_PYTHON_CONFIG="$(STAGING_DIR)/host/bin/python$(PYTHON3_VERSION)-config"
+
+CONFIGURE_ARGS += \
+               --with-python \
+               --without-perl \
+               --without-ruby \
+               --disable-man-pages
+
+ifeq ($(CONFIG_BUILD_NLS),y)
+       MAKE_VARS += WITH_LIBINTL=1
+       MAKE_FLAGS += WITH_LIBINTL=1
+endif
+
+APPARMOR_CFLAGS = -I$(PKG_BUILD_DIR)/libraries/libapparmor/include
+APPARMOR_LDFLAGS = -L$(PKG_BUILD_DIR)/libraries/libapparmor/src/.libs
+
+define Build/Configure
+       $(MAKE) -C $(PKG_BUILD_DIR)/libraries/libapparmor configure
+       $(RM) $(PKG_BUILD_DIR)/libraries/libapparmor/Makefile
+       $(SED) 's#ac_cv_path_PYTHON_CONFIG=#ac_cv_path_X_PYTHON_CONFIG=#g' $(PKG_BUILD_DIR)/libraries/libapparmor/configure
+       $(call Build/Configure/Default)
+endef
+
+define Build/Compile
+       # Building libapparmor
+       +$(MAKE_VARS) \
+               CFLAGS="$(TARGET_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/libraries/libapparmor \
+               $(MAKE_FLAGS)
+       # Building parser
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) \
+               CFLAGS="$(TARGET_CFLAGS) $(APPARMOR_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS) $(APPARMOR_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS) $(APPARMOR_LDFLAGS) -lgcc_s" USE_SYSTEM=0 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/parser \
+               $(MAKE_FLAGS) apparmor_parser
+       # Building binutils
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) \
+               CFLAGS="$(TARGET_CFLAGS) $(APPARMOR_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS) $(APPARMOR_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS) $(APPARMOR_LDFLAGS)" USE_SYSTEM=0 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/binutils \
+               $(MAKE_FLAGS)
+       # Building utils
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) \
+               CFLAGS="$(TARGET_CFLAGS) $(APPARMOR_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS) $(APPARMOR_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS) $(APPARMOR_LDFLAGS)" USE_SYSTEM=0 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/utils \
+               $(MAKE_FLAGS)
+       # Building profiles
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) \
+               CFLAGS="$(TARGET_CFLAGS) $(APPARMOR_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS) $(APPARMOR_CFLAGS")" LDFLAGS="$(TARGET_LDFLAGS) $(APPARMOR_LDFLAGS)" USE_SYSTEM=0 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/profiles \
+               $(MAKE_FLAGS)
+endef
+
+define Build/Install
+       # Make sure we have python's setup tools installed
+       $(if $(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS), \
+               $(call HostPython3/PipInstall,$(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS)) \
+       )
+       $(INSTALL_DIR) $(PKG_INSTALL_DIR)-libapparmor $(PKG_INSTALL_DIR)-utils $(PKG_INSTALL_DIR)-profiles
+       # Installing libapparmor
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
+               CFLAGS="$(TARGET_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" \
+               $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/libraries/libapparmor \
+               $(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-libapparmor" install
+       # Installing parser
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
+               CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" USE_SYSTEM=1 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/parser \
+               $(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-utils" install
+       # Installing binutils
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
+               CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" USE_SYSTEM=1 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/binutils \
+               $(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-utils" install
+       # Installing utils
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
+               CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" USE_SYSTEM=1 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/utils \
+               $(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-utils" install
+       # Installing profiles
+       +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
+               CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" USE_SYSTEM=1 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/profiles \
+               $(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-profiles" install
+endef
+
+define Package/libapparmor/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)-libapparmor/usr/lib/libapparmor.so.1 $(1)/usr/lib/
+       $(LN) libapparmor.so.1 $(1)/usr/lib/libapparmor.so
+endef
+
+define Package/python3-apparmor/install
+       $(INSTALL_DIR) \
+               $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages \
+               $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)-libapparmor/usr/lib/python$(PYTHON3_VERSION)/site-packages/*.egg-info \
+               $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)-libapparmor/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor/*.py \
+               $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)-libapparmor/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor/*.so \
+               $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor/
+       $(LN) -s _LibAppArmor.cpython-$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR).so \
+               $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor/_LibAppArmor.so
+endef
+
+define Package/apparmor-utils/install
+       $(INSTALL_DIR) $(1)/etc/apparmor $(1)/usr/sbin $(1)/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)-utils/sbin/apparmor_parser $(1)/sbin/
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)-utils/etc/apparmor/*.conf $(1)/etc/apparmor/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/etc/apparmor/severity.db $(1)/etc/apparmor/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)-utils/sbin/apparmor_parser $(1)/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)-utils/usr/bin/{aa-exec,aa-easyprof,aa-enabled,aa-features-abi} $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)-utils/usr/sbin/{aa-audit,aa-autodep,aa-cleanprof,aa-complain,aa-decode,aa-disable,aa-enforce,aa-genprof,aa-logprof,aa-mergeprof,aa-notify,aa-remove-unknown,aa-status,aa-unconfined} $(1)/usr/sbin/
+       $(LN) aa-status $(1)/usr/sbin/apparmor_status
+       $(INSTALL_DIR) $(1)/usr/share/apparmor/easyprof/templates $(1)/usr/share/apparmor/easyprof/policygroups
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/share/apparmor/easyprof/templates/* $(1)/usr/share/apparmor/easyprof/templates/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/share/apparmor/easyprof/policygroups/* $(1)/usr/share/apparmor/easyprof/policygroups/
+       $(INSTALL_DIR) $(1)/usr/lib/python3.9/site-packages $(1)/usr/lib/python3.9/site-packages/apparmor $(1)/usr/lib/python3.9/site-packages/apparmor/rule
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/lib/python3.9/site-packages/*.egg-info \
+               $(1)/usr/lib/python3.9/site-packages/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/lib/python3.9/site-packages/apparmor/*.py \
+               $(1)/usr/lib/python3.9/site-packages/apparmor/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/lib/python3.9/site-packages/apparmor/rule/*.py \
+               $(1)/usr/lib/python3.9/site-packages/apparmor/rule
+       $(INSTALL_DIR) $(1)/etc/init.d $(1)/lib/functions
+       $(INSTALL_BIN) ./files/apparmor.sh $(1)/lib/functions/
+       $(INSTALL_BIN) ./files/apparmor.init $(1)/etc/init.d/apparmor
+endef
+
+define Package/apparmor-profiles/install
+       $(INSTALL_DIR) $(1)/etc/apparmor.d $(1)/usr/share/apparmor/extra-profiles
+       $(CP) -aR $(PKG_INSTALL_DIR)-profiles/etc/apparmor.d/** $(1)/etc/apparmor.d/
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)-profiles/usr/share/apparmor/extra-profiles/** $(1)/usr/share/apparmor/extra-profiles/
+endef
+
+$(eval $(call BuildPackage,libapparmor))
+$(eval $(call BuildPackage,python3-apparmor))
+$(eval $(call BuildPackage,apparmor-utils))
+$(eval $(call BuildPackage,apparmor-profiles))
diff --git a/utils/apparmor/files/apparmor.init b/utils/apparmor/files/apparmor.init
new file mode 100755 (executable)
index 0000000..576df39
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh /etc/rc.common
+
+START=75
+USE_PROCD=1
+
+. /lib/functions/apparmor.sh
+
+restart() {
+       apparmor_restart
+}
+
+start_service() {
+       apparmor_start
+}
+
+stop_service() {
+       apparmor_stop
+}
+
+reload_service() {
+       apparmor_reload
+}
diff --git a/utils/apparmor/files/apparmor.sh b/utils/apparmor/files/apparmor.sh
new file mode 100755 (executable)
index 0000000..5e9edb9
--- /dev/null
@@ -0,0 +1,380 @@
+#!/bin/sh
+
+log_write() {
+       local facility=kern.$1
+       logger -t AppArmor -p $facility "$2"
+}
+
+AA_STATUS=/usr/sbin/aa-status
+SECURITYFS=/sys/kernel/security
+SFS_MOUNTPOINT="${SECURITYFS}/apparmor"
+PARSER=/sbin/apparmor_parser
+PARSER_OPTS=
+ADDITIONAL_PROFILE_DIR=
+
+[ -d /etc/apparmor.d ] && PROFILE_DIRS=/etc/apparmor.d ||
+       log_write warning "Unable to find profiles: /etc/apparmor.d"
+
+[ -n "$ADDITIONAL_PROFILE_DIR" ] && [ -d "$ADDITIONAL_PROFILE_DIR" ] &&
+       PROFILE_DIRS="$PROFILE_DIRS $ADDITIONAL_PROFILE_DIR"
+
+dir_is_empty() {
+       [ "$(du -s $1 | cut -f 1)" -eq 0 ] && return 0 || return 1
+}
+
+profiles_loaded_count() {
+
+       [ -f ${SFS_MOUNTPOINT}/profiles ] &&
+               return $(cat "${SFS_MOUNTPOINT}/profiles" | wc -l) || return 0
+}
+
+is_profiles_loaded() {
+
+       [ -f ${SFS_MOUNTPOINT}/profiles ] && {
+               rc=$(cat "${SFS_MOUNTPOINT}/profiles" | wc -l)
+               [ "$rc" -ne 0 ] && return 0 || return 1
+       }
+       return 1
+}
+
+is_container_with_internal_policy() {
+
+       local ns_stacked_path="${SFS_MOUNTPOINT}/.ns_stacked"
+       local ns_name_path="${SFS_MOUNTPOINT}/.ns_name"
+       local ns_stacked
+       local ns_name
+
+       if ! [ -f "$ns_stacked_path" ] || ! [ -f "$ns_name_path" ]; then
+               return 1
+       fi
+
+       read -r ns_stacked < "$ns_stacked_path"
+       if [ "$ns_stacked" != "yes" ]; then
+               return 1
+       fi
+
+       # LXD and LXC set up AppArmor namespaces starting with "lxd-" and
+       # "lxc-", respectively. Return non-zero for all other namespace
+       # identifiers.
+
+       read -r ns_name < "$ns_name_path"
+       if [ "${ns_name#lxd-*}" = "$ns_name" ] && \
+          [ "${ns_name#lxc-*}" = "$ns_name" ]; then
+               return 1
+       fi
+
+       return 0
+}
+
+skip_profile() {
+
+       local profile="$1"
+
+       if [ "${profile%.rpmnew}"   != "$profile" ] || \
+          [ "${profile%.rpmsave}"  != "$profile" ] || \
+          [ "${profile%.orig}"     != "$profile" ] || \
+          [ "${profile%.rej}"      != "$profile" ] || \
+          [ "${profile%\~}"        != "$profile" ] ; then
+               return 1
+       fi
+
+       # Silently ignore the dpkg, pacman, ipk and xbps files
+
+       if [ "${profile%.dpkg-new}"     != "$profile" ] || \
+          [ "${profile%.dpkg-old}"     != "$profile" ] || \
+          [ "${profile%.dpkg-dist}"    != "$profile" ] || \
+          [ "${profile%.dpkg-bak}"     != "$profile" ] || \
+          [ "${profile%.dpkg-remove}"  != "$profile" ] || \
+          [ "${profile%.ipk}"          != "$profile" ] || \
+          [ "${profile%.ipk-new}"      != "$profile" ] || \
+          [ "${profile%.ipk-old}"      != "$profile" ] || \
+          [ "${profile%.ipk-dist}"     != "$profile" ] || \
+          [ "${profile%.ipk-bak}"      != "$profile" ] || \
+          [ "${profile%.ipk-remove}"   != "$profile" ] || \
+          [ "${profile%.pacsave}"      != "$profile" ] || \
+          [ "${profile%.pacnew}"       != "$profile" ] ; then
+               return 2
+       fi
+
+       $(echo "$profile" | grep -E -q '^.+\.new-[0-9\.]+_[0-9]+$'); [ "$?" -eq 0 ] && return 2
+
+       return 0
+}
+
+__parse_profiles_dir() {
+
+       local parser_cmd="$1"
+       local profile_dir="$2"
+       local status=0
+
+       [ -x "$PARSER" ] || {
+               log_write err "Unable to execute AppArmor parser"
+               return 1
+       }
+
+       [ -d "$profile_dir" ] || {
+               log_write warning "AppArmor profiles not found: $profile_dir"
+               return 1
+       }
+
+       dir_is_empty "$profile_dir"; [ "$?" -eq 0 ] && {
+               log_write err "No profiles found in $profile_dir"
+               return 1
+       }
+
+       local nprocs=$(cat /proc/cpuinfo |grep "processor\t:"|wc -l)
+       local rc=0
+       local xargs_args=""
+       [ "$nprocs" -ge 2 ] && xargs_args="--max-procs=$nprocs"
+
+       "$PARSER" $PARSER_OPTS "$parser_cmd" -- "$profile_dir" || {
+
+               for profile in "$profile_dir"/*; do
+                       skip_profile "$profile"
+                       skip=$?
+                       [ "$skip" -ne 0 ] && {
+                               [ "$skip" -ne 2 ] && log_write info "Skipped loading profile $profile"
+                               continue
+                       }
+                       [ -f "$profile" ] || continue
+                       echo "$profile"
+               done | \
+
+               # Use xargs to parallelize calls to the parser over all CPUs
+
+               /usr/libexec/xargs-findutils -n1 -d"\n" $xargs_args \
+                       "$PARSER" $PARSER_OPTS "$parser_cmd" --
+
+               [ "$?" -ne 0 ] && {
+                       rc=1
+                       log_write err "At least one profile failed to load"
+               }
+       }
+
+       return $rc
+}
+
+parse_profiles() {
+
+       case "$1" in
+               load)
+                       PARSER_CMD="--add"
+                       PARSER_MSG="Loading profiles"
+                       ;;
+               reload)
+                       PARSER_CMD="--replace"
+                       PARSER_MSG="Reloading profiles"
+                       ;;
+               *)
+                       log_write err "Unknown parameter $1"
+                       log_write info "parse_profiles parameter must be either 'load' or 'reload'"
+                       return 1
+                       ;;
+       esac
+
+       log_write info "$PARSER_MSG"
+
+       [ -w "$SFS_MOUNTPOINT/.load" ] || {
+               log_write err "${SFS_MOUNTPOINT}/.load not writable"
+               return 1
+       }
+
+       [ -f "$PARSER" ] || {
+               log_write err "AppArmor parser not found"
+               return 1
+       }
+
+       # run parser on all profiles
+       local rc=0
+       for profile_dir in $PROFILE_DIRS; do
+               __parse_profiles_dir "$PARSER_CMD" "$profile_dir" || rc=$?
+       done
+
+       return $rc
+}
+
+is_apparmor_loaded() {
+
+       is_securityfs_mounted; [ "$?" -eq 0 ] || {
+               mount_securityfs
+       }
+
+       [ -f "${SFS_MOUNTPOINT}/profiles" ] && return 0
+       [ -d /sys/module/apparmor ] && return 0 || return 1
+}
+
+is_securityfs_mounted() {
+
+       [ -d "$SECURITYFS" ] && {
+               grep -q securityfs /proc/filesystems && grep -q securityfs /proc/mounts
+               return $?
+       }
+       return 1
+}
+
+mount_securityfs() {
+
+       local rc=0
+
+       grep -q securityfs /proc/filesystems; [ "$?" -eq 0 ] && {
+               mount -t securityfs securityfs "$SECURITYFS"
+               rc=$?
+               [ "$rc" -eq 0 ] && log_write info "Mounting securityfs" ||
+                       log_write err "Failed to mount securityfs"
+       }
+       return $rc
+}
+
+apparmor_start() {
+
+       local announced=0
+       is_securityfs_mounted; [ "$?" -ne 0 ] && {
+               log_write info "Starting AppArmor"
+               announced=1
+               mount_securityfs; [ "$?" -eq 0 ] || return $?
+       }
+
+       is_apparmor_loaded; [ "$?" -eq 0 ] || {
+               [ "$announced" -eq 0 ] && log_write info "Starting AppArmor"
+               announced=1
+               log_write err "AppArmor kernel support is not present"
+               return 1
+       }
+
+       [ -d /var/lib/apparmor ] || mkdir -p /var/lib/apparmor > /dev/null
+
+       is_profiles_loaded; [ "$?" -eq 0 ] || {
+               [ "$announced" -eq 0 ] && log_write info "Starting AppArmor"
+               announced=1
+               parse_profiles load
+               return $?
+       } || {
+               parse_profiles reload
+               return $?
+       }
+}
+
+remove_profiles() {
+
+       log_write info "Unloading profiles"
+
+       is_apparmor_loaded; [ "$?" -eq 0 ] || {
+               log_write err "AppArmor kernel support is not present"
+               return 1
+       }
+
+       [ -w "$SFS_MOUNTPOINT/.remove" ] || {
+               log_write err "${SFS_MOUNTPOINT}/.remove not writable"
+               return 1
+       }
+
+       [ -x "$PARSER" ] || {
+               log_write err "Unable to execute AppArmor parser"
+               return 1
+       }
+
+       local rc=0
+
+       sed -e "s/ (\(enforce\|complain\))$//" "$SFS_MOUNTPOINT/profiles" | \
+       LC_COLLATE=C sort | grep -v // | {
+               while read -r profile ; do
+                       printf "%s" "$profile" > "$SFS_MOUNTPOINT/.remove"
+                       result=$?
+                       [ "$result" -eq 0 ] || rc=$result
+               done
+       }
+       return $rc
+}
+
+apparmor_stop() {
+
+       is_apparmor_loaded; [ "$?" -eq 0 ] || return 1
+       is_profiles_loaded; [ "$?" -eq 0 ] && {
+               log_write info "Stopping AppArmor"
+               remove_profiles
+               return $?
+       } || return 0
+}
+
+apparmor_restart() {
+
+       is_profiles_loaded; [ "$?" -eq 0 ] || {
+               apparmor_start
+               return $?
+       }
+
+       is_apparmor_loaded; [ "$?" -eq 0 ] || {
+               apparmor_start
+               return $?
+       }
+
+       log_write info "Restarting AppArmor"
+       parse_profiles reload
+       return $?
+}
+
+apparmor_reload() {
+
+       is_profiles_loaded; [ "$?" -eq 0 ] || {
+               apparmor_start
+               return $?
+       }
+
+       is_apparmor_loaded; [ "$?" -eq 0 ] || {
+               apparmor_start
+               return $?
+       }
+
+       log_write info "Reloading AppArmor"
+       parse_profiles reload
+       return $?
+}
+
+apparmor_list_profiles() {
+
+       is_apparmor_loaded; [ "$?" -eq 0 ] || {
+               echo "AppArmor kernel support is not present"
+               return 1
+       }
+
+        [ -x "$PARSER" ] || {
+                echo "Unable to execute AppArmor parser"
+               return 1
+       }
+
+       # run parser on all profiles
+       for profile_dir in $PROFILE_DIRS; do
+               [ -d "$profile_dir" ] || {
+                       echo "AppArmor profiles not found: $profile_dir"
+                       continue
+               }
+
+               for profile in "$profile_dir"/*; do
+                       if skip_profile "$profile" && [ -f "$profile" ] ; then
+                               LIST_ADD=$("$PARSER" -N "$profile" )
+                               [ "$?" -eq 0 ] && echo "$LIST_ADD"
+                       fi
+               done
+       done
+       return 0
+}
+
+
+apparmor_status() {
+
+       is_apparmor_loaded; [ "$?" -eq 0 ] || {
+               echo "AppArmor kernel support is not present"
+               return 1
+       }
+
+       [ -x "$AA_STATUS" ] && {
+               "$AA_STATUS" --verbose
+               return $?
+       }
+
+       echo "AppArmor is enabled."
+       echo "Install apparmor-utils to receive more detailed status"
+       echo "information or examine $SFS_MOUNTPOINT directly."
+
+       return 0
+}
diff --git a/utils/apparmor/patches/010-autoconf-libapparmor.patch b/utils/apparmor/patches/010-autoconf-libapparmor.patch
new file mode 100644 (file)
index 0000000..bcb47d0
--- /dev/null
@@ -0,0 +1,10 @@
+--- /dev/null
++++ b/libraries/libapparmor/Makefile
+@@ -0,0 +1,7 @@
++package=libapparmor
++
++configure:
++      $(STAGING_DIR_HOST)/bin/aclocal
++      $(STAGING_DIR_HOST)/bin/autoconf --force
++      $(STAGING_DIR_HOST)/bin/libtoolize --automake -c --force
++      $(STAGING_DIR_HOST)/bin/automake -ac
diff --git a/utils/apparmor/patches/020-fix-ss-path.patch b/utils/apparmor/patches/020-fix-ss-path.patch
new file mode 100644 (file)
index 0000000..11e53b0
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/utils/aa-unconfined
++++ b/utils/aa-unconfined
+@@ -118,7 +118,7 @@ def read_proc_current(filename):
+ pids = set()
+ if paranoid:
+     pids = get_all_pids()
+-elif args.with_ss or (not args.with_netstat and (os.path.exists('/bin/ss') or os.path.exists('/usr/bin/ss'))):
++elif args.with_ss or (not args.with_netstat and (os.path.exists('/usr/sbin/ss') or os.path.exists('/bin/ss') or os.path.exists('/usr/bin/ss') or os.path.exists('/sbin/ss'))):
+     pids = get_pids_ss()
+ else:
+     pids = get_pids_netstat()
diff --git a/utils/apparmor/patches/030-remove-pynotify2-dep.patch b/utils/apparmor/patches/030-remove-pynotify2-dep.patch
new file mode 100644 (file)
index 0000000..7de4ddc
--- /dev/null
@@ -0,0 +1,416 @@
+--- a/utils/aa-notify
++++ b/utils/aa-notify
+@@ -13,17 +13,6 @@
+ #
+ # ----------------------------------------------------------------------
+ #
+-# /etc/apparmor/notify.conf:
+-# # set to 'yes' to enable AppArmor DENIED notifications
+-# show_notifications="yes"
+-#
+-# # only people in use_group can run this script
+-# use_group="admin"
+-#
+-# $HOME/.apparmor/notify.conf can have:
+-# # set to 'yes' to enable AppArmor DENIED notifications
+-# show_notifications="yes"
+-#
+ # In a typical desktop environment one would run as a service the
+ # command:
+ #   /usr/bin/aa-notify -p -w 10
+@@ -35,7 +24,6 @@ import re
+ import sys
+ import time
+ import struct
+-import notify2
+ import psutil
+ import pwd
+ import grp
+@@ -60,56 +48,9 @@ def get_user_login():
+             username = os.getlogin()
+     return username
+-
+-def get_last_login_timestamp(username):
+-    '''Directly read wtmp and get last login for user as epoch timestamp'''
+-    timestamp = 0
+-    filename = '/var/log/wtmp'
+-    last_login = 0
+-
+-    debug_logger.debug('Username: {}'.format(username))
+-
+-    with open(filename, "rb") as wtmp_file:
+-        offset = 0
+-        wtmp_filesize = os.path.getsize(filename)
+-        debug_logger.debug('WTMP filesize: {}'.format(wtmp_filesize))
+-        while offset < wtmp_filesize:
+-            wtmp_file.seek(offset)
+-            offset += 384  # Increment for next entry
+-
+-            type = struct.unpack("<L", wtmp_file.read(4))[0]
+-            debug_logger.debug('WTMP entry type: {}'.format(type))
+-
+-            # Only parse USER lines
+-            if type == 7:
+-                # Read each item and move pointer forward
+-                pid = struct.unpack("<L", wtmp_file.read(4))[0]
+-                line = wtmp_file.read(32).decode("utf-8", "replace").split('\0', 1)[0]
+-                id = wtmp_file.read(4).decode("utf-8", "replace").split('\0', 1)[0]
+-                user = wtmp_file.read(32).decode("utf-8", "replace").split('\0', 1)[0]
+-                host = wtmp_file.read(256).decode("utf-8", "replace").split('\0', 1)[0]
+-                term = struct.unpack("<H", wtmp_file.read(2))[0]
+-                exit = struct.unpack("<H", wtmp_file.read(2))[0]
+-                session = struct.unpack("<L", wtmp_file.read(4))[0]
+-                timestamp = struct.unpack("<L", wtmp_file.read(4))[0]
+-                usec = struct.unpack("<L", wtmp_file.read(4))[0]
+-                entry = (pid, line, id, user, host, term, exit, session, timestamp, usec)
+-                debug_logger.debug('WTMP entry: {}'.format(entry))
+-
+-                # Store login timestamp for requested user
+-                if user == username:
+-                    last_login = timestamp
+-
+-    # When loop is done, last value should be the latest login timestamp
+-    return last_login
+-
+-
+ def format_event(event, logsource):
+     output = []
+-    if 'message_body' in config['']:
+-        output += [config['']['message_body']]
+-
+     if event.profile:
+         output += ['Profile: {}'.format(event.profile)]
+     if event.operation:
+@@ -126,7 +67,6 @@ def format_event(event, logsource):
+     return "\n".join(output)
+-
+ def notify_about_new_entries(logfile, wait=0):
+     # Kill other instances of aa-notify if already running
+     for process in psutil.process_iter():
+@@ -154,7 +94,6 @@ def notify_about_new_entries(logfile, wa
+         # print("parent: %d, child: %d\n" % pids)
+         os._exit(0)  # Exit child without calling exit handlers etc
+-
+ def show_entries_since_epoch(logfile, epoch_since):
+     count = 0
+     for event in get_apparmor_events(logfile, epoch_since):
+@@ -172,26 +111,7 @@ def show_entries_since_epoch(logfile, ep
+     )
+     if args.verbose:
+-        if 'message_footer' in config['']:
+-            print(config['']['message_footer'])
+-        else:
+-            print(_('For more information, please see: {}').format(debug_docs_url))
+-
+-
+-def show_entries_since_last_login(logfile, username=get_user_login()):
+-    # If running as sudo, use username of sudo user instead of root
+-    if 'SUDO_USER' in os.environ.keys():
+-        username = os.environ['SUDO_USER']
+-
+-    if args.verbose:
+-        print(_('Showing entries since {} logged in').format(username))
+-        print() # Newline
+-    epoch_since = get_last_login_timestamp(username)
+-    if epoch_since == 0:
+-        print(_('ERROR: Could not find last login'), file=sys.stderr)
+-        sys.exit(1)
+-    show_entries_since_epoch(logfile, epoch_since)
+-
++        print(_('For more information, please see: {}').format(debug_docs_url))
+ def show_entries_since_days(logfile, since_days):
+     day_in_seconds = 60*60*24
+@@ -199,7 +119,6 @@ def show_entries_since_days(logfile, sin
+     epoch_since = epoch_now - day_in_seconds * since_days
+     show_entries_since_epoch(logfile, epoch_since)
+-
+ def follow_apparmor_events(logfile, wait=0):
+     '''Follow AppArmor events and yield relevant entries until process stops'''
+@@ -247,7 +166,6 @@ def follow_apparmor_events(logfile, wait
+             time.sleep(1)
+-
+ def reopen_logfile_if_needed(logfile, logdata, log_inode, log_size):
+     retry = True
+@@ -279,7 +197,6 @@ def reopen_logfile_if_needed(logfile, lo
+     return (logdata, log_inode, log_size)
+-
+ def get_apparmor_events(logfile, since=0):
+     '''Read audit events from log source and yield all relevant events'''
+@@ -293,7 +210,6 @@ def get_apparmor_events(logfile, since=0
+     except PermissionError:
+         sys.exit(_("ERROR: Cannot read {}. Please check permissions.".format(logfile)))
+-
+ def parse_logdata(logsource):
+     '''Traverse any iterable log source and extract relevant AppArmor events'''
+@@ -327,53 +243,6 @@ def parse_logdata(logsource):
+             if event.operation[0:8] != 'profile_':
+                 yield event
+-
+-def drop_privileges():
+-    '''If running as root, drop privileges to USER if known, or fall-back to nobody_user/group'''
+-
+-    if os.geteuid() == 0:
+-
+-        if 'SUDO_USER' in os.environ.keys():
+-            next_username = os.environ['SUDO_USER']
+-            next_uid = os.environ['SUDO_UID']
+-            next_gid = os.environ['SUDO_GID']
+-        else:
+-            nobody_user_info = pwd.getpwnam(nobody_user)
+-            next_username = nobody_user_info[0]
+-            next_uid = nobody_user_info[2]
+-            next_gid = nobody_user_info[3]
+-
+-        debug_logger.debug('Dropping to user "{}" privileges'.format(next_username))
+-
+-        # @TODO?
+-        # Remove group privileges, including potential 'adm' group that might
+-        # have had log read access but also other accesses.
+-        # os.setgroups([])
+-
+-        # Try setting the new uid/gid
+-        # Set gid first, otherwise the latter step would fail on missing permissions
+-        os.setegid(int(next_gid))
+-        os.seteuid(int(next_uid))
+-
+-def raise_privileges():
+-    '''If was running as user with saved user ID 0, raise back to root privileges'''
+-
+-    if os.geteuid() != 0 and original_effective_user == 0:
+-
+-        debug_logger.debug('Rasing privileges from UID {} back to UID 0 (root)'.format(os.geteuid()))
+-
+-        # os.setgid(int(next_gid))
+-        os.seteuid(original_effective_user)
+-
+-def read_notify_conf(path, shell_config):
+-    try:
+-        shell_config.CONF_DIR = path
+-        conf_dict = shell_config.read_config('notify.conf')
+-        debug_logger.debug('Found configuration file in {}/notify.conf'.format(shell_config.CONF_DIR))
+-        return conf_dict
+-    except FileNotFoundError:
+-        return {}
+-
+ def main():
+     '''
+     Main function of aa-notify that parses command line
+@@ -381,10 +250,9 @@ def main():
+     '''
+     global _, debug_logger, config, args
+-    global debug_docs_url, nobody_user, original_effective_user, timeformat
++    global debug_docs_url, original_effective_user, timeformat
+     debug_docs_url = "https://wiki.ubuntu.com/DebuggingApparmor"
+-    nobody_user = "nobody"
+     timeformat = "%c"  # Automatically using locale format
+     original_effective_user = os.geteuid()
+@@ -403,180 +271,37 @@ def main():
+     debug_logger.debug("Starting aa-notify")
+     parser = argparse.ArgumentParser(description=_('Display AppArmor notifications or messages for DENIED entries.'))
+-    parser.add_argument('-p', '--poll', action='store_true', help=_('poll AppArmor logs and display notifications'))
+-    parser.add_argument('--display', type=str, help=_('set the DISPLAY environment variable (might be needed if sudo resets $DISPLAY)'))
+-    parser.add_argument('-f', '--file', type=str, help=_('search FILE for AppArmor messages'))
+-    parser.add_argument('-l', '--since-last', action='store_true', help=_('display stats since last login'))
+-    parser.add_argument('-s', '--since-days', type=int, metavar=('NUM'), help=_('show stats for last NUM days (can be used alone or with -p)'))
+-    parser.add_argument('-v', '--verbose', action='store_true', help=_('show messages with stats'))
+-    parser.add_argument('-u', '--user', type=str, help=_('user to drop privileges to when not using sudo'))
+-    parser.add_argument('-w', '--wait', type=int, metavar=('NUM'), help=_('wait NUM seconds before displaying notifications (with -p)'))
+-    parser.add_argument('--debug', action='store_true', help=_('debug mode'))
+-    parser.add_argument('--configdir', type=str, help=argparse.SUPPRESS)
++    parser.add_argument('-f', '--file', type=str, help=_('Logfile to parse for AppArmor messages'))
++    parser.add_argument('-s', '--since-days', type=int, metavar=('NUM'), help=_('Show stats for last NUM days'))
++    parser.add_argument('-v', '--verbose', action='store_true', help=_('Show messages with stats'))
++    parser.add_argument('--debug', action='store_true', help=_('Debug mode'))
+     # If a TTY then assume running in test mode and fix output width
+     if not sys.stdout.isatty():
+         parser.formatter_class = lambda prog: argparse.HelpFormatter(prog, width=80)
+     args = parser.parse_args()
++    args.user = 'root'
+     # Debug mode can be invoked directly with --debug or env LOGPROF_DEBUG=3
+     if args.debug:
+         debug_logger.activateStderr()
+         debug_logger.debug('Logging level: {}'.format(debug_logger.debug_level))
+         debug_logger.debug('Running as uid: {0[0]}, euid: {0[1]}, suid: {0[2]}'.format(os.getresuid()))
+-        if args.poll:
+-            debug_logger.debug('Running with --debug and --poll. Will exit in 100s')
+-    # Sanity checks
+-    user_ids = os.getresuid()
+-    groups_ids = os.getresgid()
+-    if user_ids[1] != user_ids[2]:
+-        sys.exit("ERROR: Cannot be started with suid set!")
+-    if groups_ids[1] != groups_ids[2]:
+-        sys.exit("ERROR: Cannot be started with sgid set!")
+-    # Define global variables that will be populated by init_aa()
+-    # conf = None
+     logfile = None
+-    if args.configdir:  # prefer --configdir if given
+-        confdir = args.configdir
+-    else:  # fallback to env variable (or None if not set)
+-        confdir = os.getenv('__AA_CONFDIR')
+-
+-    aa.init_aa(confdir=confdir)
+-
+     # Initialize aa.logfile
+-    aa.set_logfile(args.file)
+-
+-    # Load global config reader
+-    shell_config = aaconfig.Config('shell')
+-
+-    # Load system's notify.conf
+-    # By default aa.CONFDIR is /etc/apparmor on most production systems
+-    system_config = read_notify_conf(aa.CONFDIR, shell_config)
+-    # Set default is no system notify.conf was found
+-    if not system_config:
+-        system_config = {'': {'show_notifications': 'yes'}}
+-
+-    # Load user's notify.conf
+-    if os.path.isfile(os.environ['HOME'] + '/.apparmor/notify.conf'):
+-        # Use legacy path if the conf file is there
+-        user_config = read_notify_conf(os.environ['HOME'] + '/.apparmor', shell_config)
+-    elif 'XDG_CONFIG_HOME' in os.environ and os.path.isfile(os.environ['XDG_CONFIG_HOME'] + '/apparmor/notify.conf'):
+-        # Use XDG_CONFIG_HOME if it is defined
+-        user_config = read_notify_conf(os.environ['XDG_CONFIG_HOME'] + '/apparmor', shell_config)
+-    else:
+-        # Fallback to the default value of XDG_CONFIG_HOME
+-        user_config = read_notify_conf(os.environ['HOME'] + '/.config/apparmor', shell_config)
+-
+-    # Merge the two config dicts in an accurate and idiomatic way (requires Python 3.5)
+-    config = {**system_config, **user_config}
+-
+-    """
+-    Possible configuration options:
+-    - show_notifications
+-    - message_body
+-    - message_footer
+-    - use_group
+-    """
+-
+-    # # Config checks
+-
+-    # Warn about unknown keys in the config
+-    allowed_config_keys = [
+-        'use_group',
+-        'show_notifications',
+-        'message_body',
+-        'message_footer'
+-    ]
+-    found_config_keys = config[''].keys()
+-    unknown_keys = [item for item in found_config_keys if item not in allowed_config_keys]
+-    for item in unknown_keys:
+-        print(_('Warning! Configuration item "{}" is unknown!').format(item))
+-
+-    # Warn if use_group is defined and current group does not match defined
+-    if 'use_group' in config['']:
+-        user = pwd.getpwuid(os.geteuid())[0]
+-        user_groups = [g.gr_name for g in grp.getgrall() if user in g.gr_mem]
+-        gid = pwd.getpwnam(user).pw_gid
+-        user_groups.append(grp.getgrgid(gid).gr_name)
+-
+-        if config['']['use_group'] not in user_groups:
+-            print(
+-                _('ERROR! User {user} not member of {group} group!').format(
+-                    user=user,
+-                    group=config['']['use_group']
+-                ),
+-                file=sys.stderr
+-            )
+-            sys.exit(1)
+-            # @TODO: Extend UI lib to have warning and error functions that
+-            # can be used in an uniform way with both text and JSON output.
+-
+     if args.file:
+         logfile = args.file
+-    elif os.path.isfile('/var/run/auditd.pid') and os.path.isfile('/var/log/audit/audit.log'):
+-        # If auditd is running, look at /var/log/audit/audit.log
+-        logfile = '/var/log/audit/audit.log'
+-    elif os.path.isfile('/var/log/kern.log'):
+-        # For aa-notify, the fallback is kern.log, not syslog from aa.logfile
+-        logfile = '/var/log/kern.log'
++        aa.set_logfile(args.file)
+     else:
+-        # If all above failed, use aa cfg
+-        logfile = aa.logfile
++        logfile = '/var/log/audit/audit.log'
++        aa.set_logfile('/var/log/audit/audit.log')
+     if args.verbose:
+         print(_('Using log file'), logfile)
+-    if args.display:
+-        os.environ['DISPLAY'] = args.display
+-
+-    if args.poll:
+-        # Exit immediately if show_notifications is no or any of the options below
+-        if config['']['show_notifications'] in [False, 'no', 'false', '0']:
+-            print(_('Showing notifications forbidden in notify.conf, aborting..'))
+-            sys.exit(0)
+-
+-        # Don't allow usage of aa-notify by root, must be some user. Desktop
+-        # logins as root are not recommended and certainly not a use case for
+-        # aa-notify notifications.
+-        if not args.user and os.getuid() == 0 and 'SUDO_USER' not in os.environ.keys():
+-            sys.exit("ERROR: Cannot be started a real root user. Use --user to define what user to use.")
+-
+-        # At this point this script needs to be able to read 'logfile' but once
+-        # the for loop starts, privileges can be dropped since the file descriptor
+-        # has been opened and access granted. Further reads of the file will not
+-        # trigger any new permission checks.
+-        # @TODO Plan to catch PermissionError here or..?
+-        for message in notify_about_new_entries(logfile, args.wait):
+-
+-            # Notifications should not be run as root, since root probably is
+-            # the wrong desktop user and not the one getting the notifications.
+-            drop_privileges()
+-
+-            # sudo does not preserve DBUS address, so we need to guess it based on UID
+-            if 'DBUS_SESSION_BUS_ADDRESS' not in os.environ:
+-                os.environ['DBUS_SESSION_BUS_ADDRESS'] = 'unix:path=/run/user/{}/bus'.format(os.geteuid())
+-
+-            # Before use, notify2 must be initialized and the DBUS channel
+-            # should be opened using the non-root user. This this step needs to
+-            # be executed after the drop_privileges().
+-            notify2.init('AppArmor')
+-
+-            n = notify2.Notification(
+-                _('AppArmor notification'),
+-                message,
+-                'gtk-dialog-warning'
+-            )
+-            n.show()
+-
+-            # When notification is sent, raise privileged back to root if the
+-            # original effective user id was zero (to be able to read AppArmor logs)
+-            raise_privileges()
+-
+-    elif args.since_last:
+-        show_entries_since_last_login(logfile)
+     elif args.since_days:
+         show_entries_since_days(logfile, args.since_days)
+     else:
diff --git a/utils/apparmor/patches/040-remove-bash-dep.patch b/utils/apparmor/patches/040-remove-bash-dep.patch
new file mode 100644 (file)
index 0000000..98ef107
--- /dev/null
@@ -0,0 +1,134 @@
+--- a/utils/aa-decode
++++ b/utils/aa-decode
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ #    Copyright (C) 2009-2010, 2012 Canonical Ltd.
+ #    Copyright (C) 2012 Christian Boltz
+@@ -16,8 +16,6 @@
+ #    along with this program; if not, contact Canonical, Ltd.
+ #
+-set -e
+-
+ help() {
+     cat <<EOM
+ USAGE: aa-decode [OPTIONS] <encoded string>
+@@ -36,13 +34,15 @@ $ cat /var/log/kern.log | aa-decode
+ EOM
+ }
+-decode() {
+-    if echo "$1" | egrep -q "^[0-9A-Fa-f]+$" ; then
+-      python3 -c "import binascii; print(bytes.decode(binascii.unhexlify('$1'), errors='strict'));"
+-    else
+-      echo ""
+-    fi
++match_re() {
++      local result=$(echo "$1" | grep -E "$2" )
++      [ -z "$result" ] && return 1 || return 0
++}
++
++decode() {
++      $(echo "$1" | egrep -q "^[0-9A-Fa-f]+$"); [ "$?" -eq 0 ] &&
++              python3 -c "import binascii; print(bytes.decode(binascii.unhexlify('$1'), errors='strict'));" || echo ""
+ }
+ if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
+@@ -51,47 +51,61 @@ if [ "$1" = "-h" ] || [ "$1" = "--help"
+ fi
+ # if have an argument, then use it, otherwise process stdin
+-if [ -n "$1" ]; then
+-    e="$1"
+-    if ! echo "$e" | egrep -q "^[0-9A-Fa-f]+$" ; then
+-        echo "String should only contain hex characters (0-9, a-f, A-F)"
+-        exit 1
+-    fi
+-
+-    d=`decode $e`
+-    if [ -z "$d" ]; then
+-        echo "Could not decode string"
+-        exit 1
+-    fi
++[ -n "$1" ] && {
+-    echo "Decoded: $d"
+-    exit 0
+-fi
++      e="$1"
+-# For now just look at 'name=...' and 'profile=...',
+-# so validate input against this and output based on it.
+-# TODO: better handle other cases too
+-while read line ; do
++      $(echo "$e" | egrep -q "^[0-9A-Fa-f]+$"); [ "$?" -ne 0 ] && {
++              echo "String should only contain hex characters (0-9, a-f, A-F)"
++              exit 1
++      }
+-    # check if line contains encoded name= or profile=
+-    if [[ "$line" =~ \ (name|profile|proctitle)=[0-9a-fA-F] ]]; then
++      d=$(decode $e)
+-        # cut the encoded filename/profile name out of the line and decode it
+-        ne=`echo "$line" | sed 's/.* name=\([^ ]*\).*$/\\1/g'`
+-        nd="$(decode ${ne/\'/\\\'})"
++      [ -z "$d" ] && {
++              echo "Could not decode string"
++              exit 1
++      }
+-        pe=`echo "$line" | sed 's/.* profile=\([^ ]*\).*$/\\1/g'`
+-        pd="$(decode ${pe/\'/\\\'})"
++      echo "Decoded: $d"
++      exit 0
++}
+-        pce=`echo "$line" | sed 's/.* proctitle=\([^ ]*\).*$/\\1/g'`
+-        pcd="$(decode ${pce/\'/\\\'})"
++[ -t 0 ] && {
++      help
++      exit
++}
++
++while read line ; do
+-        # replace encoded name and profile with its decoded counterparts (only if it was encoded)
+-        test -n "$nd" && line="${line/name=$ne/name=\"$nd\"}"
+-        test -n "$pd" && line="${line/profile=$pe/profile=\"$pd\"}"
+-        test -n "$pcd" && line="${line/proctitle=$pce/proctitle=\"$pcd\"}"
++      # check if line contains encoded name= or profile=
+-    fi
++      matches=0
++      match_re "$line" "^[[:blank:]](name|profile|proctitle)=[0-9a-fA-F]+"; [ "$?" -eq 0 ] && matches=1 || {
++               match_re "$line" "^(name|profile|proctitle)=[0-9a-fA-F]+"; [ "$?" -eq 0 ] && matches=1
++      }
++
++      [ "$matches" -eq 0 ] || {
++
++              # cut the encoded filename/profile name out of the line and decode it
++              ne=$(echo "$line" | sed 's/.* name=\([^ ]*\).*$/\\1/g')
++              [ "$line" = "$ne" ] && ne=$(echo "$line" | sed 's/.*name=\([^ ]*\).*$/\\1/g')
++              echo var: $ne
++              nd="$(decode ${ne/\'/\\\'})"
++
++              pe=$(echo "$line" | sed 's/.* profile=\([^ ]*\).*$/\\1/g')
++              [ "$line" = "$pe" ] && pe=$(echo "$line" | sed 's/.*profile=\([^ ]*\).*$/\\1/g')
++              pd="$(decode ${pe/\'/\\\'})"
++
++              pce=$(echo "$line" | sed 's/.* proctitle=\([^ ]*\).*$/\\1/g')
++              [ "$line" = "$pce" ] && pce=$(echo "$line" | sed 's/.*proctitle=\([^ ]*\).*$/\\1/g')
++              pcd="$(decode ${pce/\'/\\\'})"
++
++              # replace encoded name and profile with its decoded counterparts (only if it was encoded)
++              test -n "$nd" && line="${line/name=$ne/name=\"$nd\"}"
++              test -n "$pd" && line="${line/profile=$pe/profile=\"$pd\"}"
++              test -n "$pcd" && line="${line/proctitle=$pce/proctitle=\"$pcd\"}"
++      }
+     echo "$line"
diff --git a/utils/apparmor/patches/050-disable-man-pages.patch b/utils/apparmor/patches/050-disable-man-pages.patch
new file mode 100644 (file)
index 0000000..a0463f1
--- /dev/null
@@ -0,0 +1,69 @@
+--- a/binutils/Makefile
++++ b/binutils/Makefile
+@@ -107,7 +107,7 @@ docs:      manpages
+ indep: docs
+       $(Q)$(MAKE) -C po all
+-all:  arch indep
++all:  arch
+ .PHONY: coverage
+ coverage:
+@@ -147,7 +147,7 @@ tests: $(BINTOOLS) $(SBINTOOLS) $(TESTS)
+       echo "no tests atm"
+ .PHONY: install
+-install: install-indep install-arch
++install: install-arch
+ .PHONY: install-arch
+ install-arch: arch
+--- a/parser/Makefile
++++ b/parser/Makefile
+@@ -195,7 +195,7 @@ extra_docs: pdf
+ indep: docs
+       $(Q)$(MAKE) -C po all
+-all:  arch indep
++all:  arch
+ .PHONY: coverage
+ coverage:
+@@ -396,7 +396,6 @@ endif
+ .PHONY: install
+ install:
+-      $(MAKE) install-indep
+       $(MAKE) install-arch
+ .PHONY: install-arch
+--- a/utils/Makefile
++++ b/utils/Makefile
+@@ -31,9 +31,7 @@ MANPAGES = ${TOOLS:=.8} logprof.conf.5
+ PYFLAKES ?= pyflakes3
+-all: docs
+-      $(MAKE) -C po all
+-      $(MAKE) -C vim all
++all: clean
+ .PHONY: docs
+ docs: ${MANPAGES} ${HTMLMANPAGES}
+@@ -49,15 +47,12 @@ po/${NAME}.pot: ${TOOLS} ${PYMODULES}
+       $(MAKE) -C po ${NAME}.pot NAME=${NAME} SOURCES="${TOOLS} ${PYMODULES}"
+ .PHONY: install
+-install: ${MANPAGES} ${HTMLMANPAGES}
++install:
+       install -d ${CONFDIR}
+       install -m 644 logprof.conf severity.db notify.conf ${CONFDIR}
+       install -d ${BINDIR}
+       # aa-easyprof is installed by python-tools-setup.py
+       install -m 755 $(filter-out aa-easyprof, ${TOOLS}) ${BINDIR}
+-      $(MAKE) -C po install DESTDIR=${DESTDIR} NAME=${NAME}
+-      $(MAKE) install_manpages DESTDIR=${DESTDIR}
+-      $(MAKE) -C vim install DESTDIR=${DESTDIR}
+       ${PYTHON} ${PYSETUP} install --prefix=${PYPREFIX} --root=${DESTDIR} --version=${VERSION}
+ .PHONY: clean
diff --git a/utils/apparmor/patches/060-openwrt-dnsmasq-profile.patch b/utils/apparmor/patches/060-openwrt-dnsmasq-profile.patch
new file mode 100644 (file)
index 0000000..cc957ec
--- /dev/null
@@ -0,0 +1,190 @@
+--- a/profiles/apparmor.d/usr.sbin.dnsmasq
++++ b/profiles/apparmor.d/usr.sbin.dnsmasq
+@@ -1,3 +1,10 @@
++# Last Modified: Thu Jun 10 01:23:44 2021
++abi <abi/3.0>,
++
++include <tunables/global>
++
++@{TFTP_DIR} = /srv/tftp /srv/tftpboot /var/tftp
++
+ # ------------------------------------------------------------------
+ #
+ #    Copyright (C) 2009 John Dong <jdong@ubuntu.com>
+@@ -9,126 +16,95 @@
+ #
+ # ------------------------------------------------------------------
+-abi <abi/3.0>,
+-
+-@{TFTP_DIR}=/var/tftp /srv/tftp /srv/tftpboot
+-include <tunables/global>
+ profile dnsmasq /usr/{bin,sbin}/dnsmasq flags=(attach_disconnected) {
+   include <abstractions/base>
+   include <abstractions/dbus>
+   include <abstractions/nameservice>
++  include <abstractions/user-tmp>
++  include if exists <local/usr.sbin.dnsmasq>
+   capability chown,
++  capability dac_override,
++  capability net_admin, # for DHCP server
+   capability net_bind_service,
++  capability net_raw, # for DHCP server ping checks
+   capability setgid,
+   capability setuid,
+-  capability dac_override,
+-  capability net_admin,         # for DHCP server
+-  capability net_raw,           # for DHCP server ping checks
++
+   network inet raw,
+   network inet6 raw,
+-  signal (receive) peer=/usr/{bin,sbin}/libvirtd,
+-  signal (receive) peer=libvirtd,
+-  ptrace (readby) peer=/usr/{bin,sbin}/libvirtd,
+-  ptrace (readby) peer=libvirtd,
++  signal receive peer=/usr/{bin,sbin}/libvirtd,
++  signal receive peer=libvirtd,
+-  owner /dev/tty rw,
++  ptrace readby peer=/usr/{bin,sbin}/libvirtd,
++  ptrace readby peer=libvirtd,
+-  @{PROC}/@{pid}/fd/ r,
+-
+-  /etc/dnsmasq.conf r,
+-  /etc/dnsmasq.d/ r,
+-  /etc/dnsmasq.d/* r,
+-  /etc/dnsmasq.d-available/ r,
+-  /etc/dnsmasq.d-available/* r,
+-  /etc/ethers r,
+-  /etc/NetworkManager/dnsmasq.d/ r,
+-  /etc/NetworkManager/dnsmasq.d/* r,
+   /etc/NetworkManager/dnsmasq-shared.d/ r,
+   /etc/NetworkManager/dnsmasq-shared.d/* r,
++  /etc/NetworkManager/dnsmasq.d/ r,
++  /etc/NetworkManager/dnsmasq.d/* r,
+   /etc/dnsmasq-conf.conf r,
+   /etc/dnsmasq-resolv.conf r,
+-
+-  /usr/{bin,sbin}/dnsmasq mr,
+-
+-  /var/log/dnsmasq*.log w,
+-
++  /etc/dnsmasq.conf r,
++  /etc/dnsmasq.d-available/ r,
++  /etc/dnsmasq.d-available/* r,
++  /etc/dnsmasq.d/ r,
++  /etc/dnsmasq.d/* r,
++  /etc/ethers r,
++  /tmp/** r,
++  /usr/libexec/libvirt_leaseshelper Cx -> libvirt_leaseshelper,
++  /usr/lib{,64}/libvirt/libvirt_leaseshelper Cx -> libvirt_leaseshelper,
+   /usr/share/dnsmasq{-base,}/ r,
+   /usr/share/dnsmasq{-base,}/* r,
+-
+-  @{run}/*dnsmasq*.pid w,
+-  @{run}/dnsmasq-forwarders.conf r,
+-  @{run}/dnsmasq/ r,
+-  @{run}/dnsmasq/* rw,
+-
++  /usr/{bin,sbin}/dnsmasq mr,
++  /var/lib/NetworkManager/dnsmasq-*.leases rw,
++  /var/lib/libvirt/dnsmasq/ r,
++  /var/lib/libvirt/dnsmasq/* r,
++  /var/lib/lxd-bridge/dnsmasq.*.leases rw,
++  /var/lib/lxd/networks/*/dnsmasq.* r,
++  /var/lib/lxd/networks/*/dnsmasq.leases rw,
++  /var/lib/lxd/networks/*/dnsmasq.pid rw,
++  /var/lib/misc/dnsmasq.*.leases rw,
+   /var/lib/misc/dnsmasq.leases rw, # Required only for DHCP server usage
+-
++  /var/log/dnsmasq*.log w,
+   /{,usr/}bin/{ba,da,}sh ix, # Required to execute --dhcp-script argument
+-
+-  # access to iface mtu needed for Router Advertisement messages in IPv6
+-  # Neighbor Discovery protocol (RFC 2461)
++  @{PROC}/@{pid}/fd/ r,
+   @{PROC}/sys/net/ipv6/conf/*/mtu r,
+-
+-  # for the read-only TFTP server
+   @{TFTP_DIR}/ r,
+   @{TFTP_DIR}/** r,
+-
+-  # libvirt config and hosts file for dnsmasq
+-  /var/lib/libvirt/dnsmasq/          r,
+-  /var/lib/libvirt/dnsmasq/*         r,
+-
+-  # libvirt pid files for dnsmasq
+-  @{run}/libvirt/network/      r,
++  @{run}/*dnsmasq*.pid w,
++  @{run}/NetworkManager/NetworkManager.pid w,
++  @{run}/NetworkManager/dnsmasq.conf r,
++  @{run}/NetworkManager/dnsmasq.pid w,
++  @{run}/dnsmasq-forwarders.conf r,
++  @{run}/dnsmasq/ r,
++  @{run}/dnsmasq/* rw,
++  @{run}/libvirt/network/ r,
+   @{run}/libvirt/network/*.pid rw,
+-
+-  # libvirt lease helper
+-  /usr/lib{,64}/libvirt/libvirt_leaseshelper Cx -> libvirt_leaseshelper,
+-  /usr/libexec/libvirt_leaseshelper Cx -> libvirt_leaseshelper,
+-
+-  # lxc-net pid and lease files
+-  @{run}/lxc/dnsmasq.pid    rw,
+-  /var/lib/misc/dnsmasq.*.leases rw,
+-
+-  # lxd-bridge pid and lease files
+-  @{run}/lxd-bridge/dnsmasq.pid   rw,
+-  /var/lib/lxd-bridge/dnsmasq.*.leases rw,
+-  /var/lib/lxd/networks/*/dnsmasq.* r,
+-  /var/lib/lxd/networks/*/dnsmasq.leases rw,
+-  /var/lib/lxd/networks/*/dnsmasq.pid rw,
+-
+-  # NetworkManager integration
+-  /var/lib/NetworkManager/dnsmasq-*.leases rw,
++  @{run}/lxc/dnsmasq.pid rw,
++  @{run}/lxd-bridge/dnsmasq.pid rw,
+   @{run}/nm-dns-dnsmasq.conf r,
+   @{run}/nm-dnsmasq-*.pid rw,
+   @{run}/sendsigs.omit.d/*dnsmasq.pid w,
+-  @{run}/NetworkManager/dnsmasq.conf r,
+-  @{run}/NetworkManager/dnsmasq.pid w,
+-  @{run}/NetworkManager/NetworkManager.pid w,
++  owner /dev/tty rw,
++
+   profile libvirt_leaseshelper {
+     include <abstractions/base>
+     /etc/libnl-3/classid r,
+-
+-    /usr/lib{,64}/libvirt/libvirt_leaseshelper m,
+     /usr/libexec/libvirt_leaseshelper m,
+-
+-    owner @{PROC}/@{pid}/net/psched r,
+-    owner @{PROC}/@{pid}/status r,
+-
++    /usr/lib{,64}/libvirt/libvirt_leaseshelper m,
++    /var/lib/libvirt/dnsmasq/*.leases rw,
++    /var/lib/libvirt/dnsmasq/*.status* rw,
++    @{run}/leaseshelper.pid rwk,
+     @{sys}/devices/system/cpu/ r,
+     @{sys}/devices/system/node/ r,
+     @{sys}/devices/system/node/*/meminfo r,
++    owner @{PROC}/@{pid}/net/psched r,
++    owner @{PROC}/@{pid}/status r,
+-    # libvirt lease and status files for dnsmasq
+-    /var/lib/libvirt/dnsmasq/*.leases  rw,
+-    /var/lib/libvirt/dnsmasq/*.status* rw,
+-
+-    @{run}/leaseshelper.pid rwk,
+   }
+-
+-  # Site-specific additions and overrides. See local/README for details.
+-  include if exists <local/usr.sbin.dnsmasq>
+ }
index 9bd0df8dcfd6b83ef536abd34ac1881c491346a4..4faf38bf9c0c9c6f1e17e0a31b2ddd4dfa067d07 100644 (file)
@@ -10,7 +10,7 @@ PKG_RELEASE:=$(AUTORELEASE)
 PKG_LICENSE:=GPL-3.0
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/auc
   SECTION:=base
index ba3fdfa5f32e825395c6e2192cd7c091795eb298..221b0b6ee5a97746a179cc78bb79feb1e4a727c1 100644 (file)
@@ -532,12 +532,6 @@ static void board_cb(struct ubus_request *req, int type, struct blob_attr *msg)
 
        blobmsg_parse(board_policy, __BOARD_MAX, tb, blob_data(msg), blob_len(msg));
 
-       if (!tb[BOARD_BOARD_NAME]) {
-               fprintf(stderr, "No board name received\n");
-               rc=-ENODATA;
-               return;
-       }
-       board_name = strdup(blobmsg_get_string(tb[BOARD_BOARD_NAME]));
 
        if (!tb[BOARD_RELEASE]) {
                fprintf(stderr, "No release received\n");
@@ -562,6 +556,21 @@ static void board_cb(struct ubus_request *req, int type, struct blob_attr *msg)
        version = strdup(blobmsg_get_string(rel[RELEASE_VERSION]));
        revision = strdup(blobmsg_get_string(rel[RELEASE_REVISION]));
 
+       if (!strcmp(target, "x86/64") || !strcmp(target, "x86/generic")) {
+               /*
+                * ugly work-around ahead:
+                * ignore board name on generic x86 targets, as image name is always 'generic'
+                */
+               board_name = strdup("generic");
+       } else {
+               if (!tb[BOARD_BOARD_NAME]) {
+                       fprintf(stderr, "No board name received\n");
+                       rc=-ENODATA;
+                       return;
+               }
+               board_name = strdup(blobmsg_get_string(tb[BOARD_BOARD_NAME]));
+       }
+
        blobmsg_add_string(buf, "distro", distribution);
        blobmsg_add_string(buf, "target", target);
        blobmsg_add_string(buf, "version", version);
@@ -856,6 +865,11 @@ static int server_request(const char *url, struct blob_buf *inbuf, struct blob_b
        out_bytes = 0;
        out_len = 0;
 
+#ifdef AUC_DEBUG
+       if (debug)
+               fprintf(stderr, "Requesting URL: %s\n", url);
+#endif
+
        if (outbuf) {
                jsb = malloc(sizeof(struct jsonblobber));
                jsb->outbuf = outbuf;
@@ -1191,8 +1205,16 @@ static struct branch *select_branch(char *name, char *select_version)
                                break;
                        }
                } else {
-                       if (!abr || (strcmp(br->version, abr->version) > 0))
-                               abr = br;
+                       /* if we are on a snapshot branch, stay there */
+                       if (strcasestr(version, "snapshot")) {
+                               if (strcasestr(br->version, "snapshot")) {
+                                       abr = br;
+                                       break;
+                               }
+                       } else {
+                               if (!abr || (verrevcmp(br->version, abr->version) > 0))
+                                       abr = br;
+                       }
                }
        }
 
@@ -1393,7 +1415,7 @@ int main(int args, char *argv[]) {
        char url[256];
        char *sanetized_board_name, *image_name, *image_sha256, *tmp;
        struct blob_attr *tbr[__REPLY_MAX];
-       struct blob_attr *tb[__TARGET_MAX];
+       struct blob_attr *tb[__TARGET_MAX] = {}; /* make sure tb is NULL initialized even if blobmsg_parse isn't called */
        struct stat imgstat;
        int check_only = 0;
        int retry_delay = 0;
diff --git a/utils/bluld/Makefile b/utils/bluld/Makefile
new file mode 100644 (file)
index 0000000..4d70698
--- /dev/null
@@ -0,0 +1,48 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bluld
+PKG_VERSION:=1.1.2
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/ktgeek/$(PKG_NAME)/releases/download/v$(PKG_VERSION)
+PKG_HASH:=94e42999bf701ea01296d614fe298af3bd5b91d3bdab6adda7ecc24af69f8230
+
+PKG_MAINTAINER:=Keith T. Garner <kgarner@kgarner.com>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+EXTRA_CXXFLAGS = -I$(LINUX_DIR)/include
+EXTRA_CFLAGS = -I$(LINUX_DIR)/include
+
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/bluld
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Blinkstick User space LED Daemon
+  DEPENDS:=+kmod-usb-hid +kmod-leds-uleds +libstdcpp +hidapi
+endef
+
+define Package/bluld/description
+  A daemon to expose a Blinkstick to the Linux kernel LED class via /dev/uleds. (Kernel 4.10+ required.)
+endef
+
+define Package/bluld/conffiles
+/etc/config/bluld
+endef
+
+define Package/bluld/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/bluld $(1)/usr/sbin
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/bluld.conf $(1)/etc/config/bluld
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/bluld.init $(1)/etc/init.d/bluld
+endef
+
+$(eval $(call BuildPackage,bluld))
diff --git a/utils/bluld/files/bluld.conf b/utils/bluld/files/bluld.conf
new file mode 100644 (file)
index 0000000..71c5944
--- /dev/null
@@ -0,0 +1,3 @@
+config bluld uleds
+       option led_count 1
+       list colors 'green'
diff --git a/utils/bluld/files/bluld.init b/utils/bluld/files/bluld.init
new file mode 100755 (executable)
index 0000000..288b44d
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2021 Keith T. Garner
+
+START=90
+
+USE_PROCD=1
+
+PROG=/usr/sbin/bluld
+
+start_service() {
+    config_load bluld
+
+    local led_count
+    local colors
+
+    config_get led_count uleds led_count
+    config_get colors uleds colors
+
+    procd_open_instance
+    procd_set_param command $PROG $led_count $colors
+    procd_set_param stdout 1
+    procd_set_param stderr 1
+    procd_set_param nice 20
+    procd_close_instance
+}
+
+service_triggers() {
+    procd_add_reload_trigger "bluld"
+}
+
+reload_service() {
+    stop
+    start
+    /etc/init.d/led restart
+}
+
+restart() {
+    reload_service
+}
index 1b45fdafc033360ab64d71106b7b4042eea23caf..d1d94229eb47d99b953541a9f1adfac97e921eed 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/canutils/Default
   SECTION:=utils
index 589d82793488a4b6315491efabfa0b4907b25daa..a136229ea465ca07c43d4441bcf137b54cae7bad 100644 (file)
@@ -1,16 +1,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cni
-PKG_VERSION:=0.8.0
-PKG_RELEASE:=3
+PKG_VERSION:=0.8.1
+PKG_RELEASE:=$(AUTORELEASE)
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/containernetworking/$(PKG_NAME)/archive/v$(PKG_VERSION)
-PKG_HASH:=df8afe3eeae3296ba33ca267041c42f13135c3a067bf2d932761bb02998247a6
+PKG_HASH:=6242e7905b5f8f7561a21f595209b569998727927380a8cdf5ab58e7fd5ac2d5
 
-PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>, Paul Spooren <mail@aparcar.org>
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>, Paul Spooren <mail@aparcar.org>, Oskari Rauta <oskari.rauta@gmail.com>
 
 PKG_BUILD_DEPENDS:=golang/host
 PKG_BUILD_PARALLEL:=1
index 198ce2e826c1d01550cc6d05343eb2e425b37458..40c58a6499e40eb57fcc70e8acae7d268fd6f86c 100644 (file)
@@ -1,14 +1,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=conmon
-PKG_VERSION:=2.0.27
+PKG_VERSION:=2.0.29
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/containers/$(PKG_NAME)/archive/v$(PKG_VERSION)
-PKG_HASH:=cb953fa418835a3f57af175df3641140d9c44ec219a7ad2efcc07952241f9ea5
+PKG_HASH:=eb4d5e157671a61b88786e44094775194e30e1d0ad0b9d50035532ece78dbc28
 
-PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
diff --git a/utils/conmon/patches/100-fix-null-socket-connection-list.patch b/utils/conmon/patches/100-fix-null-socket-connection-list.patch
deleted file mode 100644 (file)
index 886e13a..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/src/conn_sock.c
-+++ b/src/conn_sock.c
-@@ -465,6 +465,9 @@ static void init_remote_sock(struct remo
- static void close_sock(gpointer data, G_GNUC_UNUSED gpointer user_data)
- {
-+      if (data == NULL)
-+              return;
-+
-       struct remote_sock_s *sock = (struct remote_sock_s *)data;
-       close(sock->fd);
-@@ -473,5 +476,9 @@ static void close_sock(gpointer data, G_
- void close_all_readers()
- {
-+
-+      if (local_mainfd_stdin.readers == NULL)
-+              return;
-+
-       g_ptr_array_foreach(local_mainfd_stdin.readers, close_sock, NULL);
- }
index 60f5f09e715cdeb8b05b97848390973cda88200c..4ce66219275ec6caec6f0d424e8b9b241fc0e986 100644 (file)
@@ -1,15 +1,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=containerd
-PKG_VERSION:=1.4.4
+PKG_VERSION:=1.4.6
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/containerd/containerd/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=ac62c64664bf62fd44df0891c896eecdb6d93def3438271d7892dca75bc069d1
-PKG_SOURCE_VERSION:=05f951a3781f4f2c1911b05e61c160e9c30eaa8e
+PKG_HASH:=285a3f4c00a87538bd7d0a82a0a8a758458c02b925349f44f3189f480c326038
+PKG_SOURCE_VERSION:=d71fcd7d8303cbf684402823e425e9dd2e99285d
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
index c6a665565753e768d06d3491c8eb7ae0a3377041..3d47bd504a0ef73c95385c07fee81e6770ad7428 100644 (file)
@@ -1,14 +1,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=crun
-PKG_VERSION:=0.19.1
+PKG_VERSION:=0.20
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/containers/crun.git
-PKG_SOURCE_DATE:=2021-05-18
-PKG_SOURCE_VERSION:=f9c405d3cd8727f98ac4cdf0d98722684ee5f0bb
-PKG_MIRROR_HASH:=3aaa49a471c85b5eb6132ef10da94f96aee371ce9575b74985248d2502172d95
+PKG_SOURCE_DATE:=2021-06-07
+PKG_SOURCE_VERSION:=8d6a8b5ab80461cfed19f020a36584af13c32038
+PKG_MIRROR_HASH:=9ca1f0e530b33ce8820bd03329eb6731c5050d6e7f35bd2463d9a81cc00382e0
 
 PKG_BUILD_DEPENDS:=argp-standalone
 PKG_BUILD_PARALLEL:=1
@@ -74,8 +74,7 @@ define Package/crun/install
 endef
 
 define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/crun $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcrun.* $(1)/usr/lib/
 endef
 
index 5fc4da22c63f473640baa6ee5523a547f2a94909..da8a7bef306032a0af1479ebde92b621ab82c16a 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE:=AFL-2.1
 PKG_CPE_ID:=cpe:/a:freedesktop:dbus
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/dbus/Default
   SECTION:=utils
index 1bf432675db1858d8149a391f0e8d35e06baf3f8..fc3362016640e1904fb2859de2b8a51108bc33b4 100644 (file)
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=docker
-PKG_VERSION:=20.10.6
+PKG_VERSION:=20.10.7
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
@@ -10,8 +10,8 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_GIT_URL:=github.com/docker/cli
 PKG_GIT_REF:=v$(PKG_VERSION)
 PKG_SOURCE_URL:=https://codeload.$(PKG_GIT_URL)/tar.gz/$(PKG_GIT_REF)?
-PKG_HASH:=eda53b96ab83a59502df2e5e00ab7ee867243259407ef454be55e695303c1113
-PKG_GIT_SHORT_COMMIT:=370c289 # SHA1 used within the docker executables
+PKG_HASH:=0a7848b1b5031483de075433506d0448ddf834368d9c73770e453e0b89b49747
+PKG_GIT_SHORT_COMMIT:=f0df350 # SHA1 used within the docker executables
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
index 4b1488328f6f1293adaba68bef803c8d1c39adff..5cec7d674d035815109b023c056c72a66702dbb6 100644 (file)
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dockerd
-PKG_VERSION:=20.10.6
+PKG_VERSION:=20.10.7
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
@@ -10,8 +10,8 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_GIT_URL:=github.com/moby/moby
 PKG_GIT_REF:=v$(PKG_VERSION)
 PKG_SOURCE_URL:=https://codeload.$(PKG_GIT_URL)/tar.gz/$(PKG_GIT_REF)?
-PKG_HASH:=fd7f5571b1f64f26b5ca520a3e1fefb33c190f3732b931051c23a76bdba5000e
-PKG_GIT_SHORT_COMMIT:=8728dd2 # SHA1 used within the docker executables
+PKG_HASH:=b80142035de46904605fb7b8f18075cd94154f8c3d67ff346ea554d1e9d579b9
+PKG_GIT_SHORT_COMMIT:=b0f5bc3 # SHA1 used within the docker executables
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
index a7dc4a3a04f1c7d4abf46b8cf637c303fde73540..7ec5929c44db0127d9ea709c54c089d9c6e58f44 100644 (file)
@@ -22,7 +22,7 @@ PKG_BUILD_DEPENDS:=python3 minizip cereal
 PKG_USE_MIPS16:=0
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/domoticz
   SECTION:=utils
index 2d2005b90db415bae2d0b513545346e8291f58b3..e6f5a916e63e9914369ae7e47106230346f9322c 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=COPYRIGHT
 CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/libecdsautil
   SECTION:=libs
index 2c13f6243e69ca37cd9b82f7ecbd90a2d5ed6442..455674dbf2f86954a0fb7d106dec826b79b14153 100644 (file)
@@ -5,12 +5,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fish
-PKG_VERSION:=3.2.1
+PKG_VERSION:=3.2.2
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/fish-shell/fish-shell/releases/download/$(PKG_VERSION)
-PKG_HASH:=d8e49f4090d3778df17dd825e4a2a80192015682423cd9dd02b6675d65c3af5b
+PKG_HASH:=5944da1a8893d11b0828a4fd9136ee174549daffb3d0adfdd8917856fe6b4009
 
 PKG_MAINTAINER:=Curtis Jiang <jqqqqqqqqqq@gmail.com>, Hao Dong <halbertdong@gmail.com>
 PKG_LICENSE:=GPL-2.0-only
@@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:fishshell:fish
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/fish
   SECTION:=utils
index 5ae8472a3538adbe47db729c789d8b1853b9cecd..300339aee929d274a924236666b524dbb142252b 100644 (file)
@@ -24,7 +24,7 @@ CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/gammu
        SECTION:=utils
index c51dfcf4114eeb4eefda12f43132eacadbddc7cd..e1b18685ea776cc5a86d13c1d8b663ff7ddafd20 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gpsd
 PKG_VERSION:=3.21
-PKG_RELEASE:=3
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SAVANNAH/$(PKG_NAME)
@@ -95,6 +95,7 @@ define Package/libgps/description
 endef
 
 SCONS_VARS += \
+       CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) -L$(STAGING_DIR)/usr/lib" \
        LINKFLAGS="$(TARGET_LDFLAGS)"
 
 SCONS_OPTIONS += \
@@ -116,7 +117,7 @@ SCONS_OPTIONS += \
        implicit_link=no \
        chrpath=no \
        manbuild=no \
-       sysroot="$(STAGING_DIR)" \
+       sysroot="$(TOOLCHAIN_DIR)" \
        target="$(TARGET_CROSS:-=)"
 
 define Build/InstallDev
index 01db8661097852778fa15c985d070b6bcdcce1bf..3e2037d2cba52f6b1ec46e95351bd6a4d82ffd0f 100644 (file)
@@ -28,7 +28,7 @@ define Package/gummiboot
   SECTION:=boot
   CATEGORY:=Boot Loaders
   TITLE:=Simple UEFI boot manager
-  DEPENDS:=@TARGET_X86_64 +libblkid
+  DEPENDS:=@TARGET_x86_64 +libblkid
   URL:=https://github.com/rzr/gummiboot
 endef
 
index 4443ad586c19a832d4522c5e0c26d57c21b6caab..03871f90ce0b1be5c13d8bdaa4cdd6be47f3cd5b 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hwinfo
 PKG_VERSION:=21.71
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/openSUSE/hwinfo/tar.gz/$(PKG_VERSION)?
@@ -66,7 +66,7 @@ define Package/hwinfo
   CATEGORY:=Utilities
   TITLE:=probe the hardware present in the system
   URL:=https://github.com/openSUSE/hwinfo
-  DEPENDS:= +libuuid @!USE_UCLIBC
+  DEPENDS:= +libuuid
 endef
 
 define Package/hwinfo/description
diff --git a/utils/hwinfo/patches/0-hardcoding-version b/utils/hwinfo/patches/0-hardcoding-version
deleted file mode 100644 (file)
index 96f85fd..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-hardcode version of hwinfo, this must be changed in sync 
-with hwinfo version changes when updating the package
---- a/Makefile
-+++ b/Makefile
-@@ -12,12 +12,8 @@ export SO_LIBS
- GIT2LOG := $(shell if [ -x ./git2log ] ; then echo ./git2log --update ; else echo true ; fi)
- GITDEPS := $(shell [ -d .git ] && echo .git/HEAD .git/refs/heads .git/refs/tags)
--BRANCH  := $(shell [ -d .git ] && git branch | perl -ne 'print $$_ if s/^\*\s*//')
--ifdef HWINFO_VERSION
--VERSION := $(shell echo ${HWINFO_VERSION} > VERSION; cat VERSION)
--else
--VERSION := $(shell $(GIT2LOG) --version VERSION ; cat VERSION)
--endif
-+BRANCH  := master
-+VERSION := $(shell echo 21.71 > VERSION; cat VERSION)
- PREFIX  := hwinfo-$(VERSION)
- include Makefile.common
diff --git a/utils/hwinfo/patches/010-hardcoding-version.patch b/utils/hwinfo/patches/010-hardcoding-version.patch
new file mode 100644 (file)
index 0000000..96f85fd
--- /dev/null
@@ -0,0 +1,19 @@
+hardcode version of hwinfo, this must be changed in sync 
+with hwinfo version changes when updating the package
+--- a/Makefile
++++ b/Makefile
+@@ -12,12 +12,8 @@ export SO_LIBS
+ GIT2LOG := $(shell if [ -x ./git2log ] ; then echo ./git2log --update ; else echo true ; fi)
+ GITDEPS := $(shell [ -d .git ] && echo .git/HEAD .git/refs/heads .git/refs/tags)
+-BRANCH  := $(shell [ -d .git ] && git branch | perl -ne 'print $$_ if s/^\*\s*//')
+-ifdef HWINFO_VERSION
+-VERSION := $(shell echo ${HWINFO_VERSION} > VERSION; cat VERSION)
+-else
+-VERSION := $(shell $(GIT2LOG) --version VERSION ; cat VERSION)
+-endif
++BRANCH  := master
++VERSION := $(shell echo 21.71 > VERSION; cat VERSION)
+ PREFIX  := hwinfo-$(VERSION)
+ include Makefile.common
diff --git a/utils/hwinfo/patches/020-remove_libx8emu_dependency.patch b/utils/hwinfo/patches/020-remove_libx8emu_dependency.patch
new file mode 100644 (file)
index 0000000..579dc6b
--- /dev/null
@@ -0,0 +1,65 @@
+the library libx86emu is used only for manipulating VBIOS
+firmware to get some information from it.
+Since it's not crucial for OpenWrt usecase and it's a pain
+to compile this package with this dependency in OpenWrt due to
+host builds and whatnot, we simply remove it and disable this 
+functionality in hwinfo.
+This also saves some space.
+--- a/Makefile
++++ b/Makefile
+@@ -25,13 +25,14 @@ LIBDIR             ?= /usr/lib
+ endif
+ ULIBDIR               = $(LIBDIR)
++# this library has been removed from the code, disabling it here too
+ # ia64
+-ifneq ($(filter i386 x86_64, $(ARCH)),)
+-SLIBS         += -lx86emu
+-TLIBS         += -lx86emu
+-SO_LIBS               += -lx86emu
+-TSO_LIBS      += -lx86emu
+-endif
++#ifneq ($(filter i386 x86_64, $(ARCH)),)
++#SLIBS                += -lx86emu
++#TLIBS                += -lx86emu
++#SO_LIBS              += -lx86emu
++#TSO_LIBS     += -lx86emu
++#endif
+ SHARED_FLAGS  =
+ OBJS_NO_TINY  = names.o parallel.o modem.o
+--- a/src/hd/bios.c
++++ b/src/hd/bios.c
+@@ -447,9 +447,10 @@ void hd_scan_bios(hd_data_t *hd_data)
+       }
+     }
+-#if defined(__i386__) || defined (__x86_64__)
+-    get_vbe_info(hd_data, vbe);
+-#endif
++//disabled as we removed the library needed for this function
++//#if defined(__i386__) || defined (__x86_64__)
++//    get_vbe_info(hd_data, vbe);
++//#endif
+     if(vbe->ok) {
+       bt->vbe_ver = vbe->version;
+--- a/src/hd/bios.h
++++ b/src/hd/bios.h
+@@ -5,4 +5,5 @@
+ #define BIOS_RAM_SIZE   0x100
+ void hd_scan_bios(hd_data_t *hd_data);
+-void get_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe);
++//disabled as we removed the lib needed by this function
++//void get_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe);
+--- a/src/hd/mdt.c
++++ b/src/hd/mdt.c
+@@ -1,4 +1,6 @@
+-#if defined(__i386__) || defined (__x86_64__)
++//disabling this whole thing as it's using the lib we have removed
++//#if defined(__i386__) || defined (__x86_64__)
++#if defined(__disabled__) || defined (__disabled__)
+ #define _GNU_SOURCE
diff --git a/utils/hwinfo/patches/030-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers.patch b/utils/hwinfo/patches/030-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers.patch
new file mode 100644 (file)
index 0000000..6aa9c80
--- /dev/null
@@ -0,0 +1,75 @@
+>>enable all IDs for hwinfo
+>>changes to make it respect compile flags
+>>disable the generation of "tiny hwinfo ID tables" because it is a long
+process and has no purpose, it seems I cannot even build the "tiny" version of hwinfo
+on my OpenSUSE system, so I guess that it is just legacy stuff that bitrotted.
+
+--- a/src/ids/Makefile
++++ b/src/ids/Makefile
+@@ -17,47 +17,47 @@ IDFILES    += src/bus src/class src/extra s
+         src/usb src/usb2 src/isapnp src/monitor src/camera src/tv2 src/tv src/dvb2 src/dvb \
+         src/chipcard src/modem src/pcmcia src/s390 src/sdio
+-ifeq "$(ARCH)" "i386"
++#ifeq "$(ARCH)" "i386"
+ IDFILES += src/x11.i386 src/modem.i386
+-endif
++#endif
+-ifeq "$(ARCH)" "ppc"
++#ifeq "$(ARCH)" "ppc"
+ IDFILES += src/x11.ppc src/x11.ppc.special
+-endif
++#endif
+-ifeq "$(ARCH)" "alpha"
++#ifeq "$(ARCH)" "alpha"
+ IDFILES += src/x11.axp
+-endif
++#endif
+-ifeq "$(ARCH)" "sparc"
++#ifeq "$(ARCH)" "sparc"
+ IDFILES += src/x11.sparc
+-endif
++#endif
+-ifeq "$(ARCH)" "sparc64"
++#ifeq "$(ARCH)" "sparc64"
+ IDFILES += src/x11.sparc
+-endif
++#endif
+-ifeq "$(ARCH)" "ia64"
++#ifeq "$(ARCH)" "ia64"
+ IDFILES += src/x11.ia64
+-endif
++#endif
+-ifeq "$(ARCH)" "x86_64"
++#ifeq "$(ARCH)" "x86_64"
+ IDFILES += src/x11.amd64
+-endif
++#endif
+ IDFILES += src/pci src/storage src/sound src/mouse src/braille
+ $(LIBHD_D): hd_ids.o
+-      ar r $(LIBHD) $?
++      $(AR) r $(LIBHD) $?
+ check_hd: check_hd.c
+-      $(CC) $(CFLAGS) $< -o $@
++      $(CC) $(LDFLAGS) $(CFLAGS) $< -o $@
+-hd_ids.c: hd_ids.h hd_ids_tiny.h
++hd_ids.c: hd_ids.h 
+ hd_ids.h hd.ids: check_hd $(IDFILES)
+       ./check_hd --check --sort --cfile hd_ids.h $(IDFILES)
+-hd_ids_tiny.h: check_hd hd.ids
+-      ./check_hd --mini --cfile hd_ids_tiny.h --log=hd_tiny.log --out=hd_tiny.ids hd.ids
++#hd_ids_tiny.h: check_hd hd.ids
++#     ./check_hd --mini --cfile hd_ids_tiny.h --log=hd_tiny.log --out=hd_tiny.ids hd.ids
diff --git a/utils/hwinfo/patches/040-assorted-Makefile-butchery.patch b/utils/hwinfo/patches/040-assorted-Makefile-butchery.patch
new file mode 100644 (file)
index 0000000..03bc4a6
--- /dev/null
@@ -0,0 +1,193 @@
+Some makefile modifications to:
+>>disable the logic that detects and sets architecture (it screws up cross-compiling)
+>>disable some secondary build functions like creating changelogs or report files for other tools
+>>disable the install functionality as we take the files we need with OpenWrt build system
+>>changes to all makefiles to respect the compile flags
+
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+ TOPDIR                = $(CURDIR)
+ SUBDIRS               = src
+-TARGETS               = hwinfo hwinfo.pc changelog
++TARGETS               = hwinfo
+ CLEANFILES    = hwinfo hwinfo.pc hwinfo.static hwscan hwscan.static hwscand hwscanqueue doc/libhd doc/*~
+ LIBS          = -lhd
+ SLIBS         = -lhd -luuid
+@@ -18,11 +18,11 @@ PREFIX  := hwinfo-$(VERSION)
+ include Makefile.common
+-ifeq "$(ARCH)" "x86_64"
+-LIBDIR                ?= /usr/lib64
+-else
++#ifeq "$(ARCH)" "x86_64"
++#LIBDIR               ?= /usr/lib64
++#else
+ LIBDIR                ?= /usr/lib
+-endif
++#endif
+ ULIBDIR               = $(LIBDIR)
+ # this library has been removed from the code, disabling it here too
+@@ -39,13 +39,13 @@ OBJS_NO_TINY       = names.o parallel.o modem.
+ .PHONY:       fullstatic static shared tiny doc diet tinydiet uc tinyuc
+-ifdef HWINFO_VERSION
++#ifdef HWINFO_VERSION
+ changelog:
+       @true
+-else
+-changelog: $(GITDEPS)
+-      $(GIT2LOG) --changelog changelog
+-endif
++#else
++#changelog: $(GITDEPS)
++#     $(GIT2LOG) --changelog changelog
++#endif
+ hwscan: hwscan.o $(LIBHD)
+       $(CC) hwscan.o $(LDFLAGS) $(CFLAGS) $(LIBS) -o $@
+@@ -99,28 +99,29 @@ doc:
+       @cd doc ; doxygen libhd.doxy
+ install:
+-      install -d -m 755 $(DESTDIR)/sbin $(DESTDIR)/usr/sbin $(DESTDIR)$(ULIBDIR) \
+-              $(DESTDIR)$(ULIBDIR)/pkgconfig $(DESTDIR)/usr/include
+-      install -m 755 hwinfo $(DESTDIR)/usr/sbin
+-      install -m 755 src/ids/check_hd $(DESTDIR)/usr/sbin
+-      install -m 755 src/ids/convert_hd $(DESTDIR)/usr/sbin
+-      if [ -f $(LIBHD_SO) ] ; then \
+-              install $(LIBHD_SO) $(DESTDIR)$(ULIBDIR) ; \
+-              ln -snf $(LIBHD_NAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_SONAME) ; \
+-              ln -snf $(LIBHD_SONAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_BASE).so ; \
+-      else \
+-              install -m 644 $(LIBHD) $(DESTDIR)$(ULIBDIR) ; \
+-      fi
+-      install -m 644 hwinfo.pc $(DESTDIR)$(ULIBDIR)/pkgconfig
+-      install -m 644 src/hd/hd.h $(DESTDIR)/usr/include
+-      perl -pi -e "s/define\s+HD_VERSION\b.*/define HD_VERSION\t\t$(LIBHD_MAJOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
+-      perl -pi -e "s/define\s+HD_MINOR_VERSION\b.*/define HD_MINOR_VERSION\t$(LIBHD_MINOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
+-      install -m 755 getsysinfo $(DESTDIR)/usr/sbin
+-      install -m 755 src/isdn/cdb/mk_isdnhwdb $(DESTDIR)/usr/sbin
+-      install -d -m 755 $(DESTDIR)/usr/share/hwinfo
+-      install -d -m 755 $(DESTDIR)/var/lib/hardware/udi
+-      install -m 644 src/isdn/cdb/ISDN.CDB.txt $(DESTDIR)/usr/share/hwinfo
+-      install -m 644 src/isdn/cdb/ISDN.CDB.hwdb $(DESTDIR)/usr/share/hwinfo
++#     install -d -m 755 $(DESTDIR)/sbin $(DESTDIR)/usr/sbin $(DESTDIR)$(ULIBDIR) \
++#             $(DESTDIR)$(ULIBDIR)/pkgconfig $(DESTDIR)/usr/include
++#     install -m 755 hwinfo $(DESTDIR)/usr/sbin
++#     install -m 755 src/ids/check_hd $(DESTDIR)/usr/sbin
++#     install -m 755 src/ids/convert_hd $(DESTDIR)/usr/sbin
++#     if [ -f $(LIBHD_SO) ] ; then \
++#             install $(LIBHD_SO) $(DESTDIR)$(ULIBDIR) ; \
++#             ln -snf $(LIBHD_NAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_SONAME) ; \
++#             ln -snf $(LIBHD_SONAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_BASE).so ; \
++#     else \
++#             install -m 644 $(LIBHD) $(DESTDIR)$(ULIBDIR) ; \
++#     fi
++#     install -m 644 hwinfo.pc $(DESTDIR)$(ULIBDIR)/pkgconfig
++#     install -m 644 src/hd/hd.h $(DESTDIR)/usr/include
++#     perl -pi -e "s/define\s+HD_VERSION\b.*/define HD_VERSION\t\t$(LIBHD_MAJOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
++#     perl -pi -e "s/define\s+HD_MINOR_VERSION\b.*/define HD_MINOR_VERSION\t$(LIBHD_MINOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
++#     install -m 755 getsysinfo $(DESTDIR)/usr/sbin
++#     install -m 755 src/isdn/cdb/mk_isdnhwdb $(DESTDIR)/usr/sbin
++#     install -d -m 755 $(DESTDIR)/usr/share/hwinfo
++#     install -d -m 755 $(DESTDIR)/var/lib/hardware/udi
++#     install -m 644 src/isdn/cdb/ISDN.CDB.txt $(DESTDIR)/usr/share/hwinfo
++#     install -m 644 src/isdn/cdb/ISDN.CDB.hwdb $(DESTDIR)/usr/share/hwinfo
++      @true
+ archive: changelog
+       @if [ ! -d .git ] ; then echo no git repo ; false ; fi
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -1,28 +1,26 @@
+ # libhd/Makefile.common
+-ARCH  := $(shell uname -m)
+-ifeq "$(ARCH)" "i486"
+-ARCH  := i386
+-endif
+-ifeq "$(ARCH)" "i586"
+-ARCH  := i386
+-endif
+-ifeq "$(ARCH)" "i686"
+-ARCH  := i386
+-endif
+-ifeq "$(ARCH)" "parisc"
+-EXTRA_FLAGS := -fPIC $(EXTRA_FLAGS)
+-endif
++#ARCH := $(shell uname -m)
++#ifeq "$(ARCH)" "i486"
++#ARCH := i386
++#endif
++#ifeq "$(ARCH)" "i586"
++#ARCH := i386
++#endif
++#ifeq "$(ARCH)" "i686"
++#ARCH := i386
++#endif
++#ifeq "$(ARCH)" "parisc"
++#EXTRA_FLAGS := -fPIC $(EXTRA_FLAGS)
++#endif
+ LIBHD_VERSION         := $(shell cat $(TOPDIR)/VERSION)
+ LIBHD_MINOR_VERSION   := $(shell cut -d . -f 2 $(TOPDIR)/VERSION)
+ LIBHD_MAJOR_VERSION   := $(shell cut -d . -f 1 $(TOPDIR)/VERSION)
+-RPM_OPT_FLAGS ?= -O2
+-
+ CC    ?= gcc
+ LD    = ld
+-CFLAGS += $(RPM_OPT_FLAGS) -Wall -Wno-pointer-sign -pipe -g $(SHARED_FLAGS) $(EXTRA_FLAGS) -I$(TOPDIR)/src/hd
++CFLAGS += -Wall -Wno-pointer-sign $(SHARED_FLAGS) $(EXTRA_FLAGS) -I$(TOPDIR)/src/hd
+ SHARED_FLAGS  = -fPIC
+ LDFLAGS       += -Lsrc
+@@ -36,7 +34,7 @@ LIBHD_NAME   = $(LIBHD_BASE).so.$(LIBHD_VE
+ LIBHD_SO      = $(TOPDIR)/src/$(LIBHD_NAME)
+ LIBHD_D               = $(TOPDIR)/src/.lib
+-export CC TOPDIR CFLAGS LIBHD ARCH
++export CC TOPDIR CFLAGS LIBHD 
+ .PHONY: all distclean clean install subdirs
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -12,7 +12,7 @@ include $(TOPDIR)/Makefile.common
+ #endif
+ $(LIBHD): $(OBJS)
+-      ar r $@ $?
++      $(AR) r $@ $?
+       @rm -f $(LIBHD_D)
+ ifdef SHARED_FLAGS
+--- a/src/hd/Makefile
++++ b/src/hd/Makefile
+@@ -8,4 +8,4 @@ version.h: $(TOPDIR)/VERSION
+       @echo "#define HD_VERSION_STRING \"`cat $(TOPDIR)/VERSION`\"" >$@
+ $(LIBHD_D): $(OBJS)
+-      ar r $(LIBHD) $?
++      $(AR) r $(LIBHD) $?
+--- a/src/isdn/Makefile
++++ b/src/isdn/Makefile
+@@ -5,5 +5,5 @@ SUBDIRS = cdb
+ include $(TOPDIR)/Makefile.common
+ $(LIBHD_D): $(OBJS)
+-      ar r $(LIBHD) $?
++      $(AR) r $(LIBHD) $?
+--- a/src/smp/Makefile
++++ b/src/smp/Makefile
+@@ -4,4 +4,4 @@ TARGETS        = $(LIBHD_D)
+ include $(TOPDIR)/Makefile.common
+ $(LIBHD_D): $(OBJS)
+-      ar r $(LIBHD) $?
++      $(AR) r $(LIBHD) $?
diff --git a/utils/hwinfo/patches/050-arc.patch b/utils/hwinfo/patches/050-arc.patch
new file mode 100644 (file)
index 0000000..07010c8
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/src/hd/hd.c
++++ b/src/hd/hd.c
+@@ -156,6 +156,10 @@
+ #define HD_ARCH "riscv"
+ #endif
++#ifdef __arc__
++#define HD_ARCH "arc"
++#endif
++
+ typedef struct disk_s {
+   struct disk_s *next;
+   unsigned crc;
diff --git a/utils/hwinfo/patches/1-remove_libx8emu_dependency b/utils/hwinfo/patches/1-remove_libx8emu_dependency
deleted file mode 100644 (file)
index 579dc6b..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-the library libx86emu is used only for manipulating VBIOS
-firmware to get some information from it.
-Since it's not crucial for OpenWrt usecase and it's a pain
-to compile this package with this dependency in OpenWrt due to
-host builds and whatnot, we simply remove it and disable this 
-functionality in hwinfo.
-This also saves some space.
---- a/Makefile
-+++ b/Makefile
-@@ -25,13 +25,14 @@ LIBDIR             ?= /usr/lib
- endif
- ULIBDIR               = $(LIBDIR)
-+# this library has been removed from the code, disabling it here too
- # ia64
--ifneq ($(filter i386 x86_64, $(ARCH)),)
--SLIBS         += -lx86emu
--TLIBS         += -lx86emu
--SO_LIBS               += -lx86emu
--TSO_LIBS      += -lx86emu
--endif
-+#ifneq ($(filter i386 x86_64, $(ARCH)),)
-+#SLIBS                += -lx86emu
-+#TLIBS                += -lx86emu
-+#SO_LIBS              += -lx86emu
-+#TSO_LIBS     += -lx86emu
-+#endif
- SHARED_FLAGS  =
- OBJS_NO_TINY  = names.o parallel.o modem.o
---- a/src/hd/bios.c
-+++ b/src/hd/bios.c
-@@ -447,9 +447,10 @@ void hd_scan_bios(hd_data_t *hd_data)
-       }
-     }
--#if defined(__i386__) || defined (__x86_64__)
--    get_vbe_info(hd_data, vbe);
--#endif
-+//disabled as we removed the library needed for this function
-+//#if defined(__i386__) || defined (__x86_64__)
-+//    get_vbe_info(hd_data, vbe);
-+//#endif
-     if(vbe->ok) {
-       bt->vbe_ver = vbe->version;
---- a/src/hd/bios.h
-+++ b/src/hd/bios.h
-@@ -5,4 +5,5 @@
- #define BIOS_RAM_SIZE   0x100
- void hd_scan_bios(hd_data_t *hd_data);
--void get_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe);
-+//disabled as we removed the lib needed by this function
-+//void get_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe);
---- a/src/hd/mdt.c
-+++ b/src/hd/mdt.c
-@@ -1,4 +1,6 @@
--#if defined(__i386__) || defined (__x86_64__)
-+//disabling this whole thing as it's using the lib we have removed
-+//#if defined(__i386__) || defined (__x86_64__)
-+#if defined(__disabled__) || defined (__disabled__)
- #define _GNU_SOURCE
diff --git a/utils/hwinfo/patches/2-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers b/utils/hwinfo/patches/2-enable-hw-ids-and-disable-generation-of-tiny-hwinfo-headers
deleted file mode 100644 (file)
index 6aa9c80..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
->>enable all IDs for hwinfo
->>changes to make it respect compile flags
->>disable the generation of "tiny hwinfo ID tables" because it is a long
-process and has no purpose, it seems I cannot even build the "tiny" version of hwinfo
-on my OpenSUSE system, so I guess that it is just legacy stuff that bitrotted.
-
---- a/src/ids/Makefile
-+++ b/src/ids/Makefile
-@@ -17,47 +17,47 @@ IDFILES    += src/bus src/class src/extra s
-         src/usb src/usb2 src/isapnp src/monitor src/camera src/tv2 src/tv src/dvb2 src/dvb \
-         src/chipcard src/modem src/pcmcia src/s390 src/sdio
--ifeq "$(ARCH)" "i386"
-+#ifeq "$(ARCH)" "i386"
- IDFILES += src/x11.i386 src/modem.i386
--endif
-+#endif
--ifeq "$(ARCH)" "ppc"
-+#ifeq "$(ARCH)" "ppc"
- IDFILES += src/x11.ppc src/x11.ppc.special
--endif
-+#endif
--ifeq "$(ARCH)" "alpha"
-+#ifeq "$(ARCH)" "alpha"
- IDFILES += src/x11.axp
--endif
-+#endif
--ifeq "$(ARCH)" "sparc"
-+#ifeq "$(ARCH)" "sparc"
- IDFILES += src/x11.sparc
--endif
-+#endif
--ifeq "$(ARCH)" "sparc64"
-+#ifeq "$(ARCH)" "sparc64"
- IDFILES += src/x11.sparc
--endif
-+#endif
--ifeq "$(ARCH)" "ia64"
-+#ifeq "$(ARCH)" "ia64"
- IDFILES += src/x11.ia64
--endif
-+#endif
--ifeq "$(ARCH)" "x86_64"
-+#ifeq "$(ARCH)" "x86_64"
- IDFILES += src/x11.amd64
--endif
-+#endif
- IDFILES += src/pci src/storage src/sound src/mouse src/braille
- $(LIBHD_D): hd_ids.o
--      ar r $(LIBHD) $?
-+      $(AR) r $(LIBHD) $?
- check_hd: check_hd.c
--      $(CC) $(CFLAGS) $< -o $@
-+      $(CC) $(LDFLAGS) $(CFLAGS) $< -o $@
--hd_ids.c: hd_ids.h hd_ids_tiny.h
-+hd_ids.c: hd_ids.h 
- hd_ids.h hd.ids: check_hd $(IDFILES)
-       ./check_hd --check --sort --cfile hd_ids.h $(IDFILES)
--hd_ids_tiny.h: check_hd hd.ids
--      ./check_hd --mini --cfile hd_ids_tiny.h --log=hd_tiny.log --out=hd_tiny.ids hd.ids
-+#hd_ids_tiny.h: check_hd hd.ids
-+#     ./check_hd --mini --cfile hd_ids_tiny.h --log=hd_tiny.log --out=hd_tiny.ids hd.ids
diff --git a/utils/hwinfo/patches/3-assorted-Makefile-butchery b/utils/hwinfo/patches/3-assorted-Makefile-butchery
deleted file mode 100644 (file)
index 03bc4a6..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-Some makefile modifications to:
->>disable the logic that detects and sets architecture (it screws up cross-compiling)
->>disable some secondary build functions like creating changelogs or report files for other tools
->>disable the install functionality as we take the files we need with OpenWrt build system
->>changes to all makefiles to respect the compile flags
-
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- TOPDIR                = $(CURDIR)
- SUBDIRS               = src
--TARGETS               = hwinfo hwinfo.pc changelog
-+TARGETS               = hwinfo
- CLEANFILES    = hwinfo hwinfo.pc hwinfo.static hwscan hwscan.static hwscand hwscanqueue doc/libhd doc/*~
- LIBS          = -lhd
- SLIBS         = -lhd -luuid
-@@ -18,11 +18,11 @@ PREFIX  := hwinfo-$(VERSION)
- include Makefile.common
--ifeq "$(ARCH)" "x86_64"
--LIBDIR                ?= /usr/lib64
--else
-+#ifeq "$(ARCH)" "x86_64"
-+#LIBDIR               ?= /usr/lib64
-+#else
- LIBDIR                ?= /usr/lib
--endif
-+#endif
- ULIBDIR               = $(LIBDIR)
- # this library has been removed from the code, disabling it here too
-@@ -39,13 +39,13 @@ OBJS_NO_TINY       = names.o parallel.o modem.
- .PHONY:       fullstatic static shared tiny doc diet tinydiet uc tinyuc
--ifdef HWINFO_VERSION
-+#ifdef HWINFO_VERSION
- changelog:
-       @true
--else
--changelog: $(GITDEPS)
--      $(GIT2LOG) --changelog changelog
--endif
-+#else
-+#changelog: $(GITDEPS)
-+#     $(GIT2LOG) --changelog changelog
-+#endif
- hwscan: hwscan.o $(LIBHD)
-       $(CC) hwscan.o $(LDFLAGS) $(CFLAGS) $(LIBS) -o $@
-@@ -99,28 +99,29 @@ doc:
-       @cd doc ; doxygen libhd.doxy
- install:
--      install -d -m 755 $(DESTDIR)/sbin $(DESTDIR)/usr/sbin $(DESTDIR)$(ULIBDIR) \
--              $(DESTDIR)$(ULIBDIR)/pkgconfig $(DESTDIR)/usr/include
--      install -m 755 hwinfo $(DESTDIR)/usr/sbin
--      install -m 755 src/ids/check_hd $(DESTDIR)/usr/sbin
--      install -m 755 src/ids/convert_hd $(DESTDIR)/usr/sbin
--      if [ -f $(LIBHD_SO) ] ; then \
--              install $(LIBHD_SO) $(DESTDIR)$(ULIBDIR) ; \
--              ln -snf $(LIBHD_NAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_SONAME) ; \
--              ln -snf $(LIBHD_SONAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_BASE).so ; \
--      else \
--              install -m 644 $(LIBHD) $(DESTDIR)$(ULIBDIR) ; \
--      fi
--      install -m 644 hwinfo.pc $(DESTDIR)$(ULIBDIR)/pkgconfig
--      install -m 644 src/hd/hd.h $(DESTDIR)/usr/include
--      perl -pi -e "s/define\s+HD_VERSION\b.*/define HD_VERSION\t\t$(LIBHD_MAJOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
--      perl -pi -e "s/define\s+HD_MINOR_VERSION\b.*/define HD_MINOR_VERSION\t$(LIBHD_MINOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
--      install -m 755 getsysinfo $(DESTDIR)/usr/sbin
--      install -m 755 src/isdn/cdb/mk_isdnhwdb $(DESTDIR)/usr/sbin
--      install -d -m 755 $(DESTDIR)/usr/share/hwinfo
--      install -d -m 755 $(DESTDIR)/var/lib/hardware/udi
--      install -m 644 src/isdn/cdb/ISDN.CDB.txt $(DESTDIR)/usr/share/hwinfo
--      install -m 644 src/isdn/cdb/ISDN.CDB.hwdb $(DESTDIR)/usr/share/hwinfo
-+#     install -d -m 755 $(DESTDIR)/sbin $(DESTDIR)/usr/sbin $(DESTDIR)$(ULIBDIR) \
-+#             $(DESTDIR)$(ULIBDIR)/pkgconfig $(DESTDIR)/usr/include
-+#     install -m 755 hwinfo $(DESTDIR)/usr/sbin
-+#     install -m 755 src/ids/check_hd $(DESTDIR)/usr/sbin
-+#     install -m 755 src/ids/convert_hd $(DESTDIR)/usr/sbin
-+#     if [ -f $(LIBHD_SO) ] ; then \
-+#             install $(LIBHD_SO) $(DESTDIR)$(ULIBDIR) ; \
-+#             ln -snf $(LIBHD_NAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_SONAME) ; \
-+#             ln -snf $(LIBHD_SONAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_BASE).so ; \
-+#     else \
-+#             install -m 644 $(LIBHD) $(DESTDIR)$(ULIBDIR) ; \
-+#     fi
-+#     install -m 644 hwinfo.pc $(DESTDIR)$(ULIBDIR)/pkgconfig
-+#     install -m 644 src/hd/hd.h $(DESTDIR)/usr/include
-+#     perl -pi -e "s/define\s+HD_VERSION\b.*/define HD_VERSION\t\t$(LIBHD_MAJOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
-+#     perl -pi -e "s/define\s+HD_MINOR_VERSION\b.*/define HD_MINOR_VERSION\t$(LIBHD_MINOR_VERSION)/" $(DESTDIR)/usr/include/hd.h
-+#     install -m 755 getsysinfo $(DESTDIR)/usr/sbin
-+#     install -m 755 src/isdn/cdb/mk_isdnhwdb $(DESTDIR)/usr/sbin
-+#     install -d -m 755 $(DESTDIR)/usr/share/hwinfo
-+#     install -d -m 755 $(DESTDIR)/var/lib/hardware/udi
-+#     install -m 644 src/isdn/cdb/ISDN.CDB.txt $(DESTDIR)/usr/share/hwinfo
-+#     install -m 644 src/isdn/cdb/ISDN.CDB.hwdb $(DESTDIR)/usr/share/hwinfo
-+      @true
- archive: changelog
-       @if [ ! -d .git ] ; then echo no git repo ; false ; fi
---- a/Makefile.common
-+++ b/Makefile.common
-@@ -1,28 +1,26 @@
- # libhd/Makefile.common
--ARCH  := $(shell uname -m)
--ifeq "$(ARCH)" "i486"
--ARCH  := i386
--endif
--ifeq "$(ARCH)" "i586"
--ARCH  := i386
--endif
--ifeq "$(ARCH)" "i686"
--ARCH  := i386
--endif
--ifeq "$(ARCH)" "parisc"
--EXTRA_FLAGS := -fPIC $(EXTRA_FLAGS)
--endif
-+#ARCH := $(shell uname -m)
-+#ifeq "$(ARCH)" "i486"
-+#ARCH := i386
-+#endif
-+#ifeq "$(ARCH)" "i586"
-+#ARCH := i386
-+#endif
-+#ifeq "$(ARCH)" "i686"
-+#ARCH := i386
-+#endif
-+#ifeq "$(ARCH)" "parisc"
-+#EXTRA_FLAGS := -fPIC $(EXTRA_FLAGS)
-+#endif
- LIBHD_VERSION         := $(shell cat $(TOPDIR)/VERSION)
- LIBHD_MINOR_VERSION   := $(shell cut -d . -f 2 $(TOPDIR)/VERSION)
- LIBHD_MAJOR_VERSION   := $(shell cut -d . -f 1 $(TOPDIR)/VERSION)
--RPM_OPT_FLAGS ?= -O2
--
- CC    ?= gcc
- LD    = ld
--CFLAGS += $(RPM_OPT_FLAGS) -Wall -Wno-pointer-sign -pipe -g $(SHARED_FLAGS) $(EXTRA_FLAGS) -I$(TOPDIR)/src/hd
-+CFLAGS += -Wall -Wno-pointer-sign $(SHARED_FLAGS) $(EXTRA_FLAGS) -I$(TOPDIR)/src/hd
- SHARED_FLAGS  = -fPIC
- LDFLAGS       += -Lsrc
-@@ -36,7 +34,7 @@ LIBHD_NAME   = $(LIBHD_BASE).so.$(LIBHD_VE
- LIBHD_SO      = $(TOPDIR)/src/$(LIBHD_NAME)
- LIBHD_D               = $(TOPDIR)/src/.lib
--export CC TOPDIR CFLAGS LIBHD ARCH
-+export CC TOPDIR CFLAGS LIBHD 
- .PHONY: all distclean clean install subdirs
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -12,7 +12,7 @@ include $(TOPDIR)/Makefile.common
- #endif
- $(LIBHD): $(OBJS)
--      ar r $@ $?
-+      $(AR) r $@ $?
-       @rm -f $(LIBHD_D)
- ifdef SHARED_FLAGS
---- a/src/hd/Makefile
-+++ b/src/hd/Makefile
-@@ -8,4 +8,4 @@ version.h: $(TOPDIR)/VERSION
-       @echo "#define HD_VERSION_STRING \"`cat $(TOPDIR)/VERSION`\"" >$@
- $(LIBHD_D): $(OBJS)
--      ar r $(LIBHD) $?
-+      $(AR) r $(LIBHD) $?
---- a/src/isdn/Makefile
-+++ b/src/isdn/Makefile
-@@ -5,5 +5,5 @@ SUBDIRS = cdb
- include $(TOPDIR)/Makefile.common
- $(LIBHD_D): $(OBJS)
--      ar r $(LIBHD) $?
-+      $(AR) r $(LIBHD) $?
---- a/src/smp/Makefile
-+++ b/src/smp/Makefile
-@@ -4,4 +4,4 @@ TARGETS        = $(LIBHD_D)
- include $(TOPDIR)/Makefile.common
- $(LIBHD_D): $(OBJS)
--      ar r $(LIBHD) $?
-+      $(AR) r $(LIBHD) $?
index 07206d9c2e9d9d8c514cb4ebfeb93f289d926090..a2dea75465facccfef4635cf78ab6cdca8f09c9d 100644 (file)
@@ -12,9 +12,9 @@ GO_PKG_BUILD_PKG:= \
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://$(GO_PKG)
-PKG_SOURCE_VERSION:=b3507428be5b458cb0e2b4086b13531fb0706e46
-PKG_SOURCE_DATE:=2021-01-26
-PKG_MIRROR_HASH:=421d1b7cd95d0d0ec2801ebb0b360416cd2382e1ef9e70f4ca5cb63fb6a4ee8c
+PKG_SOURCE_VERSION:=64b7a4574d1426139437d20e81c0b6d391130ec8
+PKG_SOURCE_DATE:=2021-05-25
+PKG_MIRROR_HASH:=4e3463c3d723a7a9b9d682515084e667feb24ca297cfbc05ce1768bed6249752
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
index 40919abe62331980ea4ed36e06a741a51cdb3f6a..a243b740b964a8ba0227eb95e8787e73b786b500 100644 (file)
@@ -167,7 +167,7 @@ MARIADB_SERVER_EXTRA := \
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/nls.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 MARIADB_COMMON_DEPENDS := \
        $(ICONV_DEPENDS) \
index bd81a734d7ce4f3b7e750745e8d392000e02e4be..5f99feac0e6c849a5859bd8cc4397529212a0f3d 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=moreutils
-PKG_VERSION:=0.64
-PKG_RELEASE:=1
+PKG_VERSION:=0.65
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://git.kitenet.net/index.cgi/moreutils.git/snapshot
-PKG_HASH:=fed203542c5c2b55c3a41d21bca5bc627ec1f6d7313ed2f758c69798d65770ec
+PKG_HASH:=60c9f6b55204e64cfcd12fd66e75cf7a061b6761f3d5b7797f2452cb17598881
 
 PKG_MAINTAINER:=Nikil Mehta <nikil.mehta@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
index 2258f224208a461d4552ed9a4be692cbc6fa46bd..1de3a82a91f6739a7aa84acb95fe1a7ee45ccb83 100644 (file)
@@ -15,7 +15,7 @@ PKG_LICENSE_FILES:=LICENSE
 PKG_BUILD_DEPENDS:=boost
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/netwhere
   SECTION:=utils
index 8d4ccecd1e8f035f9837d6733928ef7fef78bb5c..12daef1d24531ec1194797b9d1d72505950c53d5 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:openobex:openobex
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/openobex/Default
   TITLE:=Open Source impl of the OBject EXchange protocol
diff --git a/utils/parted/Config.in b/utils/parted/Config.in
new file mode 100644 (file)
index 0000000..2a90b63
--- /dev/null
@@ -0,0 +1,14 @@
+menu "Configuration"
+       depends on PACKAGE_parted
+
+config PARTED_READLINE
+       bool "Use readline library"
+       depends on PACKAGE_parted
+       default y
+
+config PARTED_LVM2
+       bool "Support LVM"
+       depends on PACKAGE_parted
+       default n
+
+endmenu
diff --git a/utils/parted/Makefile b/utils/parted/Makefile
new file mode 100644 (file)
index 0000000..f163ab7
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=parted
+PKG_VERSION:=3.4
+PKG_RELEASE:=$(AUTORELEASE)
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=http://ftp.gnu.org/gnu/parted/
+PKG_HASH:=e1298022472da5589b7f2be1d5ee3c1b66ec3d96dfbad03dc642afd009da5342
+
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/parted
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=GNU Parted
+  SUBMENU:=Disc
+  DEPENDS:=+libblkid +libuuid +PARTED_READLINE:libreadline +CONFIG_PARTED_READLINE:libncurses +PARTED_LVM2:libdevmapper
+endef
+
+define Package/parted/description
+  GNU Parted manipulates partition tables. This is useful for
+  creating space for new operating systems, reorganizing
+  disk usage, copying data on hard disks and disk imaging.
+endef
+
+define Package/parted/config
+  source "$(SOURCE)/Config.in"
+endef
+
+ifneq ($(CONFIG_PARTED_READLINE),y)
+  CONFIGURE_ARGS += --without-readline
+endif
+
+ifneq ($(CONFIG_PARTED_LVM2),y)
+  CONFIGURE_ARGS += --disable-device-mapper
+endif
+
+define Package/parted/install
+       $(INSTALL_DIR) $(1)/usr/lib $(1)/sbin
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so** $(1)/usr/lib/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/parted $(1)/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/partprobe $(1)/sbin/
+endef
+
+$(eval $(call BuildPackage,parted))
diff --git a/utils/parted/test.sh b/utils/parted/test.sh
new file mode 100644 (file)
index 0000000..7b01158
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+case "$1" in
+       "partprobe")
+               test $(/sbin/partprobe --version | grep '^Copyright' | wc -l) -gt 0
+               ;;
+       "parted")
+               test $(/sbin/parted --version | grep '^Copyright' | wc -l) -gt 0
+               ;;
+esac
index c25e92240cdfdd5f9d6f6c6767a6b51d49b34b74..6710ac59d46d0b5363ec0a415ecf87cec0877816 100644 (file)
@@ -1,9 +1,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=podman
-PKG_VERSION:=3.1.2
+PKG_VERSION:=3.2.0
 PKG_RELEASE:=$(AUTORELEASE)
-PKG_HASH:=5a0d42e03d15e32c5c54a147da5ef1b8928ec00982ac9e3f1edc82c5e614b6d2
+PKG_HASH:=1206377b12c11d4065bc4789fa104ca139ba77bb5b33541f07e8e95ae4d2932a
 
 PKG_SOURCE_URL:=https://github.com/containers/podman/archive/v$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -99,6 +99,8 @@ define Package/podman/install
        $(INSTALL_DATA) ./files/containers.conf $(1)/etc/containers/containers.conf
        $(INSTALL_DIR) $(1)/etc/cni/net.d
        $(INSTALL_CONF) $(PKG_BUILD_DIR)/cni/87-podman-bridge.conflist $(1)/etc/cni/net.d/
+       $(INSTALL_DIR) $(1)/usr/share/containers
+       $(INSTALL_CONF) $(PKG_BUILD_DIR)/vendor/github.com/containers/common/pkg/seccomp/seccomp.json $(1)/usr/share/containers/
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/podman.init $(1)/etc/init.d/podman
        $(SED) 's/driver = \"\"/driver = \"overlay\"/g' $(1)/etc/containers/storage.conf
index 35addf1dcdab1106d4564e1657a17e0da81e825f..dec55baa1b1f9b9f0e33c01c47e7bc9505db28e3 100755 (executable)
@@ -3,7 +3,7 @@
 -- Metrics web server
 
 -- Copyright (c) 2016 Jeff Schornick <jeff@schornick.org>
--- Copyright (c) 2015 Kevin Lyda
+-- Copyright (c) 2015 Kevin Lyda <kevin@lyda.ie>
 -- Licensed under the Apache License, Version 2.0
 
 socket = require("socket")
index 3448d7c1559e0d59f5161ac407e24727c77c0a64..289b2d1241a137d0ab178e6ace8701d544eeebb7 100644 (file)
@@ -15,7 +15,7 @@ PKG_LICENSE:=ISC
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/rpcd-mod-lxc
   SECTION:=libs
index 2beaf877e2b748bca00dca250e0ca98d43c27fce..8237d4a12c25b578dce6a947b23517e10b4eb1ae 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/rtl-sdr/Default
   TITLE:=Software Defined Radio with Realtek RTL2832U
index fe08c450f117b3fa7c164b94e2c54c449892ec79..cf3e44249998c05c881936ba5e3aadb1a92ecb1d 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/rtl_433
   TITLE:=Realtek RTL2832 based 433.92MHz generic data receiver
index 6b0dbdd2eb4dc0eafc1fd3aeeebb5337f66a7d30..f1443dca5fb03d67988a1ea5342ec42dd10d3618 100644 (file)
@@ -8,19 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rtty
-PKG_VERSION:=7.4.0
+PKG_VERSION:=7.4.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL=https://github.com/zhaojh329/rtty/releases/download/v$(PKG_VERSION)
-PKG_HASH:=9bc5d30dfa9bd664a62711b6229f47505b83adb364907f24e3a404aad52a4802
+PKG_HASH:=997e5a3f0b1ce5e06d8505691ea0a9a3fd8af972f6d1b4b04f42dd03f392649f
 
 PKG_MAINTAINER:=Jianhui Zhao <zhaojh329@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/rtty/Default
   TITLE:=Access your terminals from anywhere via the web
@@ -47,13 +47,13 @@ Package/rtty-mbedtls/conffiles = $(Package/rtty-openssl/conffiles)
 Package/rtty-nossl/conffiles = $(Package/rtty-openssl/conffiles)
 
 ifeq ($(BUILD_VARIANT),openssl)
-  CMAKE_OPTIONS += -DRTTY_USE_OPENSSL=ON
+  CMAKE_OPTIONS += -DUSE_OPENSSL=ON
 else ifeq ($(BUILD_VARIANT),wolfssl)
-  CMAKE_OPTIONS += -DRTTY_USE_WOLFSSL=ON
+  CMAKE_OPTIONS += -DUSE_WOLFSSL=ON
 else ifeq ($(BUILD_VARIANT),mbedtls)
-  CMAKE_OPTIONS += -DRTTY_USE_MBEDTLS=ON
+  CMAKE_OPTIONS += -DUSE_MBEDTLS=ON
 else
-  CMAKE_OPTIONS += -DRTTY_SSL_SUPPORT=OFF
+  CMAKE_OPTIONS += -DSSL_SUPPORT=OFF
 endif
 
 define Package/rtty-$(BUILD_VARIANT)/install
index c4de6fb4a603ab06dc72cfdbce7338a792149031..fd056162e988c16dfbc240d4ec0c35cf785c63f2 100644 (file)
@@ -1,15 +1,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=runc
-PKG_VERSION:=1.0.0-rc93
+PKG_VERSION:=1.0.0-rc95
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/opencontainers/runc/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=e42456078d2f76c925cdd656e4f423b918525d8188521de05e893b6bb473a6f8
-PKG_SOURCE_VERSION:=12644e614e25b05da6fd08a38ffa0cfe1903fdec
+PKG_HASH:=02dac7f1a0dcfe55dd9820df787adedf030060870354915e7bba86f8487ce93c
+PKG_SOURCE_VERSION:=b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
index 6d556700fc9006b93ac07870e077d158a4c52b39..ebe09147bb237d016fda32b108b684a2cc3ba448 100644 (file)
@@ -14,7 +14,7 @@ config SQUASHFS_TOOLS_XZ_SUPPORT
        depends on PACKAGE_squashfs-tools-mksquashfs || PACKAGE_squashfs-tools-unsquashfs
        bool "Enable XZ support"
        select PACKAGE_liblzma
-       default n
+       default y
 
 config SQUASHFS_TOOLS_ZSTD_SUPPORT
        depends on PACKAGE_squashfs-tools-mksquashfs || PACKAGE_squashfs-tools-unsquashfs
index 19da23384c40e20f5a23961ff165b76ea91aacd2..687fc413430ff90e7d401c08dad9231fe6890ea9 100644 (file)
@@ -1,4 +1,4 @@
-# 
+#
 # Copyright (C) 2016 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=squashfs-tools
 PKG_VERSION:=4.4
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_LICENSE:=GPL-2.0-only
 PKG_LICENSE_FILES:=COPYING
index a16893d145977273d89e0a657a40123517bec948..0c4c34431aa6c6cb6c9bfe068beddccda75e1dc4 100644 (file)
@@ -8,19 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sumo
-PKG_VERSION:=1.8.0
-PKG_RELEASE:=1
+PKG_VERSION:=1.9.2
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-src-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/sumo
-PKG_HASH:=fb0636152085153155ddb41841f0175c5f1e7989907b883f6c7453c63af49edb
+PKG_HASH:=193a8ab14bb305d3967625d76cd291f5c55bb906817465f2a12c2e69f4b80813
 
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/sumo
   SECTION:=utils
index 2aa6137891a71bbed12789ca0b553ac45766fe6a..71f206fb2ef0dc1437953c5eae251925728a3f1e 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=syncthing
-PKG_VERSION:=1.14.0
+PKG_VERSION:=1.17.0
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=syncthing-source-v$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/syncthing/syncthing/releases/download/v$(PKG_VERSION)
-PKG_HASH:=55a6fb08a9dbc1a31a6b429a16abb3a76d8c24b491a86a52170ddaadea33f683
+PKG_HASH:=625412991717e0d442e24beac88e4b7a16545fbc8c0afffeebbe95dbeae3be33
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/$(PKG_NAME)
 
index be0a796a6ef1ec8074f0146ca99caf36764a3e2d..0e006cb05be4dd312abde71627379d80f78b1034 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tang
-PKG_VERSION:=8
-PKG_RELEASE:=1
+PKG_VERSION:=10
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/latchset/$(PKG_NAME)/releases/download/v$(PKG_VERSION)/
-PKG_HASH:=03958bf27c24aa9892f6138d287d39bcc149e7ad72163c27b529aa3c6b066ede
+PKG_HASH:=082f17e031708ab5e2f88c9b767d228bcf92a0d089fdb164d4ae93845cbd2a48
 
 PKG_MAINTAINER:=Tibor Dudlák <tibor.dudlak@gmail.com>
 PKG_LICENSE:=GPL-3.0-or-later
@@ -52,16 +52,10 @@ endef
 define Package/tang/postinst
 #!/bin/sh
 if [ -z "$${IPKG_INSTROOT}" ]; then
-       mkdir -p /usr/share/tang/db && mkdir -p /usr/share/tang/cache
+       mkdir -p /usr/share/tang/db
        KEYS=$(find /usr/share/tang/db/ -name "*.jw*" -maxdepth 1 | wc -l)
        if [ "${KEYS}" = "0" ]; then # if db is empty generate new key pair
                /usr/libexec/tangd-keygen /usr/share/tang/db/
-       elif [ "${KEYS}" = "1" ]; then # having 1 key should not happen
-               (>&2 echo "Please check the Tang's keys in /usr/share/tang/db \
-and regenate cache using /usr/libexec/tangd-update script.")
-       else
-               /usr/libexec/tangd-update /usr/share/tang/db/ /usr/share/tang/cache/
-       fi
        (cat /etc/services | grep -E "tangd.*8888\/tcp") > /dev/null \
                || echo -e "tangd\t\t8888/tcp" >> /etc/services
 fi
diff --git a/utils/tang/patches/010-http.patch b/utils/tang/patches/010-http.patch
new file mode 100644 (file)
index 0000000..12ca666
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/meson.build
++++ b/meson.build
+@@ -54,7 +54,7 @@ compiler = meson.get_compiler('c')
+ if not compiler.has_header('http_parser.h',args : '-I/usr/local/include')
+   error('http-parser devel files not found.')
+ endif
+-http_parser = compiler.find_library('http_parser',dirs:['/usr/lib','/usr/local/lib'])
++http_parser = compiler.find_library('http_parser')
+ licenses = ['COPYING']
+ libexecbins = []
index 5e639e3dddc0c981b9992eec6245325b8a022e14..611b350b72d1dc7ee022cba5731a4562d7fbffb5 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/taskwarrior
   TITLE:=taskwarrior
index f2a8ceb05aa4355efe422cbccf00cfb289761305..4f41e31ec2cf5c3d0c032495c3dd0781bfb4a5c4 100644 (file)
@@ -7,8 +7,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tcsh
-PKG_VERSION:=6.22.03
-PKG_RELEASE:=1
+PKG_VERSION:=6.22.04
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
@@ -16,7 +16,7 @@ PKG_SOURCE_URL:= \
        https://astron.com/pub/tcsh/old \
        https://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh \
        https://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old
-PKG_HASH:=be2cfd653d2a0c7f506d2dd14c12324ba749bd484037be6df44a3973f52262b7
+PKG_HASH:=eb16356243218c32f39e07258d72bf8b21e62ce94bb0e8a95e318b151397e231
 
 PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
index 2f6fc94d2d97022c07293dd6a1397302f57e4c84..18c373d0217b6d89fff720c421c55baa9ffba747 100644 (file)
@@ -3,7 +3,7 @@
 @@ -668,9 +668,9 @@ int
  GetCmdChar(Char ch)
  {
- #ifndef WINNT_NATIVE // We use more than 256 for various extended keys 
+ #ifndef WINNT_NATIVE // We use more than 256 for various extended keys
 -    wint_t c = ch & CHAR;
 +    Char c = ch & CHAR;
  #else
index 931ac06935a4aebb5a040879c4c02306a55b10cf..96d7dfc64ebdfaf8abe65e1fc94e3f5515ed5aa3 100644 (file)
@@ -21,7 +21,7 @@ CMAKE_INSTALL:=1
 PKG_BUILD_DEPENDS:=argp-standalone
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/telldus-core
        SECTION:=utils
index 8911bf65c8c26231629c9b3e3e6b4d10f59a5f50..328998df67b17d958554427148b395bc4996c34c 100644 (file)
@@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=LICENSE
 CMAKE_BINARY_SUBDIR:=openwrt-build
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/tesseract
   MENU:=1
index 2f09b26608a84da9b367f323e3e977fe84fec344..a122ec255807ade6c19f21711481fcef80250361 100644 (file)
@@ -15,7 +15,7 @@ PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/tini
   SECTION:=utils
index 947b62ed1c2b0eb868fa93c9b83ff4d3813da5a9..eb253fd2226262ec4877745341f269ea6a679aac 100644 (file)
@@ -20,7 +20,7 @@ PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/ttyd
        SECTION:=utils
index 1b5b7567a6bf9ff86bd95fbd1481a5952ea76cf6..cbed552eacb042c892b88d3cf2e6741c29241ef4 100644 (file)
@@ -14,7 +14,7 @@ PKG_LICENSE:=LGPL-2.1-only
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/uledd
   SECTION:=utils
index 995492f90ef4473e21cd7ebe16d07b7d42674b55..04ab032b498c93e6b49b77f3699da16f67789fb3 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unrar
-PKG_VERSION:=6.0.4
+PKG_VERSION:=6.0.6
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=unrarsrc-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.rarlab.com/rar
-PKG_HASH:=130197e495d6e2c2ee790a5beee123edeed642508be13f0159672e5397aca6c1
+PKG_HASH:=011ef7290d3394a62bb5bfced914cd510a7eea7255cf69417f9c952bb6056588
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(BUILD_VARIANT)/unrar
 
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>, \
index e3590f236282c04cf31715a748d61cc265986e0b..eb569b931ddf5b8c98a13c9926d9f46406a63963 100644 (file)
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=uvcdynctrl/COPYING
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/uvcdynctrl
   SECTION:=utils
index b6a3cdd6030784aeee8b2d410a364b310480bb2c..0df2829c679328a78abd4f7fbf0765cd6fc77e1a 100644 (file)
@@ -26,12 +26,12 @@ get_partition_by_name_gpt() {
 }
 
 part_fixup() {
-       echo "write" | sfdisk --force -q -w never $1
+       echo "write" | sfdisk --force -q -w never "$1"
 }
 
 get_free_area() {
        local found=
-       sfdisk -q -F "$1" 2>/dev/null | while read start end sectors size; do
+       sfdisk -q -F "$1" 2>/dev/null | while read -r start end sectors size; do
                case $start in
                *"Unpartitioned"* | *"Units:"* | *"Sector"* | *"Start"* )
                        continue
@@ -55,13 +55,13 @@ get_free_area() {
 }
 
 create_lvm_part() {
-       local disk=$1
+       local disk="$1"
        local freepart
 
-       freepart="$(get_free_area $disk)"
+       freepart="$(get_free_area "$disk")"
        if [ "$freepart" ]; then
-               echo "$freepart, type=lvm, name=$OWRT_VOLUMES" | sfdisk --force -w never -a $disk
-               partx -a $disk 1>/dev/null 2>/dev/null || true
+               echo "$freepart, type=lvm, name=$OWRT_VOLUMES" | sfdisk --force -w never -a "$disk"
+               partx -a "$disk" 1>/dev/null 2>/dev/null || true
                return 0
        else
                return 1
@@ -69,8 +69,8 @@ create_lvm_part() {
 }
 
 lvm_init() {
-       lvm pvcreate -f $1
-       lvm vgcreate "$2" $1
+       lvm pvcreate -f "$1"
+       lvm vgcreate "$2" "$1"
        lvm vgs
 }
 
@@ -83,16 +83,16 @@ autopart_init() {
 
        [ "$diskdev" ] || return
 
-       [ -e "/sys/class/block/$diskdev/device/serial" ] && diskserial="$(cat /sys/class/block/$diskdev/device/serial)"
-       [ -e "/sys/class/block/$diskdev/device/cid" ] && diskserial="$diskserial$(cat /sys/class/block/$diskdev/device/cid)"
+       [ -e "/sys/class/block/$diskdev/device/serial" ] && diskserial="$(cat "/sys/class/block/$diskdev/device/serial")"
+       [ -e "/sys/class/block/$diskdev/device/cid" ] && diskserial="$diskserial$(cat "/sys/class/block/$diskdev/device/cid")"
        [ "$diskserial" ] || diskserial="$(cat /proc/sys/kernel/random/uuid)"
-       diskhash="$(echo $diskserial | sha256sum | cut -d' ' -f1)"
-       part_fixup /dev/$diskdev
-       create_lvm_part /dev/$diskdev || return
-       lvmpart=$(get_partition_by_name_gpt $diskdev $OWRT_VOLUMES)
+       diskhash="$(echo "$diskserial" | sha256sum | cut -d' ' -f1)"
+       part_fixup "/dev/$diskdev"
+       create_lvm_part "/dev/$diskdev" || return
+       lvmpart="$(get_partition_by_name_gpt "$diskdev" "$OWRT_VOLUMES")"
 
        [ "$lvmpart" ] || return
-       lvm_init $lvmpart "${OWRT_VOLUMES}-${diskhash:0:16}"
+       lvm_init "$lvmpart" "${OWRT_VOLUMES}-${diskhash:0:16}"
 }
 
 autopart_init
index c250be534bcb7c4b2c74ce28abc306bdbd4b7281..4b295faf177a06def8ee47b6a285c03e5591fab6 100644 (file)
@@ -46,11 +46,11 @@ lvs() {
 }
 
 freebytes() {
-       echo $(($vg_free_count * $vg_extent_size * 1024))
+       echo $((vg_free_count * vg_extent_size * 1024))
 }
 
 totalbytes() {
-       echo $(($vg_extent_count * $vg_extent_size * 1024))
+       echo $((vg_extent_count * vg_extent_size * 1024))
 }
 
 existvol() {
@@ -148,12 +148,12 @@ exportlv() {
 getdev() {
        existvol "$1" || return 1
        exportlv "$1"
-       echo $lv_dm_path
+       echo "$lv_dm_path"
 }
 
 getsize() {
        exportlv "$1"
-       [ "$lv_size" ] && echo $lv_size
+       [ "$lv_size" ] && echo "$lv_size"
 }
 
 activatevol() {
@@ -166,8 +166,8 @@ activatevol() {
                        ;;
                *)
                        [ "$lv_active" = "active" ] && return 0
-                       lvm_cmd lvchange -a y "$lv_full_name" || return $?
                        lvm_cmd lvchange -k n "$lv_full_name" || return $?
+                       lvm_cmd lvchange -a y "$lv_full_name" || return $?
                        ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"${lv_name:0:2}\", \"device\": \"$lv_dm_path\"}"
                        return 0
                        ;;
@@ -222,7 +222,7 @@ createvol() {
                        ;;
        esac
 
-       lvm_cmd lvcreate -p $lvmode -a n -y -W n -Z n -n "${mode}_$1" -l "$size_ext" $vg_name
+       lvm_cmd lvcreate -p "$lvmode" -a n -y -W n -Z n -n "${mode}_$1" -l "$size_ext" "$vg_name"
        ret=$?
        if [ ! $ret -eq 0 ] || [ "$lvmode" = "r" ]; then
                return $ret
@@ -230,7 +230,7 @@ createvol() {
        exportlv "$1"
        [ "$lv_full_name" ] || return 22
        lvm_cmd lvchange -a y "$lv_full_name" || return 1
-       if [ $lv_size -gt $(( 100 * 1024 * 1024 )) ]; then
+       if [ "$lv_size" -gt $(( 100 * 1024 * 1024 )) ]; then
                mkfs.f2fs -f -l "$1" "$lv_path"
                ret=$?
                [ $ret != 0 ] && [ $ret != 134 ] && return 1
@@ -253,11 +253,11 @@ removevol() {
 updatevol() {
        exportlv "$1"
        [ "$lv_full_name" ] || return 2
-       [ $lv_size -ge $2 ] || return 27
+       [ "$lv_size" -ge "$2" ] || return 27
        case "$lv_path" in
                /dev/*/wo_*)
                        lvm_cmd lvchange -a y -p rw "$lv_full_name"
-                       dd of=$lv_path
+                       dd of="$lv_path"
                        lvm_cmd lvchange -p r "$lv_full_name"
                        lvm_cmd lvrename "$lv_full_name" "${lv_full_name%%/*}/ro_$1"
                        ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"ro\", \"device\": \"$(getdev "$@")\"}"
index 2da7e309b8c8863c75e5941a65afd8911ce93264..0664ce93509cf1d1d482bfee7eb918216a2f71a1 100644 (file)
@@ -9,28 +9,28 @@ if [ "$cmd" = "name" ]; then
 fi
 
 test -e /sys/class/ubi/version || return 0
-read ubiver < /sys/class/ubi/version
+read -r ubiver < /sys/class/ubi/version
 [ "$ubiver" = "1" ] || return 1
 test -e /sys/devices/virtual/ubi || return 0
 
 ubidev=$(ls -1 /sys/devices/virtual/ubi | head -n 1)
 
-read ebsize < "/sys/devices/virtual/ubi/${ubidev}/eraseblock_size"
+read -r ebsize < "/sys/devices/virtual/ubi/${ubidev}/eraseblock_size"
 
 freebytes() {
-       read availeb < "/sys/devices/virtual/ubi/${ubidev}/avail_eraseblocks"
+       read -r availeb < "/sys/devices/virtual/ubi/${ubidev}/avail_eraseblocks"
        echo $((availeb * ebsize))
 }
 
 totalbytes() {
-       read totaleb < "/sys/devices/virtual/ubi/${ubidev}/total_eraseblocks"
+       read -r totaleb < "/sys/devices/virtual/ubi/${ubidev}/total_eraseblocks"
        echo $((totaleb * ebsize))
 }
 
 getdev() {
-       local voldir volname devname
-       for voldir in /sys/devices/virtual/ubi/${ubidev}/${ubidev}_*; do
-               read volname < "${voldir}/name"
+       local voldir volname
+       for voldir in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
+               read -r volname < "${voldir}/name"
                case "$volname" in
                        uvol-[rw][owpd]-$1)
                                basename "$voldir"
@@ -46,7 +46,7 @@ getdev() {
 vol_is_mode() {
        local voldev="$1"
        local volname
-       read volname < "/sys/devices/virtual/ubi/${ubidev}/${voldev}/name"
+       read -r volname < "/sys/devices/virtual/ubi/${ubidev}/${voldev}/name"
        case "$volname" in
                uvol-$2-*)
                        return 0
@@ -56,42 +56,45 @@ vol_is_mode() {
 }
 
 getstatus() {
-       local voldev=$(getdev "$@")
+       local voldev
+       voldev="$(getdev "$@")"
        [ "$voldev" ] || return 2
-       vol_is_mode $voldev wo && return 22
-       vol_is_mode $voldev wp && return 16
-       vol_is_mode $voldev wd && return 1
-       vol_is_mode $voldev ro && [ ! -e "/dev/ubiblock${voldev:3}" ] && return 1
+       vol_is_mode "$voldev" wo && return 22
+       vol_is_mode "$voldev" wp && return 16
+       vol_is_mode "$voldev" wd && return 1
+       vol_is_mode "$voldev" ro && [ ! -e "/dev/ubiblock${voldev:3}" ] && return 1
        return 0
 }
 
 getsize() {
        local voldev
-       voldev=$(getdev "$@")
+       voldev="$(getdev "$@")"
        [ "$voldev" ] || return 2
-       cat /sys/devices/virtual/ubi/${ubidev}/${voldev}/data_bytes
+       cat "/sys/devices/virtual/ubi/${ubidev}/${voldev}/data_bytes"
 }
 
 getuserdev() {
-       local voldev=$(getdev "$@")
+       local voldev
+       voldev="$(getdev "$@")"
        [ "$voldev" ] || return 2
-       if vol_is_mode $voldev ro ; then
+       if vol_is_mode "$voldev" ro ; then
                echo "/dev/ubiblock${voldev:3}"
-       elif vol_is_mode $voldev rw ; then
+       elif vol_is_mode "$voldev" rw ; then
                echo "/dev/$voldev"
        fi
 }
 
 mkubifs() {
-       local tmp_mp=$(mktemp -d)
-       mount -t ubifs $1 $tmp_mp
-       umount $tmp_mp
-       rmdir $tmp_mp
+       local tmp_mp
+       tmp_mp="$(mktemp -d)"
+       mount -t ubifs "$1" "$tmp_mp"
+       umount "$tmp_mp"
+       rmdir "$tmp_mp"
 }
 
 createvol() {
-       local mode ret
-       local voldev=$(getdev "$@")
+       local mode ret voldev
+       voldev=$(getdev "$@")
        [ "$voldev" ] && return 17
        case "$3" in
                ro|wo)
@@ -104,105 +107,108 @@ createvol() {
                        return 22
                        ;;
        esac
-       ubimkvol /dev/$ubidev -N "uvol-$mode-$1" -s "$2"
+       ubimkvol "/dev/$ubidev" -N "uvol-$mode-$1" -s "$2"
        ret=$?
        [ $ret -eq 0 ] || return $ret
-       voldev=$(getdev "$@")
-       ubiupdatevol -t /dev/$voldev
+       voldev="$(getdev "$@")"
+       ubiupdatevol -t "/dev/$voldev"
        [ "$mode" = "wp" ] || return 0
-       mkubifs /dev/$voldev
-       ubirename /dev/$ubidev uvol-wp-$1 uvol-rw-$1
+       mkubifs "/dev/$voldev"
+       ubirename "/dev/$ubidev" "uvol-wp-$1" "uvol-rw-$1"
        ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"rw\", \"fstype\": \"ubifs\", \"device\": \"/dev/$voldev\"}"
 }
 
 removevol() {
-       local voldev=$(getdev "$@")
-       local evdata
+       local voldev evdata
+       voldev=$(getdev "$@")
        [ "$voldev" ] || return 2
-       if vol_is_mode $voldev rw ; then
+       if vol_is_mode "$voldev" rw ; then
                evdata="{\"name\": \"$1\", \"action\": \"down\", \"device\": \"/dev/$voldev\"}"
-       elif vol_is_mode $voldev ro && [ -e "/dev/ubiblock${voldev:3}" ]; then
+       elif vol_is_mode "$voldev" ro && [ -e "/dev/ubiblock${voldev:3}" ]; then
                evdata="{\"name\": \"$1\", \"action\": \"down\", \"device\": \"/dev/ubiblock${voldev:3}\"}"
        fi
-       local volnum=${voldev#${ubidev}_}
-       ubirmvol /dev/$ubidev -n $volnum || return $?
+       local volnum="${voldev#${ubidev}_}"
+       ubirmvol "/dev/$ubidev" -n "$volnum" || return $?
        [ "$evdata" ] && ubus send block.volume "$evdata"
 }
 
 activatevol() {
-       local voldev=$(getdev "$@")
+       local voldev
+       voldev="$(getdev "$@")"
        [ "$voldev" ] || return 2
-       vol_is_mode $voldev rw && return 0
-       vol_is_mode $voldev wo && return 22
-       vol_is_mode $voldev wp && return 16
-       if vol_is_mode $voldev ro; then
+       vol_is_mode "$voldev" rw && return 0
+       vol_is_mode "$voldev" wo && return 22
+       vol_is_mode "$voldev" wp && return 16
+       if vol_is_mode "$voldev" ro; then
                [ -e "/dev/ubiblock${voldev:3}" ] && return 0
-               ubiblock --create /dev/$voldev
+               ubiblock --create "/dev/$voldev"
                ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"ro\", \"device\": \"/dev/ubiblock${voldev:3}\"}"
                return 0
-       elif vol_is_mode $voldev wd; then
-               ubirename /dev/$ubidev uvol-wd-$1 uvol-rw-$1
+       elif vol_is_mode "$voldev" wd; then
+               ubirename "/dev/$ubidev" "uvol-wd-$1" "uvol-rw-$1"
                ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"rw\", \"fstype\": \"ubifs\", \"device\": \"/dev/$voldev\"}"
                return 0
        fi
 }
 
 disactivatevol() {
-       local voldev=$(getdev "$@")
+       local voldev
+       voldev="$(getdev "$@")"
        [ "$voldev" ] || return 2
-       vol_is_mode $voldev wo && return 22
-       vol_is_mode $voldev wp && return 16
-       if vol_is_mode $voldev ro; then
+       vol_is_mode "$voldev" wo && return 22
+       vol_is_mode "$voldev" wp && return 16
+       if vol_is_mode "$voldev" ro; then
                [ -e "/dev/ubiblock${voldev:3}" ] || return 0
-               ubiblock --remove /dev/$voldev || return $?
+               ubiblock --remove "/dev/$voldev" || return $?
                ubus send block.volume "{\"name\": \"$1\", \"action\": \"down\", \"mode\": \"ro\", \"device\": \"/dev/ubiblock${voldev:3}\"}"
                return 0
-       elif vol_is_mode $voldev rw; then
-               ubirename /dev/$ubidev uvol-rw-$1 uvol-wd-$1 || return $?
+       elif vol_is_mode "$voldev" rw; then
+               ubirename "/dev/$ubidev" "uvol-rw-$1" "uvol-wd-$1" || return $?
                ubus send block.volume "{\"name\": \"$1\", \"action\": \"down\", \"mode\": \"rw\", \"device\": \"/dev/$voldev\"}"
                return 0
        fi
 }
 
 updatevol() {
-       local voldev=$(getdev "$@")
+       local voldev
+       voldev="$(getdev "$@")"
        [ "$voldev" ] || return 2
        [ "$2" ] || return 22
-       vol_is_mode $voldev wo || return 22
-       ubiupdatevol -s $2 /dev/$voldev -
-       ubirename /dev/$ubidev uvol-wo-$1 uvol-ro-$1
-       ubiblock --create /dev/$voldev
+       vol_is_mode "$voldev" wo || return 22
+       ubiupdatevol -s "$2" "/dev/$voldev" -
+       ubirename "/dev/$ubidev" "uvol-wo-$1" "uvol-ro-$1"
+       ubiblock --create "/dev/$voldev"
        ubus send block.volume "{\"name\": \"$1\", \"action\": \"up\", \"mode\": \"ro\", \"device\": \"/dev/ubiblock${voldev:3}\"}"
 }
 
 listvols() {
        local volname volmode volsize
-       for voldir in /sys/devices/virtual/ubi/${ubidev}/${ubidev}_*; do
-               read volname < $voldir/name
+       for voldir in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
+               read -r volname < "$voldir/name"
                case "$volname" in
                        uvol-[rw][wod]*)
-                               read volsize < $voldir/data_bytes
+                               read -r volsize < "$voldir/data_bytes"
                                ;;
                        *)
                                continue
                                ;;
                esac
-               volmode=${volname:5:2}
-               volname=${volname:8}
+               volmode="${volname:5:2}"
+               volname="${volname:8}"
                echo "$volname $volmode $volsize"
        done
 }
 
 bootvols() {
        local volname volmode volsize voldev fstype
-       for voldir in /sys/devices/virtual/ubi/${ubidev}/${ubidev}_*; do
-               read volname < $voldir/name
-               voldev=$(basename $voldir)
+       for voldir in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
+               read -r volname < "$voldir/name"
+               voldev="$(basename "$voldir")"
                fstype=
                case "$volname" in
                        uvol-ro-*)
                                voldev="/dev/ubiblock${voldev:3}"
-                               ubiblock --create /dev/$voldev
+                               ubiblock --create "/dev/$voldev"
                                ;;
                        uvol-rw-*)
                                voldev="/dev/$voldev"
@@ -212,8 +218,8 @@ bootvols() {
                                continue
                                ;;
                esac
-               volmode=${volname:5:2}
-               volname=${volname:8}
+               volmode="${volname:5:2}"
+               volname="${volname:8}"
                ubus send block.volume "{\"name\": \"$volname\", \"action\": \"up\", \"mode\": \"$volmode\",${fstype:+ \"fstype\": \"$fstype\", }\"device\": \"$voldev\"}"
        done
 }
index 4958d31ff481051395ffe1ce4be3acda35c2932b..04547ce62215dad5e5847f56a2fcdb510c62e690 100644 (file)
@@ -49,4 +49,4 @@ if [ -z "$uvol_backend" ]; then
        return 2
 fi
 
-flock -x /tmp/run/uvol.lock $uvol_backend "$@"
+flock -x /tmp/run/uvol.lock "$uvol_backend" "$@"