summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaco Kroon <jaco@uls.co.za>2020-06-30 13:20:56 +0200
committerJoonas Niilola <juippis@gentoo.org>2020-07-01 09:38:32 +0300
commitff22a39875feb55d1920acdaa282f32e51d9f19e (patch)
tree037389bd5a248dfde1b177f71ff0391940cc9edc /net-misc
parentnet-firewall/ufw: define DISTUTILS_USE_SETUPTOOLS (diff)
downloadgentoo-ff22a39875feb55d1920acdaa282f32e51d9f19e.tar.gz
gentoo-ff22a39875feb55d1920acdaa282f32e51d9f19e.tar.bz2
gentoo-ff22a39875feb55d1920acdaa282f32e51d9f19e.zip
net-misc/asterisk: USE=-ssl fixes (13.33.0)
Bug: https://bugs.gentoo.org/725888 Signed-off-by: Jaco Kroon <jaco@uls.co.za> Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'net-misc')
-rw-r--r--net-misc/asterisk/asterisk-13.33.0.ebuild3
-rw-r--r--net-misc/asterisk/files/asterisk-13.33.0-nossl.patch94
2 files changed, 96 insertions, 1 deletions
diff --git a/net-misc/asterisk/asterisk-13.33.0.ebuild b/net-misc/asterisk/asterisk-13.33.0.ebuild
index 85e6f8facee2..1e709bfbd068 100644
--- a/net-misc/asterisk/asterisk-13.33.0.ebuild
+++ b/net-misc/asterisk/asterisk-13.33.0.ebuild
@@ -26,7 +26,8 @@ REQUIRED_USE="gtalk? ( xmpp )
"
PATCHES=(
- "${FILESDIR}/asterisk-historic-no-var-run-install.patch"
+ "${FILESDIR}/${PN}-historic-no-var-run-install.patch"
+ "${FILESDIR}/${PN}-13.33.0-nossl.patch"
)
DEPEND="acct-user/asterisk
diff --git a/net-misc/asterisk/files/asterisk-13.33.0-nossl.patch b/net-misc/asterisk/files/asterisk-13.33.0-nossl.patch
new file mode 100644
index 000000000000..5fb0c5650e54
--- /dev/null
+++ b/net-misc/asterisk/files/asterisk-13.33.0-nossl.patch
@@ -0,0 +1,94 @@
+From 2513235859fc50e8c28545977702b9b7b439f5f5 Mon Sep 17 00:00:00 2001
+From: Joshua C. Colp <jcolp@sangoma.com>
+Date: Wed, 24 Jun 2020 07:25:47 -0300
+Subject: [PATCH] menuselect: Resolve infinite loop in dependency scenario.
+
+Given a scenario where a module has a dependency on both
+an external library and a module if the external library was
+available and the module was not an infinite loop would
+occur. This happened due to the code changing the dependecy
+status to no failure on each dependency checking loop
+iteration, resulting in the code thinking that it had
+gone from no failure to failure each time triggering another
+dependency check.
+
+This change makes it so that the old dependency status is
+preserved throughout the dependency checking allowing it to
+determine that after the first iteration the dependency
+status does not transition from no failure to failure.
+
+ASTERISK-28930
+
+Change-Id: Iea06d45d9fd6d8bfd068882a0bb7e23a53ec3e84
+---
+
+diff --git a/menuselect/menuselect.c b/menuselect/menuselect.c
+index 83f6098..a595ce8 100644
+--- a/menuselect/menuselect.c
++++ b/menuselect/menuselect.c
+@@ -630,14 +630,14 @@
+ struct member *mem;
+ struct reference *dep;
+ struct dep_file *dep_file;
+- unsigned int changed, old_failure;
++ unsigned int changed;
+
+ AST_LIST_TRAVERSE(&categories, cat, list) {
+ AST_LIST_TRAVERSE(&cat->members, mem, list) {
+ if (mem->is_separator) {
+ continue;
+ }
+- old_failure = mem->depsfailed;
++ mem->depsfailedold = mem->depsfailed;
+ AST_LIST_TRAVERSE(&mem->deps, dep, list) {
+ if (dep->member)
+ continue;
+@@ -655,7 +655,7 @@
+ break; /* This dependency is not met, so we can stop now */
+ }
+ }
+- if (old_failure == SOFT_FAILURE && mem->depsfailed != HARD_FAILURE)
++ if (mem->depsfailedold == SOFT_FAILURE && mem->depsfailed != HARD_FAILURE)
+ mem->depsfailed = SOFT_FAILURE;
+ }
+ }
+@@ -673,8 +673,6 @@
+ continue;
+ }
+
+- old_failure = mem->depsfailed;
+-
+ if (mem->depsfailed == HARD_FAILURE)
+ continue;
+
+@@ -693,7 +691,7 @@
+ }
+ }
+
+- if (mem->depsfailed != old_failure) {
++ if (mem->depsfailed != mem->depsfailedold) {
+ if ((mem->depsfailed == NO_FAILURE) && mem->was_defaulted) {
+ mem->enabled = !strcasecmp(mem->defaultenabled, "yes");
+ print_debug("Just set %s enabled to %d\n", mem->name, mem->enabled);
+@@ -702,6 +700,8 @@
+ print_debug("Just set %s enabled to %d\n", mem->name, mem->enabled);
+ }
+ changed = 1;
++ /* We need to update the old failed deps for the next loop of this */
++ mem->depsfailedold = mem->depsfailed;
+ break; /* This dependency is not met, so we can stop now */
+ }
+ }
+diff --git a/menuselect/menuselect.h b/menuselect/menuselect.h
+index 78ae8ef..d41859e 100644
+--- a/menuselect/menuselect.h
++++ b/menuselect/menuselect.h
+@@ -78,6 +78,8 @@
+ unsigned int was_enabled:1;
+ /*! This module has failed dependencies */
+ unsigned int depsfailed:2;
++ /*! Previous failed dependencies when calculating */
++ unsigned int depsfailedold:2;
+ /*! This module has failed conflicts */
+ unsigned int conflictsfailed:2;
+ /*! This module's 'enabled' flag was changed by a default only */