Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Jul 2021 17:38:04 GMT
From:      Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 1819836d4cb2 - main - audio/mixxx: Upadte to 2.3.0
Message-ID:  <202107171738.16HHc4MP088955@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by acm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1819836d4cb2bb8cef3680fb1059eb6ae9e491fb

commit 1819836d4cb2bb8cef3680fb1059eb6ae9e491fb
Author:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
AuthorDate: 2021-07-17 17:33:18 +0000
Commit:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
CommitDate: 2021-07-17 17:37:47 +0000

    audio/mixxx: Upadte to 2.3.0
    
    ChangeLog at:   https://github.com/mixxxdj/mixxx/blob/2.3.0/CHANGELOG.md
    PR:             249348
    Reported by:    fbsd-bugzilla at schlachter.ca
---
 audio/mixxx/Makefile                               |  102 +-
 audio/mixxx/distinfo                               |    6 +-
 audio/mixxx/files/patch-build_depends.py           |  159 --
 audio/mixxx/files/patch-build_features.py          |  102 -
 audio/mixxx/files/patch-build_mixxx.py             |   27 -
 audio/mixxx/files/patch-build_qt5.py               |   11 -
 .../files/patch-cmake_modules_FindLibUSB.cmake     |   14 +
 .../files/patch-lib_hidapi-0.8.0-rc1_libusb_hid.c  |   11 -
 .../mixxx/files/patch-lib_kaitai_kaitaistream.cpp  |   14 +
 ...b_rigtorp_SPSCQueue_include_rigtorp_SPSCQueue.h |   11 +
 .../patch-plugins_soundsourcem4a_soundsourcem4a.h  |   11 -
 audio/mixxx/files/patch-src-encoder_encodermp3.cpp |   11 -
 audio/mixxx/files/patch-src-util_screensaver.cpp   |   27 -
 .../patch-src_controllers_controllermanager.cpp    |   12 -
 ...src_controllers_controllerpresetfilehandler.cpp |   14 -
 audio/mixxx/files/patch-src_util_versionstore.cpp  |   11 +
 audio/mixxx/files/patch-vamp-plugins_SConscript    |   11 -
 audio/mixxx/pkg-plist                              | 2654 +++++++++++++++++++-
 18 files changed, 2745 insertions(+), 463 deletions(-)

diff --git a/audio/mixxx/Makefile b/audio/mixxx/Makefile
index 1006e8cdd791..051b939d7c21 100644
--- a/audio/mixxx/Makefile
+++ b/audio/mixxx/Makefile
@@ -1,9 +1,7 @@
 # Created by: Jean-Yves Lefort <jylefort@brutele.be>
 
 PORTNAME=	mixxx
-DISTVERSIONPREFIX=	release-
-DISTVERSION=	2.2.4
-PORTREVISION=	5
+DISTVERSION=	2.3.0
 CATEGORIES=	audio
 
 MAINTAINER=	acm@FreeBSD.org
@@ -25,72 +23,72 @@ LIB_DEPENDS=	libchromaprint.so:audio/chromaprint \
 		libebur128.so:audio/libebur128 \
 		librubberband.so:audio/rubberband \
 		libsndfile.so:audio/libsndfile \
-		libvamp-sdk.so:audio/vamp-plugin-sdk \
 		libogg.so:audio/libogg \
 		libvorbisfile.so:audio/libvorbis \
 		libtag.so:audio/taglib \
 		libprotobuf.so:devel/protobuf \
-		liblilv-0.so:audio/lilv
+		liblilv-0.so:audio/lilv \
+		libportmidi.so:audio/portmidi \
+		libupower-glib.so:sysutils/upower \
+		libkeyfinder.so:audio/libkeyfinder \
+		libmp3lame.so:audio/lame
 
-USES=		compiler:c++11-lang gl iconv qt:5 pkgconfig scons xorg
-USE_XORG=	x11
+USES=		cmake compiler:c++11-lang gl iconv ninja qt:5 pkgconfig sqlite \
+		ssl xorg
+USE_XORG=	ice sm x11 xext
 USE_GL=		gl glu
 USE_GITHUB=	yes
 GH_ACCOUNT=	mixxxdj
-USE_QT=		buildtools concurrent core dbus gui network opengl script scripttools \
-		sql sql-sqlite3 svg testlib xml xmlpatterns linguisttools_build \
-		qmake_build widgets
+USE_QT=		buildtools concurrent core dbus gui linguisttools_build network \
+		opengl qmake_build  script scripttools sql sql-sqlite3 svg \
+		testlib x11extras xml xmlpatterns widgets
 
-CONFLICTS=	mixxx20* mixxx21*
+CONFLICTS=	mixxx22*
 
-MAKE_ARGS=	qtdir="${PREFIX}" install_root="${PREFIX}" \
-		build=release optimize=off ${GUI} battery=0 vamp=1 modplug=1 mad=1
-LATE_INSTALL_ARGS=	--install-sandbox=${STAGEDIR}
+CMAKE_ARGS+=	-DINSTALL_USER_UDEV_RULES:BOOL=OFF \
+		-DOPTIMIZE:BOOL=OFF \
+		-DBATTERY:BOOL=OFF \
+		-DMODPLUG:BOOL=ON \
+		-DMAD:BOOL=ON
 
-GUI=		qt5=1
-
-PORTDATA=	*
 PORTDOCS=	*
 
-OPTIONS_DEFINE=		DOCS FAAD FFMPEG GPERFTOOLS HID LAME OPUS SHOUTCAST WAVPACK
-OPTIONS_DEFAULT=	FAAD FFMPEG HID SHOUTCAST OPUS WAVPACK
+OPTIONS_DEFINE=		BROADCAST DOCS FAAD FFMPEG GPERFTOOLS HID OPUS \
+			QTKEYCHAIN WAVPACK
+OPTIONS_DEFAULT=	BROADCAST FAAD FFMPEG HID OPUS QTKEYCHAIN WAVPACK
 OPTIONS_SUB=		yes
 
+BROADCAST_DESC=		Live Broadcasting (Shoutcast) support
+#BROADCAST_LIB_DEPENDS=	libshout-idjc.so:audio/shout-idjc
+BROADCAST_CMAKE_ARGS=	-DBROADCAST:BOOL=ON
+BROADCAST_CMAKE_ARGS_OFF=-DBROADCAST:BOOL=OFF
 FAAD_LIB_DEPENDS=	libfaad.so:audio/faad \
 			libmp4v2.so:multimedia/mp4v2
-FAAD_MAKE_ARGS=		faad=1
-FAAD_MAKE_ARGS_OFF=	faad=0
+FAAD_CMAKE_ARGS=	-DFAAD:BOOL=ON
+FAAD_CMAKE_ARGS_OFF=	-DFAAD:BOOL=OFF
 FFMPEG_LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg
-FFMPEG_MAKE_ARGS=	ffmpeg=1
-FFMPEG_MAKE_ARGS_OFF=	ffmpeg=0
+FFMPEG_CMAKE_ARGS=	-DFFMPEG:BOOL=ON
+FFMPEG_CMAKE_ARGS_OFF=	-DFFMPEG:BOOL=OFF
 GPERFTOOLS_LIB_DEPENDS=	libtcmalloc.so:devel/google-perftools
-GPERFTOOLS_MAKE_ARGS=	perftools=1
-GPERFTOOLS_MAKE_ARGS_OFF=	perftools=0
+GPERFTOOLS_CMAKE_ARGS=	-DPERFTOOLS:BOOL=ON
+GPERFTOOLS_CMAKE_ARGS_OFF=	-DPERFTOOLS:BOOL=OFF
 HID_DESC=			USB HID controllers support
