media-sound/amarok: Fix script console crash
authorJohannes Huber <johu@gentoo.org>
Wed, 18 May 2016 21:49:44 +0000 (23:49 +0200)
committerJohannes Huber <johu@gentoo.org>
Wed, 18 May 2016 21:50:43 +0000 (23:50 +0200)
Revision bump adds upstream patch which fixes crash when script console is
enabled.

Gentoo-bug: 583016

Package-Manager: portage-2.3.0_rc1

media-sound/amarok/amarok-2.8.90-r2.ebuild [new file with mode: 0644]
media-sound/amarok/files/amarok-2.8.90-scriptconsole.patch [new file with mode: 0644]

diff --git a/media-sound/amarok/amarok-2.8.90-r2.ebuild b/media-sound/amarok/amarok-2.8.90-r2.ebuild
new file mode 100644 (file)
index 0000000..04e5ff6
--- /dev/null
@@ -0,0 +1,133 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+KDE_LINGUAS="bs ca ca@valencia cs da de el en_GB es et eu fi fr ga gl hu it ja
+lt lv nb nl pa pl pt pt_BR ro ru sl sr sr@ijekavian sr@ijekavianlatin sr@latin
+sv tr uk zh_CN zh_TW"
+KDE_REQUIRED="never"
+KDE_HANDBOOK="optional"
+VIRTUALX_REQUIRED="test"
+VIRTUALDBUS_TEST="true"
+inherit flag-o-matic kde4-base pax-utils
+
+DESCRIPTION="Advanced audio player based on KDE framework"
+HOMEPAGE="http://amarok.kde.org/"
+if [[ ${PV} != *9999* ]]; then
+       SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz"
+       KEYWORDS="~amd64 ~ppc ~x86"
+else
+       KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="4"
+IUSE="cdda debug +embedded ipod lastfm mp3tunes mtp ofa opengl test +utils"
+
+if [[ ${KDE_BUILD_TYPE} == live ]]; then
+       RESTRICT="test"
+fi
+
+# ipod requires gdk enabled and also gtk compiled in libgpod
+COMMONDEPEND="
+       app-crypt/qca:2[qt4(+)]
+       $(add_kdebase_dep kdelibs 'opengl?' 4.8.4)
+       $(add_kdeapps_dep kdebase-kioslaves)
+       >=media-libs/taglib-1.7[asf,mp4]
+       >=media-libs/taglib-extras-1.0.1
+       sys-libs/zlib
+       >=virtual/mysql-5.1[embedded?]
+       >=dev-qt/qtcore-4.8:4
+       >=dev-qt/qtdbus-4.8:4
+       >=dev-qt/qtscript-4.8:4
+       >=x11-libs/qtscriptgenerator-0.1.0
+       cdda? (
+               $(add_kdeapps_dep libkcddb)
+               $(add_kdeapps_dep libkcompactdisc)
+               $(add_kdeapps_dep audiocd-kio)
+       )
+       ipod? ( >=media-libs/libgpod-0.7.0[gtk] )
+       lastfm? ( >=media-libs/liblastfm-1.0.3[qt4(+)] )
+       mp3tunes? (
+               dev-libs/glib:2
+               dev-libs/libxml2
+               dev-libs/openssl:0
+               net-libs/loudmouth
+               net-misc/curl
+               >=dev-qt/qtcore-4.8.4:4[glib]
+       )
+       mtp? ( >=media-libs/libmtp-1.0.0 )
+       ofa? ( >=media-libs/libofa-0.9.0 )
+       opengl? ( virtual/opengl )
+"
+DEPEND="${COMMONDEPEND}
+       dev-util/automoc
+       virtual/pkgconfig
+       test? ( dev-cpp/gmock )
+"
+RDEPEND="${COMMONDEPEND}
+       !media-sound/amarok-utils
+       $(add_kdeapps_dep phonon-kde)
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-2.8.0-taglib110.patch"
+       "${FILESDIR}/${P}-mysql-embedded.patch"
+       "${FILESDIR}/${P}-mysqld-rpath.patch"
+       "${FILESDIR}/${P}-scriptconsole.patch"
+)
+
+src_configure() {
+       # Append minimal-toc cflag for ppc64, see bug 280552 and 292707
+       use ppc64 && append-flags -mminimal-toc
+
+       local mycmakeargs=(
+               -DWITH_PLAYER=ON
+               -DWITH_Libgcrypt=OFF
+               -DWITH_SPECTRUM_ANALYZER=OFF
+               -DWITH_NepomukCore=OFF
+               -DWITH_Soprano=OFF
+               -DWITH_MYSQL_EMBEDDED=$(usex embedded)
+               -DWITH_IPOD=$(usex ipod)
+               -DWITH_GDKPixBuf=$(usex ipod)
+               -DWITH_LibLastFm=$(usex lastfm)
+               -DWITH_MP3Tunes=$(usex mp3tunes)
+               -DWITH_Mtp=$(usex mtp)
+               -DWITH_LibOFA=$(usex ofa)
+               -DWITH_UTILITIES=$(usex utils)
+       )
+
+       # bug 581554: add libmysqld location for rpath patch
+       use embedded && mycmakeargs+=( -DMYSQLD_DIR="${EPREFIX}/usr/$(get_libdir)/mysql" )
+
+       kde4-base_src_configure
+}
+
+src_install() {
+       kde4-base_src_install
+
+       # bug 481592
+       pax-mark m "${ED}"/usr/bin/amarok
+}
+
+pkg_postinst() {
+       kde4-base_pkg_postinst
+
+       if ! use embedded; then
+               echo
+               elog "You've disabled the amarok support for embedded mysql DBs."
+               elog "You'll have to configure amarok to use an external db server."
+               echo
+               elog "Please read http://amarok.kde.org/wiki/MySQL_Server for details on how"
+               elog "to configure the external db and migrate your data from the embedded database."
+               echo
+
+               if has_version "virtual/mysql[minimal]"; then
+                       elog "You built mysql with the minimal use flag, so it doesn't include the server."
+                       elog "You won't be able to use the local mysql installation to store your amarok collection."
+                       echo
+               fi
+       fi
+}
diff --git a/media-sound/amarok/files/amarok-2.8.90-scriptconsole.patch b/media-sound/amarok/files/amarok-2.8.90-scriptconsole.patch
new file mode 100644 (file)
index 0000000..455146b
--- /dev/null
@@ -0,0 +1,33 @@
+From 2900fe47adde10999a6c0f907d73b00a1c1bd5b1 Mon Sep 17 00:00:00 2001
+From: Myriam Schweingruber <myriam@kde.org>
+Date: Wed, 18 May 2016 21:59:17 +0200
+Subject: [PATCH] Fix a crash in amarok when opening the Script Console
+
+The script console tries to write to a system folder instead of a user
+ folder. Note to devs: always make sure to test a system installation,
+ not just a local build.
+
+Thanks to Johannes Huber for the quick fix suggestion.
+
+BUG: 363176
+FIXED-IN: 2.9
+---
+ src/scripting/scriptconsole/ScriptConsole.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/scripting/scriptconsole/ScriptConsole.cpp b/src/scripting/scriptconsole/ScriptConsole.cpp
+index 6edd9a2..e4e0fab 100644
+--- a/src/scripting/scriptconsole/ScriptConsole.cpp
++++ b/src/scripting/scriptconsole/ScriptConsole.cpp
+@@ -161,7 +161,7 @@ ScriptConsole::ScriptConsole( QWidget *parent )
+     settings.endGroup();
+     if( m_savePath.isEmpty() )
+-        m_savePath = KUrl( KStandardDirs::locate( "data", "amarok/scriptconsole/" ) ).path();
++        m_savePath = KUrl( KStandardDirs::locateLocal( "data", "amarok/scriptconsole/" ) ).path();
+     slotNewScript();
+     connect( m_debugger, SIGNAL(evaluationSuspended()), SLOT(slotEvaluationSuspended()) );
+-- 
+2.8.2
+