commit:     a8c2a9ebf06daf1393064ec798119ef6dac5023f
Author:     Filip Kobierski <fkobi <AT> pm <DOT> me>
AuthorDate: Tue Jan 14 19:28:09 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Apr 26 02:40:26 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a8c2a9eb

media-sound/qmmp: add 2.2.3 with MANY improvements

- added:
  - USE flags:
    - X
    - cddb
    - doc
    - mpg123 (kills automagic)
  - libxcb if USE=X
  - liibglvnd if USE=projectm
  - patch to build with projectm:4
  - implied Gentoo's configure defaults
  - subslot operator where needed
  - explicitly disabled windows specific configure options
  - qtbase[sql] due to required qtbase[sqlite]
  - require soxr if USE=jack
- updated:
  - branch for live ebuild
  - LICENSE
- changed:
  - avoid sourceforge redirection
  - dbus? () in favor of [dbus?]
  - whitespace & some formatting
  - merge USE=notifier to USE=X
- removed:
  - ineffective src_prepare
  - drop subslot operator for libmad & mpg123
  - libsamplerate dependency, not needed since 1.1.0
  - USE flags:
    - analyzer
    - cover
    - crossfade
    - cue
    - lyrics
    - oss
    - qtsui
    - scrobbler
    - stereo
    - tray

Signed-off-by: Filip Kobierski <fkobi <AT> pm.me>
Part-of: https://github.com/gentoo/gentoo/pull/39955
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-sound/qmmp/Manifest                          |   1 +
 .../files/qmmp-2.2.3_build-with-projectm4.patch    |  17 +++
 media-sound/qmmp/metadata.xml                      |   1 +
 media-sound/qmmp/qmmp-2.2.3.ebuild                 | 167 +++++++++++++++++++++
 4 files changed, 186 insertions(+)

diff --git a/media-sound/qmmp/Manifest b/media-sound/qmmp/Manifest
index 7a706054408c..701a8181cb23 100644
--- a/media-sound/qmmp/Manifest
+++ b/media-sound/qmmp/Manifest
@@ -1 +1,2 @@
 DIST qmmp-2.1.9.tar.bz2 1373111 BLAKE2B 
a7420c50b4a3e9d41d6e483dce3a0446a202823f673aab2def308b5473563d5ea77730aec771a96a63ef860284bdcaa378dafe9d03c20919cba70b046681bc4c
 SHA512 
87370dfdb856953ff9f89c1308c21133eaef880c3ace1e57ea1e0fde6deea4988c491836139a8d89c41670730838c0b8786fd4208429c709bab3b976efac53a8
+DIST qmmp-2.2.3.tar.bz2 1420014 BLAKE2B 
88d77cf5e17e6a4033aab5e5b6eb6c8f6e2ec47d41e6839cc526910c069ed35ab06d72562118c6311479ac1655302fd84513ac8eec44b75dac57ed6b53ffdc1c
 SHA512 
91637a3293030c21c1d0de689bb5e2227e6ea2bf122e9eeeadc303465bc045c6a3621d74af9971ae2f436f3167026eee67e1bcb005f54e71081961d058523770

diff --git a/media-sound/qmmp/files/qmmp-2.2.3_build-with-projectm4.patch 
b/media-sound/qmmp/files/qmmp-2.2.3_build-with-projectm4.patch
new file mode 100644
index 000000000000..a46f3951f170
--- /dev/null
+++ b/media-sound/qmmp/files/qmmp-2.2.3_build-with-projectm4.patch
@@ -0,0 +1,17 @@
+Source: https://sourceforge.net/p/qmmp-dev/code/12150/
+--- a/src/plugins/Visual/projectm/projectmplugin.cpp
++++ b/src/plugins/Visual/projectm/projectmplugin.cpp
+@@ -59,8 +59,13 @@
+     layout->setContentsMargins(0,0,0,0);
+     setLayout(layout);
+     addActions(m_projectMWidget->actions());
++#ifdef PROJECTM_4
++    connect(m_projectMWidget, &ProjectM4Widget::showMenuToggled, listWidget, 
&QListWidget::setVisible);
++    connect(m_projectMWidget, &ProjectM4Widget::fullscreenToggled, this, 
&ProjectMPlugin::setFullScreen);
++#else
+     connect(m_projectMWidget, &ProjectMWidget::showMenuToggled, listWidget, 
&QListWidget::setVisible);
+     connect(m_projectMWidget, &ProjectMWidget::fullscreenToggled, this, 
&ProjectMPlugin::setFullScreen);
++#endif
+     listWidget->hide();
+     resize(600,400);
+     QSettings settings;
\ No newline at end of file

