freeswitch-stable: bump to 1.8.6 432/head
authorSebastian Kemper <sebastian_ml@gmx.net>
Mon, 24 Jun 2019 14:07:57 +0000 (16:07 +0200)
committerSebastian Kemper <sebastian_ml@gmx.net>
Mon, 24 Jun 2019 14:08:00 +0000 (16:08 +0200)
Backport from master.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
net/freeswitch-stable/Makefile
net/freeswitch-stable/files/freeswitch.init
net/freeswitch-stable/patches/030-fix-configure-ac.patch
net/freeswitch-stable/patches/120-fix-copts.diff
net/freeswitch-stable/patches/380-disable-luajit.patch
net/freeswitch-stable/patches/400-switch_core_media-fix-stringop-truncation.patch [new file with mode: 0644]
net/freeswitch-stable/patches/410-mod_say_ja-fix-format-overflow.patch [new file with mode: 0644]
net/freeswitch-stable/patches/420-mod_kazoo-correct-ei_init-check.patch [new file with mode: 0644]

index 9710156b0f99cbfad3012f07a63b02cbcfe7a080..6ae400d7234caebb2e35997cbf10e0903111661c 100644 (file)
@@ -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 <sebastian_ml@gmx.net>
 
 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
 
index a8270f5e6c597687ccf47faa65df9666d8a78edd..aeab073bf25c25dca679381346476d36204c9422 100644 (file)
@@ -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
 
index 602013bf35a3a513af73f18c8ee45a041f276179..754a0a206af4d4ace688edf9417c480bf4a15d4b 100644 (file)
@@ -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])
  
index 3eeeb9dbb392756d1260428ce1ea96490afb8715..3eae7bdbacd0fbe116f7220f9c6cb8567720f3c0 100644 (file)
@@ -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)
  
index cb9c5acf02e21d2920d6c3fc52a299e2c5924fe7..f384b3a878669a01990e0c776044bf4aaf065271 100644 (file)
@@ -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 (file)
index 0000000..607df68
--- /dev/null
@@ -0,0 +1,32 @@
+commit e114c6382e68824d4498f62562714860d20804e2
+Author: Sebastian Kemper <sebastian_ml@gmx.net>
+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 <sebastian_ml@gmx.net>
+
+--- 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 (file)
index 0000000..b9f598f
--- /dev/null
@@ -0,0 +1,42 @@
+commit 3ca75eb8efa4e50ebe083a269b75fcb1762daa91
+Author: Sebastian Kemper <sebastian_ml@gmx.net>
+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 <sebastian_ml@gmx.net>
+
+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 (file)
index 0000000..4381643
--- /dev/null
@@ -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