diff --git a/audio/qtractor/Makefile b/audio/qtractor/Makefile index dd7c02c37475..9a3d1c1b3a96 100644 --- a/audio/qtractor/Makefile +++ b/audio/qtractor/Makefile @@ -1,81 +1,70 @@ PORTNAME= qtractor DISTVERSIONPREFIX= v -DISTVERSION= 1.6.2 +DISTVERSION= 1.6.4 CATEGORIES= audio -MASTER_SITES= https://download.steinberg.net/sdk_downloads/:vst3sdk -DISTFILES= ${VST3_SDK_ARCHIVE}:vst3sdk EXTRACT_ONLY= ${GH_ACCOUNT}-${GH_PROJECT}-${GH_TAGNAME}_GH0${EXTRACT_SUFX} \ - breakfastquay-minibpm-43de991_GH0${EXTRACT_SUFX} + free-audio-clap-195b42a_GH0${EXTRACT_SUFX} \ + breakfastquay-minibpm-43de991_GH0${EXTRACT_SUFX} \ + steinbergmedia-vst3_base-fcf9da0_GH0${EXTRACT_SUFX} \ + steinbergmedia-vst3_pluginterfaces-4f547e8_GH0${EXTRACT_SUFX} \ + steinbergmedia-vst3_public_sdk-586dc5e_GH0${EXTRACT_SUFX} MAINTAINER= yuri@FreeBSD.org COMMENT= Audio/MIDI multi-track sequencer WWW= https://qtractor.org \ https://github.com/rncbc/qtractor LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libasound.so:audio/alsa-lib \ libaubio.so:audio/aubio \ libfftw3.so:math/fftw3 \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libjack.so:audio/jack \ liblilv-0.so:audio/lilv \ liblo.so:audio/liblo \ libmad.so:audio/libmad \ libogg.so:audio/libogg \ librubberband.so:audio/rubberband \ libsamplerate.so:audio/libsamplerate \ libsndfile.so:audio/libsndfile \ libsuil-0.so:audio/suil \ libvorbis.so:audio/libvorbis \ libvorbisenc.so:audio/libvorbis \ libvorbisfile.so:audio/libvorbis RUN_DEPENDS= alsa-seq-server>0:audio/alsa-seq-server USES= cmake compiler:c++17-lang desktop-file-utils gettext-runtime gnome localbase:ldflags pkgconfig qt:5 shared-mime-info USE_GNOME= atk cairo gdkpixbuf gtk20 gtkmm24 pango USE_QT= core gui network svg widgets x11extras xml buildtools:build linguisttools:build qmake:build #USE_QT= base svg tools:build # for Qt6 USE_GITHUB= yes GH_ACCOUNT= rncbc -GH_TUPLE= breakfastquay:minibpm:43de991:minibpm/src/minibpm +GH_TUPLE= free-audio:clap:195b42a:clap/src/clap \ + breakfastquay:minibpm:43de991:minibpm/src/minibpm \ + steinbergmedia:vst3_base:fcf9da0:vst3_base/src/vst3/base \ + steinbergmedia:vst3_pluginterfaces:4f547e8:vst3_pluginterfaces/src/vst3/pluginterfaces \ + steinbergmedia:vst3_public_sdk:586dc5e:vst3_public_sdk/src/vst3/public.sdk CMAKE_OFF= CONFIG_CLAP # for audio/clap, but it doesn't install anything CMAKE_OFF+= CONFIG_QT6 # breaks with Qt6: Gtk-ERROR **: 21:10:56.939: GTK 2.x symbols detected. Using GTK 2.x and GTK 3 in the same process is not supported OPTIONS_DEFINE= VST3 OPTIONS_DEFAULT= VST3 VST3_DESC= Enable VST3 plug-in support VST3_USES= xorg VST3_USE= XORG=xcb VST3_CMAKE_BOOL= CONFIG_VST3 -VST3_CMAKE_ON= -DCONFIG_VST3SDK=${WRKDIR}/VST_SDK/vst3sdk -#VST3_BUILD_DEPENDS= vst3sdk>0:audio/vst3sdk # this is supposed to work instead of bundled archive, but it doesn't for some reason, see https://github.com/rncbc/qtractor/issues/331 -VST3_SDK_ARCHIVE= vst-sdk_3.7.4_build-25_2021-12-16.zip - -post-extract-VST3-on: - @cd ${WRKDIR} && unzip -qq ${DISTDIR}/${VST3_SDK_ARCHIVE} +VST3_CMAKE_ON= -DCONFIG_VST3SDK=${WRKSRC}/src/vst3 post-patch: @${REINPLACE_CMD} \ 's|the ALSA Sequencer kernel module (snd-seq-midi)|alsa-seq-server (installed by audio/alsa-seq-server)|' \ ${WRKSRC}/src/qtractorMainForm.cpp -post-patch-VST3-on: - @${REINPLACE_CMD} -e ' \ - s,__linux__,__linux__ || __FreeBSD__,; \ - s,endian.h,sys/endian.h, \ - ' \ - ${WRKDIR}/VST_SDK/vst3sdk/pluginterfaces/base/fplatform.h - @${REINPLACE_CMD} -e ' \ - s,stdatomic.h,atomic,; \ - s,atomic_int_least32_t,std::atomic_int_least32_t, \ - ' \ - ${WRKDIR}/VST_SDK/vst3sdk/pluginterfaces/base/funknown.cpp - .include diff --git a/audio/qtractor/distinfo b/audio/qtractor/distinfo index fac691298d9c..4d0dced31828 100644 --- a/audio/qtractor/distinfo +++ b/audio/qtractor/distinfo @@ -1,7 +1,13 @@ -TIMESTAMP = 1784096420 -SHA256 (vst-sdk_3.7.4_build-25_2021-12-16.zip) = 49b0e46345af323ab84be9df065653b2a6531745dea6f3ac3fb47915df9f3a81 -SIZE (vst-sdk_3.7.4_build-25_2021-12-16.zip) = 104869292 -SHA256 (rncbc-qtractor-v1.6.2_GH0.tar.gz) = 41903e3bbd148a27527b2937facc4bf1ea129d0061721ab6e3c0e52006b65c48 -SIZE (rncbc-qtractor-v1.6.2_GH0.tar.gz) = 2089235 +TIMESTAMP = 1788716443 +SHA256 (rncbc-qtractor-v1.6.4_GH0.tar.gz) = 6f75110dc48633a2c58d6a3ced28bdd34564d47d64e1c3fa1d7da0ceef73e4ae +SIZE (rncbc-qtractor-v1.6.4_GH0.tar.gz) = 2096992 +SHA256 (free-audio-clap-195b42a_GH0.tar.gz) = a7a896045a98464cbd1dcaa96868c6e5d33a24daef87a92385e2cb798c156baa +SIZE (free-audio-clap-195b42a_GH0.tar.gz) = 2357137 SHA256 (breakfastquay-minibpm-43de991_GH0.tar.gz) = 925d18acdd0a902e7ea2ff3722ebe247895b044d1fc35b7b9ba072b77c3f7b58 SIZE (breakfastquay-minibpm-43de991_GH0.tar.gz) = 41564 +SHA256 (steinbergmedia-vst3_base-fcf9da0_GH0.tar.gz) = 0bdd7c9c719753f9a71c561e2cd913409a962e0a6022046f5a6cc182ef54fc83 +SIZE (steinbergmedia-vst3_base-fcf9da0_GH0.tar.gz) = 62425 +SHA256 (steinbergmedia-vst3_pluginterfaces-4f547e8_GH0.tar.gz) = 2307847acf173f6fab72fd2249bda7f115d4c19d5bec01c6ffad2b839a2630a6 +SIZE (steinbergmedia-vst3_pluginterfaces-4f547e8_GH0.tar.gz) = 111422 +SHA256 (steinbergmedia-vst3_public_sdk-586dc5e_GH0.tar.gz) = 7f31e62a2cbe73b91f8d23e1b7162060bec2c9bca3283706a8f463c7b43e5524 +SIZE (steinbergmedia-vst3_public_sdk-586dc5e_GH0.tar.gz) = 12767978 diff --git a/audio/qtractor/files/patch-src_vst3_pluginterfaces_base_fplatform.h b/audio/qtractor/files/patch-src_vst3_pluginterfaces_base_fplatform.h new file mode 100644 index 000000000000..b5bd02c4df7f --- /dev/null +++ b/audio/qtractor/files/patch-src_vst3_pluginterfaces_base_fplatform.h @@ -0,0 +1,23 @@ +-- Add FreeBSD to the Linux platform branch and use sys/endian.h instead of endian.h. +-- The VST3 SDK does not natively support FreeBSD, so reuse the Linux code path. + +--- src/vst3/pluginterfaces/base/fplatform.h.orig 2026-09-06 17:42:39 UTC ++++ src/vst3/pluginterfaces/base/fplatform.h +@@ -126,7 +126,7 @@ + //----------------------------------------------------------------------------- + // LINUX + //----------------------------------------------------------------------------- +-#elif (defined (__gnu_linux__) && __gnu_linux__) || (defined (__linux__) && __linux__) ++#elif (defined (__gnu_linux__) && __gnu_linux__) || (defined (__linux__) && __linux__) || defined (__FreeBSD__) + #define SMTG_OS_LINUX 1 + #define SMTG_OS_MACOS 0 + #define SMTG_OS_WINDOWS 0 +@@ -156,7 +156,7 @@ + #endif + #define SMTG_CPU_ARM_64EC 0 + +- #include ++ #include + #if __BYTE_ORDER == __LITTLE_ENDIAN + #define BYTEORDER kLittleEndian + #else diff --git a/audio/qtractor/files/patch-src_vst3_pluginterfaces_base_funknown.cpp b/audio/qtractor/files/patch-src_vst3_pluginterfaces_base_funknown.cpp new file mode 100644 index 000000000000..bb837d58890f --- /dev/null +++ b/audio/qtractor/files/patch-src_vst3_pluginterfaces_base_funknown.cpp @@ -0,0 +1,23 @@ +-- Use C++ instead of C stdatomic.h for FreeBSD libc++ compatibility. +-- This and similar issues have been reported to VST but they aren't too responsive. + +--- src/vst3/pluginterfaces/base/funknown.cpp.orig 2026-09-06 17:43:34 UTC ++++ src/vst3/pluginterfaces/base/funknown.cpp +@@ -55,7 +55,7 @@ + #endif + + #if defined (SMTG_USE_STDATOMIC_H) && SMTG_USE_STDATOMIC_H +-#include ++#include + #endif + + namespace Steinberg { +@@ -87,7 +87,7 @@ int32 PLUGIN_API atomicAdd (int32& var, int32 d) + int32 PLUGIN_API atomicAdd (int32& var, int32 d) + { + #if SMTG_USE_STDATOMIC_H +- return atomic_fetch_add (reinterpret_cast (&var), d) + d; ++ return atomic_fetch_add (reinterpret_cast (&var), d) + d; + #else + #if SMTG_OS_WINDOWS + #ifdef __MINGW32__