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
Securely enter a chroot and run a command or login shell.
endef
-define Package/sudo/conffiles
+define Package/schroot/conffiles
/etc/schroot/
endef
+++ /dev/null
-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
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))
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
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
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
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
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
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
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
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
PKG_HASH:=cf70200045b8bcb0e929c338ad421b6a291cf1038053532888dc201af3224d8b
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/lzmq
SUBMENU:=Lua
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)
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
--- /dev/null
+# 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))
--- /dev/null
+#!/bin/sh
+case "$1" in
+ "ack")
+ ack --version | grep "$PKG_VERSION"
+ ;;
+esac
--- /dev/null
+# 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))
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>
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
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>
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
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
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
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
--- 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",
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
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
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
---- 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 @@
---- 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
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
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
-|/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
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, \
--- /dev/null
+#
+# 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) \
+))
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)
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
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
--- /dev/null
+--- 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;
+ }
+ };
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libcares
SECTION:=libs
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 \
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/check
SECTION:=libs
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/czmq
SECTION:=libs
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
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
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
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
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
+++ /dev/null
---- 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 */
+++ /dev/null
---- 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) {
+++ /dev/null
---- 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
-
+++ /dev/null
---- 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 ()
-
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
[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])
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:=
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
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.
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
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
$(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
+++ /dev/null
-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
+++ /dev/null
---- 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();
- }
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
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libcbor
SECTION:=libs
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libebml
SECTION:=libs
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
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
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
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/
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
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
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
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libical
SECTION:=libs
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)
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
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
-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/
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)
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.
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
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
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>
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
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 += \
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)
$(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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libnetconf2
SECTION:=libs
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
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/liborcania
SECTION:=libs
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
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
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>
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/re2
SECTION:=libs
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libroxml
SECTION:=libs
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
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
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libsoxr
SECTION:=libs
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
CONFIG_LIBSSH2_OPENSSL
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libssh2
SECTION:=libs
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libtins
SECTION:=net
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
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
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
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
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
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
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:= \
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
CONFIG_IPV6
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libupnp/Default
SECTION:=libs
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
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
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libwebp
SECTION:=libs
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
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
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
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
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
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))
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
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
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 \
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
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
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)
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
-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
+++ /dev/null
---- 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}
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
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
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/spdlog
SECTION:=libs
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
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 \
-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 \
--- /dev/null
+--- 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')
+++ /dev/null
-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
+++ /dev/null
-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
--- 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)
--- 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')
#
# 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')
--- 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 = [
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
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
endef
CMAKE_OPTIONS += \
+ -DBUILD_SHARED_LIBS=ON
-DBUILD_TESTS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_BINDINGS=OFF \
$(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))
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
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
PKG_LICENSE_FILES:=COPYING
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
CMAKE_INSTALL:=1
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/yajl
SECTION:=libs
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
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
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
$(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,,))
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
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
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>
| 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 |
**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':
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
#
f_fetch()
{
- local util utils cnt=0
+ local util utils insecure cnt=0
if [ -z "${adb_fetchutil}" ]
then
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}" ]
"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",
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
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
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>
| 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 |
**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
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"
#
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"
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}" ]
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
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
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
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
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
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
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
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
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
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
PKG_BUILD_PARALLEL:=1
PKG_ASLR_PIE:=0
-PKG_BUILD_DEPENDS:=protobuf/host
+PKG_BUILD_DEPENDS:=boost
PKG_CONFIG_DEPENDS:= \
CONFIG_DNSDIST_GNUTLS \
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
+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
/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,) \
--- /dev/null
+--- 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
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
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=
#!/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
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"
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() {
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
;;
+++ /dev/null
---- 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__)
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
endef
TARGET_LDFLAGS+=-latomic
-MAKE_FLAGS+=USE_AESNI=no USE_AVX=no
define Package/i2pd/install
$(INSTALL_DIR) $(1)/usr/sbin
## 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)
+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
+# 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
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]
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
--- /dev/null
+# 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))
--- /dev/null
+#!/bin/sh
+
+/usr/bin/"${1}" version 2>/dev/null | grep -F "${2}"
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
--- /dev/null
+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();])],
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
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
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
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
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
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
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;
+ }
+
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>
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
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
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
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
}
}
start_netifyd() {
- local autoconfig enabled instance
+ local autoconfig enabled instance options
instance="$1"
config_get_bool enabled "$instance" enabled 0
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
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
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)
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;
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
--- /dev/null
+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*)×tamp;
+- 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*)×tamp;
+- /* 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*)×tamp;
+- *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 *) ×tamp;
+- 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*)×tamp;
+- *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)
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
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
--- /dev/null
+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
PKG_NAME:=openvpn
PKG_VERSION:=2.5.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_URL:=\
https://build.openvpn.net/downloads/releases/ \
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"
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
ifeq ($(BUILD_VARIANT),openssl)
CONFIG_OPENVPN_OPENSSL:=y
endif
+ifeq ($(BUILD_VARIANT),wolfssl)
+CONFIG_OPENVPN_WOLFSSL:=y
+endif
CONFIGURE_VARS += \
IPROUTE=/sbin/ip \
$(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
$(eval $(call BuildPackage,openvpn-openssl))
$(eval $(call BuildPackage,openvpn-mbedtls))
+$(eval $(call BuildPackage,openvpn-wolfssl))
--- /dev/null
+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
+
--- 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
"openvpn-openssl")
openvpn --version | grep "$2.*SSL (OpenSSL)"
;;
+ "openvpn-wolfssl")
+ openvpn --version | grep "$2.*SSL (OpenSSL)"
+ ;;
esac
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
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
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
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
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
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
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
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
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
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
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
--- 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;
/* 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());
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/
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
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
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
/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
+++ /dev/null
---- 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)
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
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
[ "$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
}
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
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
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
--- 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;
#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;
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");
}
{
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);
}
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()
{
/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
config xray 'enabled'
option enabled '0'
- option fullcone '1'
config xray 'config'
option confdir '/etc/xray'
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
}
[ -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
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) \
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
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) {
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/portaudio
SECTION:=sound
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>
CONFIGURE_ARGS += \
--with-alsa \
+ --with-libdaemon \
--with-metadata
ifeq ($(BUILD_VARIANT),openssl)
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
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
source "$(SOURCE)/Config.in"
endef
-TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lm)
-
define Package/upmpdcli/conffiles
/etc/config/upmpdcli
endef
--- /dev/null
+# 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))
--- /dev/null
+#!/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
+}
--- /dev/null
+#!/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
+}
--- /dev/null
+--- /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
--- /dev/null
+--- 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()
--- /dev/null
+--- 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:
--- /dev/null
+--- 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"
+
--- /dev/null
+--- 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
--- /dev/null
+--- 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>
+ }
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
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");
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);
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;
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;
+ }
}
}
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;
--- /dev/null
+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))
--- /dev/null
+config bluld uleds
+ option led_count 1
+ list colors 'green'
--- /dev/null
+#!/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
+}
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
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
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
+++ /dev/null
---- 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);
- }
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>
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
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
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
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
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>
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
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>
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
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
-include ../../devel/ninja/ninja-cmake.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libecdsautil
SECTION:=libs
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
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
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
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)
endef
SCONS_VARS += \
+ CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) -L$(STAGING_DIR)/usr/lib" \
LINKFLAGS="$(TARGET_LDFLAGS)"
SCONS_OPTIONS += \
implicit_link=no \
chrpath=no \
manbuild=no \
- sysroot="$(STAGING_DIR)" \
+ sysroot="$(TOOLCHAIN_DIR)" \
target="$(TARGET_CROSS:-=)"
define Build/InstallDev
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
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)?
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
+++ /dev/null
-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
--- /dev/null
+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
--- /dev/null
+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
+
--- /dev/null
+>>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
+
--- /dev/null
+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) $?
--- /dev/null
+--- 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;
+++ /dev/null
-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
-
+++ /dev/null
->>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
-
+++ /dev/null
-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) $?
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>
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) \
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
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
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
--- /dev/null
+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
--- /dev/null
+# 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))
--- /dev/null
+#!/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
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
$(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
-- 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")
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
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
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
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
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
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>
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
-#
+#
# Copyright (C) 2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
PKG_NAME:=squashfs-tools
PKG_VERSION:=4.4
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
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
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)
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
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
--- /dev/null
+--- 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 = []
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
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:= \
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
@@ -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
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
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
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
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
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
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>, \
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
}
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
}
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
}
lvm_init() {
- lvm pvcreate -f $1
- lvm vgcreate "$2" $1
+ lvm pvcreate -f "$1"
+ lvm vgcreate "$2" "$1"
lvm vgs
}
[ "$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
}
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() {
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() {
;;
*)
[ "$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
;;
;;
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
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
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 "$@")\"}"
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"
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
}
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)
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"
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
}
return 2
fi
-flock -x /tmp/run/uvol.lock $uvol_backend "$@"
+flock -x /tmp/run/uvol.lock "$uvol_backend" "$@"