commit:     0e02b5efb750155e16b77d0af5c637c01611a014
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 17 21:50:24 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Nov 17 22:00:04 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e02b5ef

media-sound/audacious: 3.10 version bump

Bug: https://bugs.gentoo.org/640672
Package-Manager: Portage-2.3.51, Repoman-2.3.12
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-sound/audacious/Manifest                     |  1 +
 media-sound/audacious/audacious-3.10.ebuild        | 83 ++++++++++++++++++++++
 .../files/audacious-3.10-dbus-crash.patch          | 60 ++++++++++++++++
 .../audacious/files/audacious-3.10-ui-freeze.patch | 30 ++++++++
 .../files/audacious-3.10-use-after-free.patch      | 38 ++++++++++
 .../audacious-3.10-volume-slider-boundaries.patch  | 25 +++++++
 6 files changed, 237 insertions(+)

diff --git a/media-sound/audacious/Manifest b/media-sound/audacious/Manifest
index 183e77e2dce..091c016fb12 100644
--- a/media-sound/audacious/Manifest
+++ b/media-sound/audacious/Manifest
@@ -1,3 +1,4 @@
+DIST audacious-3.10.tar.bz2 563531 BLAKE2B 
cde59bd5aff8e0530f76f3bdde20b48f829592a0a67cc03e8b7c08a8892259e99e9de2b1608698ff28819b7a6d0341d5237491f7591c4380566512076a0889b9
 SHA512 
513d5f9608c1ebeae9cf9bb95128244e990e66c74bf49aff6570ec557d537809f3ebf93c400f5df2708ff61cf04ecc95da183b111f5a757735cef5a68dd9907f
 DIST audacious-3.9-gtk3.tar.bz2 600249 BLAKE2B 
08559eafc85236e8e881d0cbe6f08e29c82baf0fc46b9209f1d3eee290460260bfa99e6e8f26940f8c6854f3782da24061226ebdb416b6249d10914093e16276
 SHA512 
6ff98d027c13b30ea9600a9aba914ec993c69826199b8dc303cb60cebdf2af06a7e3dd4af1d34a86343be5485848a57c8a29e48d2a45a33945585550de4e5f9c
 DIST audacious-3.9.tar.bz2 599488 BLAKE2B 
2288fe6919c1770cd283af809629fda72186cc0b87a42821f5fb9b7a20c8e7cd5bc00611d10677a82877c5ebc8a1b5ad728626027b95cc875b66dda732b8747f
 SHA512 
d8ef24c91c84bfa80831075cd9a12fc4bf02cec8bc96bcfa5a941254d194cccdc482482b1c015bc63e1142718c2221034c0f3a87e2cb6e4daf3b4cc428328aaa
 DIST gentoo_ice-xmms-0.2.tar.bz2 51839 BLAKE2B 
d3bf8dbfee675dd588bc0258f1015c76877b6b0a3835813d8e9621d149b924aaa33544d07f7ad44a01c058d41d7480b3908b0773c124af33b6e020c376b13d54
 SHA512 
e863a8f86073007c47ce8c20739aae4bff22e22a7ddc11556b12ae6ebb68654cec7310fdc9d05f2c47f81cf2591fe601b2eb12a2fd911c0a6118c9f3cc524f05

