git: 0ef520f32ee9 - main - audio/deadbeef: split GTK-based GUI plugins into separate port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 27 Sep 2026 05:38:40 UTC
The branch main has been updated by danfe:
URL: https://cgit.FreeBSD.org/ports/commit/?id=0ef520f32ee9f4f28d1ae68eba8152ff51e912c0
commit 0ef520f32ee9f4f28d1ae68eba8152ff51e912c0
Author: Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2026-09-27 05:37:06 +0000
Commit: Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2026-09-27 05:37:06 +0000
audio/deadbeef: split GTK-based GUI plugins into separate port
- This allows to 1) simplify the main Makefile by removing
fragile and incoherent logic to handle the codependencies
between four GUI plugins; 2) consistently flavorize them
against supported GTK versions. Users can now switch GUI
without having to reconfigure and rebuild the main port
- Drop custom NOTIFY_DESC in favor of standard description
which is shorter and less cryptic (more user-oriented)
---
UPDATING | 8 ++++
audio/Makefile | 1 +
audio/deadbeef-gui-plugins/Makefile | 48 +++++++++++++++++++++
audio/deadbeef-gui-plugins/distinfo | 3 ++
audio/deadbeef-gui-plugins/files/patch-Makefile.in | 24 +++++++++++
.../files/patch-plugins_gtkui_Makefile.in | 0
...ch-plugins_gtkui_ddbcellrenderertextmultiline.c | 8 ++--
audio/deadbeef-gui-plugins/pkg-descr | 2 +
audio/deadbeef-gui-plugins/pkg-plist | 18 ++++++++
audio/deadbeef/Makefile | 50 +++++-----------------
audio/deadbeef/pkg-message | 9 ++++
audio/deadbeef/pkg-plist | 19 +-------
12 files changed, 127 insertions(+), 63 deletions(-)
diff --git a/UPDATING b/UPDATING
index 2d9671a7ab49..2806c5dc98c6 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,14 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
+20260927:
+ AFFECTS: audio/deadbeef
+ AUTHOR: danfe@FreeBSD.org
+
+ GTK-based GUI plugins had been split from the main port into its own,
+ `audio/deadbeef-gui-plugins', flavorized by the GTK version. Please
+ install the preferred one together with the main program.
+
20260924:
AFFECTS: users of net/openldap25-client, net/openldap25-server,
net/openldap26-client, net/openldap26-server
diff --git a/audio/Makefile b/audio/Makefile
index 2404f30d91be..37e6e8f59269 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -100,6 +100,7 @@
SUBDIR += darkice
SUBDIR += dcd
SUBDIR += deadbeef
+ SUBDIR += deadbeef-gui-plugins
SUBDIR += deadbeef-jack-plugin
SUBDIR += deadbeef-mpris2-plugin
SUBDIR += deadbeef-musical-spectrum-plugin
diff --git a/audio/deadbeef-gui-plugins/Makefile b/audio/deadbeef-gui-plugins/Makefile
new file mode 100644
index 000000000000..27e5b926b789
--- /dev/null
+++ b/audio/deadbeef-gui-plugins/Makefile
@@ -0,0 +1,48 @@
+PORTNAME= deadbeef
+PORTVERSION= 0.7.2
+CATEGORIES= audio misc
+MASTER_SITES= SF/${PORTNAME}/Archive
+PKGNAMESUFFIX= -${FLAVOR}-gui-plugins
+
+MAINTAINER= danfe@FreeBSD.org
+COMMENT= GUI plugins for DeaDBeeF audio player
+WWW= https://deadbeef.sourceforge.io/
+
+LICENSE= GPLv2 LGPL21
+LICENSE_COMB= dual
+
+LIB_DEPENDS= libjansson.so:devel/jansson
+RUN_DEPENDS= ${PORTNAME}:${CATEGORIES:[1]}/${PORTNAME}
+
+USES= gettext-tools gmake gnome libtool pkgconfig tar:bzip2
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= ${_DISABLE_UNNEEDED_PLUGINS:sh}
+USE_GNOME= intltool
+INSTALL_TARGET= install-strip
+
+FLAVORS= gtk2 gtk3
+
+.if ${FLAVOR:U} == gtk3
+CONFIGURE_ARGS+= --disable-gtk2
+USE_GNOME+= gtk30
+PLIST_SUB+= GTK_VER=3
+.else
+CONFIGURE_ARGS+= --disable-gtk3
+USE_GNOME+= gtk20
+PLIST_SUB+= GTK_VER=2
+.endif
+
+OPTIONS_DEFINE= NLS
+
+NLS_CONFIGURE_OFF= --disable-nls
+
+post-patch:
+ @${REINPLACE_CMD} -e 's, -a.*shellexec.*",,' ${WRKSRC}/configure
+
+_FILTER_OUT_ENTRIES= abstract-socket converter gtk pltbrowser \
+ portable shellexecui staticlink
+_DISABLE_UNNEEDED_PLUGINS= ${SED} -n "/^enable_nullout/,/^'/ { \
+ s,^en,--dis,; s,_,-,g p; }" ${WRKSRC}/configure | \
+ ${EGREP} -v '${_FILTER_OUT_ENTRIES:ts|}'
+
+.include <bsd.port.mk>
diff --git a/audio/deadbeef-gui-plugins/distinfo b/audio/deadbeef-gui-plugins/distinfo
new file mode 100644
index 000000000000..16fbb8bdd949
--- /dev/null
+++ b/audio/deadbeef-gui-plugins/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1466336082
+SHA256 (deadbeef-0.7.2.tar.bz2) = 8a63abdf00c2f37c33e018ae0b39d391873e037434074b84bb47381bf283c884
+SIZE (deadbeef-0.7.2.tar.bz2) = 4736472
diff --git a/audio/deadbeef-gui-plugins/files/patch-Makefile.in b/audio/deadbeef-gui-plugins/files/patch-Makefile.in
new file mode 100644
index 000000000000..562d6ce77907
--- /dev/null
+++ b/audio/deadbeef-gui-plugins/files/patch-Makefile.in
@@ -0,0 +1,24 @@
+--- Makefile.in.orig 2016-06-19 11:30:46 UTC
++++ Makefile.in
+@@ -460,11 +460,7 @@ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-SUBDIRS = pixmaps\
+- icons\
+- ${PLUGINS_DIRS}\
+- po\
+- intl
++SUBDIRS = ${PLUGINS_DIRS}
+
+ INTLTOOL_FILES = \
+ intltool-extract.in \
+@@ -786,7 +782,7 @@ $(RECURSIVE_TARGETS):
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+- if test "$$dot_seen" = "no"; then \
++ exit; if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
diff --git a/audio/deadbeef/files/patch-plugins_gtkui_Makefile.in b/audio/deadbeef-gui-plugins/files/patch-plugins_gtkui_Makefile.in
similarity index 100%
rename from audio/deadbeef/files/patch-plugins_gtkui_Makefile.in
rename to audio/deadbeef-gui-plugins/files/patch-plugins_gtkui_Makefile.in
diff --git a/audio/deadbeef/files/patch-plugins_gtkui_ddbcellrenderertextmultiline.c b/audio/deadbeef-gui-plugins/files/patch-plugins_gtkui_ddbcellrenderertextmultiline.c
similarity index 89%
rename from audio/deadbeef/files/patch-plugins_gtkui_ddbcellrenderertextmultiline.c
rename to audio/deadbeef-gui-plugins/files/patch-plugins_gtkui_ddbcellrenderertextmultiline.c
index 626a62d44816..ee93203fa67a 100644
--- a/audio/deadbeef/files/patch-plugins_gtkui_ddbcellrenderertextmultiline.c
+++ b/audio/deadbeef-gui-plugins/files/patch-plugins_gtkui_ddbcellrenderertextmultiline.c
@@ -1,6 +1,6 @@
--- plugins/gtkui/ddbcellrenderertextmultiline.c.orig 2016-06-19 11:26:18 UTC
+++ plugins/gtkui/ddbcellrenderertextmultiline.c
-@@ -30,7 +30,13 @@
+@@ -30,6 +30,11 @@
#include "support.h"
#include "ddbcellrenderertextmultiline.h"
@@ -10,11 +10,9 @@
+#define GTK3_CONST
+#endif
-+
#define _g_free0(var) (var = (g_free (var), NULL))
- #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
-@@ -70,7 +76,7 @@ static gboolean ddb_cell_renderer_text_multiline_gtk_c
+@@ -70,7 +75,7 @@ enum {
};
static void ddb_cell_renderer_text_multiline_gtk_cell_renderer_text_editing_done (DdbCellEditableTextView* entry, DdbCellRendererTextMultiline* _self_);
static gboolean ddb_cell_renderer_text_multiline_gtk_cell_renderer_focus_out_event (DdbCellEditableTextView* entry, GdkEvent* event, DdbCellRendererTextMultiline* _self_);
@@ -23,7 +21,7 @@
DdbCellRendererTextMultiline* ddb_cell_renderer_text_multiline_new (void);
DdbCellRendererTextMultiline* ddb_cell_renderer_text_multiline_construct (GType object_type);
static void ddb_cell_renderer_text_multiline_finalize (GObject* obj);
-@@ -409,7 +415,7 @@ ddb_cell_renderer_text_multiline_populate_popup (GtkEn
+@@ -409,7 +414,7 @@ ddb_cell_renderer_text_multiline_populate_popup (GtkEn
G_CALLBACK (ddb_cell_renderer_text_multiline_popup_unmap), data);
}
diff --git a/audio/deadbeef-gui-plugins/pkg-descr b/audio/deadbeef-gui-plugins/pkg-descr
new file mode 100644
index 000000000000..562b27615d48
--- /dev/null
+++ b/audio/deadbeef-gui-plugins/pkg-descr
@@ -0,0 +1,2 @@
+GUI plugins for DeaDBeeF audio player, including main interface,
+shell commands execution, audio converter, and playlist browser.
diff --git a/audio/deadbeef-gui-plugins/pkg-plist b/audio/deadbeef-gui-plugins/pkg-plist
new file mode 100644
index 000000000000..1bda8badd1c9
--- /dev/null
+++ b/audio/deadbeef-gui-plugins/pkg-plist
@@ -0,0 +1,18 @@
+@comment include/deadbeef/gtkui_api.h
+lib/deadbeef/converter.so
+lib/deadbeef/converter_gtk%%GTK_VER%%.so
+lib/deadbeef/convpresets/AAC_(Nero_FAAC).txt
+lib/deadbeef/convpresets/ALAC.txt
+lib/deadbeef/convpresets/FLAC_(compression_level_5).txt
+lib/deadbeef/convpresets/MP3_CBR_320_Kbps_(Lame).txt
+lib/deadbeef/convpresets/MP3_VBR_192Kbps_(Lame).txt
+lib/deadbeef/convpresets/MS_RIFF_WAV.txt
+lib/deadbeef/convpresets/MusePack.txt
+lib/deadbeef/convpresets/Ogg_FLAC.txt
+lib/deadbeef/convpresets/Ogg_Vorbis_(-q_5).txt
+lib/deadbeef/convpresets/Opus.txt
+lib/deadbeef/convpresets/TTA.txt
+lib/deadbeef/convpresets/WavPack.txt
+lib/deadbeef/ddb_gui_GTK%%GTK_VER%%.so
+lib/deadbeef/pltbrowser_gtk%%GTK_VER%%.so
+lib/deadbeef/shellexecui_gtk%%GTK_VER%%.so
diff --git a/audio/deadbeef/Makefile b/audio/deadbeef/Makefile
index d85e6aaf8733..da8c9246fbbe 100644
--- a/audio/deadbeef/Makefile
+++ b/audio/deadbeef/Makefile
@@ -1,6 +1,6 @@
PORTNAME= deadbeef
PORTVERSION= 0.7.2
-PORTREVISION= 33
+PORTREVISION= 34
CATEGORIES= audio
MASTER_SITES= SF/${PORTNAME}/Archive
@@ -15,7 +15,9 @@ GNU_CONFIGURE= yes
USES= compiler:c11 desktop-file-utils gettext gmake gnome iconv \
libtool localbase pkgconfig shebangfix tar:bzip2
USE_LDCONFIG= yes
-CONFIGURE_ARGS= --disable-alsa --disable-nullout --disable-static
+CONFIGURE_ARGS= --disable-alsa --disable-nullout --disable-static \
+ --disable-gtk2 --disable-gtk3 --disable-converter \
+ --disable-pltbrowser --disable-shellexecui
CPPFLAGS+= -I../dumb/dumb-kode54/include -I../../plugins/libmp4ff \
-I../../plugins/gme/game-music-emu-0.6pre \
-I./sidplay-libs/libsidplay/include/sidplay
@@ -26,20 +28,19 @@ USE_GNOME= intltool
SHEBANG_FILES= yasmwrapper.sh
INSTALL_TARGET= install-strip
-OPTIONS_DEFINE= AAC ADPLUG ALAC ART CDDA CONVERTER DCA DSP DUMB FFAP \
- FFMPEG FLAC GME GUI HOTKEYS LASTFM M3U MMS MONO2STEREO \
- MUSEPACK NLS NOTIFY OGG PLTBROWSER PSF PULSEAUDIO SC68 \
+OPTIONS_DEFINE= AAC ADPLUG ALAC ART CDDA DCA DSP DUMB FFAP \
+ FFMPEG FLAC GME HOTKEYS LASTFM M3U MMS MONO2STEREO \
+ MUSEPACK NLS NOTIFY OGG PSF PULSEAUDIO SC68 \
SHELLEXEC SHN SID SNDFILE SUPEREQ TTA VFS VFS_ZIP VTX \
WAVPACK WILDMIDI WMA
-OPTIONS_DEFAULT=AAC ADPLUG ALAC ART CONVERTER DCA DSP DUMB FFAP FLAC GME \
- GTK2 HOSTKEYS HOTKEYS LASTFM M3U MAD MMS MONO2STEREO \
- MPG123 MUSEPACK NOTIFY OGG PLTBROWSER PSF SC68 SHELLEXEC \
+OPTIONS_DEFAULT=AAC ADPLUG ALAC ART DCA DSP DUMB FFAP FLAC GME \
+ HOTKEYS LASTFM M3U MAD MMS MONO2STEREO \
+ MPG123 MUSEPACK NOTIFY OGG PSF SC68 SHELLEXEC \
SHN SID SNDFILE SUPEREQ TTA VFS VFS_ZIP VTX WAVPACK \
WILDMIDI WMA
PULSEAUDIO_DESC= PulseAudio output plugin (unsupported)
-GUI_DESC= Standard GUI plugin
VFS_DESC= HTTP streaming VFS plugin
LASTFM_DESC= Last.fm/Libre.fm scrobbler plugin
ART_DESC= Cover artwork loader plugin
@@ -51,7 +52,6 @@ ADPLUG_DESC= AdPlug audio format (OPL2/OPL3) support
HOTKEYS_DESC= Local and global hotkeys support
GME_DESC= Chiptune music support (based on GME)
DUMB_DESC= D.U.M.B. plugin for MOD, S3M, etc.
-NOTIFY_DESC= OSD notification support in GTKUI plugin
WILDMIDI_DESC= WildMIDI synthesizer plugin
SC68_DESC= sc68 Atari ST and Amiga player
SHN_DESC= Shorten waveform encoder support
@@ -60,14 +60,9 @@ M3U_DESC= M3U and PLS playlist format support
PSF_DESC= AOSDK-based PSF(,QSF,SSF,DSF) plugin
DSP_DESC= High-quality sample rate conversion support
MONO2STEREO_DESC= Mono to stereo converter DSP plugin
-CONVERTER_DESC= Plugin for converting files from/to any formats
VFS_ZIP_DESC= Play files directly from ZIP archives
-PLTBROWSER_DESC= Playlist browser GUI plugin
OPTIONS_SUB= yes
-OPTIONS_RADIO+= GUI
-OPTIONS_RADIO_GUI= GTK2 GTK3
-GUI_IMPLIES= CONVERTER
OPTIONS_GROUP+= MP3
OPTIONS_GROUP_MP3= MAD MPG123
@@ -81,23 +76,6 @@ MPG123_CONFIGURE_OFF= --disable-libmpg123
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CONFIGURE_OFF= --disable-pulse
-GTK2_USE= gnome=gtk20,glib20
-GTK2_CONFIGURE_OFF= --disable-gtk2
-GTK2_CONFIGURE_ON= --enable-gtk2
-GTK2_VARS= GTK_VER=2
-GTK2_IMPLIES= GUI
-
-GTK3_USE= gnome=gtk30
-GTK3_CONFIGURE_OFF= --disable-gtk3
-GTK3_CONFIGURE_ON= --enable-gtk3
-GTK3_VARS= GTK_VER=3
-GTK3_IMPLIES= GUI
-
-PLIST_SUB+= GTK_VER=${GTK_VER}
-
-GUI_CONFIGURE_OFF= --disable-gtk2 --disable-gtk3
-GUI_LIB_DEPENDS= libjansson.so:devel/jansson
-
VFS_LIB_DEPENDS= libcurl.so:ftp/curl
VFS_CONFIGURE_OFF= --disable-vfs-curl
@@ -184,23 +162,15 @@ DSP_CONFIGURE_OFF= --disable-src
MONO2STEREO_CONFIGURE_OFF= --disable-mono2stereo
-CONVERTER_CONFIGURE_OFF= --disable-converter
-
VFS_ZIP_LIB_DEPENDS= libzip.so:archivers/libzip
VFS_ZIP_CONFIGURE_OFF= --disable-vfs-zip
ALAC_CONFIGURE_OFF= --disable-alac
-PLTBROWSER_CONFIGURE_OFF= --disable-pltbrowser
-
WMA_CONFIGURE_OFF= --disable-wma
.include <bsd.port.options.mk>
-.if !${PORT_OPTIONS:MGTK2} && !${PORT_OPTIONS:MGTK3}
-PORT_OPTIONS:= ${PORT_OPTIONS:NGUI}
-.endif
-
.if !${PORT_OPTIONS:MMAD} && !${PORT_OPTIONS:MMPG123}
CONFIGURE_ARGS+= --disable-mp3
PLIST_SUB+= MP3="@comment "
diff --git a/audio/deadbeef/pkg-message b/audio/deadbeef/pkg-message
new file mode 100644
index 000000000000..211a665d6111
--- /dev/null
+++ b/audio/deadbeef/pkg-message
@@ -0,0 +1,9 @@
+[
+{ type: install
+ message: <<EOM
+This package installs core program only, GUI plugin is required for normal
+operation. Please install the `audio/deadbeef-gui-plugins' port or package
+of desired GTK version flavor.
+EOM
+}
+]
diff --git a/audio/deadbeef/pkg-plist b/audio/deadbeef/pkg-plist
index cf5b645723d3..c932f30c47fd 100644
--- a/audio/deadbeef/pkg-plist
+++ b/audio/deadbeef/pkg-plist
@@ -1,7 +1,7 @@
bin/deadbeef
%%ART%%include/deadbeef/artwork.h
include/deadbeef/deadbeef.h
-%%GUI%%include/deadbeef/gtkui_api.h
+include/deadbeef/gtkui_api.h
%%ADPLUG%%lib/deadbeef/adplug.so
%%CDDA%%lib/deadbeef/cdda.so
%%FFAP%%lib/deadbeef/ffap.so
@@ -23,7 +23,6 @@ lib/deadbeef/oss.so
%%MMS%%lib/deadbeef/mms.so
%%SHN%%lib/deadbeef/ddb_shn.so
%%SHELLEXEC%%lib/deadbeef/shellexec.so
-%%SHELLEXEC%%lib/deadbeef/shellexecui_gtk%%GTK_VER%%.so
%%LASTFM%%lib/deadbeef/lastfm.so
%%ART%%lib/deadbeef/artwork.so
%%SID%%lib/deadbeef/sid.so
@@ -44,28 +43,12 @@ share/applications/deadbeef.desktop
%%DOCSDIR%%/translators.txt
%%DOCSDIR%%/help.ru.txt
%%DOCSDIR%%/help.pt_BR.txt
-%%GUI%%lib/deadbeef/ddb_gui_GTK%%GTK_VER%%.so
%%DSP%%lib/deadbeef/dsp_libsrc.so
%%MONO2STEREO%%lib/deadbeef/ddb_mono2stereo.so
%%M3U%%lib/deadbeef/m3u.so
%%PSF%%lib/deadbeef/ddb_ao.so
-%%CONVERTER%%lib/deadbeef/converter.so
-%%CONVERTER%%lib/deadbeef/converter_gtk%%GTK_VER%%.so
-%%CONVERTER%%lib/deadbeef/convpresets/AAC_(Nero_FAAC).txt
-%%CONVERTER%%lib/deadbeef/convpresets/ALAC.txt
-%%CONVERTER%%lib/deadbeef/convpresets/FLAC_(compression_level_5).txt
-%%CONVERTER%%lib/deadbeef/convpresets/MP3_CBR_320_Kbps_(Lame).txt
-%%CONVERTER%%lib/deadbeef/convpresets/MP3_VBR_192Kbps_(Lame).txt
-%%CONVERTER%%lib/deadbeef/convpresets/MS_RIFF_WAV.txt
-%%CONVERTER%%lib/deadbeef/convpresets/MusePack.txt
-%%CONVERTER%%lib/deadbeef/convpresets/Ogg_FLAC.txt
-%%CONVERTER%%lib/deadbeef/convpresets/Ogg_Vorbis_(-q_5).txt
-%%CONVERTER%%lib/deadbeef/convpresets/Opus.txt
-%%CONVERTER%%lib/deadbeef/convpresets/TTA.txt
-%%CONVERTER%%lib/deadbeef/convpresets/WavPack.txt
%%VFS_ZIP%%lib/deadbeef/vfs_zip.so
%%ALAC%%lib/deadbeef/alac.so
-%%PLTBROWSER%%lib/deadbeef/pltbrowser_gtk%%GTK_VER%%.so
%%MP3%%lib/deadbeef/mp3.so
%%SC68%%lib/deadbeef/in_sc68.so
%%WMA%%lib/deadbeef/wma.so