1 |
commit: 0e02b5efb750155e16b77d0af5c637c01611a014 |
2 |
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Nov 17 21:50:24 2018 +0000 |
4 |
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Nov 17 22:00:04 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e02b5ef |
7 |
|
8 |
media-sound/audacious: 3.10 version bump |
9 |
|
10 |
Bug: https://bugs.gentoo.org/640672 |
11 |
Package-Manager: Portage-2.3.51, Repoman-2.3.12 |
12 |
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> |
13 |
|
14 |
media-sound/audacious/Manifest | 1 + |
15 |
media-sound/audacious/audacious-3.10.ebuild | 83 ++++++++++++++++++++++ |
16 |
.../files/audacious-3.10-dbus-crash.patch | 60 ++++++++++++++++ |
17 |
.../audacious/files/audacious-3.10-ui-freeze.patch | 30 ++++++++ |
18 |
.../files/audacious-3.10-use-after-free.patch | 38 ++++++++++ |
19 |
.../audacious-3.10-volume-slider-boundaries.patch | 25 +++++++ |
20 |
6 files changed, 237 insertions(+) |
21 |
|
22 |
diff --git a/media-sound/audacious/Manifest b/media-sound/audacious/Manifest |
23 |
index 183e77e2dce..091c016fb12 100644 |
24 |
--- a/media-sound/audacious/Manifest |
25 |
+++ b/media-sound/audacious/Manifest |
26 |
@@ -1,3 +1,4 @@ |
27 |
+DIST audacious-3.10.tar.bz2 563531 BLAKE2B cde59bd5aff8e0530f76f3bdde20b48f829592a0a67cc03e8b7c08a8892259e99e9de2b1608698ff28819b7a6d0341d5237491f7591c4380566512076a0889b9 SHA512 513d5f9608c1ebeae9cf9bb95128244e990e66c74bf49aff6570ec557d537809f3ebf93c400f5df2708ff61cf04ecc95da183b111f5a757735cef5a68dd9907f |
28 |
DIST audacious-3.9-gtk3.tar.bz2 600249 BLAKE2B 08559eafc85236e8e881d0cbe6f08e29c82baf0fc46b9209f1d3eee290460260bfa99e6e8f26940f8c6854f3782da24061226ebdb416b6249d10914093e16276 SHA512 6ff98d027c13b30ea9600a9aba914ec993c69826199b8dc303cb60cebdf2af06a7e3dd4af1d34a86343be5485848a57c8a29e48d2a45a33945585550de4e5f9c |
29 |
DIST audacious-3.9.tar.bz2 599488 BLAKE2B 2288fe6919c1770cd283af809629fda72186cc0b87a42821f5fb9b7a20c8e7cd5bc00611d10677a82877c5ebc8a1b5ad728626027b95cc875b66dda732b8747f SHA512 d8ef24c91c84bfa80831075cd9a12fc4bf02cec8bc96bcfa5a941254d194cccdc482482b1c015bc63e1142718c2221034c0f3a87e2cb6e4daf3b4cc428328aaa |
30 |
DIST gentoo_ice-xmms-0.2.tar.bz2 51839 BLAKE2B d3bf8dbfee675dd588bc0258f1015c76877b6b0a3835813d8e9621d149b924aaa33544d07f7ad44a01c058d41d7480b3908b0773c124af33b6e020c376b13d54 SHA512 e863a8f86073007c47ce8c20739aae4bff22e22a7ddc11556b12ae6ebb68654cec7310fdc9d05f2c47f81cf2591fe601b2eb12a2fd911c0a6118c9f3cc524f05 |
31 |
|
32 |
diff --git a/media-sound/audacious/audacious-3.10.ebuild b/media-sound/audacious/audacious-3.10.ebuild |
33 |
new file mode 100644 |
34 |
index 00000000000..926f5853cae |
35 |
--- /dev/null |
36 |
+++ b/media-sound/audacious/audacious-3.10.ebuild |
37 |
@@ -0,0 +1,83 @@ |
38 |
+# Copyright 1999-2018 Gentoo Authors |
39 |
+# Distributed under the terms of the GNU General Public License v2 |
40 |
+ |
41 |
+EAPI=6 |
42 |
+ |
43 |
+inherit gnome2-utils xdg-utils |
44 |
+ |
45 |
+MY_P="${P/_/-}" |
46 |
+S="${WORKDIR}/${MY_P}" |
47 |
+ |
48 |
+DESCRIPTION="Lightweight and versatile audio player" |
49 |
+HOMEPAGE="https://audacious-media-player.org/" |
50 |
+ |
51 |
+if [[ ${PV} == *9999 ]]; then |
52 |
+ inherit autotools git-r3 |
53 |
+ EGIT_REPO_URI="https://github.com/audacious-media-player/audacious.git" |
54 |
+else |
55 |
+ SRC_URI="https://distfiles.audacious-media-player.org/${MY_P}.tar.bz2" |
56 |
+ KEYWORDS="~amd64 ~x86" |
57 |
+fi |
58 |
+ |
59 |
+SRC_URI+=" mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2" |
60 |
+ |
61 |
+LICENSE="BSD-2" |
62 |
+SLOT="0" |
63 |
+IUSE="nls" |
64 |
+ |
65 |
+RDEPEND=" |
66 |
+ >=dev-libs/dbus-glib-0.60 |
67 |
+ >=dev-libs/glib-2.28 |
68 |
+ dev-qt/qtcore:5 |
69 |
+ dev-qt/qtgui:5 |
70 |
+ dev-qt/qtwidgets:5 |
71 |
+ >=x11-libs/cairo-1.2.6 |
72 |
+ >=x11-libs/pango-1.8.0 |
73 |
+ virtual/freedesktop-icon-theme |
74 |
+" |
75 |
+DEPEND="${RDEPEND} |
76 |
+ virtual/pkgconfig |
77 |
+ nls? ( dev-util/intltool ) |
78 |
+" |
79 |
+PDEPEND="~media-plugins/audacious-plugins-${PV}" |
80 |
+ |
81 |
+PATCHES=( |
82 |
+ "${FILESDIR}/${P}-ui-freeze.patch" |
83 |
+ "${FILESDIR}/${P}-dbus-crash.patch" |
84 |
+ "${FILESDIR}/${P}-use-after-free.patch" |
85 |
+ "${FILESDIR}/${P}-volume-slider-boundaries.patch" |
86 |
+) |
87 |
+ |
88 |
+src_configure() { |
89 |
+ # D-Bus is a mandatory dependency, remote control, |
90 |
+ # session management and some plugins depend on this. |
91 |
+ # Building without D-Bus is *unsupported* and a USE-flag |
92 |
+ # will not be added due to the bug reports that will result. |
93 |
+ # Bugs #197894, #199069, #207330, #208606 |
94 |
+ econf \ |
95 |
+ --disable-valgrind \ |
96 |
+ --enable-dbus \ |
97 |
+ --enable-qt \ |
98 |
+ --disable-gtk \ |
99 |
+ $(use_enable nls) |
100 |
+} |
101 |
+ |
102 |
+src_install() { |
103 |
+ default |
104 |
+ |
105 |
+ # Gentoo_ice skin installation; bug #109772 |
106 |
+ insinto /usr/share/audacious/Skins/gentoo_ice |
107 |
+ doins -r "${WORKDIR}"/gentoo_ice/. |
108 |
+ docinto gentoo_ice |
109 |
+ dodoc "${WORKDIR}"/README |
110 |
+} |
111 |
+ |
112 |
+pkg_postinst() { |
113 |
+ xdg_desktop_database_update |
114 |
+ gnome2_icon_cache_update |
115 |
+} |
116 |
+ |
117 |
+pkg_postrm() { |
118 |
+ xdg_desktop_database_update |
119 |
+ gnome2_icon_cache_update |
120 |
+} |
121 |
|
122 |
diff --git a/media-sound/audacious/files/audacious-3.10-dbus-crash.patch b/media-sound/audacious/files/audacious-3.10-dbus-crash.patch |
123 |
new file mode 100644 |
124 |
index 00000000000..83b9c74f98c |
125 |
--- /dev/null |
126 |
+++ b/media-sound/audacious/files/audacious-3.10-dbus-crash.patch |
127 |
@@ -0,0 +1,60 @@ |
128 |
+From 1528e780825b1fc49639ea16d332c5752051dab7 Mon Sep 17 00:00:00 2001 |
129 |
+From: John Lindgren <john@×××××××××.net> |
130 |
+Date: Sun, 19 Aug 2018 14:12:30 -0400 |
131 |
+Subject: [PATCH] Fix crash when an invalid field name is sent via D-Bus. |
132 |
+ Closes: #817. |
133 |
+ |
134 |
+Regression introduced by commit 203b41f8e249. |
135 |
+--- |
136 |
+ src/audacious/dbus-server.cc | 31 +++++++++++++++++-------------- |
137 |
+ 1 file changed, 17 insertions(+), 14 deletions(-) |
138 |
+ |
139 |
+diff --git a/src/audacious/dbus-server.cc b/src/audacious/dbus-server.cc |
140 |
+index 7602ace22..20a6c5839 100644 |
141 |
+--- a/src/audacious/dbus-server.cc |
142 |
++++ b/src/audacious/dbus-server.cc |
143 |
+@@ -635,27 +635,30 @@ static gboolean do_song_title (Obj * obj, Invoc * invoc, unsigned pos) |
144 |
+ static gboolean do_song_tuple (Obj * obj, Invoc * invoc, unsigned pos, const char * key) |
145 |
+ { |
146 |
+ Tuple::Field field = Tuple::field_by_name (key); |
147 |
+- Tuple tuple; |
148 |
+- GVariant * var; |
149 |
++ GVariant * var = nullptr; |
150 |
+ |
151 |
+ if (field >= 0) |
152 |
+- tuple = CURRENT.entry_tuple (pos); |
153 |
+- |
154 |
+- switch (tuple.get_value_type (field)) |
155 |
+ { |
156 |
+- case Tuple::String: |
157 |
+- var = g_variant_new_string (tuple.get_str (field)); |
158 |
+- break; |
159 |
++ Tuple tuple = CURRENT.entry_tuple (pos); |
160 |
+ |
161 |
+- case Tuple::Int: |
162 |
+- var = g_variant_new_int32 (tuple.get_int (field)); |
163 |
+- break; |
164 |
++ switch (tuple.get_value_type (field)) |
165 |
++ { |
166 |
++ case Tuple::String: |
167 |
++ var = g_variant_new_string (tuple.get_str (field)); |
168 |
++ break; |
169 |
+ |
170 |
+- default: |
171 |
+- var = g_variant_new_string (""); |
172 |
+- break; |
173 |
++ case Tuple::Int: |
174 |
++ var = g_variant_new_int32 (tuple.get_int (field)); |
175 |
++ break; |
176 |
++ |
177 |
++ default: |
178 |
++ break; |
179 |
++ } |
180 |
+ } |
181 |
+ |
182 |
++ if (! var) |
183 |
++ var = g_variant_new_string (""); |
184 |
++ |
185 |
+ FINISH2 (song_tuple, g_variant_new_variant (var)); |
186 |
+ return true; |
187 |
+ } |
188 |
|
189 |
diff --git a/media-sound/audacious/files/audacious-3.10-ui-freeze.patch b/media-sound/audacious/files/audacious-3.10-ui-freeze.patch |
190 |
new file mode 100644 |
191 |
index 00000000000..da05bc5b000 |
192 |
--- /dev/null |
193 |
+++ b/media-sound/audacious/files/audacious-3.10-ui-freeze.patch |
194 |
@@ -0,0 +1,30 @@ |
195 |
+From 8f9745a5a539e44244d5e8200c61ed443c638aad Mon Sep 17 00:00:00 2001 |
196 |
+From: John Lindgren <john@×××××××××.net> |
197 |
+Date: Sun, 19 Aug 2018 13:47:17 -0400 |
198 |
+Subject: [PATCH] Prevent UI freeze when displaying song info window. Closes: |
199 |
+ #822. |
200 |
+ |
201 |
+--- |
202 |
+ src/libaudcore/probe.cc | 9 +++++++++ |
203 |
+ 1 file changed, 9 insertions(+) |
204 |
+ |
205 |
+diff --git a/src/libaudcore/probe.cc b/src/libaudcore/probe.cc |
206 |
+index 5c57ef884..38cf73d96 100644 |
207 |
+--- a/src/libaudcore/probe.cc |
208 |
++++ b/src/libaudcore/probe.cc |
209 |
+@@ -242,6 +242,15 @@ EXPORT bool aud_custom_infowin (const char * filename, PluginHandle * decoder) |
210 |
+ if (! strncmp (filename, "stdin://", 8)) |
211 |
+ return false; |
212 |
+ |
213 |
++ // In hindsight, a flag should have been added indicating whether a |
214 |
++ // plugin provides a custom info window or not. Currently, only two |
215 |
++ // plugins do so. Since custom info windows are deprecated anyway, |
216 |
++ // check for those two plugins explicitly and in all other cases, |
217 |
++ // don't open the input file to prevent freezing the UI. |
218 |
++ const char * base = aud_plugin_get_basename (decoder); |
219 |
++ if (strcmp (base, "amidi-plug") && strcmp (base, "vtx")) |
220 |
++ return false; |
221 |
++ |
222 |
+ auto ip = (InputPlugin *) aud_plugin_get_header (decoder); |
223 |
+ if (! ip) |
224 |
+ return false; |
225 |
|
226 |
diff --git a/media-sound/audacious/files/audacious-3.10-use-after-free.patch b/media-sound/audacious/files/audacious-3.10-use-after-free.patch |
227 |
new file mode 100644 |
228 |
index 00000000000..8271a3d6d1b |
229 |
--- /dev/null |
230 |
+++ b/media-sound/audacious/files/audacious-3.10-use-after-free.patch |
231 |
@@ -0,0 +1,38 @@ |
232 |
+From 1d34f6799b8f5910fc6863ae96afd5ab035e830f Mon Sep 17 00:00:00 2001 |
233 |
+From: John Lindgren <john@×××××××××.net> |
234 |
+Date: Thu, 20 Sep 2018 13:46:52 -0400 |
235 |
+Subject: [PATCH] audqt: Use deleteLater() to prevent use-after-free in Qt |
236 |
+ event handling. Closes: #828. |
237 |
+ |
238 |
+--- |
239 |
+ src/libaudqt/infopopup-qt.cc | 10 ++++++++-- |
240 |
+ 1 file changed, 8 insertions(+), 2 deletions(-) |
241 |
+ |
242 |
+diff --git a/src/libaudqt/infopopup-qt.cc b/src/libaudqt/infopopup-qt.cc |
243 |
+index fdbba41d2..81dd87f5c 100644 |
244 |
+--- a/src/libaudqt/infopopup-qt.cc |
245 |
++++ b/src/libaudqt/infopopup-qt.cc |
246 |
+@@ -176,7 +176,9 @@ static InfoPopup * s_infopopup; |
247 |
+ |
248 |
+ static void infopopup_show (const String & filename, const Tuple & tuple) |
249 |
+ { |
250 |
+- delete s_infopopup; |
251 |
++ if (s_infopopup) |
252 |
++ s_infopopup->deleteLater (); |
253 |
++ |
254 |
+ s_infopopup = new InfoPopup (filename, tuple); |
255 |
+ |
256 |
+ QObject::connect (s_infopopup, & QObject::destroyed, [] () { |
257 |
+@@ -206,7 +208,11 @@ EXPORT void infopopup_show_current () |
258 |
+ |
259 |
+ EXPORT void infopopup_hide () |
260 |
+ { |
261 |
+- delete s_infopopup; |
262 |
++ /* This function can be called from an enter/leave event, and Qt does not |
263 |
++ * like widgets being deleted from such events. This is debatably a bug in |
264 |
++ * Qt, but deleteLater() is an effective workaround. */ |
265 |
++ if (s_infopopup) |
266 |
++ s_infopopup->deleteLater (); |
267 |
+ } |
268 |
+ |
269 |
+ } // namespace audqt |
270 |
|
271 |
diff --git a/media-sound/audacious/files/audacious-3.10-volume-slider-boundaries.patch b/media-sound/audacious/files/audacious-3.10-volume-slider-boundaries.patch |
272 |
new file mode 100644 |
273 |
index 00000000000..99155bf79e8 |
274 |
--- /dev/null |
275 |
+++ b/media-sound/audacious/files/audacious-3.10-volume-slider-boundaries.patch |
276 |
@@ -0,0 +1,25 @@ |
277 |
+From 473ee3b3b0ce09feb23afcfc0ff276986db4f1af Mon Sep 17 00:00:00 2001 |
278 |
+From: Eugene Paskevich <eugene@×××××××××××.ua> |
279 |
+Date: Sun, 4 Nov 2018 21:45:07 +0200 |
280 |
+Subject: [PATCH] Qt: don't let the volume slider go beyong upper and/or left |
281 |
+ screen boundaries. |
282 |
+ |
283 |
+--- |
284 |
+ src/libaudqt/volumebutton.cc | 4 +++- |
285 |
+ 1 file changed, 3 insertions(+), 1 deletion(-) |
286 |
+ |
287 |
+diff --git a/src/libaudqt/volumebutton.cc b/src/libaudqt/volumebutton.cc |
288 |
+index e9144cb60..71edf16a1 100644 |
289 |
+--- a/src/libaudqt/volumebutton.cc |
290 |
++++ b/src/libaudqt/volumebutton.cc |
291 |
+@@ -134,7 +134,9 @@ void VolumeButton::showSlider () |
292 |
+ int dy = container_size.height () / 2 - button_size.height () / 2; |
293 |
+ |
294 |
+ QPoint pos = mapToGlobal (QPoint (0, 0)); |
295 |
+- pos += QPoint (-dx, -dy); |
296 |
++ pos -= QPoint (dx, dy); |
297 |
++ pos.setX(qMax(pos.x(), 0)); |
298 |
++ pos.setY(qMax(pos.y(), 0)); |
299 |
+ |
300 |
+ m_container->move (pos); |
301 |
+ window_bring_to_front (m_container); |