1 |
commit: ff22a39875feb55d1920acdaa282f32e51d9f19e |
2 |
Author: Jaco Kroon <jaco <AT> uls <DOT> co <DOT> za> |
3 |
AuthorDate: Tue Jun 30 11:20:56 2020 +0000 |
4 |
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Jul 1 06:38:32 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ff22a398 |
7 |
|
8 |
net-misc/asterisk: USE=-ssl fixes (13.33.0) |
9 |
|
10 |
Bug: https://bugs.gentoo.org/725888 |
11 |
Signed-off-by: Jaco Kroon <jaco <AT> uls.co.za> |
12 |
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> |
13 |
|
14 |
net-misc/asterisk/asterisk-13.33.0.ebuild | 3 +- |
15 |
.../asterisk/files/asterisk-13.33.0-nossl.patch | 94 ++++++++++++++++++++++ |
16 |
2 files changed, 96 insertions(+), 1 deletion(-) |
17 |
|
18 |
diff --git a/net-misc/asterisk/asterisk-13.33.0.ebuild b/net-misc/asterisk/asterisk-13.33.0.ebuild |
19 |
index 85e6f8facee..1e709bfbd06 100644 |
20 |
--- a/net-misc/asterisk/asterisk-13.33.0.ebuild |
21 |
+++ b/net-misc/asterisk/asterisk-13.33.0.ebuild |
22 |
@@ -26,7 +26,8 @@ REQUIRED_USE="gtalk? ( xmpp ) |
23 |
" |
24 |
|
25 |
PATCHES=( |
26 |
- "${FILESDIR}/asterisk-historic-no-var-run-install.patch" |
27 |
+ "${FILESDIR}/${PN}-historic-no-var-run-install.patch" |
28 |
+ "${FILESDIR}/${PN}-13.33.0-nossl.patch" |
29 |
) |
30 |
|
31 |
DEPEND="acct-user/asterisk |
32 |
|
33 |
diff --git a/net-misc/asterisk/files/asterisk-13.33.0-nossl.patch b/net-misc/asterisk/files/asterisk-13.33.0-nossl.patch |
34 |
new file mode 100644 |
35 |
index 00000000000..5fb0c5650e5 |
36 |
--- /dev/null |
37 |
+++ b/net-misc/asterisk/files/asterisk-13.33.0-nossl.patch |
38 |
@@ -0,0 +1,94 @@ |
39 |
+From 2513235859fc50e8c28545977702b9b7b439f5f5 Mon Sep 17 00:00:00 2001 |
40 |
+From: Joshua C. Colp <jcolp@×××××××.com> |
41 |
+Date: Wed, 24 Jun 2020 07:25:47 -0300 |
42 |
+Subject: [PATCH] menuselect: Resolve infinite loop in dependency scenario. |
43 |
+ |
44 |
+Given a scenario where a module has a dependency on both |
45 |
+an external library and a module if the external library was |
46 |
+available and the module was not an infinite loop would |
47 |
+occur. This happened due to the code changing the dependecy |
48 |
+status to no failure on each dependency checking loop |
49 |
+iteration, resulting in the code thinking that it had |
50 |
+gone from no failure to failure each time triggering another |
51 |
+dependency check. |
52 |
+ |
53 |
+This change makes it so that the old dependency status is |
54 |
+preserved throughout the dependency checking allowing it to |
55 |
+determine that after the first iteration the dependency |
56 |
+status does not transition from no failure to failure. |
57 |
+ |
58 |
+ASTERISK-28930 |
59 |
+ |
60 |
+Change-Id: Iea06d45d9fd6d8bfd068882a0bb7e23a53ec3e84 |
61 |
+--- |
62 |
+ |
63 |
+diff --git a/menuselect/menuselect.c b/menuselect/menuselect.c |
64 |
+index 83f6098..a595ce8 100644 |
65 |
+--- a/menuselect/menuselect.c |
66 |
++++ b/menuselect/menuselect.c |
67 |
+@@ -630,14 +630,14 @@ |
68 |
+ struct member *mem; |
69 |
+ struct reference *dep; |
70 |
+ struct dep_file *dep_file; |
71 |
+- unsigned int changed, old_failure; |
72 |
++ unsigned int changed; |
73 |
+ |
74 |
+ AST_LIST_TRAVERSE(&categories, cat, list) { |
75 |
+ AST_LIST_TRAVERSE(&cat->members, mem, list) { |
76 |
+ if (mem->is_separator) { |
77 |
+ continue; |
78 |
+ } |
79 |
+- old_failure = mem->depsfailed; |
80 |
++ mem->depsfailedold = mem->depsfailed; |
81 |
+ AST_LIST_TRAVERSE(&mem->deps, dep, list) { |
82 |
+ if (dep->member) |
83 |
+ continue; |
84 |
+@@ -655,7 +655,7 @@ |
85 |
+ break; /* This dependency is not met, so we can stop now */ |
86 |
+ } |
87 |
+ } |
88 |
+- if (old_failure == SOFT_FAILURE && mem->depsfailed != HARD_FAILURE) |
89 |
++ if (mem->depsfailedold == SOFT_FAILURE && mem->depsfailed != HARD_FAILURE) |
90 |
+ mem->depsfailed = SOFT_FAILURE; |
91 |
+ } |
92 |
+ } |
93 |
+@@ -673,8 +673,6 @@ |
94 |
+ continue; |
95 |
+ } |
96 |
+ |
97 |
+- old_failure = mem->depsfailed; |
98 |
+- |
99 |
+ if (mem->depsfailed == HARD_FAILURE) |
100 |
+ continue; |
101 |
+ |
102 |
+@@ -693,7 +691,7 @@ |
103 |
+ } |
104 |
+ } |
105 |
+ |
106 |
+- if (mem->depsfailed != old_failure) { |
107 |
++ if (mem->depsfailed != mem->depsfailedold) { |
108 |
+ if ((mem->depsfailed == NO_FAILURE) && mem->was_defaulted) { |
109 |
+ mem->enabled = !strcasecmp(mem->defaultenabled, "yes"); |
110 |
+ print_debug("Just set %s enabled to %d\n", mem->name, mem->enabled); |
111 |
+@@ -702,6 +700,8 @@ |
112 |
+ print_debug("Just set %s enabled to %d\n", mem->name, mem->enabled); |
113 |
+ } |
114 |
+ changed = 1; |
115 |
++ /* We need to update the old failed deps for the next loop of this */ |
116 |
++ mem->depsfailedold = mem->depsfailed; |
117 |
+ break; /* This dependency is not met, so we can stop now */ |
118 |
+ } |
119 |
+ } |
120 |
+diff --git a/menuselect/menuselect.h b/menuselect/menuselect.h |
121 |
+index 78ae8ef..d41859e 100644 |
122 |
+--- a/menuselect/menuselect.h |
123 |
++++ b/menuselect/menuselect.h |
124 |
+@@ -78,6 +78,8 @@ |
125 |
+ unsigned int was_enabled:1; |
126 |
+ /*! This module has failed dependencies */ |
127 |
+ unsigned int depsfailed:2; |
128 |
++ /*! Previous failed dependencies when calculating */ |
129 |
++ unsigned int depsfailedold:2; |
130 |
+ /*! This module has failed conflicts */ |
131 |
+ unsigned int conflictsfailed:2; |
132 |
+ /*! This module's 'enabled' flag was changed by a default only */ |