commit:     5928960e62b1e49376dd1e9241f2dc984e3f0789
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 21 22:33:05 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Feb 23 21:44:47 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5928960e

media-sound/amarok: new package, add 3.2.2

Closes: https://bugs.gentoo.org/931836
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-sound/amarok/Manifest                        |   1 +
 media-sound/amarok/amarok-3.2.2.ebuild             | 158 ++++++++++++++++++++
 .../amarok/files/amarok-3.2.2-gpodder-qt6.patch    | 163 +++++++++++++++++++++
 media-sound/amarok/metadata.xml                    |  19 +++
 4 files changed, 341 insertions(+)

diff --git a/media-sound/amarok/Manifest b/media-sound/amarok/Manifest
new file mode 100644
index 000000000000..7cfd63393704
--- /dev/null
+++ b/media-sound/amarok/Manifest
@@ -0,0 +1 @@
+DIST amarok-3.2.2.tar.xz 47693388 BLAKE2B 
011a925163ebd113de15826bdc4165ed001896ce99c8fa49496b208318bb24c339069f99f7d7097d506e0caf437909c8cd0e0babc52b28bceff2a6def07d0fe0
 SHA512 
918b4fd03a2de717cb1f5968e4ba3eda391c881de384ebabeec423303e84ac6f5a8dbbb8816668d3de52c77d57f1ab9fef6580a8111a9507c9082a8ca25097aa