diff --git a/media-sound/audacious/audacious-3.10.ebuild 
b/media-sound/audacious/audacious-3.10.ebuild
new file mode 100644
index 00000000000..926f5853cae
--- /dev/null
+++ b/media-sound/audacious/audacious-3.10.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit gnome2-utils xdg-utils
+
+MY_P="${P/_/-}"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="Lightweight and versatile audio player"
+HOMEPAGE="https://audacious-media-player.org/";
+
+if [[ ${PV} == *9999 ]]; then
+       inherit autotools git-r3
+       EGIT_REPO_URI="https://github.com/audacious-media-player/audacious.git";
+else
+       SRC_URI="https://distfiles.audacious-media-player.org/${MY_P}.tar.bz2";
+       KEYWORDS="~amd64 ~x86"
+fi
+
+SRC_URI+=" mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+IUSE="nls"
+
+RDEPEND="
+       >=dev-libs/dbus-glib-0.60
+       >=dev-libs/glib-2.28
+       dev-qt/qtcore:5
+       dev-qt/qtgui:5
+       dev-qt/qtwidgets:5
+       >=x11-libs/cairo-1.2.6
+       >=x11-libs/pango-1.8.0
+       virtual/freedesktop-icon-theme
+"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+       nls? ( dev-util/intltool )
+"
+PDEPEND="~media-plugins/audacious-plugins-${PV}"
+
+PATCHES=(
+       "${FILESDIR}/${P}-ui-freeze.patch"
+       "${FILESDIR}/${P}-dbus-crash.patch"
+       "${FILESDIR}/${P}-use-after-free.patch"
+       "${FILESDIR}/${P}-volume-slider-boundaries.patch"
+)
+
+src_configure() {
+       # D-Bus is a mandatory dependency, remote control,
+       # session management and some plugins depend on this.
+       # Building without D-Bus is *unsupported* and a USE-flag
+       # will not be added due to the bug reports that will result.
+       # Bugs #197894, #199069, #207330, #208606
+       econf \
+               --disable-valgrind \
+               --enable-dbus \
+               --enable-qt \
+               --disable-gtk \
+               $(use_enable nls)
+}
+
+src_install() {
+       default
+
+       # Gentoo_ice skin installation; bug #109772
+       insinto /usr/share/audacious/Skins/gentoo_ice
+       doins -r "${WORKDIR}"/gentoo_ice/.
+       docinto gentoo_ice
+       dodoc "${WORKDIR}"/README
+}
+
+pkg_postinst() {
+       xdg_desktop_database_update
+       gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+       xdg_desktop_database_update
+       gnome2_icon_cache_update
+}

diff --git a/media-sound/audacious/files/audacious-3.10-dbus-crash.patch 
b/media-sound/audacious/files/audacious-3.10-dbus-crash.patch
new file mode 100644
index 00000000000..83b9c74f98c
--- /dev/null
+++ b/media-sound/audacious/files/audacious-3.10-dbus-crash.patch
@@ -0,0 +1,60 @@
+From 1528e780825b1fc49639ea16d332c5752051dab7 Mon Sep 17 00:00:00 2001
+From: John Lindgren <[email protected]>
+Date: Sun, 19 Aug 2018 14:12:30 -0400
+Subject: [PATCH] Fix crash when an invalid field name is sent via D-Bus. 
+ Closes: #817.
+
+Regression introduced by commit 203b41f8e249.
+---
+ src/audacious/dbus-server.cc | 31 +++++++++++++++++--------------
+ 1 file changed, 17 insertions(+), 14 deletions(-)
+
+diff --git a/src/audacious/dbus-server.cc b/src/audacious/dbus-server.cc
+index 7602ace22..20a6c5839 100644
+--- a/src/audacious/dbus-server.cc
++++ b/src/audacious/dbus-server.cc
+@@ -635,27 +635,30 @@ static gboolean do_song_title (Obj * obj, Invoc * invoc, 
unsigned pos)
+ static gboolean do_song_tuple (Obj * obj, Invoc * invoc, unsigned pos, const 
char * key)
+ {
+     Tuple::Field field = Tuple::field_by_name (key);
+-    Tuple tuple;
+-    GVariant * var;
++    GVariant * var = nullptr;
+ 
+     if (field >= 0)
+-        tuple = CURRENT.entry_tuple (pos);
+-
+-    switch (tuple.get_value_type (field))
+     {
+-    case Tuple::String:
+-        var = g_variant_new_string (tuple.get_str (field));
+-        break;
++        Tuple tuple = CURRENT.entry_tuple (pos);
+ 
+-    case Tuple::Int:
+-        var = g_variant_new_int32 (tuple.get_int (field));
+-        break;
++        switch (tuple.get_value_type (field))
++        {
++        case Tuple::String:
++            var = g_variant_new_string (tuple.get_str (field));
++            break;
+ 
+-    default:
+-        var = g_variant_new_string ("");
+-        break;
++        case Tuple::Int:
++            var = g_variant_new_int32 (tuple.get_int (field));
++            break;
++
++        default:
++            break;
++        }
+     }
+ 
++    if (! var)
++        var = g_variant_new_string ("");
++
+     FINISH2 (song_tuple, g_variant_new_variant (var));
+     return true;
+ }

