Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/asterisk/, net-misc/asterisk/files/
Date: Wed, 01 Jul 2020 06:39:29
Message-Id: 1593585512.ff22a39875feb55d1920acdaa282f32e51d9f19e.juippis@gentoo
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 */