# Copyright 2021-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit autotools flag-o-matic git-r3 plocale toolchain-funcs xdg DESCRIPTION="DeaDBeeF is a modular audio player similar to foobar2000" HOMEPAGE="https://deadbeef.sourceforge.io/" EGIT_REPO_URI="https://github.com/DeaDBeeF-Player/deadbeef.git" EGIT_SUBMODULES=( external/ddb_dsp_libretro external/ddb_output_pw external/mp4p ) LICENSE=" GPL-2 LGPL-2.1 MIT deadbeef_plugins_wavpack? ( BSD ) " SLOT="0" IUSE=" deadbeef_plugins_aac deadbeef_plugins_adplug deadbeef_plugins_alac deadbeef_plugins_alsa deadbeef_plugins_ape +deadbeef_plugins_artwork deadbeef_plugins_cdda deadbeef_plugins_converter +deadbeef_plugins_curl deadbeef_plugins_dts deadbeef_plugins_dumb deadbeef_plugins_ffmpeg deadbeef_plugins_flac deadbeef_plugins_gme deadbeef_plugins_gtk2 +deadbeef_plugins_gtk3 +deadbeef_plugins_hotkeys deadbeef_plugins_lastfm deadbeef_plugins_libretro deadbeef_plugins_libsamplerate +deadbeef_plugins_lyrics +deadbeef_plugins_m3u +deadbeef_plugins_medialib deadbeef_plugins_mms deadbeef_plugins_mono2stereo deadbeef_plugins_mp3 +deadbeef_plugins_mpris deadbeef_plugins_musepack deadbeef_plugins_notify +deadbeef_plugins_nullout deadbeef_plugins_opus deadbeef_plugins_oss deadbeef_plugins_pipewire +deadbeef_plugins_playlist-browser deadbeef_plugins_psf deadbeef_plugins_pulseaudio +deadbeef_plugins_replaygain deadbeef_plugins_sc68 deadbeef_plugins_shellexec deadbeef_plugins_shorten deadbeef_plugins_sid deadbeef_plugins_sndfile deadbeef_plugins_soundtouch +deadbeef_plugins_supereq deadbeef_plugins_tta deadbeef_plugins_vorbis deadbeef_plugins_vtx deadbeef_plugins_wavpack deadbeef_plugins_wildmidi deadbeef_plugins_wma deadbeef_plugins_zip nls " REQUIRED_USE=" || ( deadbeef_plugins_alsa deadbeef_plugins_nullout deadbeef_plugins_oss deadbeef_plugins_pipewire deadbeef_plugins_pulseaudio ) deadbeef_plugins_converter? ( || ( deadbeef_plugins_gtk2 deadbeef_plugins_gtk3 ) ) deadbeef_plugins_lastfm? ( deadbeef_plugins_curl ) deadbeef_plugins_lyrics? ( || ( deadbeef_plugins_gtk2 deadbeef_plugins_gtk3 ) ) deadbeef_plugins_playlist-browser? ( || ( deadbeef_plugins_gtk2 deadbeef_plugins_gtk3 ) ) " DEPEND=" dev-libs/glib:2 dev-libs/jansson:= dev-libs/libdispatch virtual/zlib:= deadbeef_plugins_aac? ( media-libs/faad2 ) deadbeef_plugins_alsa? ( media-libs/alsa-lib ) deadbeef_plugins_cdda? ( dev-libs/libcdio:= media-libs/libcddb media-sound/cdparanoia ) deadbeef_plugins_dts? ( media-libs/libdca ) deadbeef_plugins_ffmpeg? ( media-video/ffmpeg:= ) deadbeef_plugins_flac? ( media-libs/flac:= media-libs/libogg ) deadbeef_plugins_curl? ( net-misc/curl ) deadbeef_plugins_gtk2? ( x11-libs/gtk+:2 ) deadbeef_plugins_gtk3? ( >=app-accessibility/at-spi2-core-2.46.0 media-libs/harfbuzz:= x11-libs/cairo x11-libs/gdk-pixbuf:2 x11-libs/gtk+:3 x11-libs/pango ) deadbeef_plugins_hotkeys? ( x11-libs/libX11 ) deadbeef_plugins_libsamplerate? ( media-libs/libsamplerate ) deadbeef_plugins_mp3? ( media-sound/mpg123-base ) deadbeef_plugins_musepack? ( media-sound/musepack-tools ) nls? ( virtual/libintl ) deadbeef_plugins_notify? ( sys-apps/dbus ) deadbeef_plugins_opus? ( media-libs/opusfile ) deadbeef_plugins_oss? ( virtual/os-headers ) deadbeef_plugins_pipewire? ( media-video/pipewire:= ) deadbeef_plugins_pulseaudio? ( media-libs/libpulse ) deadbeef_plugins_sndfile? ( media-libs/libsndfile ) deadbeef_plugins_vorbis? ( media-libs/libvorbis ) deadbeef_plugins_wavpack? ( media-sound/wavpack ) deadbeef_plugins_zip? ( dev-libs/libzip:= ) " RDEPEND=" ${DEPEND} deadbeef_plugins_wildmidi? ( media-sound/timidity-freepats ) " BDEPEND=" dev-util/intltool llvm-core/clang >=sys-devel/gettext-0.21 llvm-core/llvm deadbeef_plugins_ape? ( dev-lang/yasm ) virtual/pkgconfig " src_prepare() { default if ! grep -q 'AC_ARG_ENABLE(mpris' configure.ac; then eapply "${FILESDIR}"/${PN}-1.10.2-mpris-toggle.patch fi drop_from_linguas() { sed "/${1}/d" -i "${S}/po/LINGUAS" || die } drop_and_stub() { einfo drop_and_stub "${1}" rm -r "${1}" || die mkdir "${1}" || die cat > "${1}/Makefile.in" <<-EOF || die all: nothing install: nothing nothing: EOF } plocale_for_each_disabled_locale drop_from_linguas || die eautopoint --force eautoreconf # Get rid of bundled gettext. (Avoid build failures with musl) drop_and_stub "${S}/intl" } src_configure () { if ! tc-is-clang; then AR=llvm-ar CC=${CHOST}-clang CXX=${CHOST}-clang++ NM=llvm-nm RANLIB=llvm-ranlib strip-unsupported-flags fi export HOST_CC="$(tc-getBUILD_CC)" export HOST_CXX="$(tc-getBUILD_CXX)" tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG local artwork_network=no use deadbeef_plugins_artwork && use deadbeef_plugins_curl && artwork_network=yes local myconf=( "--disable-staticlink" "--disable-portable" "--disable-rpath" "--disable-coreaudio" "--disable-libmad" "$(use_enable deadbeef_plugins_aac aac)" "$(use_enable deadbeef_plugins_adplug adplug)" "$(use_enable deadbeef_plugins_alac alac)" "$(use_enable deadbeef_plugins_alsa alsa)" "$(use_enable deadbeef_plugins_ape ffap)" "$(use_enable deadbeef_plugins_artwork artwork)" "--enable-artwork-network=${artwork_network}" "$(use_enable deadbeef_plugins_cdda cdda)" "$(use_enable deadbeef_plugins_cdda cdda-paranoia)" "$(use_enable deadbeef_plugins_converter converter)" "$(use_enable deadbeef_plugins_curl vfs-curl)" "$(use_enable deadbeef_plugins_dts dca)" "$(use_enable deadbeef_plugins_dumb dumb)" "$(use_enable deadbeef_plugins_ffmpeg ffmpeg)" "$(use_enable deadbeef_plugins_flac flac)" "$(use_enable deadbeef_plugins_gme gme)" "$(use_enable deadbeef_plugins_gtk2 gtk2)" "$(use_enable deadbeef_plugins_gtk3 gtk3)" "$(use_enable deadbeef_plugins_hotkeys hotkeys)" "$(use_enable deadbeef_plugins_lastfm lfm)" "$(use_enable deadbeef_plugins_libretro libretro)" "$(use_enable deadbeef_plugins_libsamplerate src)" "$(use_enable deadbeef_plugins_lyrics lyrics)" "$(use_enable deadbeef_plugins_m3u m3u)" "$(use_enable deadbeef_plugins_medialib medialib)" "$(use_enable deadbeef_plugins_mms mms)" "$(use_enable deadbeef_plugins_mono2stereo mono2stereo)" "$(use_enable deadbeef_plugins_mp3 mp3)" "$(use_enable deadbeef_plugins_mp3 libmpg123)" "$(use_enable deadbeef_plugins_mpris mpris)" "$(use_enable deadbeef_plugins_musepack musepack)" "$(use_enable nls)" "$(use_enable deadbeef_plugins_notify notify)" "$(use_enable deadbeef_plugins_nullout nullout)" "$(use_enable deadbeef_plugins_opus opus)" "$(use_enable deadbeef_plugins_oss oss)" "$(use_enable deadbeef_plugins_pipewire pipewire)" "$(use_enable deadbeef_plugins_playlist-browser pltbrowser)" "$(use_enable deadbeef_plugins_psf psf)" "$(use_enable deadbeef_plugins_pulseaudio pulse)" "$(use_enable deadbeef_plugins_replaygain rgscanner)" "$(use_enable deadbeef_plugins_sc68 sc68)" "$(use_enable deadbeef_plugins_shellexec shellexec)" "$(use_enable deadbeef_plugins_shellexec shellexecui)" "$(use_enable deadbeef_plugins_shorten shn)" "$(use_enable deadbeef_plugins_sid sid)" "$(use_enable deadbeef_plugins_sndfile sndfile)" "$(use_enable deadbeef_plugins_soundtouch soundtouch)" "$(use_enable deadbeef_plugins_supereq supereq)" "$(use_enable deadbeef_plugins_tta tta)" "$(use_enable deadbeef_plugins_vorbis vorbis)" "$(use_enable deadbeef_plugins_vtx vtx)" "$(use_enable deadbeef_plugins_wavpack wavpack)" "$(use_enable deadbeef_plugins_wildmidi wildmidi)" "$(use_enable deadbeef_plugins_wma wma)" "$(use_enable deadbeef_plugins_zip vfs-zip)" "--enable-shared" ) econf "${myconf[@]}" } src_install() { default find "${ED}" -name '*.la' -delete || die # if compressed, help doesn't work docompress -x /usr/share/doc/${PF} } pkg_postinst() { xdg_pkg_postinst elog "DeaDBeeF plugins can be selected globally in make.conf, for example:" elog ' DEADBEEF_PLUGINS="alsa artwork curl gtk3 mpris nullout opus"' elog "Setting this variable replaces the default plugin selection." elog "For per-package selection, use deadbeef_plugins_* flags in package.use." }