-HID_MAKE_ARGS=		hid=1
-HID_MAKE_ARGS_OFF=	hid=0
-LAME_RUN_DEPENDS=	lame:audio/lame
+HID_CMAKE_ARGS=		-DHID:BOOL=ON
+HID_CMAKE_ARGS_OFF=	-DHID:BOOL=OFF
 OPUS_LIB_DEPENDS=	libopus.so:audio/opus \
-		libopusfile.so:audio/opusfile
-OPUS_MAKE_ARGS=		opus=1
-OPUS_MAKE_ARGS_OFF=	opus=0
-SHOUTCAST_LIB_DEPENDS=	libshout.so:audio/libshout
-SHOUTCAST_MAKE_ARGS=	shoutcast=1
-SHOUTCAST_MAKE_ARGS_OFF=	shoutcast=0
+			libopusfile.so:audio/opusfile
+OPUS_CMAKE_ARGS=	-DOPUS:BOOL=ON
+OPUS_CMAKE_ARGS_OFF=	-DOPUS:BOOL=OFF
+QTKEYCHAIN_DESC=	Secure credentials storage for Live Broadcasting profiles
+QTKEYCHAIN_LIB_DEPENDS=	libqt5keychain.so:security/qtkeychain
+QTKEYCHAIN_CMAKE_ARGS=	-DQTKEYCHAIN:BOOL:ON
+QTKEYCHAIN_CMAKE_ARGS_OFF=-DQTKEYCHAIN:BOOL:OFF
 WAVPACK_LIB_DEPENDS=	libwavpack.so:audio/wavpack
-WAVPACK_MAKE_ARGS=	wv=1
-WAVPACK_MAKE_ARGS_OFF=	wv=0
+WAVPACK_CMAKE_ARGS=	-DWAVPACK:BOOL=ON
+WAVPACK_CMAKE_ARGS_OFF=	-DWAVPACK:BOOL=OFF
 
 post-patch:
-	@${REINPLACE_CMD} -e "s|%%LOCALBASE%%|${LOCALBASE}|g ; \
-		 s|%%PREFIX%%|${PREFIX}|g" \
-		${WRKSRC}/build/depends.py
-	@${REINPLACE_CMD} -e "s|bzr |true |g" \
-		${WRKSRC}/build/util.py
-	@${REINPLACE_CMD} -e "/('install', docs)/d" \
-		${WRKSRC}/src/SConscript
-	@${REINPLACE_CMD} -e "s|^Exec=.*|Exec=mixxx| ; \
-		 s|^Icon=.*|Icon=${PREFIX}/share/pixmaps/mixxx_icon.svg|" \
+	@${REINPLACE_CMD} -e "s|^Exec=.*|Exec=mixxx|" \
 		${WRKSRC}/res/linux/mixxx.desktop
 	@${REINPLACE_CMD} -e "s,(Q_OS_LINUX),(Q_OS_LINUX) || defined(Q_OS_FREEBSD),g" \
 		${WRKSRC}/src/util/screensaver.h
@@ -98,18 +96,4 @@ post-patch:
 	@${ECHO_CMD} >> ${WRKSRC}/src/controllers/${i}
 .endfor
 
