media-sound/cantata: add 3.4.0

update license to GPL-3+ (since a while)
upstream allows external libs for karchive (replace qtiocompressor) and
kitemviews
use of fontawesome has been reworked, closing an old bug
remove cdparanoia as a fallback for cdda, upstream prefers libcdio

use optfeature instead of has_version, remove mpd

Closes: https://bugs.gentoo.org/641880
Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/44893
Closes: https://github.com/gentoo/gentoo/pull/44893
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Nicolas PARLANT 2025-12-03 16:32:39 +01:00 committed by Sam James
parent 839d0c8cfe
commit ebc4ced4ab
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
3 changed files with 231 additions and 0 deletions

View File

@ -1 +1,2 @@
DIST cantata-3.3.1.tar.gz 4787884 BLAKE2B 0769ddc8e19370694d5a4cde9bf50c4563dd132e6471478bcd2842d15fc73b47e6f542096e907da6b162d9408a495ccf4af04d6def61cf751ef0f45e5459269e SHA512 1d70f5be223d20e75faedefcb2db3833d77ef28fab2ba747ebb77fdb20b45416c19e453b49f61bcd7dbbc77c166e640adf474c40b80e71fdbd0f05b653e02c81
DIST cantata-3.4.0.tar.gz 4798821 BLAKE2B ddb14fb4bda6c579113f9e0f9e86f26ef36dad236dcabdd671cec259019a61f69ac3370d4f18f329dda71171169e5c367e845b395b25b7fa47d483682044abec SHA512 d855dd8106b762d7c96a8e3c81da76cc2c8437e02c6e7ba25e918860c372f35a04b3f12b6866bf9fcd8f9051d10e1576d1934787d07b2f92c4f32390de7bad86

View File

@ -0,0 +1,99 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake optfeature xdg
DESCRIPTION="Featureful and configurable Qt client for the music player daemon (MPD)"
HOMEPAGE="https://github.com/nullobsi/cantata"
SRC_URI="https://github.com/nullobsi/cantata/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~ppc64 ~x86"
IUSE="cdda cddb http-server mtp musicbrainz replaygain streaming +taglib udisks zeroconf"
REQUIRED_USE="
cdda? ( taglib udisks || ( cddb musicbrainz ) )
cddb? ( cdda taglib )
mtp? ( taglib udisks )
musicbrainz? ( cdda taglib )
replaygain? ( taglib )
udisks? ( taglib )
"
COMMON_DEPEND="
dev-qt/qtbase:6[dbus,gui,network,sql,sqlite,widgets,xml]
dev-qt/qtsvg:6
kde-frameworks/karchive:6
kde-frameworks/kitemviews:6
virtual/zlib:=
cdda? ( dev-libs/libcdio-paranoia:= )
cddb? ( media-libs/libcddb )
mtp? ( media-libs/libmtp:= )
musicbrainz? ( media-libs/musicbrainz:5= )
replaygain? (
media-libs/libebur128:=
media-sound/mpg123-base
media-video/ffmpeg:0=
)
streaming? ( dev-qt/qtmultimedia:6 )
taglib? ( >=media-libs/taglib-2:= )
udisks? ( kde-frameworks/solid:6 )
zeroconf? ( net-dns/avahi )
"
RDEPEND="${COMMON_DEPEND}
dev-lang/perl[perl_features_ithreads]
media-fonts/fontawesome:0/6
"
DEPEND="${COMMON_DEPEND}
dev-qt/qtbase:6[concurrent]
"
BDEPEND="
dev-qt/qttools:6[linguist]
virtual/pkgconfig
"
PATCHES=(
# unbundle KF6Solid
"${FILESDIR}"/${PN}-3.4.0-unbundle_solid.patch
)
src_prepare() {
cmake_src_prepare
# Unbundle 3rd party libs
# keep knotifications : https://github.com/nullobsi/cantata/commit/719adb5
rm -r 3rdparty/{karchive,kcategorizedview,qtsingleapplication,solid-lite} || die
}
src_configure() {
local mycmakeargs=(
-DBUNDLED_FONTAWESOME=OFF
-DBUNDLED_KARCHIVE=OFF
-DBUNDLED_KCATEGORIZEDVIEW=OFF
-DENABLE_CDPARANOIA=$(usex cdda)
-DENABLE_CDDB=$(usex cddb)
-DENABLE_CDIOPARANOIA=$(usex cdda)
-DENABLE_HTTP_SERVER=$(usex http-server)
-DENABLE_MTP=$(usex mtp)
-DENABLE_MUSICBRAINZ=$(usex musicbrainz)
-DENABLE_FFMPEG=$(usex replaygain)
-DENABLE_MPG123=$(usex replaygain)
-DENABLE_HTTP_STREAM_PLAYBACK=$(usex streaming)
-DENABLE_TAGLIB=$(usex taglib)
-DENABLE_DEVICES_SUPPORT=$(usex udisks)
-DENABLE_AVAHI=$(usex zeroconf)
-DENABLE_REMOTE_DEVICES=OFF
# use solid/udisks2 instead of udisks
-DENABLE_UDISKS2=ON
)
cmake_src_configure
}
pkg_postinst() {
xdg_pkg_postinst
optfeature "identification and querying of portable media players" app-misc/media-player-info
}