diff --git a/media-sound/amarok/amarok-3.2.2.ebuild 
b/media-sound/amarok/amarok-3.2.2.ebuild
new file mode 100644
index 000000000000..d9dce07d1baf
--- /dev/null
+++ b/media-sound/amarok/amarok-3.2.2.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="forceoptional"
+KFMIN=6.9.0
+QTMIN=6.7.2
+PYTHON_COMPAT=( python3_{10..13} )
+inherit ecm kde.org optfeature python-any-r1 xdg
+
+if [[ ${KDE_BUILD_TYPE} == release ]]; then
+       SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz"
+       KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Advanced audio player based on KDE Frameworks"
+HOMEPAGE="https://amarok.kde.org/";
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="ipod lastfm mariadb mtp podcast webengine X"
+
+# ipod requires gdk enabled and also gtk compiled in libgpod
+DEPEND="
+       >=app-crypt/qca-2.3.9:2[qt6(+)]
+       >=dev-qt/qt5compat-${QTMIN}:6
+       >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,network,sql,widgets,xml]
+       >=dev-qt/qtdeclarative-${QTMIN}:6
+       >=dev-qt/qtsvg-${QTMIN}:6
+       >=dev-qt/qttools-${QTMIN}:6[designer]
+       >=kde-frameworks/attica-${KFMIN}:6
+       >=kde-frameworks/karchive-${KFMIN}:6
+       >=kde-frameworks/kcmutils-${KFMIN}:6
+       >=kde-frameworks/kcodecs-${KFMIN}:6
+       >=kde-frameworks/kcolorscheme-${KFMIN}:6
+       >=kde-frameworks/kcompletion-${KFMIN}:6
+       >=kde-frameworks/kconfig-${KFMIN}:6
+       >=kde-frameworks/kconfigwidgets-${KFMIN}:6
+       >=kde-frameworks/kcoreaddons-${KFMIN}:6
+       >=kde-frameworks/kcrash-${KFMIN}:6
+       >=kde-frameworks/kdbusaddons-${KFMIN}:6
+       >=kde-frameworks/kdeclarative-${KFMIN}:6
+       >=kde-frameworks/kdnssd-${KFMIN}:6
+       >=kde-frameworks/kglobalaccel-${KFMIN}:6
+       >=kde-frameworks/kguiaddons-${KFMIN}:6
+       >=kde-frameworks/ki18n-${KFMIN}:6
+       >=kde-frameworks/kiconthemes-${KFMIN}:6
+       >=kde-frameworks/kio-${KFMIN}:6
+       >=kde-frameworks/kitemviews-${KFMIN}:6
+       >=kde-frameworks/knewstuff-${KFMIN}:6
+       >=kde-frameworks/knotifications-${KFMIN}:6
+       >=kde-frameworks/kpackage-${KFMIN}:6
+       >=kde-frameworks/kservice-${KFMIN}:6
+       >=kde-frameworks/kstatusnotifieritem-${KFMIN}:6
+       >=kde-frameworks/ktexteditor-${KFMIN}:6
+       >=kde-frameworks/ktextwidgets-${KFMIN}:6
+       >=kde-frameworks/kwidgetsaddons-${KFMIN}:6
+       >=kde-frameworks/kwindowsystem-${KFMIN}:6[X?]
+       >=kde-frameworks/kxmlgui-${KFMIN}:6
+       >=kde-frameworks/solid-${KFMIN}:6
+       >=kde-frameworks/threadweaver-${KFMIN}:6
+       >=media-libs/phonon-4.12.0[qt6(+)]
+       >=media-libs/taglib-1.12:=
+       sci-libs/fftw:3.0
+       sys-libs/zlib
+       virtual/opengl
+       ipod? (
+               dev-libs/glib:2
+               media-libs/libgpod[gtk]
+       )
+       lastfm? ( >=media-libs/liblastfm-1.1.0_pre20241124 )
+       mariadb? ( dev-db/mariadb-connector-c:= )
+       !mariadb? ( dev-db/mysql-connector-c:= )
+       mtp? ( media-libs/libmtp )
+       podcast? ( >=media-libs/libmygpo-qt-1.1.0_pre20240811 )
+       webengine? ( >=dev-qt/qtwebengine-${QTMIN}:6[widgets] )
+"
+RDEPEND="${DEPEND}
+       >=kde-frameworks/kirigami-${KFMIN}:6
+       media-video/ffmpeg
+"
+BDEPEND="${PYTHON_DEPS}
+       >=dev-qt/qttools-${QTMIN}:6[linguist]
+       virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}/${P}-gpodder-qt6.patch" )
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_WITH_QT6=ON
+               -DWITH_MP3Tunes=OFF
+               -DWITH_PLAYER=ON
+               -DWITH_UTILITIES=ON
+               -DCMAKE_DISABLE_FIND_PACKAGE_Googlemock=ON
+               -DCMAKE_DISABLE_FIND_PACKAGE_LibOFA=ON
+               -DCMAKE_DISABLE_FIND_PACKAGE_MySQLe=ON
+               -DCMAKE_DISABLE_FIND_PACKAGE_Taglib-Extras=ON
+               -DWITH_IPOD=$(usex ipod)
+               $(cmake_use_find_package lastfm LibLastFm)
+               $(cmake_use_find_package !mariadb MySQL)
+               $(cmake_use_find_package mtp Mtp)
+               $(cmake_use_find_package podcast Mygpo-qt6)
+               $(cmake_use_find_package webengine Qt6WebEngineWidgets)
+               -DWITH_X11=$(usex X)
+       )
+       use ipod && mycmakeargs+=( -DWITH_GDKPixBuf=ON )
+
+       ecm_src_configure
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       pkg_is_installed() {
+               echo "${1} ($(has_version ${1} || echo "not ")installed)"
+       }
+
+       db_name() {
+               use mariadb && echo "MariaDB" || echo "MySQL"
+       }
+
+       optfeature "Audio CD support" "kde-apps/audiocd-kio:6"
+
+       if [[ -z ${REPLACING_VERSIONS} ]]; then
+               elog "You must configure ${PN} to use an external database 
server."
+               elog " 1. Make sure either MySQL or MariaDB is installed and 
configured"
+               elog "    Checking local system:"
+               elog "      $(pkg_is_installed dev-db/mariadb)"
+               elog "      $(pkg_is_installed dev-db/mysql)"
+               elog "    For preliminary configuration of $(db_name) Server 
refer to"
+               elog "    https://wiki.gentoo.org/wiki/$(db_name)#Configuration"
+               elog " 2. Ensure 'mysql' service is started and run:"
+               elog "    # emerge --config amarok"
+               elog " 3. Run ${PN} and go to 'Configure Amarok - Database' 
menu page"
+               elog "    Check 'Use external MySQL database' and press OK"
+               elog
+               elog "For more information please read:"
+               elog "  https://community.kde.org/Amarok/Community/MySQL";
+       fi
+}
+
+pkg_config() {
+       # Create external mysql database with amarok default user/password
+       local AMAROK_DB_NAME="amarokdb"
+       local AMAROK_DB_USER_NAME="amarokuser"
+       local AMAROK_DB_USER_PWD="password"
+
+       einfo "Initializing ${PN} MySQL database 'amarokdb':"
+       einfo "If prompted for a password, please enter your MySQL root 
password."
+       einfo
+
+       if [[ -e "${EROOT}"/usr/bin/mysql ]]; then
+               "${EROOT}"/usr/bin/mysql -u root -p -e "CREATE DATABASE IF NOT 
EXISTS ${AMAROK_DB_NAME}; GRANT ALL PRIVILEGES ON ${AMAROK_DB_NAME}.* TO 
'${AMAROK_DB_USER_NAME}' IDENTIFIED BY '${AMAROK_DB_USER_PWD}'; FLUSH 
PRIVILEGES;"
+       fi
+       einfo "${PN} MySQL database 'amarokdb' successfully initialized!"
+}

