Merge pull request #582 from neheb/miax
authorJiri Slachta <jiri@slachta.eu>
Mon, 23 Nov 2020 21:02:10 +0000 (22:02 +0100)
committerGitHub <noreply@github.com>
Mon, 23 Nov 2020 21:02:10 +0000 (22:02 +0100)
miax: fix compilation errors under uClibc-ng and musl

24 files changed:
libs/libpri/Makefile
libs/libpri/patches/010-no-werror.patch [new file with mode: 0644]
libs/libsrtp/Makefile
libs/libsrtp/patches/010-gcc10.patch [new file with mode: 0644]
libs/libsrtp/patches/1003_fix_mips_namespace_collision.patch [deleted file]
libs/libsrtp/patches/1005_fix_data_alignment.patch [deleted file]
libs/libsrtp/patches/1007_update_Doxyfile.patch [deleted file]
libs/libsrtp/patches/1008_shared-lib.patch [deleted file]
libs/libsrtp2/Makefile [deleted file]
libs/libsrtp2/patches/010-gcc10.patch [deleted file]
libs/re/Makefile
libs/re/patches/005-fix-builds-for-mipsel-targets.patch
libs/re/patches/010-openssl-deprecated.patch [deleted file]
net/baresip/Makefile
net/baresip/patches/002-fix-rem-include.patch
net/baresip/patches/010-openssl-deprecated.patch [deleted file]
net/kamailio-5.x/Makefile
net/kamailio-5.x/patches/160-openssl-deprecated.patch [new file with mode: 0644]
net/restund/Makefile
net/rtpengine/Makefile
net/rtpengine/patches/05-support-kernels-greater-equal-5.9.9.patch [new file with mode: 0644]
net/sipp/Makefile
net/sipp/patches/01-locale-include.patch [new file with mode: 0644]
net/sipp/patches/02-Fix_compatibility_with_older_C++_in_3.6.x_branch.patch [new file with mode: 0644]

index 96da88a42e07745d72c2f55342a766b7ba3b69e2..5ed490092017a83e3433d64400a528b0a8cb8334 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libpri
 PKG_VERSION:=1.6.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.asterisk.org/pub/telephony/libpri/releases
diff --git a/libs/libpri/patches/010-no-werror.patch b/libs/libpri/patches/010-no-werror.patch
new file mode 100644 (file)
index 0000000..e66f428
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -68,7 +68,7 @@ DYNAMIC_OBJS= \
+       $(STATIC_OBJS)
+ CFLAGS ?= -g
+ CFLAGS += $(CPPFLAGS)
+-CFLAGS += -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes
++CFLAGS += -Wall -Wstrict-prototypes -Wmissing-prototypes
+ CFLAGS += -fPIC $(ALERTING) $(LIBPRI_OPT) $(COVERAGE_CFLAGS)
+ INSTALL_PREFIX=$(DESTDIR)
+ INSTALL_BASE=/usr
index c0899edc36c9d94764b31d08e96bab3d7290aeb3..8c0cb4c857a7356399c3d926b58ceeb3e4ae7251 100644 (file)
@@ -1,7 +1,6 @@
 #
-# Copyright (C) 2006-2018 OpenWrt.org
-# Copyright (C) 2011 Victor Seva <linuxmaniac@torreviejawireless.org>
-# Copyright (C) 2017 - 2018 Jiri Slachta <jiri@slachta.eu>
+# Copyright (C) 2017 OpenWrt.org
+# Copyright (C) 2017 Jiri Slachta <jiri@slachta.eu>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,17 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsrtp
-PKG_VERSION:=1.6.0
-PKG_RELEASE:=2
+PKG_VERSION:=2.3.0
+PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/cisco/libsrtp.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=2b091a4fb21c9b06fc5d4b5763bdaec97542fcd7
-PKG_MIRROR_HASH:=7ac6c3113fd7a966c9a9108c185d9425e75a8fdc600e4ccef158e68ee1988c89
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE:=libsrtp-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/cisco/libsrtp/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=94093a5d04c5f4743e8d81182b76938374df6d393b45322f24960d250b0110e8
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
@@ -27,45 +21,39 @@ PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
 
 include $(INCLUDE_DIR)/package.mk
 
-CONFIGURE_ARGS += \
-       --disable-stdout \
-       --enable-syslog
-
-define Package/libsrtp
+define Package/libsrtp2
   SUBMENU:=Telephony
   SECTION:=libs
   CATEGORY:=Libraries
-  TITLE:=Secure Real-time Transport Protocol (SRTP) library
-  DEPENDS:=+libpcap
+  TITLE:=Secure RTP (SRTP) library, v$(PKG_VERSION)
   URL:=http://sourceforge.net/projects/srtp
+  DEPENDS:=
 endef
 
-define Package/libsrtp/description
- Open-source implementation of the Secure Real-time Transport
- Protocol (SRTP) originally authored by Cisco Systems, Inc.
- It is available under a BSD-style license.
+define Package/libsrtp2/description
+Open-source implementation of the Secure Real-time Transport
+Protocol (SRTP) originally authored by Cisco Systems, Inc.
+It is available under a BSD-style license.
 endef
 
 define Build/Install
-       $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR=$(PKG_INSTALL_DIR) uninstall
-       $(call Build/Install/Default)
+       $(call Build/Install/Default,all shared_library install)
 endef
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/srtp $(1)/usr/include/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/srtp2 $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrtp.{a,so*} $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrtp2.{a,so*} $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsrtp.pc $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsrtp2.pc $(1)/usr/lib/pkgconfig/
 endef
 
-
-define Package/libsrtp/install
+define Package/libsrtp2/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libsrtp.so* \
+               $(PKG_INSTALL_DIR)/usr/lib/libsrtp2.so.* \
                $(1)/usr/lib/
 endef
 
