Skip to content

Commit

Permalink
multimedia/audacious-plugins: Update to 4.3
Browse files Browse the repository at this point in the history
Release changelog: https://audacious-media-player.org/news/56-audacious-4-3-released

- Added flavors for gtk3 (legacy) and qt6
- Convert port to use meson

NOTE: not all plugins are available in all flavors. Especially the
      qt6 flavor is missing qthotkey and qtaudio.
  • Loading branch information
madpilot78 committed Mar 9, 2023
1 parent 56fc27c commit da94eff
Show file tree
Hide file tree
Showing 5 changed files with 262 additions and 113 deletions.
194 changes: 111 additions & 83 deletions multimedia/audacious-plugins/Makefile
@@ -1,6 +1,5 @@
PORTNAME= audacious-plugins
PORTVERSION= 4.2
PORTREVISION= 1
PORTVERSION= 4.3
CATEGORIES= multimedia audio
MASTER_SITES= http://distfiles.audacious-media-player.org/

Expand All @@ -17,163 +16,192 @@ LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
libfreetype.so:print/freetype2 \
libmpg123.so:audio/mpg123

FLAVORS= qt5 gtk2
FLAVORS= qt5 qt6 gtk2 gtk3
FLAVOR?= ${FLAVORS:[1]}

USES= compiler:c++11-lib gettext-tools gmake gnome iconv \
localbase pkgconfig tar:bzip2 xorg
localbase meson pkgconfig tar:bzip2 xorg
USE_GNOME= glib20 libxml2 gdkpixbuf2
USE_XORG= x11

qt5_CONFLICTS_INSTALL= audacious-plugins-gtk2
qt5_CONFLICTS_INSTALL= audacious-plugins-qt6 audacious-plugins-gtk2 audacious-plugins-gtk3
qt5_RUN_DEPENDS= audacious:multimedia/audacious@qt5
qt5_BUILD_DEPENDS= audacious:multimedia/audacious@qt5

qt6_PKGNAMESUFFIX= -qt6
qt6_CONFLICTS_INSTALL= audacious-plugins audacious-plugins-gtk2 audacious-plugins-gtk3
qt6_RUN_DEPENDS= audacious:multimedia/audacious@qt6
qt6_BUILD_DEPENDS= audacious:multimedia/audacious@qt6

gtk2_PKGNAMESUFFIX= -gtk2
gtk2_CONFLICTS_INSTALL= audacious-plugins
gtk2_CONFLICTS_INSTALL= audacious-plugins audacious-plugins-qt6 audacious-plugins-gtk3
gtk2_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
gtk2_RUN_DEPENDS= audacious:multimedia/audacious@gtk2
gtk2_BUILD_DEPENDS= audacious:multimedia/audacious@gtk2

GNU_CONFIGURE= yes
CONFIGURE_ARGS= --disable-console --disable-mms --disable-soxr \
--enable-gnomeshortcuts
gtk3_PKGNAMESUFFIX= -gtk3
gtk3_CONFLICTS_INSTALL= audacious-plugins audacious-plugins-qt6 audacious-plugins-gtk2
gtk3_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
gtk3_RUN_DEPENDS= audacious:multimedia/audacious@gtk3
gtk3_BUILD_DEPENDS= audacious:multimedia/audacious@gtk3

MESON_ARGS= -Dconsole=false -Dmms=false -Dsoxr=false -Dcoreaudio=false

.if ${FLAVOR} == qt5
CONFIGURE_ARGS+= --enable-qt --disable-gtk
MESON_ARGS+= -Dqt=true -Dqt6=false -Dgtk=false -Dgtk3=false
USES+= qt:5
USE_QT= core gui multimedia network widgets x11extras
PLIST_SUB= QT5="" GTK2="@comment "
PLIST_SUB= QT="" QT5="" GTK="@comment "
.elif ${FLAVOR} == qt6
MESON_ARGS+= -Dqt=true -Dqt6=true -Dgtk=false -Dgtk3=false
USES+= qt:6
USE_QT= base multimedia
PLIST_SUB= QT="" QT5="@comment " GTK="@comment "
.elif ${FLAVOR} == gtk2
CONFIGURE_ARGS+= --disable-qt --enable-gtk --enable-hotkey
USE_GNOME+= gtk20 cairo
PLIST_SUB= QT5="@comment " GTK2=""
MESON_ARGS+= -Dqt=false -Dqt6=false -Dgtk=true -Dgtk3=false -Dhotkey=true
USE_GNOME+= cairo gtk20
PLIST_SUB= QT="@comment " QT6="@comment " GTK=""
.elif ${FLAVOR} == gtk3
MESON_ARGS+= -Dqt=false -Dqt6=false -Dgtk=true -Dgtk3=true -Dhotkey=true
USE_GNOME+= cairo gtk30
PLIST_SUB= QT="@comment " QT6="@comment " GTK=""
.endif

