media-sound/qmmp: add 2.2.8

add a patch to avoid using xcb without X enabled if qtbase has xcb
feature.
make executable kwin6.sh

Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/43569
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Nicolas PARLANT
2025-08-25 15:04:27 +02:00
committed by Sam James
parent 8bad94cda1
commit 3571c0c7af
3 changed files with 208 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST qmmp-2.2.3.tar.bz2 1420014 BLAKE2B 88d77cf5e17e6a4033aab5e5b6eb6c8f6e2ec47d41e6839cc526910c069ed35ab06d72562118c6311479ac1655302fd84513ac8eec44b75dac57ed6b53ffdc1c SHA512 91637a3293030c21c1d0de689bb5e2227e6ea2bf122e9eeeadc303465bc045c6a3621d74af9971ae2f436f3167026eee67e1bcb005f54e71081961d058523770
DIST qmmp-2.2.6.tar.bz2 1429101 BLAKE2B d28af1da81eea186e01ba18a0326244fce1eca3423943e475f3cdc8177da50df1265e1fbd19b5edb0fc613499ea15d9bc857c564e93edcdac13dae23ac3a252e SHA512 05261c89d51eb0a4bab3349b26dcb8049de5d8b2a5b781a2036e212e4edf141b3526f428713a486f7eb84136b3f625ce8c606b55612b78f4a0db826da0a7d1a5
DIST qmmp-2.2.8.tar.bz2 1434188 BLAKE2B d95e52e968cde9bfe40c9ace62c31a98a73de052f0ec04db68b70bad27c9e9eda932904f43edc7921acf861f7b7c350d560f228252ff061938fde39ebd8cba0d SHA512 c2b89def8daa90ea60b01363fa5215eb68cd06a9393d7df927b30e23a77f126387ae280692f8a6a43df777af63072724b8093a6c45b4b9eb901ccd34c4b9ab18

View File

@@ -0,0 +1,14 @@
Avoid using X11 if qmmp is built without X but qtbase has xcb feature.
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,8 +99,9 @@ set(USE_SKINNED TRUE CACHE BOOL "enable/disable standard skinned user interface"
set(USE_DIR_ASSOC TRUE CACHE BOOL "enable/disable inode/directory mime type association")
#set(APP_NAME_SUFFIX "-1")
+option(USE_XCB "Use xcb if available in QtGui" ON)
get_target_property(QtGui_enabled_features Qt6::Gui QT_ENABLED_PUBLIC_FEATURES)
-if("xcb" IN_LIST QtGui_enabled_features)
+if(USE_XCB AND "xcb" IN_LIST QtGui_enabled_features)
pkg_search_module(X11 x11 IMPORTED_TARGET)
set(XCB_ENABLED YES)
add_definitions(-DQMMP_WS_X11)

View File

@@ -0,0 +1,193 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake optfeature 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
ESVN_REPO_URI="svn://svn.code.sf.net/p/${PN}-dev/code/trunk/${PN}"
fi
LICENSE="CC-BY-SA-4.0 GPL-2+" # default skin & source code
SLOT="0"
# KEYWORDS further up
# NOTE: moving mms to qmmp-plugin-pack soon:
# https://sourceforge.net/p/qmmp-dev/code/12062/
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 +vorbis wavpack
"
REQUIRED_USE="
cddb? ( cdda )
gnome? ( dbus )
jack? ( soxr )
shout? ( soxr vorbis )
"
# 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-base )
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 )
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 )
"
PATCHES=(
# Avoid using xcb if qmmp is built without X but qtbase has xcb feature.
"${FILESDIR}"/${PN}-2.2.8-fix_xcb.patch
)
DOCS=( AUTHORS ChangeLog README )
src_prepare() {
cmake_src_prepare
if use doc; then
doxygen -u doc/Doxyfile.cmake.in 2>/dev/null || die
fi
}
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 dbus)"
-DUSE_VORBIS="$(usex vorbis)"
-DUSE_WAVPACK="$(usex wavpack)"
-DUSE_XMP="$(usex libxmp)"
# custom option
-DUSE_XCB="$(usex X)"
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
use doc && {
cmake_build docs
HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
}
}
src_install() {
cmake_src_install
if use X; then
chmod +x "${ED}"/usr/share/qmmp/scripts/kwin6.sh || die
fi
}
pkg_postinst() {
xdg_pkg_postinst
use dbus && optfeature "removable device detection" sys-fs/udisks
}