audio/audacious: Add FLAVOR for QT5 GUI

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

audio/audacious: Add FLAVOR for QT5 GUI

Edd Barrett-3
Hi,

This diff is a team effort between bket@ and myself to add a QT5 FLAVOR
to audacious.

I've been using it the last few days, and it seems to work fine.

Looks like this:
https://theunixzoo.co.uk/random/audacious1.png

Note that sadly we cannot MULTI_PACKAGE it [0], hence FLAVORs.

Comments / OK?

[0] https://redmine.audacious-media-player.org/issues/1071


Index: meta/audacious/Makefile
===================================================================
RCS file: /cvs/ports/meta/audacious/Makefile,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile
--- meta/audacious/Makefile 3 Feb 2021 21:44:37 -0000 1.6
+++ meta/audacious/Makefile 15 Feb 2021 16:43:00 -0000
@@ -7,7 +7,15 @@ PKGNAME = audacious-${VERSION}
 
 MAINTAINER = Bjorn Ketelaars <[hidden email]>
 
-RUN_DEPENDS= audio/audacious/player>=${VERSION} \
- audio/audacious/plugins>=${VERSION}
+FLAVORS = qt5
+FLAVOR ?=
+
+.if ${FLAVOR:Mqt5}
+RUN_DEPENDS = audio/audacious/player,qt5>=${VERSION} \
+ audio/audacious/plugins,qt5>=${VERSION}
+.else
+RUN_DEPENDS = audacious-player->=${VERSION}-!qt5:audio/audacious/player \
+ audacious-plugins->=${VERSION}-!qt5:audio/audacious/plugins
+.endif
 
 .include <bsd.port.mk>
Index: audio/audacious/Makefile
===================================================================
RCS file: /cvs/ports/audio/audacious/Makefile,v
retrieving revision 1.64
diff -u -p -r1.64 Makefile
--- audio/audacious/Makefile 15 Apr 2020 15:50:15 -0000 1.64
+++ audio/audacious/Makefile 15 Feb 2021 16:27:02 -0000
@@ -2,6 +2,8 @@
 
      SUBDIR =
      SUBDIR += player
+     SUBDIR += player,qt5
      SUBDIR += plugins
+     SUBDIR += plugins,qt5
 
 .include <bsd.port.subdir.mk>
Index: audio/audacious/Makefile.inc
===================================================================
RCS file: /cvs/ports/audio/audacious/Makefile.inc,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile.inc
--- audio/audacious/Makefile.inc 3 Feb 2021 21:44:37 -0000 1.6
+++ audio/audacious/Makefile.inc 15 Feb 2021 16:27:02 -0000
@@ -17,12 +17,24 @@ COMPILER = base-clang ports-gcc
 FIX_EXTRACT_PERMISSIONS = Yes
 
 BUILD_DEPENDS += devel/gettext,-tools
+
+# Although at fist glance it may appear that we could MULTI_PACKAGE audacious,
+# actually we can't. Some core libraries will link qt5 if we build with both
+# toolkits. So we use FLAVORS instead.
+# https://redmine.audacious-media-player.org/issues/1071
+
+.if ${FLAVOR:Mqt5}
+MODULES += x11/qt5
+CONFIGURE_ARGS += --disable-gtk \
+ --enable-qt
+.else
 LIB_DEPENDS += x11/gtk+2
+CONFIGURE_ARGS += --disable-qt \
+ --enable-gtk
+.endif
 
 USE_GMAKE = Yes
 
 CONFIGURE_STYLE = gnu
-CONFIGURE_ARGS += --disable-qt \
- --enable-gtk
 
 NO_TEST = Yes
Index: audio/audacious/player/Makefile
===================================================================
RCS file: /cvs/ports/audio/audacious/player/Makefile,v
retrieving revision 1.4
diff -u -p -r1.4 Makefile
--- audio/audacious/player/Makefile 3 Feb 2021 21:44:37 -0000 1.4
+++ audio/audacious/player/Makefile 15 Feb 2021 16:27:02 -0000
@@ -5,24 +5,38 @@ COMMENT = graphical audio player which
 DISTNAME = audacious-${VERSION}
 PKGNAME = audacious-player-${VERSION}
 