diff --git a/media-sound/audacious/files/audacious-3.10-ui-freeze.patch 
b/media-sound/audacious/files/audacious-3.10-ui-freeze.patch
new file mode 100644
index 00000000000..da05bc5b000
--- /dev/null
+++ b/media-sound/audacious/files/audacious-3.10-ui-freeze.patch
@@ -0,0 +1,30 @@
+From 8f9745a5a539e44244d5e8200c61ed443c638aad Mon Sep 17 00:00:00 2001
+From: John Lindgren <[email protected]>
+Date: Sun, 19 Aug 2018 13:47:17 -0400
+Subject: [PATCH] Prevent UI freeze when displaying song info window.  Closes:
+ #822.
+
+---
+ src/libaudcore/probe.cc | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/libaudcore/probe.cc b/src/libaudcore/probe.cc
+index 5c57ef884..38cf73d96 100644
+--- a/src/libaudcore/probe.cc
++++ b/src/libaudcore/probe.cc
+@@ -242,6 +242,15 @@ EXPORT bool aud_custom_infowin (const char * filename, 
PluginHandle * decoder)
+     if (! strncmp (filename, "stdin://", 8))
+         return false;
+ 
++    // In hindsight, a flag should have been added indicating whether a
++    // plugin provides a custom info window or not.  Currently, only two
++    // plugins do so.  Since custom info windows are deprecated anyway,
++    // check for those two plugins explicitly and in all other cases,
++    // don't open the input file to prevent freezing the UI.
++    const char * base = aud_plugin_get_basename (decoder);
++    if (strcmp (base, "amidi-plug") && strcmp (base, "vtx"))
++        return false;
++
+     auto ip = (InputPlugin *) aud_plugin_get_header (decoder);
+     if (! ip)
+         return false;

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
new file mode 100644
index 00000000000..8271a3d6d1b
--- /dev/null
+++ b/media-sound/audacious/files/audacious-3.10-use-after-free.patch
@@ -0,0 +1,38 @@
+From 1d34f6799b8f5910fc6863ae96afd5ab035e830f Mon Sep 17 00:00:00 2001
+From: John Lindgren <[email protected]>
+Date: Thu, 20 Sep 2018 13:46:52 -0400
+Subject: [PATCH] audqt: Use deleteLater() to prevent use-after-free in Qt
+ event handling.  Closes: #828.
+
+---
+ src/libaudqt/infopopup-qt.cc | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/libaudqt/infopopup-qt.cc b/src/libaudqt/infopopup-qt.cc
+index fdbba41d2..81dd87f5c 100644
+--- a/src/libaudqt/infopopup-qt.cc
++++ b/src/libaudqt/infopopup-qt.cc
+@@ -176,7 +176,9 @@ static InfoPopup * s_infopopup;
+ 
+ static void infopopup_show (const String & filename, const Tuple & tuple)
+ {
+-    delete s_infopopup;
++    if (s_infopopup)
++        s_infopopup->deleteLater ();
++
+     s_infopopup = new InfoPopup (filename, tuple);
+ 
+     QObject::connect (s_infopopup, & QObject::destroyed, [] () {
+@@ -206,7 +208,11 @@ EXPORT void infopopup_show_current ()
+ 
+ EXPORT void infopopup_hide ()
+ {
+-    delete s_infopopup;
++    /* This function can be called from an enter/leave event, and Qt does not
++     * like widgets being deleted from such events.  This is debatably a bug 
in
++     * Qt, but deleteLater() is an effective workaround. */
++    if (s_infopopup)
++        s_infopopup->deleteLater ();
+ }
+ 
+ } // namespace audqt

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
new file mode 100644
index 00000000000..99155bf79e8
--- /dev/null
+++ b/media-sound/audacious/files/audacious-3.10-volume-slider-boundaries.patch
@@ -0,0 +1,25 @@
+From 473ee3b3b0ce09feb23afcfc0ff276986db4f1af Mon Sep 17 00:00:00 2001
+From: Eugene Paskevich <[email protected]>
+Date: Sun, 4 Nov 2018 21:45:07 +0200
+Subject: [PATCH] Qt: don't let the volume slider go beyong upper and/or left
+ screen boundaries.
+
+---
+ src/libaudqt/volumebutton.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/libaudqt/volumebutton.cc b/src/libaudqt/volumebutton.cc
+index e9144cb60..71edf16a1 100644
+--- a/src/libaudqt/volumebutton.cc
++++ b/src/libaudqt/volumebutton.cc
+@@ -134,7 +134,9 @@ void VolumeButton::showSlider ()
+     int dy = container_size.height () / 2 - button_size.height () / 2;
+ 
+     QPoint pos = mapToGlobal (QPoint (0, 0));
+-    pos += QPoint (-dx, -dy);
++    pos -= QPoint (dx, dy);
++    pos.setX(qMax(pos.x(), 0));
++    pos.setY(qMax(pos.y(), 0));
+ 
+     m_container->move (pos);
+     window_bring_to_front (m_container);

Reply via email to