OPTIONS_DEFINE= AAC ADPLUG AMIDI BS2B CDDA CUE FFMPEG FLAC LAME LIRC \
MODPLUG MPRIS NEON NLS NOTIFY OPENGL OPENMPT SAMPLERATE \
MODPLUG MPG123 MPRIS NEON NLS NOTIFY OPENGL OPENMPT SAMPLERATE \
SCROBBLER SID SNDFILE SPEEDPITCH VORBIS WAVPACK
OPTIONS_MULTI= OUTPUT
OPTIONS_MULTI_OUTPUT= ALSA FILEWRITER JACK OSS PULSEAUDIO SDL SNDIO
OPTIONS_MULTI_OUTPUT= ALSA FILEWRITER JACK OSS PIPEWIRE PULSEAUDIO SDL SNDIO
OPTIONS_DEFAULT= AAC ADPLUG CDDA CUE FILEWRITER FFMPEG FLAC MPRIS \
NEON NLS NOTIFY OPENMPT OSS PULSEAUDIO SCROBBLER \
SID VORBIS WAVPACK
OPTIONS_SUB= yes
MPG123 NEON NLS NOTIFY OPENMPT OSS PIPEWIRE PULSEAUDIO \
SCROBBLER SID VORBIS WAVPACK
OPTIONS_SUB= yes

.if ${FLAVOR} == gtk2
.if ${FLAVOR} == gtk2 || ${FLAVOR} == gtk3
OPTIONS_DEFINE+= AOSD
OPTIONS_DEFAULT+= AOSD
.endif

ADPLUG_DESC= ADPLUG plugin
AMIDI_DESC= Amidi decoder
AOSD_DESC= Audacious OSD
BS2B_DESC= BS2B effect
FILEWRITER_DESC=File writer
MPRIS_DESC= NPRIS plugin
NEON_DESC= Neon plugin
OPENMPT_DESC= OpenMPT plugin
SCROBBLER_DESC= Scrobbler decoder
SID_DESC= Sound chip emulator of Commodore
SPEEDPITCH_DESC=Speed and Pitch plugin
ADPLUG_DESC= ADPLUG plugin
AMIDI_DESC= Amidi decoder
AOSD_DESC= Audacious OSD
BS2B_DESC= BS2B effect
FILEWRITER_DESC= File writer
MPRIS_DESC= NPRIS plugin
NEON_DESC= Neon plugin
OPENMPT_DESC= OpenMPT plugin
SCROBBLER_DESC= Scrobbler decoder
SID_DESC= Sound chip emulator of Commodore
SPEEDPITCH_DESC= Speed and Pitch plugin