+FLAVORS = qt5
+FLAVOR ?=
+
 SHARED_LIBS += audcore 5.2 # 5.3
 SHARED_LIBS += audgui 4.1 # 5.1
 SHARED_LIBS += audtag 3.0 # 3.0
+SHARED_LIBS += audqt 0.0 # 2.3
 
 # BSD
 PERMIT_PACKAGE = Yes
 
-WANTLIB += ${COMPILER_LIBCXX} X11 Xcomposite Xcursor Xdamage Xext
-WANTLIB += Xfixes Xi Xinerama Xrandr Xrender atk-1.0 c cairo fontconfig
-WANTLIB += freetype gdk-x11-2.0 gdk_pixbuf-2.0 gio-2.0 glib-2.0
-WANTLIB += gmodule-2.0 gobject-2.0 gtk-x11-2.0 harfbuzz iconv
-WANTLIB += intl m pango-1.0 pangocairo-1.0 pangoft2-1.0 z
+WANTLIB += ${COMPILER_LIBCXX} c gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0
+WANTLIB += iconv intl m
+
+.if ${FLAVOR:Mqt5}
+WANTLIB += Qt5Core Qt5Gui Qt5Widgets
+.else
+WANTLIB += X11 Xcomposite Xcursor Xdamage Xext Xfixes Xi Xinerama
+WANTLIB += Xrandr Xrender atk-1.0 cairo fontconfig freetype gdk-x11-2.0
+WANTLIB += gdk_pixbuf-2.0 gtk-x11-2.0 harfbuzz pango-1.0 pangocairo-1.0
+WANTLIB += pangoft2-1.0 z
+.endif
+
+RUN_DEPENDS = devel/desktop-file-utils
 
-RUN_DEPENDS = devel/desktop-file-utils \
- x11/gtk+3,-guic
+.if !${FLAVOR:Mqt5}
+RUN_DEPENDS += x11/gtk+3,-guic
+.endif
 
 MAKE_ENV = LIBaudcore_VERSION=${LIBaudcore_VERSION} \
  LIBaudgui_VERSION=${LIBaudgui_VERSION} \
- LIBaudtag_VERSION=${LIBaudtag_VERSION}
+ LIBaudtag_VERSION=${LIBaudtag_VERSION} \
+ LIBaudqt_VERSION=${LIBaudqt_VERSION}
 
 .include <bsd.port.mk>
