PKG_NAME:=miredo
PKG_VERSION:=1.2.6
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=miredo-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://www.remlab.net/files/miredo/
IPv6 connectivity even from behind NAT devices.
endef
+define Package/miredo/conffiles
+/etc/miredo/miredo.conf
+endef
+
CONFIGURE_ARGS+= \
--enable-shared \
--enable-static \
For more information, please refer to the Chicken Scheme website at https://call-cc.org.
endef
-MAKE_FLAGS += PLATFORM=linux C_COMPILER=$(TARGET_CC) LINKER=$(TARGET_CC) PREFIX=/usr C_COMPILER_OPTIMIZATION_OPTIONS="$(TARGET_CFLAGS)"
+MAKE_FLAGS += PLATFORM=linux C_COMPILER="$(TARGET_CC)" LINKER="$(TARGET_CC)" PREFIX=/usr C_COMPILER_OPTIMIZATION_OPTIONS="$(TARGET_CFLAGS)"
# not installed:
# - csc and chicken, the compiler
include $(TOPDIR)/rules.mk
GO_VERSION_MAJOR_MINOR:=1.19
-GO_VERSION_PATCH:=4
+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:=eda74db4ac494800a3e66ee784e495bfbb9b8e535df924a8b01b1a8028b7f368
+PKG_HASH:=8e486e8e85a281fc5ce3f0bedc5b9d2dbf6276d7db0b25d3ec034f313da0375f
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_LICENSE:=BSD-3-Clause
+++ /dev/null
-From 156578067111742b55718066c91b8ec66d35e03d Mon Sep 17 00:00:00 2001
-From: Keith Randall <khr@golang.org>
-Date: Mon, 5 Dec 2022 16:26:26 -0800
-Subject: [PATCH] [release-branch.go1.19] cmd/compile: turn off jump tables
- when spectre retpolines are on
-
-Fixes #57100
-
-Change-Id: I6ab659abbca1ae0ac8710674d39aec116fab0baa
-Reviewed-on: https://go-review.googlesource.com/c/go/+/455336
-Reviewed-by: Keith Randall <khr@google.com>
-Reviewed-by: Cherry Mui <cherryyz@google.com>
-TryBot-Result: Gopher Robot <gobot@golang.org>
-Run-TryBot: Keith Randall <khr@golang.org>
-(cherry picked from commit 1eb0465fa596a2d6e9c1a632499989544f0d7e68)
-Reviewed-on: https://go-review.googlesource.com/c/go/+/455416
-Reviewed-by: Michael Pratt <mpratt@google.com>
----
- src/cmd/compile/internal/walk/switch.go | 2 +-
- test/codegen/retpoline.go | 28 +++++++++++++++++++++++++
- 2 files changed, 29 insertions(+), 1 deletion(-)
-
---- a/src/cmd/compile/internal/walk/switch.go
-+++ b/src/cmd/compile/internal/walk/switch.go
-@@ -289,7 +289,7 @@ func (s *exprSwitch) tryJumpTable(cc []e
- const minCases = 8 // have at least minCases cases in the switch
- const minDensity = 4 // use at least 1 out of every minDensity entries
-
-- if !go119UseJumpTables || base.Flag.N != 0 || !ssagen.Arch.LinkArch.CanJumpTable {
-+ if !go119UseJumpTables || base.Flag.N != 0 || !ssagen.Arch.LinkArch.CanJumpTable || base.Ctxt.Retpoline {
- return false
- }
- if len(cc) < minCases {
---- a/test/codegen/retpoline.go
-+++ b/test/codegen/retpoline.go
-@@ -12,3 +12,31 @@ func CallInterface(x interface{ M() }) {
- // amd64:`CALL\truntime.retpoline`
- x.M()
- }
-+
-+// Check to make sure that jump tables are disabled
-+// when retpoline is on. See issue 57097.
-+func noJumpTables(x int) int {
-+ switch x {
-+ case 0:
-+ return 0
-+ case 1:
-+ return 1
-+ case 2:
-+ return 2
-+ case 3:
-+ return 3
-+ case 4:
-+ return 4
-+ case 5:
-+ return 5
-+ case 6:
-+ return 6
-+ case 7:
-+ return 7
-+ case 8:
-+ return 8
-+ case 9:
-+ return 9
-+ }
-+ return 10
-+}
include $(TOPDIR)/rules.mk
PKG_NAME:=perl-compress-bzip2
-PKG_VERSION:=2.26
+PKG_VERSION:=2.28
PKG_RELEASE:=1
PKG_SOURCE:=Compress-Bzip2-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.cpan.org/authors/id/R/RU/RURBAN/
-PKG_HASH:=5132f0c5f377a54d77ee36d332aa0ece585c22a40f2c31f2619e40262f5c4f0c
+PKG_HASH:=859f835c3f5c998810d8b2a6f9e282ff99d6cb66ccfa55cae7e66dafb035116e
PKG_BUILD_DIR:=$(BUILD_DIR)/perl/Compress-Bzip2-$(PKG_VERSION)
PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
include $(TOPDIR)/rules.mk
PKG_NAME:=borgbackup
-PKG_VERSION:=1.2.2
+PKG_VERSION:=1.2.3
PKG_RELEASE:=1
PYPI_NAME:=borgbackup
-PKG_HASH:=d730687443f1beb602b1d72bae36318f6f9654818fcdc50458540ec579e57260
+PKG_HASH:=e32418f8633c96fa9681352a56eb63b98e294203472c114a5242709d36966785
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=pillow
-PKG_VERSION:=9.3.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=9.4.0
+PKG_RELEASE:=1
PYPI_NAME:=Pillow
-PKG_HASH:=c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f
+PKG_HASH:=a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=HPND
include $(TOPDIR)/rules.mk
PKG_NAME:=python-exceptiongroup
-PKG_VERSION:=1.0.4
+PKG_VERSION:=1.1.0
PKG_RELEASE:=1
PYPI_NAME:=exceptiongroup
-PKG_HASH:=bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec
+PKG_HASH:=bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23
PKG_LICENSE:=MIT,Python-2.0
PKG_LICENSE_FILES:=LICENSE
-From 99e590f2177148420f3556bbb0dc2e493e94e45f Mon Sep 17 00:00:00 2001
+From d6a0c3045598597023ee2423144b134fc87f4b6f Mon Sep 17 00:00:00 2001
From: Julien Malik <julien.malik@paraiso.me>
Date: Sat, 26 Nov 2022 13:05:20 +0100
Subject: [PATCH] add setup.py to avoid depending on flit for building
+
+setuptools.setup(
+ name='exceptiongroup',
-+ version='1.0.4',
++ version='1.1.0',
+ description='Backport of PEP 654 (exception groups)',
+ author='Alex Grönholm',
+ author_email='Alex Grönholm <alex.gronholm@nextday.fi>',
include $(TOPDIR)/rules.mk
PKG_NAME:=python-pytz
-PKG_VERSION:=2022.7
+PKG_VERSION:=2022.7.1
PKG_RELEASE:=1
PYPI_NAME:=pytz
-PKG_HASH:=7ccfae7b4b2c067464a6733c6261673fdb8fd1be905460396b97a073e9fa683a
+PKG_HASH:=01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=MIT
include $(TOPDIR)/rules.mk
PKG_NAME:=python-requests
-PKG_VERSION:=2.28.1
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=2.28.2
+PKG_RELEASE:=1
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>, Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=Apache-2.0
PKG_CPE_ID:=cpe:/a:python-requests:requests
PYPI_NAME:=requests
-PKG_HASH:=7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983
+PKG_HASH:=98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
SRC_NAME:=libselinux
PKG_NAME:=python3-$(SRC_NAME)
PKG_VERSION:=3.3
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=2
PKG_BUILD_DIR:=$(BUILD_DIR)/python-libselinux/$(SRC_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(SRC_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/20200710
+PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/$(PKG_VERSION)
PKG_HASH:=acfdee27633d2496508c28727c3d41d3748076f66d42fccde2e6b9f3463a7057
PKG_BUILD_DEPENDS:=swig/host
PKG_BUILD_DIR:=$(BUILD_DIR)/python-libsemanage/$(SRC_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(SRC_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/20200710
+PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/$(PKG_VERSION)
PKG_HASH:=d722a55ca4fe2d4e2b30527720db657e6238b28079e69e2e4affeb8e733ee511
PKG_BUILD_DEPENDS:=swig/host
include $(TOPDIR)/rules.mk
PKG_NAME:=vala
-PKG_VERSION:=0.56.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=0.56.3
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@GNOME/vala/0.56
-PKG_HASH:=d92bd13c5630905eeb6a983dcb702204da9731460c2a6e4e39f867996f371040
+PKG_SOURCE_URL:=@GNOME/vala/$(basename $(PKG_VERSION))
+PKG_HASH:=e1066221bf7b89cb1fa7327a3888645cb33b604de3bf45aa81132fd040b699bf
PKG_MAINTAINER:=
PKG_LICENSE:=LGPL-2.1-or-later
--- /dev/null
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=efivar
+PKG_VERSION:=38
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://github.com/rhboot/efivar/releases/download/$(PKG_VERSION)
+PKG_HASH:=f018ed6e49c5f1c16d336d9fd7687ce87023276591921db1e49a314ad6515349
+
+PKG_LICENSE:=LGPL-2.1-only
+PKG_LICENSE_FILES:=COPYING
+
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/efivar
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=Tools and libraries to work with EFI variables
+ DEPENDS:=@TARGET_x86_64
+ URL:=https://github.com/rhboot/efibootmgr
+endef
+
+define Package/efivar/description
+ Tools and libraries to work with EFI variables
+endef
+
+MAKE_VARS += \
+ ERRORS= \
+ HOSTCC="$(HOSTCC)" \
+ HOST_CFLAGS="$(HOST_CFLAGS)" \
+ HOST_LDFLAGS="$(HOST_LDFLAGS)" \
+ LIBDIR="/usr/lib"
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libefiboot.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libefisec.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libefivar.so* $(1)/usr/lib/
+
+ $(INSTALL_DIR) $(1)/usr/include/efivar
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/efivar/*.h $(1)/usr/include/efivar/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/efivar/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/efisecdb $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/efivar $(1)/usr/bin/
+
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libefiboot.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libefisec.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libefivar.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,efivar))
--- /dev/null
+From cece3ffd5be2f8641eb694513f2b73e5eb97ffd3 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Fri, 28 Jan 2022 12:13:30 +0100
+Subject: [PATCH 1/2] efisecdb: fix build with musl libc
+
+Refactor code to use POSIX atexit(3) instead of the GNU specific
+on_exit(3).
+
+Resolves: #197
+Resolves: #202
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+
+--- a/src/compiler.h
++++ b/src/compiler.h
+@@ -7,8 +7,6 @@
+ #ifndef COMPILER_H_
+ #define COMPILER_H_
+
+-#include <sys/cdefs.h>
+-
+ /* GCC version checking borrowed from glibc. */
+ #if defined(__GNUC__) && defined(__GNUC_MINOR__)
+ # define GNUC_PREREQ(maj,min) \
+--- a/src/efisecdb.c
++++ b/src/efisecdb.c
+@@ -25,6 +25,10 @@
+ extern char *optarg;
+ extern int optind, opterr, optopt;
+
++static efi_secdb_t *secdb = NULL;
++static list_t infiles;
++static list_t actions;
++
+ struct hash_param {
+ char *name;
+ efi_secdb_type_t algorithm;
+@@ -187,12 +191,11 @@ add_action(list_t *list, action_type_t a
+ }
+
+ static void
+-free_actions(int status UNUSED, void *actionsp)
++free_actions(void)
+ {
+- list_t *actions = (list_t *)actionsp;
+ list_t *pos, *tmp;
+
+- for_each_action_safe(pos, tmp, actions) {
++ for_each_action_safe(pos, tmp, &actions) {
+ action_t *action = list_entry(pos, action_t, list);
+
+ list_del(&action->list);
+@@ -202,12 +205,11 @@ free_actions(int status UNUSED, void *ac
+ }
+
+ static void
+-free_infiles(int status UNUSED, void *infilesp)
++free_infiles(void)
+ {
+- list_t *infiles = (list_t *)infilesp;
+ list_t *pos, *tmp;
+
+- for_each_ptr_safe(pos, tmp, infiles) {
++ for_each_ptr_safe(pos, tmp, &infiles) {
+ ptrlist_t *entry = list_entry(pos, ptrlist_t, list);
+
+ list_del(&entry->list);
+@@ -216,27 +218,12 @@ free_infiles(int status UNUSED, void *in
+ }
+
+ static void
+-maybe_free_secdb(int status UNUSED, void *voidp)
++maybe_free_secdb(void)
+ {
+- efi_secdb_t **secdbp = (efi_secdb_t **)voidp;
+-
+- if (secdbp == NULL || *secdbp == NULL)
++ if (secdb == NULL)
+ return;
+
+- efi_secdb_free(*secdbp);
+-}
+-
+-static void
+-maybe_do_unlink(int status, void *filep)
+-{
+- char **file = (char **)filep;
+-
+- if (status == 0)
+- return;
+- if (file == NULL || *file == NULL)
+- return;
+-
+- unlink(*file);
++ efi_secdb_free(secdb);
+ }
+
+ static void
+@@ -268,8 +255,7 @@ list_guids(void)
+ * failure.
+ */
+ static int
+-parse_input_files(list_t *infiles, char **outfile, efi_secdb_t **secdb,
+- bool dump)
++parse_input_files(list_t *infiles, efi_secdb_t **secdb, bool dump)
+ {
+ int status = 0;
+ list_t *pos, *tmp;
+@@ -310,8 +296,6 @@ parse_input_files(list_t *infiles, char
+ if (!dump)
+ exit(1);
+ status = 1;
+- xfree(*outfile);
+- *outfile = NULL;
+ break;
+ }
+ }
+@@ -323,15 +307,6 @@ parse_input_files(list_t *infiles, char
+ return status;
+ }
+
+-/*
+- * These need to be static globals so that they're not on main's stack when
+- * on_exit() fires.
+- */
+-static efi_secdb_t *secdb = NULL;
+-static list_t infiles;
+-static list_t actions;
+-static char *outfile = NULL;
+-
+ int
+ main(int argc, char *argv[])
+ {
+@@ -351,6 +326,7 @@ main(int argc, char *argv[])
+ bool do_sort_data = false;
+ bool sort_descending = false;
+ int status = 0;
++ char *outfile = NULL;
+
+ const char sopts[] = ":aAc:dfg:h:i:Lo:rs:t:v?";
+ const struct option lopts[] = {
+@@ -376,10 +352,9 @@ main(int argc, char *argv[])
+ INIT_LIST_HEAD(&infiles);
+ INIT_LIST_HEAD(&actions);
+
+- on_exit(free_actions, &actions);
+- on_exit(free_infiles, &infiles);
+- on_exit(maybe_free_secdb, &secdb);
+- on_exit(maybe_do_unlink, &outfile);
++ atexit(free_actions);
++ atexit(free_infiles);
++ atexit(maybe_free_secdb);
+
+ /*
+ * parse the command line.
+@@ -550,7 +525,7 @@ sort_err:
+ efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DATA, do_sort_data);
+ efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DESCENDING, sort_descending);
+
+- status = parse_input_files(&infiles, &outfile, &secdb, dump);
++ status = parse_input_files(&infiles, &secdb, dump);
+ if (status == 0) {
+ for_each_action_safe(pos, tmp, &actions) {
+ action_t *action = list_entry(pos, action_t, list);
+@@ -587,24 +562,30 @@ sort_err:
+ outfd = open(outfile, flags, 0600);
+ if (outfd < 0) {
+ char *tmpoutfile = outfile;
+- if (errno == EEXIST)
+- outfile = NULL;
++ if (errno != EEXIST)
++ unlink(outfile);
+ err(1, "could not open \"%s\"", tmpoutfile);
+ }
+
+ rc = ftruncate(outfd, 0);
+- if (rc < 0)
++ if (rc < 0) {
++ unlink(outfile);
+ err(1, "could not truncate output file \"%s\"", outfile);
++ }
+
+ void *output;
+ size_t size = 0;
+ rc = efi_secdb_realize(secdb, &output, &size);
+- if (rc < 0)
++ if (rc < 0) {
++ unlink(outfile);
+ secdb_err(1, "could not realize signature list");
++ }
+
+ rc = write(outfd, output, size);
+- if (rc < 0)
++ if (rc < 0) {
++ unlink(outfile);
+ err(1, "could not write signature list");
++ }
+
+ close(outfd);
+ xfree(output);
--- /dev/null
+--- a/Makefile
++++ b/Makefile
+@@ -7,7 +7,7 @@ include $(TOPDIR)/src/include/defaults.m
+ include $(TOPDIR)/src/include/coverity.mk
+ include $(TOPDIR)/src/include/scan-build.mk
+
+-SUBDIRS := src docs
++SUBDIRS := src
+
+ all : | efivar.spec src/include/version.mk prep
+ all clean install prep :
+++ /dev/null
---- a/src/plugins/filecheck/CMakeLists.txt
-+++ b/src/plugins/filecheck/CMakeLists.txt
-@@ -1,20 +1,46 @@
- include (LibAddMacros)
--if (DEPENDENCY_PHASE)
-- find_package (Iconv QUIET)
--
-- if (NOT Iconv_FOUND)
-- remove_plugin (filecheck "Cannot find iconv library")
-- endif ()
-+find_package (Iconv QUIET)
-
-+if (DEPENDENCY_PHASE)
- if (ENABLE_ASAN AND CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- # See also: https://cirrus-ci.com/task/5751822404288512?command=tests#L237-L239
- remove_plugin (filecheck "the unit test of the plugin fails on FreeBSD if ASan is active")
- endif (ENABLE_ASAN AND CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- endif ()
-
--add_plugin (
-- filecheck
-- SOURCES filecheck.h filecheck.c
-- INCLUDE_DIRECTORIES ${Iconv_INCLUDE_DIRS}
-- LINK_LIBRARIES ${Iconv_LIBRARIES}
-- ADD_TEST INSTALL_TEST_DATA COMPONENT libelektra${SO_VERSION}-extra)
-+if(Iconv_FOUND)
-+ add_plugin (
-+ filecheck
-+ SOURCES filecheck.h filecheck.c
-+ INCLUDE_DIRECTORIES ${Iconv_INCLUDE_DIRS}
-+ LINK_LIBRARIES ${Iconv_LIBRARIES}
-+ ADD_TEST INSTALL_TEST_DATA COMPONENT libelektra${SO_VERSION}-extra)
-+else()
-+ # Sometime the build environment is not setup
-+ # in a way CMake can find Iconv on its own by default.
-+ # But if we simply link against iconv (-liconv), the build may succeed
-+ # due to other compiler/link flags.
-+ set(CMAKE_REQUIRED_LIBRARIES "iconv")
-+ check_c_source_compiles("
-+ #include <stddef.h>
-+ #include <iconv.h>
-+ int main() {
-+ char *a, *b;
-+ size_t i, j;
-+ iconv_t ic;
-+ ic = iconv_open(\"to\", \"from\");
-+ iconv(ic, &a, &i, &b, &j);
-+ iconv_close(ic);
-+ }
-+ "
-+ Iconv_EXPLICITLY_AT_ENV)
-+ if(Iconv_EXPLICITLY_AT_ENV)
-+ add_plugin (
-+ filecheck
-+ SOURCES filecheck.h filecheck.c
-+ LINK_LIBRARIES iconv
-+ ADD_TEST INSTALL_TEST_DATA COMPONENT libelektra${SO_VERSION}-extra)
-+ else()
-+ message(FATAL_ERROR "Cannot find iconv library")
-+ endif()
-+endif()
---- a/src/plugins/iconv/CMakeLists.txt
-+++ b/src/plugins/iconv/CMakeLists.txt
-@@ -1,19 +1,45 @@
--if (DEPENDENCY_PHASE)
-- find_package (Iconv QUIET)
-+find_package (Iconv QUIET)
-
-+if (DEPENDENCY_PHASE)
- if (ENABLE_ASAN AND CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- # See also: https://cirrus-ci.com/task/5751822404288512?command=tests#L253-L255
- remove_plugin (iconv "the unit test of the plugin fails on FreeBSD if ASan is active")
- endif (ENABLE_ASAN AND CMAKE_SYSTEM_NAME MATCHES FreeBSD)
--
-- if (NOT Iconv_FOUND)
-- remove_plugin (iconv "Cannot find iconv library")
-- endif ()
- endif ()
-
--add_plugin (
-- iconv
-- SOURCES conv.h iconv.c
-- INCLUDE_DIRECTORIES ${Iconv_INCLUDE_DIRS}
-- LINK_LIBRARIES ${Iconv_LIBRARIES}
-- ADD_TEST TEST_README COMPONENT libelektra${SO_VERSION}-extra)
-+if(Iconv_FOUND)
-+ add_plugin (
-+ iconv
-+ SOURCES conv.h iconv.c
-+ INCLUDE_DIRECTORIES ${Iconv_INCLUDE_DIRS}
-+ LINK_LIBRARIES ${Iconv_LIBRARIES}
-+ ADD_TEST TEST_README COMPONENT libelektra${SO_VERSION}-extra)
-+else()
-+ # Sometime the build environment is not setup
-+ # in a way CMake can find Iconv on its own by default.
-+ # But if we simply link against iconv (-liconv), the build may succeed
-+ # due to other compiler/link flags.
-+ set(CMAKE_REQUIRED_LIBRARIES "iconv")
-+ check_c_source_compiles("
-+ #include <stddef.h>
-+ #include <iconv.h>
-+ int main() {
-+ char *a, *b;
-+ size_t i, j;
-+ iconv_t ic;
-+ ic = iconv_open(\"to\", \"from\");
-+ iconv(ic, &a, &i, &b, &j);
-+ iconv_close(ic);
-+ }
-+ "
-+ Iconv_EXPLICITLY_AT_ENV)
-+ if(Iconv_EXPLICITLY_AT_ENV)
-+ add_plugin (
-+ iconv
-+ SOURCES conv.h iconv.c
-+ LINK_LIBRARIES iconv
-+ ADD_TEST TEST_README COMPONENT libelektra${SO_VERSION}-extra)
-+ else()
-+ message(FATAL_ERROR "Cannot find iconv library")
-+ endif()
-+endif()
include $(TOPDIR)/rules.mk
PKG_NAME:=faad2
-PKG_VERSION:=2.10.0
PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://codeload.github.com/knik0/faad2/tar.gz/2_10_0?
-PKG_HASH:=0c6d9636c96f95c7d736f097d418829ced8ec6dbd899cc6cc82b728480a84bfb
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-2_10_0
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=2.10.1
+PKG_SOURCE_URL:=https://github.com/knik0/faad2
+PKG_MIRROR_HASH:=8a42cbc5833bd3c076f92363f0cbbcf6f848231c59b2f17dbe5d151cb8684fe1
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=GPL-2.0-or-later
PKG_NAME:=hidapi
PKG_VERSION:=0.12.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/libusb/hidapi/tar.gz/$(PKG_NAME)-$(PKG_VERSION)?
+++ /dev/null
-From cfcddf90ea6add9d4aaa99ee2decc5a9140bdf37 Mon Sep 17 00:00:00 2001
-From: Ihor Dutchak <ihor.youw@gmail.com>
-Date: Sat, 18 Jun 2022 15:58:31 +0300
-Subject: [PATCH 1/3] Ensure Iconv is found when provided via CFLAGS/LDFLAGS
-
-- by default find_file/find_library doesn't respect CFLAGS/LDFLAGS,
-and FindIconv fails to find Iconv;
-- by explicitly trying to link against `-liconv` - we're checking if library is available in such way;
-- additionally: if Iconv is detected as BUILT_IN, no need to explicitly depend on `Iconv::Iconv`;
----
- libusb/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++++--------
- src/CMakeLists.txt | 3 ---
- 2 files changed, 33 insertions(+), 11 deletions(-)
-
---- a/libusb/CMakeLists.txt
-+++ b/libusb/CMakeLists.txt
-@@ -22,11 +22,53 @@ target_link_libraries(hidapi_libusb PRIV
- if(HIDAPI_NO_ICONV)
- target_compile_definitions(hidapi_libusb PRIVATE NO_ICONV)
- else()
-- if(NOT ANDROID AND NOT CMAKE_VERSION VERSION_LESS 3.11)
-- find_package(Iconv REQUIRED)
-+ if(NOT ANDROID)
- include(CheckCSourceCompiles)
-- target_link_libraries(hidapi_libusb PRIVATE Iconv::Iconv)
-- set(CMAKE_REQUIRED_LIBRARIES "Iconv::Iconv")
-+
-+ if(NOT CMAKE_VERSION VERSION_LESS 3.11)
-+ message(STATUS "Check for Iconv")
-+ find_package(Iconv)
-+ if(Iconv_FOUND)
-+ if(NOT Iconv_IS_BUILT_IN)
-+ target_link_libraries(hidapi_libusb PRIVATE Iconv::Iconv)
-+ set(CMAKE_REQUIRED_LIBRARIES "Iconv::Iconv")
-+ if(NOT BUILD_SHARED_LIBS)
-+ set(HIDAPI_NEED_EXPORT_ICONV TRUE PARENT_SCOPE)
-+ endif()
-+ endif()
-+ else()
-+ message(STATUS "Iconv Explicitly check '-liconv'")
-+ # Sometime the build environment is not setup
-+ # in a way CMake can find Iconv on its own by default.
-+ # But if we simply link against iconv (-liconv), the build may succeed
-+ # due to other compiler/link flags.
-+ set(CMAKE_REQUIRED_LIBRARIES "iconv")
-+ check_c_source_compiles("
-+ #include <stddef.h>
-+ #include <iconv.h>
-+ int main() {
-+ char *a, *b;
-+ size_t i, j;
-+ iconv_t ic;
-+ ic = iconv_open(\"to\", \"from\");
-+ iconv(ic, &a, &i, &b, &j);
-+ iconv_close(ic);
-+ }
-+ "
-+ Iconv_EXPLICITLY_AT_ENV)
-+ if(Iconv_EXPLICITLY_AT_ENV)
-+ message(STATUS "Iconv Explicitly check '-liconv' - Available")
-+ target_link_libraries(hidapi_libusb PRIVATE iconv)
-+ else()
-+ message(FATAL_ERROR "Iconv is not found, make sure to provide it in the build environment")
-+ endif()
-+ endif()
-+ else()
-+ # otherwise there is 2 options:
-+ # 1) iconv is provided by Standard C library and the build will be just fine
-+ # 2) The _user_ has to provide additiona compilation options for this project/target
-+ endif()
-+
- # check for error: "conflicting types for 'iconv'"
- check_c_source_compiles("#include<iconv.h>
- extern size_t iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
-@@ -35,11 +77,9 @@ else()
- if(HIDAPI_ICONV_CONST)
- target_compile_definitions(hidapi_libusb PRIVATE "ICONV_CONST=const")
- endif()
-+ else()
-+ # On Android Iconv is disabled on the code level anyway, so no issue;
- endif()
-- # otherwise there is 3 options:
-- # 1) On Android Iconv is disabled on the code level anyway, so no issue;
-- # 2) iconv is provided by Standard C library and the build will be just fine;
-- # 4) The _user_ has to provide additiona compilation options for this project/target.
- endif()
-
- set_target_properties(hidapi_libusb
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -148,9 +148,6 @@ else()
- if(NOT TARGET usb-1.0)
- set(HIDAPI_NEED_EXPORT_LIBUSB TRUE)
- endif()
-- if(NOT HIDAPI_NO_ICONV AND NOT ANDROID AND NOT CMAKE_VERSION VERSION_LESS 3.11)
-- set(HIDAPI_NEED_EXPORT_ICONV TRUE)
-- endif()
- endif()
- elseif(NOT TARGET hidapi_hidraw)
- message(FATAL_ERROR "Select at least one option to build: HIDAPI_WITH_LIBUSB or HIDAPI_WITH_HIDRAW")
include $(TOPDIR)/rules.mk
PKG_NAME:=hiredis
-PKG_VERSION:=1.0.2
+PKG_VERSION:=1.1.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/redis/hiredis/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=e0ab696e2f07deb4252dda45b703d09854e53b9703c7d52182ce5a22616c3819
+PKG_HASH:=fe6d21741ec7f3fc9df409d921f47dfc73a4d8ff64f4ac6f1d95f951bf7f53d6
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
+CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libhiredis
SECTION:=libs
Hiredis is a minimalistic C client library for the Redis database.
endef
-MAKE_FLAGS += ARCH="" DEBUG="" PREFIX="/usr" uname_S="Linux"
-
-define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include/hiredis/adapters
- $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/hiredis/adapters/* $(1)/usr/include/hiredis/adapters
- $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/hiredis/*.h $(1)/usr/include/hiredis/
- $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libhiredis.{so*,a} $(1)/usr/lib/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/hiredis.pc $(1)/usr/lib/pkgconfig
-endef
-
define Package/libhiredis/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libhiredis.so* $(1)/usr/lib/
+++ /dev/null
-commit f96d9f9d2e3ba39352035e6ac26463243484d404
-Author: Sebastian Kemper <sebastian_ml@gmx.net>
-Date: Sun Jan 13 19:25:52 2019 +0100
-
- Setup .pc file to allow use for cross-compiling
-
- The Makefile is currently creating the pkg-config file using static lib
- and include dir statements. Change that so that projects that
- cross-compile hiredis can use pkg-config to setup other programs
- depending on it.
-
- Note: these projects (like OpenWrt) call pkg-config with arguments to
- overwrite some variables in the .pc file, namely:
-
- --define-variable=prefix=<...>
- --define-variable=exec_prefix=<...>
-
- Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
-
---- a/Makefile
-+++ b/Makefile
-@@ -234,8 +234,8 @@ $(PKGCONFNAME): hiredis.h
- @echo "Generating $@ for pkgconfig..."
- @echo prefix=$(PREFIX) > $@
- @echo exec_prefix=\$${prefix} >> $@
-- @echo libdir=$(PREFIX)/$(LIBRARY_PATH) >> $@
-- @echo includedir=$(PREFIX)/$(INCLUDE_PATH) >> $@
-+ @echo libdir=\$${exec_prefix}/$(LIBRARY_PATH) >> $@
-+ @echo includedir=\$${prefix}/$(INCLUDE_PATH) >> $@
- @echo >> $@
- @echo Name: hiredis >> $@
- @echo Description: Minimalistic C client library for Redis. >> $@
include $(TOPDIR)/rules.mk
PKG_NAME:=libgd
-PKG_VERSION:=2.3.2
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=2.3.3
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/releases/download/gd-$(PKG_VERSION)/
-PKG_HASH:=478a047084e0d89b83616e4c2cf3c9438175fb0cc55d8c8967f06e0427f7d7fb
+PKG_HASH:=3fe822ece20796060af63b7c60acb151e5844204d289da0ce08f8fdf131e5a61
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=MIT
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -118,7 +118,7 @@ else (USE_EXT_GD)
+@@ -134,7 +134,7 @@ else (USE_EXT_GD)
endif (ENABLE_ICONV)
IF (ENABLE_WEBP)
ENDIF (ENABLE_WEBP)
IF (ENABLE_HEIF)
-@@ -179,10 +179,10 @@ else (USE_EXT_GD)
+@@ -195,10 +195,10 @@ else (USE_EXT_GD)
LIST(APPEND PKG_REQUIRES_PRIVATES zlib)
ENDIF(ZLIB_FOUND)
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
-@@ -24,8 +24,6 @@ SET (LIBGD_SRC_FILES
+@@ -18,7 +18,6 @@ SET (LIBGD_SRC_FILES
gd_io_dp.c
gd_io_file.c
gd_io_ss.c
- gd_io_stream.cxx
-- gd_io_stream.h
gd_jpeg.c
gd_matrix.c
gd_nnquant.c
-@@ -61,8 +59,6 @@ SET (LIBGD_SRC_FILES
+@@ -44,7 +43,6 @@ SET (LIBGD_SRC_FILES
+ gdfx.c
gdhelpers.c
- gdhelpers.h
gdkanji.c
- gdpp.cxx
-- gdpp.h
gdtables.c
gdxpm.c
- jisx0208.h
-@@ -203,7 +199,6 @@ install(FILES
+ wbmp.c
+@@ -193,7 +191,6 @@ install(FILES
gdfonts.h
gdfontt.h
gdfx.h
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libjaylink
+PKG_VERSION:=0.3.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://gitlab.zapb.de/libjaylink/libjaylink/-/archive/$(PKG_VERSION)
+PKG_HASH:=a2d98c1aa13dcf41c6c681767a43cdefc42b6f71af9362937555051007514cd9
+
+PKG_MAINTAINER:=Paul Fertser <fercerpav@gmail.com>
+PKG_LICENSE:=GPL-2.0+
+PKG_LICENSE_FILES:=COPYING
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libjaylink
+ SECTION:=libs
+ CATEGORY:=Libraries
+ DEPENDS:=+libusb-1.0
+ TITLE:=Library to access SEGGER J-Link and compatible devices
+ URL:=https://gitlab.zapb.de/libjaylink/libjaylink.git
+endef
+
+define Package/libjaylink/description
+libjaylink is a shared library written in C to access SEGGER J-Link and
+compatible devices.
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include/libjaylink
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/libjaylink/*.h $(1)/usr/include/libjaylink/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjaylink.so* $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libjaylink.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libjaylink/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjaylink.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libjaylink))
PKG_NAME:=libmad
PKG_VERSION:=0.16.3
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=2
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://codeload.github.com/tenacityteam/libmad/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=83ca48db60f480ae22234bae08e6ad651adec2667a68ad2df6fd61e6a50a32c7
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=0.16.3
+PKG_SOURCE_URL:=https://codeberg.org/tenacityteam/libmad
+PKG_MIRROR_HASH:=f2fa2a3c75ad1c58f0b6150482a3036408c8da79f0fcbf23bcf9e105f29079ee
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=GPL-2.0-or-later
PKG_NAME:=liburing
PKG_VERSION:=2.3
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.kernel.dk/cgit/liburing/snapshot
For more info on io_uring, please see: https://kernel.dk/io_uring.pdf
endef
-CONFIGURE_ARGS:=--prefix=$(CONFIGURE_PREFIX) --cc=${TARGET_CC}
+CONFIGURE_ARGS:=--prefix=$(CONFIGURE_PREFIX) --cc="${TARGET_CC}"
define Build/Compile
$(MAKE) $(PKG_BUILD_DIR) \
include $(TOPDIR)/rules.mk
PKG_NAME:=v4l-utils
-PKG_VERSION:=1.20.0
-PKG_RELEASE:=5
+PKG_VERSION:=1.22.1
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://www.linuxtv.org/downloads/v4l-utils
-PKG_HASH:=956118713f7ccb405c55c7088a6a2490c32d54300dd9a30d8d5008c28d3726f7
+PKG_HASH:=65c6fbe830a44ca105c443b027182c1b2c9053a91d1e72ad849dfab388b94e31
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_USE_MIPS16:=0
-PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
endef
TARGET_CFLAGS += -flto
-TARGET_CXXFLAGS += -std=c++11
TARGET_LDFLAGS += \
$(if $(CONFIG_USE_GLIBC),,-largp) \
-Wl,--gc-sections,--as-needed
+++ /dev/null
---- a/utils/libcecutil/cec-info.cpp
-+++ b/utils/libcecutil/cec-info.cpp
-@@ -5,6 +5,7 @@
- * Copyright 2017 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
- */
-
-+#include <cctype>
- #include <stdio.h>
- #include <string>
- #include <unistd.h>
+++ /dev/null
---- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
-+++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
-@@ -785,15 +785,17 @@ static bool parse_subset(char *optarg)
-
- static bool parse_next_subopt(char **subs, char **value)
- {
-- static char *const subopts[] = {
-- NULL
-- };
-- int opt = getsubopt(subs, subopts, value);
-+ char *p = *subs;
-+ *value = *subs;
-
-- if (opt < 0 || *value)
-- return false;
-- fprintf(stderr, "Missing suboption value\n");
-- return true;
-+ while (*p && *p != ',')
-+ p++;
-+
-+ if (*p)
-+ *p++ = '\0';
-+
-+ *subs = p;
-+ return false;
- }
-
- void common_cmd(const std::string &media_bus_info, int ch, char *optarg)
include $(TOPDIR)/rules.mk
PKG_NAME:=libwebp
-PKG_VERSION:=1.2.4
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=1.3.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://storage.googleapis.com/downloads.webmproject.org/releases/webp
-PKG_HASH:=7bf5a8a28cc69bcfa8cb214f2c3095703c6b73ac5fba4d5480c205331d9494df
+PKG_HASH:=64ac4614db292ae8c5aa26de0295bf1623dbb3985054cb656c55e67431def17c
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=BSD-3-Clause
define Package/libwebp/install
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwebp*.s* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.s* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libwebp))
--- a/src/dsp/cpu.h
+++ b/src/dsp/cpu.h
-@@ -106,7 +106,7 @@
+@@ -108,7 +108,7 @@
#define WEBP_HAVE_NEON
#endif
include $(TOPDIR)/rules.mk
PKG_NAME:=libxcrypt
-PKG_VERSION:=4.4.28
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=4.4.33
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/besser82/libxcrypt/releases/download/v$(PKG_VERSION)
-PKG_HASH:=9e936811f9fad11dbca33ca19bd97c55c52eb3ca15901f27ade046cc79e69e87
+PKG_HASH:=e87acf9c652c573a4713d5582159f98f305d56ed5f754ce64f57d4194d6b3a6f
PKG_MAINTAINER:=
PKG_LICENSE:=LGPL-2.1-or-later
PKG_NAME:=libxml2
PKG_VERSION:=2.10.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNOME/libxml2/$(basename $(PKG_VERSION))
PKG_HASH:=5d2cc3d78bec3dbe212a9d7fa629ada25a7da928af432c93060ff5c17ee28a9c
+PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
PKG_CPE_ID:=cpe:/a:xmlsoft:libxml2
-PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
-
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=0
-
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
include $(INCLUDE_DIR)/nls.mk
define Package/libxml2
from libxml2, a library for manipulating XML and HTML resources.
endef
-TARGET_CFLAGS += $(FPIC)
-
-CONFIGURE_ARGS += \
- --enable-shared \
- --enable-static \
- --with-c14n \
- --without-catalog \
- --with-debug \
- --with-html \
- --without-ftp \
- --without-http \
- --without-iso8859x \
- --without-legacy \
- --with-output \
- --without-pattern \
- --without-push \
- --without-python \
- --with-reader \
- --without-readline \
- --without-regexps \
- --with-sax1 \
- --with-schemas \
- --with-threads \
- --with-tree \
- --with-valid \
- --with-writer \
- --with-xinclude \
- --with-xpath \
- --with-xptr \
- --with-zlib=$(STAGING_DIR)/usr \
- --with-iconv$(if $(ICONV_PREFIX),="$(ICONV_PREFIX)") \
- --without-lzma
-
-HOST_CONFIGURE_ARGS += \
- --disable-shared \
- --enable-static \
- --with-pic \
- --with-c14n \
- --without-catalog \
- --with-debug \
- --with-html \
- --without-ftp \
- --without-http \
- --without-iconv \
- --without-iso8859x \
- --without-legacy \
- --with-output \
- --without-pattern \
- --without-push \
- --without-python \
- --with-reader \
- --without-readline \
- --without-regexps \
- --with-sax1 \
- --with-schemas \
- --with-threads \
- --with-tree \
- --with-valid \
- --with-writer \
- --with-xinclude \
- --with-xpath \
- --with-xptr \
- --with-zlib \
- --without-lzma
+CMAKE_HOST_OPTIONS += \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DLIBXML2_WITH_C14N=ON \
+ -DLIBXML2_WITH_CATALOG=OFF \
+ -DLIBXML2_WITH_DEBUG=ON \
+ -DLIBXML2_WITH_FTP=OFF \
+ -DLIBXML2_WITH_HTML=ON \
+ -DLIBXML2_WITH_HTTP=OFF \
+ -DLIBXML2_WITH_ICONV=ON \
+ -DLIBXML2_WITH_ICU=OFF \
+ -DLIBXML2_WITH_ISO8859X=OFF \
+ -DLIBXML2_WITH_LEGACY=OFF \
+ -DLIBXML2_WITH_LZMA=OFF \
+ -DLIBXML2_WITH_MEM_DEBUG=OFF \
+ -DLIBXML2_WITH_MODULES=OFF \
+ -DLIBXML2_WITH_OUTPUT=ON \
+ -DLIBXML2_WITH_PATTERN=ON \
+ -DLIBXML2_WITH_PROGRAMS=OFF \
+ -DLIBXML2_WITH_PUSH=ON \
+ -DLIBXML2_WITH_PYTHON=OFF \
+ -DLIBXML2_WITH_READER=ON \
+ -DLIBXML2_WITH_REGEXPS=ON \
+ -DLIBXML2_WITH_RUN_DEBUG=OFF \
+ -DLIBXML2_WITH_SAX1=ON \
+ -DLIBXML2_WITH_SCHEMAS=ON \
+ -DLIBXML2_WITH_SCHEMATRON=OFF \
+ -DLIBXML2_WITH_TESTS=OFF \
+ -DLIBXML2_WITH_THREADS=ON \
+ -DLIBXML2_WITH_THREAD_ALLOC=OFF \
+ -DLIBXML2_WITH_TREE=ON \
+ -DLIBXML2_WITH_VALID=ON \
+ -DLIBXML2_WITH_WRITER=ON \
+ -DLIBXML2_WITH_XINCLUDE=ON \
+ -DLIBXML2_WITH_XPATH=ON \
+ -DLIBXML2_WITH_XPTR=ON \
+ -DLIBXML2_WITH_XPTR_LOCS=ON \
+ -DLIBXML2_WITH_ZLIB=ON
+
+CMAKE_OPTIONS += \
+ -DBUILD_SHARED_LIBS=ON \
+ -DLIBXML2_WITH_C14N=ON \
+ -DLIBXML2_WITH_CATALOG=OFF \
+ -DLIBXML2_WITH_DEBUG=ON \
+ -DLIBXML2_WITH_FTP=OFF \
+ -DLIBXML2_WITH_HTML=ON \
+ -DLIBXML2_WITH_HTTP=OFF \
+ -DLIBXML2_WITH_ICONV=ON \
+ -DLIBXML2_WITH_ICU=OFF \
+ -DLIBXML2_WITH_ISO8859X=OFF \
+ -DLIBXML2_WITH_LEGACY=OFF \
+ -DLIBXML2_WITH_LZMA=OFF \
+ -DLIBXML2_WITH_MEM_DEBUG=OFF \
+ -DLIBXML2_WITH_MODULES=OFF \
+ -DLIBXML2_WITH_OUTPUT=ON \
+ -DLIBXML2_WITH_PATTERN=ON \
+ -DLIBXML2_WITH_PROGRAMS=ON \
+ -DLIBXML2_WITH_PUSH=ON \
+ -DLIBXML2_WITH_PYTHON=OFF \
+ -DLIBXML2_WITH_READER=ON \
+ -DLIBXML2_WITH_REGEXPS=ON \
+ -DLIBXML2_WITH_RUN_DEBUG=OFF \
+ -DLIBXML2_WITH_SAX1=ON \
+ -DLIBXML2_WITH_SCHEMAS=ON \
+ -DLIBXML2_WITH_SCHEMATRON=OFF \
+ -DLIBXML2_WITH_TESTS=OFF \
+ -DLIBXML2_WITH_THREADS=ON \
+ -DLIBXML2_WITH_THREAD_ALLOC=OFF \
+ -DLIBXML2_WITH_TREE=ON \
+ -DLIBXML2_WITH_VALID=ON \
+ -DLIBXML2_WITH_WRITER=ON \
+ -DLIBXML2_WITH_XINCLUDE=ON \
+ -DLIBXML2_WITH_XPATH=ON \
+ -DLIBXML2_WITH_XPTR=ON \
+ -DLIBXML2_WITH_XPTR_LOCS=ON \
+ -DLIBXML2_WITH_ZLIB=ON \
+ -DHAVE_LIBHISTORY=OFF \
+ -DHAVE_LIBREADLINE=OFF
define Build/InstallDev
$(INSTALL_DIR) $(2)/bin
$(2)/bin/$(GNU_TARGET_NAME)-xml2-config
$(LN) $(GNU_TARGET_NAME)-xml2-config $(2)/bin/xml2-config
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/xmlcatalog $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/xmllint $(1)/usr/bin/
+
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libxml2 $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.{la,a,so*} $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/cmake/libxml2
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/cmake/libxml2/libxml2-config.cmake \
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/cmake/libxml2-$(PKG_VERSION)/*.cmake \
$(1)/usr/lib/cmake/libxml2
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
--- /dev/null
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -496,6 +496,9 @@ if(LIBXML2_WITH_PROGRAMS)
+ add_executable(LibXml2::${PROGRAM} ALIAS ${PROGRAM})
+ target_compile_definitions(${PROGRAM} PRIVATE SYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
+ target_link_libraries(${PROGRAM} LibXml2)
++ if(LIBXML2_WITH_ICONV AND NOT Iconv_IS_BUILT_IN)
++ target_link_libraries(${PROGRAM} iconv)
++ endif()
+ if(HAVE_LIBHISTORY)
+ target_link_libraries(${PROGRAM} history)
+ endif()
define Build/Compile
cd $(PKG_BUILD_DIR)/PcapPlusPlus; ./configure-linux.sh --install-dir /usr
- make -C $(PKG_BUILD_DIR)/PcapPlusPlus CXXFLAGS="$(TARGET_CXXFLAGS) -fPIC" CFLAGS="$(TARGET_CFLAGS) -fPIC" CXX=$(TARGET_CXX) CC=$(TARGET_CC) AR=$(TARGET_AR) libs
+ make -C $(PKG_BUILD_DIR)/PcapPlusPlus CXXFLAGS="$(TARGET_CXXFLAGS) -fPIC" CFLAGS="$(TARGET_CFLAGS) -fPIC" CXX="$(TARGET_CXX)" CC="$(TARGET_CC)" AR=$(TARGET_AR) libs
endef
define Build/InstallDev
include $(TOPDIR)/rules.mk
PKG_NAME:=postgresql
-PKG_VERSION:=14.6
+PKG_VERSION:=15.1
PKG_RELEASE:=1
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_LICENSE:=PostgreSQL
http://ftp.postgresql.org/pub/source/v$(PKG_VERSION) \
ftp://ftp.postgresql.org/pub/source/v$(PKG_VERSION)
-PKG_HASH:=508840fc1809d39ab72274d5f137dabb9fd7fb4f933da4168aeebb20069edf22
+PKG_HASH:=64fdf23d734afad0dfe4077daca96ac51dcd697e68ae2d3d4ca6c45cb14e21ae
PKG_USE_MIPS16:=0
PKG_FIXUP:=autoreconf
--- a/src/port/Makefile
+++ b/src/port/Makefile
-@@ -84,6 +84,7 @@ uninstall:
+@@ -83,6 +83,7 @@ uninstall:
libpgport.a: $(OBJS)
rm -f $@
$(AR) $(AROPT) $@ $^
+ $(RANLIB) libpgport.a
- # thread.o and thread_shlib.o need PTHREAD_CFLAGS (but thread_srv.o does not)
- thread.o: CFLAGS+=$(PTHREAD_CFLAGS)
+ # getaddrinfo.o and getaddrinfo_shlib.o need PTHREAD_CFLAGS (but getaddrinfo_srv.o does not)
+ getaddrinfo.o: CFLAGS+=$(PTHREAD_CFLAGS)
--- /dev/null
+--- a/src/bin/pg_ctl/pg_ctl.c
++++ b/src/bin/pg_ctl/pg_ctl.c
+@@ -12,9 +12,11 @@
+ #include "postgres_fe.h"
+
+ #include <fcntl.h>
++#include <pwd.h>
+ #include <signal.h>
+ #include <time.h>
+ #include <sys/stat.h>
++#include <sys/types.h>
+ #include <sys/wait.h>
+ #include <unistd.h>
+
+++ /dev/null
---- a/src/Makefile.shlib
-+++ b/src/Makefile.shlib
-@@ -391,14 +391,27 @@ endif # PORTNAME == cygwin || PORTNAME =
-
-
- %.pc: $(MAKEFILE_LIST)
-- echo 'Name: lib$(NAME)' >$@
-+ echo 'prefix=$(prefix)' >$@
-+ echo 'exec_prefix=$(exec_prefix)' >>$@
-+ifeq ($(patsubst $(prefix)/%,,$(includedir)),)
-+ echo 'includedir=$${prefix}/$(patsubst $(prefix)/%,%,$(includedir))' >>$@
-+else
-+ echo 'includedir=$(includedir)' >>$@
-+endif
-+ifeq ($(patsubst $(exec_prefix)/%,,$(libdir)),)
-+ echo 'libdir=$${exec_prefix}/$(patsubst $(exec_prefix)/%,%,$(libdir))' >>$@
-+else
-+ echo 'libdir=$(libdir)' >>$@
-+endif
-+ echo >>$@
-+ echo 'Name: lib$(NAME)' >>$@
- echo 'Description: PostgreSQL lib$(NAME) library' >>$@
- echo 'Url: $(PACKAGE_URL)' >>$@
- echo 'Version: $(VERSION)' >>$@
- echo 'Requires: ' >>$@
- echo 'Requires.private: $(PKG_CONFIG_REQUIRES_PRIVATE)' >>$@
-- echo 'Cflags: -I$(includedir)' >>$@
-- echo 'Libs: -L$(libdir) -l$(NAME)' >>$@
-+ echo 'Cflags: -I$${includedir}' >>$@
-+ echo 'Libs: -L$${libdir} -l$(NAME)' >>$@
- # Record -L flags that the user might have passed in to the PostgreSQL
- # build to locate third-party libraries (e.g., ldap, ssl). Filter out
- # those that point inside the build or source tree. Use sort to
--- a/configure.ac
+++ b/configure.ac
-@@ -2156,9 +2156,9 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
+@@ -2236,9 +2236,9 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
# flags. If not, check if adding -march=armv8-a+crc flag helps.
# CFLAGS_ARMV8_CRC32C is set if the extra flag is required.
PGAC_ARMV8_CRC32C_INTRINSICS([])
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
-@@ -94,6 +94,7 @@ static char *event_source = NULL;
+@@ -96,6 +96,7 @@ static char *event_source = NULL;
static char *register_servicename = "PostgreSQL"; /* FIXME: + version ID? */
static char *register_username = NULL;
static char *register_password = NULL;
static char *argv0 = NULL;
static bool allow_core_files = false;
static time_t start_time;
-@@ -2081,6 +2082,9 @@ do_help(void)
+@@ -2086,6 +2087,9 @@ do_help(void)
#endif
printf(_(" -s, --silent only print errors, no informational messages\n"));
printf(_(" -t, --timeout=SECS seconds to wait when using -w option\n"));
printf(_(" -V, --version output version information, then exit\n"));
printf(_(" -w, --wait wait until operation completes (default)\n"));
printf(_(" -W, --no-wait do not wait until operation completes\n"));
-@@ -2293,6 +2297,7 @@ main(int argc, char **argv)
+@@ -2298,6 +2302,7 @@ main(int argc, char **argv)
{"options", required_argument, NULL, 'o'},
{"silent", no_argument, NULL, 's'},
{"timeout", required_argument, NULL, 't'},
{"core-files", no_argument, NULL, 'c'},
{"wait", no_argument, NULL, 'w'},
{"no-wait", no_argument, NULL, 'W'},
-@@ -2333,20 +2338,6 @@ main(int argc, char **argv)
+@@ -2338,20 +2343,6 @@ main(int argc, char **argv)
}
}
env_wait = getenv("PGCTLTIMEOUT");
if (env_wait != NULL)
-@@ -2432,11 +2423,15 @@ main(int argc, char **argv)
+@@ -2437,11 +2428,15 @@ main(int argc, char **argv)
wait_seconds_arg = true;
break;
case 'U':
break;
case 'w':
do_wait = true;
-@@ -2518,6 +2513,41 @@ main(int argc, char **argv)
+@@ -2523,6 +2518,41 @@ main(int argc, char **argv)
exit(1);
}
include $(TOPDIR)/rules.mk
PKG_NAME:=sbc
-PKG_VERSION:=1.5
+PKG_VERSION:=2.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/bluetooth/
-PKG_HASH:=0cbad69823a99e8421fe0700e8cf9eeb8fa0c1ad28e8dbc2182b3353507931d2
+PKG_HASH:=8f12368e1dbbf55e14536520473cfb338c84b392939cc9b64298360fd4a07992
PKG_LICENSE:=LGPL-2.1-or-later
PKG_LICENSE_FILES:=COPYING.LIB
+++ /dev/null
---- a/sbc/sbc_primitives.c
-+++ b/sbc/sbc_primitives.c
-@@ -593,7 +593,9 @@ static int sbc_calc_scalefactors_j(
-
- static void sbc_init_primitives_x86(struct sbc_encoder_state *state)
- {
-+#ifdef __x86__
- __builtin_cpu_init();
-+#endif
-
- #ifdef SBC_BUILD_WITH_MMX_SUPPORT
- if (__builtin_cpu_supports("mmx"))
PKG_NAME:=tiff
PKG_VERSION:=4.4.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://download.osgeo.org/libtiff
-Djpeg12=OFF \
-Dcxx=OFF
-TARGET_CFLAGS += $(TARGET_CPPFLAGS)
-
define Build/InstallDev
$(call Build/InstallDev/cmake,$(1))
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libtiff-4.pc
--- /dev/null
+From 8fe3735942ea1d90d8cef843b55b3efe8ab6feaf Mon Sep 17 00:00:00 2001
+From: Su_Laus <sulau@freenet.de>
+Date: Mon, 15 Aug 2022 22:11:03 +0200
+Subject: [PATCH] =?UTF-8?q?According=20to=20Richard=20Nolde=20https://gitl?=
+ =?UTF-8?q?ab.com/libtiff/libtiff/-/issues/401#note=5F877637400=20the=20ti?=
+ =?UTF-8?q?ffcrop=20option=20=E2=80=9E-S=E2=80=9C=20is=20also=20mutually?=
+ =?UTF-8?q?=20exclusive=20to=20the=20other=20crop=20options=20(-X|-Y),=20-?=
+ =?UTF-8?q?Z=20and=20-z.?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is now checked and ends tiffcrop if those arguments are not mutually exclusive.
+
+This MR will fix the following tiffcrop issues: #349, #414, #422, #423, #424
+---
+ tools/tiffcrop.c | 31 ++++++++++++++++---------------
+ 1 file changed, 16 insertions(+), 15 deletions(-)
+
+--- a/tools/tiffcrop.c
++++ b/tools/tiffcrop.c
+@@ -108,12 +108,12 @@
+ * lower level, scanline level routines. Debug reports a limited set
+ * of messages to monitor progress without enabling dump logs.
+ *
+- * Note: The (-X|-Y), -Z and -z options are mutually exclusive.
++ * Note: The (-X|-Y), -Z, -z and -S options are mutually exclusive.
+ * In no case should the options be applied to a given selection successively.
+ */
+
+-static char tiffcrop_version_id[] = "2.5";
+-static char tiffcrop_rev_date[] = "02-09-2022";
++static char tiffcrop_version_id[] = "2.5.1";
++static char tiffcrop_rev_date[] = "15-08-2022";
+
+ #include "tif_config.h"
+ #include "libport.h"
+@@ -173,12 +173,12 @@ static char tiffcrop_rev_date[] = "02-
+ #define ROTATECW_270 32
+ #define ROTATE_ANY (ROTATECW_90 | ROTATECW_180 | ROTATECW_270)
+
+-#define CROP_NONE 0
+-#define CROP_MARGINS 1
+-#define CROP_WIDTH 2
+-#define CROP_LENGTH 4
+-#define CROP_ZONES 8
+-#define CROP_REGIONS 16
++#define CROP_NONE 0 /* "-S" -> Page_MODE_ROWSCOLS and page->rows/->cols != 0 */
++#define CROP_MARGINS 1 /* "-m" */
++#define CROP_WIDTH 2 /* "-X" */
++#define CROP_LENGTH 4 /* "-Y" */
++#define CROP_ZONES 8 /* "-Z" */
++#define CROP_REGIONS 16 /* "-z" */
+ #define CROP_ROTATE 32
+ #define CROP_MIRROR 64
+ #define CROP_INVERT 128
+@@ -316,7 +316,7 @@ struct crop_mask {
+ #define PAGE_MODE_RESOLUTION 1
+ #define PAGE_MODE_PAPERSIZE 2
+ #define PAGE_MODE_MARGINS 4
+-#define PAGE_MODE_ROWSCOLS 8
++#define PAGE_MODE_ROWSCOLS 8 /* for -S option */
+
+ #define INVERT_DATA_ONLY 10
+ #define INVERT_DATA_AND_TAG 11
+@@ -781,7 +781,7 @@ static const char usage_info[] =
+ " The four debug/dump options are independent, though it makes little sense to\n"
+ " specify a dump file without specifying a detail level.\n"
+ "\n"
+-"Note: The (-X|-Y), -Z and -z options are mutually exclusive.\n"
++"Note: The (-X|-Y), -Z, -z and -S options are mutually exclusive.\n"
+ " In no case should the options be applied to a given selection successively.\n"
+ "\n"
+ ;
+@@ -2131,13 +2131,14 @@ void process_command_opts (int argc, ch
+ /*NOTREACHED*/
+ }
+ }
+- /*-- Check for not allowed combinations (e.g. -X, -Y and -Z and -z are mutually exclusive) --*/
+- char XY, Z, R;
++ /*-- Check for not allowed combinations (e.g. -X, -Y and -Z, -z and -S are mutually exclusive) --*/
++ char XY, Z, R, S;
+ XY = ((crop_data->crop_mode & CROP_WIDTH) || (crop_data->crop_mode & CROP_LENGTH));
+ Z = (crop_data->crop_mode & CROP_ZONES);
+ R = (crop_data->crop_mode & CROP_REGIONS);
+- if ((XY && Z) || (XY && R) || (Z && R)) {
+- TIFFError("tiffcrop input error", "The crop options(-X|-Y), -Z and -z are mutually exclusive.->Exit");
++ S = (page->mode & PAGE_MODE_ROWSCOLS);
++ if ((XY && Z) || (XY && R) || (XY && S) || (Z && R) || (Z && S) || (R && S)) {
++ TIFFError("tiffcrop input error", "The crop options(-X|-Y), -Z, -z and -S are mutually exclusive.->Exit");
+ exit(EXIT_FAILURE);
+ }
+ } /* end process_command_opts */
--- /dev/null
+From bad48e90b410df32172006c7876da449ba62cdba Mon Sep 17 00:00:00 2001
+From: Su_Laus <sulau@freenet.de>
+Date: Sat, 20 Aug 2022 23:35:26 +0200
+Subject: [PATCH] tiffcrop -S option: Make decision simpler.
+
+---
+ tools/tiffcrop.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/tools/tiffcrop.c
++++ b/tools/tiffcrop.c
+@@ -2133,11 +2133,11 @@ void process_command_opts (int argc, ch
+ }
+ /*-- Check for not allowed combinations (e.g. -X, -Y and -Z, -z and -S are mutually exclusive) --*/
+ char XY, Z, R, S;
+- XY = ((crop_data->crop_mode & CROP_WIDTH) || (crop_data->crop_mode & CROP_LENGTH));
+- Z = (crop_data->crop_mode & CROP_ZONES);
+- R = (crop_data->crop_mode & CROP_REGIONS);
+- S = (page->mode & PAGE_MODE_ROWSCOLS);
+- if ((XY && Z) || (XY && R) || (XY && S) || (Z && R) || (Z && S) || (R && S)) {
++ XY = ((crop_data->crop_mode & CROP_WIDTH) || (crop_data->crop_mode & CROP_LENGTH)) ? 1 : 0;
++ Z = (crop_data->crop_mode & CROP_ZONES) ? 1 : 0;
++ R = (crop_data->crop_mode & CROP_REGIONS) ? 1 : 0;
++ S = (page->mode & PAGE_MODE_ROWSCOLS) ? 1 : 0;
++ if (XY + Z + R + S > 1) {
+ TIFFError("tiffcrop input error", "The crop options(-X|-Y), -Z, -z and -S are mutually exclusive.->Exit");
+ exit(EXIT_FAILURE);
+ }
PKG_NAME:=alpine
PKG_VERSION:=2.25
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://alpine.x10host.com/alpine/release/src
+PKG_SOURCE_URL:=https://alpineapp.email/alpine/release/src/Old
PKG_HASH:=658a150982f6740bb4128e6dd81188eaa1212ca0bf689b83c2093bb518ecf776
PKG_MAINTAINER:=Antti Seppälä <a.seppala@gmail.com>
PKG_NAME:=opendkim
PKG_VERSION:=2.10.3
-PKG_RELEASE:=5
+PKG_RELEASE:=6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
opendkim-genzone, opendkim-testkey and opendkim-testmsg tools.
endef
-TARGET_CFLAGS += $(FPIC)
-
CONFIGURE_ARGS += \
--without-db \
--without-gcov \
--without-gprof \
--without-lcov \
- --with-milter=$(STAGING_DIR)/usr
+ $(if $(CONFIG_USE_GLIBC),,--without-libbsd) \
+ --with-milter=$(STAGING_DIR)/usr \
+ --with-pic
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib $(1)/usr/sbin
--- /dev/null
+From f45f7d220e44477c2bc7d04735086e3d703f4b7f Mon Sep 17 00:00:00 2001
+From: Guilherme Janczak <guilherme.janczak@yandex.com>
+Date: Mon, 2 May 2022 13:42:48 +0000
+Subject: [PATCH] use transparent strlcpy/strlcat fallback
+
+Using _libbsd-overlay_ through pkg-config allows accessing
+`strlcpy`/`strlcat` by including `<string.h>`, just like on BSD. This
+simplifies compatibility code massively.
+---
+ INSTALL | 10 ++-
+ README | 6 +-
+ configure.ac | 127 +++++++++-------------------------
+ libopendkim/Makefile.am | 4 +-
+ libopendkim/dkim-cache.c | 10 ---
+ libopendkim/dkim-canon.c | 16 +----
+ libopendkim/dkim-keys.c | 16 +----
+ libopendkim/dkim-test.c | 12 +---
+ libopendkim/dkim.c | 46 +++++-------
+ libopendkim/tests/t-test122.c | 10 ---
+ libopendkim/tests/t-test123.c | 10 ---
+ libopendkim/tests/t-test127.c | 10 ---
+ libopendkim/tests/t-test131.c | 10 ---
+ libopendkim/tests/t-test136.c | 10 ---
+ libopendkim/tests/t-test142.c | 10 ---
+ libopendkim/tests/t-test153.c | 10 ---
+ libopendkim/tests/t-test42.c | 10 ---
+ libopendkim/tests/t-test55.c | 10 ---
+ libopendkim/tests/t-test56.c | 10 ---
+ libopendkim/tests/t-test57.c | 10 ---
+ libopendkim/tests/t-test73.c | 12 +---
+ libopendkim/tests/t-test84.c | 10 ---
+ libopendkim/tests/t-test88.c | 10 ---
+ libopendkim/util.c | 12 +---
+ miltertest/Makefile.am | 4 +-
+ miltertest/miltertest.c | 40 ++++-------
+ opendkim/Makefile.am | 4 +-
+ opendkim/config.c | 12 +---
+ opendkim/flowrate.c | 10 ---
+ opendkim/opendkim-ar.c | 12 +---
+ opendkim/opendkim-db.c | 62 +++++++----------
+ opendkim/opendkim-spam.c | 10 ---
+ opendkim/opendkim-testkey.c | 10 ---
+ opendkim/opendkim.c | 106 +++++++++++++---------------
+ opendkim/reputation.c | 14 +---
+ opendkim/stats.c | 10 ---
+ opendkim/test.c | 12 +---
+ opendkim/util.c | 12 +---
+ reprrd/reprrd.c | 13 ++--
+ stats/Makefile.am | 4 +-
+ stats/opendkim-importstats.c | 10 ---
+ 41 files changed, 177 insertions(+), 569 deletions(-)
+
+--- a/INSTALL
++++ b/INSTALL
+@@ -50,7 +50,7 @@ doesn't find it, you will need to specif
+ --with-db-libdir
+ --with-db-lib
+ These provide a finer control over the location of BerkeleyDB
+- include, library path and libary name where the default
++ include, library path and libary name where the default
+ locations of --with-db are not enough.
+
+ --with-domain Specifies the local domain name in use. Used only for
+@@ -129,9 +129,9 @@ doesn't find it, you will need to specif
+ /usr directories will be searched for the required includes
+ and libraries.
+
+---with-unbound Location of the Unbound DNSSEC capable asynchronous resolver
++--with-unbound Location of the Unbound DNSSEC capable asynchronous resolver
+ library and include file.
+-
++
+
+
+ FEATURES
+@@ -210,6 +210,10 @@ Steps to compiling the library and the m
+ system.
+ ./configure
+
++ Note: When creating a package, pass `--without-libbsd` to the configure
++ script. If it fails, the program depends on either of libbsd or libobsd
++ in your system.
++
+ (5) Compile the package.
+ make
+
+--- a/README
++++ b/README
+@@ -59,8 +59,8 @@ o sendmail v8.13.0 (or later), or Postfi
+
+ o Access to a working nameserver (required only for signature verification).
+
+-o On Linux systems, either libbsd (BSD compatibility library) or some other
+- library that provides strlcat() and strlcpy().
++o If `./configure --without-libbsd` fails, either of libbsd or libobsd are
++ required. This happens on glibc, for instance.
+
+ o If you wish to interface the filter with SQL databases, or store statistical
+ information in a database, OpenDBX v1.3.7 or later is required.
+@@ -229,7 +229,7 @@ Other OpenDKIM issues:
+
+ Report any bugs to the email address opendkim-users@lists.opendkim.org or to
+ the sourceforge issue trackers accessible at:
+-
++
+ https://sourceforge.net/p/opendkim/_list/tickets
+
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -2,7 +2,7 @@
+ # Process this file with autoconf to produce a configure script.
+ #
+ # Copyright (c) 2009-2015, The Trusted Domain Project. All rights reserved.
+-#
++#
+
+ #
+ # Setup
+@@ -47,13 +47,13 @@ AC_CONFIG_MACRO_DIR([m4])
+
+ #
+ # Hexadecimal version, for use in generating dkim.h
+-#
++#
+ HEX_VERSION=$(printf %08x $(( ((VERSION_RELEASE << 8 | VERSION_MAJOR_REV) << 8 | VERSION_MINOR_REV) << 8| VERSION_PATCH )))
+ AC_SUBST([HEX_VERSION])
+
+ #
+ # library version, passed to libtool
+-#
++#
+ LIBOPENDKIM_VERSION_INFO=$(printf %d:%d:%d LIBVERSION_CURRENT LIBVERSION_REVISION LIBVERSION_AGE)
+ AC_SUBST([LIBOPENDKIM_VERSION_INFO])
+
+@@ -130,11 +130,11 @@ AC_CHECK_TYPES([useconds_t])
+ # See if libopendkim will need -lresolv
+ #
+ dnscheck='
+-#include "confdefs.h"
++#include "confdefs.h"
+ #include <sys/types.h>
+ #include <netinet/in.h>
+ #include <arpa/nameser.h>
+-#include <resolv.h>
++#include <resolv.h>
+ int main() {
+ res_mkquery (0, 0, 0, 0, 0, 0, 0, 0, 0);
+ dn_expand (0, 0, 0, 0, 0);
+@@ -165,7 +165,7 @@ $dnscheck
+ LIBS="$saved_LIBS"
+ ])
+ AC_SUBST([LIBRESOLV])
+-
++
+ #
+ # Checks for header files
+ #
+@@ -196,78 +196,17 @@ AC_FUNC_REALLOC
+
+ AC_CHECK_FUNCS([dup2 endpwent getcwd gethostname gethostbyname getaddrinfo gethostbyname2 gettimeofday isascii memchr memmove memset regcomp select socket strcasecmp strchr strdup strerror strncasecmp strrchr strstr strtol strtoul strtoull realpath strsep])
+
+-bsdstrl_h_found="no"
+-strl_found="no"
+-libstrl_found="no"
+-strl_h_found="no"
+-
+-AC_CHECK_HEADERS([bsd/string.h], [bsdstrl_h_found="yes"])
+-
+-AC_CHECK_FUNCS([strlcat strlcpy], [strl_found="yes"],
+- [
+- saved_LIBS="$LIBS"
+- LIBS="$outer_LIBS"
+- AC_SEARCH_LIBS([strlcat],
+- [bsd strl],
+- [libstrl_found="yes"],
+- [strl_found="no"])
+- AC_SEARCH_LIBS([strlcpy],
+- [bsd strl],
+- [libstrl_found="yes"],
+- [strl_found="no"])
+- STRL_LIBS="$LIBS"
+- LIBS="$saved_LIBS"
+- ])
+-
+-if test x"$libstrl_found" = x"yes"
+-then
+- LIBS="$LIBS $STRL_LIBS"
+-fi
+-
+-# we need something above to have worked
+-if test x"$strl_found" != x"yes" -a x"$libstrl_found" != x"yes"
+-then
+- AC_MSG_ERROR(no strlcpy/strlcat found)
+-fi
+-
+-AC_CHECK_HEADERS([strl.h], [strl_h_found="yes"])
+-if test x"$strl_h_found" != x"yes"
+-then
+- strldirs="/usr/local/include /usr/include"
+-
+- for d in $strldirs
+- do
+- AC_MSG_CHECKING([for strl.h in $d/strl])
+- if test -f $d/strl/strl.h
+- then
+- unset ac_cv_header_strl_h
+- saved_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS -I$d/strl"
+- AC_CHECK_HEADERS([strl.h], [strl_h_found="yes"])
+- CPPFLAGS="$saved_CPPFLAGS"
+- fi
+-
+- if test x"$strl_h_found" = x"yes"
+- then
+- CPPFLAGS="$CPPFLAGS -I$d/strl"
+- break
+- fi
+- done
+-fi
+-
+-# we need to include <strl.h> if an installed strl.h was found and no
+-# bsd/string.h was found
+-if test x"$strl_h_found" = x"yes" -a x"$bsdstrl_h_found" = x"no"
+-then
+- AC_DEFINE([USE_STRL_H], 1,
+- [Define to 1 if you need to include <strl.h> to get the `strlcat()' and `strlcpy()' functions.])
+-fi
+-
+-if test x"$bsdstrl_h_found" = x"yes"
+-then
+- AC_DEFINE([USE_BSD_H], 1,
+- [Define to 1 if you need to include <bsd/string.h> to get the `strlcat()' and `strlcpy()' functions.])
+-fi
++AC_ARG_WITH([libbsd], AS_HELP_STRING([--without-libbsd],
++ [Error when BSD functions are not found]))
++AC_CHECK_FUNCS([strlcpy strlcat],, [LIBBSD_NEEDED=yes])
++AS_IF([test "x$LIBBSD_NEEDED" = "xyes"], [
++ AS_IF([test "x$with_libbsd" = "xno"], [
++ AC_MSG_ERROR([BSD functions not found and --without-libbsd was used])
++ ])
++ PKG_CHECK_MODULES([LIBBSD], [libbsd-overlay],,
++ [AC_MSG_ERROR([BSD functions not found,
++ libbsd is required])])
++])
+
+ #
+ # Checks for structure members
+@@ -446,7 +385,7 @@ fi
+
+ #
+ # test coverage/profiling stuff
+-#
++#
+ AC_ARG_ENABLE([codecoverage],
+ AS_HELP_STRING([--enable-codecoverage],
+ [include code coverage/profiling code]))
+@@ -574,7 +513,7 @@ AM_CONDITIONAL(GPROF_FILENAMES, test x"$
+
+ #
+ # opendkim
+-#
++#
+ AC_ARG_ENABLE([filter],
+ AS_HELP_STRING([--disable-filter],
+ [do not compile the opendkim filter]),
+@@ -732,7 +671,7 @@ then
+
+ #if GNUTLS_VERSION_NUMBER < 0x020b07
+ # error GnuTLS 2.11.7 or later required
+- #endif
++ #endif
+ int main()
+ {
+ return 0;
+@@ -1009,7 +948,7 @@ AC_SUBST(LIBMILTER_LIBS)
+
+ #
+ # librrd
+-#
++#
+ AC_ARG_WITH([librrd],
+ AS_HELP_STRING([--with-librrd],
+ [location of librrd includes and library]),
+@@ -1023,7 +962,7 @@ fi
+
+ if test \( x"$librrdpath" = x"auto" -o x"$librrdpath" = x"yes" \) -a x"$PKG_CONFIG" != x""
+ then
+- PKG_CHECK_MODULES([RRDTOOL], [librrd],
++ PKG_CHECK_MODULES([RRDTOOL], [librrd],
+ [
+ librrd_found="yes"
+ ],
+@@ -1085,7 +1024,7 @@ AC_SUBST(RRDTOOL_LIBS)
+
+ #
+ # libmemcached
+-#
++#
+ AC_ARG_WITH([libmemcached],
+ AS_HELP_STRING([--with-libmemcached],
+ [location of libmemcached includes and library]),
+@@ -1095,7 +1034,7 @@ libmemcache_found="no"
+
+ if test \( x"$libmcdpath" = x"auto" -o x"$libmcdpath" = x"yes" \) -a x"$PKG_CONFIG" != x""
+ then
+- PKG_CHECK_MODULES([LIBMEMCACHED], [libmemcached >= 0.36],
++ PKG_CHECK_MODULES([LIBMEMCACHED], [libmemcached >= 0.36],
+ [
+ libmemcache_found="yes"
+ LIBMEMCACHED_INCDIRS="$LIBMEMCACHED_CFLAGS"
+@@ -1159,7 +1098,7 @@ main()
+ return 0;
+ }
+ ])],
+- AC_MSG_RESULT([ok]),
++ AC_MSG_RESULT([ok]),
+ AC_MSG_ERROR([libmemcached version 0.36 or later required]))
+ fi
+
+@@ -1383,7 +1322,7 @@ if test \( x"$trepath" = x"auto" -o x"$
+ then
+ PKG_CHECK_MODULES([LIBTRE], [tre >= 0.8.0], [tre_found="yes"],
+ [
+- PKG_CHECK_MODULES([LIBTRE], [tre >= 0.7.5],
++ PKG_CHECK_MODULES([LIBTRE], [tre >= 0.7.5],
+ [
+ tre_found="yes"
+ AC_DEFINE([TRE_PRE_080], 1,
+@@ -1626,7 +1565,7 @@ main()
+ return 0;
+ }
+ ])],
+- AC_MSG_RESULT([ok]),
++ AC_MSG_RESULT([ok]),
+ AC_MSG_ERROR([Lua version 5.1 or later required]))
+ CPPFLAGS="$saved_CPPFLAGS"
+ AC_DEFINE([USE_LUA], 1, [support for Lua scripting])
+@@ -1836,7 +1775,7 @@ main()
+ return 0;
+ }
+ ])],
+- AC_MSG_RESULT([ok]),
++ AC_MSG_RESULT([ok]),
+ AC_MSG_ERROR([OpenLDAP version 2.1.3 or later required]))
+ CPPFLAGS="$saved_CPPFLAGS"
+ AC_DEFINE([USE_LDAP], 1, [OpenLDAP support for datasets enabled])
+@@ -2086,7 +2025,7 @@ fi
+
+ #
+ # reputation requires libjansson
+-#
++#
+
+ AC_ARG_WITH([libjansson],
+ AS_HELP_STRING([--with-libjansson],
+@@ -2418,7 +2357,7 @@ AC_DEFINE_UNQUOTED([LIBOPENDKIM_FEATURE_
+
+ #
+ # setup for testing
+-#
++#
+
+ AC_ARG_ENABLE([live-testing],
+ AS_HELP_STRING([--disable-live-testing],
+@@ -2428,7 +2367,7 @@ AM_CONDITIONAL(LIVE_TESTS, test x"$live_
+
+ #
+ # specify test socket
+-#
++#
+
+ AC_ARG_WITH([test-socket],
+ AS_HELP_STRING([--with-test-socket],
+@@ -2535,7 +2474,7 @@ AC_SUBST(LIBERL_LIBS)
+
+ CPPFLAGS="$CPPFLAGS -DCONFIG_BASE=\\\"$sysconfdir\\\""
+
+-test "x$prefix" = xNONE && prefix=$ac_default_prefix
++test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ SYSCONFDIR=`eval echo "$sysconfdir"`
+ AC_SUBST([SYSCONFDIR])
+
+@@ -2645,7 +2584,7 @@ AC_OUTPUT([ Makefile
+ miltertest/Makefile
+ opendkim/Makefile opendkim/opendkim.8 opendkim/opendkim-genkey
+ opendkim/opendkim-genkey.8 opendkim/opendkim-genzone.8
+- opendkim/opendkim-lua.3
++ opendkim/opendkim-lua.3
+ opendkim/opendkim-testkey.8 opendkim/opendkim-stats.8
+ opendkim/opendkim-testmsg.8 opendkim/opendkim.conf.5
+ opendkim/opendkim.conf.simple
+--- a/libopendkim/Makefile.am
++++ b/libopendkim/Makefile.am
+@@ -9,9 +9,9 @@ LDADD = ./libopendkim.la
+
+ lib_LTLIBRARIES = libopendkim.la
+ libopendkim_la_SOURCES = base32.c base64.c dkim-atps.c dkim-cache.c dkim-canon.c dkim-dns.c dkim-keys.c dkim-mailparse.c dkim-report.c dkim-tables.c dkim-test.c dkim-util.c dkim.c util.c base64.h dkim-cache.h dkim-canon.h dkim-dns.h dkim-internal.h dkim-keys.h dkim-mailparse.h dkim-report.h dkim-tables.h dkim-test.h dkim-types.h dkim-util.h dkim.h util.h
+-libopendkim_la_CPPFLAGS = $(LIBCRYPTO_CPPFLAGS)
++libopendkim_la_CPPFLAGS = $(LIBCRYPTO_CPPFLAGS) $(LIBBSD_CFLAGS)
+ libopendkim_la_CFLAGS = $(LIBCRYPTO_INCDIRS) $(LIBOPENDKIM_INC) $(COV_CFLAGS)
+-libopendkim_la_LDFLAGS = -no-undefined $(LIBCRYPTO_LIBDIRS) $(COV_LDFLAGS) -version-info $(LIBOPENDKIM_VERSION_INFO)
++libopendkim_la_LDFLAGS = -no-undefined $(LIBCRYPTO_LIBDIRS) $(COV_LDFLAGS) -version-info $(LIBOPENDKIM_VERSION_INFO) $(LIBBSD_LIBS)
+ libopendkim_la_LIBADD = $(LIBOPENDKIM_LIBS) $(LIBCRYPTO_LDADD) $(COV_LIBADD)
+ if !ALL_SYMBOLS
+ libopendkim_la_DEPENDENCIES = symbols.map
+--- a/libopendkim/dkim-cache.c
++++ b/libopendkim/dkim-cache.c
+@@ -29,16 +29,6 @@
+ #include "dkim-internal.h"
+ #include "dkim-cache.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* limits, macros, etc. */
+ #define BUFRSZ 1024
+ #define DB_MODE (S_IRUSR|S_IWUSR)
+--- a/libopendkim/dkim-canon.c
++++ b/libopendkim/dkim-canon.c
+@@ -45,16 +45,6 @@
+ #include "dkim-util.h"
+ #include "util.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* definitions */
+ #define CRLF (u_char *) "\r\n"
+ #define SP (u_char *) " "
+@@ -379,7 +369,7 @@ dkim_canon_header_string(struct dkim_dst
+
+ tmp = tmpbuf;
+ }
+-
++
+ if (*p == ':')
+ {
+ p++;
+@@ -681,7 +671,7 @@ dkim_canon_init(DKIM *dkim, _Bool tmp, _
+ DKIM_FREE(dkim, sha);
+ return DKIM_STAT_INTERNAL;
+ }
+-
++
+ if (tmp)
+ {
+ status = dkim_tmpfile(dkim, &fd, keep);
+@@ -1512,7 +1502,7 @@ dkim_canon_signature(DKIM *dkim, struct
+ tmphdr.hdr_next = NULL;
+ if (cur->canon_canon == DKIM_CANON_RELAXED)
+ dkim_lowerhdr(tmphdr.hdr_text);
+-
++
+ /* canonicalize the signature */
+ status = dkim_canon_header(dkim, cur, &tmphdr, FALSE);
+ if (status != DKIM_STAT_OK)
+--- a/libopendkim/dkim-keys.c
++++ b/libopendkim/dkim-keys.c
+@@ -29,16 +29,6 @@
+ #include "dkim-test.h"
+ #include "util.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* prototypes */
+ extern void dkim_error __P((DKIM *, const char *, ...));
+
+@@ -156,7 +146,7 @@ dkim_get_key_dns(DKIM *dkim, DKIM_SIGINF
+ dkim_error(dkim, "'%s' query failed", qname);
+ return DKIM_STAT_KEYFAIL;
+ }
+-
++
+ if (lib->dkiml_dns_callback == NULL)
+ {
+ timeout.tv_sec = dkim->dkim_timeout;
+@@ -240,7 +230,7 @@ dkim_get_key_dns(DKIM *dkim, DKIM_SIGINF
+ /* copy it first */
+ (void) dn_expand((unsigned char *) &ansbuf, eom, cp,
+ (char *) qname, sizeof qname);
+-
++
+ if ((n = dn_skipname(cp, eom)) < 0)
+ {
+ dkim_error(dkim, "'%s' reply corrupt", qname);
+@@ -420,7 +410,7 @@ dkim_get_key_dns(DKIM *dkim, DKIM_SIGINF
+ ** and must be set prior to use of this function. Failing to do
+ ** so will cause this function to return DKIM_STAT_KEYFAIL every time.
+ ** The file should contain lines of the form:
+-**
++**
+ ** <selector>._domainkey.<domain> <space> key-data
+ **
+ ** Case matching on the left is case-sensitive, but libopendkim already
+--- a/libopendkim/dkim-test.c
++++ b/libopendkim/dkim-test.c
+@@ -36,16 +36,6 @@
+ #include "dkim-util.h"
+ #include "dkim-test.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* definitions */
+ #define TESTTTL 300
+ #define MAXPACKET 8192
+@@ -443,7 +433,7 @@ dkim_test_key(DKIM_LIB *lib, char *selec
+ }
+ return -1;
+ }
+-
++
+ rsa->rsa_keysize = RSA_size(rsa->rsa_rsa);
+ rsa->rsa_pad = RSA_PKCS1_PADDING;
+
+--- a/libopendkim/dkim.c
++++ b/libopendkim/dkim.c
+@@ -91,16 +91,6 @@
+ #include "util.h"
+ #include "base64.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* prototypes */
+ void dkim_error __P((DKIM *, const char *, ...));
+
+@@ -264,7 +254,7 @@ const u_char *dkim_required_signhdrs[] =
+ /* ========================= PRIVATE SECTION ========================= */
+
+ /*
+-** DKIM_SET_FREE -- destroy a DKIM_SET
++** DKIM_SET_FREE -- destroy a DKIM_SET
+ **
+ ** Parameters:
+ ** dkim -- DKIM context
+@@ -744,7 +734,7 @@ dkim_process_set(DKIM *dkim, dkim_set_t
+ }
+ }
+ break;
+-
++
+ case DKIM_SETTYPE_SIGNATURE:
+ /* make sure required stuff is here */
+ if (dkim_param_get(set, (u_char *) "s") == NULL ||
+@@ -881,7 +871,7 @@ dkim_process_set(DKIM *dkim, dkim_set_t
+ }
+
+ break;
+-
++
+ default:
+ assert(0);
+ }
+@@ -1081,7 +1071,7 @@ dkim_privkey_load(DKIM *dkim)
+ }
+ #endif /* USE_GNUTLS */
+
+-#ifdef USE_GNUTLS
++#ifdef USE_GNUTLS
+ status = gnutls_x509_privkey_init(&rsa->rsa_key);
+ if (status != GNUTLS_E_SUCCESS)
+ {
+@@ -2386,7 +2376,7 @@ dkim_gensighdr(DKIM *dkim, DKIM_SIGINFO
+ format = "v=%s;%sa=%s;%sc=%s/%s;%sd=%s;%ss=%s;%st=%llu";
+ else if (sizeof(sig->sig_timestamp) == sizeof(unsigned long))
+ format = "v=%s;%sa=%s;%sc=%s/%s;%sd=%s;%ss=%s;%st=%lu";
+- else
++ else
+ format = "v=%s;%sa=%s;%sc=%s/%s;%sd=%s;%ss=%s;%st=%u";
+
+ (void) dkim_dstring_printf(dstr, format,
+@@ -3141,7 +3131,7 @@ dkim_headercheck(DKIM *dkim)
+
+ /*
+ ** DKIM_EOH_SIGN -- declare end-of-headers; prepare for signing
+-**
++**
+ ** Parameters:
+ ** dkim -- DKIM handle
+ **
+@@ -3289,7 +3279,7 @@ dkim_eoh_sign(DKIM *dkim)
+
+ /*
+ ** DKIM_EOH_VERIFY -- declare end-of-headers; set up verification
+-**
++**
+ ** Parameters:
+ ** dkim -- DKIM handle
+ **
+@@ -4273,7 +4263,7 @@ dkim_init(void *(*caller_mallocf)(void *
+ libhandle->dkiml_skipre = FALSE;
+ libhandle->dkiml_malloc = caller_mallocf;
+ libhandle->dkiml_free = caller_freef;
+- strlcpy((char *) libhandle->dkiml_tmpdir, (char *) td,
++ strlcpy((char *) libhandle->dkiml_tmpdir, (char *) td,
+ sizeof libhandle->dkiml_tmpdir);
+ libhandle->dkiml_flags = DKIM_LIBFLAGS_DEFAULT;
+ libhandle->dkiml_timeout = DEFTIMEOUT;
+@@ -4305,7 +4295,7 @@ dkim_init(void *(*caller_mallocf)(void *
+ libhandle->dkiml_dns_start = dkim_res_query;
+ libhandle->dkiml_dns_cancel = dkim_res_cancel;
+ libhandle->dkiml_dns_waitreply = dkim_res_waitreply;
+-
++
+ #define FEATURE_INDEX(x) ((x) / (8 * sizeof(u_int)))
+ #define FEATURE_OFFSET(x) ((x) % (8 * sizeof(u_int)))
+ #define FEATURE_ADD(lib,x) (lib)->dkiml_flist[FEATURE_INDEX((x))] |= (1 << FEATURE_OFFSET(x))
+@@ -4369,7 +4359,7 @@ dkim_close(DKIM_LIB *lib)
+
+ if (lib->dkiml_skipre)
+ (void) regfree(&lib->dkiml_skiphdrre);
+-
++
+ if (lib->dkiml_signre)
+ (void) regfree(&lib->dkiml_hdrre);
+
+@@ -4386,7 +4376,7 @@ dkim_close(DKIM_LIB *lib)
+
+ if (lib->dkiml_dns_close != NULL && lib->dkiml_dns_service != NULL)
+ lib->dkiml_dns_close(lib->dkiml_dns_service);
+-
++
+ free((void *) lib);
+
+ #ifndef USE_GNUTLS
+@@ -6206,7 +6196,7 @@ dkim_header(DKIM *dkim, u_char *hdr, siz
+
+ /*
+ ** DKIM_EOH -- declare end-of-headers
+-**
++**
+ ** Parameters:
+ ** dkim -- DKIM handle
+ **
+@@ -6449,7 +6439,7 @@ dkim_chunk(DKIM *dkim, u_char *buf, size
+ dkim->dkim_chunksm = 0;
+ }
+ break;
+-
++
+ case 2:
+ if (DKIM_ISLWSP(*p))
+ {
+@@ -6479,7 +6469,7 @@ dkim_chunk(DKIM *dkim, u_char *buf, size
+ break;
+ }
+ /* FALLTHROUGH */
+-
++
+ case 3:
+ if (*p == '\n')
+ {
+@@ -6898,7 +6888,7 @@ dkim_getsighdr_d(DKIM *dkim, size_t init
+ n);
+ x += n;
+ len += n;
+-
++
+ }
+ }
+ else
+@@ -7015,7 +7005,7 @@ dkim_sig_hdrsigned(DKIM_SIGINFO *sig, u_
+ if (c1 == NULL)
+ {
+ start = hdrlist;
+- len = c2 - start;
++ len = c2 - start;
+ }
+ else
+ {
+@@ -7087,7 +7077,7 @@ dkim_sig_setdnssec(DKIM_SIGINFO *sig, in
+ {
+ assert(sig != NULL);
+
+- switch (dnssec_status)
++ switch (dnssec_status)
+ {
+ case DKIM_DNSSEC_BOGUS:
+ case DKIM_DNSSEC_INSECURE:
+@@ -8923,7 +8913,7 @@ dkim_add_querymethod(DKIM *dkim, const c
+ strlen(type) + 1);
+ return DKIM_STAT_NORESOURCE;
+ }
+-
++
+ if (options != NULL)
+ {
+ q->qm_options = dkim_strdup(dkim, tmp, 0);
+--- a/libopendkim/tests/t-test122.c
++++ b/libopendkim/tests/t-test122.c
+@@ -22,16 +22,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define GIBBERISHLEN (sizeof(GIBBERISH) - 1)
+--- a/libopendkim/tests/t-test123.c
++++ b/libopendkim/tests/t-test123.c
+@@ -22,16 +22,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define GIBBERISHLEN (sizeof(GIBBERISH) - 1)
+--- a/libopendkim/tests/t-test127.c
++++ b/libopendkim/tests/t-test127.c
+@@ -22,16 +22,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define MAXMSGSIZE 16384
+--- a/libopendkim/tests/t-test131.c
++++ b/libopendkim/tests/t-test131.c
+@@ -23,16 +23,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define NULLBH "bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
+--- a/libopendkim/tests/t-test136.c
++++ b/libopendkim/tests/t-test136.c
+@@ -22,16 +22,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define SIG2 "v=1; a=rsa-sha1; c=relaxed/relaxed; d=example.com; s=test;\r\n\tt=1172620939; bh=Z9ONHHsBrKN0pbfrOu025VfbdR4=;\r\n\th=Received:Received:Received:From:To:Date:Subject:Message-ID;\r\n\tb=Jf+j2RDZRkpIF1KaL5ByhHFPWj5RMeX5764IVlwIc11equjQND51K9FfL5pyjXvwj\r\n\t FoFPW0PGJb3liej6iDDEHgYpXR4p5qqlGx/C1Q9gf/MQN/Xlkv6ZXgR38QnWAfZxh5\r\n\t N1f5xUg+SJb5yBDoXklG62IRdia1Hq9MuiGumrGM="
+--- a/libopendkim/tests/t-test142.c
++++ b/libopendkim/tests/t-test142.c
+@@ -22,16 +22,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+ #define MAXMSGSIZE 16384
+
+--- a/libopendkim/tests/t-test153.c
++++ b/libopendkim/tests/t-test153.c
+@@ -18,16 +18,6 @@
+ # include <gnutls/gnutls.h>
+ #endif /* USE_GNUTLS */
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* libopendkim includes */
+ #include "../dkim.h"
+ #include "t-testdata.h"
+--- a/libopendkim/tests/t-test42.c
++++ b/libopendkim/tests/t-test42.c
+@@ -26,16 +26,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define SIG2 "v=1; a=rsa-sha256; c=simple/simple; d=example.com; s=test;\r\n\tt=1172620939; bh=yHBAX+3IwxTZIynBuB/5tlsBInJq9n8qz5fgAycHi80=;\r\n\th=Received:Received:Received:From:To:Date:Subject:Message-ID; b=Y3y\r\n\tVeA3WZdCZl1sGuOZNC3BBRhtGCOExkZdw5xQoGPvSX/q6AC1SAJvOUWOri95AZAUGs0\r\n\t/bIDzzt23ei9jc+rptlavrl/5ijMrl6ShmvkACk6It62KPkJcDpoGfi5AZkrfX1Ou/z\r\n\tqGg5xJX86Kqd7FgNolMg7PbfyWliK2Yb84="
+--- a/libopendkim/tests/t-test55.c
++++ b/libopendkim/tests/t-test55.c
+@@ -22,16 +22,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define GIBBERISHLEN (sizeof(GIBBERISH) - 1)
+--- a/libopendkim/tests/t-test56.c
++++ b/libopendkim/tests/t-test56.c
+@@ -22,16 +22,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define GIBBERISHLEN (sizeof(GIBBERISH) - 1)
+--- a/libopendkim/tests/t-test57.c
++++ b/libopendkim/tests/t-test57.c
+@@ -24,16 +24,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define SIG2 "v=1; a=rsa-sha256; c=relaxed/simple; d=example.com; s=test;\r\n\tt=1172620939; bh=TRy6u0KYixKENCPL95G1Y1uwclQ9rWthX6rFgE7gWb8=;\r\n\th=Received:Received:Received:From:To:Date:Subject:Message-ID;\r\n\tb=aMDMwcz08Na0zYLrEZnUMBUipMh3blE+pWiBSvX+t2ynaDUGTqd27xuR5JddL9y1T\r\n\t 6h0LkUMIcijsPBWa1WWfKL23QceksV75Y1/Tt6gmVi3SdVAoJbbZImrOaAQ3YQAn64\r\n\t dp1vI0Z8gSashYlwy+7gtmVSLAj/fpcAF6yNDPuE="
+--- a/libopendkim/tests/t-test73.c
++++ b/libopendkim/tests/t-test73.c
+@@ -27,16 +27,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define BUFRSZ 1024
+ #define MAXADDRESS 256
+ #define MAXHEADER 4096
+@@ -85,7 +75,7 @@ stub_dns_waitreply(void *srv, void *qh,
+
+ memset(&newhdr, '\0', sizeof newhdr);
+ memset(&dnptrs, '\0', sizeof dnptrs);
+-
++
+ newhdr.qdcount = htons(1);
+ newhdr.ancount = htons(1);
+ newhdr.rcode = NOERROR;
+--- a/libopendkim/tests/t-test84.c
++++ b/libopendkim/tests/t-test84.c
+@@ -26,16 +26,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define SIG1 "v=1; a=rsa-sha256; c=relaxed/simple; d=sendmail.com; s=test; t=1172620939; i=@eng.sendmail.com; bh=yHBAX+3IwxTZIynBuB/5tlsBInJq9n8qz5fgAycHi80=; h=Received:Received:Received:From:To:Date:Subject:Message-ID; b=r5DyHh4oxZcCBcIzpKTnEk6yvWDI9g9DI+UUIwl2ZAcZ6P0BbsOQ8MEjmUdwlZitqoFLa25/Re8/rC5kHasOb3vs0T37vkasoTb1rGR7y/bcMnY4hRkPAyC7NoLoTjneJMTQ/WQYnZe3DJ8lVuDRYvY9BeV2EjH8kiGsa9QttiA="
+--- a/libopendkim/tests/t-test88.c
++++ b/libopendkim/tests/t-test88.c
+@@ -22,16 +22,6 @@
+ #include "../dkim.h"
+ #include "t-testdata.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #define MAXHEADER 4096
+
+ #define MAXMSGSIZE 16384
+--- a/libopendkim/util.c
++++ b/libopendkim/util.c
+@@ -27,16 +27,6 @@
+ #include "dkim-internal.h"
+ #include "util.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #if defined(__RES) && (__RES >= 19940415)
+ # define RES_UNC_T char *
+ #else /* __RES && __RES >= 19940415 */
+@@ -198,7 +188,7 @@ dkim_lowerhdr(unsigned char *str)
+
+ /*
+ ** DKIM_HEXCHAR -- translate a hexadecimal character
+-**
++**
+ ** Parameters:
+ ** c -- character to translate
+ **
+--- a/miltertest/Makefile.am
++++ b/miltertest/Makefile.am
+@@ -10,8 +10,8 @@ if LUA
+ bin_PROGRAMS = miltertest
+
+ miltertest_SOURCES = miltertest.c
+-miltertest_CPPFLAGS = -I$(srcdir)/../libopendkim $(LIBMILTER_INCDIRS) $(LIBLUA_INCDIRS)
+-miltertest_LDFLAGS = ../libopendkim/libopendkim.la $(LIBLUA_LIBDIRS)
++miltertest_CPPFLAGS = -I$(srcdir)/../libopendkim $(LIBMILTER_INCDIRS) $(LIBLUA_INCDIRS) $(LIBBSD_CFLAGS)
++miltertest_LDFLAGS = ../libopendkim/libopendkim.la $(LIBLUA_LIBDIRS) $(LIBBSD_LIBS)
+ miltertest_LDADD = $(LIBLUA_LIBS) $(LIBNSL_LIBS)
+
+ man_MANS = miltertest.8
+--- a/miltertest/miltertest.c
++++ b/miltertest/miltertest.c
+@@ -37,16 +37,6 @@
+ /* libopendkim includes */
+ #include <dkim.h>
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* Lua includes */
+ #include <lua.h>
+ #include <lualib.h>
+@@ -410,7 +400,7 @@ mt_eom_request(struct mt_context *ctx, c
+ ** cmd -- milter command received (returned)
+ ** buf -- where to write data
+ ** buflen -- bytes available at "buf" (updated)
+-**
++**
+ ** Return value:
+ ** TRUE iff successful.
+ */
+@@ -618,7 +608,7 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to option negotiation on fd %d\n",
++ "%s: filter returned status %d to option negotiation on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+
+@@ -679,7 +669,7 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to connection information on fd %d\n",
++ "%s: filter returned status %d to connection information on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+
+@@ -722,7 +712,7 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to HELO on fd %d\n",
++ "%s: filter returned status %d to HELO on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+
+@@ -765,7 +755,7 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to MAIL on fd %d\n",
++ "%s: filter returned status %d to MAIL on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+
+@@ -808,7 +798,7 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to RCPT on fd %d\n",
++ "%s: filter returned status %d to RCPT on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+
+@@ -848,7 +838,7 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to DATA on fd %d\n",
++ "%s: filter returned status %d to DATA on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+
+@@ -894,7 +884,7 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to header on fd %d\n",
++ "%s: filter returned status %d to header on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+
+@@ -933,10 +923,10 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to EOH on fd %d\n",
++ "%s: filter returned status %d to EOH on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+-
++
+ ctx->ctx_state = STATE_DEAD;
+ }
+ }
+@@ -973,10 +963,10 @@ mt_assert_state(struct mt_context *ctx,
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to body on fd %d\n",
++ "%s: filter returned status %d to body on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+-
++
+ ctx->ctx_state = STATE_DEAD;
+ }
+ }
+@@ -1623,7 +1613,7 @@ mt_disconnect(lua_State *l)
+ {
+ _Bool polite = TRUE;
+ int top;
+-
++
+ struct mt_context *ctx;
+
+ assert(l != NULL);
+@@ -1820,7 +1810,7 @@ mt_negotiate(lua_State *l)
+ if (verbose > 0)
+ {
+ fprintf(stdout,
+- "%s: filter returned status %d to option negotiation on fd %d\n",
++ "%s: filter returned status %d to option negotiation on fd %d\n",
+ progname, rcmd, ctx->ctx_fd);
+ }
+
+@@ -3828,7 +3818,7 @@ mt_getheader(lua_State *l)
+
+ /*
+ ** USAGE -- print usage message
+-**
++**
+ ** Parameters:
+ ** Not now. Maybe later.
+ **
+--- a/opendkim/Makefile.am
++++ b/opendkim/Makefile.am
+@@ -25,8 +25,8 @@ sbin_PROGRAMS += opendkim
+ opendkim_SOURCES = opendkim.c opendkim.h opendkim-ar.c opendkim-ar.h opendkim-arf.c opendkim-arf.h opendkim-config.h opendkim-crypto.c opendkim-crypto.h opendkim-db.c opendkim-db.h opendkim-dns.c opendkim-dns.h opendkim-lua.c opendkim-lua.h config.c config.h flowrate.c flowrate.h reputation.c reputation.h stats.c stats.h test.c test.h util.c util.h
+ opendkim_CC = $(PTHREAD_CC)
+ opendkim_CFLAGS = $(PTHREAD_CFLAGS) $(LIBCRYPTO_CFLAGS) $(COV_CFLAGS)
+-opendkim_CPPFLAGS = -I$(srcdir)/../libopendkim $(LIBCRYPTO_CPPFLAGS)
+-opendkim_LDFLAGS = $(LIBCRYPTO_LIBDIRS) $(LIBMILTER_LIBDIRS) $(PTHREAD_CFLAGS) $(COV_LDFLAGS)
++opendkim_CPPFLAGS = -I$(srcdir)/../libopendkim $(LIBCRYPTO_CPPFLAGS) $(LIBBSD_CFLAGS)
++opendkim_LDFLAGS = $(LIBCRYPTO_LIBDIRS) $(LIBMILTER_LIBDIRS) $(PTHREAD_CFLAGS) $(COV_LDFLAGS) $(LIBBSD_LIBS)
+ opendkim_LDADD = ../libopendkim/libopendkim.la $(LIBMILTER_LIBS) $(LIBCRYPTO_LIBS) $(PTHREAD_LIBS) $(COV_LIBADD) $(LIBRESOLV)
+ if USE_DB_OPENDKIM
+ opendkim_CPPFLAGS += $(LIBDB_INCDIRS)
+--- a/opendkim/config.c
++++ b/opendkim/config.c
+@@ -22,16 +22,6 @@
+ /* libopendkim includes */
+ #include <dkim.h>
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* opendkim includes */
+ #include "config.h"
+
+@@ -304,7 +294,7 @@ config_load_level(char *file, struct con
+ size_t newlen;
+
+ oldlen = strlen(*deprecated);
+- newlen = oldlen + 2 +
++ newlen = oldlen + 2 +
+ strlen(def[n].cd_name);
+ new = realloc(*deprecated,
+ newlen);
+--- a/opendkim/flowrate.c
++++ b/opendkim/flowrate.c
+@@ -16,16 +16,6 @@
+ #include <string.h>
+ #include <stdlib.h>
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* opendkim includes */
+ #include "flowrate.h"
+ #include "opendkim.h"
+--- a/opendkim/opendkim-ar.c
++++ b/opendkim/opendkim-ar.c
+@@ -21,16 +21,6 @@
+ # include <sysexits.h>
+ #endif /* ARTEST */
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* opendkim includes */
+ #include "opendkim-ar.h"
+
+@@ -377,7 +367,7 @@ ares_dedup(struct authres *ar, int n)
+ ** hdr -- NULL-terminated contents of an Authentication-Results:
+ ** header field
+ ** ar -- a pointer to a (struct authres) loaded by values after parsing
+-**
++**
+ ** Return value:
+ ** 0 on success, -1 on failure.
+ */
+--- a/opendkim/opendkim-db.c
++++ b/opendkim/opendkim-db.c
+@@ -36,16 +36,6 @@
+ /* libopendkim includes */
+ #include <dkim.h>
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* repute includes */
+ #ifdef _FFR_REPUTATION
+ # include <repute.h>
+@@ -854,7 +844,7 @@ dkimf_db_datasplit(char *buf, size_t buf
+ **
+ ** Notes:
+ ** Expands "$d" and "$D" as defined in opendkim.conf(5).
+-**
++**
+ ** Should report overflows.
+ */
+
+@@ -1002,7 +992,7 @@ dkimf_db_list_free(struct dkimf_db_list
+ list = next;
+ }
+ }
+-
++
+ /*
+ ** DKIMF_DB_RELIST_FREE -- destroy a linked regex list
+ **
+@@ -1312,7 +1302,7 @@ dkimf_db_open_sql(struct dkimf_db_dsn *d
+ **
+ ** Parameters:
+ ** db -- DKIMF_DB handle
+-**
++**
+ ** Return value:
+ ** A DKIMF_DB_TYPE_* constant.
+ */
+@@ -2174,7 +2164,7 @@ dkimf_db_open(DKIMF_DB *db, char *name,
+ }
+
+ assert(key != NULL);
+-
++
+ if (value != NULL &&
+ (new->db_flags & DKIMF_DB_FLAG_VALLIST) != 0)
+ {
+@@ -2230,7 +2220,7 @@ dkimf_db_open(DKIMF_DB *db, char *name,
+ list = newl;
+ else
+ next->db_list_next = newl;
+-
++
+ next = newl;
+ n++;
+ }
+@@ -2536,7 +2526,7 @@ dkimf_db_open(DKIMF_DB *db, char *name,
+ /*
+ ** General format of a DSN:
+ ** <backend>://[user[:pwd]@][port+]host/dbase[/key=val[?...]]
+- **
++ **
+ ** "table", "keycol" and "datacol" will be set in one of the
+ ** key-value pairs. "filter" is optional.
+ */
+@@ -2763,7 +2753,7 @@ dkimf_db_open(DKIMF_DB *db, char *name,
+ free(new);
+ return -1;
+ }
+-
++
+ new->db_iflags |= DKIMF_DB_IFLAG_RECONNECT;
+ odbx = NULL;
+ }
+@@ -2858,10 +2848,10 @@ dkimf_db_open(DKIMF_DB *db, char *name,
+ ** General format of an LDAP specification:
+ ** scheme://host[:port][/dn[?attrs[?scope[?filter[?exts]]]]]
+ ** (see RFC4516)
+- **
++ **
+ ** "bindpass", "authmech" and "usetls" will be set in
+ ** other config values.
+- **
++ **
+ ** Take the descriptive values (e.g. attributes) from the
+ ** first one.
+ */
+@@ -3063,7 +3053,7 @@ dkimf_db_open(DKIMF_DB *db, char *name,
+ close(fd);
+
+ /* try to compile it */
+- if (dkimf_lua_db_hook(tmp, 0, NULL, &lres,
++ if (dkimf_lua_db_hook(tmp, 0, NULL, &lres,
+ (void *) &lua->lua_script,
+ &lua->lua_scriptlen) != 0)
+ {
+@@ -3707,12 +3697,12 @@ dkimf_db_delete(DKIMF_DB db, void *buf,
+ assert(buf != NULL);
+
+ if (db->db_type == DKIMF_DB_TYPE_FILE ||
+- db->db_type == DKIMF_DB_TYPE_CSL ||
+- db->db_type == DKIMF_DB_TYPE_DSN ||
+- db->db_type == DKIMF_DB_TYPE_LDAP ||
+- db->db_type == DKIMF_DB_TYPE_LUA ||
+- db->db_type == DKIMF_DB_TYPE_MEMCACHE ||
+- db->db_type == DKIMF_DB_TYPE_REPUTE ||
++ db->db_type == DKIMF_DB_TYPE_CSL ||
++ db->db_type == DKIMF_DB_TYPE_DSN ||
++ db->db_type == DKIMF_DB_TYPE_LDAP ||
++ db->db_type == DKIMF_DB_TYPE_LUA ||
++ db->db_type == DKIMF_DB_TYPE_MEMCACHE ||
++ db->db_type == DKIMF_DB_TYPE_REPUTE ||
+ db->db_type == DKIMF_DB_TYPE_REFILE ||
+ db->db_type == DKIMF_DB_TYPE_ERLANG)
+ return EINVAL;
+@@ -3865,11 +3855,11 @@ dkimf_db_put(DKIMF_DB db, void *buf, siz
+ assert(outbuf != NULL);
+
+ if (db->db_type == DKIMF_DB_TYPE_FILE ||
+- db->db_type == DKIMF_DB_TYPE_CSL ||
+- db->db_type == DKIMF_DB_TYPE_DSN ||
+- db->db_type == DKIMF_DB_TYPE_LDAP ||
+- db->db_type == DKIMF_DB_TYPE_LUA ||
+- db->db_type == DKIMF_DB_TYPE_REPUTE ||
++ db->db_type == DKIMF_DB_TYPE_CSL ||
++ db->db_type == DKIMF_DB_TYPE_DSN ||
++ db->db_type == DKIMF_DB_TYPE_LDAP ||
++ db->db_type == DKIMF_DB_TYPE_LUA ||
++ db->db_type == DKIMF_DB_TYPE_REPUTE ||
+ db->db_type == DKIMF_DB_TYPE_REFILE)
+ return EINVAL;
+
+@@ -5114,7 +5104,7 @@ dkimf_db_get(DKIMF_DB db, void *buf, siz
+ key = (char *) db->db_data;
+
+ snprintf(query, sizeof query, "%s:%s", key, (char *) buf);
+-
++
+ out = memcached_get(mcs, query, strlen(query), &vlen,
+ &flags, &ret);
+
+@@ -5600,7 +5590,7 @@ dkimf_db_close(DKIMF_DB db)
+
+ first = FALSE;
+ }
+-
++
+ (void) dkimf_db_close(ldap->ldap_cache);
+ }
+ # endif /* USE_DB */
+@@ -5983,7 +5973,7 @@ dkimf_db_walk(DKIMF_DB db, _Bool first,
+ (void) odbx_result_finish(result);
+ result = NULL;
+ }
+-
++
+ /* run a query and start results cursor if needed */
+ if (result == NULL)
+ {
+@@ -6234,7 +6224,7 @@ dkimf_db_walk(DKIMF_DB db, _Bool first,
+ if (ldap->ldap_descr->lud_attrs[c] == NULL)
+ noattrs = TRUE;
+
+- if (noattrs)
++ if (noattrs)
+ {
+ if ((req[c].dbdata_flags & DKIMF_DB_DATA_OPTIONAL) == 0)
+ status = -1;
+@@ -6439,7 +6429,7 @@ dkimf_db_walk(DKIMF_DB db, _Bool first,
+ ** db -- a DKIMF_DB handle
+ ** a -- array (returned)
+ ** base -- base array
+-**
++**
+ ** Return value:
+ ** Length of the created array, or -1 on error/empty.
+ */
+--- a/opendkim/opendkim-spam.c
++++ b/opendkim/opendkim-spam.c
+@@ -25,16 +25,6 @@
+ # include <odbx.h>
+ #endif /* USE_ODBX */
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* opendkim includes */
+ #include "config.h"
+ #include "stats.h"
+--- a/opendkim/opendkim-testkey.c
++++ b/opendkim/opendkim-testkey.c
+@@ -36,16 +36,6 @@
+ #include <dkim.h>
+ #include <dkim-test.h>
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* opendkim includes */
+ #include "opendkim-db.h"
+ #include "opendkim-dns.h"
+--- a/opendkim/opendkim.c
++++ b/opendkim/opendkim.c
+@@ -92,16 +92,6 @@
+ # include "vbr.h"
+ #endif /* _FFR_VBR */
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ #ifdef _FFR_REPUTATION
+ /* reputation includes */
+ # include <repute.h>
+@@ -803,7 +793,7 @@ pthread_mutex_t pwdb_lock; /* passwd/g
+ ** An sfsistat.
+ */
+
+-sfsistat
++sfsistat
+ smfi_insheader(SMFICTX *ctx, int idx, char *hname, char *hvalue)
+ {
+ assert(ctx != NULL);
+@@ -1413,7 +1403,7 @@ dkimf_xs_rblcheck(lua_State *l)
+ ctx = (SMFICTX *) lua_touserdata(l, 1);
+ if (ctx != NULL)
+ cc = (struct connctx *) dkimf_getpriv(ctx);
+-
++
+ query = lua_tostring(l, 2);
+ qroot = lua_tostring(l, 3);
+ if (lua_gettop(l) == 4)
+@@ -2715,7 +2705,7 @@ dkimf_xs_rcptcount(lua_State *l)
+ dfc = cc->cctx_msg;
+
+ rcnt = 0;
+-
++
+ for (addr = dfc->mctx_rcptlist; addr != NULL; addr = addr->a_next)
+ rcnt++;
+
+@@ -2767,7 +2757,7 @@ dkimf_xs_rcpt(lua_State *l)
+ lua_pushstring(l, "dkimf_xs_rcpt");
+ return 1;
+ }
+-
++
+ cc = (struct connctx *) dkimf_getpriv(ctx);
+ dfc = cc->cctx_msg;
+
+@@ -3090,7 +3080,7 @@ dkimf_xs_getsigarray(lua_State *l)
+ {
+ lua_pushnil(l);
+ }
+-
++
+ return 1;
+ }
+
+@@ -3156,7 +3146,7 @@ dkimf_xs_getsigcount(lua_State *l)
+ {
+ lua_pushnumber(l, 1);
+ }
+-
++
+ return 1;
+ }
+
+@@ -4762,7 +4752,7 @@ dkimf_securefile(const char *path, ino_t
+ return status;
+
+ if (partial[1] != '\0')
+- strlcat(partial, "/", sizeof partial);
++ strlcat(partial, "/", sizeof partial);
+ }
+
+ return 1;
+@@ -4818,7 +4808,7 @@ dkimf_securefile(const char *path, ino_t
+
+ pthread_mutex_unlock(&pwdb_lock);
+ }
+-
++
+ /* guess we're okay... */
+ *ino = s.st_ino;
+ return 1;
+@@ -6208,7 +6198,7 @@ dkimf_config_load(struct config *data, s
+ {
+ if (strcmp(str, "HOSTNAME") == 0)
+ conf->conf_authservid = strdup(myhostname);
+- else
++ else
+ conf->conf_authservid = strdup(str);
+ }
+
+@@ -6317,7 +6307,7 @@ dkimf_config_load(struct config *data, s
+
+ #ifdef _FFR_IDENTITY_HEADER
+ (void) config_get(data, "IdentityHeader",
+- &conf->conf_identityhdr,
++ &conf->conf_identityhdr,
+ sizeof conf->conf_identityhdr);
+
+ (void) config_get(data, "IdentityHeaderRemove",
+@@ -6991,7 +6981,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_peerdb, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7010,7 +7000,7 @@ dkimf_config_load(struct config *data, s
+
+ status = dkimf_db_open(&conf->conf_testdnsdb,
+ conf->conf_testdnsdata,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7038,7 +7028,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_internal, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7055,7 +7045,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_internal, DEFINTERNAL,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7084,7 +7074,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_exignore, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7112,7 +7102,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_exemptdb, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7134,7 +7124,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_bldb, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7155,7 +7145,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_signhdrsdb, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7176,7 +7166,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_remardb, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7211,7 +7201,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_atpsdb, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -7233,7 +7223,7 @@ dkimf_config_load(struct config *data, s
+ char *dberr = NULL;
+
+ status = dkimf_db_open(&conf->conf_dontsigntodb, str,
+- (dbflags |
++ (dbflags |
+ DKIMF_DB_FLAG_ICASE |
+ DKIMF_DB_FLAG_READONLY),
+ NULL, &dberr);
+@@ -8179,7 +8169,7 @@ dkimf_config_load(struct config *data, s
+
+ saveerrno = errno;
+
+- syslog(LOG_ERR, "malloc(): %s",
++ syslog(LOG_ERR, "malloc(): %s",
+ strerror(errno));
+
+ errno = saveerrno;
+@@ -8299,7 +8289,7 @@ dkimf_config_load(struct config *data, s
+ char signer[BUFRSZ + 1];
+
+ dbd[0].dbdata_flags = 0;
+-
++
+ memset(keyname, '\0', sizeof keyname);
+
+ dbd[0].dbdata_buffer = keyname;
+@@ -8324,7 +8314,7 @@ dkimf_config_load(struct config *data, s
+ dbd[2].dbdata_buflen = sizeof keydata - 1;
+ dbd[2].dbdata_flags = DKIMF_DB_DATA_BINARY;
+
+- if (dkimf_db_get(conf->conf_keytabledb,
++ if (dkimf_db_get(conf->conf_keytabledb,
+ keyname, strlen(keyname),
+ dbd, 3, &found) != 0 ||
+ !found ||
+@@ -8437,7 +8427,7 @@ dkimf_dns_init(DKIM_LIB *lib, struct dki
+ {
+ if (err != NULL)
+ *err = "failed to add resolver configuration file";
+-
++
+ return FALSE;
+ }
+ }
+@@ -9247,7 +9237,7 @@ dkimf_cleanup(SMFICTX *ctx)
+ while (cur != NULL)
+ {
+ next = cur->se_next;
+-
++
+ free(cur);
+
+ cur = next;
+@@ -10261,7 +10251,7 @@ dkimf_sigreport(connctx cc, struct dkimf
+ syslog(LOG_ERR, "%s: fdopen(): %s",
+ dfc->mctx_jobid, strerror(errno));
+ }
+-
++
+ close(fd);
+ return;
+ }
+@@ -10276,7 +10266,7 @@ dkimf_sigreport(connctx cc, struct dkimf
+ syslog(LOG_ERR, "%s: popen(): %s",
+ dfc->mctx_jobid, strerror(errno));
+ }
+-
++
+ return;
+ }
+ }
+@@ -11362,7 +11352,7 @@ mlfi_header(SMFICTX *ctx, char *headerf,
+ ** feed to the canonicalization algorithms the headers
+ ** exactly as the MTA will modify them, so verification
+ ** should still work.
+- **
++ **
+ ** This is based on experimentation and on reading
+ ** sendmail/headers.c, and may require more tweaking before
+ ** it's precisely right. There are other munges the
+@@ -11433,7 +11423,7 @@ mlfi_header(SMFICTX *ctx, char *headerf,
+
+ return SMFIS_TEMPFAIL;
+ }
+-
++
+ for (rep = conf->conf_replist;
+ rep != NULL;
+ rep = rep->repl_next)
+@@ -11629,7 +11619,7 @@ mlfi_eoh(SMFICTX *ctx)
+ if (from == NULL && !didfrom)
+ from = dkimf_findheader(dfc, "from", 0);
+ }
+-
++
+ if (from != NULL)
+ dkimf_dstring_copy(addr, from->hdr_val);
+
+@@ -12140,7 +12130,7 @@ mlfi_eoh(SMFICTX *ctx)
+
+ /* still no key selected; check the signing table (if any) */
+ if (originok && dfc->mctx_srhead == NULL &&
+- (user != NULL && dfc->mctx_domain[0] != '\0') &&
++ (user != NULL && dfc->mctx_domain[0] != '\0') &&
+ #ifdef _FFR_LUA_ONLY_SIGNING
+ !conf->conf_luasigning &&
+ #endif /* _FFR_LUA_ONLY_SIGNING */
+@@ -12299,7 +12289,7 @@ mlfi_eoh(SMFICTX *ctx)
+ */
+
+ /* signing requests with signing mode disabled */
+- if (dfc->mctx_srhead != NULL &&
++ if (dfc->mctx_srhead != NULL &&
+ (conf->conf_mode & DKIMF_MODE_SIGNER) == 0)
+ return SMFIS_ACCEPT;
+
+@@ -12619,7 +12609,7 @@ mlfi_eoh(SMFICTX *ctx)
+ idset = TRUE;
+ }
+ }
+-
++
+ if (!idset && conf->conf_dolog)
+ {
+ syslog(LOG_INFO,
+@@ -12629,7 +12619,7 @@ mlfi_eoh(SMFICTX *ctx)
+ }
+ }
+ #endif /* _FFR_IDENTITY_HEADER */
+-
++
+ if (!idset)
+ {
+ snprintf((char *) identity, sizeof identity, "@%s",
+@@ -12803,7 +12793,7 @@ mlfi_eoh(SMFICTX *ctx)
+
+ /* set the VBR transaction type */
+ (void) vbr_settype(dfc->mctx_vbr, (u_char *) vbr_type);
+-
++
+ /* set the VBR certifier list */
+ (void) vbr_setcert(dfc->mctx_vbr, (u_char *) vbr_cert);
+
+@@ -12915,7 +12905,7 @@ mlfi_eoh(SMFICTX *ctx)
+
+ #ifdef _FFR_IDENTITY_HEADER
+ if (conf->conf_identityhdr != NULL &&
+- conf->conf_rmidentityhdr &&
++ conf->conf_rmidentityhdr &&
+ dfc->mctx_srhead != NULL &&
+ strcasecmp(conf->conf_identityhdr, hdr->hdr_hdr) == 0)
+ continue;
+@@ -12942,7 +12932,7 @@ mlfi_eoh(SMFICTX *ctx)
+ #ifdef _FFR_REPUTATION
+ /* check for spam flag */
+ if (conf->conf_repspamcheck != NULL &&
+- regexec(&conf->conf_repspamre,
++ regexec(&conf->conf_repspamre,
+ dkimf_dstring_get(dfc->mctx_tmpstr),
+ 0, NULL, 0) == 0)
+ dfc->mctx_spam = TRUE;
+@@ -13340,7 +13330,7 @@ mlfi_eom(SMFICTX *ctx)
+ dfc->mctx_srhead != NULL)
+ {
+ struct Header *hdr;
+-
++
+ hdr = dkimf_findheader(dfc, conf->conf_identityhdr, 0);
+ if (hdr != NULL)
+ {
+@@ -13357,7 +13347,7 @@ mlfi_eom(SMFICTX *ctx)
+ }
+ }
+ #endif /* _FFR_IDENTITY_HEADER */
+-
++
+ /* log something if the message was multiply signed */
+ if (dfc->mctx_dkimv != NULL && conf->conf_dolog)
+ {
+@@ -13482,7 +13472,7 @@ mlfi_eom(SMFICTX *ctx)
+ slash = strchr((char *) ares->ares_host, '/');
+ if (slash != NULL)
+ *slash = '\0';
+-
++
+ if (conf->conf_remardb != NULL)
+ {
+ status = dkimf_db_get(conf->conf_remardb,
+@@ -13790,7 +13780,7 @@ mlfi_eom(SMFICTX *ctx)
+ fclose(f);
+ }
+ }
+- }
++ }
+
+ if (dfc->mctx_status == DKIMF_STATUS_GOOD)
+ {
+@@ -14576,7 +14566,7 @@ mlfi_eom(SMFICTX *ctx)
+ vbr_certifier = NULL;
+ vbr_vouchers = NULL;
+ vbr_type = NULL;
+-
++
+ /* break out the VBR-Info header contents */
+ strlcpy(tmp, vbr_header->hdr_val, sizeof tmp);
+ for (p = strtok_r(tmp, ";", &sctx);
+@@ -14624,7 +14614,7 @@ mlfi_eom(SMFICTX *ctx)
+ vbr_vouchers = (char *) value;
+ }
+ }
+-
++
+ /* confirm a valid signature was there */
+ if (dfc->mctx_dkimv != NULL &&
+ dkim_getsiglist(dfc->mctx_dkimv,
+@@ -14646,7 +14636,7 @@ mlfi_eom(SMFICTX *ctx)
+ }
+ }
+ }
+-
++
+ if (vbr_validsig)
+ {
+ /* use accessors to set parsed values */
+@@ -14656,7 +14646,7 @@ mlfi_eom(SMFICTX *ctx)
+ (u_char *) vbr_type);
+ vbr_setdomain(dfc->mctx_vbr,
+ (u_char *) vbr_domain);
+-
++
+ /* attempt the query */
+ vbr_status = vbr_query(dfc->mctx_vbr,
+ (u_char **) &vbr_result,
+@@ -14739,7 +14729,7 @@ mlfi_eom(SMFICTX *ctx)
+ vbr_certifier,
+ sizeof header);
+ }
+-
++
+ if (dkimf_insheader(ctx, 1,
+ AUTHRESULTSHDR,
+ (char *) header) == MI_FAILURE)
+@@ -15827,7 +15817,7 @@ main(int argc, char **argv)
+ progname, query);
+ return EX_USAGE;
+ }
+-
++
+ result = (char **) malloc(sizeof(char *) * n);
+ if (result == NULL)
+ {
+--- a/opendkim/reputation.c
++++ b/opendkim/reputation.c
+@@ -21,16 +21,6 @@
+ /* libopendkim includes */
+ #include <dkim.h>
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* opendkim includes */
+ #include "reputation.h"
+ #include "opendkim.h"
+@@ -223,7 +213,7 @@ dkimf_rep_check(DKIMF_REP rep, DKIM_SIGI
+ if (rep->rep_lastflush + rep->rep_ttl < now)
+ {
+ f = TRUE;
+-
++
+ req[0].dbdata_buffer = (void *) &when;
+ req[0].dbdata_buflen = sizeof when;
+ req[0].dbdata_flags = DKIMF_DB_DATA_BINARY;
+@@ -341,7 +331,7 @@ dkimf_rep_check(DKIMF_REP rep, DKIM_SIGI
+ strlcpy(domain, DKIMF_REP_LOWTIME, sizeof domain);
+ dlen = strlen(domain);
+ }
+-
++
+ f = FALSE;
+
+ /* get the total message limit */
+--- a/opendkim/stats.c
++++ b/opendkim/stats.c
+@@ -40,16 +40,6 @@
+ /* libopendkim includes */
+ #include <dkim.h>
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* opendkim includes */
+ #include "stats.h"
+ #include "util.h"
+--- a/opendkim/test.c
++++ b/opendkim/test.c
+@@ -21,16 +21,6 @@
+ #include "build-config.h"
+ #include <dkim.h>
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* libmilter includes */
+ #include <libmilter/mfapi.h>
+
+@@ -712,7 +702,7 @@ dkimf_testfile(DKIM_LIB *libopendkim, st
+ #ifdef USE_UNBOUND
+ char *dnssec;
+ int dnsseccode = DKIM_DNSSEC_UNKNOWN;
+-
++
+ dnsseccode = dkim_sig_getdnssec(sig);
+
+ switch (dnsseccode)
+--- a/opendkim/util.c
++++ b/opendkim/util.c
+@@ -46,16 +46,6 @@
+ # endif /* SOLARIS <= 20600 */
+ #endif /* SOLARIS */
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* opendkim includes */
+ #include "opendkim.h"
+ #include "util.h"
+@@ -217,7 +207,7 @@ static unsigned char alphabet[64] = "ABC
+
+ /*
+ ** DKIMF_ISBLANK -- return TRUE iff a string contains only whitespace
+-**
++**
+ ** Parameters:
+ ** str -- string to check
+ **
+--- a/reprrd/reprrd.c
++++ b/reprrd/reprrd.c
+@@ -22,11 +22,6 @@
+ /* libreprrd includes */
+ #include "reprrd.h"
+
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* data types */
+ struct reprrd_handle
+ {
+@@ -250,7 +245,7 @@ reprrd_query(REPRRD r, const char *domai
+ end = now;
+ start = last_update - 1;
+ step = REPRRD_STEP;
+-
++
+ reprrd_mkpath(path, sizeof path, r, domain,
+ REPRRD_TYPE_MESSAGES);
+
+@@ -287,7 +282,7 @@ reprrd_query(REPRRD r, const char *domai
+ end = now;
+ start = last_update - 1;
+ step = REPRRD_STEP;
+-
++
+ rrd_clear_error();
+ status = rrd_fetch_r(path, REPRRD_CF_AVERAGE, &start, &end,
+ &step, &ds_cnt, &ds_names, &data);
+@@ -324,7 +319,7 @@ reprrd_query(REPRRD r, const char *domai
+ end = now;
+ start = last_update - 1;
+ step = REPRRD_STEP;
+-
++
+ reprrd_mkpath(path, sizeof path, r, domain, REPRRD_TYPE_SPAM);
+
+ rrd_clear_error();
+@@ -407,7 +402,7 @@ reprrd_query(REPRRD r, const char *domai
+ end = now;
+ start = now - REPRRD_STEP * REPRRD_BACKSTEPS;
+ step = REPRRD_STEP;
+-
++
+ rrd_clear_error();
+ status = rrd_fetch_r(path, REPRRD_CF_FAILURES, &start, &end,
+ &step, &ds_cnt, &ds_names, &data);
+--- a/stats/Makefile.am
++++ b/stats/Makefile.am
+@@ -14,9 +14,9 @@ if USE_ODBX
+ sbin_PROGRAMS = opendkim-importstats
+
+ opendkim_importstats_SOURCES = opendkim-importstats.c
+-opendkim_importstats_CPPFLAGS = $(LIBODBX_CPPFLAGS) -I$(srcdir)/../libopendkim -I$(srcdir)/../opendkim
++opendkim_importstats_CPPFLAGS = $(LIBODBX_CPPFLAGS) -I$(srcdir)/../libopendkim -I$(srcdir)/../opendkim $(LIBBSD_CFLAGS)
+ opendkim_importstats_CFLAGS = $(LIBODBX_CFLAGS) $(COV_CFLAGS)
+-opendkim_importstats_LDFLAGS = $(LIBODBX_LDFLAGS) $(COV_LDFLAGS)
++opendkim_importstats_LDFLAGS = $(LIBODBX_LDFLAGS) $(COV_LDFLAGS) $(LIBBSD_LIBS)
+ opendkim_importstats_LDADD = $(LIBODBX_LIBS) $(LIBDL_LIBS) $(COV_LIBADD)
+
+ man_MANS += opendkim-importstats.8
+--- a/stats/opendkim-importstats.c
++++ b/stats/opendkim-importstats.c
+@@ -23,16 +23,6 @@
+ /* OpenDKIM includes */
+ #include "stats.h"
+
+-/* libbsd if found */
+-#ifdef USE_BSD_H
+-# include <bsd/string.h>
+-#endif /* USE_BSD_H */
+-
+-/* libstrl if needed */
+-#ifdef USE_STRL_H
+-# include <strl.h>
+-#endif /* USE_STRL_H */
+-
+ /* libodbx includes */
+ #ifdef USE_ODBX
+ # include <odbx.h>
+++ /dev/null
---- a/libopendkim/dkim-dns.c
-+++ b/libopendkim/dkim-dns.c
-@@ -163,6 +163,9 @@ int
- dkim_res_query(void *srv, int type, unsigned char *query, unsigned char *buf,
- size_t buflen, void **qh)
- {
-+#ifdef __UCLIBC__
-+ return DKIM_DNS_ERROR;
-+#else
- int n;
- int ret;
- struct dkim_res_qh *rq;
-@@ -209,6 +212,7 @@ dkim_res_query(void *srv, int type, unsi
- *qh = (void *) rq;
-
- return DKIM_DNS_SUCCESS;
-+#endif // __UCLIBC__
- }
-
- /*
--- /dev/null
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,4 +1,4 @@
+-SUBDIRS = gphoto-m4 contrib doc gphoto2 packaging po tests
++SUBDIRS = gphoto-m4 contrib doc gphoto2 packaging tests
+
+ ACLOCAL_AMFLAGS = -I auto-m4 -I gphoto-m4
+ EXTRA_DIST = README.md
+--- a/configure.ac
++++ b/configure.ac
+@@ -46,11 +46,8 @@ dnl i18n support
+ dnl ---------------------------------------------------------------------------
+ GP_GETTEXT_HACK([],[Lutz Müller and others],[${MAIL_GPHOTO_TRANSLATION}])
+ ALL_LINGUAS="az cs da de en_GB es eu fi fr hu id is it ja nl pa pl pt_BR ro ru rw sk sr sv uk vi zh_CN zh_TW"
+-AM_PO_SUBDIRS()
+ AM_GNU_GETTEXT_VERSION([0.14.1])
+-AM_GNU_GETTEXT([external])
+ AM_ICONV()
+-GP_GETTEXT_FLAGS()
+
+ dnl We cannot use AC_DEFINE_UNQUOTED() for these definitions, as
+ dnl we require make to do insert the proper $(datadir) value
+@@ -80,7 +77,7 @@ AC_CHECK_LIB(m,floor)
+
+
+ dnl ---------------------------------------------------------------------------
+-dnl pthread: The gphoto2 shell (--shell) keeps up a connection to the
++dnl pthread: The gphoto2 shell (--shell) keeps up a connection to the
+ dnl camera. Some cameras need to be sent keep-alive-messages
+ dnl in order to prevent a shut-down. This is what we need
+ dnl pthread for.
+@@ -97,7 +94,7 @@ if $try_pthread; then
+ AC_DEFINE(HAVE_PTHREAD,1,[Define if we use pthread.h.])
+ pthread_msg="yes (-lpthread)"
+ PTHREAD_LIBS="-lpthread"],[
+- AC_CHECK_LIB(c_r, pthread_create, [
++ AC_CHECK_LIB(c_r, pthread_create, [
+ AC_DEFINE(HAVE_PTHREAD,1,[Define if we use pthread.h.])
+ pthread_msg="yes (-pthread)"
+ PTHREAD_LIBS="-pthread"
+@@ -267,7 +264,7 @@ GP_CONFIG_MSG([JPEG support],[$jpeg_msg]
+ dnl ---------------------------------------------------------------------------
+ dnl libexif: The CameraFilesystem can use libexif for extracting thumbnails
+ dnl out of EXIF data. Similarly, it can extract the mtime of
+-dnl a file.
++dnl a file.
+ dnl libexif is available from
+ dnl http://www.sourceforge.net/projects/libexif
+ dnl ---------------------------------------------------------------------------
+@@ -327,7 +324,7 @@ AC_MSG_ERROR([pkg-config could not find
+
+ dnl ---------------------------------------------------------------------------
+ dnl readline: Readline is pretty cool - it allows you to use <tab> to complete
+-dnl commands in the gphoto2 shell or to use <up> or <down> to
++dnl commands in the gphoto2 shell or to use <up> or <down> to
+ dnl navigate through the history.
+ dnl ---------------------------------------------------------------------------
+ rl_msg="no (http://cnswww.cns.cwru.edu/~chet/readline/rltop.html)"
+@@ -396,7 +393,6 @@ AC_SUBST([AM_LDFLAGS])
+ # Create output files
+ # ---------------------------------------------------------------------------
+ AC_CONFIG_FILES([
+-po/Makefile.in
+ Makefile
+ gphoto2/Makefile
+ gphoto-m4/Makefile
include $(TOPDIR)/rules.mk
PKG_NAME:=atlas-probe
-PKG_VERSION:=2.4.1
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=1
-PKG_SOURCE:=ripe-atlas-probe-busybox-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/RIPE-NCC/ripe-atlas-probe-busybox/archive/v$(PKG_VERSION)
-PKG_HASH:=e684bf617cdc502c20f97028726a93a4a0d21ad9f618b50eb07f999f1604ae65
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/ripe-atlas-probe-busybox-$(PKG_VERSION)
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=2.6.3
+PKG_SOURCE_URL:=https://github.com/RIPE-NCC/ripe-atlas-probe-busybox
+PKG_MIRROR_HASH:=f53a2b29fedc2b6a44880b6f75b433e7cc0a51d6dc643bff86539f78b5aa653e
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
+++ /dev/null
-From 46da4c4e090e0412cee0777f1e8b219964781da7 Mon Sep 17 00:00:00 2001
-From: Eneas U de Queiroz <cotequeiroz@gmail.com>
-Date: Fri, 8 Oct 2021 14:39:52 -0300
-Subject: [PATCH] Avoid problems with 64-bit time_t
-
-The clock_gettime() calls are being handled by calling
-syscall(__NR_clock_gettime, ...), which is not portable between systems
-using 32-bit and 64-bit time_t. This is being done to avoid having to
-link agains librt.
-
-So, use the standard function, and add a test to see if we can compile
-a test without the library, including it otherwise.
-
-Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
----
- Makefile.flags | 6 ++++++
- coreutils/date.c | 6 ++----
- libbb/time.c | 2 +-
- 3 files changed, 9 insertions(+), 5 deletions(-)
-
---- a/Makefile.flags
-+++ b/Makefile.flags
-@@ -124,6 +124,12 @@ CFLAGS += --sysroot=$(CONFIG_SYSROOT)
- export SYSROOT=$(CONFIG_SYSROOT)
- endif
-
-+# glibc versions before 2.17 need to link with -rt to use clock_gettime
-+RT_NEEDED := $(shell echo 'int main(void){struct timespec tp; return clock_gettime(CLOCK_MONOTONIC, &tp);}' >rttest.c; $(CC) $(CFLAGS) -include time.h -o /dev/null rttest.c >/dev/null 2>&1 || echo "y"; rm rttest.c)
-+ifeq ($(RT_NEEDED),y)
-+LDLIBS += rt
-+endif
-+
- # Android has no separate crypt library
- # gcc-4.2.1 fails if we try to feed C source on stdin:
- # echo 'int main(void){return 0;}' | $(CC) $(CFLAGS) -lcrypt -o /dev/null -xc -
---- a/coreutils/date.c
-+++ b/coreutils/date.c
-@@ -37,7 +37,7 @@
- //config:config FEATURE_DATE_NANO
- //config: bool "Support %[num]N nanosecond format specifier"
- //config: default n
--//config: depends on DATE # syscall(__NR_clock_gettime)
-+//config: depends on DATE # clock_gettime()
- //config: select PLATFORM_LINUX
- //config: help
- //config: Support %[num]N format specifier. Adds ~250 bytes of code.
-@@ -265,9 +265,7 @@ int date_main(int argc UNUSED_PARAM, cha
- #endif
- } else {
- #if ENABLE_FEATURE_DATE_NANO
-- /* libc has incredibly messy way of doing this,
-- * typically requiring -lrt. We just skip all this mess */
-- syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts);
-+ clock_gettime(CLOCK_REALTIME, &ts);
- #else
- time(&ts.tv_sec);
- #endif
---- a/libbb/time.c
-+++ b/libbb/time.c
-@@ -243,7 +243,7 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS(
- * typically requiring -lrt. We just skip all this mess */
- static void get_mono(struct timespec *ts)
- {
-- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
-+ if (clock_gettime(CLOCK_MONOTONIC, ts))
- bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
- }
- unsigned long long FAST_FUNC monotonic_ns(void)
+++ /dev/null
-From 899efc5206d5985d0ae65500a1c0542ec2d58e58 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth@gmail.com>
-Date: Mon, 17 Oct 2022 18:44:30 +0200
-Subject: [PATCH 1/4] Fix SIGSEGV caused by time_t casted to long on 32bit
- systems
-
-32bit systems have time_t set to long long int while 64bit system have
-time_t set to long int. This is problematic as in the busybox code this
-is not handled correctly and we have some casted to long and some not
-casted at all.
-
-Some arch (found this problem on a mt7621) may be restrictive about casting
-and crash with segmentation fault if time_t is cast to %ld instead of the
-correct %lld.
-
-This is the cause of https://github.com/RIPE-NCC/ripe-atlas-software-probe/issues/74
-
-Use the correct type and cast every time_t to (unsigned long long) so that
-eperd and condmv doesn't crash anymore and the measurement works correctly.
-
-Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
----
- coreutils/condmv.c | 3 ++-
- eperd/condmv.c | 7 ++++---
- eperd/evtdig.c | 12 ++++++------
- eperd/httpget.c | 8 ++++----
- eperd/ntp.c | 4 ++--
- eperd/sslgetcert.c | 8 ++++----
- eperd/traceroute.c | 8 ++++----
- miscutils/perd.c | 4 ++--
- networking/httppost.c | 30 +++++++++++++++---------------
- networking/rptaddrs.c | 2 +-
- 10 files changed, 44 insertions(+), 42 deletions(-)
-
---- a/coreutils/condmv.c
-+++ b/coreutils/condmv.c
-@@ -149,7 +149,8 @@ int condmv_main(int argc, char *argv[])
- rebased_from, strerror(errno));
- goto err;
- }
-- if (fprintf(file, "%s %lu %s\n", opt_add, mytime, from) < 0)
-+ if (fprintf(file, "%s %llu %s\n", opt_add,
-+ (unsigned long long)mytime, from) < 0)
- {
- fprintf(stderr,
- "condmv: unable to append to '%s': %s\n",
---- a/eperd/condmv.c
-+++ b/eperd/condmv.c
-@@ -99,8 +99,8 @@ static void condmv_start(void *state)
-
- len= strlen(condmvstate->to) + 20;
- to= malloc(len);
-- snprintf(to, len, "%s.%ld", condmvstate->to,
-- (long)time(NULL)/condmvstate->interval);
-+ snprintf(to, len, "%s.%llu", condmvstate->to,
-+ (unsigned long long)time(NULL)/condmvstate->interval);
-
- crondlog(LVL7 "condmv_start: destination '%s'\n", to);
-
-@@ -124,7 +124,8 @@ static void condmv_start(void *state)
- free(to);
- return;
- }
-- if (fprintf(file, "%s %lu %s\n", condmvstate->atlas, mytime,
-+ if (fprintf(file, "%s %llu %s\n", condmvstate->atlas,
-+ (unsigned long long)mytime,
- condmvstate->from) < 0)
- {
- crondlog(LVL9 "condmv: unable to append to '%s': %s\n",
---- a/eperd/evtdig.c
-+++ b/eperd/evtdig.c
-@@ -1009,7 +1009,7 @@ static int mk_dns_buff(struct query_stat
- lookup_prepend = xzalloc(DEFAULT_LINE_LENGTH + sizeof(qry->lookupname));
- snprintf(lookup_prepend, (sizeof(qry->lookupname) +
- DEFAULT_LINE_LENGTH - 1),
-- "%d.%lu.%s", probe_id, qry->xmit_time,
-+ "%d.%llu.%s", probe_id, (unsigned long long)qry->xmit_time,
- qry->lookupname);
-
- qnamelen= ChangetoDnsNameFormat(qname, qnamelen,
-@@ -3081,7 +3081,7 @@ static void tdig_stats(int unusg_statsed
- AS(atlas_get_version_json_str());
- AS(", ");
- gettimeofday(&now, NULL);
-- JS1(time, %ld, now.tv_sec);
-+ JS1(time, %llu, (unsigned long long)now.tv_sec);
- JU(sok , base->sentok);
- JU(rok , base->recvok);
- JU(sent , base->sentbytes);
-@@ -3395,7 +3395,7 @@ void printErrorQuick (struct query_state
- fprintf(fh, "RESULT { ");
- fprintf(fh, "%s,", atlas_get_version_json_str());
- fprintf(fh, "\"id\" : 9202 ,");
-- fprintf(fh, "\"time\" : %ld ,", atlas_time());
-+ fprintf(fh, "\"time\" : %llu ,", (unsigned long long)atlas_time());
-
- fprintf(fh, "\"error\" : [{ ");
- fprintf(fh, "\"query busy\": \"not starting a new one. previous one is not done yet\"}");
-@@ -3405,7 +3405,7 @@ void printErrorQuick (struct query_state
- fprintf(fh, "\"id\" : \"%s\"", qry->str_Atlas);
- if (qry->str_bundle)
- fprintf(fh, ",\"bundle\" : %s", qry->str_bundle);
-- fprintf(fh, ",\"start time\" : %ld", qry->xmit_time);
-+ fprintf(fh, ",\"start time\" : %llu", (unsigned long long)qry->xmit_time);
- if(qry->retry) {
- fprintf(fh, ",\"retry\": %d", qry->retry);
-
-@@ -3456,7 +3456,7 @@ void printReply(struct query_state *qry,
- AS(atlas_get_version_json_str());
- AS(", ");
- if (qry->opt_rset){
-- JS1(time, %ld, qry->xmit_time);
-+ JS1(time, %llu, (unsigned long long)qry->xmit_time);
- JD(lts,lts);
- AS("\"resultset\" : [ {");
- }
-@@ -3466,7 +3466,7 @@ void printReply(struct query_state *qry,
- AS (",{");
- }
-
-- JS1(time, %ld, qry->xmit_time);
-+ JS1(time, %llu, (unsigned long long)qry->xmit_time);
- JD(lts,lts);
-
- if (qry->opt_do_tls && ssl_version != NULL)
---- a/eperd/httpget.c
-+++ b/eperd/httpget.c
-@@ -853,10 +853,10 @@ static void report(struct hgstate *state
- fprintf(fh, DBQ(id) ":" DBQ(%s) ", "
- "%s, "
- DBQ(lts) ":%d, "
-- DBQ(time) ":%ld, ",
-+ DBQ(time) ":%llu, ",
- state->atlas, atlas_get_version_json_str(),
- get_timesync(),
-- state->gstart);
-+ (unsigned long long)state->gstart);
- if (state->bundle)
- {
- fprintf(fh, DBQ(bundle) ":%s, ",
-@@ -876,8 +876,8 @@ static void report(struct hgstate *state
- {
- if (state->do_combine)
- {
-- snprintf(line, sizeof(line), DBQ(time) ":%ld, ",
-- state->start.tv_sec);
-+ snprintf(line, sizeof(line), DBQ(time) ":%llu, ",
-+ (unsigned long long)state->start.tv_sec);
- }
- else
- {
---- a/eperd/ntp.c
-+++ b/eperd/ntp.c
-@@ -366,10 +366,10 @@ static void report(struct ntpstate *stat
- fprintf(fh, DBQ(id) ":" DBQ(%s)
- ", %s"
- ", " DBQ(lts) ":%d"
-- ", " DBQ(time) ":%ld, ",
-+ ", " DBQ(time) ":%llu, ",
- state->atlas, atlas_get_version_json_str(),
- get_timesync(),
-- state->starttime);
-+ (unsigned long long)state->starttime);
- if (state->bundle)
- fprintf(fh, DBQ(bundle) ":%s, ", state->bundle);
- }
---- a/eperd/sslgetcert.c
-+++ b/eperd/sslgetcert.c
-@@ -1026,9 +1026,9 @@ static void report(struct state *state)
- fprintf(fh, DBQ(id) ":" DBQ(%s) ", "
- "%s, "
- DBQ(lts) ":%d, "
-- DBQ(time) ":%ld, ",
-+ DBQ(time) ":%llu, ",
- state->atlas, atlas_get_version_json_str(),
-- get_timesync(), state->gstart);
-+ get_timesync(), (unsigned long long)state->gstart);
- if (state->bundle)
- fprintf(fh, DBQ(bundle) ":%s, ", state->bundle);
- }
-@@ -1185,8 +1185,8 @@ static FILE *report_head(struct state *s
- fprintf(fh, DBQ(bundle) ":%s, ", state->bundle);
- }
-
-- fprintf(fh, "%s" DBQ(time) ":%ld",
-- state->atlas ? ", " : "", atlas_time());
-+ fprintf(fh, "%s" DBQ(time) ":%llu",
-+ state->atlas ? ", " : "", (unsigned long long)atlas_time());
- fprintf(fh, ", " DBQ(dst_name) ":" DBQ(%s) ", "
- DBQ(dst_port) ":" DBQ(%s),
- state->hostname, state->portname);
---- a/eperd/traceroute.c
-+++ b/eperd/traceroute.c
-@@ -362,12 +362,12 @@ static void report(struct trtstate *stat
- fprintf(fh, DBQ(id) ":" DBQ(%s)
- ", %s"
- ", " DBQ(lts) ":%d"
-- ", " DBQ(time) ":%ld"
-- ", " DBQ(endtime) ":%ld, ",
-+ ", " DBQ(time) ":%llu"
-+ ", " DBQ(endtime) ":%llu, ",
- state->atlas, atlas_get_version_json_str(),
- get_timesync(),
-- state->starttime,
-- (long)atlas_time());
-+ (unsigned long long)state->starttime,
-+ (unsigned long long)atlas_time());
- if (state->bundle_id)
- fprintf(fh, DBQ(bundle) ":%s, ", state->bundle_id);
- }
---- a/miscutils/perd.c
-+++ b/miscutils/perd.c
-@@ -1197,8 +1197,8 @@ error:
- fprintf(fn, "RESULT { ");
- if (atlas_id)
- fprintf(fn, DBQ(id) ":" DBQ(%s) ", ", atlas_id);
-- fprintf(fn, "%s, " DBQ(time) ":%d, ",
-- atlas_get_version_json_str(), time(NULL));
-+ fprintf(fn, "%s, " DBQ(time) ":%llu, ",
-+ atlas_get_version_json_str(), (unsigned long long)time(NULL));
- if (reason != NULL)
- fprintf(fn, DBQ(reason) ":" DBQ(%s) ", ", reason);
- fprintf(fn, DBQ(err) ":%d, " DBQ(cmd) ": \"", r);
---- a/networking/httppost.c
-+++ b/networking/httppost.c
-@@ -492,32 +492,32 @@ int httppost_main(int argc, char *argv[]
- if (need_set_time && getenv("HTTPPOST_ALLOW_STIME"))
- {
- fprintf(stderr,
-- "setting time, time difference is %ld\n",
-- (long)server_time-now.tv_sec);
-+ "setting time, time difference is %llu\n",
-+ (unsigned long long)server_time-now.tv_sec);
- ts.tv_sec= server_time;
- ts.tv_nsec= 0;
- clock_settime(CLOCK_REALTIME, &ts);
- if (atlas_id)
- {
- printf(
-- "RESULT %s ongoing %ld httppost setting time, local %ld, remote %ld\n",
-- atlas_id, (long)time(NULL),
-- (long)now.tv_sec,
-- (long)server_time);
-+ "RESULT %s ongoing %llu httppost setting time, local %llu, remote %llu\n",
-+ atlas_id, (unsigned long long)time(NULL),
-+ (unsigned long long)now.tv_sec,
-+ (unsigned long long)server_time);
- }
- }
- else if (need_set_time)
- {
- fprintf(stderr,
-- "not setting time, time difference is %ld\n",
-- (long)server_time-now.tv_sec);
-+ "not setting time, time difference is %llu\n",
-+ (unsigned long long)server_time-now.tv_sec);
- if (atlas_id)
- {
- printf(
-- "RESULT %s ongoing %ld httppost not in sync, local %ld, remote %ld\n",
-- atlas_id, (long)time(NULL),
-- (long)now.tv_sec,
-- (long)server_time);
-+ "RESULT %s ongoing %llu httppost not in sync, local %llu, remote %llu\n",
-+ atlas_id, (unsigned long long)time(NULL),
-+ (unsigned long long)now.tv_sec,
-+ (unsigned long long)server_time);
- }
- }
- else if (rtt <= 1)
-@@ -528,7 +528,7 @@ int httppost_main(int argc, char *argv[]
- fh= fopen(fn_new, "wt");
- if (fh)
- {
-- fprintf(fh, "%ld\n", (long)now.tv_sec);
-+ fprintf(fh, "%llu\n", (unsigned long long)now.tv_sec);
- fclose(fh);
- rename(fn_new, fn);
- }
-@@ -537,8 +537,8 @@ int httppost_main(int argc, char *argv[]
- }
- else if (atlas_id)
- {
-- printf("RESULT %s ongoing %ld httppost rtt %g ms\n",
-- atlas_id, (long)time(NULL), rtt*1000);
-+ printf("RESULT %s ongoing %llu httppost rtt %g ms\n",
-+ atlas_id, (unsigned long long)time(NULL), rtt*1000);
- }
- }
-
---- a/networking/rptaddrs.c
-+++ b/networking/rptaddrs.c
-@@ -802,7 +802,7 @@ static int rpt_ipv6(char *cache_name, ch
- JS(id, opt_atlas);
- }
- gettimeofday(&now, NULL);
-- JS1(time, %ld, now.tv_sec);
-+ JS1(time, %llu, (unsigned long long)now.tv_sec);
-
- /* Copy all lines */
- while (fgets(buf, sizeof(buf), file) != NULL)
+++ /dev/null
-From 25f131be221c5b2f8cb4f0c2a32f522415bb3bbf Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth@gmail.com>
-Date: Mon, 17 Oct 2022 20:15:30 +0200
-Subject: [PATCH] Mute some no previous prototype compilation warning
-
-Mute some no previous prototype compilation warning found in
-atlas_unsafe, rxtxrpt_main and route_set_flags.
-
-Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
----
- include/libbb.h | 2 ++
- libbb/route_set_flags.c | 2 ++
- 2 files changed, 4 insertions(+)
-
---- a/include/libbb.h
-+++ b/include/libbb.h
-@@ -463,6 +463,7 @@ char *is_suffixed_with(const char *strin
- #define ATLAS_TIMESYNC_FILE_REL ATLAS_DATA_NEW_REL "/timesync.vol"
- #define ATLAS_FUZZING_REL "data"
-
-+extern int atlas_unsafe(void);
- extern char *rebased_validated_filename(const char *path, const char *prefix);
- extern char *rebased_validated_dir(const char *path, const char *prefix);
- extern int validate_atlas_id(const char *atlas_id);
-@@ -484,6 +485,7 @@ extern void read_response(int fd, int ty
- extern void read_response_file(FILE *file, int type, size_t *sizep,
- void *data);
- extern void write_response(FILE *file, int type, size_t size, void *data);
-+extern int rxtxrpt_main(int argc, char *argv[]);
-
- int ndelay_on(int fd) FAST_FUNC;
- int ndelay_off(int fd) FAST_FUNC;
---- a/libbb/route_set_flags.c
-+++ b/libbb/route_set_flags.c
-@@ -1,6 +1,8 @@
- #include <platform.h>
- #include <net/route.h>
-
-+#include "libbb.h"
-+
- static const
- IF_NOT_FEATURE_IPV6(uint16_t)
- IF_FEATURE_IPV6(unsigned)
+++ /dev/null
-From dba9e1b7707c9cc9f5804b7a5cbda32a08e9e18f Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth@gmail.com>
-Date: Mon, 17 Oct 2022 20:00:24 +0200
-Subject: [PATCH] Cast sockaddr_in6 to sockaddr to mute compilation warning
-
-Cast sockaddr_in6 to sockaddr to mute compilation warning as
-documentation say for getsockname.
-
-Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
----
- eperd/evtdig.c | 3 ++-
- eperd/httpget.c | 3 ++-
- eperd/ntp.c | 4 ++--
- eperd/ping.c | 12 ++++++++----
- eperd/sslgetcert.c | 3 ++-
- eperd/traceroute.c | 2 +-
- networking/rptra6.c | 2 +-
- 7 files changed, 18 insertions(+), 11 deletions(-)
-
---- a/eperd/evtdig.c
-+++ b/eperd/evtdig.c
-@@ -1612,7 +1612,8 @@ static void tcp_connected(struct tu_env
- }
- else
- {
-- getsockname(bufferevent_getfd(bev), &qry->loc_sin6, &qry->loc_socklen);
-+ getsockname(bufferevent_getfd(bev),
-+ (struct sockaddr *)&qry->loc_sin6, &qry->loc_socklen);
- if (qry->response_out)
- {
- write_response(qry->resp_file, RESP_SOCKNAME,
---- a/eperd/httpget.c
-+++ b/eperd/httpget.c
-@@ -2103,7 +2103,8 @@ static void connected(struct tu_env *env
- else
- {
- getsockname(bufferevent_getfd(bev),
-- &state->loc_sin6, &state->loc_socklen);
-+ (struct sockaddr *)&state->loc_sin6,
-+ &state->loc_socklen);
- if (state->response_out)
- {
- write_response(state->resp_file, RESP_SOCKNAME,
---- a/eperd/ntp.c
-+++ b/eperd/ntp.c
-@@ -1218,13 +1218,13 @@ static int create_socket(struct ntpstate
-
- len= sizeof(state->loc_sin6);
- read_response(state->socket, RESP_SOCKNAME,
-- &len, &state->loc_sin6);
-+ &len, (struct sockaddr *)&state->loc_sin6);
- state->loc_socklen= len;
- }
- else
- {
- if (getsockname(state->socket,
-- &state->loc_sin6,
-+ (struct sockaddr*)&state->loc_sin6,
- &state->loc_socklen) == -1)
- {
- crondlog(DIE9 "getsockname failed");
---- a/eperd/ping.c
-+++ b/eperd/ping.c
-@@ -703,7 +703,8 @@ static void ping_xmit(struct pingstate *
- }
- else
- {
-- getsockname(host->socket, &host->loc_sin6,
-+ getsockname(host->socket,
-+ (struct sockaddr *)&host->loc_sin6,
- &host->loc_socklen);
- if (host->resp_file_out)
- {
-@@ -735,7 +736,8 @@ static void ping_xmit(struct pingstate *
- host->include_probe_id);
-
- host->loc_socklen= sizeof(host->loc_sin6);
-- getsockname(host->socket, &host->loc_sin6, &host->loc_socklen);
-+ getsockname(host->socket, (struct sockaddr *)&host->loc_sin6,
-+ &host->loc_socklen);
-
- if (host->response_in)
- {
-@@ -1567,7 +1569,8 @@ static void ping_start2(void *state)
- }
-
- if (!pingstate->response_in &&
-- connect(pingstate->socket, &pingstate->sin6,
-+ connect(pingstate->socket,
-+ (struct sockaddr *)&pingstate->sin6,
- pingstate->socklen) == -1)
- {
- snprintf(line, sizeof(line),
-@@ -1592,7 +1595,8 @@ static void ping_start2(void *state)
- }
- else
- {
-- getsockname(pingstate->socket, &pingstate->loc_sin6,
-+ getsockname(pingstate->socket,
-+ (struct sockaddr *)&pingstate->loc_sin6,
- &pingstate->loc_socklen);
- if (pingstate->resp_file_out)
- {
---- a/eperd/sslgetcert.c
-+++ b/eperd/sslgetcert.c
-@@ -1801,7 +1801,8 @@ static void connected(struct tu_env *env
- else
- {
- getsockname(bufferevent_getfd(bev),
-- &state->loc_sin6, &state->loc_socklen);
-+ (struct sockaddr *)&state->loc_sin6,
-+ &state->loc_socklen);
- if (state->response_out)
- {
- write_response(state->resp_file, RESP_SOCKNAME,
---- a/eperd/traceroute.c
-+++ b/eperd/traceroute.c
-@@ -4631,7 +4631,7 @@ static int create_socket(struct trtstate
- {
- state->loc_socklen= sizeof(state->loc_sin6);
- if (!state->response_in && getsockname(state->socket_icmp,
-- &state->loc_sin6,
-+ (struct sockaddr *)&state->loc_sin6,
- &state->loc_socklen) == -1)
- {
- crondlog(DIE9 "getsockname failed");
---- a/networking/rptra6.c
-+++ b/networking/rptra6.c
-@@ -441,7 +441,7 @@ static int send_sol(int sock)
- inet_pton(AF_INET6, "FF02::2", &sin6.sin6_addr);
- sin6.sin6_family= AF_INET6;
-
-- sendto(sock, &pkt, sizeof(pkt), 0, &sin6, sizeof(sin6));
-+ sendto(sock, &pkt, sizeof(pkt), 0, (struct sockaddr*)&sin6, sizeof(sin6));
-
- alarm(RTR_SOLICITATION_INTERVAL);
-
+++ /dev/null
-From d8bd85fba865508c0c6dff57b14c98f3ca70bbfc Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth@gmail.com>
-Date: Mon, 17 Oct 2022 19:18:06 +0200
-Subject: [PATCH] Cast size_t to long to mute warning on 32bit systems
-
-Cast size_t to long to mute warning on 32bit systems.
-
-Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
----
- eperd/evtdig.c | 10 +++++-----
- eperd/sslgetcert.c | 2 +-
- libbb/atlas_bb64.c | 2 +-
- 3 files changed, 7 insertions(+), 7 deletions(-)
-
---- a/eperd/evtdig.c
-+++ b/eperd/evtdig.c
-@@ -3792,7 +3792,7 @@ unsigned char* ReadName(unsigned char *b
- /* Bad format */
- snprintf((char *)name, sizeof(name),
- "format-error at %lu: value 0x%x",
-- offset, len);
-+ (unsigned long)offset, len);
- *count= -1;
- free(name); name= NULL;
- return name;
-@@ -3803,7 +3803,7 @@ unsigned char* ReadName(unsigned char *b
- {
- snprintf((char *)name, sizeof(name),
- "offset-error at %lu: offset %lu",
-- offset, noffset);
-+ (unsigned long)offset, (unsigned long)noffset);
- *count= -1;
- free(name); name= NULL;
- return name;
-@@ -3814,7 +3814,7 @@ unsigned char* ReadName(unsigned char *b
- /* Too many */
- snprintf((char *)name, sizeof(name),
- "too many redirects at %lu",
-- offset);
-+ (unsigned long)offset);
- *count= -1;
- free(name); name= NULL;
- return name;
-@@ -3836,7 +3836,7 @@ unsigned char* ReadName(unsigned char *b
- {
- snprintf((char *)name, sizeof(name),
- "buf-bounds-error at %lu: len %d",
-- offset, len);
-+ (unsigned long)offset, len);
- *count= -1;
- free(name); name= NULL;
- return name;
-@@ -3846,7 +3846,7 @@ unsigned char* ReadName(unsigned char *b
- {
- snprintf((char *)name, sizeof(name),
- "name-length-error at %lu: len %d",
-- offset, p+len+1);
-+ (unsigned long)offset, p+len+1);
- *count= -1;
- free(name); name= NULL;
- return name;
---- a/eperd/sslgetcert.c
-+++ b/eperd/sslgetcert.c
-@@ -182,7 +182,7 @@ static void buf_add(struct buf *buf, con
- newbuf= malloc(maxsize);
- if (!newbuf)
- {
-- fprintf(stderr, "unable to allocate %ld bytes\n", maxsize);
-+ fprintf(stderr, "unable to allocate %ld bytes\n", (long)maxsize);
- exit(1);
- }
-
---- a/libbb/atlas_bb64.c
-+++ b/libbb/atlas_bb64.c
-@@ -43,7 +43,7 @@ int buf_add(struct buf *buf, const void
- newbuf= malloc(maxsize);
- if (!newbuf)
- {
-- fprintf(stderr, "unable to allocate %ld bytes\n", maxsize);
-+ fprintf(stderr, "unable to allocate %ld bytes\n", (long)maxsize);
- return (1);
- }
-
--- /dev/null
+--- a/libevent-2.1.11-stable/test/regress_ssl.c
++++ b/libevent-2.1.11-stable/test/regress_ssl.c
+@@ -148,9 +148,9 @@ ssl_getcert(EVP_PKEY *key)
+ X509_set_issuer_name(x509, name);
+ X509_NAME_free(name);
+
+- X509_time_adj(X509_get_notBefore(x509), 0, &now);
++ X509_time_adj(X509_getm_notBefore(x509), 0, &now);
+ now += 3600;
+- X509_time_adj(X509_get_notAfter(x509), 0, &now);
++ X509_time_adj(X509_getm_notAfter(x509), 0, &now);
+ X509_set_pubkey(x509, key);
+ tt_assert(0 != X509_sign(x509, key, EVP_sha1()));
+
+@@ -469,8 +469,8 @@ regress_bufferevent_openssl(void *arg)
+ type = (enum regress_openssl_type)data->setup_data;
+
+ if (type & REGRESS_OPENSSL_RENEGOTIATE) {
+- if (SSLeay() >= 0x10001000 &&
+- SSLeay() < 0x1000104f) {
++ if (OPENSSL_VERSION_NUMBER >= 0x10001000 &&
++ OPENSSL_VERSION_NUMBER < 0x1000104f) {
+ /* 1.0.1 up to 1.0.1c has a bug where TLS1.1 and 1.2
+ * can't renegotiate with themselves. Disable. */
+ disable_tls_11_and_12 = 1;
include $(TOPDIR)/rules.mk
PKG_NAME:=atlas-sw-probe
-PKG_VERSION:=5040
-PKG_RELEASE:=1
+PKG_VERSION:=5080
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/RIPE-NCC/ripe-atlas-software-probe.git
PKG_SOURCE:=ripe-atlas-software-probe-$(PKG_VERSION).tar.gz
-PKG_MIRROR_HASH:=fed1d6fa1f513e72d7266098dd74232741e2d70aea583f23e7e85521c971c6fc
-PKG_SOURCE_VERSION:=193daa18cc305c0194045e2d24d004b5116f041a
+PKG_MIRROR_HASH:=ad8b012803f98abbf1594384c5a4e27de9e9c112d43da272e73dd10591a566e1
+PKG_SOURCE_VERSION:=67b0736887d33d1c42557e7c7694cbd4e5d8e6ee
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
PKG_LICENSE:=GPL-3.0-or-later
echo "prod" > $(1)/$(SCRIPTS_DIR)/state/mode
# Copy scripts
- $(CP) $(PKG_BUILD_DIR)/bin/{ATLAS,common-pre.sh,common.sh,reginit.sh,resolvconf} $(1)/$(SCRIPTS_DIR)/bin/
+ $(CP) $(PKG_BUILD_DIR)/bin/{ATLAS,resolvconf} $(1)/$(SCRIPTS_DIR)/bin/
+ $(CP) $(PKG_BUILD_DIR)/bin/*.sh $(1)/$(SCRIPTS_DIR)/bin/
$(CP) $(PKG_BUILD_DIR)/bin/arch/{linux,openwrt-sw-probe} $(1)/$(SCRIPTS_DIR)/bin/arch/
# Create config info
+++ /dev/null
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -448,7 +448,7 @@ endif()
-
- # libclamav feature dependencies
- if(NOT WIN32)
-- find_package(Iconv REQUIRED)
-+ find_package(Iconv)
- # Set variable required by libclamav to use iconv
- set(HAVE_ICONV 1)
- endif()
---- a/libclamav/CMakeLists.txt
-+++ b/libclamav/CMakeLists.txt
-@@ -536,10 +536,39 @@ if(ENABLE_SHARED_LIB)
- ClamAV::win32_compat
- wsock32 ws2_32 )
- else()
-+ if(Iconv_FOUND)
-+ if(NOT Iconv_IS_BUILT_IN)
-+ target_link_libraries(clamav PRIVATE Iconv::Iconv)
-+ set(CMAKE_REQUIRED_LIBRARIES "Iconv::Iconv")
-+ endif()
-+ else()
-+ # Sometime the build environment is not setup
-+ # in a way CMake can find Iconv on its own by default.
-+ # But if we simply link against iconv (-liconv), the build may succeed
-+ # due to other compiler/link flags.
-+ set(CMAKE_REQUIRED_LIBRARIES "iconv")
-+ check_c_source_compiles("
-+ #include <stddef.h>
-+ #include <iconv.h>
-+ int main() {
-+ char *a, *b;
-+ size_t i, j;
-+ iconv_t ic;
-+ ic = iconv_open(\"to\", \"from\");
-+ iconv(ic, &a, &i, &b, &j);
-+ iconv_close(ic);
-+ }
-+ "
-+ Iconv_EXPLICITLY_AT_ENV)
-+ if(Iconv_EXPLICITLY_AT_ENV)
-+ target_link_libraries(clamav PRIVATE iconv)
-+ else()
-+ message(FATAL_ERROR "Iconv is not found, make sure to provide it in the build environment")
-+ endif()
-+ endif()
- target_link_libraries( clamav
- PUBLIC
- Threads::Threads
-- Iconv::Iconv
- ${CMAKE_DL_LIBS}
- m )
- endif()
-@@ -556,8 +585,6 @@ if(ENABLE_SHARED_LIB)
-
- if(WIN32)
- set_target_properties( clamav PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )
-- else()
-- target_link_libraries( clamav PUBLIC Iconv::Iconv )
- endif()
- if(WIN32)
- install( TARGETS clamav DESTINATION . COMPONENT libraries )
include $(TOPDIR)/rules.mk
PKG_NAME:=cloudflared
-PKG_VERSION:=2022.12.1
+PKG_VERSION:=2023.1.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/cloudflare/cloudflared/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=8cc5c41ea98a9d72687d5f62e733a9033191e834e4fa9b2aecc557f0ccfbda56
+PKG_HASH:=68b66ec333329cda386b304a333b6f24e3ecc09696184603ca37426d522c4cd2
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_NAME:=ddns-scripts
PKG_VERSION:=2.8.2
-PKG_RELEASE:=33
+PKG_RELEASE:=34
PKG_LICENSE:=GPL-2.0
--- /dev/null
+{
+ "name": "hosting.de",
+ "ipv4": {
+ "url": "https://[USERNAME]:[PASSWORD]@ddns.hosting.de/nic/update?hostname=[DOMAIN]&myip=[IP]",
+ "answer": "good|nochg"
+ },
+ "ipv6": {
+ "url": "https://[USERNAME]:[PASSWORD]@ddns.hosting.de/nic/update?hostname=[DOMAIN]&myip=[IP]",
+ "answer": "good|nochg"
+ }
+}
goip.de
google.com
he.net
+hosting.de
infomaniak.com
inwx.de
joker.com
include $(TOPDIR)/rules.mk
PKG_NAME:=foolsm
-PKG_VERSION:=1.0.13
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.21
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://lsm.foobar.fi/download
-PKG_HASH:=4eeda0e666e8ee93aab9b9c6709e9695e042dc391fb0999280874c8a73bce476
+PKG_SOURCE_URL:=https://lsm.foobar.fi/download
+PKG_HASH:=527d9c363aa62b9fc511b42c5a06f774a8767c4b5330db4d959c10b46b0dede7
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0-only
include $(TOPDIR)/rules.mk
PKG_NAME:=git
-PKG_VERSION:=2.34.3
+PKG_VERSION:=2.34.6
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/scm/git/
-PKG_HASH:=648e2f753a4360984d437f9038cb4649442fb5be846950bcaaca006b75c78418
+PKG_HASH:=ed2c17ea71cacac9b92835e74edef7b26ed5bc85bb25e954adb0efa12fbfcf69
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
PKG_NAME:=gnunet-fuse
-PKG_VERSION:=0.16.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=0.19.1
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/gnunet
-PKG_HASH:=2cbeb79cc2aa9939d5faaaf52c21da125029cb6646c1db0d3b9e9feea7f23fa6
+PKG_HASH:=8f1f6f4d76c108ae74c0ec849bc9c02dc8dea412e205c56236c86cb792ccc9b4
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=COPYING
+++ /dev/null
-Always use pthread_mutexattr_settype() the
-pthread_mutexattr_setkind_np() is not available in the glibc and musl
-version used by OpenWrt.
-
-This patch was taken from:
-https://aur.archlinux.org/cgit/aur.git/plain/pthread_mutexattr_settype.patch?h=gnunet-fuse
-
---- a/src/fuse/mutex.c
-+++ b/src/fuse/mutex.c
-@@ -35,16 +35,6 @@
- #endif
- #endif
-
--/**
-- * This prototype is somehow missing in various Linux pthread
-- * include files. But we need it and it seems to be available
-- * on all pthread-systems so far. Odd.
-- */
--#ifndef _MSC_VER
--extern int pthread_mutexattr_setkind_np (pthread_mutexattr_t * attr,
-- int kind);
--#endif
--
-
- /**
- * @brief Structure for MUTual EXclusion (Mutex).
-@@ -67,23 +57,13 @@ GNUNET_mutex_create (int isRecursive)
- pthread_mutexattr_init (&attr);
- if (isRecursive)
- {
--#ifdef __linux__
-- GNUNET_assert (0 == pthread_mutexattr_setkind_np
-- (&attr, PTHREAD_MUTEX_RECURSIVE_NP));
--#elif BSD || SOLARIS || OSX || WINDOWS
- GNUNET_assert (0 == pthread_mutexattr_settype
- (&attr, PTHREAD_MUTEX_RECURSIVE));
--#endif
- }
- else
- {
--#ifdef __linux__
-- GNUNET_assert (0 == pthread_mutexattr_setkind_np
-- (&attr, PTHREAD_MUTEX_ERRORCHECK_NP));
--#else
- GNUNET_assert (0 == pthread_mutexattr_settype
- (&attr, PTHREAD_MUTEX_ERRORCHECK));
--#endif
- }
- mut = GNUNET_new (struct GNUNET_Mutex);
- GNUNET_assert (0 == pthread_mutex_init (&mut->pt, &attr));
PKG_NAME:=gnunet
-PKG_VERSION:=0.17.5
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=0.19.2
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/gnunet
-PKG_HASH:=8a744ff7a95d1e83215cce118050640f6c12261abe4c60a56bcf88e500f0023d
+PKG_HASH:=86034d92ebf8f6623dad95f1031ded1466e064b96ffac9d3e9d47229ac2c22ff
PKG_LICENSE:=AGPL-3.0
PKG_LICENSE_FILES:=COPYING
--with-gnutls=$(STAGING_DIR)/usr \
$(if $(CONFIG_PACKAGE_$(PKG_NAME)-transport-bluetooth),--with-bluetooth="$(STAGING_DIR)/usr",--without-bluetooth) \
--with-jose=$(STAGING_DIR)/usr \
- --with-libgnurl=$(STAGING_DIR)/usr \
+ --with-libcurl=$(STAGING_DIR)/usr \
--with-ogg=$(STAGING_DIR)/usr \
--with-opus=$(STAGING_DIR)/usr \
--with-pabc=$(STAGING_DIR)/usr \
done \
fi )
+ ( if [ "$(SQL_$(1))" ]; then \
+ $(INSTALL_DIR) $$(1)/usr/share/gnunet/sql && \
+ for sql in $(SQL_$(1)); do \
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/gnunet/sql/$$$$$$$$sql.sql $$(1)/usr/share/gnunet/sql || exit 1; \
+ done \
+ fi )
+
( if [ -e ./files/gnunet-$(1).defaults ]; then \
$(INSTALL_DIR) $$(1)/etc/uci-defaults && \
$(INSTALL_BIN) ./files/gnunet-$(1).defaults $$(1)/etc/uci-defaults/gnunet-$(1) ; \
$(INSTALL_DIR) $(1)/usr/share/gnunet/config.d $(1)/usr/share/gnunet/hellos
( for bin in arm ats cadet core config ecc identity nat nat-auto nat-server nse \
- peerinfo peerstore revocation scalarproduct scrypt statistics transport uri; do \
+ peerinfo revocation scalarproduct scrypt statistics transport uri; do \
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnunet-$$$$bin $(1)/usr/bin/ || exit 1; \
done )
BIN_dht-cli:=dht-get dht-hello dht-put dht-monitor
PLUGIN_dht-cli:=block_test
-DEPENDS_curl:=+libgnurl +jansson
+DEPENDS_curl:=+libcurl-gnutls +jansson
LIB_curl:=curl
DEPENDS_hostlist:=+libmicrohttpd-ssl +gnunet-curl +ca-bundle
BIN_gns:=gns namecache namestore resolver zoneimport
LIB_gns:=gns gnsrecord namecache namestore
PLUGIN_gns:=block_dns block_gns gnsrecord_conversation gnsrecord_dns gnsrecord_gns
-LIBEXEC_gns:=dns2gns helper-dns service-dns service-gns service-namecache service-namestore service-resolver service-zonemaster service-zonemaster-monitor
+LIBEXEC_gns:=dns2gns helper-dns service-dns service-gns service-namecache service-namestore service-resolver service-zonemaster
CONF_gns:=dns gns namecache namestore resolver zonemaster
FILE_MODES_gns:=/usr/lib/gnunet/libexec/gnunet-helper-dns:root:gnunetdns:4750 /usr/lib/gnunet/libexec/gnunet-service-dns:gnunet:gnunetdns:2750
PLUGIN_dhtcache-heap:=datacache_heap
CONFLICTS_dhtcache-heap:=gnunet-dhtcache-pgsql gnunet-dhtcache-sqlite
-DEPENDS_gns-flat:=+gnunet-gns
-PLUGIN_gns-flat:=namecache_flat namestore_flat
-
PLUGIN_peerstore-flat:=peerstore_flat
DEPENDS_fs-heap:=+gnunet-datastore
DEPENDS_pgsql:=+libpq +pgsql-server
LIB_pgsql:=pq
+SQL_pgsql:=versioning
USERID_pgsql:=gnunet=958::postgres=5432
DEPENDS_dhtcache-pgsql:=+gnunet-pgsql
PLUGIN_dhtcache-pgsql:=datacache_postgres
CONFLICTS_dhtcache-pgsql:=gnunet-dhtcache-sqlite
+SQL_dhtcache-pgsql:=datacache-0001 datacache-drop
DEPENDS_fs-pgsql:=+gnunet-pgsql +gnunet-datastore
PLUGIN_fs-pgsql:=datastore_postgres
CONFLICTS_fs-pgsql:=gnunet-fs-sqlite
+SQL_fs-pgsql:=datastore-0001 datastore-drop
DEPENDS_gns-pgsql:=+gnunet-pgsql +gnunet-gns
PLUGIN_gns-pgsql:=namecache_postgres namestore_postgres
-CONFLICTS_gns-pgsql:=gnunet-gns-sqlite gnunet-gns-flat
+CONFLICTS_gns-pgsql:=gnunet-gns-sqlite
+SQL_gns-pgsql:=namecache-0001 namecache-drop namestore-0001 namestore-drop
DEPENDS_sqlite:=+libsqlite3
LIB_sqlite:=sq
DEPENDS_gns-sqlite:=+gnunet-gns +gnunet-sqlite
PLUGIN_gns-sqlite:=namecache_sqlite namestore_sqlite
-CONFLICTS_gns-sqlite:=gnunet-gns-flat
DEPENDS_peerstore-sqlite:=+gnunet-sqlite
PLUGIN_peerstore-sqlite:=peerstore_sqlite
$(eval $(call BuildComponent,namestore-fcfsd,first-come-first-serve registration server,))
$(eval $(call BuildComponent,dhtcache-heap,heap-based dhtcache plugin,y))
$(eval $(call BuildComponent,fs-heap,heap-based filesharing plugin,))
-$(eval $(call BuildComponent,gns-flat,flat storage GNS plugins,y))
$(eval $(call BuildComponent,peerstore-flat,flat storage peerstore plugin,))
$(eval $(call BuildComponent,mysql,mySQL backend,))
$(eval $(call BuildComponent,fs-mysql,mySQL filesharing plugins,))
--- a/src/include/gnunet_common.h
+++ b/src/include/gnunet_common.h
-@@ -154,7 +154,6 @@ enum GNUNET_GenericReturnValue
+@@ -164,7 +164,6 @@ enum GNUNET_GenericReturnValue
* Endian operations
*/
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- #ifdef HAVE_BYTESWAP_H
+ #if defined(bswap_16) || defined(bswap_32) || defined(bswap_64)
#define BYTE_SWAP_16(x) bswap_16 (x)
#define BYTE_SWAP_32(x) bswap_32 (x)
-@@ -174,6 +173,7 @@ enum GNUNET_GenericReturnValue
+@@ -184,6 +183,7 @@ enum GNUNET_GenericReturnValue
56))
#endif
--- /dev/null
+--- a/configure.ac
++++ b/configure.ac
+@@ -727,12 +727,7 @@ LIBCURL_CHECK_CONFIG([], [7.34.0], [],
+
+ OLD_LIBS=$LIBS
+ LIBS="$LIBS $LIBCURL"
+-AC_RUN_IFELSE(
+- [AC_LANG_PROGRAM([[#include <curl/curl.h>]],
+- [[return (CURLSSLSET_OK != curl_global_sslset(CURLSSLBACKEND_GNUTLS, NULL, NULL));]])],
+- [curl_gnutls=1],
+- [AC_MSG_WARN([cURL does not have GnuTLS backend])
+- curl_gnutls=0])
++curl_gnutls=1
+ LIBS=$OLD_LIBS
+ AM_CONDITIONAL([HAVE_GNUTLS_CURL], [test "x$curl_gnutls" = "x1"])
+ AC_SUBST([curl_gnutls])
+++ /dev/null
-#
-# Copyright (C) 2007-2015 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=gnurl
-PKG_VERSION:=7.72.0
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@GNU/gnunet
-PKG_HASH:=b1e72be03fcf9b3fdaf01ae0702c686e9de10f67ef538918447c9e81555694f8
-
-PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
-PKG_LICENSE:=MIT
-PKG_LICENSE_FILES:=COPYING
-
-PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/gnurl/Default
- SECTION:=net
- CATEGORY:=Network
- URL:=https://gnunet.org/en/gnurl.html
-endef
-
-define Package/gnurl
- $(call Package/gnurl/Default)
- SUBMENU:=File Transfer
- DEPENDS:=+libgnurl
- TITLE:=A client-side HTTP/HTTPS transfer utility
-endef
-
-define Package/libgnurl
- $(call Package/gnurl/Default)
- SECTION:=libs
- CATEGORY:=Libraries
- DEPENDS:=+libgnutls +libidn2 +zlib
- TITLE:=A client-side HTTP/HTTPS transfer library
-endef
-
-TARGET_CFLAGS += $(FPIC)
-
-CONFIGURE_ARGS += \
- $(call autoconf_bool,CONFIG_IPV6,ipv6) \
- --with-gnutls="$(STAGING_DIR)/usr" \
- --with-libidn="$(STAGING_DIR)/usr" \
- --with-zlib="$(STAGING_DIR)/usr" \
- --with-ca-path="/etc/ssl/certs/" \
- --enable-shared \
- --enable-static \
- --without-axtls \
- --without-brotli \
- --without-libssh2 \
- --without-libmetalink \
- --without-winidn \
- --without-librtmp \
- --without-nghttp2 \
- --without-nss \
- --without-cyassl \
- --without-libpsl \
- --without-polarssl \
- --without-ssl \
- --without-winssl \
- --without-darwinssl \
- --without-zstd \
- --disable-ares \
- --disable-sspi \
- --disable-crypto-auth \
- --disable-ntlm-wb \
- --disable-tls-srp \
- --disable-ldap \
- --disable-ldaps \
- --disable-rtsp \
- --disable-dict \
- --disable-telnet \
- --disable-tftp \
- --disable-pop3 \
- --disable-imap \
- --disable-smtp \
- --disable-gopher \
- --disable-file \
- --disable-ftp \
- --disable-smb \
- --disable-debug \
- --disable-manual \
- --disable-verbose
-
-define Build/InstallDev
- $(INSTALL_DIR) $(2)/bin $(1)/usr/bin $(1)/usr/include/gnurl $(1)/usr/lib $(1)/usr/lib/pkgconfig
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnurl-config $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/include/gnurl/*.h $(1)/usr/include/gnurl
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnurl.{a,so*} $(1)/usr/lib/
- $(CP) $(PKG_BUILD_DIR)/libgnurl.pc $(1)/usr/lib/pkgconfig/
- $(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(1)/usr/bin/gnurl-config
- [ -n "$(TARGET_LDFLAGS)" ] && $(SED) 's#$(TARGET_LDFLAGS)##g' $(1)/usr/lib/pkgconfig/libgnurl.pc || true
- $(LN) $(STAGING_DIR)/usr/bin/gnurl-config $(2)/bin/
-endef
-
-define Package/gnurl/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnurl $(1)/usr/bin/
-endef
-
-define Package/libgnurl/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnurl.so.* $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,gnurl))
-$(eval $(call BuildPackage,libgnurl))
include $(TOPDIR)/rules.mk
PKG_NAME:=i2pd
-PKG_VERSION:=2.43.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=2.45.0
+PKG_RELEASE:=1
PKG_BUILD_PARALLEL:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/PurpleI2P/i2pd/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=db1679653491a411dd16fa329488d840296c8f680e0691f9fe0d0e796e5d7bca
+PKG_HASH:=4050c0a38fda06a76defbd2721f468f5b09889ed7b6b5a7e207e4659d300738f
PKG_MAINTAINER:=David Yang <mmyangfl@gmail.com>
PKG_LICENSE:=BSD-3-Clause
## Write full CLF-formatted date and time to log (default: write only time)
# logclftime = true
-@@ -115,9 +115,9 @@ published = true
+@@ -115,9 +115,9 @@ ssu = false
[http]
## Web Console settings
## Uncomment and set to 'false' to disable Web Console
## Name i2pd appears in UPnP forwardings list (default = I2Pd)
# name = I2Pd
-@@ -238,7 +238,7 @@ verify = true
-
+@@ -239,7 +239,7 @@ verify = true
[limits]
- ## Maximum active transit sessions (default:2500)
--# transittunnels = 2500
+ ## Maximum active transit sessions (default: 5000)
+ ## This value is doubled if floodfill mode is enabled!
+-# transittunnels = 5000
+transittunnels = 500
## Limit number of open file descriptors (0 - use system limit)
# openfiles = 0
PKG_NAME:=isc-dhcp
UPSTREAM_NAME:=dhcp
PKG_VERSION:=4.4.3
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=6
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
rm -rf ${cleandirs} ${cleanfiles} ; \
(cd ${bindsrcdir} && \
- ./configure ${bindconfig} > ${binddir}/configure.log); \
-+ export CC=${CROSS_CC} AR=${TARGET_AR} RANLIB=${TARGET_RANLIB} && \
++ export CC="${CROSS_CC}" AR=${TARGET_AR} RANLIB=${TARGET_RANLIB} && \
+ ./configure ${bindconfig} --disable-atomic \
+ --disable-kqueue --disable-epoll --disable-kqueue \
+ --disable-epoll --disable-devpoll --without-openssl \
@@ -57,6 +57,7 @@ bind1:
rm -rf ${cleandirs} ${cleanfiles} ; \
(cd ${bindsrcdir} && \
- export CC=${CROSS_CC} AR=${TARGET_AR} RANLIB=${TARGET_RANLIB} && \
+ export CC="${CROSS_CC}" AR=${TARGET_AR} RANLIB=${TARGET_RANLIB} && \
+ ac_cv_func_catgets=no \
./configure ${bindconfig} --disable-atomic \
--disable-kqueue --disable-epoll --disable-kqueue \
--- /dev/null
+#
+# Copyright (C) 2007-2023 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libcurl-gnutls
+
+PKG_SOURCE_NAME:=curl
+PKG_VERSION:=7.86.0
+PKG_RELEASE:=1
+PKG_SOURCE:=$(PKG_SOURCE_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/curl/curl/releases/download/curl-$(subst .,_,$(PKG_VERSION))/ \
+ https://dl.uxnr.de/mirror/curl/ \
+ https://curl.askapache.com/download/ \
+ https://curl.se/download/
+PKG_HASH:=2d61116e5f485581f6d59865377df4463f2e788677ac43222b496d4e49fb627b
+
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:haxx:libcurl
+PKG_ABI_VERSION:=4
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_SOURCE_NAME)-$(PKG_VERSION)
+
+# Make sure headers are present for packages using libcurl-gnutls
+PKG_BUILD_DEPENDS:=curl
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libcurl-gnutls
+ SECTION:=libs
+ CATEGORY:=Libraries
+ URL:=https://gnunet.org/en/gnurl.html
+ SECTION:=libs
+ CATEGORY:=Libraries
+ DEPENDS:=+libgnutls +libidn2 +zlib
+ TITLE:=A client-side HTTP/HTTPS transfer library (build against gnuTLS)
+ ABI_VERSION:=$(PKG_ABI_VERSION)
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+CONFIGURE_ARGS += \
+ $(call autoconf_bool,CONFIG_IPV6,ipv6) \
+ --with-gnutls="$(STAGING_DIR)/usr" \
+ --with-libidn="$(STAGING_DIR)/usr" \
+ --with-zlib="$(STAGING_DIR)/usr" \
+ --with-ca-path="/etc/ssl/certs/" \
+ --enable-shared \
+ --enable-static \
+ --without-axtls \
+ --without-brotli \
+ --without-libssh2 \
+ --without-winidn \
+ --without-librtmp \
+ --without-nghttp2 \
+ --without-nss \
+ --without-cyassl \
+ --without-libpsl \
+ --without-polarssl \
+ --without-openssl \
+ --without-winssl \
+ --without-zstd \
+ --disable-ares \
+ --disable-sspi \
+ --disable-crypto-auth \
+ --disable-ntlm-wb \
+ --disable-tls-srp \
+ --disable-ldap \
+ --disable-ldaps \
+ --disable-mqtt \
+ --disable-rtsp \
+ --disable-dict \
+ --disable-telnet \
+ --disable-tftp \
+ --disable-pop3 \
+ --disable-imap \
+ --disable-smtp \
+ --disable-gopher \
+ --disable-file \
+ --disable-ftp \
+ --disable-smb \
+ --disable-debug \
+ --disable-manual \
+ --disable-verbose
+
+define Build/Compile
+ $(call Build/Compile/Default)
+ patchelf --set-soname 'libcurl-gnutls.so.$(PKG_ABI_VERSION)' $(PKG_BUILD_DIR)/lib/.libs/libcurl.so.$(PKG_ABI_VERSION).*
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcurl.so.$(PKG_ABI_VERSION).* $(1)/usr/lib/libcurl-gnutls.so.$(PKG_ABI_VERSION)
+ $(LN) libcurl-gnutls.so.$(PKG_ABI_VERSION) $(1)/usr/lib/libcurl-gnutls.so
+endef
+
+define Package/libcurl-gnutls/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcurl.so.$(PKG_ABI_VERSION).* $(1)/usr/lib/libcurl-gnutls.so.$(PKG_ABI_VERSION)
+ $(LN) libcurl-gnutls.so.$(PKG_ABI_VERSION) $(1)/usr/lib/libcurl-gnutls.so
+endef
+
+$(eval $(call BuildPackage,libcurl-gnutls))
PKG_NAME:=libreswan
PKG_VERSION:=4.9
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://download.libreswan.org/
PREFIX="/usr" \
FINALRUNDIR="/var/run/pluto" \
FINALNSSDIR="/etc/ipsec.d" \
+ DEFAULT_DNSSEC_ROOTKEY_FILE=/etc/unbound/root.key \
MODPROBEARGS="-q" \
OSDEP=linux \
BUILDENV=linux \
+ LINUX_VARIANT="openwrt" \
ARCH="$(LINUX_KARCH)" \
define Build/Prepare
PKG_NAME:=netperf
PKG_VERSION:=2.7.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_LICENSE:=Custom
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=ftp://ftp.netperf.org/netperf/
-PKG_HASH:=842af17655835c8be7203808c3393e6cb327a8067f3ed1f1053eb78b4e40375a
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=https://github.com/HewlettPackard/netperf
+PKG_MIRROR_HASH:=fa46ffc25a00c925167d96e4c57131b5b650ea725b12b69ff6feabec759b271d
PKG_CPE_ID:=cpe:/a:netperf:netperf
SECTION:=net
CATEGORY:=Network
TITLE:=Network performance measurement tool
- URL:=http://www.netperf.org/
+ URL:=https://github.com/HewlettPackard/netperf
MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
endef
PKG_NAME:=pbr
PKG_VERSION:=1.0.1
-PKG_RELEASE:=4
+PKG_RELEASE:=14
PKG_LICENSE:=GPL-3.0-or-later
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
include $(INCLUDE_DIR)/package.mk
-define Package/pbr/default
+define Package/pbr/Default
SECTION:=net
CATEGORY:=Network
- SUBMENU:=VPN
- PROVIDES:=pbr
+ SUBMENU:=Routing and Redirection
TITLE:=Policy Based Routing Service
URL:=https://docs.openwrt.melmac.net/pbr/
- DEPENDS:=+ip-full +jshn +jsonfilter +resolveip
+ DEPENDS:=+ip-full +jshn +jsonfilter +libubus +resolveip
CONFLICTS:=vpnbypass vpn-policy-routing
PKGARCH:=all
endef
define Package/pbr
-$(call Package/pbr/default)
+$(call Package/pbr/Default)
TITLE+= with nft/nft set support
- DEPENDS+=+firewall4 +kmod-nft-core +kmod-nft-nat +nftables-json
+ DEPENDS+=+kmod-nft-core +kmod-nft-nat +nftables-json
+ VARIANT:=nftables
PROVIDES:=vpnbypass vpn-policy-routing
+ DEFAULT_VARIANT:=1
endef
define Package/pbr-iptables
-$(call Package/pbr/default)
+$(call Package/pbr/Default)
TITLE+= with iptables/ipset support
DEPENDS+=+ipset +iptables +kmod-ipt-ipset +iptables-mod-ipopt
- PROVIDES:=pbr vpnbypass vpn-policy-routing
+ VARIANT:=iptables
+ PROVIDES:=pbr
endef
define Package/pbr-netifd
-$(call Package/pbr/default)
+$(call Package/pbr/Default)
TITLE+= with netifd support
- PROVIDES:=pbr vpnbypass vpn-policy-routing
+ VARIANT:=netifd
+ PROVIDES:=pbr
endef
define Package/pbr/description
This service enables policy-based routing for WAN interfaces and various VPN tunnels.
-This version supports OpenWrt with both fw3/ipset/iptables and fw4/nft.
+This version supports OpenWrt with both firewall3/ipset/iptables and firewall4/nft.
endef
define Package/pbr-iptables/description
This service enables policy-based routing for WAN interfaces and various VPN tunnels.
-This version supports OpenWrt with fw3/ipset/iptables.
+This version supports OpenWrt with firewall3/ipset/iptables.
endef
define Package/pbr-netifd/description
This service enables policy-based routing for WAN interfaces and various VPN tunnels.
-This version supports OpenWrt with both fw3/ipset/iptables and fw4/nft.
+This version supports OpenWrt with both firewall3/ipset/iptables and firewall4/nft.
This version uses OpenWrt native netifd/tables to set up interfaces. This is WIP.
endef
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
uci -q delete firewall.pbr || true
- echo "Stopping pbr service... "
- /etc/init.d/pbr stop || true
+ echo -n "Stopping pbr service... "
+ /etc/init.d/pbr stop && echo "OK" || echo "FAIL"
echo -n "Removing rc.d symlink for pbr... "
/etc/init.d/pbr disable && echo "OK" || echo "FAIL"
fi
#!/bin/sh
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
- echo -n "Installing rc.d symlink for pbr... "
+ echo -n "Installing rc.d symlink for pbr-iptables... "
/etc/init.d/pbr enable && echo "OK" || echo "FAIL"
fi
exit 0
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
uci -q delete firewall.pbr || true
- echo "Stopping pbr service... "
- /etc/init.d/pbr stop || true
- echo -n "Removing rc.d symlink for pbr... "
+ echo -n "Stopping pbr-iptables service... "
+ /etc/init.d/pbr stop && echo "OK" || echo "FAIL"
+ echo -n "Removing rc.d symlink for pbr-iptables... "
/etc/init.d/pbr disable && echo "OK" || echo "FAIL"
fi
exit 0
#!/bin/sh
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
- echo -n "Installing rc.d symlink for pbr... "
+ echo -n "Installing rc.d symlink for pbr-netifd... "
/etc/init.d/pbr enable && echo "OK" || echo "FAIL"
- # echo -n "Installing netifd support for pbr... "
- # /etc/init.d/pbr netifd install && echo "OK" || echo "FAIL"
- # echo -n "Restarting network... "
- # /etc/init.d/network restart && echo "OK" || echo "FAIL"
fi
exit 0
endef
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
uci -q delete firewall.pbr || true
- echo "Stopping pbr service... "
- /etc/init.d/pbr stop || true
- # echo -n "Removing netifd support for pbr... "
- # /etc/init.d/pbr netifd remove && echo "OK" || echo "FAIL"
+ echo -n "Stopping pbr-netifd service... "
+ /etc/init.d/pbr stop && echo "OK" || echo "FAIL"
echo -n "Removing rc.d symlink for pbr... "
/etc/init.d/pbr disable && echo "OK" || echo "FAIL"
- # echo -n "Restarting network... "
- # /etc/init.d/network restart && echo "OK" || echo "FAIL"
fi
exit 0
endef
icmp_interface=
ignored_interface=
ipv6_enabled=
+nft_user_set_policy=
+nft_user_set_counter=
procd_boot_delay=
procd_reload_delay=
resolver_set=
nftPrevParam4=
nftPrevParam6=
-
get_text() {
local r
case "$1" in
errorPolicyProcessUnknownProtocol) r="Unknown protocol in policy %s";;
errorPolicyProcessInsertionFailed) r="Insertion failed for both IPv4 and IPv6 for policy %s";;
errorPolicyProcessInsertionFailedIpv4) r="Insertion failed for IPv4 for policy %s";;
+ errorInterfaceRoutingEmptyValues) r="Received empty tid/mark or interface name when setting up routing";;
+ errorFailedToResolve) r="Failed to resolve %s";;
warningResolverNotSupported) r="Resolver set (${resolver_set}) is not supported on this system.";;
warningAGHVersionTooLow) r="Installed AdGuardHome (%s) doesn't support 'ipset_file' option.";;
warningPolicyProcessCMD) r="%s";;
# is_service_running_nft() { [ -x "$nft" ] && [ -s "$nftPermFile" ]; }
is_service_running() { if is_nft; then is_service_running_nft; else is_service_running_iptables; fi; }
is_netifd_table() { local iface="$1"; [ "$(uci -q get "network.${iface}.ip4table")" = "${packageName}_${iface%6}" ]; }
-get_rt_tables_id() { local iface="$1"; grep "${packageName}_${iface}" '/etc/iproute2/rt_tables' | awk '{print $1;}'; }
+get_rt_tables_id() { local iface="$1"; grep "${ipTablePrefix}_${iface}\$" '/etc/iproute2/rt_tables' | awk '{print $1;}'; }
get_rt_tables_next_id() { echo "$(($(sort -r -n '/etc/iproute2/rt_tables' | grep -o -E -m 1 "^[0-9]+")+1))"; }
_check_config() { local en; config_get_bool en "$1" 'enabled' 1; [ "$en" -gt 0 ] && _cfg_enabled=0; }
is_config_enabled() {
}
# shellcheck disable=SC2016
resolveip_to_ipt() { resolveip "$@" | sed -n 'H;${x;s/\n/,/g;s/^,//;p;};d'; }
+resolveip_to_ipt4() { resolveip_to_ipt -4 "$@"; }
+resolveip_to_ipt6() { [ -n "$ipv6_enabled" ] && resolveip_to_ipt -6 "$@"; }
# shellcheck disable=SC2016
resolveip_to_nftset() { resolveip "$@" | sed -n 'H;${x;s/\n/,/g;s/^,//;p;};d' | tr '\n' ' '; }
resolveip_to_nftset4() { resolveip_to_nftset -4 "$@"; }
config_get icmp_interface 'config' 'icmp_interface'
config_get ignored_interface 'config' 'ignored_interface'
config_get_bool ipv6_enabled 'config' 'ipv6_enabled' '0'
+ config_get nft_user_set_policy 'config' 'nft_user_set_policy' 'memory'
+ config_get_bool nft_user_set_counter 'config' 'nft_user_set_counter' '0'
config_get procd_boot_delay 'config' 'procd_boot_delay' '0'
config_get resolver_set 'config' 'resolver_set'
config_get rule_create_option 'config' 'rule_create_option' 'add'
if is_nft; then
fw_maskXor="$(printf '%#x' "$((fw_mask ^ 0xffffffff))")"
fw_maskXor="${fw_maskXor:-0xff00ffff}"
+ if [ "$nft_user_set_counter" -eq '0' ]; then
+ unset nft_user_set_counter
+ fi
else
case $rule_create_option in
insert|-i|-I) rule_create_option='-I';;
case "$command" in
add)
- ips4 -q -! add "$ipset4" comment "$comment" && ipv4_error=0
- ips6 -q -! add "$ipset6" comment "$comment" && ipv6_error=0
+ ips4 -q -! add "$ipset4" ["$param"] comment "$comment" && ipv4_error=0
+ ips6 -q -! add "$ipset6" ["$param"] comment "$comment" && ipv6_error=0
;;
add_agh_element)
[ -n "$ipv6_enabled" ] || unset ipset6
fi
[ -z "$param4" ] && param4="$(resolveip_to_nftset4 "$param")"
[ -z "$param6" ] && param6="$(resolveip_to_nftset6 "$param")"
- nft4 add element inet "$nftTable" "$nftset4" "{ $param4 }" && ipv4_error=0
- nft6 add element inet "$nftTable" "$nftset6" "{ $param6 }" && ipv6_error=0
+ if [ -z "$param4" ] && [ -z "$param6" ]; then
+ state add 'errorSummary' 'errorFailedToResolve' "$param"
+ else
+ nft4 add element inet "$nftTable" "$nftset4" "{ $param4 }" && ipv4_error=0
+ nft6 add element inet "$nftTable" "$nftset6" "{ $param6 }" && ipv6_error=0
+ fi
fi
;;
add_dnsmasq_element)
create)
case "$type" in
ip|net)
- nft4 add set inet "$nftTable" "$nftset4" "{ type ipv4_addr; flags interval; auto-merge; comment \"$comment\"; }" && ipv4_error=0
- nft6 add set inet "$nftTable" "$nftset6" "{ type ipv6_addr; flags interval; auto-merge; comment \"$comment\"; }" && ipv6_error=0
+ nft4 add set inet "$nftTable" "$nftset4" "{ type ipv4_addr; counter; flags interval; auto-merge; comment \"$comment\"; }" && ipv4_error=0
+ nft6 add set inet "$nftTable" "$nftset6" "{ type ipv6_addr; counter; flags interval; auto-merge; comment \"$comment\"; }" && ipv6_error=0
;;
mac)
- nft4 add set inet "$nftTable" "$nftset4" "{ type ether_addr; flags interval; auto-merge; comment \"$comment\"; }" && ipv4_error=0
- nft6 add set inet "$nftTable" "$nftset6" "{ type ether_addr; flags interval; auto-merge; comment \"$comment\"; }" && ipv6_error=0
+ nft4 add set inet "$nftTable" "$nftset4" "{ type ether_addr; counter; flags interval; auto-merge; comment \"$comment\"; }" && ipv4_error=0
+ nft6 add set inet "$nftTable" "$nftset6" "{ type ether_addr; counter; flags interval; auto-merge; comment \"$comment\"; }" && ipv6_error=0
;;
esac
;;
create_dnsmasq_set)
- nft4 add set inet "$nftTable" "$nftset4" "{ type ipv4_addr; flags interval; auto-merge; comment \"$comment\"; }" && ipv4_error=0
- nft6 add set inet "$nftTable" "$nftset6" "{ type ipv6_addr; flags interval; auto-merge; comment \"$comment\"; }" && ipv6_error=0
+ nft4 add set inet "$nftTable" "$nftset4" "{ type ipv4_addr; counter; flags interval; auto-merge; comment \"$comment\"; }" && ipv4_error=0
+ nft6 add set inet "$nftTable" "$nftset6" "{ type ipv6_addr; counter; flags interval; auto-merge; comment \"$comment\"; }" && ipv6_error=0
;;
create_user_set)
case "$type" in
ip|net)
- nft4 add set inet "$nftTable" "$nftset4" "{ type ipv4_addr; flags interval; auto-merge; policy memory; comment \"$comment\"; }" && ipv4_error=0
- nft6 add set inet "$nftTable" "$nftset6" "{ type ipv6_addr; flags interval; auto-merge; policy memory; comment \"$comment\"; }" && ipv6_error=0
+ nft4 add set inet "$nftTable" "$nftset4" "{ type ipv4_addr; ${nft_user_set_counter:+counter;} flags interval; auto-merge; policy $nft_user_set_policy; comment \"$comment\"; }" && ipv4_error=0
+ nft6 add set inet "$nftTable" "$nftset6" "{ type ipv6_addr; ${nft_user_set_counter:+counter;} flags interval; auto-merge; policy $nft_user_set_policy; comment \"$comment\"; }" && ipv6_error=0
case "$target" in
dst)
nft add rule inet "$nftTable" "${nftPrefix}_prerouting" ip daddr "@${nftset4}" goto "${nftPrefix}_mark_${mark}" && ipv4_error=0
esac
;;
mac)
- nft4 add set inet "$nftTable" "$nftset4" "{ type ether_addr; flags interval; auto-merge; policy memory; comment \"$comment\"; }" && ipv4_error=0
- nft6 add set inet "$nftTable" "$nftset6" "{ type ether_addr; flags interval; auto-merge; policy memory; comment \"$comment\"; }" && ipv6_error=0
+ nft4 add set inet "$nftTable" "$nftset4" "{ type ether_addr; ${nft_user_set_counter:+counter;} flags interval; auto-merge; policy $nft_user_set_policy; comment \"$comment\"; }" && ipv4_error=0
+ nft6 add set inet "$nftTable" "$nftset6" "{ type ether_addr; ${nft_user_set_counter:+counter;} flags interval; auto-merge; policy $nft_user_set_policy; comment \"$comment\"; }" && ipv6_error=0
nft add rule inet "$nftTable" "${nftPrefix}_prerouting" ether saddr "@${nftset4}" goto "${nftPrefix}_mark_${mark}" && ipv4_error=0
nft add rule inet "$nftTable" "${nftPrefix}_prerouting" ether saddr "@${nftset6}" goto "${nftPrefix}_mark_${mark}" && ipv6_error=0
;;
fi
}
+cleanup_rt_tables() { sed -i '/pbr_/d' '/etc/iproute2/rt_tables'; sync; }
cleanup_dnsmasq() { [ -s "$dnsmasqFile" ] && resolverStoredHash="$(md5sum $dnsmasqFile | awk '{ print $1; }')" && rm "$dnsmasqFile" >/dev/null 2>&1; }
+
cleanup_main_chains() {
local i
for i in $chainsList; do
param4="$param4 -m set $negation --match-set ${ipsPrefix}_${iface}_4_${target}_${type}_${uid} $target"
param6="$param6 -m set $negation --match-set ${ipsPrefix}_${iface}_6_${target}_${type}_${uid} $target"
else
- param4="$param4 $negation -s $(resolveip_to_ipt -4 "$value")"
- param6="$param6 $negation -s $(resolveip_to_ipt -6 "$value")"
+ local resolvedIP4 resolvedIP6
+ resolvedIP4="$(resolveip_to_ipt4 "$value")"
+ resolvedIP6="$(resolveip_to_ipt6 "$value")"
+ if [ -z "$resolvedIP4" ] && [ -z "$resolvedIP6" ]; then
+ state add 'errorSummary' 'errorFailedToResolve' "$value"
+ fi
+ param4="$param4 $negation -s $resolvedIP4"
+ param6="$param6 $negation -s $resolvedIP6"
fi
fi
fi
param4="$param4 -m set $negation --match-set ${ipsPrefix}_${iface}_4_${target}_${type}_${uid} $target"
param6="$param6 -m set $negation --match-set ${ipsPrefix}_${iface}_6_${target}_${type}_${uid} $target"
else
- param4="$param4 $negation -d $(resolveip_to_ipt -4 "$value")"
- param6="$param6 $negation -d $(resolveip_to_ipt -6 "$value")"
+ local resolvedIP4 resolvedIP6
+ resolvedIP4="$(resolveip_to_ipt4 "$value")"
+ resolvedIP6="$(resolveip_to_ipt6 "$value")"
+ if [ -z "$resolvedIP4" ] && [ -z "$resolvedIP6" ]; then
+ state add 'errorSummary' 'errorFailedToResolve' "$value"
+ fi
+ param4="$param4 $negation -d $resolvedIP4"
+ param6="$param6 $negation -d $resolvedIP6"
fi
else
local target='dst' type='ip'
param4="$param4 $ip4Flag daddr $negation @${nftPrefix}_${iface}_4_${target}_${type}_${uid}"
param6="$param6 $ip6Flag daddr $negation @${nftPrefix}_${iface}_6_${target}_${type}_${uid}"
else
- param4="$param4 $ip4Flag daddr $negation {$(resolveip_to_nftset4 "$value")}"
- param6="$param6 $ip6Flag daddr $negation {$(resolveip_to_nftset6 "$value")}"
+ local resolvedIP4 resolvedIP6
+ resolvedIP4="$(resolveip_to_nftset4 "$value")"
+ resolvedIP6="$(resolveip_to_nftset6 "$value")"
+ if [ -z "$resolvedIP4" ] && [ -z "$resolvedIP6" ]; then
+ state add 'errorSummary' 'errorFailedToResolve' "$value"
+ fi
+ param4="$param4 $ip4Flag daddr $negation { $resolvedIP4 }"
+ param6="$param6 $ip6Flag daddr $negation { $resolvedIP6 }"
fi
else
local target='dst' type='ip'
local action="$1" tid="$2" mark="$3" iface="$4" gw4="$5" dev="$6" gw6="$7" dev6="$8" priority="$9"
local dscp s=0 i ipv4_error=1 ipv6_error=1
if [ -z "$tid" ] || [ -z "$mark" ] || [ -z "$iface" ]; then
+ state add 'errorSummary' 'errorInterfaceRoutingEmptyValues'
return 1
fi
case "$action" in
$ip_full rule del fwmark "${mark}/${fw_mask}" table "$tid" >/dev/null 2>&1
if ! is_netifd_table "$iface"; then
$ip_full route flush table "$tid" >/dev/null 2>&1
- sed -i "/${ipTablePrefix}_${iface}/d" '/etc/iproute2/rt_tables'
+ sed -i "/${ipTablePrefix}_${iface}\$/d" '/etc/iproute2/rt_tables'
sync
fi
return "$s"
fi
}
+boot() {
+ ubus -t 30 wait_for network.interface 2>/dev/null
+ rc_procd start_service 'on_boot'
+}
+
on_firewall_reload() {
if [ -z "$(ubus_get_status 'gateways')" ]; then # service is not running, do not start it on firewall reload
logger -t "$packageName" "Reload on firewall action aborted: service not running."
cleanup_main_chains
cleanup_sets
cleanup_marking_chains
+ cleanup_rt_tables
if ! is_nft; then
for i in $chainsList; do
i="$(str_to_upper "$i")"
config_load 'network'
config_foreach interface_process 'interface' 'destroy'
interface_process_tor 'tor' 'destroy'
+ cleanup_rt_tables
output 1 "\\n"
ip route flush cache
unset ifaceMark
'wan_ip_rules_priority:uinteger:30000' \
'rule_create_option:or("", "add", "insert"):add' \
'procd_reload_delay:integer:0' \
- 'webui_supported_protocol:list(string)'
+ 'webui_supported_protocol:list(string)' \
+ 'nft_user_set_policy:or("", "memory", "performance")'\
+ 'nft_user_set_counter:bool:0'
}
# shellcheck disable=SC2120
include $(TOPDIR)/rules.mk
PKG_NAME:=rp-pppoe
-PKG_VERSION:=3.14
-PKG_RELEASE:=3
+PKG_VERSION:=3.15
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://dianne.skoll.ca/projects/rp-pppoe/download
-PKG_HASH:=7825232f64ab4d618ef074d62d145ae43d6edc91b9a718c6130a4742bac40e2a
+PKG_HASH:=b1f318bc7e4e5b0fd8a8e23e8803f5e6e43165245a5a10a7162a92a6cf17829a
PKG_MAINTAINER:=
PKG_LICENSE:=LGPL-2.0-or-later
--- a/src/Makefile.in
+++ b/src/Makefile.in
-@@ -72,7 +72,7 @@ pppoe-sniff: pppoe-sniff.o if.o common.o
+@@ -73,7 +73,7 @@ pppoe-sniff: pppoe-sniff.o if.o common.o
@CC@ -o $@ $^ $(LDFLAGS)
pppoe-server: pppoe-server.o if.o debug.o common.o md5.o libevent/libevent.a @PPPOE_SERVER_DEPS@
--- a/src/Makefile.in
+++ b/src/Makefile.in
-@@ -140,7 +140,8 @@ plugin/plugin.o: plugin.c
+@@ -141,7 +141,8 @@ plugin/plugin.o: plugin.c
@CC@ -DPLUGIN=1 '-DRP_VERSION="$(RP_VERSION)"' $(CFLAGS) -I$(PPPD_INCDIR) -c -o $@ -fPIC $<
plugin/libplugin.a: plugin/discovery.o plugin/if.o plugin/common.o plugin/debug.o
PKG_NAME:=safe-search
PKG_VERSION:=2.0.1
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=11
PKG_LICENSE:=MIT
PKG_MAINTAINER:=Gregory L. Dietsche <Gregory.Dietsche@cuw.edu>
#
uci del_list dhcp.@dnsmasq[0].addnhosts=/etc/safe-search/enabled
uci add_list dhcp.@dnsmasq[0].addnhosts=/etc/safe-search/enabled
+uci del_list dhcp.@dnsmasq[0].addn_mount=/etc/safe-search/available
+uci add_list dhcp.@dnsmasq[0].addn_mount=/etc/safe-search/available
uci commit dhcp
/usr/sbin/safe-search-maintenance
PKG_NAME:=simple-adblock
PKG_VERSION:=1.9.3
-PKG_RELEASE:=5
+PKG_RELEASE:=6
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
PKG_LICENSE:=GPL-3.0-or-later
for hf in $blocked_domain $canaryDomains; do echo "$hf" | sed "$domainsFilter" >> $B_TMP; done
allowed_domain="${allowed_domain}
$(cat $A_TMP)"
- for hf in ${allowed_domain}; do hf="$(echo "$hf" | sed 's/\./\\./g')"; allow_filter="$allow_filter/^(.*\.)?${hf}$/d;"; done
+ for hf in ${allowed_domain}; do hf="$(echo "$hf" | sed 's/\./\\./g')"; allow_filter="$allow_filter/(^|\.)${hf}$/d;"; done
[ ! -s "$B_TMP" ] && return 1
for c in $string; do
output 2 " $c "
hf="$(echo "$c" | sed 's/\./\\./g')"
- if sed -i "/^${hf}$/d;/\.${hf}$/d;" "$outputFile" && \
+ if sed -i "/(^|\.)${hf}$/d;" "$outputFile" && \
uci_add_list_if_new "${packageName}" 'config' 'allowed_domain' "$c"; then
output_ok
else
include $(TOPDIR)/rules.mk
PKG_NAME:=snort3
-PKG_VERSION:=3.1.50.0
+PKG_VERSION:=3.1.52.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/snort3/snort3/archive/refs/tags/
-PKG_HASH:=983497578587c5b1291994608fef70700d7f251461e79ac897751bba57cc56b5
+PKG_HASH:=351ef4295b54d750ea557bdd5a10c8a04d1edc35003b0d84620451c998591117
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_LICENSE:=GPL-2.0-only
include $(TOPDIR)/rules.mk
PKG_NAME:=snowflake
-PKG_VERSION:=2.4.1
+PKG_VERSION:=2.4.2
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://git.torproject.org/pluggable-transports/snowflake.git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-PKG_MIRROR_HASH:=91f32c3f56718ae35641c734aa061be138eb7c0d1bc88596b42e731e30aaa27a
+PKG_MIRROR_HASH:=b6e47a50558ed4f5a4b5f9bc25d6aaf7da168b305dd9b52b3a92ecb028d883fc
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=socat
-PKG_VERSION:=1.7.4.1
+PKG_VERSION:=1.7.4.4
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.dest-unreach.org/socat/download
-PKG_HASH:=3faca25614e89123dff5045680549ecef519d02e331aaf3c4f5a8f6837c675e9
+PKG_HASH:=fbd42bd2f0e54a3af6d01bdf15385384ab82dbc0e4f1a5e153b3e0be1b6380ac
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=GPL-2.0-or-later OpenSSL
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/gargargar/udphp.git
-PKG_SOURCE_DATE:=2022-12-30
-PKG_SOURCE_VERSION:=e4ab512ab5ba3955fd5a23a76ffaae00f627ec3c
-PKG_MIRROR_HASH:=68ce9885b7fc1e10ff2afbe003dd65489d3e64ca0212914c513469e581127974
+PKG_SOURCE_DATE:=2023-01-13
+PKG_SOURCE_VERSION:=7c0fc5fcf3b807b053c5906bdd8c2acb244c1cbd
+PKG_MIRROR_HASH:=19693aef4020e58955dba25f28b76a396a4c1fbb7ef7464cfaf45405d9eb0c5e
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/rules.mk
PKG_NAME:=v2ray-core
-PKG_VERSION:=5.2.0
+PKG_VERSION:=5.2.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=3594fcec033706cbc94ff76ecf86a44f025164baa5da9b2286dea32f2b6029f9
+PKG_HASH:=97bc872e798fed51c23c39f8f63ee25984658e2b252b0ec2c8ec469c00a4d77a
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=xfrpc
-PKG_VERSION:=1.11.587
+PKG_VERSION:=2.1.606
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/liudf0716/xfrpc.git
PKG_SOURCE_VERSION:=$(PKG_VERSION)
-PKG_MIRROR_HASH:=da58e702d3b451e1b5a3d59ac3842cc424f636ca879c19ebb94cce8aa8dde3bb
+PKG_MIRROR_HASH:=2f9f98fde54f66a6c562356f66d0abd3ec41fcd6833915831378a37398ff2cc5
PKG_MAINTAINER:=Dengfeng Liu <liudf0716@gmail.com>
PKG_LICENSE:=GPL-3.0-or-later
PKG_NAME:=xinetd
PKG_VERSION:=2.3.15
-PKG_RELEASE:=14
+PKG_RELEASE:=15
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/xinetd-org/xinetd/archive
-PKG_HASH:=bf4e060411c75605e4dcbdf2ac57c6bd9e1904470a2f91e01ba31b50a80a5be3
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=$(PKG_NAME)-2-3-15
+PKG_SOURCE_URL:=https://github.com/xinetd-org/xinetd
+PKG_MIRROR_HASH:=ef2258416a278ec7aebaa1e3501c0b59f5ae5e0ea7f1f0220b20143eb208881f
PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
PKG_LICENSE:=xinetd
include $(TOPDIR)/rules.mk
PKG_NAME:=mpd
-PKG_VERSION:=0.23.9
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=0.23.11
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://www.musicpd.org/download/mpd/0.23
-PKG_HASH:=2becaba980402e8dc7972ccc3476e493b7ae2eeb720d31fa6712472ed48e9f2d
+PKG_HASH:=edb4e7a8f9dff238b5610f9e2461940ea98c727a5462fafb1cdf836304dfdca9
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0-or-later
--- /dev/null
+From e4b055eb6d08c5c8f8d85828ce4005d410e462cb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
+ <congdanhqx@gmail.com>
+Date: Thu, 1 Dec 2022 08:29:23 +0700
+Subject: [PATCH] v0.23.x: RemoteTagCache: add missing include
+
+Fix build with Boost 1.81.0. `<array>` was included by one of those boost headers,
+however, it's no longer included as of Boost 1.81.0.
+
+`master` doesn't use `std::array` in this file.
+
+While we're at it, add all necessary inclusion files.
+---
+ src/RemoteTagCache.hxx | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/src/RemoteTagCache.hxx
++++ b/src/RemoteTagCache.hxx
+@@ -28,7 +28,11 @@
+ #include <boost/intrusive/list.hpp>
+ #include <boost/intrusive/unordered_set.hpp>
+
++#include <array>
++#include <functional>
++#include <memory>
+ #include <string>
++#include <utility>
+
+ class RemoteTagCacheHandler;
+
include $(TOPDIR)/rules.mk
PKG_NAME:=acpica-unix
-PKG_VERSION:=20211217
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=20221020
+PKG_RELEASE:=2
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://acpica.org/sites/$(patsubst %-unix,%,$(PKG_NAME))/files/$(PKG_SOURCE_URL)
-PKG_HASH:=2511f85828820d747fa3e2c3433d3a38c22db3d9c2fd900e1a84eb4173cb5992
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar_0.gz
+PKG_CAT:=gzip -dc
+PKG_SOURCE_URL:=https://acpica.org/sites/$(patsubst %-unix,%,$(PKG_NAME))/files/
+PKG_HASH:=33a2e394aca0ca57d4018afe3da340dfad5eb45b1b9300e81dd595fda07cf1c5
PKG_MAINTAINER:=Philip Prindeville <philipp@redfish-solutions.com>
PKG_LICENSE:=GPL-2.0
--- /dev/null
+From 0f814783ef9ed3a50e15cab08579218ec45b4640 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
+Date: Sat, 21 May 2022 12:15:16 +0200
+Subject: [PATCH 1/3] ACPI_CAST_PTR: cast through "void *"
+
+Not all pointer are castable to integers directly and ACPI_UINTPTR_T is
+not guaranteed to be "void *".
+---
+ source/include/actypes.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/source/include/actypes.h
++++ b/source/include/actypes.h
+@@ -649,7 +649,7 @@ typedef UINT64
+
+ /* Pointer manipulation */
+
+-#define ACPI_CAST_PTR(t, p) ((t *) (ACPI_UINTPTR_T) (p))
++#define ACPI_CAST_PTR(t, p) ((t *) (ACPI_UINTPTR_T) (void *) (p))
+ #define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (ACPI_UINTPTR_T) (p))
+ #define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (UINT8, (a)) + (ACPI_SIZE)(b)))
+ #define ACPI_SUB_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (UINT8, (a)) - (ACPI_SIZE)(b)))
--- /dev/null
+From 6b7a78c41c04772a30923c8c0ba71770d55ac815 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
+Date: Sat, 21 May 2022 12:17:14 +0200
+Subject: [PATCH 2/3] Linux non-kernel: Use use uintptr_t for ACPI_UINTPTR_T
+
+---
+ source/include/platform/aclinux.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/source/include/platform/aclinux.h
++++ b/source/include/platform/aclinux.h
+@@ -168,6 +168,8 @@
+ #define ACPI_USE_DO_WHILE_0
+ #define ACPI_IGNORE_PACKAGE_RESOLUTION_ERRORS
+
++#define ACPI_UINTPTR_T uintptr_t
++
+
+ #ifdef __KERNEL__
+
+@@ -252,8 +254,6 @@
+ #define ACPI_SPINLOCK spinlock_t *
+ #define ACPI_CPU_FLAGS unsigned long
+
+-#define ACPI_UINTPTR_T uintptr_t
+-
+ #define ACPI_TO_INTEGER(p) ((uintptr_t)(p))
+ #define ACPI_OFFSET(d, f) offsetof(d, f)
+
+@@ -311,6 +311,7 @@
+
+ #ifdef ACPI_USE_STANDARD_HEADERS
+ #include <unistd.h>
++#include <stdint.h>
+ #endif
+
+ /* Define/disable kernel-specific declarators */
--- /dev/null
+From 2185f7d5d7a5650dbcb6a05e9de41f340cd3b865 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
+Date: Sat, 21 May 2022 12:17:58 +0200
+Subject: [PATCH 3/3] debug: use UINT_PTR_T to store stack boundaries
+
+GCC12 complains about storing invalid pointers, store them as integers
+instead.
+
+obj/acpiexec ../../../source/components/utilities/utdebug.c
+../../../source/components/utilities/utdebug.c: In function 'AcpiUtInitStackPtrTrace':
+../../../source/components/utilities/utdebug.c:188:31: error: storing the address of local variable 'CurrentSp' in 'AcpiGbl_EntryStackPointer' [-Werror=dangling-pointer=]
+ 188 | AcpiGbl_EntryStackPointer = &CurrentSp;
+ | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
+../../../source/components/utilities/utdebug.c:185:29: note: 'CurrentSp' declared here
+ 185 | ACPI_SIZE CurrentSp;
+ | ^~~~~~~~~
+
+Fixes #771
+---
+ source/components/debugger/dbstats.c | 4 ++--
+ source/components/utilities/utdebug.c | 6 +++---
+ source/components/utilities/utinit.c | 2 +-
+ source/include/acglobal.h | 4 ++--
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
+--- a/source/components/debugger/dbstats.c
++++ b/source/components/debugger/dbstats.c
+@@ -647,8 +647,8 @@ AcpiDbDisplayStatistics (
+ AcpiGbl_EntryStackPointer, AcpiGbl_LowestStackPointer);
+
+ AcpiOsPrintf ("\nSubsystem Stack Usage:\n\n");
+- AcpiOsPrintf ("Entry Stack Pointer %p\n", AcpiGbl_EntryStackPointer);
+- AcpiOsPrintf ("Lowest Stack Pointer %p\n", AcpiGbl_LowestStackPointer);
++ AcpiOsPrintf ("Entry Stack Pointer %p\n", ACPI_TO_POINTER(AcpiGbl_EntryStackPointer));
++ AcpiOsPrintf ("Lowest Stack Pointer %p\n", ACPI_TO_POINTER(AcpiGbl_LowestStackPointer));
+ AcpiOsPrintf ("Stack Use %X (%u)\n", Temp, Temp);
+ AcpiOsPrintf ("Deepest Procedure Nesting %u\n", AcpiGbl_DeepestNesting);
+ #endif
+--- a/source/components/utilities/utdebug.c
++++ b/source/components/utilities/utdebug.c
+@@ -185,7 +185,7 @@ AcpiUtInitStackPtrTrace (
+ ACPI_SIZE CurrentSp;
+
+
+- AcpiGbl_EntryStackPointer = &CurrentSp;
++ AcpiGbl_EntryStackPointer = ACPI_TO_INTEGER(&CurrentSp);
+ }
+
+
+@@ -208,9 +208,9 @@ AcpiUtTrackStackPtr (
+ ACPI_SIZE CurrentSp;
+
+
+- if (&CurrentSp < AcpiGbl_LowestStackPointer)
++ if (ACPI_TO_INTEGER(&CurrentSp) < AcpiGbl_LowestStackPointer)
+ {
+- AcpiGbl_LowestStackPointer = &CurrentSp;
++ AcpiGbl_LowestStackPointer = ACPI_TO_INTEGER(&CurrentSp);
+ }
+
+ if (AcpiGbl_NestingLevel > AcpiGbl_DeepestNesting)
+--- a/source/components/utilities/utinit.c
++++ b/source/components/utilities/utinit.c
+@@ -359,7 +359,7 @@ AcpiUtInitGlobals (
+ #endif
+
+ #ifdef ACPI_DEBUG_OUTPUT
+- AcpiGbl_LowestStackPointer = ACPI_CAST_PTR (ACPI_SIZE, ACPI_SIZE_MAX);
++ AcpiGbl_LowestStackPointer = ACPI_SIZE_MAX;
+ #endif
+
+ #ifdef ACPI_DBG_TRACK_ALLOCATIONS
+--- a/source/include/acglobal.h
++++ b/source/include/acglobal.h
+@@ -332,8 +332,8 @@ extern const ACPI_PREDEFINED_NAMES
+ ACPI_GLOBAL (UINT32, AcpiGbl_CurrentNodeCount);
+ ACPI_GLOBAL (UINT32, AcpiGbl_CurrentNodeSize);
+ ACPI_GLOBAL (UINT32, AcpiGbl_MaxConcurrentNodeCount);
+-ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_EntryStackPointer);
+-ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_LowestStackPointer);
++ACPI_GLOBAL (ACPI_UINTPTR_T, AcpiGbl_EntryStackPointer);
++ACPI_GLOBAL (ACPI_UINTPTR_T, AcpiGbl_LowestStackPointer);
+ ACPI_GLOBAL (UINT32, AcpiGbl_DeepestNesting);
+ ACPI_INIT_GLOBAL (UINT32, AcpiGbl_NestingLevel, 0);
+ #endif
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
-PKG_SOURCE_URL:=ftp://ftp.debian.org/debian/pool/main/b/bc
+PKG_SOURCE_URL:=@DEBIAN/pool/main/b/bc
PKG_HASH:=5e1471869dd27ba4120dd3942d2f4ec6646cf917fb056be9ae0d3a8259668d47
PKG_MAINTAINER:=Bruno Randolf <br1@einfach.org>
include $(TOPDIR)/rules.mk
PKG_NAME:=bluez
-PKG_VERSION:=5.64
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=5.66
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/bluetooth/
-PKG_HASH:=ae437e65b6b3070c198bc5b0109fe9cdeb9eaa387380e2072f9de65fe8a1de34
+PKG_HASH:=39fea64b590c9492984a0c27a89fc203e1cdc74866086efb8f4698677ab2b574
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
DEPENDS:=+bluez-libs
endef
+define Package/bluez-utils-btmon
+$(call Package/bluez/Default)
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE+= utilities
+ DEPENDS:=+bluez-libs +glib2
+endef
+
define Package/bluez-utils-extra
$(call Package/bluez/Default)
SECTION:=utils
define Package/bluez-utils/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/bdaddr $(1)/usr/bin/
-# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/bccmd $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/bluemoon $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/btattach $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/btmon $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ciptool $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/hciattach $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/hciconfig $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rfcomm $(1)/usr/bin/
endef
+define Package/bluez-utils-btmon/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/btmon $(1)/usr/bin/
+endef
+
define Package/bluez-utils-extra/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/btmgmt $(1)/usr/bin/
$(eval $(call BuildPackage,bluez-libs))
$(eval $(call BuildPackage,bluez-utils))
+$(eval $(call BuildPackage,bluez-utils-btmon))
$(eval $(call BuildPackage,bluez-utils-extra))
$(eval $(call BuildPackage,bluez-daemon))
--- a/tools/hciattach_bcm43xx.c
+++ b/tools/hciattach_bcm43xx.c
-@@ -354,11 +354,8 @@ int bcm43xx_init(int fd, int def_speed,
+@@ -350,11 +350,8 @@ int bcm43xx_init(int fd, int def_speed,
return -1;
if (bcm43xx_locate_patch(FIRMWARE_DIR, chip_name, fw_path)) {
if (bcm43xx_load_firmware(fd, fw_path))
return -1;
-@@ -368,6 +365,7 @@ int bcm43xx_init(int fd, int def_speed,
+@@ -364,6 +361,7 @@ int bcm43xx_init(int fd, int def_speed,
return -1;
}
tools/hciattach_bcm43xx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- a/tools/hciattach_bcm43xx.c
-+++ b/tools/hciattach_bcm43xx.c
-@@ -31,7 +31,7 @@
- #include "hciattach.h"
+--- a/tools/hciattach.h
++++ b/tools/hciattach.h
+@@ -41,7 +41,7 @@
+ #define HCI_UART_VND_DETECT 5
#ifndef FIRMWARE_DIR
-#define FIRMWARE_DIR "/etc/firmware"
+#define FIRMWARE_DIR "/lib/firmware/brcm"
#endif
- #define FW_EXT ".hcd"
+ int read_hci_event(int fd, unsigned char *buf, int size);
--- a/Makefile.in
+++ b/Makefile.in
-@@ -3479,7 +3479,7 @@ unit_tests = $(am__append_55) unit/test-
- @CLIENT_TRUE@ client/admin.c
+@@ -3598,7 +3598,7 @@ unit_tests = $(am__append_62) unit/test-
+ @CLIENT_TRUE@ client/player.h client/player.c
@CLIENT_TRUE@client_bluetoothctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
-@CLIENT_TRUE@ $(GLIB_LIBS) $(DBUS_LIBS) -lreadline
@ZSH_COMPLETIONS_TRUE@zshcompletiondir = $(ZSH_COMPLETIONDIR)
@ZSH_COMPLETIONS_TRUE@dist_zshcompletion_DATA = completion/zsh/_bluetoothctl
-@@ -3722,7 +3722,7 @@ unit_tests = $(am__append_55) unit/test-
+@@ -3877,7 +3877,7 @@ unit_tests = $(am__append_62) unit/test-
- @MESH_TRUE@@TOOLS_TRUE@tools_meshctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
- @MESH_TRUE@@TOOLS_TRUE@ lib/libbluetooth-internal.la \
--@MESH_TRUE@@TOOLS_TRUE@ $(GLIB_LIBS) $(DBUS_LIBS) -ljson-c -lreadline
-+@MESH_TRUE@@TOOLS_TRUE@ $(GLIB_LIBS) $(DBUS_LIBS) -ljson-c -lreadline -lncurses
+ @DEPRECATED_TRUE@@MESH_TRUE@@TOOLS_TRUE@tools_meshctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
+ @DEPRECATED_TRUE@@MESH_TRUE@@TOOLS_TRUE@ lib/libbluetooth-internal.la \
+-@DEPRECATED_TRUE@@MESH_TRUE@@TOOLS_TRUE@ $(GLIB_LIBS) $(DBUS_LIBS) -ljson-c -lreadline
++@DEPRECATED_TRUE@@MESH_TRUE@@TOOLS_TRUE@ $(GLIB_LIBS) $(DBUS_LIBS) -ljson-c -lreadline -lncurses
@MESH_TRUE@@TOOLS_TRUE@tools_mesh_cfgclient_SOURCES = tools/mesh-cfgclient.c \
@MESH_TRUE@@TOOLS_TRUE@ tools/mesh/model.h tools/mesh/config-model.h \
-@@ -3736,7 +3736,7 @@ unit_tests = $(am__append_55) unit/test-
+@@ -3891,7 +3891,7 @@ unit_tests = $(am__append_62) unit/test-
@MESH_TRUE@@TOOLS_TRUE@ mesh/crypto.h mesh/crypto.c
@MESH_TRUE@@TOOLS_TRUE@tools_mesh_cfgclient_LDADD = lib/libbluetooth-internal.la src/libshared-ell.la \
@MESH_TRUE@@TOOLS_TRUE@tools_mesh_cfgtest_SOURCES = tools/mesh-cfgtest.c
@MESH_TRUE@@TOOLS_TRUE@tools_mesh_cfgtest_LDADD = lib/libbluetooth-internal.la src/libshared-ell.la \
-@@ -3793,7 +3793,7 @@ unit_tests = $(am__append_55) unit/test-
+@@ -3948,7 +3948,7 @@ unit_tests = $(am__append_62) unit/test-
@READLINE_TRUE@ tools/obex-client-tool.c
@READLINE_TRUE@tools_obex_client_tool_LDADD = lib/libbluetooth-internal.la \
@READLINE_TRUE@tools_obex_server_tool_SOURCES = $(gobex_sources) $(btio_sources) \
@READLINE_TRUE@ tools/obex-server-tool.c
-@@ -3804,15 +3804,15 @@ unit_tests = $(am__append_55) unit/test-
- @READLINE_TRUE@tools_bluetooth_player_SOURCES = tools/bluetooth-player.c
+@@ -3959,15 +3959,15 @@ unit_tests = $(am__append_62) unit/test-
+ @READLINE_TRUE@tools_bluetooth_player_SOURCES = tools/bluetooth-player.c client/player.c
@READLINE_TRUE@tools_bluetooth_player_LDADD = gdbus/libgdbus-internal.la \
@READLINE_TRUE@ src/libshared-glib.la \
-@READLINE_TRUE@ $(GLIB_LIBS) $(DBUS_LIBS) -lreadline
@DEPRECATED_TRUE@@READLINE_TRUE@attrib_gatttool_SOURCES = attrib/gatttool.c attrib/att.c attrib/gatt.c \
@DEPRECATED_TRUE@@READLINE_TRUE@ attrib/gattrib.c btio/btio.c \
-@@ -3821,7 +3821,7 @@ unit_tests = $(am__append_55) unit/test-
+@@ -3976,7 +3976,7 @@ unit_tests = $(am__append_62) unit/test-
@DEPRECATED_TRUE@@READLINE_TRUE@ client/display.h
@DEPRECATED_TRUE@@READLINE_TRUE@attrib_gatttool_LDADD = lib/libbluetooth-internal.la \
@CUPS_TRUE@cupsdir = $(libdir)/cups/backend
@CUPS_TRUE@profiles_cups_bluetooth_SOURCES = profiles/cups/main.c \
-@@ -3841,7 +3841,7 @@ unit_tests = $(am__append_55) unit/test-
+@@ -3996,7 +3996,7 @@ unit_tests = $(am__append_62) unit/test-
@BTPCLIENT_TRUE@tools_btpclient_DEPENDENCIES = lib/libbluetooth-internal.la $(ell_dependencies)
@BTPCLIENT_TRUE@tools_btpclientctl_SOURCES = tools/btpclientctl.c client/display.c
@BTPCLIENT_TRUE@tools_btpclientctl_LDADD = src/libshared-mainloop.la src/libshared-glib.la \
--- a/src/adapter.c
+++ b/src/adapter.c
-@@ -601,7 +601,9 @@ static void settings_changed(struct btd_
+@@ -634,7 +634,9 @@ static void settings_changed(struct btd_
*/
if (!adapter->discovery_discoverable)
store_adapter_info(adapter);
--- /dev/null
+--- a/src/shared/util.c
++++ b/src/shared/util.c
+@@ -23,6 +23,9 @@
+ #include <dirent.h>
+ #include <limits.h>
+ #include <string.h>
++#ifndef MAX_INPUT
++#define MAX_INPUT _POSIX_MAX_INPUT
++#endif
+
+ #ifdef HAVE_SYS_RANDOM_H
+ #include <sys/random.h>
PKG_NAME:=crun
PKG_VERSION:=1.7.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/containers/crun.git
CATEGORY:=Utilities
TITLE:=crun
URL:=https://github.com/containers/crun
- DEPENDS:=@!arc +libseccomp +libcap
+ DEPENDS:=@!arc +libseccomp +libcap +libgcrypt
endef
define Package/crun/description
GOPATH=$(GO_PKG_BUILD_DIR) \
GOCACHE=$(GO_BUILD_CACHE_DIR) \
GOROOT_FINAL=$(GO_TARGET_ROOT) \
- CC=$(TARGET_CC) \
- CXX=$(TARGET_CXX) \
+ CC="$(TARGET_CC)" \
+ CXX="$(TARGET_CXX)" \
$(GO_PKG_VARS)
MAKE_FLAGS += \
COMMIT=$(PKG_SOURCE_VERSION)
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=efibootmgr
+PKG_VERSION:=18
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/rhboot/efibootmgr.git
+PKG_SOURCE_DATE:=2022-11-12
+PKG_SOURCE_VERSION:=1904f9cd5a48207d49e393ac8de824f54ccfb697
+PKG_MIRROR_HASH:=0355e00bb54d468ecbaa106aa703dd389f2f2f4c7b7afb78a258cec10d75f78d
+
+PKG_LICENSE:=GPL-2.0-only
+PKG_LICENSE_FILES:=COPYING
+PKG_MAINTAINER:=OSkari Rauta <oskari.rauta@gmail.com>
+
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/efibootmgr
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=Application to modify the EFI Boot Manager
+ DEPENDS:=@TARGET_x86_64 +efivar +libpopt
+ URL:=https://github.com/rhboot/efibootmgr
+endef
+
+define Package/efibootmgr/description
+ This is efibootmgr, a Linux user-space application to modify the
+ Intel Extensible Firmware Interface (EFI) Boot Manager.
+ This application can create and destroy boot entries, change
+ the boot order, change the next running boot option, and more.
+
+ Details on the EFI Boot Manager are available from the
+ EFI Specification, v1.02 or above, available from:
+ http://www.uefi.org
+
+ Note: efibootmgr requires either the efivarfs or the legacy
+ efivars kernel module to be loaded prior to use.
+endef
+
+MAKE_VARS += \
+ EFIDIR="/boot/EFI" \
+ PCDIR="$(STAGING_DIR)/usr/lib/pkgconfig" \
+ EXTRAINCDIR="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/usr/include/efivar" \
+ EXTRALIBDIR="-L$(STAGING_DIR)/usr/lib"
+
+define Package/efibootmgr/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{efibootdump,efibootmgr} $(1)/usr/sbin/
+endef
+
+$(eval $(call BuildPackage,efibootmgr))
include $(TOPDIR)/rules.mk
PKG_NAME:=evtest
-PKG_VERSION:=1.34
-PKG_RELEASE:=3
+PKG_VERSION:=1.35
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=https://cgit.freedesktop.org/evtest/snapshot
-PKG_HASH:=e49f1f160b30c8f7c2a4caef5ab655f1caf816483d19fdedd6db2d251d7ab80e
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=https://gitlab.freedesktop.org/libevdev/evtest
+PKG_MIRROR_HASH:=0a2599d92a6915ecedf43c341917fb6f332ffd3967352a2458acf5290167813e
PKG_MAINTAINER:=Pushpal Sidhu <psidhu.devel@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
+++ /dev/null
-From 12d5ea5ca2d9a47a1cab06caf2b36967667a3daf Mon Sep 17 00:00:00 2001
-From: Leo <thinkabit.ukim@gmail.com>
-Date: Sun, 24 Nov 2019 20:58:20 +0100
-Subject: [PATCH] Add missing include of limits.h for PATH_MAX
-
----
- evtest.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/evtest.c
-+++ b/evtest.c
-@@ -59,6 +59,7 @@
- #include <sys/time.h>
- #include <sys/types.h>
- #include <unistd.h>
-+#include <limits.h> /* PATH_MAX */
-
- #define BITS_PER_LONG (sizeof(long) * 8)
- #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+++ /dev/null
-From 648f5c1a9e07843e185782d207bc1bcbe6586f6e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Nov 2019 11:58:58 -0800
-Subject: [PATCH] Fix build on 32bit arches with 64bit time_t
-
-time element is deprecated on new input_event structure in kernel's
-input.h [1]
-
-[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- evtest.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
---- a/evtest.c
-+++ b/evtest.c
-@@ -61,6 +61,11 @@
- #include <unistd.h>
- #include <limits.h> /* PATH_MAX */
-
-+#ifndef input_event_sec
-+#define input_event_sec time.tv_sec
-+#define input_event_usec time.tv_usec
-+#endif
-+
- #define BITS_PER_LONG (sizeof(long) * 8)
- #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
- #define OFF(x) ((x)%BITS_PER_LONG)
-@@ -1140,7 +1145,7 @@ static int print_events(int fd)
- type = ev[i].type;
- code = ev[i].code;
-
-- printf("Event: time %ld.%06ld, ", ev[i].time.tv_sec, ev[i].time.tv_usec);
-+ printf("Event: time %ld.%06ld, ", ev[i].input_event_sec, ev[i].input_event_usec);
-
- if (type == EV_SYN) {
- if (code == SYN_MT_REPORT)
include $(TOPDIR)/rules.mk
PKG_NAME:=flashrom
-PKG_VERSION:=1.2
-PKG_RELEASE:=2
+PKG_VERSION:=1.2.1
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://download.flashrom.org/releases
-PKG_HASH:=e1f8d95881f5a4365dfe58776ce821dfcee0f138f75d0f44f8a3cd032d9ea42b
+PKG_HASH:=89a7ff5beb08c89b8795bbd253a51b9453547a864c31793302296b56bbc56d65
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-v$(PKG_VERSION)
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
include $(TOPDIR)/rules.mk
PKG_NAME:=lrzsz
-PKG_VERSION:=0.12.20
-PKG_RELEASE:=3
+PKG_VERSION:=0.12.21
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://ohse.de/uwe/releases/
-PKG_HASH:=c28b36b14bddb014d9e9c97c52459852f97bd405f89113f30bee45ed92728ff1
+PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
+PKG_SOURCE_URL:=@DEBIAN/pool/main/l/lrzsz/
+PKG_HASH:=3262e5df47b108d33e184ff3bf5af14ddca1ac15118ac4ed9171a57c1593ae00
+PKG_BUILD_DIR=$(BUILD_DIR)/lrzsz-990823
PKG_MAINTAINER:=Hsing-Wang Liao <kuoruan@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:lrzsz_project
PKG_INSTALL:=1
define Package/lrzsz
SECTION:=utils
CATEGORY:=Utilities
- TITLE:=X, Y and Z-modem protocols
+ TITLE:=Tools for zmodem/xmodem/ymodem file transfer
URL:=https://ohse.de/uwe/software/lrzsz.html
endef
define Package/lrzsz/description
- Transfer files in your login sessions.
- Very leightweight and straight forward.
- You just need a terminal client that can do
- either X, Y or Z-modem file transfers.
+ lrzsz is a cosmetically modified zmodem/ymodem/xmodem package built
+ from the public-domain version of Chuck Forsberg's rzsz package.
+
+ These programs use error correcting protocols ({z,x,y}modem) to send
+ (sz, sx, sb) and receive (rz, rx, rb) files over a dial-in serial port
+ from a variety of programs running under various operating systems.
+endef
+
+# to stop automake from running, the bundled autohell crap is too old
+define Build/Configure
+ touch $(PKG_BUILD_DIR)/*
+ touch $(PKG_BUILD_DIR)/*/*
+ $(call Build/Configure/Default)
endef
define Package/lrzsz/install
--- /dev/null
+From 89fef6d8dc539ed6225b46b8e755e08bbf48d27b Mon Sep 17 00:00:00 2001
+From: Uwe Ohse <uwe@ohse.de>
+Date: Sun, 1 Mar 2020 22:34:24 +0000
+Subject: [PATCH] siginterrupt after the call to signal, otherwise ymodem
+ transfer hangs. WTF?
+
+---
+ src/zreadline.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/src/zreadline.c
++++ b/src/zreadline.c
+@@ -71,6 +71,9 @@ readline_internal(unsigned int timeout)
+ vstringf("Calling read: alarm=%d Readnum=%d ",
+ n, readline_readnum);
+ signal(SIGALRM, zreadline_alarm_handler);
++#ifdef HAVE_SIGINTERRUPT
++ siginterrupt(SIGALRM,1);
++#endif
+ alarm(n);
+ }
+ else if (Verbose > 5)
--- /dev/null
+From a7c525191aa725f4ebb7b489cdd7dd854a4e42fb Mon Sep 17 00:00:00 2001
+From: Uwe Ohse <uwe@ohse.de>
+Date: Sun, 1 Mar 2020 22:35:28 +0000
+Subject: [PATCH] may-be-security-fix: avoid possible underflow
+
+Fixes: CVE-2018-10195
+
+[a.heider: mention CVE in commit message]
+---
+ src/zm.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/src/zm.c
++++ b/src/zm.c
+@@ -432,10 +432,11 @@ zsdata(const char *buf, size_t length, i
+ VPRINTF(3,("zsdata: %lu %s", (unsigned long) length,
+ Zendnames[(frameend-ZCRCE)&3]));
+ crc = 0;
+- do {
++ while (length>0) {
+ zsendline(*buf); crc = updcrc((0377 & *buf), crc);
+ buf++;
+- } while (--length>0);
++ length--;
++ }
+ xsendline(ZDLE); xsendline(frameend);
+ crc = updcrc(frameend, crc);
+
--- a/src/Makefile.in
+++ b/src/Makefile.in
-@@ -372,13 +372,13 @@ install-exec-local:
+@@ -414,13 +414,13 @@ install-exec-local:
rm -f $(DESTDIR)/$(bindir)/`echo lsb | sed -e '$(transform)'`
ln $(DESTDIR)/$(bindir)/`echo lsz |sed -e '$(transform)'` \
$(DESTDIR)/$(bindir)/`echo lsb |sed -e '$(transform)'`
--- a/src/lrz.c
+++ b/src/lrz.c
-@@ -2319,7 +2319,7 @@ exec2(const char *s)
+@@ -2296,7 +2296,7 @@ exec2(const char *s)
if (*s == '!')
++s;
io_mode(0,0);
#endif
--- a/src/lsz.c
+++ b/src/lsz.c
-@@ -1997,7 +1997,7 @@ zsendfdata (struct zm_fileinfo *zi)
+@@ -1988,7 +1988,7 @@ zsendfdata (struct zm_fileinfo *zi)
blklen = calc_blklen (total_sent);
total_sent += blklen + OVERHEAD;
if (Verbose > 2 && blklen != old)
#ifdef HAVE_MMAP
if (mm_addr) {
if (zi->bytes_sent + blklen < mm_size)
---- a/src/tcp.c
-+++ b/src/tcp.c
-@@ -56,7 +56,7 @@ tcp_server (char *buf)
- struct sockaddr_in s;
- struct sockaddr_in t;
- int on=1;
-- size_t len;
-+ socklen_t len;
-
- if ((sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
- error(1,errno,"socket");
-@@ -91,7 +91,7 @@ tcp_accept (int d)
- {
- int so;
- struct sockaddr_in s;
-- size_t namelen;
-+ socklen_t namelen;
- int num=0;
-
- namelen = sizeof(s);
--- a/src/zm.c
+++ b/src/zm.c
-@@ -451,7 +451,7 @@ zsda32(const char *buf, size_t length, i
+@@ -453,7 +453,7 @@ zsda32(const char *buf, size_t length, i
int c;
unsigned long crc;
int i;
zsendline_s(buf,length);
--- a/src/zreadline.c
+++ b/src/zreadline.c
-@@ -68,13 +68,13 @@ readline_internal(unsigned int timeout)
+@@ -68,7 +68,7 @@ readline_internal(unsigned int timeout)
else if (n==0)
n=1;
if (Verbose > 5)
+ vstringf("Calling read: alarm=%u Readnum=%zu ",
n, readline_readnum);
signal(SIGALRM, zreadline_alarm_handler);
+ #ifdef HAVE_SIGINTERRUPT
+@@ -77,7 +77,7 @@ readline_internal(unsigned int timeout)
alarm(n);
}
else if (Verbose > 5)
include $(TOPDIR)/rules.mk
PKG_NAME:=nano
-PKG_VERSION:=7.1
+PKG_VERSION:=7.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/nano
-PKG_HASH:=57ba751e9b7519f0f6ddee505202e387c75dde440c1f7aa1b9310cc381406836
+PKG_HASH:=86f3442768bd2873cec693f83cdf80b4b444ad3cc14760b74361474fc87a4526
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=openocd
-PKG_SOURCE_VERSION:=v0.11.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_SOURCE_VERSION:=v0.12.0
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://git.code.sf.net/p/openocd/code
-PKG_MIRROR_HASH:=ec31ce908d951c6c7e173c7474269f3f105d7a7b3991afbe8f54f8d96646c725
+PKG_MIRROR_HASH:=19085e31904d9a04a77dc79e02c441372498e680361e77fe9ffdb482c2ddb19c
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
TITLE:=OpenOCD Utility
URL:=http://openocd.sf.net/
DEPENDS:=+libusb-1.0 \
- +libusb-compat \
+libftdi1 \
+hidapi \
- +libgpiod
+ +libgpiod \
+ +libjaylink
endef
define Package/openocd/description
define Build/Prepare
$(call Build/Prepare/Default)
-$(RM) $(PKG_BUILD_DIR)/guess-rev.sh
+ -$(RM) $(PKG_BUILD_DIR)/jimtcl/configure.ac
endef
CONFIGURE_ARGS += \
include $(TOPDIR)/rules.mk
PKG_NAME:=pcsc-tools
-PKG_VERSION:=1.5.7
+PKG_VERSION:=1.6.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://ludovic.rousseau.free.fr/softwares/pcsc-tools/
-PKG_HASH:=e0ea8f8496d5bcf5316da913869ba95b925d0405c2aaade801c0d6ce7697699d
+PKG_SOURCE_URL:=http://ludovic.rousseau.free.fr/softwares/pcsc-tools
+PKG_HASH:=86fb756adfd18958d05af61e53c7503d4c46f0700677e6d0688dd4360eb53150
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0-or-later
--- a/pcsc_scan.c
+++ b/pcsc_scan.c
-@@ -241,7 +241,7 @@ static void initialize_options(options_t
- #ifdef WIN32
+@@ -294,7 +294,7 @@ static void initialize_options(options_t
+ #if defined(WIN32) || defined(__APPLE__)
options->analyse_atr = False;
#else
- options->analyse_atr = True;
+ options->analyse_atr = False;
#endif
options->stress_card = False;
- options->print_version = False;
+ options->maxtime = 0;
include $(TOPDIR)/rules.mk
PKG_NAME:=pigz
-PKG_VERSION:=2.4
+PKG_VERSION:=2.7
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://zlib.net/pigz/
-PKG_HASH:=a4f816222a7b4269bd232680590b579ccc72591f1bb5adafcd7208ca77e14f73
+PKG_SOURCE_URL:=https://zlib.net/pigz
+PKG_HASH:=b4c9e60344a08d5db37ca7ad00a5b2c76ccb9556354b722d56d55ca7e8b1c707
PKG_MAINTAINER:=Ken Wong <xinxijishuwyq@gmail.com>
PKG_LICENSE:=CUSTOM
--- a/Makefile
+++ b/Makefile
-@@ -1,7 +1,7 @@
+@@ -1,11 +1,11 @@
-CC=gcc
--CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas
+-CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual
-LDFLAGS=
--LIBS=-lm -lpthread -lz
+CC?=gcc
-+CFLAGS?=-O3 -Wall -Wextra -Wno-unknown-pragmas
++CFLAGS?=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual
+LDFLAGS?=
+ # CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual -g -fsanitize=thread
+ # LDFLAGS=-g -fsanitize=thread
+ # CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual -g -fsanitize=address
+ # LDFLAGS=-g -fsanitize=address
+-LIBS=-lm -lpthread -lz
+LIBS?=-lm -lpthread -lz
ZOPFLI=zopfli/src/zopfli/
- ZOP=deflate.o blocksplitter.o tree.o lz77.o cache.o hash.o util.o squeeze.o katajainen.o
+ ZOP=deflate.o blocksplitter.o tree.o lz77.o cache.o hash.o util.o squeeze.o katajainen.o symbols.o
include $(TOPDIR)/rules.mk
PKG_NAME:=podman
-PKG_VERSION:=4.1.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=4.3.1
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/containers/podman/archive/v$(PKG_VERSION)
-PKG_HASH:=f814e12a7311d486c1ccdc4eb021bc6dd24499569de7a572e436342876f70e95
+PKG_HASH:=455c29c4ee78cd6365e5d46e20dd31a5ce4e6e1752db6774253d76bd3ca78813
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=golang/host protobuf/host
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
-
-GO_PKG:=github.com/containers/podman/
-GO_PKG_BUILD_PKG:=github.com/containers/podman/v4/cmd/podman/
+PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include ../../lang/golang/golang-package.mk
CATEGORY:=Utilities
TITLE:=Podman
URL:=https://podman.io
- DEPENDS:=$(GO_ARCH_DEPENDS) +conmon +cni +cni-plugins +btrfs-progs +glib2 +gnupg2 +uci-firewall +libgpg-error +libseccomp +libgpgme +nsenter +zoneinfo-simple +kmod-veth +catatonit +PODMAN_SELINUX_SUPPORT:libselinux
+ DEPENDS:=$(GO_ARCH_DEPENDS) +conmon +cni +cni-plugins +btrfs-progs +glib2 +gnupg2 +uci-firewall +libgpg-error +libseccomp +libgpgme +nsenter +zoneinfo-simple +kmod-veth +PODMAN_SELINUX_SUPPORT:libselinux
endef
define Package/podman/description
CNIFILE:=87-podman-bridge.conflist
endif
+MAKE_VARS += \
+ GO_INSTALL_BIN_PATH="$(strip $(GO_PKG_INSTALL_BIN_PATH))" \
+ BUILD_DIR="$(PKG_BUILD_DIR)" \
+ GO_BUILD_DIR="$(GO_PKG_BUILD_DIR)" \
+ GO_BUILD_BIN_DIR="$(GO_PKG_BUILD_BIN_DIR)" \
+ GO_BUILD_DEPENDS_PATH="$(GO_PKG_BUILD_DEPENDS_PATH)" \
+ GO_BUILD_DEPENDS_SRC="$(GO_PKG_BUILD_DEPENDS_SRC)" \
+ GOOS="$(GO_OS)" \
+ GOARCH="$(GO_ARCH)" \
+ CC="$(TARGET_CC)" \
+ CXX="$(TARGET_CXX)" \
+ CGO_CFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CFLAGS))" \
+ CGO_CPPFLAGS="$(TARGET_CPPFLAGS)" \
+ CGO_CXXFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CXXFLAGS))" \
+ CGO_LDFLAGS="$(TARGET_LDFLAGS)" \
+ GOPATH="$(GO_PKG_BUILD_DIR)" \
+ GOCACHE="$(GO_BUILD_CACHE_DIR)" \
+ GOMODCACHE="$(GO_MOD_CACHE_DIR)" \
+ GOFLAGS="$(GO_PKG_GCFLAGS)" \
+ GO_PKG_CFLAGS="$(GO_PKG_CFLAGS)" \
+ CGO_ENABLED=1 \
+ GOENV=off \
+ PREFIX=/usr \
+ LIBEXECDIR=/usr/lib \
+ LIBEXECPODMAN=/usr/lib/podman \
+ SHAREDIR_CONTAINERS=/usr/share/containers \
+ ETCDIR=/etc \
+ TMPFILESDIR=/var/run/podman \
+ BUILDTAGS="$(GO_PKG_TAGS)" \
+ EXTRA_LDFLAGS="$(GO_PKG_LDFLAGS)"
+
define Build/Prepare
$(call Build/Prepare/Default)
$(eval $(call Download,default-registries))
endef
define Package/podman/install
- $(call GoPackage/Package/Install/Bin,$(1))
+ $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib/podman
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{podman,podman-remote} $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/podman/rootlessport $(1)/usr/lib/podman/
$(INSTALL_DIR) $(1)/etc/containers
$(INSTALL_DATA) $(DL_DIR)/default-policy.json-362f70b056 $(1)/etc/containers/policy.json
$(INSTALL_DATA) $(DL_DIR)/registries.fedora-da9a9c8778 $(1)/etc/containers/registries.conf
$(SED) 's/driver = \"\"/driver = \"overlay\"/g' $(1)/etc/containers/storage.conf
endef
-$(eval $(call GoBinPackage,podman))
$(eval $(call BuildPackage,podman))
--- /dev/null
+--- a/Makefile
++++ b/Makefile
+@@ -200,7 +200,7 @@ GV_SHA=e943b1806d94d387c4c38d96719432d50
+ default: all
+
+ .PHONY: all
+-all: binaries docs
++all: binaries
+
+ .PHONY: binaries
+ ifeq ($(shell uname -s),FreeBSD)
+@@ -744,7 +744,7 @@ package-install: package ## Install rpm
+ /usr/bin/podman info # will catch a broken conmon
+
+ .PHONY: install
+-install: install.bin install.remote install.man install.systemd ## Install binaries to system locations
++install: install.bin install.remote install.systemd ## Install binaries to system locations
+
+ .PHONY: install.catatonit
+ install.catatonit:
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qfirehose
+PKG_VERSION:=1.4.9
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/nippynetworks/qfirehose/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=b7c04f9356823c6ee0f4ca152e8fd2015f34b95490cea68461a060993befadef
+
+PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
+PKG_LICENSE:=
+PKG_LICENSE_FILES:=NOTICE
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/qfirehose
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=Quectel Firehose Recovery application
+ URL:=https://github.com/nippynetworks/qfirehose
+endef
+
+define Package/qfirehose/description
+ Utility that is able to flash firmwares on Quectel's modems.
+ Usage: qfirehose -f FW_PATH
+
+ Warning.
+
+ - Use of software is completely on your own risk.
+ Flashing wrong firmware or failed flash can brick your modem permanently.
+ Avoid flashing, if device works without issues and updated firmware does not contain new necessary changes.
+ Do not flash, if you are not willing to take this risk or do not know what you are doing.
+
+ - After succesful flashing, you should use terminal to issue factory reset for modem settings with AT&F command.
+
+ - mPCIe users (mostly): If modem has completely disappeared after succesful flashing, reason might be that some firmware updates
+ set default mode to USB3 which is unsupported by some mPCIe slots, in this case, you should connect it to USB
+ port using mPCIe -> USB adapter, even most of cheap chinese modules can reveal device. After this you should issue
+ a command to use USB2, which may vary between models, but on most Quectel modems is: AT+QUSBCFG="SS",0
+ Changing value on end of AT command 0 to 1, selects USB3 instead. Refer to documents of your modem.
+endef
+
+define Build/Configure
+ $(RM) $(PKG_BUILD_DIR)/QFirehose
+endef
+
+MAKE_ARGS += linux
+
+define Package/qfirehose/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/QFirehose $(1)/usr/bin/qfirehose
+endef
+
+$(eval $(call BuildPackage,qfirehose))
PKG_NAME:=rtl-sdr
PKG_VERSION:=0.6.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://git.osmocom.org/rtl-sdr/snapshot
-PKG_HASH:=ee10a76fe0c6601102367d4cdf5c26271e9442d0491aa8df27e5a9bf639cff7c
-
-CMAKE_INSTALL:=1
-
-PKG_LICENSE:=GPLv2
-PKG_LICENSE_FILES:=COPYING
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=0.6.0
+PKG_SOURCE_URL:=https://gitea.osmocom.org/sdr/rtl-sdr
+PKG_MIRROR_HASH:=c7673b94126a61575823cde088112146be4e4874111ad134e7330371060f746d
PKG_MAINTAINER:=Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=COPYING
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
include $(TOPDIR)/rules.mk
PKG_NAME:=stress-ng
-PKG_VERSION:=0.15.00
+PKG_VERSION:=0.15.01
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/ColinIanKing/stress-ng/tar.gz/refs/tags/V$(PKG_VERSION)?
-PKG_HASH:=cdb18c7dfcdeb0ff2d716c141341d1b2ca6051e4338cee3a555a65f26958c256
+PKG_HASH:=2168627350d8e3b7f4571732d6117ab054a9851600899c30ad82fd3c9649d644
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=GPL-2.0-only
include $(TOPDIR)/rules.mk
PKG_NAME:=stress
-PKG_VERSION:=1.0.4
-PKG_RELEASE:=2
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://fossies.org/linux/privat
-PKG_HASH:=369c997f65e8426ae8b318d4fdc8e6f07a311cfa77cc4b25dace465c582163c0
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=1.0.5
+PKG_SOURCE_URL:=https://github.com/resurrecting-open-source-projects/stress
+PKG_MIRROR_HASH:=711e42ead6fd220a98821aae0cf024930785e439d3d0d50663fed1b2cd021bd1
-PKG_LICENSE:=GPL-2.0
+PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
+PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
+PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
CATEGORY:=Utilities
TITLE:=stress is a simple stress utility
URL:=
- MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
endef
define Package/stress/description
UNIX-like operating systems.
endef
-CONFIGURE_ARGS += \
- --prefix="/usr"
-
-MAKE_FLAGS += \
- CFLAGS="$(TARGET_CFLAGS)"
-
define Package/stress/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/stress $(1)/usr/bin/
--- a/src/stress.c
+++ b/src/stress.c
-@@ -262,6 +262,7 @@ main (int argc, char **argv)
+@@ -263,6 +263,7 @@ main (int argc, char **argv)
/* Calculate the backoff value so we get good fork throughput. */
backoff = do_backoff * forks;
dbg (stdout, "using backoff sleep of %llius\n", backoff);
/* If we are supposed to respect a timeout, calculate it. */
-@@ -296,7 +297,7 @@ main (int argc, char **argv)
+@@ -297,7 +298,7 @@ main (int argc, char **argv)
{
case 0: /* child */
alarm (timeout);
if (do_dryrun)
exit (0);
exit (hogcpu ());
-@@ -317,7 +318,7 @@ main (int argc, char **argv)
+@@ -318,7 +319,7 @@ main (int argc, char **argv)
{
case 0: /* child */
alarm (timeout);
if (do_dryrun)
exit (0);
exit (hogio ());
-@@ -337,7 +338,7 @@ main (int argc, char **argv)
+@@ -338,7 +339,7 @@ main (int argc, char **argv)
{
case 0: /* child */
alarm (timeout);
if (do_dryrun)
exit (0);
exit (hogvm
-@@ -358,7 +359,7 @@ main (int argc, char **argv)
+@@ -359,7 +360,7 @@ main (int argc, char **argv)
{
case 0: /* child */
alarm (timeout);
include $(TOPDIR)/rules.mk
PKG_NAME:=xz
-PKG_VERSION:=5.2.9
+PKG_VERSION:=5.4.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/lzmautils
-PKG_HASH:=b194507fba3a462a753c553149ccdaa168337bcb7deefddd067ba987c83dfce6
+PKG_HASH:=dd172acb53867a68012f94c17389401b2f274a1aa5ae8f84cbfb8b7e383ea8d3
PKG_MAINTAINER:=
PKG_LICENSE:=Public-Domain LGPL-2.1-or-later GPL-2.0-or-later GPL-3.0-or-later
include $(TOPDIR)/rules.mk
PKG_NAME:=yq
-PKG_VERSION:=4.30.6
+PKG_VERSION:=4.30.8
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/mikefarah/yq/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=320d0ce36d1dbe703b4cbdb28e9a927c1e87b157e8c05aeb078d6c9c1b0138ea
+PKG_HASH:=aaf6c9f37968970413b8a6daf0b313a86efd1b8e3e5959e527b50636508eb776
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
PKG_LICENSE:=MIT