Source: audacity
Version: 3.7.1+dfsg-1
Severity: wishlist
Tags: patch

Dear Maintainer,

Please consider building audacity with vst3sdk support. vst3sdk is packaged in Debian as libvst3sdk-dev. The attached debdiff enables vst3sdk support in audacity and builds successfully at least on amd64.

There is, however, a concern about architecture support. libvst3sdk-dev is not provided on i386 and riscv64, thus ideally on these architectures audacity should build without vst3sdk. I did not implement conditional building in the attached debdiff yet.

If convenient, my changes can also be viewed on git branch on salsa: https://salsa.debian.org/merkys/audacity/-/tree/with-vst3sdk

Best wishes,
Andrius
diff -Nru audacity-3.7.1+dfsg/debian/changelog 
audacity-3.7.1+dfsg/debian/changelog
--- audacity-3.7.1+dfsg/debian/changelog        2024-12-31 13:53:08.000000000 
+0000
+++ audacity-3.7.1+dfsg/debian/changelog        2025-01-28 11:02:59.000000000 
+0000
@@ -1,3 +1,9 @@
+audacity (3.7.1+dfsg-2) UNRELEASED; urgency=medium
+
+  * Build with vst3sdk support.
+
+ -- Andrius Merkys <mer...@debian.org>  Tue, 28 Jan 2025 11:02:59 +0000
+
 audacity (3.7.1+dfsg-1) unstable; urgency=medium
 
   * New upstream version 3.7.1+dfsg
diff -Nru audacity-3.7.1+dfsg/debian/control audacity-3.7.1+dfsg/debian/control
--- audacity-3.7.1+dfsg/debian/control  2024-11-09 20:36:13.000000000 +0000
+++ audacity-3.7.1+dfsg/debian/control  2025-01-28 10:03:45.000000000 +0000
@@ -42,6 +42,7 @@
                libsuil-dev,
                libtwolame-dev,
                libvorbis-dev,
+               libvst3sdk-dev,
                libwavpack-dev (>= 5.2.0),
                libwxgtk3.2-dev,
                libwxgtk3.2-dev:native,