-$(eval $(call BuildPackage,libsrtp))
+$(eval $(call BuildPackage,libsrtp2))
diff --git a/libs/libsrtp/patches/010-gcc10.patch b/libs/libsrtp/patches/010-gcc10.patch
new file mode 100644 (file)
index 0000000..70723f7
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/crypto/math/datatypes.c
++++ b/crypto/math/datatypes.c
+@@ -79,7 +79,7 @@ int octet_get_weight(uint8_t octet)
+ /* the value MAX_PRINT_STRING_LEN is defined in datatypes.h */
+-char bit_string[MAX_PRINT_STRING_LEN];
++static char bit_string[MAX_PRINT_STRING_LEN];
+ uint8_t srtp_nibble_to_hex_char(uint8_t nibble)
+ {
diff --git a/libs/libsrtp/patches/1003_fix_mips_namespace_collision.patch b/libs/libsrtp/patches/1003_fix_mips_namespace_collision.patch
deleted file mode 100644 (file)
index b4e2d57..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
---- a/test/srtp_driver.c
-+++ b/test/srtp_driver.c
-@@ -341,7 +341,7 @@ main (int argc, char *argv[]) {
-   if (do_codec_timing) {
-     srtp_policy_t policy;
-     int ignore;
--    double mips = mips_estimate(1000000000, &ignore);
-+    double mips_est = mips_estimate(1000000000, &ignore);
-     crypto_policy_set_rtp_default(&policy.rtp);
-     crypto_policy_set_rtcp_default(&policy.rtcp);
-@@ -353,33 +353,33 @@ main (int argc, char *argv[]) {
-     policy.allow_repeat_tx = 0;
-     policy.next = NULL;
--    printf("mips estimate: %e\n", mips);
-+    printf("mips estimate: %e\n", mips_est);
-     printf("testing srtp processing time for voice codecs:\n");
-     printf("codec\t\tlength (octets)\t\tsrtp instructions/second\n");
-     printf("G.711\t\t%d\t\t\t%e\n", 80, 
--           (double) mips * (80 * 8) / 
-+           (double) mips_est * (80 * 8) / 
-          srtp_bits_per_second(80, &policy) / .01 );
-     printf("G.711\t\t%d\t\t\t%e\n", 160, 
--           (double) mips * (160 * 8) / 
-+           (double) mips_est * (160 * 8) / 
-          srtp_bits_per_second(160, &policy) / .02);
-     printf("G.726-32\t%d\t\t\t%e\n", 40, 
--           (double) mips * (40 * 8) / 
-+           (double) mips_est * (40 * 8) / 
-          srtp_bits_per_second(40, &policy) / .01 );
-     printf("G.726-32\t%d\t\t\t%e\n", 80, 
--           (double) mips * (80 * 8) / 
-+           (double) mips_est * (80 * 8) / 
-          srtp_bits_per_second(80, &policy) / .02);
-     printf("G.729\t\t%d\t\t\t%e\n", 10, 
--           (double) mips * (10 * 8) / 
-+           (double) mips_est * (10 * 8) / 
-          srtp_bits_per_second(10, &policy) / .01 );
-     printf("G.729\t\t%d\t\t\t%e\n", 20, 
--           (double) mips * (20 * 8) /
-+           (double) mips_est * (20 * 8) /
-          srtp_bits_per_second(20, &policy) / .02 );
-     printf("Wideband\t%d\t\t\t%e\n", 320, 
--           (double) mips * (320 * 8) /
-+           (double) mips_est * (320 * 8) /
-          srtp_bits_per_second(320, &policy) / .01 );
-     printf("Wideband\t%d\t\t\t%e\n", 640, 
--           (double) mips * (640 * 8) /
-+           (double) mips_est * (640 * 8) /
-          srtp_bits_per_second(640, &policy) / .02 );
-   }
diff --git a/libs/libsrtp/patches/1005_fix_data_alignment.patch b/libs/libsrtp/patches/1005_fix_data_alignment.patch
deleted file mode 100644 (file)
index 5f2a2e0..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/test/srtp_driver.c
-+++ b/test/srtp_driver.c
-@@ -1198,7 +1198,6 @@ mips_estimate(int num_trials, int *ignor
-  * These packets were made with the default SRTP policy.
-  */
--
- err_status_t
- srtp_validate() {
-   uint8_t srtp_plaintext_ref[28] = {
-@@ -1207,14 +1206,14 @@ srtp_validate() {
-     0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 
-     0xab, 0xab, 0xab, 0xab
-   };
--  uint8_t srtp_plaintext[38] = {
-+  uint8_t srtp_plaintext[38] __attribute__((aligned(4))) = {
-     0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 
-     0xca, 0xfe, 0xba, 0xbe, 0xab, 0xab, 0xab, 0xab,
-     0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 
-     0xab, 0xab, 0xab, 0xab, 0x00, 0x00, 0x00, 0x00, 
-     0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-   };
--  uint8_t srtp_ciphertext[38] = {
-+  uint8_t srtp_ciphertext[38] __attribute__((aligned(4))) = {
-     0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 
-     0xca, 0xfe, 0xba, 0xbe, 0x4e, 0x55, 0xdc, 0x4c,
-     0xe7, 0x99, 0x78, 0xd8, 0x8c, 0xa4, 0xd2, 0x15, 
diff --git a/libs/libsrtp/patches/1007_update_Doxyfile.patch b/libs/libsrtp/patches/1007_update_Doxyfile.patch
deleted file mode 100644 (file)
index 8108d7d..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-Description: Update Doxyfile and header template
-Author: Jonas Smedegaard <dr@jones.dk>
-Last-Update: 2010-02-28
---- a/doc/Makefile.in
-+++ b/doc/Makefile.in
-@@ -25,6 +25,7 @@ libsrtpdoc: 
-               echo "*** Sorry, can't build doc outside source dir"; exit 1; \
-       fi
-       sed 's/LIBSRTPVERSION/$(version)/' header.template > header.tex
-+      doxygen -u
-       doxygen
-       sed 's/\subsection/\section/' latex/index.tex > latex/index.tmp
-       mv latex/index.tmp latex/index.tex
-@@ -38,7 +39,7 @@ cryptodoc: clean
-       cp latex/refman.pdf crypto.pdf
- clean:
--      rm -rf latex/ header.tex
-+      rm -rf latex/ header.tex Doxyfile.bak
-       for a in * ; do                                 \
-               if [ -f "$$a~" ] ; then rm -f $$a~; fi; \
-         done;
---- a/doc/header.template
-+++ b/doc/header.template
-@@ -6,28 +6,40 @@
- % 
- \documentclass[letterpaper]{book}
- \usepackage{makeidx}
--\usepackage{fancyhdr}
- \usepackage{graphicx}
- \usepackage{multicol}
- \usepackage{float}
-+\usepackage{listings}
-+\usepackage{color}
-+\usepackage{ifthen}
-+\usepackage[table]{xcolor}
- \usepackage{textcomp}
- \usepackage{alltt}
--\usepackage{times}
--\usepackage{graphicx}
--\ifx\pdfoutput\undefined
--\usepackage[ps2pdf,
-+\usepackage{ifpdf}
-+\ifpdf
-+\usepackage[pdftex,
-             pagebackref=true,
-             colorlinks=true,
--            linkcolor=blue
-+            linkcolor=blue,
-+            unicode
-            ]{hyperref}
- \else
--\usepackage[pdftex,
-+\usepackage[ps2pdf,
-             pagebackref=true,
-             colorlinks=true,
--            linkcolor=blue
-+            linkcolor=blue,
-+            unicode
-            ]{hyperref}
-+\usepackage{pspicture}
- \fi
-+\usepackage[utf8]{inputenc}
-+\usepackage{mathptmx}
-+\usepackage[scaled=.90]{helvet}
-+\usepackage{courier}
-+\usepackage{sectsty}
-+\usepackage[titles]{tocloft}
- \usepackage{doxygen}
-+\lstset{language=C++,inputencoding=utf8,basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=3,numbers=left }
- \makeindex
- \setcounter{tocdepth}{1}
- \renewcommand{\footrulewidth}{0.4pt}
-@@ -59,7 +71,9 @@
- \selectfont
-+\renewcommand{\familydefault}{\sfdefault}
- \begin{document}
-+\hypersetup{pageanchor=false}
- \begin{titlepage}
- \vspace*{4cm}
- %\begin{center}
-@@ -107,9 +121,6 @@ This reference material in this documena
- \clearemptydoublepage
- \pagenumbering{roman}
- \tableofcontents
--%\clearemptydoublepage
--
- \clearemptydoublepage
- \pagenumbering{arabic}
--
--
-+\hypersetup{pageanchor=true}
diff --git a/libs/libsrtp/patches/1008_shared-lib.patch b/libs/libsrtp/patches/1008_shared-lib.patch
deleted file mode 100644 (file)
index e29305c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -20,7 +20,7 @@ HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
- .PHONY: all shared_library test build_table_apps
--all: test 
-+all: shared_library test
- runtest: build_table_apps test
-       @echo "running libsrtp test applications..."
diff --git a/libs/libsrtp2/Makefile b/libs/libsrtp2/Makefile
deleted file mode 100644 (file)
index 345fc29..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Copyright (C) 2017 OpenWrt.org
-# Copyright (C) 2017 Jiri Slachta <jiri@slachta.eu>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=libsrtp2
-PKG_VERSION:=2.2.0
-PKG_RELEASE:=2
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/cisco/libsrtp.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=94ac00d5ac6409e3f6409e4a5edfcdbdaa7fdabe
-PKG_MIRROR_HASH:=0429edcddfe9d36ee47eb221384c528bbe31ee9255e216f9755641c7b6083457
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
-PKG_LICENSE:=BSD-3-Clause
-PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/libsrtp2
-  SUBMENU:=Telephony
-  SECTION:=libs
-  CATEGORY:=Libraries
-  TITLE:=Secure RTP (SRTP) library, v$(PKG_VERSION)
-  URL:=http://sourceforge.net/projects/srtp
-  DEPENDS:=
-endef
-
-define Package/libsrtp2/description
-Open-source implementation of the Secure Real-time Transport
-Protocol (SRTP) originally authored by Cisco Systems, Inc.
-It is available under a BSD-style license.
-endef
-
-define Build/Install
-       $(call Build/Install/Default,all shared_library install)
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/srtp2 $(1)/usr/include/
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrtp2.{a,so*} $(1)/usr/lib/
-       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsrtp2.pc $(1)/usr/lib/pkgconfig/
-endef
-
-define Package/libsrtp2/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libsrtp2.so* \
-               $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,libsrtp2))
diff --git a/libs/libsrtp2/patches/010-gcc10.patch b/libs/libsrtp2/patches/010-gcc10.patch
deleted file mode 100644 (file)
index 70723f7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/crypto/math/datatypes.c
-+++ b/crypto/math/datatypes.c
-@@ -79,7 +79,7 @@ int octet_get_weight(uint8_t octet)
- /* the value MAX_PRINT_STRING_LEN is defined in datatypes.h */
--char bit_string[MAX_PRINT_STRING_LEN];
-+static char bit_string[MAX_PRINT_STRING_LEN];
- uint8_t srtp_nibble_to_hex_char(uint8_t nibble)
- {
index ff5c7c1751d2de8aeb061e7fb2d21813002632a4..b64d5eb18e89d34536a6f6318487c3603ea9bee4 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=re
-PKG_VERSION:=0.6.1
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.creytiv.com/pub
-PKG_HASH:=cd5bfc79640411803b200c7531e4ba8a230da3806746d3bd2de970da2060fe43
+PKG_SOURCE_URL:=https://codeload.github.com/baresip/re/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=bf0abfc511b7278462e7d54aaae39e7231b9f35423d5026c8210a322c7c8ef2f
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=docs/COPYING
@@ -31,7 +31,7 @@ define Package/libre
   CATEGORY:=Libraries
   DEPENDS:=+libopenssl +zlib
   TITLE:=Generic library for real-time communications with async IO support
-  URL:=http://www.creytiv.com
+  URL:=https://github.com/baresip/re
 endef
 
 # re.mk is used for this and all related packages (rem, restund and baresip).
index 29a03ee9591e755c3c05115feaa0139217032945..d59f85e5f39e2c6262b73d4e4d2fe553f879bbfc 100644 (file)
@@ -1,6 +1,6 @@
 --- a/mk/re.mk
 +++ b/mk/re.mk
-@@ -438,11 +438,6 @@ endif
+@@ -439,11 +439,6 @@ endif
  
  CFLAGS        += -DARCH=\"$(ARCH)\"
  
diff --git a/libs/re/patches/010-openssl-deprecated.patch b/libs/re/patches/010-openssl-deprecated.patch
deleted file mode 100644 (file)
index bff18b9..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
---- a/src/main/openssl.c
-+++ b/src/main/openssl.c
-@@ -103,6 +103,7 @@ static void dynlock_destroy_handler(struct CRYPTO_dynlock_value *l,
- #endif
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- #ifdef SIGPIPE
- static void sigpipe_handler(int x)
- {
-@@ -110,10 +111,11 @@ static void sigpipe_handler(int x)
-       (void)signal(SIGPIPE, sigpipe_handler);
- }
- #endif
--
-+#endif
- int openssl_init(void)
- {
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- #if defined (HAVE_PTHREAD) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
-       int err, i;
-@@ -151,6 +153,7 @@ int openssl_init(void)
-       SSL_library_init();
-       SSL_load_error_strings();
-+#endif
-       return 0;
- }
-@@ -158,7 +161,9 @@ int openssl_init(void)
- void openssl_close(void)
- {
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       ERR_free_strings();
-+#endif
- #if defined (HAVE_PTHREAD) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
-       lockv = mem_deref(lockv);
- #endif
---- a/src/tls/openssl/tls.c
-+++ b/src/tls/openssl/tls.c
-@@ -291,8 +291,8 @@ int tls_set_selfsigned(struct tls *tls, const char *cn)
-           !X509_set_subject_name(cert, subj))
-               goto out;
--      if (!X509_gmtime_adj(X509_get_notBefore(cert), -3600*24*365) ||
--          !X509_gmtime_adj(X509_get_notAfter(cert),   3600*24*365*10))
-+      if (!X509_gmtime_adj(X509_getm_notBefore(cert), -3600*24*365) ||
-+          !X509_gmtime_adj(X509_getm_notAfter(cert),   3600*24*365*10))
-               goto out;
-       if (!X509_set_pubkey(cert, key))
index 453423ce6b8df690091d430c84399b44170bb9a4..5e047ecdbae37c963dcb645fd0ac2be320ef2cc2 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=baresip
-PKG_VERSION:=0.6.4
-PKG_RELEASE:=3
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.creytiv.com/pub
-PKG_HASH:=61710bd1bec406ae1faf167c5743bad8eef9ced5152a3943b94d7e1cf9597581
+PKG_SOURCE_URL:=https://codeload.github.com/baresip/baresip/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=7b008c0a5b4fccfa0a4003f86dc4aaafeaabbdd259ece4757898e9cb5f04fdcf
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=docs/COPYING
@@ -58,7 +58,7 @@ define Package/baresip/Default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Telephony
-  URL:=http://www.creytiv.com
+  URL:=https://github.com/baresip/baresip
 endef
 
 define Package/baresip
@@ -67,6 +67,11 @@ $(call Package/baresip/Default)
   DEPENDS:=+libre +librem
   USERID:=$(PKG_NAME)=374:$(PKG_NAME)=374
   MENU:=1
+  FILE_MODES:= \
+         /etc/baresip:baresip:baresip:0750 \
+         /etc/baresip/accounts:baresip:baresip:0640 \
+         /etc/baresip/config:baresip:baresip:0640 \
+         /etc/baresip/contacts:baresip:baresip:0640
 endef
 
 baresip-mod-alsa        := USE_ALSA
@@ -92,17 +97,16 @@ baresip-mod-v4l2        := USE_V4L2
 
 BARESIP_MOD_OPTIONS:= \
        MOD_AUTODETECT= \
-       EXTRA_MODULES="dtmfio" \
        $(foreach m,$(baresip-mods),$(baresip-mod-$(m))=$(if $(CONFIG_PACKAGE_baresip-mod-$(subst _,-,$(m))),1))
 
 MAKE_FLAGS+= \
        CROSS_COMPILE="$(TARGET_CROSS)" \
+       DESTDIR="$(PKG_INSTALL_DIR)" \
        EXTRA_LFLAGS="$(TARGET_LDFLAGS)" \
        LD="$(TARGET_CC)" \
        LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
        LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
        LIBRE_SO="$(STAGING_DIR)/usr/lib" \
-       LIBREM_PATH="$(STAGING_DIR)/usr" \
        OS=linux \
        RELEASE=1 \
        SYSROOT="$(shell $(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s|/include/pthread.h||p')" \
@@ -123,7 +127,7 @@ define Package/baresip/install
        $(INSTALL_DIR) $(1)/etc/baresip
        $(SED) '/^#/!s/^/#/' $(PKG_BUILD_DIR)/docs/examples/accounts
        $(SED) '/^#module_path/s|^#||;s|/local||' $(PKG_BUILD_DIR)/docs/examples/config
-       $(INSTALL_CONF) $(PKG_BUILD_DIR)/docs/examples/{accounts,config,contacts} $(1)/etc/baresip
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/docs/examples/{accounts,config,contacts} $(1)/etc/baresip
        $(INSTALL_DIR) $(1)/etc/default
        $(INSTALL_CONF) ./files/baresip.default $(1)/etc/default/baresip
        $(INSTALL_DIR) $(1)/etc/init.d
@@ -138,17 +142,6 @@ define Package/baresip/conffiles
 /etc/init.d/baresip
 endef
 
-define Package/baresip/postinst
-#!/bin/sh
-if [ -z "$${IPKG_INSTROOT}" ]; then
-  chown $(PKG_NAME):$(PKG_NAME) \
-    /etc/baresip/accounts \
-    /etc/baresip/config \
-    /etc/baresip/contacts
-fi
-exit 0
-endef
-
 ##################
 # bareSIP modules
 # 1. Name
@@ -189,7 +182,6 @@ $(eval $(call BuildPlugin,cons,UDP/TCP console UI driver,cons,))
 $(eval $(call BuildPlugin,ctrl_tcp,TCP control interface,ctrl_tcp,))
 $(eval $(call BuildPlugin,debug_cmd,Debug commands,debug_cmd,))
 $(eval $(call BuildPlugin,dtls_srtp,DTLS-SRTP end-to-end encryption,dtls_srtp,))
-$(eval $(call BuildPlugin,dtmfio,DTMF input/output,dtmfio,))
 $(eval $(call BuildPlugin,echo,Echo server module,echo,))
 $(eval $(call BuildPlugin,evdev,Linux input driver,evdev,))
 $(eval $(call BuildPlugin,fakevideo,Fake video input/output driver,fakevideo,))
index e4ecda0aaa785386f8294451811c8b57ae3c14d3..de530b9e51011299b14fac1b76bf9180728b75aa 100644 (file)
@@ -1,16 +1,53 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -45,11 +45,11 @@ endif
+@@ -44,26 +44,15 @@ endif
+ include $(LIBRE_MK)
+ include mk/modules.mk
  
- CFLAGS    += -I. -Iinclude -I$(LIBRE_INC) -I$(SYSROOT)/include
- CFLAGS    += -I$(LIBREM_PATH)/include
+-ifndef LIBREM_PATH
+-LIBREM_PATH   := $(shell [ -d ../rem ] && echo "../rem")
+-endif
+-
+-
+ CFLAGS    += -I. -Iinclude -I$(LIBRE_INC)
+-ifneq ($(LIBREM_PATH),)
+-CFLAGS    += -I$(LIBREM_PATH)/include
+-endif
 -CFLAGS    += -I$(SYSROOT)/local/include/rem -I$(SYSROOT)/include/rem
-+CFLAGS    += -I$(SYSROOT)/local/include/rem -I$(SYSROOT_ALT)/include/rem
++CFLAGS    += -I$(SYSROOT_ALT)/include/rem
+ ifneq ($(SYSROOT_LOCAL),)
+ CFLAGS    += -I$(SYSROOT_LOCAL)/include/rem
+ endif
  
  CXXFLAGS  += -I. -Iinclude -I$(LIBRE_INC)
- CXXFLAGS  += -I$(LIBREM_PATH)/include
+-ifneq ($(LIBREM_PATH),)
+-CXXFLAGS  += -I$(LIBREM_PATH)/include
+-endif
 -CXXFLAGS  += -I$(SYSROOT)/local/include/rem -I$(SYSROOT)/include/rem
-+CXXFLAGS  += -I$(SYSROOT)/local/include/rem -I$(SYSROOT_ALT)/include/rem
- CXXFLAGS  += $(EXTRA_CXXFLAGS)
++CXXFLAGS  += -I$(SYSROOT_ALT)/include/rem
+ ifneq ($(SYSROOT_LOCAL),)
+ CXXFLAGS  += -I$(SYSROOT_LOCAL)/include/rem
+ endif
+@@ -73,10 +62,6 @@ CXXFLAGS  += $(EXTRA_CXXFLAGS)
  # XXX: common for C/C++
+ CPPFLAGS += -DHAVE_INTTYPES_H
+-ifneq ($(LIBREM_PATH),)
+-CLANG_OPTIONS  += -I$(LIBREM_PATH)/include
+-endif
+-
+ ifeq ($(OS),win32)
+ STATIC    := yes
+ endif
+@@ -144,10 +129,6 @@ LIB_OBJS  := $(OBJS) $(MOD_OBJS)
+ TEST_OBJS := $(patsubst %.c,$(BUILD)/test/%.o,$(filter %.c,$(TEST_SRCS)))
+ TEST_OBJS += $(patsubst %.cpp,$(BUILD)/test/%.o,$(filter %.cpp,$(TEST_SRCS)))
+-ifneq ($(LIBREM_PATH),)
+-LIBS  += -L$(LIBREM_PATH)
+-endif
+-
+ # Static build: include module linker-flags in binary
+ ifneq ($(STATIC),)
+ LIBS      += $(MOD_LFLAGS)
diff --git a/net/baresip/patches/010-openssl-deprecated.patch b/net/baresip/patches/010-openssl-deprecated.patch
deleted file mode 100644 (file)
index 4e691bc..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/modules/debug_cmd/debug_cmd.c
-+++ b/modules/debug_cmd/debug_cmd.c
-@@ -56,7 +56,7 @@ static int print_system_info(struct re_printf *pf, void *arg)
- #ifdef USE_OPENSSL
-       err |= re_hprintf(pf, " OpenSSL:  %s\n",
--                        SSLeay_version(SSLEAY_VERSION));
-+                        OpenSSL_version(OPENSSL_VERSION));
- #endif
-       return err;
index 1c89cb2345a098aed9014bfff31c12fbf70e0775..90b0c920972f99bd2314face0b14e1df3f4fb4fb 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kamailio5
 PKG_VERSION:=5.4.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=https://www.kamailio.org/pub/kamailio/$(PKG_VERSION)/src
 PKG_SOURCE:=kamailio-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
diff --git a/net/kamailio-5.x/patches/160-openssl-deprecated.patch b/net/kamailio-5.x/patches/160-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..51009f2
--- /dev/null
@@ -0,0 +1,106 @@
+--- a/src/modules/tls/tls_domain.c
++++ b/src/modules/tls/tls_domain.c
+@@ -27,6 +27,8 @@
+ #include <stdlib.h>
+ #include <openssl/ssl.h>
+ #include <openssl/opensslv.h>
++#include <openssl/bn.h>
++#include <openssl/dh.h>
+ #ifndef OPENSSL_NO_ENGINE
+ #include <openssl/engine.h>
+@@ -61,7 +63,7 @@ static void setup_ecdh(SSL_CTX *ctx)
+ {
+    EC_KEY *ecdh;
+-   if (SSLeay() < 0x1000005fL) {
++   if (OpenSSL_version_num() < 0x1000005fL) {
+       return;
+    }
+--- a/src/modules/tls/tls_init.c
++++ b/src/modules/tls/tls_init.c
+@@ -627,14 +627,13 @@ int tls_h_mod_pre_init_f(void)
+               return 0;
+       }
+       LM_DBG("preparing tls env for modules initialization\n");
+-#if OPENSSL_VERSION_NUMBER >= 0x010100000L && !defined(LIBRESSL_VERSION_NUMBER)
+-      LM_DBG("preparing tls env for modules initialization (libssl >=1.1)\n");
+-      OPENSSL_init_ssl(0, NULL);
+-#else
++#if OPENSSL_VERSION_NUMBER < 0x010100000L || defined(LIBRESSL_VERSION_NUMBER)
+       LM_DBG("preparing tls env for modules initialization (libssl <=1.0)\n");
+       SSL_library_init();
+-#endif
+       SSL_load_error_strings();
++#else
++      LM_DBG("preparing tls env for modules initialization (libssl >=1.1)\n");
++#endif
+       tls_mod_preinitialized=1;
+       return 0;
+ }
+@@ -668,7 +667,7 @@ int tls_h_mod_init_f(void)
+ #if OPENSSL_VERSION_NUMBER < 0x00907000L
+       LM_WARN("You are using an old version of OpenSSL (< 0.9.7). Upgrade!\n");
+ #endif
+-      ssl_version=SSLeay();
++      ssl_version=OpenSSL_version_num();
+       /* check if version have the same major minor and fix level
+        * (e.g. 0.9.8a & 0.9.8c are ok, but 0.9.8 and 0.9.9x are not)
+        * - values is represented as 0xMMNNFFPPS: major minor fix patch status
+@@ -680,7 +679,7 @@ int tls_h_mod_init_f(void)
+                               " compiled \"%s\" (0x%08lx).\n"
+                               " Please make sure a compatible version is used"
+                               " (tls_force_run in kamailio.cfg will override this check)\n",
+-                              SSLeay_version(SSLEAY_VERSION), ssl_version,
++                              OpenSSL_version(OPENSSL_VERSION), ssl_version,
+                               OPENSSL_VERSION_TEXT, (long)OPENSSL_VERSION_NUMBER);
+               if (cfg_get(tls, tls_cfg, force_run))
+                       LM_WARN("tls_force_run turned on, ignoring "
+@@ -857,6 +856,7 @@ int tls_check_sockets(tls_domains_cfg_t* cfg)
+ void tls_h_mod_destroy_f(void)
+ {
+       LM_DBG("tls module final tls destroy\n");
++#if OPENSSL_VERSION_NUMBER < 0x010100000L || defined(LIBRESSL_VERSION_NUMBER)
+       if(tls_mod_preinitialized > 0)
+               ERR_free_strings();
+       /* TODO: free all the ctx'es */
+@@ -869,4 +869,5 @@ void tls_h_mod_destroy_f(void)
+       LM_DBG("executing openssl v1.1+ cleanup\n");
+       OPENSSL_cleanup();
+ #endif
++#endif
+ }
+--- a/src/modules/tls/tls_locking.c
++++ b/src/modules/tls/tls_locking.c
+@@ -140,6 +140,8 @@ unsigned long sr_ssl_id_f()
+ /* returns -1 on error, 0 on success */
+ int tls_init_locks()
+ {
++/* OpenSSL is thread-safe since 1.1.0 */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       /* init "static" tls locks */
+       n_static_locks=CRYPTO_num_locks();
+       if (n_static_locks<0){
+@@ -167,13 +169,10 @@ int tls_init_locks()
+               CRYPTO_set_locking_callback(locking_f);
+       }
+-/* OpenSSL is thread-safe since 1.1.0 */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       /* set "dynamic" locks callbacks */
+       CRYPTO_set_dynlock_create_callback(dyn_create_f);
+       CRYPTO_set_dynlock_lock_callback(dyn_lock_f);
+       CRYPTO_set_dynlock_destroy_callback(dyn_destroy_f);
+-#endif
+       /* starting with v1.0.0 openssl does not use anymore getpid(), but address
+        * of errno which can point to same virtual address in a multi-process
+@@ -186,6 +185,7 @@ int tls_init_locks()
+        *  (only atomic_inc), fallback to the default use-locks mode
+        * CRYPTO_set_add_lock_callback(atomic_add_f);
+        */
++#endif
+       return 0;
+ error:
index 7a0ab63b2444f8c0c4f67b6b91f97b413b789fc1..fb30da6dafc742591f697d07cd3064992d393592 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=restund
 PKG_VERSION:=0.4.12
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.creytiv.com/pub
@@ -76,7 +76,7 @@ define Package/restund/install
                $(PKG_INSTALL_DIR)/usr/lib/restund/modules/turn.so \
                $(1)/usr/lib/restund/modules
        $(INSTALL_DIR) $(1)/etc
-       $(INSTALL_CONF) $(PKG_BUILD_DIR)/etc/restund.conf $(1)/etc
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/restund.conf $(1)/etc
        $(SED) \
                's|^\(module_path\)\([ \t]\+\).*$$$$|\1\2/usr/lib/restund/modules|g' \
                $(1)/etc/restund.conf
@@ -92,14 +92,6 @@ define Package/restund/conffiles
 /etc/restund.conf
 endef
 
-define Package/restund/postinst
-#!/bin/sh
-if [ -z "$${IPKG_INSTROOT}" ]; then
-  chown $(PKG_NAME):$(PKG_NAME) /etc/restund.conf
-fi
-exit 0
-endef
-
 #
 # 1. Name
 # 2. Title
index 1b84d79b177b26d34c2b593e435deaf891c257cf..6240e0b654005e2c64b90fbef6c8afa4f8c4ba09 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=rtpengine
-PKG_VERSION:=mr8.5.1.2
+PKG_VERSION:=mr8.5.2.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/sipwise/rtpengine/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=ffc85d736ee58c4f74374ebc336fd14e43031be7bbd6acff27447cc25aff9558
+PKG_HASH:=e2c0f94984753f321e1db0a97f81af18f3e9f7005a2ca67766ddef2b6c8d4427
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=LICENSE
diff --git a/net/rtpengine/patches/05-support-kernels-greater-equal-5.9.9.patch b/net/rtpengine/patches/05-support-kernels-greater-equal-5.9.9.patch
new file mode 100644 (file)
index 0000000..9ec666f
--- /dev/null
@@ -0,0 +1,38 @@
+commit 46a64889071cb844550786096c251b804a234016
+Author: Richard Fuchs <rfuchs@sipwise.com>
+Date:   Thu Nov 19 11:22:26 2020 -0500
+
+    support kernels >= 5.9.9
+    
+    closes #1111
+    
+    Change-Id: I81f22bfec93b38a108b671b10bd70bf86fb1270c
+
+diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c
+index c12edcd8..3c5e3a89 100644
+--- a/kernel-module/xt_RTPENGINE.c
++++ b/kernel-module/xt_RTPENGINE.c
+@@ -3351,7 +3351,10 @@ static int send_proxy_packet4(struct sk_buff *skb, struct re_address *src, struc
+               uh->check = CSUM_MANGLED_0;
+       skb->protocol = htons(ETH_P_IP);
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,9) || \
++              (LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,78) && LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0))
++      if (ip_route_me_harder(par->state->net, par->state->sk, skb, RTN_UNSPEC))
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
+       if (ip_route_me_harder(par->state->net, skb, RTN_UNSPEC))
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
+       if (ip_route_me_harder(par->net, skb, RTN_UNSPEC))
+@@ -3447,7 +3450,10 @@ static int send_proxy_packet6(struct sk_buff *skb, struct re_address *src, struc
+               uh->check = CSUM_MANGLED_0;
+       skb->protocol = htons(ETH_P_IPV6);
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,9) || \
++              (LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,78) && LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0))
++      if (ip6_route_me_harder(par->state->net, par->state->sk, skb))
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
+       if (ip6_route_me_harder(par->state->net, skb))
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
+       if (ip6_route_me_harder(par->net, skb))
index 25c9fbdb49bc4b4a0446fa41bfedebc3c48f9f15..a2add58cbbd27a058ce0f2e94973d59c46c699da 100644 (file)
@@ -8,26 +8,27 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sipp
-PKG_VERSION:=3.6.0
+PKG_VERSION:=3.6.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/SIPp/sipp/releases/download/v$(PKG_VERSION)
-PKG_HASH:=e47e7b11fec0769cf76b30623a66390333bdb20323c66043ca535460858fa1bb
+PKG_HASH:=6a560e83aff982f331ddbcadfb3bd530c5896cd5b757dd6eb682133cc860ecb1
 
 PKG_LICENSE:=GPL-2.0+ BSD-3-Clause Zlib
 PKG_LICENSE_FILES:=LICENSE.txt
 
-PKG_FIXUP:=autoreconf
-
 include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+CMAKE_INSTALL:=1
 
 define Package/sipp
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Telephony
-  DEPENDS:=$(CXX_DEPENDS) +libncurses +libpthread
+  DEPENDS:=$(CXX_DEPENDS) +libncurses +libpcap +libpthread
   TITLE:=test tool / traffic generator for the SIP protocol
   URL:=http://sipp.sourceforge.net/
 endef
@@ -39,16 +40,19 @@ define Package/sipp/description
  methods.
 endef
 
-CONFIGURE_ARGS+= \
-       --enable-epoll \
-       --without-gsl \
-       --without-pcap \
-       --with-rtpstream \
-       --without-sctp
+# Otherwise OpenWrt's CPPFLAGS are ignored
+TARGET_CFLAGS += $(TARGET_CPPFLAGS)
+
+# Use "common" options, see build.sh (we don't have gsl though)
+CMAKE_OPTIONS += \
+       -DUSE_GSL= \
+       -DUSE_PCAP=1 \
+       -DUSE_SCTP= \
+       -DUSE_SSL=
 
 define Package/sipp/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/sipp $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sipp $(1)/usr/bin
 endef
 
 $(eval $(call BuildPackage,sipp))
diff --git a/net/sipp/patches/01-locale-include.patch b/net/sipp/patches/01-locale-include.patch
new file mode 100644 (file)
index 0000000..5562297
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/src/screen.cpp
++++ b/src/screen.cpp
+@@ -18,6 +18,7 @@
+  */
+ #include <curses.h>
++#include <locale.h>
+ #include "screen.hpp"
+ #include "sipp.hpp"
diff --git a/net/sipp/patches/02-Fix_compatibility_with_older_C++_in_3.6.x_branch.patch b/net/sipp/patches/02-Fix_compatibility_with_older_C++_in_3.6.x_branch.patch
new file mode 100644 (file)
index 0000000..8826f21
--- /dev/null
@@ -0,0 +1,149 @@
+commit 626de652455a6c061d5a045fb226212c1f7eaeb5
+Author: Walter Doekes <walter+github@wjd.nu>
+Date:   Fri Sep 18 09:56:40 2020 +0200
+
+    Fix compatibility with older C++ in 3.6.x branch
+    
+    - no auto keyword (auto x = 1)
+    - no range based loop (for (*iter) : iterable)
+    - no std::to_string
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 111c137..f1f815a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,6 +32,7 @@ file(GLOB all_SRCS
+   "${PROJECT_SOURCE_DIR}/src/*.c"
+   )
++include(${CMAKE_ROOT}/Modules/CheckCXXSourceCompiles.cmake)
+ include(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
+ include(${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
+ include(${CMAKE_ROOT}/Modules/CheckStructHasMember.cmake)
+@@ -43,6 +44,10 @@ CHECK_STRUCT_HAS_MEMBER("struct udphdr" uh_sport "sys/types.h;netinet/udp.h"  HA
+ CHECK_SYMBOL_EXISTS(le16toh "endian.h" HAVE_DECL_LE16TOH)
+ CHECK_SYMBOL_EXISTS(le16toh "sys/endian.h" HAVE_DECL_LE16TOH_BSD)
++CHECK_CXX_SOURCE_COMPILES("
++#include <string>
++int main() { std::to_string(1).c_str(); return 0; }
++" HAVE_STD_TOSTRING)
+ configure_file("${PROJECT_SOURCE_DIR}/include/config.h.in"
+                "${PROJECT_BINARY_DIR}/config.h" )
+diff --git a/include/config.h.in b/include/config.h.in
+index 8c22504..cf39ea1 100644
+--- a/include/config.h.in
++++ b/include/config.h.in
+@@ -1,5 +1,5 @@
+ /*--------------------------------------------------------------------------
+- * This file is autogenerated from config.h.in 
++ * This file is autogenerated from include/config.h.in
+  * during the cmake configuration of your project. If you need to make changes
+  * edit the original file NOT THIS FILE.
+  * --------------------------------------------------------------------------*/
+@@ -18,5 +18,6 @@
+ #endif
+ #cmakedefine HAVE_IP_COMPAT_H @HAVE_IP_COMPAT_H@
+ #cmakedefine HAVE_UDP_UH_PREFIX @HAVE_UDP_UH_PREFIX@
++#cmakedefine HAVE_STD_TOSTRING @HAVE_STD_TOSTRING@
+ #endif
+diff --git a/include/screen.hpp b/include/screen.hpp
+index 13a9708..37c8ddf 100644
+--- a/include/screen.hpp
++++ b/include/screen.hpp
+@@ -43,9 +43,12 @@ void print_statistics(int last);
+ extern int key_backspace;
+ extern int key_dc;
++typedef std::vector<std::string> string_array;
++
+ class ScreenPrinter {
+ public:
+     ScreenPrinter():
++        M_last(false),
+         M_headless(!isatty(fileno(stdout)))
+     {};
+     void redraw();
+@@ -63,9 +66,9 @@ private:
+     void draw_repartition_detailed(CStat::T_dynamicalRepartition * tabRepartition,
+                                  int sizeOfTab);
+-    std::vector<std::string> lines;
++    string_array lines;
+-    bool M_last = false;
++    bool M_last;
+ };
+ extern ScreenPrinter* sp;
+diff --git a/include/sipp.hpp b/include/sipp.hpp
+index 878c99f..b04a619 100644
+--- a/include/sipp.hpp
++++ b/include/sipp.hpp
+@@ -83,6 +83,18 @@
+ #include "ratetask.hpp"
+ #include "watchdog.hpp"
++/* Backwards compatibility */
++#ifndef HAVE_STD_TOSTRING
++#include <sstream>
++namespace std {
++template <typename T> string to_string(T value) {
++    ostringstream os;
++    os << value;
++    return os.str();
++}
++}
++#endif
++
+ /*
+  * If this files is included in the Main, then extern definitions
+  * are removed, and the DEFVAL macro becomes '= value;'. Else
+diff --git a/src/screen.cpp b/src/screen.cpp
+index bbf9cd2..5521a44 100644
+--- a/src/screen.cpp
++++ b/src/screen.cpp
+@@ -83,15 +83,15 @@ void print_statistics(int last)
+ void ScreenPrinter::print_closing_stats() {
+     M_last = true;
+     get_lines();
+-    for (auto line : lines) {
+-        printf("%s\n", line.c_str());
++    for (string_array::iterator it = lines.begin(); it != lines.end(); ++it) {
++        printf("%s\n", (*it).c_str());
+     }
+     if (currentScreenToDisplay != DISPLAY_STAT_SCREEN) {
+         currentScreenToDisplay = DISPLAY_STAT_SCREEN;
+         get_lines();
+-        for (auto line : lines) {
+-            printf("%s\n", line.c_str());
++        for (string_array::iterator it = lines.begin(); it != lines.end(); ++it) {
++            printf("%s\n", (*it).c_str());
+         }
+     }
+@@ -100,8 +100,8 @@ void ScreenPrinter::print_closing_stats() {
+ void ScreenPrinter::print_to_file(FILE* f)
+ {
+     get_lines();
+-    for (auto line : lines) {
+-        fprintf(f, "%s\n", line.c_str());
++    for (string_array::iterator it = lines.begin(); it != lines.end(); ++it) {
++        fprintf(f, "%s\n", (*it).c_str());
+     }
+ }
+@@ -114,8 +114,8 @@ void ScreenPrinter::redraw()
+     if (!M_headless) {
+         get_lines();
+         erase();
+-        for (auto line : lines) {
+-            printw("%s\n", line.c_str());
++        for (string_array::iterator it = lines.begin(); it != lines.end(); ++it) {
++            printw("%s\n", (*it).c_str());
+         }
+         if (command_mode) {