diff --git a/media-sound/qmmp/metadata.xml b/media-sound/qmmp/metadata.xml
index d25b6f756000..fc9e356154d4 100644
--- a/media-sound/qmmp/metadata.xml
+++ b/media-sound/qmmp/metadata.xml
@@ -19,6 +19,7 @@
                <flag name="libxmp">Enable module files renderer (modplug 
replacement) via <pkg>media-libs/libxmp</pkg></flag>
                <flag name="lyrics">Fetch track lyrics from the web</flag>
                <flag name="midi">Enable midi support using wildmidi 
library</flag>
+               <flag name="mpg123">Enable support for MPEG audio playback via 
<pkg>media-sound/mpg123</pkg></flag>
                <flag name="notifier">Enable qmmps' notifier system</flag>
                <flag name="pipewire">Enable PipeWire output plugin</flag>
                <flag name="projectm">Enable projectm music visualization 
plugin</flag>

diff --git a/media-sound/qmmp/qmmp-2.2.3.ebuild 
b/media-sound/qmmp/qmmp-2.2.3.ebuild
new file mode 100644
index 000000000000..b76445ff19f6
--- /dev/null
+++ b/media-sound/qmmp/qmmp-2.2.3.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake xdg
+
+DESCRIPTION="Qt-based audio player with winamp/xmms skins support"
+HOMEPAGE="https://qmmp.ylsoftware.com";
+if [[ ${PV} != *9999* ]]; then
+       SRC_URI="
+               https://qmmp.ylsoftware.com/files/qmmp/$(ver_cut 
1-2)/${P}.tar.bz2
+               
https://downloads.sourceforge.net/project/qmmp-dev/qmmp/$(ver_cut 
1-2)/${P}.tar.bz2
+       "
+       KEYWORDS="~amd64 ~x86"
+else
+       inherit subversion
+       QMMP_DEV_BRANCH="2.2"
+       
ESVN_REPO_URI="svn://svn.code.sf.net/p/${PN}-dev/code/branches/${PN}-${QMMP_DEV_BRANCH}"
+fi
+
+LICENSE="CC-BY-SA-4.0 GPL-2+" # default skin & source code
+SLOT="0"
+# KEYWORDS further up
+IUSE="X aac +alsa archive bs2b cdda cddb curl +dbus doc enca
+ffmpeg flac game gnome jack ladspa libxmp +mad midi mms mpg123
+mplayer musepack opus pipewire projectm pulseaudio qtmedia
+shout sid sndfile soxr udisks +vorbis wavpack
+"
+REQUIRED_USE="
+       cddb? ( cdda )
+       gnome? ( dbus )
+       jack? ( soxr )
+       shout? ( soxr vorbis )
+       udisks? ( dbus )
+"
+# qtbase[sql] to help autounmask of sqlite
+RDEPEND="
+       dev-qt/qtbase:6[X?,dbus?,gui,network,sql,sqlite,widgets]
+       media-libs/taglib:=
+       X? (
+               x11-libs/libX11
+               x11-libs/libxcb:=
+       )
+       aac? ( media-libs/faad2 )
+       alsa? ( media-libs/alsa-lib )
+       archive? ( app-arch/libarchive )
+       bs2b? ( media-libs/libbs2b )
+       cdda? (
+               dev-libs/libcdio:=
+               dev-libs/libcdio-paranoia:=
+       )
+       cddb? ( media-libs/libcddb )
+       curl? ( net-misc/curl )
+       enca? ( app-i18n/enca )
+       ffmpeg? ( media-video/ffmpeg:= )
+       flac? ( media-libs/flac:= )
+       game? ( media-libs/game-music-emu )
+       jack? ( virtual/jack )
+       ladspa? ( media-plugins/cmt-plugins )
+       libxmp? ( media-libs/libxmp )
+       mad? ( media-libs/libmad )
+       midi? ( media-sound/wildmidi )
+       mms? ( media-libs/libmms )
+       mpg123? ( media-sound/mpg123 )
+       mplayer? ( media-video/mplayer )
+       musepack? ( >=media-sound/musepack-tools-444 )
+       opus? ( media-libs/opusfile )
+       pipewire? ( media-video/pipewire:= )
+       projectm? (
+               dev-qt/qtbase:6[-gles2-only,opengl]
+               media-libs/libglvnd
+               media-libs/libprojectm:=
+       )
+       pulseaudio? ( media-libs/libpulse )
+       qtmedia? ( dev-qt/qtmultimedia:6 )
+       shout? ( media-libs/libshout )
+       sid? ( >=media-libs/libsidplayfp-1.1.0:= )
+       sndfile? ( media-libs/libsndfile )
+       soxr? ( media-libs/soxr )
+       udisks? ( sys-fs/udisks:2 )
+       vorbis? (
+               media-libs/libogg
+               media-libs/libvorbis
+       )
+       wavpack? ( media-sound/wavpack )
+"
+DEPEND="
+       ${RDEPEND}
+       X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+       dev-qt/qttools:6[linguist]
+       doc? ( app-text/doxygen )
+"
+
+DOCS=( AUTHORS ChangeLog README )
+
+PATCHES=( "${FILESDIR}"/${P}_build-with-projectm4.patch )
+
+src_configure() {
+       local mycmakeargs=(
+               # our defaults
+               -DUSE_CONVERTER=ON # because taglib
+               -DUSE_RGSCAN=ON # because taglib
+               -DUSE_LIBRARY=ON # because qtbase[sqlite]
+
+               # depless non-default options
+               -DUSE_OSS=ON
+
+               # turn off windows specific stuff
+               -DUSE_DSOUND=OFF
+               -DUSE_TASKBAR=OFF
+               -DUSE_RDETECT=OFF
+               -DUSE_WASAPI=OFF
+               -DUSE_WAVEOUT=OFF
+               # set USE flags
+               -DUSE_AAC="$(usex aac)"
+               -DUSE_ALSA="$(usex alsa)"
+               -DUSE_ARCHIVE="$(usex archive)"
+               -DUSE_BS2B="$(usex bs2b)"
+               -DUSE_CDA="$(usex cdda)"
+               -DUSE_LIBCDDB="$(usex cddb)"
+               -DUSE_CURL="$(usex curl)"
+               -DUSE_KDENOTIFY="$(usex dbus)"
+               -DUSE_MPRIS="$(usex dbus)"
+               -DUSE_ENCA="$(usex enca)"
+               -DUSE_FFMPEG="$(usex ffmpeg)"
+               -DUSE_FILEWRITER="$(usex vorbis)"
+               -DUSE_FLAC="$(usex flac)"
+               -DUSE_GME="$(usex game)"
+               -DUSE_GNOMEHOTKEY="$(usex gnome)"
+               -DUSE_HOTKEY="$(usex X)"
+               -DUSE_JACK="$(usex jack)"
+               -DUSE_LADSPA="$(usex ladspa)"
+               -DUSE_MAD="$(usex mad)"
+               -DUSE_MIDI="$(usex midi)"
+               -DUSE_MMS="$(usex mms)"
+               -DUSE_MPG123="$(usex mpg123)"
+               -DUSE_MPLAYER="$(usex mplayer)"
+               -DUSE_MPC="$(usex musepack)"
+               -DUSE_NOTIFIER="$(usex X)"
+               -DUSE_OPUS="$(usex opus)"
+               -DUSE_PIPEWIRE="$(usex pipewire)"
+               -DUSE_PROJECTM="$(usex projectm)"
+               -DUSE_PULSE="$(usex pulseaudio)"
+               -DUSE_QTMULTIMEDIA="$(usex qtmedia)"
+               -DUSE_SHOUT="$(usex shout)"
+               -DUSE_SID="$(usex sid)"
+               -DUSE_SKINNED="$(usex X)"
+               -DUSE_SNDFILE="$(usex sndfile)"
+               -DUSE_SOXR="$(usex soxr)"
+               -DUSE_UDISKS="$(usex udisks)"
+               -DUSE_VORBIS="$(usex vorbis)"
+               -DUSE_WAVPACK="$(usex wavpack)"
+               -DUSE_XMP="$(usex libxmp)"
+       )
+       cmake_src_configure
+}
+
+src_compile() {
+       cmake_src_compile
+       use doc && {
+               cmake_build docs
+               HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+       }
+}

Reply via email to