Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/audacious/, media-sound/audacious/files/
Date: Sat, 17 Nov 2018 22:00:39
Message-Id: 1542492004.0e02b5efb750155e16b77d0af5c637c01611a014.asturm@gentoo
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);