Index: audio/audacious/player/patches/patch-src_libaudqt_Makefile
===================================================================
RCS file: audio/audacious/player/patches/patch-src_libaudqt_Makefile
diff -N audio/audacious/player/patches/patch-src_libaudqt_Makefile
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/audacious/player/patches/patch-src_libaudqt_Makefile 15 Feb 2021 16:27:02 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+
+Index: src/libaudqt/Makefile
+--- src/libaudqt/Makefile.orig
++++ src/libaudqt/Makefile
+@@ -1,4 +1,5 @@
+-SHARED_LIB = ${LIB_PREFIX}audqt${LIB_SUFFIX}
++SHARED_LIB = ${LIB_PREFIX}audqt.so.${LIBaudqt_VERSION}
++
+ LIB_MAJOR = 2
+ LIB_MINOR = 3
+
Index: audio/audacious/player/pkg/PFRAG.no-qt5
===================================================================
RCS file: audio/audacious/player/pkg/PFRAG.no-qt5
diff -N audio/audacious/player/pkg/PFRAG.no-qt5
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/audacious/player/pkg/PFRAG.no-qt5 15 Feb 2021 16:27:02 -0000
@@ -0,0 +1,7 @@
+@comment $OpenBSD: PLIST,v 1.2 2021/02/03 21:44:37 edd Exp $
+include/libaudgui/
+include/libaudgui/libaudgui-gtk.h
+include/libaudgui/libaudgui.h
+include/libaudgui/list.h
+include/libaudgui/menu.h
+@lib lib/libaudgui.so.${LIBaudgui_VERSION}
Index: audio/audacious/player/pkg/PFRAG.qt5
===================================================================
RCS file: audio/audacious/player/pkg/PFRAG.qt5
diff -N audio/audacious/player/pkg/PFRAG.qt5
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/audacious/player/pkg/PFRAG.qt5 15 Feb 2021 16:27:02 -0000
@@ -0,0 +1,11 @@
+@comment $OpenBSD: PFRAG.qt5,v$
+include/libaudqt/
+include/libaudqt/colorbutton.h
+include/libaudqt/dock.h
+include/libaudqt/export.h
+include/libaudqt/iface.h
+include/libaudqt/info-widget.h
+include/libaudqt/libaudqt.h
+include/libaudqt/menu.h
+include/libaudqt/treeview.h
+@lib lib/libaudqt.so.${LIBaudqt_VERSION}
Index: audio/audacious/player/pkg/PLIST
===================================================================
RCS file: /cvs/ports/audio/audacious/player/pkg/PLIST,v
retrieving revision 1.2
diff -u -p -r1.2 PLIST
--- audio/audacious/player/pkg/PLIST 3 Feb 2021 21:44:37 -0000 1.2
+++ audio/audacious/player/pkg/PLIST 15 Feb 2021 16:27:02 -0000
@@ -1,5 +1,7 @@
 @comment $OpenBSD: PLIST,v 1.2 2021/02/03 21:44:37 edd Exp $
 @conflict audacious-<4.0
+%%qt5%%
+!%%qt5%%
 @bin bin/audacious
 @bin bin/audtool
 include/audacious/
@@ -34,13 +36,7 @@ include/libaudcore/tuple.h
 include/libaudcore/vfs.h
 include/libaudcore/vfs_async.h
 include/libaudcore/visualizer.h
-include/libaudgui/
-include/libaudgui/libaudgui-gtk.h
-include/libaudgui/libaudgui.h
-include/libaudgui/list.h
-include/libaudgui/menu.h
 @lib lib/libaudcore.so.${LIBaudcore_VERSION}
-@lib lib/libaudgui.so.${LIBaudgui_VERSION}
 @lib lib/libaudtag.so.${LIBaudtag_VERSION}
 lib/pkgconfig/audacious.pc
 @man man/man1/audacious.1
Index: audio/audacious/plugins/Makefile
===================================================================
RCS file: /cvs/ports/audio/audacious/plugins/Makefile,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile
--- audio/audacious/plugins/Makefile 3 Feb 2021 21:44:37 -0000 1.6
+++ audio/audacious/plugins/Makefile 15 Feb 2021 16:27:02 -0000
@@ -4,23 +4,29 @@ COMMENT = input and output plugins for
 
 DISTNAME = audacious-plugins-${VERSION}
 
+FLAVORS = qt5
+FLAVOR ?=
+
 # BSD / GPL
 PERMIT_PACKAGE = Yes
 