AAC_LIB_DEPENDS= libfaad.so:audio/faad
AAC_CONFIGURE_ENABLE= aac
AAC_MESON_TRUE= aac
ADPLUG_LIB_DEPENDS= libadplug.so:audio/libadplug \
libbinio.so:devel/libbinio
ADPLUG_CONFIGURE_ENABLE= adplug
ADPLUG_MESON_TRUE= adplug

ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_CONFIGURE_ENABLE= alsa
ALSA_MESON_TRUE= alsa
AMIDI_LIB_DEPENDS= libfluidsynth.so:audio/fluidsynth
AMIDI_CONFIGURE_ENABLE= amidiplug
AMIDI_MESON_TRUE= amidiplug
AOSD_USES= xorg
AOSD_USE= gnome=pango xorg=xrender
AOSD_LIB_DEPENDS= libXcomposite.so:x11/libXcomposite
AOSD_CONFIGURE_ENABLE= aosd
AOSD_MESON_TRUE= aosd
BS2B_LIB_DEPENDS= libbs2b.so:audio/libbs2b
BS2B_CONFIGURE_ENABLE= bs2b
BS2B_MESON_TRUE= bs2b
CDDA_LIB_DEPENDS= libcdio_cdda.so:sysutils/libcdio-paranoia \
libcddb.so:audio/libcddb \
libcdio.so:sysutils/libcdio
CDDA_CONFIGURE_ENABLE= cdaudio
CDDA_MESON_TRUE= cdaudio
CUE_LIB_DEPENDS= libcue.so:textproc/libcue
CUE_CONFIGURE_ENABLE= cue
FILEWRITER_CONFIGURE_ENABLE= filewriter
CUE_MESON_TRUE= cue
FILEWRITER_MESON_TRUE= filewriter
FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
FFMPEG_CONFIGURE_WITH= ffmpeg=ffmpeg
FFMPEG_MESON_TRUE= ffaudio
FLAC_LIB_DEPENDS= libFLAC.so:audio/flac
FLAC_CONFIGURE_ENABLE= flac
FLAC_MESON_TRUE= flac
JACK_LIB_DEPENDS= libjack.so:audio/jack \
libsamplerate.so:audio/libsamplerate
JACK_CONFIGURE_ENABLE= jack
JACK_MESON_TRUE= jack
LAME_LIB_DEPENDS= libmp3lame.so:audio/lame
LAME_CONFIGURE_ENABLE= filewriter_mp3
LIRC_LIB_DEPENDS= liblirc_client.so:comms/lirc
LIRC_CONFIGURE_ENABLE= lirc
LIRC_MESON_TRUE= lirc
MODPLUG_LIB_DEPENDS= libmodplug.so:audio/libmodplug
MODPLUG_CONFIGURE_ENABLE= modplug
MPRIS_CONFIGURE_ENABLE= mpris2
MODPLUG_MESON_TRUE= modplug
MPRIS_MESON_TRUE= mpris2
NEON_LIB_DEPENDS= libneon.so:www/neon
NEON_CONFIGURE_ENABLE= neon
NEON_MESON_TRUE= neon
MPG123_LIB_DEPENDS= libmpg123.so:audio/mpg123
MPG123_MESON_TRUE= mpg123
NLS_USES= gettext-runtime
NLS_CONFIGURE_ENABLE= nls
NOTIFY_LIB_DEPENDS= libnotify.so:devel/libnotify
NOTIFY_CONFIGURE_ENABLE=notify
NOTIFY_MESON_TRUE= notify
OPENGL_USES= gl
OPENGL_USE= gl=gl
.if ${FLAVOR} == qt5
OPENGL_USE+= qt=opengl
OPENGL_CONFIGURE_ENABLE=qtglspectrum
.elif ${FLAVOR} == gtk2
OPENGL_CONFIGURE_ENABLE=glspectrum
.endif
OPENGL_MESON_TRUE= gl-spectrum
OPENMPT_LIB_DEPENDS= libopenmpt.so:audio/libopenmpt
OPENMPT_CONFIGURE_ENABLE= openmpt
OSS_CONFIGURE_ENABLE= oss4
OPENMPT_MESON_TRUE= openmpt
OPUS_LIB_DEPENDS= libopusfile.so:audio/opusfile \
libopus.so:audio/opus
OPUS_MESON_TRUE= opus
OSS_MESON_TRUE= oss
PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire
PIPEWIRE_MESON_TRUE= pipewire
PULSEAUDIO_LIB_DEPENDS= libpulse-mainloop-glib.so:audio/pulseaudio
PULSEAUDIO_CONFIGURE_ENABLE= pulse
PULSEAUDIO_MESON_TRUE= pulse
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
SAMPLERATE_CONFIGURE_ENABLE= resample
SAMPLERATE_MESON_TRUE= resample
SCROBBLER_LIB_DEPENDS= libcurl.so:ftp/curl
SCROBBLER_CONFIGURE_ENABLE= scrobbler2
SDL_CONFIGURE_ON= --enable-sdlout --with-libsdl=2
SDL_CONFIGURE_OFF= --disable-sdlout
SCROBBLER_MESON_TRUE= scrobbler2
SDL_MESON_TRUE= sdlout
SDL_USES= sdl
SDL_USE= SDL=sdl2
SID_LIB_DEPENDS= libsidplayfp.so:audio/libsidplayfp
SID_CONFIGURE_ENABLE= sid
SID_MESON_TRUE= sid
SNDFILE_LIB_DEPENDS= libsndfile.so:audio/libsndfile
SNDFILE_CONFIGURE_ENABLE= sndfile
SNDFILE_MESON_TRUE= sndfile
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
SNDIO_CONFIGURE_ENABLE= sndio
SPEEDPITCH_CONFIGURE_ENABLE= speedpitch
SNDIO_MESON_TRUE= sndio
SPEEDPITCH_MESON_TRUE= speedpitch
SPEEDPITCH_IMPLIES= SAMPLERATE
VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis \
libogg.so:audio/libogg
VORBIS_CONFIGURE_ENABLE=vorbis
VORBIS_MESON_TRUE= vorbis
WAVPACK_LIB_DEPENDS= libwavpack.so:audio/wavpack
WAVPACK_CONFIGURE_ENABLE= wavpack
WAVPACK_MESON_TRUE= wavpack