diff --git a/media-sound/amarok/files/amarok-3.2.2-gpodder-qt6.patch 
b/media-sound/amarok/files/amarok-3.2.2-gpodder-qt6.patch
new file mode 100644
index 000000000000..0568e2c9ee19
--- /dev/null
+++ b/media-sound/amarok/files/amarok-3.2.2-gpodder-qt6.patch
@@ -0,0 +1,163 @@
+From 973ab984b6c289dd2c88abbdf1b29c48abb4dbc7 Mon Sep 17 00:00:00 2001
+From: Tuomas Nurmi <[email protected]>
+Date: Sat, 22 Feb 2025 10:56:38 +0200
+Subject: [PATCH] Make lastfm and gpodder parts compile with strict flags, too
+
+---
+ .../applets/similarartists/plugin/SimilarArtistModel.cpp    | 6 +++---
+ src/services/gpodder/GpodderPodcastMeta.h                   | 2 +-
+ src/services/gpodder/GpodderPodcastRequestHandler.h         | 2 +-
+ src/services/gpodder/GpodderPodcastTreeItem.h               | 2 +-
+ src/services/gpodder/GpodderProvider.h                      | 4 ++--
+ src/services/gpodder/GpodderService.cpp                     | 4 ++--
+ src/services/gpodder/GpodderServiceModel.h                  | 4 ++--
+ src/services/gpodder/GpodderTagTreeItem.h                   | 2 +-
+ src/services/gpodder/GpodderTreeItem.h                      | 4 ++--
+ 9 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/src/context/applets/similarartists/plugin/SimilarArtistModel.cpp 
b/src/context/applets/similarartists/plugin/SimilarArtistModel.cpp
+index 333cc85e45..eec964b8c1 100644
+--- a/src/context/applets/similarartists/plugin/SimilarArtistModel.cpp
++++ b/src/context/applets/similarartists/plugin/SimilarArtistModel.cpp
+@@ -185,7 +185,7 @@ SimilarArtistModel::fillArtistInfoFromXml( 
QXmlStreamReader &xml )
+     QString plays;
+     QString ownPlays;
+     QString tags;
+-    QString bio=" ";
++    QString bio=QLatin1String(" ");
+ 
+     while( xml.name() != QLatin1String("name") )
+         xml.readNextStartElement();
+@@ -242,7 +242,7 @@ SimilarArtistModel::fillArtistInfoFromXml( 
QXmlStreamReader &xml )
+                 {
+                     bio = xml.readElementText().replace( 
QStringLiteral("\n"), QStringLiteral("<br>") );
+                     if(bio == QString())
+-                        bio = " ";
++                        bio = QLatin1String(" ");
+                 }
+                 else
+                     xml.skipCurrentElement();
+@@ -256,7 +256,7 @@ SimilarArtistModel::fillArtistInfoFromXml( 
QXmlStreamReader &xml )
+     {
+         if( auto artist = dynamic_cast< SimilarArtistItem *>( i ) )
+         {
+-            artist->m_bioText = bio.isNull() ? " " : bio;
++            artist->m_bioText = bio.isNull() ? QLatin1String(" ") : bio;
+             artist->m_listenerCount = listeners;
+             artist->m_playCount = plays;
+             artist->m_ownPlayCount = ownPlays;
+diff --git a/src/services/gpodder/GpodderPodcastMeta.h 
b/src/services/gpodder/GpodderPodcastMeta.h
+index abe2c9f2b6..b929173a24 100644
+--- a/src/services/gpodder/GpodderPodcastMeta.h
++++ b/src/services/gpodder/GpodderPodcastMeta.h
+@@ -22,7 +22,7 @@
+ 
+ #include "core/playlists/PlaylistProvider.h"
+ #include "core/podcasts/PodcastMeta.h"
+-#include <mygpo-qt5/ApiRequest.h>
++#include <mygpo-qt6/ApiRequest.h>
+ 
+ namespace Podcasts {
+ 
+diff --git a/src/services/gpodder/GpodderPodcastRequestHandler.h 
b/src/services/gpodder/GpodderPodcastRequestHandler.h
+index c56ec1942f..ce787f4cb3 100644
+--- a/src/services/gpodder/GpodderPodcastRequestHandler.h
++++ b/src/services/gpodder/GpodderPodcastRequestHandler.h
+@@ -20,7 +20,7 @@
+ #define GPODDERPODCASTREQUESTHANDLER_H_
+ 
+ #include "GpodderServiceModel.h"
+-#include <mygpo-qt5/PodcastList.h>
++#include <mygpo-qt6/PodcastList.h>
+ 
+ #include <QModelIndex>
+ 
+diff --git a/src/services/gpodder/GpodderPodcastTreeItem.h 
b/src/services/gpodder/GpodderPodcastTreeItem.h
+index 91323fb770..16b0f8c6b2 100644
+--- a/src/services/gpodder/GpodderPodcastTreeItem.h
++++ b/src/services/gpodder/GpodderPodcastTreeItem.h
+@@ -20,7 +20,7 @@
+ #define GPODDERPODCASTTREEITEM_H_
+ 
+ #include "GpodderTreeItem.h"
+-#include <mygpo-qt5/Podcast.h>
++#include <mygpo-qt6/Podcast.h>
+ 
+ class GpodderPodcastTreeItem: public GpodderTreeItem
+ {
+diff --git a/src/services/gpodder/GpodderProvider.h 
b/src/services/gpodder/GpodderProvider.h
+index 9551a97a69..61e6642b01 100644
+--- a/src/services/gpodder/GpodderProvider.h
++++ b/src/services/gpodder/GpodderProvider.h
+@@ -23,8 +23,8 @@
+ #include "core/podcasts/PodcastProvider.h"
+ #include "core/podcasts/PodcastReader.h"
+ #include "GpodderPodcastMeta.h"
+-#include <mygpo-qt5/ApiRequest.h>
+-#include <mygpo-qt5/EpisodeActionList.h>
++#include <mygpo-qt6/ApiRequest.h>
++#include <mygpo-qt6/EpisodeActionList.h>
+ #include "playlistmanager/file/KConfigSyncRelStore.h"
+ #include "playlistmanager/PlaylistManager.h"
+ 
+diff --git a/src/services/gpodder/GpodderService.cpp 
b/src/services/gpodder/GpodderService.cpp
+index b2d51ea807..4c43ea7b4a 100644
+--- a/src/services/gpodder/GpodderService.cpp
++++ b/src/services/gpodder/GpodderService.cpp
+@@ -27,8 +27,8 @@
+ #include "GpodderServiceModel.h"
+ #include "GpodderServiceView.h"
+ #include "GpodderSortFilterProxyModel.h"
+-#include <mygpo-qt5/ApiRequest.h>
+-#include <mygpo-qt5/Podcast.h>
++#include <mygpo-qt6/ApiRequest.h>
++#include <mygpo-qt6/Podcast.h>
+ #include "playlistmanager/PlaylistManager.h"
+ #include "widgets/SearchWidget.h"
+ 
+diff --git a/src/services/gpodder/GpodderServiceModel.h 
b/src/services/gpodder/GpodderServiceModel.h
+index 6eb979ca07..59c67d2fde 100644
+--- a/src/services/gpodder/GpodderServiceModel.h
++++ b/src/services/gpodder/GpodderServiceModel.h
+@@ -20,8 +20,8 @@
+ #define GPODDERSERVICEMODEL_H_
+ 
+ #include "GpodderTreeItem.h"
+-#include <mygpo-qt5/ApiRequest.h>
+-#include <mygpo-qt5/TagList.h>
++#include <mygpo-qt6/ApiRequest.h>
++#include <mygpo-qt6/TagList.h>
+ #include "NetworkAccessManagerProxy.h"
+ 
+ #include <QAbstractItemModel>
+diff --git a/src/services/gpodder/GpodderTagTreeItem.h 
b/src/services/gpodder/GpodderTagTreeItem.h
+index 63cc965d89..16a8b95cf3 100644
+--- a/src/services/gpodder/GpodderTagTreeItem.h
++++ b/src/services/gpodder/GpodderTagTreeItem.h
+@@ -20,7 +20,7 @@
+ #define GPODDERTAGTREEITEM_H_
+ 
+ #include "GpodderTreeItem.h"
+-#include <mygpo-qt5/Tag.h>
++#include <mygpo-qt6/Tag.h>
+ 
+ #include <QObject>
+ 
+diff --git a/src/services/gpodder/GpodderTreeItem.h 
b/src/services/gpodder/GpodderTreeItem.h
+index 642e1cb371..7b311b659e 100644
+--- a/src/services/gpodder/GpodderTreeItem.h
++++ b/src/services/gpodder/GpodderTreeItem.h
+@@ -19,8 +19,8 @@
+ #ifndef GPODDERTREEITEM_H_
+ #define GPODDERTREEITEM_H_
+ 
+-#include <mygpo-qt5/ApiRequest.h>
+-#include <mygpo-qt5/TagList.h>
++#include <mygpo-qt6/ApiRequest.h>
++#include <mygpo-qt6/TagList.h>
+ 
+ #include <QList>
+ #include <QModelIndex>
+-- 
+GitLab
+

diff --git a/media-sound/amarok/metadata.xml b/media-sound/amarok/metadata.xml
new file mode 100644
index 000000000000..27433610de3b
--- /dev/null
+++ b/media-sound/amarok/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="project">
+               <email>[email protected]</email>
+               <name>Gentoo KDE Project</name>
+       </maintainer>
+       <upstream>
+               
<bugs-to>https://bugs.kde.org/enter_bug.cgi?product=amarok</bugs-to>
+               <remote-id type="kde-invent">multimedia/amarok</remote-id>
+       </upstream>
+       <use>
+               <flag name="lastfm">Enable Last.fm streaming services support 
through <pkg>media-libs/liblastfm</pkg></flag>
+               <flag name="mariadb">Prefer 
<pkg>dev-db/mariadb-connector-c</pkg> over 
<pkg>dev-db/mysql-connector-c</pkg></flag>
+               <flag name="mtp">Enable support for libMTP (Plays4Sure) devices 
access through libmtp</flag>
+               <flag name="podcast">Enable gpodder.net podcast support via 
<pkg>media-libs/libmygpo-qt</pkg></flag>
+               <flag name="webengine">Enable wikipedia widget using 
<pkg>dev-qt/qtwebengine</pkg></flag>
+       </use>
+</pkgmetadata>

Reply via email to