-post-install:
-	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/mixxx
-	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/mixxx/plugins/*/*.so
-	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/mixxx/plugins/soundsource
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-.for i in Mixxx-Manual.pdf README README.md
-	(cd ${WRKSRC} && ${INSTALL_DATA} ${i} \
-		${STAGEDIR}${DOCSDIR})
-.endfor
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	cd ${WRKSRC} && ${INSTALL_DATA} Mixxx-Manual.pdf \
-		${STAGEDIR}${DOCSDIR}
-	@${FIND} ${STAGEDIR}${PREFIX}/lib/mixxx/plugins/soundsource -type d -empty -delete
-
 .include <bsd.port.mk>
diff --git a/audio/mixxx/distinfo b/audio/mixxx/distinfo
index 749dc9dd281a..93d37be19745 100644
--- a/audio/mixxx/distinfo
+++ b/audio/mixxx/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1593383731
-SHA256 (mixxxdj-mixxx-release-2.2.4_GH0.tar.gz) = 9372b43d5ec882845b4fe2350ef50dabb3f1e0cc029f182b0ed8aa4f4f3b2afa
-SIZE (mixxxdj-mixxx-release-2.2.4_GH0.tar.gz) = 35480450
+TIMESTAMP = 1625856636
+SHA256 (mixxxdj-mixxx-2.3.0_GH0.tar.gz) = ea0dad33bafa9f7a3523f19efa7c3163070fc8b946e93159907a2efb6037babe
+SIZE (mixxxdj-mixxx-2.3.0_GH0.tar.gz) = 39736601
diff --git a/audio/mixxx/files/patch-build_depends.py b/audio/mixxx/files/patch-build_depends.py
deleted file mode 100644
index 4d0da8778a3d..000000000000
--- a/audio/mixxx/files/patch-build_depends.py
+++ /dev/null
@@ -1,159 +0,0 @@
---- build/depends.py	2018-12-24 01:37:23.000000000 -0500
-+++ build/depends.py	2018-12-26 22:17:54.336049000 -0500
-@@ -12,7 +12,7 @@
-         if not conf.CheckLib('portaudio'):
-             raise Exception(
-                 'Did not find libportaudio.a, portaudio.lib, or the PortAudio-v19 development header files.')
--        elif build.platform_is_linux:
-+        elif build.platform_is_linux or build.platform_is_bsd:
-             build.env.ParseConfig('pkg-config portaudio-2.0 --silence-errors --cflags --libs')
- 
-         # Turn on PortAudio support in Mixxx
-@@ -74,7 +74,8 @@
- 
-         if (not conf.CheckLib('GLU') and
-                 not conf.CheckLib('glu32') and
--                not conf.CheckCHeader('OpenGL/glu.h')):
-+                not conf.CheckCHeader('OpenGL/glu.h') and
-+                not conf.CheckCHeader('GL/glu.h')):
-             raise Exception('Did not find GLU development files')
- 
- 
-@@ -106,7 +107,7 @@
- class UPower(Dependence):
-     """UPower is used to get battery measurements on Linux."""
-     def configure(self, build, conf):
--        if not build.platform_is_linux:
-+        if not build.platform_is_linux or not build.platform_is_bsd:
-             return
-         build.env.ParseConfig(
-                 'pkg-config upower-glib --silence-errors --cflags --libs')
-@@ -185,15 +186,17 @@
- 
- class Qt(Dependence):
-     DEFAULT_QT4DIRS = {'linux': '/usr/share/qt4',
--                       'bsd': '/usr/local/lib/qt4',
-+                       'bsd': '%%LOCALBASE%%/share/qt4',
-                        'osx': '/Library/Frameworks',
-                        'windows': 'C:\\qt\\4.6.0'}
- 
-     DEFAULT_QT5DIRS64 = {'linux': '/usr/lib/x86_64-linux-gnu/qt5',
-+			 'bsd': '%%LOCALBASE%%/lib/qt5',
-                          'osx': '/Library/Frameworks',
-                          'windows': 'C:\\qt\\5.11.1'}
- 
-     DEFAULT_QT5DIRS32 = {'linux': '/usr/lib/i386-linux-gnu/qt5',
-+			 'bsd': '%%LOCALBASE%%/lib/qt5',
-                          'osx': '/Library/Frameworks',
-                          'windows': 'C:\\qt\\5.11.1'}
- 
-@@ -324,9 +327,17 @@
-                 build.env.Append(CCFLAGS='-fPIC')
- 
-         elif build.platform_is_bsd:
--            build.env.Append(LIBS=qt_modules)
--            include_paths = ['$QTDIR/include/%s' % module
--                             for module in qt_modules]
-+            qt_modules.extend(['QtDBus'])
-+            if qt5:
-+               qt5_modules = [w.replace('Qt', 'Qt5') for w in qt_modules]
-+               build.env.Append(LIBS = qt5_modules)
-+               build.env.Append(CCFLAGS='-fPIC')
-+               include_paths = ['%%LOCALBASE%%/include/qt5/%s' % module
-+                                for module in qt_modules]
-+            else:
-+               build.env.Append(LIBS = qt_modules)
-+               include_paths = ['%%LOCALBASE%%/include/qt4/%s' % module
-+                                for module in qt_modules]
-             build.env.Append(CPPPATH=include_paths)
-         elif build.platform_is_osx:
-             qtdir = build.env['QTDIR']
-@@ -492,7 +503,7 @@
-         if not build.platform_is_windows and not (using_104_sdk or compiling_on_104):
-             qtdir = build.env['QTDIR']
-             framework_path = Qt.find_framework_libdir(qtdir, qt5)
--            if os.path.isdir(framework_path):
-+            if framework_path and os.path.isdir(framework_path):
-                 build.env.Append(LINKFLAGS="-L" + framework_path)
- 
-         # Mixxx requires C++11 support. Windows enables C++11 features by
-@@ -586,7 +597,7 @@
-         if env is None:
-             env = build.env
- 
--        if build.platform_is_linux:
-+        if build.platform_is_linux or build.platform_is_bsd:
-             # Try using system lib
-             if conf.CheckForPKG('soundtouch', '2.0.0'):
-                 # System Lib found
-@@ -630,7 +641,7 @@
-         # the files correctly. Adding this folder to the include path should fix
-         # it, though might cause issues. This is safe to remove once we
-         # deprecate Karmic support. rryan 2/2011
--        build.env.Append(CPPPATH='/usr/include/taglib/')
-+        build.env.Append(CPPPATH='%%LOCALBASE%%/include/taglib/')
- 
-         if build.platform_is_windows and build.static_dependencies:
-             build.env.Append(CPPDEFINES='TAGLIB_STATIC')
-@@ -1343,7 +1354,6 @@
- 
-         if build.toolchain_is_gnu:
-             # Default GNU Options
--            build.env.Append(CCFLAGS='-pipe')
-             build.env.Append(CCFLAGS='-Wall')
-             if build.compiler_is_clang:
-                 # Quiet down Clang warnings about inconsistent use of override
-@@ -1472,17 +1482,24 @@
-                 build.env.Append(CPPPATH=['/opt/local/include'])
- 
-         elif build.platform_is_bsd:
-+            qt5 = Qt.qt5_enabled(build)
-+
-+            if qt5:
-+              qtdirectory = 'qt5'
-+            else:
-+              qtdirectory = 'qt4'
-+
-             build.env.Append(CPPDEFINES='__BSD__')
-             build.env.Append(CPPPATH=['/usr/include',
--                                      '/usr/local/include',
--                                      '/usr/X11R6/include/'])
-+                                      '%%LOCALBASE%%/include',
-+                                      '%%LOCALBASE%%/include/'+ qtdirectory])
-             build.env.Append(LIBPATH=['/usr/lib/',
--                                      '/usr/local/lib',
--                                      '/usr/X11R6/lib'])
-+                                      '%%LOCALBASE%%/lib',
-+                                      '%%LOCALBASE%%/lib/'+ qtdirectory])
-             build.env.Append(LIBS='pthread')
-             # why do we need to do this on OpenBSD and not on Linux?  if we
-             # don't then CheckLib("vorbisfile") fails
--            build.env.Append(LIBS=['ogg', 'vorbis'])
-+            build.env.Append(LIBS=['ogg', 'vorbis','X11'])
- 
-         # Define for things that would like to special case UNIX (Linux or BSD)
-         if build.platform_is_bsd or build.platform_is_linux:
-@@ -1515,7 +1532,7 @@
-         # Say where to find resources on Unix. TODO(XXX) replace this with a
-         # RESOURCE_PATH that covers Win and OSX too:
-         if build.platform_is_linux or build.platform_is_bsd:
--            prefix = SCons.ARGUMENTS.get('prefix', '/usr/local')
-+            prefix = SCons.ARGUMENTS.get('prefix', '%%PREFIX%%')
-             share_path = os.path.join (prefix, build.env.get(
-                 'SHAREDIR', default='share'), 'mixxx')
-             build.env.Append(
-@@ -1526,10 +1543,10 @@
-                 CPPDEFINES=('UNIX_LIB_PATH', r'\"%s\"' % lib_path))
- 
-     def depends(self, build):
--        return [SoundTouch, ReplayGain, Ebur128Mit, PortAudio, PortMIDI, Qt, TestHeaders,
--                FidLib, SndFile, FLAC, OggVorbis, OpenGL, TagLib, ProtoBuf,
--                Chromaprint, RubberBand, SecurityFramework, CoreServices, Foundation, IOKit,
--                QtScriptByteArray, Reverb, FpClassify, PortAudioRingBuffer, OSXFilePathUrlBackport]
-+        return [SoundTouch, ReplayGain, Ebur128Mit, PortAudio, Qt, TestHeaders,
-+                 FidLib, SndFile, FLAC, OggVorbis, OpenGL, TagLib, ProtoBuf,
-+                 Chromaprint, RubberBand, SecurityFramework, CoreServices, IOKit,
-+                 QtScriptByteArray, Reverb, FpClassify, PortAudioRingBuffer]
- 
-     def post_dependency_check_configure(self, build, conf):
-         """Sets up additional things in the Environment that must happen
diff --git a/audio/mixxx/files/patch-build_features.py b/audio/mixxx/files/patch-build_features.py
deleted file mode 100644
index 9b2c944f5779..000000000000
--- a/audio/mixxx/files/patch-build_features.py
+++ /dev/null
@@ -1,102 +0,0 @@
---- build/features.py	2018-10-28 12:33:56.000000000 -0500
-+++ build/features.py	2018-11-06 14:58:04.915561000 -0500
-@@ -105,13 +105,24 @@
-             # -pthread tells GCC to do the right thing regardless of system
-             build.env.Append(CCFLAGS='-pthread')
-             build.env.Append(LINKFLAGS='-pthread')
-+        elif build.platform_is_bsd:
-+            build.env.ParseConfig('pkg-config hidapi --silence-errors --cflags --libs')
- 
-+            conf.CheckLib(['pthread', 'libpthread'])
-+            conf.CheckLib(['rt', 'librt'])
-+
-+            # -pthread tells GCC to do the right thing regardless of system
-+            build.env.Append(CCFLAGS='-pthread')
-+            build.env.Append(LINKFLAGS='-pthread')
-         else:
-             self.INTERNAL_LINK = True
-             if build.platform_is_windows and not conf.CheckLib(['setupapi', 'libsetupapi']):
-                 raise Exception('Did not find the setupapi library, exiting.')
-             elif build.platform_is_osx:
-                 build.env.AppendUnique(FRAMEWORKS=['IOKit', 'CoreFoundation'])
-+            elif build.platform_is_bsd:
-+                conf.CheckLib(['usb', 'libusb'])
-+                conf.CheckLib(['usbhid', 'libusbhid'])
- 
-         build.env.Append(CPPDEFINES='__HID__')
-         if self.INTERNAL_LINK:
-@@ -129,7 +140,7 @@
-                 # setupapi.
-                 sources.append(
-                     os.path.join(self.HIDAPI_INTERNAL_PATH, "windows/hid.c"))
--            elif build.platform_is_linux:
-+            elif build.platform_is_linux or build.platform_is_bsd:
-                 # hidapi compiles the libusb implementation by default on Linux
-                 sources.append(
-                     os.path.join(self.HIDAPI_INTERNAL_PATH, 'libusb/hid.c'))
-@@ -147,14 +158,14 @@
-     def enabled(self, build):
-         # For now only make Bulk default on Linux only. Turn on for all
-         # platforms after the 1.11.0 release.
--        is_default = 1 if build.platform_is_linux else 0
-+        is_default = 1 if build.platform_is_linux or build.platform_is_bsd else 0
-         build.flags['bulk'] = util.get_flags(build.env, 'bulk', is_default)
-         if int(build.flags['bulk']):
-             return True
-         return False
- 
-     def add_options(self, build, vars):
--        is_default = 1 if build.platform_is_linux else 0
-+        is_default = 1 if build.platform_is_linux or build.platform_is_bsd else 0
-         vars.Add('bulk',
-                  'Set to 1 to enable USB Bulk controller support.', is_default)
- 
-@@ -162,12 +173,15 @@
-         if not self.enabled(build):
-             return
- 
--        build.env.ParseConfig(
--            'pkg-config libusb-1.0 --silence-errors --cflags --libs')
--        if (not conf.CheckLib(['libusb-1.0', 'usb-1.0']) or
--                not conf.CheckHeader('libusb-1.0/libusb.h')):
--            raise Exception(
--                'Did not find the libusb 1.0 development library or its header file, exiting!')
-+        if build.platform_is_linux:
-+            build.env.ParseConfig(
-+                'pkg-config libusb-1.0 --silence-errors --cflags --libs')
-+            if (not conf.CheckLib(['libusb-1.0', 'usb-1.0']) or
-+                    not conf.CheckHeader('libusb-1.0/libusb.h')):
-+                raise Exception(
-+                    'Did not find the libusb 1.0 development library or its header file, exiting!')
-+        elif build.platform_is_bsd:
-+            conf.CheckLib(['usb', 'libusb'])
- 
-         build.env.Append(CPPDEFINES='__BULK__')
- 
-@@ -396,7 +410,7 @@
-         # If there is no system vamp-hostsdk is installed or if the version
-         # of the installed vamp-hostsdk is less than the bundled version,
-         # then we'll directly link the bundled vamp-hostsdk
--        if not conf.CheckLib('vamp-hostsdk') or not conf.CheckForPKG('vamp-plugin-sdk', '2.7.1'):
-+        if not conf.CheckLib('vamp-hostsdk') or not conf.CheckForPKG('vamp-sdk', '2.7.1'):
-             # For header includes
-             build.env.Append(CPPPATH=[self.INTERNAL_VAMP_PATH])
-             self.INTERNAL_LINK = True
-@@ -409,7 +423,7 @@
-         # FFTW3 support
-         have_fftw3_h = conf.CheckHeader('fftw3.h')
-         have_fftw3 = conf.CheckLib('fftw3', autoadd=False)
--        if have_fftw3_h and have_fftw3 and build.platform_is_linux:
-+        if have_fftw3_h and have_fftw3 and (build.platform_is_linux or build.platform_is_bsd) :
-             build.env.Append(CPPDEFINES='HAVE_FFTW3')
-             build.env.ParseConfig(
-                 'pkg-config fftw3 --silence-errors --cflags --libs')
-@@ -1295,7 +1309,7 @@
-             return ["util/battery/batterywindows.cpp"]
-         elif build.platform_is_osx:
-             return ["util/battery/batterymac.cpp"]
--        elif build.platform_is_linux:
-+        elif build.platform_is_linux or build.platform_is_bsd:
-             return ["util/battery/batterylinux.cpp"]
-         else:
-             raise Exception('Battery support is not implemented for the target platform.')
diff --git a/audio/mixxx/files/patch-build_mixxx.py b/audio/mixxx/files/patch-build_mixxx.py
deleted file mode 100644
index 1ee0a37c9389..000000000000
--- a/audio/mixxx/files/patch-build_mixxx.py
+++ /dev/null
@@ -1,27 +0,0 @@
---- build/mixxx.py	2018-04-15 13:30:27.000000000 -0500
-+++ build/mixxx.py	2018-04-21 22:31:31.694426000 -0500
-@@ -394,9 +394,9 @@
-             self.env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS'])
- 
-         # Allow installation directories to be specified.
--        prefix = Script.ARGUMENTS.get('prefix', '/usr/local')
-+        prefix = Script.ARGUMENTS.get('prefix', '%%PREFIX%%')
-         if 'LIBDIR' in os.environ:
--            self.env['LIBDIR'] = os.path.relpath(os.environ['LIBDIR'], prefix)
-+            self.env['LIBDIR'] = 'lib' # os.path.relpath(os.environ['LIBDIR'], prefix)
-         if 'BINDIR' in os.environ:
-             self.env['BINDIR'] = os.path.relpath(os.environ['BINDIR'], prefix)
-         if 'SHAREDIR' in os.environ:
-@@ -429,10 +429,10 @@
-     def install_options(self):
-         cachefile = os.path.join(self.get_cache_dir(), 'custom.py')
-         vars = Script.Variables(cachefile)
--        vars.Add('prefix', 'Set to your install prefix', '/usr/local')
-+        vars.Add('prefix', 'Set to your install prefix', '%%PREFIX%%')
-         vars.Add('virtualize',
-                  'Dynamically swap out the build directory when switching Git branches.', 1)
--        vars.Add('qtdir', 'Set to your QT4 directory', '/usr/share/qt4')
-+        vars.Add('qtdir', 'Set to your QT4 directory', '%%LOCALBASE%%/share/qt4')
-         vars.Add('qt_sqlite_plugin', 'Set to 1 to package the Qt SQLite plugin.'
-                  '\n           Set to 0 if SQLite support is compiled into QtSQL.', 0)
-         vars.Add('target',
diff --git a/audio/mixxx/files/patch-build_qt5.py b/audio/mixxx/files/patch-build_qt5.py
deleted file mode 100644
index d0927978bcd7..000000000000
--- a/audio/mixxx/files/patch-build_qt5.py
+++ /dev/null
@@ -1,11 +0,0 @@
---- build/qt5.py.orig	2020-05-15 21:26:10 UTC
-+++ build/qt5.py
-@@ -43,7 +43,7 @@ import SCons.Scanner
- import SCons.Tool
- import SCons.Util
- 
--class ToolQt5Warning(SCons.Warnings.Warning):
-+class ToolQt5Warning(SCons.Warnings.SConsWarning):
-     pass
- 
- class GeneratedMocFileNotIncluded(ToolQt5Warning):
diff --git a/audio/mixxx/files/patch-cmake_modules_FindLibUSB.cmake b/audio/mixxx/files/patch-cmake_modules_FindLibUSB.cmake
new file mode 100644
index 000000000000..239103f163d8
--- /dev/null
+++ b/audio/mixxx/files/patch-cmake_modules_FindLibUSB.cmake
@@ -0,0 +1,14 @@
+--- cmake/modules/FindLibUSB.cmake.orig	2021-06-28 20:04:59 UTC
++++ cmake/modules/FindLibUSB.cmake
+@@ -57,7 +57,11 @@ find_path(LibUSB_INCLUDE_DIR
+ mark_as_advanced(LibUSB_INCLUDE_DIR)
+ 
+ find_library(LibUSB_LIBRARY
++if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
++  NAMES usb
++else
+   NAMES usb-1.0
++endif()
+   PATHS ${PC_LibUSB_LIBRARY_DIRS}
+   DOC "LibUSB library"
+ )
diff --git a/audio/mixxx/files/patch-lib_hidapi-0.8.0-rc1_libusb_hid.c b/audio/mixxx/files/patch-lib_hidapi-0.8.0-rc1_libusb_hid.c
deleted file mode 100644
index 262647d3ea6f..000000000000
--- a/audio/mixxx/files/patch-lib_hidapi-0.8.0-rc1_libusb_hid.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- lib/hidapi-0.8.0-rc1/libusb/hid.c.orig	2015-12-29 16:10:41 UTC
-+++ lib/hidapi-0.8.0-rc1/libusb/hid.c
-@@ -258,7 +258,7 @@ static int get_usage(uint8_t *report_des
-    Note that the data parameter is Unicode in UTF-16LE encoding.
-    Return value is the number of bytes in data, or LIBUSB_ERROR_*.
-  */
--static inline int libusb_get_string_descriptor(libusb_device_handle *dev,
-+inline int libusb_get_string_descriptor(libusb_device_handle *dev,
- 	uint8_t descriptor_index, uint16_t lang_id,
- 	unsigned char *data, int length)
- {
diff --git a/audio/mixxx/files/patch-lib_kaitai_kaitaistream.cpp b/audio/mixxx/files/patch-lib_kaitai_kaitaistream.cpp
new file mode 100644
index 000000000000..6ca219c389eb
--- /dev/null
+++ b/audio/mixxx/files/patch-lib_kaitai_kaitaistream.cpp
@@ -0,0 +1,14 @@
+--- lib/kaitai/kaitaistream.cpp.orig	2021-06-28 20:04:59 UTC
++++ lib/kaitai/kaitaistream.cpp
+@@ -17,6 +17,11 @@
+ #define bswap_16(x) _byteswap_ushort(x)
+ #define bswap_32(x) _byteswap_ulong(x)
+ #define bswap_64(x) _byteswap_uint64(x)
++#elif defined(__FreeBSD__)
++#include <sys/endian.h>
++#define bswap_16(x) bswap16(x)
++#define bswap_32(x) bswap32(x)
++#define bswap_64(x) bswap64(x)
+ #else // !__APPLE__ or !_MSC_VER
+ #include <endian.h>
+ #include <byteswap.h>
diff --git a/audio/mixxx/files/patch-lib_rigtorp_SPSCQueue_include_rigtorp_SPSCQueue.h b/audio/mixxx/files/patch-lib_rigtorp_SPSCQueue_include_rigtorp_SPSCQueue.h
new file mode 100644
index 000000000000..8579a04256b9
--- /dev/null
+++ b/audio/mixxx/files/patch-lib_rigtorp_SPSCQueue_include_rigtorp_SPSCQueue.h
@@ -0,0 +1,11 @@
+--- lib/rigtorp/SPSCQueue/include/rigtorp/SPSCQueue.h.orig	2021-06-28 20:04:59 UTC
++++ lib/rigtorp/SPSCQueue/include/rigtorp/SPSCQueue.h
+@@ -189,7 +189,7 @@ template <typename T, typename Allocator = std::alloca
+ // on macOS there is a bug in libc++ where __cpp_lib_hardware_interference_size
+ // is defined but std::hardware_destructive_interference_size is not actually implemented
+ // https://bugs.llvm.org/show_bug.cgi?id=41423
+-#if defined(__cpp_lib_hardware_interference_size) && ! defined(__APPLE__)
++#if defined(__cpp_lib_hardware_interference_size) && ! defined(__APPLE__) && ! defined(__FreeBSD__)
+   static constexpr size_t kCacheLineSize =
+       std::hardware_destructive_interference_size;
+ #else
diff --git a/audio/mixxx/files/patch-plugins_soundsourcem4a_soundsourcem4a.h b/audio/mixxx/files/patch-plugins_soundsourcem4a_soundsourcem4a.h
deleted file mode 100644
index d45a2ae4a508..000000000000
--- a/audio/mixxx/files/patch-plugins_soundsourcem4a_soundsourcem4a.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- plugins/soundsourcem4a/soundsourcem4a.h.orig	2019-07-19 22:36:09 UTC
-+++ plugins/soundsourcem4a/soundsourcem4a.h
-@@ -5,6 +5,8 @@
- 
- #include "util/readaheadsamplebuffer.h"
- 
-+#include <sys/types.h>
-+
- #ifdef __MP4V2__
- #include <mp4v2/mp4v2.h>
- #else
diff --git a/audio/mixxx/files/patch-src-encoder_encodermp3.cpp b/audio/mixxx/files/patch-src-encoder_encodermp3.cpp
deleted file mode 100644
index 67914779e1c1..000000000000
--- a/audio/mixxx/files/patch-src-encoder_encodermp3.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/encoder/encodermp3.cpp  2017-09-24 22:09:28.258505000 -0500
-+++ src/encoder/encodermp3.cpp  2017-09-24 22:12:09.197474000 -0500
-@@ -76,7 +76,7 @@
-      */
-     QStringList libnames;
-     QString libname = "";
--#ifdef __LINUX__
-+#if defined(__LINUX__) || defined(__FreeBSD__)
-     libnames << "mp3lame";
- #elif __WINDOWS__
-     libnames << "lame_enc.dll";
diff --git a/audio/mixxx/files/patch-src-util_screensaver.cpp b/audio/mixxx/files/patch-src-util_screensaver.cpp
deleted file mode 100644
index a05c284ecba3..000000000000
--- a/audio/mixxx/files/patch-src-util_screensaver.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
---- src/util/screensaver.cpp	2018-04-22 02:22:56.333283000 -0500
-+++ src/util/screensaver.cpp	2018-04-22 02:24:03.836501000 -0500
-@@ -23,13 +23,13 @@
- #  include "util/mac.h"
- #elif defined(Q_OS_WIN)
- #  include <windows.h>
--#elif defined(Q_OS_LINUX)
-+#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
- #  include <QtDBus>
- #elif HAVE_XSCREENSAVER_SUSPEND
- #  include <X11/extensions/scrnsaver.h>
- #endif // Q_OS_WIN
- 
--#if defined(Q_OS_LINUX) || HAVE_XSCREENSAVER_SUSPEND
-+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || HAVE_XSCREENSAVER_SUSPEND
- #  define None XNone
- #  define Window XWindow
- #  include <X11/Xlib.h>
-@@ -140,7 +140,7 @@
-     s_enabled = false;
- }
- 
--#elif defined(Q_OS_LINUX)
-+#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
- const char *SCREENSAVERS[][4] = {
-     // org.freedesktop.ScreenSaver is the standard. should work for gnome and kde too, 
-     // but I add their specific names too
diff --git a/audio/mixxx/files/patch-src_controllers_controllermanager.cpp b/audio/mixxx/files/patch-src_controllers_controllermanager.cpp
deleted file mode 100644
index 7b2fc13b2c09..000000000000
--- a/audio/mixxx/files/patch-src_controllers_controllermanager.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/controllers/controllermanager.cpp	2018-04-15 13:30:27.000000000 -0500
-+++ src/controllers/controllermanager.cpp	2018-04-21 22:34:32.638474000 -0500
-@@ -127,7 +127,9 @@
- 
-     // Instantiate all enumerators. Enumerators can take a long time to
-     // construct since they interact with host MIDI APIs.
-+#ifdef __PORTMIDI__
-     m_enumerators.append(new PortMidiEnumerator());
-+#endif
- #ifdef __HSS1394__
-     m_enumerators.append(new Hss1394Enumerator());
- #endif
diff --git a/audio/mixxx/files/patch-src_controllers_controllerpresetfilehandler.cpp b/audio/mixxx/files/patch-src_controllers_controllerpresetfilehandler.cpp
deleted file mode 100644
index 464b33c32d4b..000000000000
--- a/audio/mixxx/files/patch-src_controllers_controllerpresetfilehandler.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/controllers/controllerpresetfilehandler.cpp.orig	2015-12-29 16:10:41 UTC
-+++ src/controllers/controllerpresetfilehandler.cpp
-@@ -43,7 +43,11 @@ ControllerPresetPointer ControllerPreset
-         pHandler = new MidiControllerPresetFileHandler();
-     } else if (scriptPath.endsWith(HID_PRESET_EXTENSION, Qt::CaseInsensitive) ||
-                scriptPath.endsWith(BULK_PRESET_EXTENSION, Qt::CaseInsensitive)) {
-+#if __HID__
-         pHandler = new HidControllerPresetFileHandler();
-+#else
-+        return ControllerPresetPointer();
-+#endif
-     }
- 
-     if (pHandler == NULL) {
diff --git a/audio/mixxx/files/patch-src_util_versionstore.cpp b/audio/mixxx/files/patch-src_util_versionstore.cpp
new file mode 100644
index 000000000000..38048b39347d
--- /dev/null
+++ b/audio/mixxx/files/patch-src_util_versionstore.cpp
@@ -0,0 +1,11 @@
+--- src/util/versionstore.cpp.orig	2021-07-17 15:58:25 UTC
++++ src/util/versionstore.cpp
+@@ -77,6 +77,8 @@ QString VersionStore::platform() {
+     QString base = QStringLiteral("Linux");
+ #elif defined(__WINDOWS__)
+     QString base = QStringLiteral("Windows");
++#elif defined(__FreeBSD__)
++    QString base = QStringLiteral("FreeBSD");
+ #else
+     QString base = QStringLiteral("Unknown OS");
+ #endif
diff --git a/audio/mixxx/files/patch-vamp-plugins_SConscript b/audio/mixxx/files/patch-vamp-plugins_SConscript
deleted file mode 100644
index dfc658763c92..000000000000
--- a/audio/mixxx/files/patch-vamp-plugins_SConscript
+++ /dev/null
@@ -1,11 +0,0 @@
---- vamp-plugins/SConscript	2018-11-06 14:08:42.093656000 -0500
-+++ vamp-plugins/SConscript	2018-11-06 14:08:56.517582000 -0500
-@@ -54,7 +54,7 @@
-     # If there is no system vamp-sdk is installed or if the version
-     # of the installed vamp-sdk is less than the bundled version,
-     # then we'll directly link the bundled vamp-sdk.
--    if not conf.CheckLib('vamp-sdk') or not conf.CheckForPKG('vamp-plugin-sdk', '2.7.1'):
-+    if not conf.CheckLib('vamp-hostsdk') or not conf.CheckForPKG('vamp-sdk', '2.7.1'):
-         INTERNAL_VAMP_PATH = '#lib/vamp'
-         # For header includes
-         env.Append(CPPPATH=[INTERNAL_VAMP_PATH])
diff --git a/audio/mixxx/pkg-plist b/audio/mixxx/pkg-plist
index f979cbcf6269..c884e4b5e5da 100644
--- a/audio/mixxx/pkg-plist
+++ b/audio/mixxx/pkg-plist
@@ -1,7 +1,2651 @@
 bin/mixxx
-%%FAAD%%lib/mixxx/plugins/soundsourceqt5/libsoundsourcem4a.so
-%%WAVPACK%%lib/mixxx/plugins/soundsourceqt5/libsoundsourcewv.so
-lib/mixxx/plugins/vampqt5/libmixxxminimal.so
-share/appdata/mixxx.appdata.xml
 share/applications/mixxx.desktop
-share/pixmaps/mixxx_icon.svg
+share/icons/hicolor/32x32/apps/mixxx.png
+share/icons/hicolor/scalable/apps/mixxx.svg
+share/metainfo/mixxx.metainfo.xml
+%%DATADIR%%/controllers/.eslintrc.json
+%%DATADIR%%/controllers/Akai MPD24.midi.xml
+%%DATADIR%%/controllers/Akai-LPD8-RK-scripts.js
+%%DATADIR%%/controllers/Akai-LPD8-RK.midi.xml
+%%DATADIR%%/controllers/Allen and Heath Xone K2.midi.xml
+%%DATADIR%%/controllers/Allen-and-Heath-Xone-K2-scripts.js
+%%DATADIR%%/controllers/American Audio RADIUS 2000 CH1.midi.xml
+%%DATADIR%%/controllers/American Audio RADIUS 2000 CH2.midi.xml
+%%DATADIR%%/controllers/American Audio VMS2.midi.xml
+%%DATADIR%%/controllers/American Audio VMS4.midi.xml
+%%DATADIR%%/controllers/American-Audio-RADIUS-2000-scripts.js
+%%DATADIR%%/controllers/American-Audio-VMS2-scripts.js
+%%DATADIR%%/controllers/American-Audio-VMS4-scripts.js
+%%DATADIR%%/controllers/Behringer BCD2000.midi.xml
+%%DATADIR%%/controllers/Behringer BCD3000 Advanced.midi.xml
+%%DATADIR%%/controllers/Behringer BCD3000.midi.xml
+%%DATADIR%%/controllers/Behringer BCR2000.midi.xml
+%%DATADIR%%/controllers/Behringer CMD MM1.midi.xml
+%%DATADIR%%/controllers/Behringer CMD Micro.midi.xml
+%%DATADIR%%/controllers/Behringer CMDStudio4a.midi.xml
+%%DATADIR%%/controllers/Behringer DDM4000.midi.xml
+%%DATADIR%%/controllers/Behringer-BCD2000-scripts.js
+%%DATADIR%%/controllers/Behringer-BCD3000-Advanced-scripts.js
+%%DATADIR%%/controllers/Behringer-BCD3000-scripts.js
+%%DATADIR%%/controllers/Behringer-BCR2000-preset-scripts.js
+%%DATADIR%%/controllers/Behringer-BCR2000-scripts.js
+%%DATADIR%%/controllers/Behringer-CMD-MM1-scripts.js
+%%DATADIR%%/controllers/Behringer-CMD-Micro-scripts.js
+%%DATADIR%%/controllers/Behringer-CMDStudio4a-scripts.js
+%%DATADIR%%/controllers/Behringer-DDM4000-scripts.js
+%%DATADIR%%/controllers/Behringer-Extension-scripts.js
+%%DATADIR%%/controllers/CueColorsReference.svg
+%%DATADIR%%/controllers/DJ TechTools MIDI Fighter Twister.midi.xml
+%%DATADIR%%/controllers/DJ TechTools-MIDI Fighter Twister-scripts.js
+%%DATADIR%%/controllers/DJ-Tech CDJ-101.midi.xml
+%%DATADIR%%/controllers/DJ-Tech DJM-101.midi.xml
+%%DATADIR%%/controllers/DJ-Tech Kontrol One.midi.xml
+%%DATADIR%%/controllers/DJ-Tech Mix-101.midi.xml
+%%DATADIR%%/controllers/DJ-Tech Mixer One.midi.xml
+%%DATADIR%%/controllers/DJ-Tech i-Mix Reload.midi.xml
+%%DATADIR%%/controllers/DJ-Tech-CDJ-101-scripts.js
+%%DATADIR%%/controllers/DJ-Tech-DJM-101-scripts.js
+%%DATADIR%%/controllers/DJ-Tech-Kontrol-One-scripts.js
+%%DATADIR%%/controllers/DJ-Tech-Mixer-One-scripts.js
+%%DATADIR%%/controllers/DJ-Tech-i-Mix-Reload-scripts.js
+%%DATADIR%%/controllers/DJTechTools MIDI Fighter.midi.xml
+%%DATADIR%%/controllers/DJTechTools-MIDIFighter-scripts.js
+%%DATADIR%%/controllers/Denon DN HS5500.midi.xml
+%%DATADIR%%/controllers/Denon DN SC2000.midi.xml
+%%DATADIR%%/controllers/Denon MC3000.midi.xml
+%%DATADIR%%/controllers/Denon MC4000.midi.xml
+%%DATADIR%%/controllers/Denon-DN-HS5500-scripts.js
+%%DATADIR%%/controllers/Denon-DN-SC2000.midi.js
+%%DATADIR%%/controllers/Denon-MC3000-scripts.js
+%%DATADIR%%/controllers/Denon-MC4000-scripts.js
+%%DATADIR%%/controllers/Denon-MC6000MK2-scripts.js
+%%DATADIR%%/controllers/Denon-MC6000MK2.midi.xml
+%%DATADIR%%/controllers/Denon-MC7000-scripts.js
+%%DATADIR%%/controllers/Denon-MC7000.midi.xml
+%%DATADIR%%/controllers/EKS Otus.hid.xml
+%%DATADIR%%/controllers/EKS-Otus.js
+%%DATADIR%%/controllers/Electrix Tweaker.midi.xml
+%%DATADIR%%/controllers/Electrix-Tweaker-scripts.js
+%%DATADIR%%/controllers/Evolution_Xsession.midi.xml
+%%DATADIR%%/controllers/FaderFoxDJ2.midi.xml
+%%DATADIR%%/controllers/Gemini CDMP-7000 L audio.midi.xml
+%%DATADIR%%/controllers/Gemini CDMP-7000 R audio.midi.xml
+%%DATADIR%%/controllers/Gemini FirstMix.midi.xml
+%%DATADIR%%/controllers/Gemini-CDMP-7000-scripts.js
+%%DATADIR%%/controllers/Gemini-FirstMix-scripts.js
+%%DATADIR%%/controllers/HID Keyboard.hid.xml.example
+%%DATADIR%%/controllers/HID Trackpad.hid.xml.example
+%%DATADIR%%/controllers/HID-Keyboard.js
+%%DATADIR%%/controllers/HID-Trackpad.js
+%%DATADIR%%/controllers/Hercules DJ Console 4-Mx.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Console Mac Edition.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Console Mk1.hid.xml
+%%DATADIR%%/controllers/Hercules DJ Console Mk2.hid.xml
+%%DATADIR%%/controllers/Hercules DJ Console Mk2.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Console Mk4.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Console RMX 2.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Console RMX Advanced.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Console RMX.hid.xml
+%%DATADIR%%/controllers/Hercules DJ Console RMX.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Control AIR.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Control Instinct.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Control MP3 e2-scripts.js
+%%DATADIR%%/controllers/Hercules DJ Control MP3 e2.bulk.xml
+%%DATADIR%%/controllers/Hercules DJ Control MP3 e2.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Control MP3.hid.xml
+%%DATADIR%%/controllers/Hercules DJ Control MP3.midi.xml
+%%DATADIR%%/controllers/Hercules DJ Control Steel.midi.xml
+%%DATADIR%%/controllers/Hercules DJControl Compact.midi.xml
+%%DATADIR%%/controllers/Hercules DJControl Starlight.midi.xml
+%%DATADIR%%/controllers/Hercules P32 DJ.midi.xml
+%%DATADIR%%/controllers/Hercules-DJ-Console-4-Mx-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Console-Mk1-hid-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Console-Mk2-hid-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Console-Mk2-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Console-Mk4-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Console-RMX-2-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Console-RMX-hid-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Console-RMX-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Control-AIR-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Control-Instinct-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Control-MP3-hid-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Control-MP3-scripts.js
+%%DATADIR%%/controllers/Hercules-DJ-Control-Steel-scripts.js
+%%DATADIR%%/controllers/Hercules-DJControl-Compact-scripts.js
+%%DATADIR%%/controllers/Hercules-DJControl-Inpulse-200-script.js
+%%DATADIR%%/controllers/Hercules-DJControl-Inpulse-300-script.js
+%%DATADIR%%/controllers/Hercules-DJControl-Starlight-scripts.js
+%%DATADIR%%/controllers/Hercules-P32-scripts.js
+%%DATADIR%%/controllers/Hercules-mp3e2-compat.js
+%%DATADIR%%/controllers/Hercules_DJControl_Inpulse_200.midi.xml
+%%DATADIR%%/controllers/Hercules_DJControl_Inpulse_300.midi.xml
+%%DATADIR%%/controllers/Hercules_DJControl_Jogvision-scripts.js
+%%DATADIR%%/controllers/Hercules_DJControl_Jogvision.midi.xml
+%%DATADIR%%/controllers/Ion Discover DJ.midi.xml
+%%DATADIR%%/controllers/Ion-Discover-DJ-Pro-scripts.js
+%%DATADIR%%/controllers/Ion-Discover-DJ-Pro.midi.xml
+%%DATADIR%%/controllers/Ion-Discover-DJ-scripts.js
+%%DATADIR%%/controllers/KANE_QuNeo.midi.xml
+%%DATADIR%%/controllers/KANE_QuNeo_scripts.js
+%%DATADIR%%/controllers/Kontrol Dj KDJ500.midi.xml
+%%DATADIR%%/controllers/Kontrol-Dj-KDJ500-scripts.js
+%%DATADIR%%/controllers/Korg nanoKONTROL 2.midi.xml
+%%DATADIR%%/controllers/Korg nanoKONTROL.midi.xml
+%%DATADIR%%/controllers/Korg nanoPAD2.midi.xml
+%%DATADIR%%/controllers/Korg-KAOSS-DJ-scripts.js
+%%DATADIR%%/controllers/Korg-KAOSS-DJ.midi.xml
+%%DATADIR%%/controllers/Korg-nanoKONTROL-2-scripts.js
+%%DATADIR%%/controllers/Korg-nanoPAD2-scripts.js
+%%DATADIR%%/controllers/M-Audio_Xsession_pro.midi.xml
+%%DATADIR%%/controllers/Midi-Keyboard.midi.xml
+%%DATADIR%%/controllers/MidiTech-MidiControl.midi.xml
+%%DATADIR%%/controllers/Midi_for_light-scripts.js
+%%DATADIR%%/controllers/Midi_for_light.midi.xml
+%%DATADIR%%/controllers/MixVibes U-Mix Control 2.midi.xml
+%%DATADIR%%/controllers/MixVibes U-Mix Control Pro 2.midi.xml
+%%DATADIR%%/controllers/MixVibes-U-Mix-Control-Pro-2-scripts.js
+%%DATADIR%%/controllers/Mixman DM2 (Linux).js
+%%DATADIR%%/controllers/Mixman DM2 (Linux).midi.xml
+%%DATADIR%%/controllers/Mixman DM2 (OS X).js
+%%DATADIR%%/controllers/Mixman DM2 (OS X).midi.xml
+%%DATADIR%%/controllers/Mixman DM2 (Windows).midi.xml
+%%DATADIR%%/controllers/Nintendo Wiimote.hid.xml
+%%DATADIR%%/controllers/Nintendo-Wiimote.js
+%%DATADIR%%/controllers/Novation Dicer.midi.xml
+%%DATADIR%%/controllers/Novation Launchpad MK2.midi.xml
+%%DATADIR%%/controllers/Novation Launchpad.midi.xml
+%%DATADIR%%/controllers/Novation-Dicer-scripts.js
+%%DATADIR%%/controllers/Novation-Launchpad MK2-scripts.js
+%%DATADIR%%/controllers/Novation-Launchpad-Mini-scripts.js
+%%DATADIR%%/controllers/Novation-Launchpad-Mini.midi.xml
+%%DATADIR%%/controllers/Novation-Launchpad-scripts.js
+%%DATADIR%%/controllers/Numark DJ2Go.midi.xml
+%%DATADIR%%/controllers/Numark MIXTRACK.midi.xml
+%%DATADIR%%/controllers/Numark Mixtrack 2.midi.xml
+%%DATADIR%%/controllers/Numark Mixtrack Platinum.midi.xml
+%%DATADIR%%/controllers/Numark Mixtrack Pro.midi.xml
+%%DATADIR%%/controllers/Numark N4.midi.xml
+%%DATADIR%%/controllers/Numark NS7.midi.xml
+%%DATADIR%%/controllers/Numark Omni Control.midi.xml
+%%DATADIR%%/controllers/Numark Total Control.midi.xml
+%%DATADIR%%/controllers/Numark V7.midi.xml
+%%DATADIR%%/controllers/Numark iDJ Live II.midi.xml
+%%DATADIR%%/controllers/Numark-DJ2Go-scripts.js
+%%DATADIR%%/controllers/Numark-MixTrack-scripts.js
+%%DATADIR%%/controllers/Numark-Mixtrack-2-scripts.js
+%%DATADIR%%/controllers/Numark-Mixtrack-3-scripts.js
+%%DATADIR%%/controllers/Numark-Mixtrack-3.midi.xml
+%%DATADIR%%/controllers/Numark-Mixtrack-Platinum-scripts.js
+%%DATADIR%%/controllers/Numark-Mixtrack-Pro-scripts.js
+%%DATADIR%%/controllers/Numark-N4-scripts.js
+%%DATADIR%%/controllers/Numark-NS7-scripts.js
+%%DATADIR%%/controllers/Numark-Omni-Control-scripts.js
+%%DATADIR%%/controllers/Numark-Total-Control-scripts.js
+%%DATADIR%%/controllers/Numark-V7-scripts.js
+%%DATADIR%%/controllers/Numark-iDJ-Live-II-scripts.js
+%%DATADIR%%/controllers/Pioneer CDJ HID.hid.xml
+%%DATADIR%%/controllers/Pioneer CDJ-2000.midi.xml
+%%DATADIR%%/controllers/Pioneer CDJ-350 Ch1.midi.xml
+%%DATADIR%%/controllers/Pioneer CDJ-350 Ch2.midi.xml
+%%DATADIR%%/controllers/Pioneer CDJ-850.midi.xml
+%%DATADIR%%/controllers/Pioneer DDJ-200.midi.xml
+%%DATADIR%%/controllers/Pioneer DDJ-SX.midi.xml
+%%DATADIR%%/controllers/Pioneer-CDJ-2000-scripts.js
+%%DATADIR%%/controllers/Pioneer-CDJ-350-scripts.js
+%%DATADIR%%/controllers/Pioneer-CDJ-850-scripts.js
+%%DATADIR%%/controllers/Pioneer-CDJ-HID.js
+%%DATADIR%%/controllers/Pioneer-DDJ-200-scripts.js
+%%DATADIR%%/controllers/Pioneer-DDJ-400-script.js
+%%DATADIR%%/controllers/Pioneer-DDJ-400.midi.xml
+%%DATADIR%%/controllers/Pioneer-DDJ-SB-scripts.js
+%%DATADIR%%/controllers/Pioneer-DDJ-SB.midi.xml
+%%DATADIR%%/controllers/Pioneer-DDJ-SB2-scripts.js
+%%DATADIR%%/controllers/Pioneer-DDJ-SB2.midi.xml
+%%DATADIR%%/controllers/Pioneer-DDJ-SX-scripts.js
+%%DATADIR%%/controllers/README.txt
+%%DATADIR%%/controllers/Reloop Beatmix 2-4.midi.xml
+%%DATADIR%%/controllers/Reloop Beatpad.midi.xml
+%%DATADIR%%/controllers/Reloop Digital Jockey 2 Controller Edition.midi.xml
+%%DATADIR%%/controllers/Reloop Jockey 3 ME.midi.xml
+%%DATADIR%%/controllers/Reloop Terminal Mix 2-4.js
+%%DATADIR%%/controllers/Reloop Terminal Mix 2-4.midi.xml
+%%DATADIR%%/controllers/Reloop-Beatmix-2-4-scripts.js
+%%DATADIR%%/controllers/Reloop-Beatpad-scripts.js
+%%DATADIR%%/controllers/Reloop-Digital-Jockey2-Controller-scripts.js
+%%DATADIR%%/controllers/Reloop-Jockey-3-ME-scripts.js
+%%DATADIR%%/controllers/Roland_DJ-505-scripts.js
+%%DATADIR%%/controllers/Roland_DJ-505.midi.xml
+%%DATADIR%%/controllers/Sony SixxAxis.hid.xml
+%%DATADIR%%/controllers/Sony-SixxAxis.js
+%%DATADIR%%/controllers/Soundless_joyMIDI.midi.xml
+%%DATADIR%%/controllers/Soundless_joyMIDI_scripts.js
+%%DATADIR%%/controllers/Stanton SCS.1d.midi.xml
+%%DATADIR%%/controllers/Stanton SCS.1m.midi.xml
+%%DATADIR%%/controllers/Stanton SCS.3d Alternate.midi.xml
+%%DATADIR%%/controllers/Stanton SCS.3d.midi.xml
+%%DATADIR%%/controllers/Stanton SCS.3m.midi.xml
+%%DATADIR%%/controllers/Stanton-DJC-4-scripts.js
+%%DATADIR%%/controllers/Stanton-DJC-4.midi.xml
+%%DATADIR%%/controllers/Stanton-SCS1d-scripts.js
+%%DATADIR%%/controllers/Stanton-SCS1m-scripts.js
+%%DATADIR%%/controllers/Stanton-SCS3d-alternate-scripts.js
+%%DATADIR%%/controllers/Stanton-SCS3d-scripts.js
+%%DATADIR%%/controllers/Stanton-SCS3m-scripts.js
+%%DATADIR%%/controllers/TrakProDJ iPad.midi.xml
+%%DATADIR%%/controllers/TrakProDJ-iPad-scripts.js
+%%DATADIR%%/controllers/Traktor Kontrol F1.hid.xml
+%%DATADIR%%/controllers/Traktor Kontrol S2 MK3.hid.xml
+%%DATADIR%%/controllers/Traktor Kontrol S2 Mk2.hid.xml
+%%DATADIR%%/controllers/Traktor Kontrol S3.hid.xml
+%%DATADIR%%/controllers/Traktor Kontrol S4 MK2.hid.xml
+%%DATADIR%%/controllers/Traktor Kontrol X1.midi.xml
+%%DATADIR%%/controllers/Traktor-Kontrol-F1-scripts.js
+%%DATADIR%%/controllers/Traktor-Kontrol-S2-MK2-hid-scripts.js
+%%DATADIR%%/controllers/Traktor-Kontrol-S2-MK3-hid-scripts.js
+%%DATADIR%%/controllers/Traktor-Kontrol-S3-hid-scripts.js
*** 2406 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202107171738.16HHc4MP088955>