post-patch:
@${REINPLACE_CMD} -e 's| $${MFLAGS}||g' \
${WRKSRC}/buildsys.mk.in
@${FIND} ${WRKSRC} -type f -name 'Makefile' \
| ${XARGS} ${REINPLACE_CMD} -e 's| -Wno-bool-operation||'

post-patch-NLS-off:
${REINPLACE_CMD} -e 's,po,,' ${WRKSRC}/Makefile
.include <bsd.port.options.mk>

post-install:
@${FIND} ${STAGEDIR}${PREFIX}/lib/audacious/ -name "*.so" \
-exec ${STRIP_CMD} {} \;
.if ${PORT_OPTIONS:MFILEWRITER}
.if ${PORT_OPTIONS:MFLAC}
MESON_ARGS+= -Dfilewriter-flac=true
.else
MESON_ARGS+= -Dfilewriter-flac=false
.endif
.if ${PORT_OPTIONS:MLAME}
MESON_ARGS+= -Dfilewriter-mp3=true
.else
MESON_ARGS+= -Dfilewriter-mp3=false
.endif
.if ${PORT_OPTIONS:MVORBIS}
MESON_ARGS+= -Dfilewriter-ogg=true
.else
MESON_ARGS+= -Dfilewriter-ogg=false
.endif
.else
MESON_ARGS+= -Dfilewriter-flac=false -Dfilewriter-mp3=false -Dfilewriter-ogg=false
.endif

post-install-ADPLUG-on:
${INSTALL_LIB} ${WRKSRC}/src/adplug/adplug.so \
${STAGEDIR}${PREFIX}/lib/audacious/Input
post-patch:
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
${WRKSRC}/src/aac/meson.build \
${WRKSRC}/src/lirc/meson.build

post-install-OPENMPT-on:
${INSTALL_LIB} ${WRKSRC}/src/openmpt/openmpt.so \
${STAGEDIR}${PREFIX}/lib/audacious/Input
post-patch-NLS-off:
@${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build

.include <bsd.port.mk>
6 changes: 3 additions & 3 deletions multimedia/audacious-plugins/distinfo
@@ -1,3 +1,3 @@
TIMESTAMP = 1657443742
SHA256 (audacious-plugins-4.2.tar.bz2) = 6fa0f69c3a1041eb877c37109513ab4a2a0a56a77d9e8c13a1581cf1439a417f
SIZE (audacious-plugins-4.2.tar.bz2) = 1947472
TIMESTAMP = 1678125312
SHA256 (audacious-plugins-4.3.tar.bz2) = 662ef6c8c4bd70d0f35fd1c5f08b91549b9436638b65f8a1a33956b09df89fc6
SIZE (audacious-plugins-4.3.tar.bz2) = 1932184
8 changes: 8 additions & 0 deletions multimedia/audacious-plugins/files/patch-src_aac_meson.build
@@ -0,0 +1,8 @@
--- src/aac/meson.build.orig 2023-03-05 17:51:20 UTC
+++ src/aac/meson.build
@@ -1,4 +1,4 @@
-faad_dep = cxx.find_library('faad', required: false)
+faad_dep = cxx.find_library('faad', dirs: ['%%LOCALBASE%%/lib'], required: false)
have_aac = faad_dep.found() and cxx.has_header('neaacdec.h')


16 changes: 16 additions & 0 deletions multimedia/audacious-plugins/files/patch-src_lirc_meson.build
@@ -0,0 +1,16 @@
--- src/lirc/meson.build.orig 2023-03-05 17:51:20 UTC
+++ src/lirc/meson.build
@@ -1,4 +1,4 @@
-lirc_dep = cxx.find_library('lirc', required: false)
+lirc_dep = cxx.find_library('lirc_client', dirs: ['%%LOCALBASE%%/lib'], required: false)
have_lirc = lirc_dep.found() and cxx.has_header('lirc/lirc_client.h')


@@ -7,7 +7,6 @@ if have_lirc
'lirc.cc',
dependencies: [audacious_dep, glib_dep, lirc_dep],
name_prefix: '',
- link_args: ['-llirc_client'],
install: true,
install_dir: general_plugin_dir
)

0 comments on commit da94eff

Please sign in to comment.