-WANTLIB += ${COMPILER_LIBCXX} FLAC GL X11 Xcomposite Xcursor Xdamage
-WANTLIB += Xext Xfixes Xi Xinerama Xrandr Xrender atk-1.0 audcore audgui
-WANTLIB += audtag avcodec avformat avutil cairo cddb cdio cdio_cdda
-WANTLIB += cue curl faad fontconfig freetype gdk-x11-2.0 gdk_pixbuf-2.0
-WANTLIB += gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0 gtk-x11-2.0
-WANTLIB += harfbuzz iconv intl m mms modplug mp3lame mpg123 neon
-WANTLIB += notify ogg pango-1.0 pangocairo-1.0 pangoft2-1.0 samplerate
-WANTLIB += sndfile sndio soxr vorbis vorbisenc vorbisfile wavpack
-WANTLIB += xml2 z
+WANTLIB += ${COMPILER_LIBCXX} FLAC audcore audtag avcodec avformat avutil
+WANTLIB += cddb cdio cdio_cdda cue curl faad gdk_pixbuf-2.0 gio-2.0 glib-2.0
+WANTLIB += gobject-2.0 iconv intl m mms modplug mp3lame mpg123 neon notify
+WANTLIB += ogg samplerate sndfile sndio soxr vorbis vorbisenc vorbisfile
+WANTLIB += wavpack xml2 z
+
+.if ${FLAVOR:Mqt5}
+WANTLIB += GL Qt5Core Qt5Gui Qt5OpenGL Qt5Widgets audqt
+.else
+WANTLIB += GL X11 Xcomposite Xcursor Xdamage Xext Xfixes Xi Xinerama Xrandr
+WANTLIB += Xrender atk-1.0 audgui cairo fontconfig freetype gdk-x11-2.0
+WANTLIB += gmodule-2.0 gtk-x11-2.0 harfbuzz pango-1.0 pangocairo-1.0
+WANTLIB += pangoft2-1.0
+.endif
 
-BUILD_DEPENDS = audio/audacious/player>=${VERSION}
-RUN_DEPENDS = audio/audacious/player>=${VERSION}
 # needed for the gio plugin
-RUN_DEPENDS += x11/gnome/gvfs
+RUN_DEPENDS = x11/gnome/gvfs
 LIB_DEPENDS = audio/faad>=2.7 \
  audio/flac \
  audio/lame \
@@ -41,6 +47,12 @@ LIB_DEPENDS = audio/faad>=2.7 \
  net/neon \
  textproc/libxml
 
+.if ${FLAVOR:Mqt5}
+LIB_DEPENDS += audacious-player->=${VERSION}-qt5:audio/audacious/player,qt5
+.else
+LIB_DEPENDS += audacious-player->=${VERSION}-!qt5:audio/audacious/player
+.endif
+
 CONFIGURE_ARGS = --disable-alsa \
  --disable-amidiplug \
  --disable-bs2b \
@@ -48,9 +60,10 @@ CONFIGURE_ARGS = --disable-alsa \
  --disable-lirc \
  --disable-oss4 \
  --disable-pulse \
+ --disable-qtaudio \
  --disable-sdlout \
  --disable-sid
-CONFIGURE_ENV = CPPFLAGS="-I${LOCALBASE}/include" \
+CONFIGURE_ENV = CPPFLAGS="-I${X11BASE}/include -I${LOCALBASE}/include" \
  LDFLAGS="-L${X11BASE}/lib -L${LOCALBASE}/lib"
 
 .include <bsd.port.mk>