View File

@ -0,0 +1,131 @@
upstream uses a bundled version for win/macos
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -628,7 +630,8 @@
# Cantata still links to taglib, even if external tag reader/writer is used, because JamendoService uses taglib for ID3 genres.
target_link_libraries(cantata PRIVATE TagLib::TagLib)
if(ENABLE_DEVICES_SUPPORT)
- target_link_libraries(cantata PRIVATE solidlite)
+ find_package(KF6Solid REQUIRED)
+ target_link_libraries(cantata PRIVATE KF6::Solid)
endif()
if(FFMPEG_FOUND OR MPG123_FOUND)
@@ -646,7 +649,6 @@
add_subdirectory(tags)
if(ENABLE_DEVICES_SUPPORT)
- add_subdirectory(3rdparty/solid-lite)
if(MTP_FOUND)
target_sources(cantata PRIVATE devices/mtpdevice.cpp)
target_link_libraries(cantata PRIVATE MTP::MTP)
--- a/devices/audiocddevice.cpp
+++ b/devices/audiocddevice.cpp
@@ -35,7 +35,7 @@
#include "models/musiclibraryitemsong.h"
#include "models/playqueuemodel.h"
#include "mpd-interface/mpdconnection.h"
-#include "solid-lite/block.h"
+#include <solid/block.h>
#include "support/utils.h"
#include "widgets/icons.h"
#include <QDir>
--- a/devices/audiocddevice.h
+++ b/devices/audiocddevice.h
@@ -27,7 +27,7 @@
#include "device.h"
#include "gui/covers.h"
#include "http/httpserver.h"
-#include "solid-lite/opticaldrive.h"
+#include <solid/opticaldrive.h>
#include <QImage>
class CddbInterface;
--- a/devices/device.cpp
+++ b/devices/device.cpp
@@ -46,11 +46,11 @@
#include "models/musiclibrarymodel.h"
#include "mpd-interface/mpdparseutils.h"
#include "mpd-interface/song.h"
-#include "solid-lite/genericinterface.h"
-#include "solid-lite/opticaldisc.h"
-#include "solid-lite/portablemediaplayer.h"
-#include "solid-lite/storageaccess.h"
-#include "solid-lite/storagedrive.h"
+#include <solid/genericinterface.h>
+#include <solid/opticaldisc.h>
+#include <solid/portablemediaplayer.h>
+#include <solid/storageaccess.h>
+#include <solid/storagedrive.h>
#include "tags/tags.h"
#include "widgets/icons.h"
#endif// ENABLE_DEVICES_SUPPORT
--- a/devices/device.h
+++ b/devices/device.h
@@ -30,7 +30,7 @@
#include "mpd-interface/song.h"
#ifdef ENABLE_DEVICES_SUPPORT
#include "deviceoptions.h"
-#include "solid-lite/device.h"
+#include <solid/device.h>
#endif
class QWidget;
--- a/devices/mtpdevice.h
+++ b/devices/mtpdevice.h
@@ -27,7 +27,7 @@
#include "config.h"
#include "fsdevice.h"
#include "mpd-interface/song.h"
-#include "solid-lite/portablemediaplayer.h"
+#include <solid/portablemediaplayer.h>
#include <libmtp.h>
class MusicLibraryItemRoot;
--- a/devices/umsdevice.cpp
+++ b/devices/umsdevice.cpp
@@ -25,7 +25,7 @@
#include "actiondialog.h"
#include "devicepropertiesdialog.h"
#include "devicepropertieswidget.h"
-#include "solid-lite/storagedrive.h"
+#include <solid/storagedrive.h>
#include "support/icon.h"
#include "support/utils.h"
#include <QDir>
--- a/devices/umsdevice.h
+++ b/devices/umsdevice.h
@@ -25,7 +25,7 @@
#define UMSDEVICE_H
#include "fsdevice.h"
-#include "solid-lite/storageaccess.h"
+#include <solid/storageaccess.h>
class UmsDevice : public FsDevice {
Q_OBJECT
--- a/models/devicesmodel.cpp
+++ b/models/devicesmodel.cpp
@@ -42,14 +42,14 @@
#if defined CDDB_FOUND || defined MusicBrainz5_FOUND
#include "devices/audiocddevice.h"
#endif
-#include "solid-lite/device.h"
-#include "solid-lite/deviceinterface.h"
-#include "solid-lite/devicenotifier.h"
-#include "solid-lite/opticaldisc.h"
-#include "solid-lite/portablemediaplayer.h"
-#include "solid-lite/storageaccess.h"
-#include "solid-lite/storagedrive.h"
-#include "solid-lite/storagevolume.h"
+#include <solid/device.h>
+#include <solid/deviceinterface.h>
+#include <solid/devicenotifier.h>
+#include <solid/opticaldisc.h>
+#include <solid/portablemediaplayer.h>
+#include <solid/storageaccess.h>
+#include <solid/storagedrive.h>
+#include <solid/storagevolume.h>
#include "support/globalstatic.h"
#include "support/utils.h"
#include <QMimeData>