diff -Nru audacity-3.7.1+dfsg/debian/patches/adjust-vst3sdk-paths.patch 
audacity-3.7.1+dfsg/debian/patches/adjust-vst3sdk-paths.patch
--- audacity-3.7.1+dfsg/debian/patches/adjust-vst3sdk-paths.patch       
1970-01-01 00:00:00.000000000 +0000
+++ audacity-3.7.1+dfsg/debian/patches/adjust-vst3sdk-paths.patch       
2025-01-28 10:03:45.000000000 +0000
@@ -0,0 +1,93 @@
+--- a/cmake-proxies/cmake-modules/Findvst3sdk.cmake
++++ b/cmake-proxies/cmake-modules/Findvst3sdk.cmake
+@@ -3,82 +3,29 @@
+ ]]
+ 
+ if( NOT vst3sdk_FOUND )
+-   if( DEFINED ENV{VST3_SDK_DIR} )
+-      set( vst3sdk_DIR $ENV{VST3_SDK_DIR} )
+-   elseif( DEFINED ENV{VST3SDK_PATH} )
+-      set( vst3sdk_DIR $ENV{VST3SDK_PATH} )
+-   elseif( DEFINED ENV{VST3SDK} )
+-      set( vst3sdk_DIR $ENV{VST3SDK} )
+-   else()
+-      set( vst3sdk_DIR ${CMAKE_SOURCE_DIR}/vst3sdk )
+-   endif()
+-
+-   if( NOT EXISTS ${vst3sdk_DIR} )
+-      message( STATUS "VST3SDK not found. Please set VST3SDK_DIR to the path 
to the vst3sdk directory." )
+-      return()
+-   endif()
+-
+-   set( vst3sdk_BUILD ${CMAKE_BINARY_DIR}/vst3sdk )
+-
+-   message( STATUS "VST3SDK_DIR: ${vst3sdk_DIR}" )
+-   message( STATUS "Building SDK in ${vst3sdk_BUILD}" )
+-
+-   execute_process(COMMAND
+-      ${CMAKE_COMMAND}
+-         -G ${CMAKE_GENERATOR}
+-         -S ${vst3sdk_DIR}
+-         -B ${vst3sdk_BUILD}
+-         -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+-         -D SMTG_ENABLE_VST3_HOSTING_EXAMPLES=OFF
+-         -D SMTG_ENABLE_VST3_PLUGIN_EXAMPLES=OFF
+-         -D SMTG_ENABLE_VSTGUI_SUPPORT=OFF
+-         -D SMTG_CREATE_BUNDLE_FOR_WINDOWS=Off
+-         -D SMTG_MYPLUGINS_SRC_PATH=""
+-         -D SMTG_RUN_VST_VALIDATOR=Off
+-
+-      RESULT_VARIABLE vst3sdk_configure_result
+-   )
+-
+-   if( vst3sdk_configure_result )
+-      message( FATAL_ERROR "Failed to configure VST3SDK" )
+-   endif()
+-
+-   execute_process(COMMAND
+-      ${CMAKE_COMMAND}
+-         --build ${vst3sdk_BUILD}
+-         --config ${CMAKE_BUILD_TYPE}
+-         --parallel
+-
+-      RESULT_VARIABLE vst3sdk_build_result
+-   )
+-
+-   if( vst3sdk_build_result )
+-      message( FATAL_ERROR "Failed to build VST3SDK" )
+-   endif()
+-
+    add_library(vst3sdk::base STATIC IMPORTED GLOBAL)
+    add_library(vst3sdk::pluginterfaces STATIC IMPORTED GLOBAL)
+    add_library(vst3sdk::sdk_hosting STATIC IMPORTED GLOBAL)
+    add_library(vst3sdk::sdk_common STATIC IMPORTED GLOBAL)
+ 
+    set_target_properties(vst3sdk::base PROPERTIES
+-      IMPORTED_LOCATION 
${vst3sdk_BUILD}/lib/${CMAKE_BUILD_TYPE}/${CMAKE_STATIC_LIBRARY_PREFIX}base${CMAKE_STATIC_LIBRARY_SUFFIX}
+-      INTERFACE_INCLUDE_DIRECTORIES ${vst3sdk_DIR}
++      IMPORTED_LOCATION 
/usr/lib/${CMAKE_DEB_HOST_MULTIARCH}/vst3sdk/${CMAKE_STATIC_LIBRARY_PREFIX}base${CMAKE_STATIC_LIBRARY_SUFFIX}
++      INTERFACE_INCLUDE_DIRECTORIES /usr/include/vst3sdk
+    )
+ 
+    set_target_properties(vst3sdk::pluginterfaces PROPERTIES
+-      IMPORTED_LOCATION 
${vst3sdk_BUILD}/lib/${CMAKE_BUILD_TYPE}/${CMAKE_STATIC_LIBRARY_PREFIX}pluginterfaces${CMAKE_STATIC_LIBRARY_SUFFIX}
+-      INTERFACE_INCLUDE_DIRECTORIES ${vst3sdk_DIR}
++      IMPORTED_LOCATION 
/usr/lib/${CMAKE_DEB_HOST_MULTIARCH}/vst3sdk/${CMAKE_STATIC_LIBRARY_PREFIX}pluginterfaces${CMAKE_STATIC_LIBRARY_SUFFIX}
++      INTERFACE_INCLUDE_DIRECTORIES /usr/include/vst3sdk
+    )
+ 
+    set_target_properties(vst3sdk::sdk_hosting PROPERTIES
+-      IMPORTED_LOCATION 
${vst3sdk_BUILD}/lib/${CMAKE_BUILD_TYPE}/${CMAKE_STATIC_LIBRARY_PREFIX}sdk_hosting${CMAKE_STATIC_LIBRARY_SUFFIX}
+-      INTERFACE_INCLUDE_DIRECTORIES ${vst3sdk_DIR}
++      IMPORTED_LOCATION 
/usr/lib/${CMAKE_DEB_HOST_MULTIARCH}/vst3sdk/${CMAKE_STATIC_LIBRARY_PREFIX}sdk_hosting${CMAKE_STATIC_LIBRARY_SUFFIX}
++      INTERFACE_INCLUDE_DIRECTORIES /usr/include/vst3sdk
+    )
+ 
+    set_target_properties(vst3sdk::sdk_common PROPERTIES
+-      IMPORTED_LOCATION 
${vst3sdk_BUILD}/lib/${CMAKE_BUILD_TYPE}/${CMAKE_STATIC_LIBRARY_PREFIX}sdk_common${CMAKE_STATIC_LIBRARY_SUFFIX}
+-      INTERFACE_INCLUDE_DIRECTORIES ${vst3sdk_DIR}
++      IMPORTED_LOCATION 
/usr/lib/${CMAKE_DEB_HOST_MULTIARCH}/vst3sdk/${CMAKE_STATIC_LIBRARY_PREFIX}sdk_common${CMAKE_STATIC_LIBRARY_SUFFIX}
++      INTERFACE_INCLUDE_DIRECTORIES /usr/include/vst3sdk
+    )
+ 
+    find_package(X11 REQUIRED)
diff -Nru audacity-3.7.1+dfsg/debian/patches/series 
audacity-3.7.1+dfsg/debian/patches/series
--- audacity-3.7.1+dfsg/debian/patches/series   2024-11-09 20:37:00.000000000 
+0000
+++ audacity-3.7.1+dfsg/debian/patches/series   2025-01-28 10:03:45.000000000 
+0000
@@ -1,3 +1,4 @@
 Fix-rpath-for-private-libraries-on-Linux.patch
 Fix-setting-audacity_use_midi-off.patch
 Drop-UBUNTU_MENUPROXY-0-workaround.patch
+adjust-vst3sdk-paths.patch
diff -Nru audacity-3.7.1+dfsg/debian/rules audacity-3.7.1+dfsg/debian/rules
--- audacity-3.7.1+dfsg/debian/rules    2024-04-28 16:41:29.000000000 +0000
+++ audacity-3.7.1+dfsg/debian/rules    2025-01-28 10:03:45.000000000 +0000
@@ -10,10 +10,11 @@
        -DCMAKE_INSTALL_LIBDIR=lib \
        -Daudacity_conan_enabled=Off \
        -Daudacity_has_networking=Off \
-       -Daudacity_has_vst3=Off \
        -Daudacity_lib_preference=system \
        -Daudacity_use_ffmpeg=loaded \
+       -Daudacity_use_vst3sdk=system \
        -DwxBUILD_TOOLKIT=gtk3 \
+       -DCMAKE_DEB_HOST_MULTIARCH=$(DEB_HOST_MULTIARCH) \
        $(NULL)
 
 ifeq (,$(findstring ~,$(DEB_VERSION_UPSTREAM)))

Reply via email to