Index: audio/audacious/plugins/pkg/PFRAG.no-qt5
===================================================================
RCS file: audio/audacious/plugins/pkg/PFRAG.no-qt5
diff -N audio/audacious/plugins/pkg/PFRAG.no-qt5
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/audacious/plugins/pkg/PFRAG.no-qt5 15 Feb 2021 16:27:02 -0000
@@ -0,0 +1,14 @@
+@comment $OpenBSD: PLIST,v 1.2 2021/02/03 21:44:38 edd Exp $
+@so lib/audacious/Effect/ladspa.so
+@so lib/audacious/General/alarm.so
+@so lib/audacious/General/albumart.so
+@so lib/audacious/General/aosd.so
+@so lib/audacious/General/gtkui.so
+@so lib/audacious/General/hotkey.so
+@so lib/audacious/General/playlist-manager.so
+@so lib/audacious/General/search-tool.so
+@so lib/audacious/General/skins.so
+@so lib/audacious/General/statusicon.so
+@so lib/audacious/Visualization/blur_scope.so
+@so lib/audacious/Visualization/cairo-spectrum.so
+@so lib/audacious/Visualization/gl-spectrum.so
Index: audio/audacious/plugins/pkg/PFRAG.qt5
===================================================================
RCS file: audio/audacious/plugins/pkg/PFRAG.qt5
diff -N audio/audacious/plugins/pkg/PFRAG.qt5
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/audacious/plugins/pkg/PFRAG.qt5 15 Feb 2021 16:27:02 -0000
@@ -0,0 +1,13 @@
+@comment $OpenBSD: PFRAG.qt5,v$
+@so lib/audacious/General/albumart-qt.so
+@so lib/audacious/General/lyricwiki-qt.so
+@so lib/audacious/General/playlist-manager-qt.so
+@so lib/audacious/General/qtui.so
+@so lib/audacious/General/search-tool-qt.so
+@so lib/audacious/General/skins-qt.so
+@so lib/audacious/General/song-info-qt.so
+@so lib/audacious/General/statusicon-qt.so
+@so lib/audacious/Visualization/blur_scope-qt.so
+@so lib/audacious/Visualization/gl-spectrum-qt.so
+@so lib/audacious/Visualization/qt-spectrum.so
+@so lib/audacious/Visualization/vumeter-qt.so
Index: audio/audacious/plugins/pkg/PLIST
===================================================================
RCS file: /cvs/ports/audio/audacious/plugins/pkg/PLIST,v
retrieving revision 1.2
diff -u -p -r1.2 PLIST
--- audio/audacious/plugins/pkg/PLIST 3 Feb 2021 21:44:38 -0000 1.2
+++ audio/audacious/plugins/pkg/PLIST 15 Feb 2021 16:27:02 -0000
@@ -1,6 +1,8 @@
 @comment $OpenBSD: PLIST,v 1.2 2021/02/03 21:44:38 edd Exp $
 @pkgpath audio/audacious-plugins,-main
 @pkgpath audio/audacious-plugins
+%%qt5%%
+!%%qt5%%
 lib/audacious/
 lib/audacious/Container/
 @so lib/audacious/Container/asx.so
@@ -15,7 +17,6 @@ lib/audacious/Effect/
 @so lib/audacious/Effect/crossfade.so
 @so lib/audacious/Effect/crystalizer.so
 @so lib/audacious/Effect/echo.so
-@so lib/audacious/Effect/ladspa.so
 @so lib/audacious/Effect/mixer.so
 @so lib/audacious/Effect/resample.so
 @so lib/audacious/Effect/silence-removal.so
@@ -24,21 +25,12 @@ lib/audacious/Effect/
 @so lib/audacious/Effect/stereo.so
 @so lib/audacious/Effect/voice_removal.so
 lib/audacious/General/
-@so lib/audacious/General/alarm.so
-@so lib/audacious/General/albumart.so
-@so lib/audacious/General/aosd.so
 @so lib/audacious/General/cd-menu-items.so
 @so lib/audacious/General/delete-files.so
-@so lib/audacious/General/gtkui.so
-@so lib/audacious/General/hotkey.so
 @so lib/audacious/General/mpris2.so
 @so lib/audacious/General/notify.so
-@so lib/audacious/General/playlist-manager.so
 @so lib/audacious/General/scrobbler.so
-@so lib/audacious/General/search-tool.so
-@so lib/audacious/General/skins.so
 @so lib/audacious/General/song_change.so
-@so lib/audacious/General/statusicon.so
 lib/audacious/Input/
 @so lib/audacious/Input/aac-raw.so
 @so lib/audacious/Input/cdaudio-ng.so
@@ -63,9 +55,6 @@ lib/audacious/Transport/
 @so lib/audacious/Transport/mms.so
 @so lib/audacious/Transport/neon.so
 lib/audacious/Visualization/
-@so lib/audacious/Visualization/blur_scope.so
-@so lib/audacious/Visualization/cairo-spectrum.so
-@so lib/audacious/Visualization/gl-spectrum.so
 share/audacious/Skins/
 share/audacious/Skins/Classic/
 share/audacious/Skins/Classic/balance.png

--
Best Regards
Edd Barrett

http://www.theunixzoo.co.uk