summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Sokolov <alexey+gentoo@asokolov.org>2023-11-10 22:41:37 +0000
committerJoonas Niilola <juippis@gentoo.org>2023-12-23 22:05:55 +0200
commit83d2aec8200c8232978d20d43701c4442376a316 (patch)
treee4782149196eb8963e95f31350e41278eecf00da /media-sound/clementine
parentx11-wm/enlightenment: add 0.26.0 (diff)
downloadgentoo-83d2aec8200c8232978d20d43701c4442376a316.tar.gz
gentoo-83d2aec8200c8232978d20d43701c4442376a316.tar.bz2
gentoo-83d2aec8200c8232978d20d43701c4442376a316.zip
media-sound/clementine: read projectm visualizations from subdirs
Closes: https://bugs.gentoo.org/917064 Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org> Closes: https://github.com/gentoo/gentoo/pull/33760 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'media-sound/clementine')
-rw-r--r--media-sound/clementine/clementine-1.4.0_rc2-r5.ebuild169
-rw-r--r--media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch53
2 files changed, 222 insertions, 0 deletions
diff --git a/media-sound/clementine/clementine-1.4.0_rc2-r5.ebuild b/media-sound/clementine/clementine-1.4.0_rc2-r5.ebuild
new file mode 100644
index 000000000000..6e37ca03e086
--- /dev/null
+++ b/media-sound/clementine/clementine-1.4.0_rc2-r5.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Modern music player and library organizer based on Amarok 1.4 and Qt"
+HOMEPAGE="https://www.clementine-player.org https://github.com/clementine-player/Clementine"
+
+PLOCALES="af ar be bg bn br bs ca cs cy da de el en en_CA en_GB eo es et eu fa fi fr ga gl he he_IL hi hr hu hy ia id is it ja ka kk ko lt lv mk_MK mr ms my nb nl oc pa pl pt pt_BR ro ru si_LK sk sl sr sr@latin sv te tr tr_TR uk uz vi zh_CN zh_TW"
+
+inherit cmake flag-o-matic plocale virtualx xdg
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/clementine-player/Clementine.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/clementine-player/Clementine/archive/refs/tags/${PV/_}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/Clementine-${PV/_}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="alsa box cdda +dbus debug dropbox googledrive ipod lastfm moodbar mtp projectm pulseaudio seafile skydrive test +udisks wiimote"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ udisks? ( dbus )
+ wiimote? ( dbus )
+"
+
+COMMON_DEPEND="
+ dev-cpp/abseil-cpp:=
+ dev-db/sqlite:3
+ dev-libs/glib:2
+ dev-libs/protobuf:=
+ dev-qt/qtconcurrent:5
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5[ssl]
+ dev-qt/qtsql:5[sqlite]
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ media-libs/chromaprint:=
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ >=media-libs/libmygpo-qt-1.0.9[qt5(+)]
+ >=media-libs/taglib-1.11.1_p20181028
+ sys-libs/zlib
+ x11-libs/libX11
+ alsa? ( media-libs/alsa-lib )
+ cdda? ( dev-libs/libcdio:= )
+ dbus? ( dev-qt/qtdbus:5 )
+ ipod? ( >=media-libs/libgpod-0.8.0 )
+ lastfm? ( >=media-libs/liblastfm-1.1.0_pre20150206 )
+ moodbar? ( sci-libs/fftw:3.0= )
+ mtp? ( >=media-libs/libmtp-1.0.0:= )
+ projectm? (
+ media-libs/glew:=
+ >=media-libs/libprojectm-3.1.12:0=
+ virtual/opengl
+ )
+ pulseaudio? ( media-libs/libpulse )
+"
+RDEPEND="${COMMON_DEPEND}
+ media-plugins/gst-plugins-meta:1.0
+ media-plugins/gst-plugins-soup:1.0
+ media-plugins/gst-plugins-taglib:1.0
+ mtp? ( gnome-base/gvfs[mtp] )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-libs/boost
+ dev-libs/libxml2
+ dev-qt/qtopengl:5
+ dev-qt/qtxml:5
+ virtual/glu
+ box? ( dev-cpp/sparsehash )
+ dropbox? ( dev-cpp/sparsehash )
+ googledrive? ( dev-cpp/sparsehash )
+ seafile? ( dev-cpp/sparsehash )
+ skydrive? ( dev-cpp/sparsehash )
+"
+BDEPEND="
+ >=dev-cpp/gtest-1.8.0
+ dev-qt/linguist-tools:5
+ sys-devel/gettext
+ virtual/pkgconfig
+ test? (
+ dev-qt/qttest:5
+ gnome-base/gsettings-desktop-schemas
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/clementine-1.4.0_rc2-lz.patch"
+ "${FILESDIR}/clementine-1.4.0_rc2-c17.patch"
+ "${FILESDIR}/clementine-1.4.0_rc2-absl.patch"
+ "${FILESDIR}/clementine-1.4.0_rc2-projectm-dir.patch"
+)
+
+DOCS=( Changelog README.md )
+
+src_prepare() {
+ plocale_find_changes "src/translations" "" ".po"
+
+ cmake_src_prepare
+ # some tests fail or hang
+ sed -i \
+ -e '/add_test_file(translations_test.cpp/d' \
+ tests/CMakeLists.txt || die
+
+ if ! use test; then
+ sed -e "/find_package.*Qt5/s:\ Test::" -i CMakeLists.txt || die
+ cmake_comment_add_subdirectory tests
+ fi
+
+ rm -r 3rdparty/{libmygpo-qt,libmygpo-qt5,taglib} || die
+}
+
+src_configure() {
+ # spotify is not in portage
+ local mycmakeargs=(
+ -DBUILD_WERROR=OFF
+ # avoid automagically enabling of ccache (bug #611010)
+ -DCCACHE_EXECUTABLE=OFF
+ -DENABLE_BREAKPAD=OFF #< disable crash reporting
+ -DENABLE_GIO=ON
+ -DENABLE_SPOTIFY=OFF
+ -DENABLE_SPOTIFY_BLOB=OFF
+ -DUSE_SYSTEM_GMOCK=ON
+ -DUSE_SYSTEM_PROJECTM=ON
+ -DBUNDLE_PROJECTM_PRESETS=OFF
+ -DLINGUAS="$(plocale_get_locales)"
+ -DENABLE_BOX="$(usex box)"
+ -DENABLE_AUDIOCD="$(usex cdda)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt5DBus=$(usex !dbus)
+ -DENABLE_DROPBOX="$(usex dropbox)"
+ -DENABLE_GOOGLE_DRIVE="$(usex googledrive)"
+ -DENABLE_LIBGPOD="$(usex ipod)"
+ -DENABLE_LIBLASTFM="$(usex lastfm)"
+ -DENABLE_MOODBAR="$(usex moodbar)"
+ -DENABLE_LIBMTP="$(usex mtp)"
+ -DENABLE_VISUALISATIONS="$(usex projectm)"
+ -DENABLE_SEAFILE="$(usex seafile)"
+ -DENABLE_SKYDRIVE="$(usex skydrive)"
+ -DENABLE_LIBPULSE="$(usex pulseaudio)"
+ -DENABLE_UDISKS2="$(usex udisks)"
+ -DENABLE_WIIMOTEDEV="$(usex wiimote)"
+ "$(cmake_use_find_package alsa ALSA)"
+ )
+
+ use !debug && append-cppflags -DQT_NO_DEBUG_OUTPUT
+
+ cmake_src_configure
+}
+
+src_test() {
+ cd "${CMAKE_BUILD_DIR}" || die
+ virtx cmake_build clementine_test
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ elog "Note that list of supported formats is controlled by media-plugins/gst-plugins-meta "
+ elog "USE flags. You may be interested in setting aac, flac, mp3, ogg or wavpack USE flags "
+ elog "depending on your preferences"
+}
diff --git a/media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch b/media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch
new file mode 100644
index 000000000000..8f92766193d6
--- /dev/null
+++ b/media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch
@@ -0,0 +1,53 @@
+Read visualisations from subdirs
+
+https://bugs.gentoo.org/917064
+https://github.com/clementine-player/Clementine/issues/7151
+
+--- a/src/visualisations/projectmpresetmodel.cpp
++++ b/src/visualisations/projectmpresetmodel.cpp
+@@ -27,22 +27,26 @@
+ #endif
+
+ #include <QDir>
++#include <QDirIterator>
+ #include <QtDebug>
++#include <set>
+
+ ProjectMPresetModel::ProjectMPresetModel(ProjectMVisualisation* vis,
+ QObject* parent)
+ : QAbstractItemModel(parent), vis_(vis) {
+ // Find presets
+- QDir preset_dir(vis_->preset_url());
+- QStringList presets(
+- preset_dir.entryList(QStringList() << "*.milk"
+- << "*.prjm",
++ QDirIterator it(vis_->preset_url(),
++ QStringList() << "*.milk" << "*.prjm",
+ QDir::Files | QDir::NoDotAndDotDot | QDir::Readable,
+- QDir::Name | QDir::IgnoreCase));
++ QDirIterator::Subdirectories);
++ std::set<std::pair<QString, QString>> files;
++ while (it.hasNext()) {
++ it.next();
++ files.insert({it.filePath(), it.fileName()});
++ }
+
+- for (const QString& filename : presets) {
+- all_presets_ << Preset(preset_dir.absoluteFilePath(filename), filename,
+- false);
++ for (const auto& [filePath, fileName] : files) {
++ all_presets_ << Preset(filePath, fileName, false);
+ }
+ }
+
+--- a/src/visualisations/projectmvisualisation.cpp
++++ b/src/visualisations/projectmvisualisation.cpp
+@@ -93,7 +93,7 @@ void ProjectMVisualisation::InitProjectM() {
+ if (!QFile::exists(path)) continue;
+
+ // Don't use empty directories
+- if (QDir(path).entryList(QDir::Files | QDir::NoDotAndDotDot).isEmpty())
++ if (QDir(path).entryList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot).isEmpty())
+ continue;
+
+ preset_path = path;