From 13699a5010be568cb4dda2cf035c543ae0db3597 Mon Sep 17 00:00:00 2001 From: Sebastian Kemper Date: Mon, 24 Jun 2019 16:07:57 +0200 Subject: [PATCH] freeswitch-stable: bump to 1.8.6 Backport from master. Signed-off-by: Sebastian Kemper --- net/freeswitch-stable/Makefile | 4 +- net/freeswitch-stable/files/freeswitch.init | 57 +++++++++++++++---- .../patches/030-fix-configure-ac.patch | 6 +- .../patches/120-fix-copts.diff | 2 +- .../patches/380-disable-luajit.patch | 2 +- ...h_core_media-fix-stringop-truncation.patch | 32 +++++++++++ .../410-mod_say_ja-fix-format-overflow.patch | 42 ++++++++++++++ .../420-mod_kazoo-correct-ei_init-check.patch | 11 ++++ 8 files changed, 138 insertions(+), 18 deletions(-) create mode 100644 net/freeswitch-stable/patches/400-switch_core_media-fix-stringop-truncation.patch create mode 100644 net/freeswitch-stable/patches/410-mod_say_ja-fix-format-overflow.patch create mode 100644 net/freeswitch-stable/patches/420-mod_kazoo-correct-ei_init-check.patch diff --git a/net/freeswitch-stable/Makefile b/net/freeswitch-stable/Makefile index 9710156..6ae400d 100644 --- a/net/freeswitch-stable/Makefile +++ b/net/freeswitch-stable/Makefile @@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk PRG_NAME:=freeswitch PKG_NAME:=$(PRG_NAME)-stable -PKG_VERSION:=1.8.4 +PKG_VERSION:=1.8.6 PKG_RELEASE:=1 PKG_MAINTAINER:=Sebastian Kemper PKG_SOURCE:=$(PRG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://files.$(PRG_NAME).org/releases/$(PRG_NAME) -PKG_HASH:=768f4a7f2d02e79f522cd4b7a26f6cef9e5663b5ac6478b9fe4725a7276ae3d3 +PKG_HASH:=b87f47e57d13de2b901bd1e4eb85491178e59a159a2831d7430abe7947f0d3a4 PKG_CPE_ID:=cpe:/a:freeswitch:freeswitch diff --git a/net/freeswitch-stable/files/freeswitch.init b/net/freeswitch-stable/files/freeswitch.init index a8270f5..aeab073 100644 --- a/net/freeswitch-stable/files/freeswitch.init +++ b/net/freeswitch-stable/files/freeswitch.init @@ -10,7 +10,7 @@ USE_PROCD=1 NAME=freeswitch COMMAND=/usr/bin/$NAME -LOGGER="/usr/bin/logger -p user.err -s -t $NAME" +LOGGER="/usr/bin/logger -p user.err -s -t $NAME --" start_service() { local dir @@ -55,16 +55,51 @@ start_service() { config_get dir_storage directories storage /tmp/$NAME/storage config_get dir_temp directories temp /tmp/$NAME/temp - for dir in "$dir_cache" "$dir_db" "$dir_localstate" \ - "$dir_log" "$dir_recordings" "$dir_run" "$dir_storage" \ - "$dir_temp" - do - [ ! -e "$dir" ] && { - mkdir -p "$dir" - chown "$user":"$group" "$dir" - chmod 750 "$dir" - } - done + user_exists "$user" || { + $LOGGER user \""$user"\" does not exist + exit 1 + } + + group_exists "$group" || { + $LOGGER group \""$group"\" does not exist + exit 1 + } + + # do not touch directories that already exist + # posix shell does not support arrays, hence using awk + awk \ + -v user="$user" \ + -v group="$group" \ + -v a="$dir_cache" \ + -v b="$dir_db" \ + -v c="$dir_localstate" \ + -v d="$dir_log" \ + -v e="$dir_recordings" \ + -v f="$dir_run" \ + -v g="$dir_storage" \ + -v h="$dir_temp" \ + ' + BEGIN { + dir[0]=a + dir[1]=b + dir[2]=c + dir[3]=d + dir[4]=e + dir[5]=f + dir[6]=g + dir[7]=h + for (x in dir) { + if (system("test ! -e \"" dir[x] "\"" )) { + delete dir[x] + } + } + for (x in dir) { + system("mkdir -p \"" dir[x] "\"" ) + system("chmod 750 \"" dir[x] "\"" ) + system("chown \"" user "\":\"" group "\" \"" dir[x] "\"" ) + } + } + ' config_get options general options diff --git a/net/freeswitch-stable/patches/030-fix-configure-ac.patch b/net/freeswitch-stable/patches/030-fix-configure-ac.patch index 602013b..754a0a2 100644 --- a/net/freeswitch-stable/patches/030-fix-configure-ac.patch +++ b/net/freeswitch-stable/patches/030-fix-configure-ac.patch @@ -31,7 +31,7 @@ else CC_FOR_BUILD='$(CC)' fi -@@ -662,7 +638,7 @@ AC_ARG_ENABLE(core-pgsql-pkgconfig, +@@ -649,7 +625,7 @@ AC_ARG_ENABLE(core-pgsql-pkgconfig, [AS_HELP_STRING([--disable-core-pgsql-pkgconfig], [Use pg_config to get PGQSL build options])],[enable_core_pgsql_pkgconfig="$enableval"],[enable_core_pgsql_pkgconfig="yes"]) if test x"$enable_core_pgsql_support" = x"yes" ; then @@ -40,7 +40,7 @@ AC_PATH_PROG([PKG_CONFIG], [pkg-config], [no]) if test "$PKG_CONFIG" = "no" \ || test x"$enable_core_pgsql_pkgconfig" = x"no" \ -@@ -1617,13 +1593,7 @@ AC_CHECK_PROG(PERL,perl,[ac_cv_have_perl +@@ -1613,13 +1589,7 @@ AC_CHECK_PROG(PERL,perl,[ac_cv_have_perl # -a "x$ac_cv_have_EXTERN_h" != "xno" if test "x$ac_cv_have_perl" != "xno"; then @@ -55,7 +55,7 @@ save_CFLAGS="$CFLAGS" CFLAGS="$PERL_CFLAGS" -@@ -1718,24 +1688,12 @@ then +@@ -1714,24 +1684,12 @@ then if test "$python_has_distutils" != "no" ; then AC_MSG_CHECKING([location of site-packages]) diff --git a/net/freeswitch-stable/patches/120-fix-copts.diff b/net/freeswitch-stable/patches/120-fix-copts.diff index 3eeeb9d..3eae7bd 100644 --- a/net/freeswitch-stable/patches/120-fix-copts.diff +++ b/net/freeswitch-stable/patches/120-fix-copts.diff @@ -1,6 +1,6 @@ --- a/configure.ac +++ b/configure.ac -@@ -2009,7 +2009,12 @@ AC_SUBST(OUR_DISABLED_INSTALL_MODS) +@@ -2018,7 +2018,12 @@ AC_SUBST(OUR_DISABLED_INSTALL_MODS) AC_SUBST(OUR_DISABLED_UNINSTALL_MODS) AC_SUBST(AM_MAKEFLAGS) diff --git a/net/freeswitch-stable/patches/380-disable-luajit.patch b/net/freeswitch-stable/patches/380-disable-luajit.patch index cb9c5ac..f384b3a 100644 --- a/net/freeswitch-stable/patches/380-disable-luajit.patch +++ b/net/freeswitch-stable/patches/380-disable-luajit.patch @@ -1,6 +1,6 @@ --- a/configure.ac +++ b/configure.ac -@@ -584,7 +584,7 @@ AC_SUBST(SYS_XMLRPC_CFLAGS) +@@ -571,7 +571,7 @@ AC_SUBST(SYS_XMLRPC_CFLAGS) AC_SUBST(SYS_XMLRPC_LDFLAGS) AM_CONDITIONAL([SYSTEM_XMLRPCC],[test "${enable_xmlrpcc}" = "yes"]) diff --git a/net/freeswitch-stable/patches/400-switch_core_media-fix-stringop-truncation.patch b/net/freeswitch-stable/patches/400-switch_core_media-fix-stringop-truncation.patch new file mode 100644 index 0000000..607df68 --- /dev/null +++ b/net/freeswitch-stable/patches/400-switch_core_media-fix-stringop-truncation.patch @@ -0,0 +1,32 @@ +commit e114c6382e68824d4498f62562714860d20804e2 +Author: Sebastian Kemper +Date: Sun Apr 14 19:11:58 2019 +0200 + + FS-11783: [core] quiet gcc truncation warning + + With -Wstringop-truncation gcc warns about calls to bounded string + manipulation function "strncpy" that may either truncate the copied + string or leave the destination unchanged. To avoid the warning when the + result is not expected to be NUL-terminated, it is suggested to call + "memcpy" instead. + + src/switch_core_media.c: In function 'switch_core_media_patch_sdp': + src/switch_core_media.c:11854:4: error: 'strncpy' output truncated before terminating nul copying 2 bytes from a string of the same length [-Werror=stringop-truncation] + strncpy(q, strchr(a_engine->adv_sdp_ip, ':') ? "6 " : "4 ", 2); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This commit follows gcc's recommendation. + + Signed-off-by: Sebastian Kemper + +--- a/src/switch_core_media.c ++++ b/src/switch_core_media.c +@@ -11918,7 +11918,7 @@ SWITCH_DECLARE(void) switch_core_media_p + strncpy(q, p, 7); + p += 7; + q += 7; +- strncpy(q, strchr(a_engine->adv_sdp_ip, ':') ? "6 " : "4 ", 2); ++ memcpy(q, strchr(a_engine->adv_sdp_ip, ':') ? "6 " : "4 ", 2); + p +=2; + q +=2; + strncpy(q, a_engine->adv_sdp_ip, strlen(a_engine->adv_sdp_ip)); diff --git a/net/freeswitch-stable/patches/410-mod_say_ja-fix-format-overflow.patch b/net/freeswitch-stable/patches/410-mod_say_ja-fix-format-overflow.patch new file mode 100644 index 0000000..b9f598f --- /dev/null +++ b/net/freeswitch-stable/patches/410-mod_say_ja-fix-format-overflow.patch @@ -0,0 +1,42 @@ +commit 3ca75eb8efa4e50ebe083a269b75fcb1762daa91 +Author: Sebastian Kemper +Date: Sun Apr 14 19:23:41 2019 +0200 + + FS-11783: [mod_say_ja] quiet overflow warning + + With -Wformat-overflow gcc warns about calls to formatted input/output + function "sprintf" that might overflow the destination buffer. + + In this case gcc does not know the upper bound of tm_min and assumes + that up to 11 bytes might be written to buffer (3 bytes). But we know + that tm_min can only be within the range 0 to 59. + + mod_say_ja.c: In function 'ja_say_time': + mod_say_ja.c:376:35: error: '%d' directive writing between 2 and 10 bytes into a region of size 3 [-Werror=format-overflow=] + sprintf(buffer, "%d", tm.tm_min); + ^~ + mod_say_ja.c:376:34: note: directive argument in the range [11, 2147483647] + sprintf(buffer, "%d", tm.tm_min); + ^~~~ + mod_say_ja.c:376:18: note: 'sprintf' output between 3 and 11 bytes into a destination of size 3 + sprintf(buffer, "%d", tm.tm_min); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This commits adds a hint for gcc, which silences the warning. + + Signed-off-by: Sebastian Kemper + +diff --git a/src/mod/say/mod_say_ja/mod_say_ja.c b/src/mod/say/mod_say_ja/mod_say_ja.c +index 72c7c38131..d8e0692fd0 100644 +--- a/src/mod/say/mod_say_ja/mod_say_ja.c ++++ b/src/mod/say/mod_say_ja/mod_say_ja.c +@@ -367,7 +367,8 @@ static switch_status_t ja_say_time(switch_core_session_t *session, char *tosay, + say_file("time/pm.wav"); + } + say_file("time/hour-%d.wav", tm.tm_hour); +- if (tm.tm_min > 10) { ++ /* tm_min is always < 60 - this is just to silence gcc 8 warning */ ++ if (tm.tm_min > 10 && tm.tm_min < 60) { + int temp; + char tch[1+1]; + mod_min = tm.tm_min % 10; diff --git a/net/freeswitch-stable/patches/420-mod_kazoo-correct-ei_init-check.patch b/net/freeswitch-stable/patches/420-mod_kazoo-correct-ei_init-check.patch new file mode 100644 index 0000000..4381643 --- /dev/null +++ b/net/freeswitch-stable/patches/420-mod_kazoo-correct-ei_init-check.patch @@ -0,0 +1,11 @@ +--- a/src/mod/event_handlers/mod_kazoo/kazoo_ei_utils.c ++++ b/src/mod/event_handlers/mod_kazoo/kazoo_ei_utils.c +@@ -519,7 +519,7 @@ switch_status_t create_acceptor() { + char ipbuf[48]; + const char *ip_addr; + +-#if ERLANG_MAJOR >= 10 ++#if (ERLANG_MAJOR == 10 && ERLANG_MINOR >= 3) || ERLANG_MAJOR >= 11 + ei_init(); + #endif + -- 2.30.2